{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Exercise 8.1 - Solution\n", "### Classification of magnetic phases using CNNs\n", "\n", "Imagine a 2-dimensional lattice arrangement of $n \\times n$ magnetic dipole moments (spins) that can be in one of two states ($+1$ or $−1$, Ising model).\n", "With interactions between spins being short ranged, each spin interacts only with its four neighbors.\n", "The probability to find a spin in one of the orientations is a function of temperature $T$ according to $p \\sim e^{−a/T},\\;a = \\mathrm{const.}$).\n", "\n", "At extremely low temperatures $T \\rightarrow 0$, neighboring spins have a very low probability of different orientations, so that a uniform overall state (ferromagnetic state) is adopted, characterized by $+1$ or $−1$.\n", "At very high temperatures $T \\rightarrow \\infty$, a paramagnetic phase with random spin alignment results, yielding $50\\%$ of $+1$ and $0%$ of $−1$ orientations.\n", "Below a critical temperature $0 < T < T_c$, stable ferromagnetic domains emerge, with both orientations being equally probable in the absence of an external magnetic field.\n", "The spin-spin correlation function diverges at $T_c$, whereas the correlation decays for $T > T_c$.\n", "\n", "The data for this task contain the $n \\times n$ dipole orientations on the lattice for different temperatures $T$.\n", "Classify the two magnetic phases (paramagnetic/ferromagnetic) using a convolutional neural network!" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "keras 2.4.0\n" ] } ], "source": [ "from tensorflow import keras\n", "import numpy as np\n", "callbacks = keras.callbacks\n", "layers = keras.layers\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Load and prepare dataset\n", "See https://doi.org/10.1038/nphys4035 for more information" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import gdown\n", "url = \"https://drive.google.com/u/0/uc?export=download&confirm=HgGH&id=1Ihxt1hb3Kyv0IrjHlsYb9x9QY7l7n2Sl\"\n", "output = 'ising_data.npz'\n", "gdown.download(url, output, quiet=True)\n", "\n", "f = np.load(output)\n", "n_train = 20000\n", "\n", "x_train, x_test = f[\"C\"][:n_train], f[\"C\"][n_train:]\n", "T_train, T_test = f[\"T\"][:n_train], f[\"T\"][n_train:]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plot data" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "for i,j in enumerate(np.random.choice(n_train, 6)):\n", " plt.subplot(2,3,i+1)\n", " image = x_train[j]\n", " plot = plt.imshow(image)\n", " plt.title(\"T: %.2f\" % T_train[j])\n", "\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'frequency')" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.hist(T_test)\n", "plt.xlabel(\"T\")\n", "plt.ylabel(\"frequency\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Set up training data - define magnetic phases" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "Tc = 2.27\n", "y_train, y_test = T_train > Tc, T_test > Tc" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " ### Task\n", "\n", " - evaluate the test accuracy for a convolutional network,\n", " - plot the test accuracy vs. temperature.\n", " - compare to the results obtained using a fully-connected network (Exercise 7.1)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: \"sequential\"\n", "_________________________________________________________________\n", "Layer (type) Output Shape Param # \n", "=================================================================\n", "reshape (Reshape) (None, 32, 32, 1) 0 \n", "_________________________________________________________________\n", "conv2d (Conv2D) (None, 32, 32, 16) 160 \n", "_________________________________________________________________\n", "conv2d_1 (Conv2D) (None, 32, 32, 16) 2320 \n", "_________________________________________________________________\n", "max_pooling2d (MaxPooling2D) (None, 16, 16, 16) 0 \n", "_________________________________________________________________\n", "conv2d_2 (Conv2D) (None, 16, 16, 32) 4640 \n", "_________________________________________________________________\n", "conv2d_3 (Conv2D) (None, 16, 16, 32) 9248 \n", "_________________________________________________________________\n", "global_average_pooling2d (Gl (None, 32) 0 \n", "_________________________________________________________________\n", "dropout (Dropout) (None, 32) 0 \n", "_________________________________________________________________\n", "dense (Dense) (None, 1) 33 \n", "=================================================================\n", "Total params: 16,401\n", "Trainable params: 16,401\n", "Non-trainable params: 0\n", "_________________________________________________________________\n" ] } ], "source": [ "model = keras.models.Sequential()\n", "model.add(layers.InputLayer(input_shape=(32, 32)))\n", "model.add(layers.Reshape((32, 32,1)))\n", "model.add(layers.Convolution2D(16, (3, 3), padding='same', activation='relu'))\n", "model.add(layers.Convolution2D(16, (3, 3), padding='same', activation='relu'))\n", "model.add(layers.MaxPooling2D((2, 2)))\n", "model.add(layers.Convolution2D(32, (3, 3), padding='same', activation='relu'))\n", "model.add(layers.Convolution2D(32, (3, 3), padding='same', activation='relu'))\n", "model.add(layers.GlobalAveragePooling2D())\n", "model.add(layers.Dropout(0.25))\n", "model.add(layers.Dense(1, activation='sigmoid'))\n", "\n", "model.summary()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### prepare model for training" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "model.compile(\n", " loss='binary_crossentropy',\n", " optimizer=keras.optimizers.Adam(0.001),\n", " metrics=['accuracy'])\n" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/50\n", "282/282 - 10s - loss: 0.0859 - accuracy: 0.9613 - val_loss: 0.0413 - val_accuracy: 0.9820\n", "Epoch 2/50\n", "282/282 - 14s - loss: 0.0448 - accuracy: 0.9805 - val_loss: 0.0366 - val_accuracy: 0.9835\n", "Epoch 3/50\n", "282/282 - 14s - loss: 0.0443 - accuracy: 0.9821 - val_loss: 0.0365 - val_accuracy: 0.9835\n", "Epoch 4/50\n", "282/282 - 14s - loss: 0.0458 - accuracy: 0.9795 - val_loss: 0.0373 - val_accuracy: 0.9850\n", "Epoch 5/50\n", "282/282 - 13s - loss: 0.0442 - accuracy: 0.9808 - val_loss: 0.0367 - val_accuracy: 0.9850\n", "\n", "Epoch 00005: ReduceLROnPlateau reducing learning rate to 0.0006700000318232924.\n", "Epoch 6/50\n", "282/282 - 13s - loss: 0.0413 - accuracy: 0.9822 - val_loss: 0.0366 - val_accuracy: 0.9855\n", "Epoch 7/50\n", "282/282 - 14s - loss: 0.0404 - accuracy: 0.9816 - val_loss: 0.0365 - val_accuracy: 0.9855\n", "\n", "Epoch 00007: ReduceLROnPlateau reducing learning rate to 0.0004489000252215192.\n", "Epoch 8/50\n", "282/282 - 13s - loss: 0.0396 - accuracy: 0.9827 - val_loss: 0.0376 - val_accuracy: 0.9810\n", "Epoch 00008: early stopping\n" ] } ], "source": [ "results = model.fit(x_train, y_train,\n", " batch_size=64,\n", " epochs=50,\n", " verbose=2,\n", " validation_split=0.1,\n", " callbacks=[\n", " callbacks.EarlyStopping(patience=5, verbose=1),\n", " callbacks.ReduceLROnPlateau(factor=0.67, patience=2, verbose=1)]\n", " )" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure(1, (12, 4))\n", "plt.subplot(1, 2, 1)\n", "plt.plot(results.history['loss'])\n", "plt.plot(results.history['val_loss'])\n", "plt.ylabel('loss')\n", "plt.xlabel('epoch')\n", "plt.legend(['train', 'val'], loc='upper right')" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure(1, (12, 4))\n", "plt.subplot(1, 2, 1)\n", "plt.plot(results.history['accuracy'])\n", "plt.plot(results.history['val_accuracy'])\n", "plt.ylabel('accuracy')\n", "plt.xlabel('epoch')\n", "plt.legend(['train', 'val'], loc='upper right')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Evaluate training" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import seaborn as sns\n", "\n", "preds = model.predict(x_test).round().squeeze()\n", "acc = (preds == y_test).astype(np.float)\n", "\n", "ax = sns.regplot(x=T_test, y=acc, x_estimator= np.mean, fit_reg=False)\n", "ax.set_ylabel(\"accuracy\")\n", "ax.set_xlabel(\"T\")\n", "plt.axvline(x=Tc, color='k', linestyle='--', label='Tc')" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.9" } }, "nbformat": 4, "nbformat_minor": 4 }