From 7d5a57f0a87afb0190c787d50ae8722fe682e433 Mon Sep 17 00:00:00 2001 From: Shuang Song Date: Mon, 21 Feb 2022 14:04:18 -0800 Subject: [PATCH] An example for running secret sharer on image classification model. PiperOrigin-RevId: 430083697 --- .../secret_sharer_image_example.ipynb | 572 ++++++++++++++++++ 1 file changed, 572 insertions(+) create mode 100644 tensorflow_privacy/privacy/privacy_tests/secret_sharer/secret_sharer_image_example.ipynb diff --git a/tensorflow_privacy/privacy/privacy_tests/secret_sharer/secret_sharer_image_example.ipynb b/tensorflow_privacy/privacy/privacy_tests/secret_sharer/secret_sharer_image_example.ipynb new file mode 100644 index 0000000..f44c702 --- /dev/null +++ b/tensorflow_privacy/privacy/privacy_tests/secret_sharer/secret_sharer_image_example.ipynb @@ -0,0 +1,572 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "RY553UYW3gVB" + }, + "source": [ + "Copyright 2022 The TensorFlow Authors." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "8rRnn3VN3myz" + }, + "outputs": [], + "source": [ + "#@title Licensed under the Apache License, Version 2.0 (the \"License\");\n", + "# you may not use this file except in compliance with the License.\n", + "# You may obtain a copy of the License at\n", + "#\n", + "# https://www.apache.org/licenses/LICENSE-2.0\n", + "#\n", + "# Unless required by applicable law or agreed to in writing, software\n", + "# distributed under the License is distributed on an \"AS IS\" BASIS,\n", + "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", + "# See the License for the specific language governing permissions and\n", + "# limitations under the License." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "1bf53JM8O4wr" + }, + "source": [ + "#Assess privacy risks of an Image classification model with Secret Sharer Attack" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "TtYsuFkyPe1m" + }, + "source": [ + "\u003ctable class=\"tfo-notebook-buttons\" align=\"left\"\u003e\n", + " \u003ctd\u003e\n", + " \u003ca target=\"_blank\" href=\"https://colab.research.google.com/github/tensorflow/privacy/blob/master/tensorflow_privacy/privacy/privacy_tests/secret_sharer/secret_sharer_image_example.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/colab_logo_32px.png\" /\u003eRun in Google Colab\u003c/a\u003e\n", + " \u003c/td\u003e\n", + " \u003ctd\u003e\n", + " \u003ca target=\"_blank\" href=\"https://github.com/tensorflow/privacy/blob/master/tensorflow_privacy/privacy/privacy_tests/secret_sharer/secret_sharer_image_example.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/GitHub-Mark-32px.png\" /\u003eView source on GitHub\u003c/a\u003e\n", + " \u003c/td\u003e\n", + "\u003c/table\u003e" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "6JCBWY2_GP_e" + }, + "source": [ + "In this colab, we adapt [secret sharer](https://arxiv.org/abs/1802.08232) in an image classification model. We will train a model with \"secrets\", i.e. random images, inserted in the training data, and then evaluate if the model has \"memorized\" those secrets." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "bGskLy4nCRGd" + }, + "source": [ + "#Setup" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "AdMDFipI5cBw" + }, + "source": [ + "You may set the runtime to use a GPU by Runtime \u003e Change runtime type \u003e Hardware accelerator." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "epvtpPkE1Mkx" + }, + "outputs": [], + "source": [ + "# @title Install dependencies\n", + "# You may need to restart the runtime to use tensorflow-privacy.\n", + "from IPython.display import clear_output\n", + "\n", + "!pip install git+https://github.com/tensorflow/privacy.git\n", + "clear_output()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "9DnsfO3DBwL0" + }, + "outputs": [], + "source": [ + "# @title Imports\n", + "import functools\n", + "import os\n", + "import numpy as np\n", + "import tensorflow as tf\n", + "import tensorflow_datasets as tfds\n", + "\n", + "from PIL import Image, ImageDraw, ImageFont\n", + "from matplotlib import pyplot as plt\n", + "import math\n", + "\n", + "from tensorflow_privacy.privacy.privacy_tests.secret_sharer.generate_secrets import SecretConfig, construct_secret, generate_random_sequences, construct_secret_dataset\n", + "from tensorflow_privacy.privacy.privacy_tests.secret_sharer.exposures import compute_exposure_interpolation, compute_exposure_extrapolation\n", + "from tensorflow_privacy.privacy.privacy_tests.membership_inference_attack.utils import log_loss" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "XsntG_DoJCcW" + }, + "source": [ + "# Functions for the model, and the CIFAR-10 data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "ueYURd5kB7yk" + }, + "outputs": [], + "source": [ + "# @title Functions for defining model and loading data.\n", + "def small_cnn():\n", + " \"\"\"Setup a small CNN for image classification.\"\"\"\n", + " model = tf.keras.models.Sequential()\n", + " model.add(tf.keras.layers.Input(shape=(32, 32, 3)))\n", + "\n", + " for _ in range(3):\n", + " model.add(tf.keras.layers.Conv2D(32, (3, 3), activation='relu'))\n", + " model.add(tf.keras.layers.MaxPooling2D())\n", + "\n", + " model.add(tf.keras.layers.Flatten())\n", + " model.add(tf.keras.layers.Dense(64, activation='relu'))\n", + " model.add(tf.keras.layers.Dense(10))\n", + " return model\n", + "\n", + "def load_cifar10():\n", + " def convert_to_numpy(ds):\n", + " images, labels = [], []\n", + " for sample in tfds.as_numpy(ds):\n", + " images.append(sample['image'])\n", + " labels.append(sample['label'])\n", + " return np.array(images).astype(np.float32) / 255, np.array(labels).astype(np.int32)\n", + "\n", + " ds_train = tfds.load('cifar10', split='train')\n", + " ds_test = tfds.load('cifar10', split='test')\n", + " x_train, y_train = convert_to_numpy(ds_train)\n", + " x_test, y_test = convert_to_numpy(ds_test)\n", + " # x has shape (n, 32, 32, 3), y has shape (n,)\n", + " return x_train, y_train, x_test, y_test" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "sXFsyOWs8-fQ" + }, + "outputs": [], + "source": [ + "# @title Function for training the model.\n", + "def train_model(x_train, y_train, x_test, y_test,\n", + " learning_rate=0.02, batch_size=250, epochs=50):\n", + " model = small_cnn()\n", + " optimizer = tf.keras.optimizers.SGD(lr=learning_rate, momentum=0.9)\n", + " loss = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)\n", + " model.compile(optimizer=optimizer, loss=loss, metrics=['accuracy'])\n", + "\n", + " # Train model\n", + " model.fit(\n", + " x_train,\n", + " y_train,\n", + " epochs=epochs,\n", + " validation_data=(x_test, y_test),\n", + " batch_size=batch_size,\n", + " verbose=2)\n", + " return model" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "YPS9jbqIwm-t" + }, + "source": [ + "# Secret sharer attack on the model\n", + "\n", + "The general idea of secret sharer is to check if the model behaves differently on data it has seen vs. has not seen. Such memorization does not happen only on generative sequence models. It is thus natural to ask if the idea can be adapted to image classification tasks as well.\n", + "\n", + "Here, we present one potential way to do secret sharer on image classification task. Specifically, we will consider\n", + "two types of secrets, where the secret is\n", + "- (an image with each pixel sampled uniformly at random, a random label)\n", + "- (an image with text on it, a random label)\n", + "\n", + "But of course, you can try other secrets, for example, you can use images from another dataset (like MNIST), and a fixed label." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "tX53fnqdYsu3" + }, + "source": [ + "## Generate Secrets\n", + "\n", + "First, we define the functions needed to generate random image, image with random text, and random labels." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "PfAst4fky0J-" + }, + "outputs": [], + "source": [ + "# @title Functions for generating secrets\n", + "def generate_random_label(n, nclass, seed):\n", + " \"\"\"Generates random labels.\"\"\"\n", + " return np.random.RandomState(seed).choice(nclass, n)\n", + "\n", + "def generate_uniform_random(shape, n, seed):\n", + " \"\"\"Generates uniformly random images.\"\"\"\n", + " rng = np.random.RandomState(seed)\n", + " data = rng.uniform(size=(n,) + shape)\n", + " return data\n", + "\n", + "def images_from_texts(sequences, shape, font_fn, num_lines=3, bg_color=(255, 255, 255), fg_color=(0, 0, 0)):\n", + " \"\"\"Generates an image with a given text sequence.\"\"\"\n", + " characters_per_line = len(sequences[0]) // num_lines\n", + " if characters_per_line * num_lines \u003c len(sequences[0]):\n", + " characters_per_line += 1\n", + " line_height = shape[1] // num_lines\n", + " font_size = line_height\n", + " font_width = ImageFont.truetype(font_fn, font_size).getsize('a')[0]\n", + " if font_width \u003e shape[0] / characters_per_line:\n", + " font_size = int(math.floor(font_size / font_width * (shape[0] / characters_per_line)))\n", + " assert font_size \u003e 0\n", + " font = ImageFont.truetype(font_fn, font_size)\n", + "\n", + " imgs = []\n", + " for sequence in sequences:\n", + " img = Image.new('RGB', shape, color=bg_color)\n", + " d = ImageDraw.Draw(img)\n", + " for i in range(num_lines):\n", + " d.text((0, i * line_height),\n", + " sequence[i * characters_per_line:(i + 1) * characters_per_line],\n", + " font=font, fill=fg_color)\n", + " imgs.append(img)\n", + " return imgs\n", + "\n", + "def generate_random_text_image(shape, n, seed, font_fn, vocab, pattern, num_lines, bg_color, fg_color):\n", + " \"\"\"Generates images with random texts.\"\"\"\n", + " text_sequences = generate_random_sequences(vocab, pattern, n, seed)\n", + " imgs = images_from_texts(text_sequences, shape, font_fn, num_lines, bg_color, fg_color)\n", + " return np.array([np.array(i) for i in imgs])\n", + "\n", + "# The function for plotting text on image needs a font, so we download it here.\n", + "# You can try other fonts. Notice that the images_from_texts is implemented under the assumption that the font is monospace.\n", + "!wget https://github.com/google/fonts/raw/main/apache/robotomono/RobotoMono%5Bwght%5D.ttf\n", + "font_fn = 'RobotoMono[wght].ttf'" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "jygKtyEVYNKW" + }, + "source": [ + "Now we will use the functions above to generate the secrets. Here, we plan to try secrets that are repeated once, 10 times and 50 times. For each repetition value, we will pick 20 secrets, to get a more accurate exposure estimation. We will leave out 65536 samples as references." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "4h058j4-1sm2" + }, + "outputs": [], + "source": [ + "#@title Generate secrets\n", + "num_repetitions = [1, 10, 50]\n", + "num_secrets_for_repetitions = [20] * len(num_repetitions)\n", + "num_references = 65536\n", + "secret_config_text = SecretConfig(name='random text image', num_repetitions=num_repetitions, num_secrets_for_repetitions=num_secrets_for_repetitions, num_references=num_references)\n", + "secret_config_rand = SecretConfig(name='uniform random image', num_repetitions=num_repetitions, num_secrets_for_repetitions=num_secrets_for_repetitions, num_references=num_references)\n", + "\n", + "seed = 123\n", + "shape = (32, 32)\n", + "nclass = 10\n", + "n = num_references + sum(num_secrets_for_repetitions)\n", + "# setting for text image\n", + "num_lines = 3\n", + "bg_color=(255, 255, 0)\n", + "fg_color=(0, 0, 0)\n", + "\n", + "image_text = generate_random_text_image(shape, n, seed,\n", + " font_fn,\n", + " list('0123456789'), 'My SSN is {}{}{}-{}{}-{}{}{}{}',\n", + " num_lines, bg_color, fg_color)\n", + "image_text = image_text.astype(np.float32) / 255\n", + "image_rand = generate_uniform_random(shape + (3,), n, seed)\n", + "label = generate_random_label(n, nclass, seed)\n", + "data_text = list(zip(image_text, label)) # pair up the image and label\n", + "data_rand = list(zip(image_rand, label))\n", + "\n", + "\"\"\"\n", + "`construct_secret` partitions data into subsets of secrets that are going to be\n", + "repeated for different number of times, and a references set. It returns a SecretsSet with 3 fields:\n", + " config is the configuration of the secrets set\n", + " references is a list of `num_references` samples to be used as references\n", + " secrets is a dictionary, where the key is the number of repetition, the value is a list of samples\n", + "\"\"\"\n", + "secrets_text = construct_secret(secret_config_text, data_text)\n", + "secrets_rand = construct_secret(secret_config_rand, data_rand)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "height": 201 + }, + "executionInfo": { + "elapsed": 661, + "status": "ok", + "timestamp": 1645062964320, + "user": { + "displayName": "", + "photoUrl": "", + "userId": "" + }, + "user_tz": 480 + }, + "id": "i8t2lk6NY2ii", + "outputId": "c8a588f2-0dae-452e-80bd-bd10d7e54bed" + }, + "outputs": [ + { + "data": { + "image/png": "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\nq13JVgAAAABJRU5ErkJggg==\n", + "text/plain": [ + "\u003cFigure size 600x400 with 5 Axes\u003e" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\njLbsYPCwmzpTLHCC4pST8bCVJlWLSdSBbYC6r0LkhlcxjlnYOtRKtTpNQp6hmm4kIbpJ6G9Ba7Gw\nwRRE25Akv2mZYCHF8FAcRzGJNWliJFpkwWW+KicGVaG/PolGLpKJuAjPNqFbHydgdLIolSjXJeKx\n4yi1Zuwzf45urQHNgyDm6jBZx74UxFdMIex+GzqLhr5snjm8XCleT7Rzjrm944yl10HJS13zKqZK\njPrILspOidTuUVaSUa4YEuiFK2iJcmHkQebUFqwPT1GojjP1whH6W0Vu6PIyYzVxudVBJuHEHnEh\nTsiIKzqkpVYc1RIb1PNEW81cvtHJ+w5Z2DrRyB8e0DDUVrkqJwBiXYct0Y18eQu5Whx95RwqrTRo\n1rHOGsfeuUoDM4iqSD3roaLkKRlmWBu7nvcM7eMF0z8wU3yD3tMiFVHPy+9oJOkLoHYEKFqjFDXL\nrG/eSKu9g4aQCeN0mo2ZIiFFy0ilk4iQ57Iuzp+pF3mHcpi/7dnCgq2D3Ye8tBT0rIk0cUVXZqgy\nwxrFxyZlK+dsJlINK5jnL2CsFZmoe+hUUhzIXyRqX8PypgfJJ6IouRRLiVOUxfxVOUmna5wejmD5\nwwLBEQvLv3ASuDeCu22RC8VL5Mtp7osEcGidJK83sRgokBpQ6Vmd5MHpSZx3P0i19SYeD32JVKxI\n25mHqbtGmL/9KXrO2dlzuIEn1jYwv93MgjFBNl/DfcaBHJWxa4eJkOHX+RSDJw10jTSzfl0B65pF\nTtuOUKs56I79I40tp+nd8yyRmIFItIbxyVY0s3rWbT7PGodIzHYAm0PLZVszscQQ0bmTNHKAQe9d\njK+ZRulK/Nb6f6cBrgYFlCdnyG96H7nyPvLfeD9X5i9i9l1Bt2BlICvyzsanaKy0EJi+kRONcb68\n4TI9IxfxH7nM0T9zc3p7D6nzTvLpjcw//kHklJt7oi76LG7KWwy0zhrQ/ELHoflZlnIRlp8dJNcz\nT6Hzz/DlJDbOBpjvybK6r8R3Wx2gaWCNM0XeXCB/0wDtjjoHAjHGrpT44aLMo7vGWduRZG5HgJRL\nw/n0yyQLItlQAwMxha3hIrvOdNI67+GftceZcBauykmzqvJpNYRGPEZ0TmbutIVNO30E1m5F3zBN\nNTvNTK1MSalwYGaSPqPKhz42QkHfQHHoPtoOlbEvjXDldiPJep6x9J9Qn4tx5blZNikZbi17SW++\n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\nAElFTkSuQmCC\n", + "text/plain": [ + "\u003cFigure size 600x400 with 5 Axes\u003e" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#@title Let's look at the secrets we generated\n", + "def visualize_images(imgs):\n", + " f, axes = plt.subplots(1, len(imgs))\n", + " for i, img in enumerate(imgs):\n", + " axes[i].imshow(img)\n", + "\n", + "visualize_images(image_text[:5])\n", + "visualize_images(image_rand[:5])" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "G6dycJx6aZzl" + }, + "source": [ + "## Train the Model\n", + "\n", + "We will train two models, one with the original CIFAR-10 data, the other with CIFAR-10 combined with the secrets." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "H8pdEVpS9iKU" + }, + "outputs": [], + "source": [ + "# @title Train a model with original data\n", + "x_train, y_train, x_test, y_test = load_cifar10()\n", + "model_original = train_model(x_train, y_train, x_test, y_test)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "34dbqqZ8Rr9T" + }, + "outputs": [], + "source": [ + "# @title Train model with original data combined with secrets\n", + "# `construct_secret_dataset` returns a list of secrets, repeated for the\n", + "# required number of times.\n", + "secret_dataset = construct_secret_dataset([secrets_text, secrets_rand])\n", + "x_secret, y_secret = zip(*secret_dataset)\n", + "x_combined = np.concatenate([x_train, x_secret])\n", + "y_combined = np.concatenate([y_train, y_secret])\n", + "print(f'We will inject {len(x_secret)} samples so the total number of training data is {x_combined.shape[0]}')\n", + "model_secret = train_model(x_combined, y_combined, x_test, y_test)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Sq3r55jgbpp_" + }, + "source": [ + "## Secret Sharer Evaluation\n", + "\n", + "Similar to perplexity in language model, here we will use the cross entropy loss for our image classification model to measure how confident the model is on an example." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "P9inQNdq-RxK" + }, + "outputs": [], + "source": [ + "# @title Functions for computing losses and exposures\n", + "def calculate_losses(model, samples, is_logit=False, batch_size=1000):\n", + " \"\"\"Calculate losses of model prediction on data, provided true labels.\n", + " \"\"\"\n", + " data, labels = zip(*samples)\n", + " data, labels = np.array(data), np.array(labels)\n", + " pred = model.predict(data, batch_size=batch_size, verbose=0)\n", + " if is_logit:\n", + " pred = tf.nn.softmax(pred).numpy()\n", + " loss = log_loss(labels, pred)\n", + " return loss\n", + "\n", + "def compute_loss_for_secret(secrets, model):\n", + " losses_ref = calculate_losses(model, secrets.references)\n", + " losses = {rep: calculate_losses(model, samples) for rep, samples in secrets.secrets.items()}\n", + " return losses, losses_ref\n", + "\n", + "def compute_exposure_for_secret(secrets, model):\n", + " losses, losses_ref = compute_loss_for_secret(secrets, model)\n", + " exposure_interpolation = compute_exposure_interpolation(losses, losses_ref)\n", + " exposure_extrapolation = compute_exposure_extrapolation(losses, losses_ref)\n", + " return exposure_interpolation, exposure_extrapolation, losses, losses_ref\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "executionInfo": { + "elapsed": 3, + "status": "ok", + "timestamp": 1645063778618, + "user": { + "displayName": "", + "photoUrl": "", + "userId": "" + }, + "user_tz": 480 + }, + "id": "M6ZTZN-iUMs6", + "outputId": "a8e2608b-7c7f-48e0-dbe7-832418ad468c" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "On model trained with original data:\n", + "Text secret\n", + " Interpolation: repetition=1, avg_exposure=1.85±2.24; repetition=10, avg_exposure=1.15±2.04; repetition=50, avg_exposure=0.93±1.43\n", + " Extrapolation: repetition=1, avg_exposure=1.80±1.48; repetition=10, avg_exposure=1.31±1.35; repetition=50, avg_exposure=1.30±1.34\n", + "Random secret\n", + " Interpolation: repetition=1, avg_exposure=1.21±1.46; repetition=10, avg_exposure=0.84±1.13; repetition=50, avg_exposure=1.04±1.27\n", + " Extrapolation: repetition=1, avg_exposure=1.69±1.38; repetition=10, avg_exposure=1.41±1.33; repetition=50, avg_exposure=1.56±1.37\n", + "On model trained with original data + secrets:\n", + "Text secret\n", + " Interpolation: repetition=1, avg_exposure=3.45±1.75; repetition=10, avg_exposure=5.07±1.62; repetition=50, avg_exposure=6.67±1.87\n", + " Extrapolation: repetition=1, avg_exposure=4.35±1.09; repetition=10, avg_exposure=5.38±1.25; repetition=50, avg_exposure=6.64±1.85\n", + "Random secret\n", + " Interpolation: repetition=1, avg_exposure=3.88±1.38; repetition=10, avg_exposure=5.58±1.71; repetition=50, avg_exposure=6.63±1.74\n", + " Extrapolation: repetition=1, avg_exposure=2.73±0.09; repetition=10, avg_exposure=2.81±0.06; repetition=50, avg_exposure=2.85±0.06\n" + ] + } + ], + "source": [ + "# @title Check the exposures\n", + "exp_i_orig_text, exp_e_orig_text, _, _ = compute_exposure_for_secret(secrets_text, model_original)\n", + "exp_i_orig_rand, exp_e_orig_rand, _, _ = compute_exposure_for_secret(secrets_rand, model_original)\n", + "\n", + "exp_i_scrt_text, exp_e_scrt_text, _, _ = compute_exposure_for_secret(secrets_text, model_secret)\n", + "exp_i_scrt_rand, exp_e_scrt_rand, _, _ = compute_exposure_for_secret(secrets_rand, model_secret)\n", + "\n", + "# First, let's confirm that the model trained with original data won't show any exposure\n", + "print('On model trained with original data:')\n", + "print('Text secret')\n", + "print(' Interpolation:', '; '.join([f'repetition={r}, avg_exposure={np.mean(exp):.2f}±{np.std(exp):.2f}' for r, exp in exp_i_orig_text.items()]))\n", + "print(' Extrapolation:', '; '.join([f'repetition={r}, avg_exposure={np.mean(exp):.2f}±{np.std(exp):.2f}' for r, exp in exp_e_orig_text.items()]))\n", + "print('Random secret')\n", + "print(' Interpolation:', '; '.join([f'repetition={r}, avg_exposure={np.mean(exp):.2f}±{np.std(exp):.2f}' for r, exp in exp_i_orig_rand.items()]))\n", + "print(' Extrapolation:', '; '.join([f'repetition={r}, avg_exposure={np.mean(exp):.2f}±{np.std(exp):.2f}' for r, exp in exp_e_orig_rand.items()]))\n", + "\n", + "# Then, let's look at the model trained with combined data\n", + "print('On model trained with original data + secrets:')\n", + "print('Text secret')\n", + "print(' Interpolation:', '; '.join([f'repetition={r}, avg_exposure={np.mean(exp):.2f}±{np.std(exp):.2f}' for r, exp in exp_i_scrt_text.items()]))\n", + "print(' Extrapolation:', '; '.join([f'repetition={r}, avg_exposure={np.mean(exp):.2f}±{np.std(exp):.2f}' for r, exp in exp_e_scrt_text.items()]))\n", + "print('Random secret')\n", + "print(' Interpolation:', '; '.join([f'repetition={r}, avg_exposure={np.mean(exp):.2f}±{np.std(exp):.2f}' for r, exp in exp_i_scrt_rand.items()]))\n", + "print(' Extrapolation:', '; '.join([f'repetition={r}, avg_exposure={np.mean(exp):.2f}±{np.std(exp):.2f}' for r, exp in exp_e_scrt_rand.items()]))" + ] + } + ], + "metadata": { + "colab": { + "collapsed_sections": [], + "last_runtime": { + "build_target": "//learning/deepmind/public/tools/ml_python:ml_notebook", + "kind": "private" + }, + "name": "secret_sharer_image_example.ipynb", + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "pycharm": { + "stem_cell": { + "cell_type": "raw", + "metadata": { + "collapsed": false + }, + "source": [] + } + } + }, + "nbformat": 4, + "nbformat_minor": 0 +}