{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/chris/.local/lib/python3.5/site-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.\n", " from ._conv import register_converters as _register_converters\n", "Using TensorFlow backend.\n" ] } ], "source": [ "%matplotlib inline\n", "\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from IPython.display import SVG\n", "from keras.utils.vis_utils import model_to_dot\n", "from utils import *" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Creating mock training and validation datasets\n", "\n", "Mock data are generated by adding a sinusoidal background on top of a sinusoidal signal of a different amplitude and frequency. The time series are divided into two parts: the first part being the training set and the second beign the validation set." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "X_train shape: (160, 1, 1)\n", "y_train shape: (160,)\n", "X_test shape: (40, 1, 1)\n", "y_test shape: (40,)\n" ] } ], "source": [ "# generate mock data\n", "measured, noise, clean = generate_data()\n", "\n", "# split into a training set and a validation set\n", "indx = int(0.8*measured.shape[0])\n", "X_train, y_train = noise[:indx], measured[:indx]\n", "X_test, y_test = noise[indx:], measured[indx:]\n", "\n", "# reshape network input\n", "X_train = X_train.reshape(-1, 1, 1)\n", "X_test = X_test.reshape(-1, 1, 1)\n", "\n", "print('X_train shape: {}'.format(X_train.shape))\n", "print('y_train shape: {}'.format(y_train.shape))\n", "print('X_test shape: {}'.format(X_test.shape))\n", "print('y_test shape: {}'.format(y_test.shape))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Visualize training data" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# plot time series\n", "fig, ax = plt.subplots()\n", "\n", "ax.plot(X_train[:, 0, 0], label='Measured')\n", "ax.plot(y_train, label='Noise')\n", "ax.set(xlabel='Time (s)', ylabel='Amplitude')\n", "ax.legend()\n", "\n", "fig.tight_layout()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Training the network\n", "\n", "Training an LSTM network to learn the noise source and subtract it from the data channel.\n", "\n", "Create an LSTM network and visualize the architecture" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "_________________________________________________________________\n", "Layer (type) Output Shape Param # \n", "=================================================================\n", "What (LSTM) (None, 32) 4352 \n", "_________________________________________________________________\n", "Is (Dense) (None, 8) 264 \n", "_________________________________________________________________\n", "Love (Dense) (None, 1) 9 \n", "=================================================================\n", "Total params: 4,625\n", "Trainable params: 4,625\n", "Non-trainable params: 0\n", "_________________________________________________________________\n" ] }, { "data": { "image/svg+xml": [ "\n", "\n", "G\n", "\n", "\n", "139728476508512\n", "\n", "What_input: InputLayer\n", "\n", "\n", "139728476696304\n", "\n", "What: LSTM\n", "\n", "\n", "139728476508512->139728476696304\n", "\n", "\n", "\n", "\n", "139728438452120\n", "\n", "Is: Dense\n", "\n", "\n", "139728476696304->139728438452120\n", "\n", "\n", "\n", "\n", "139728438448312\n", "\n", "Love: Dense\n", "\n", "\n", "139728438452120->139728438448312\n", "\n", "\n", "\n", "\n", "" ], "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "input_shape = X_train.shape[1:]\n", "model = create_model(input_shape)\n", "\n", "model.summary()\n", "SVG(model_to_dot(model).create(prog='dot', format='svg'))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Train the LSTM network and plot training and validation losses" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Train on 160 samples, validate on 40 samples\n", "Epoch 1/20\n", "160/160 [==============================] - 0s 2ms/step - loss: 0.5480 - val_loss: 0.5460\n", "Epoch 2/20\n", "160/160 [==============================] - 0s 109us/step - loss: 0.5471 - val_loss: 0.5451\n", "Epoch 3/20\n", "160/160 [==============================] - 0s 73us/step - loss: 0.5458 - val_loss: 0.5449\n", "Epoch 4/20\n", "160/160 [==============================] - 0s 172us/step - loss: 0.5450 - val_loss: 0.5445\n", "Epoch 5/20\n", "160/160 [==============================] - 0s 140us/step - loss: 0.5446 - val_loss: 0.5440\n", "Epoch 6/20\n", "160/160 [==============================] - 0s 97us/step - loss: 0.5452 - val_loss: 0.5438\n", "Epoch 7/20\n", "160/160 [==============================] - 0s 145us/step - loss: 0.5437 - val_loss: 0.5434\n", "Epoch 8/20\n", "160/160 [==============================] - 0s 86us/step - loss: 0.5436 - val_loss: 0.5429\n", "Epoch 9/20\n", "160/160 [==============================] - 0s 137us/step - loss: 0.5430 - val_loss: 0.5426\n", "Epoch 10/20\n", "160/160 [==============================] - 0s 123us/step - loss: 0.5435 - val_loss: 0.5424\n", "Epoch 11/20\n", "160/160 [==============================] - 0s 126us/step - loss: 0.5428 - val_loss: 0.5420\n", "Epoch 12/20\n", "160/160 [==============================] - 0s 127us/step - loss: 0.5423 - val_loss: 0.5416\n", "Epoch 13/20\n", "160/160 [==============================] - 0s 158us/step - loss: 0.5418 - val_loss: 0.5412\n", "Epoch 14/20\n", "160/160 [==============================] - 0s 91us/step - loss: 0.5411 - val_loss: 0.5409\n", "Epoch 15/20\n", "160/160 [==============================] - 0s 74us/step - loss: 0.5416 - val_loss: 0.5405\n", "Epoch 16/20\n", "160/160 [==============================] - 0s 109us/step - loss: 0.5407 - val_loss: 0.5401\n", "Epoch 17/20\n", "160/160 [==============================] - 0s 122us/step - loss: 0.5401 - val_loss: 0.5397\n", "Epoch 18/20\n", "160/160 [==============================] - 0s 111us/step - loss: 0.5396 - val_loss: 0.5393\n", "Epoch 19/20\n", "160/160 [==============================] - 0s 97us/step - loss: 0.5397 - val_loss: 0.5390\n", "Epoch 20/20\n", "160/160 [==============================] - 0s 145us/step - loss: 0.5394 - val_loss: 0.5385\n" ] }, { "data": { "image/png": "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\ne1sAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot train loss and val loss\n", "stats = model.fit(X_train, y_train, \n", " validation_data = (X_test, y_test),\n", " epochs=20, batch_size=32)\n", "\n", "fig, ax = plt.subplots()\n", "\n", "ax.plot(stats.history['loss'], label='train')\n", "ax.plot(stats.history['val_loss'], label='test')\n", "ax.set(xlabel='Epochs', ylabel='MSE Loss', xticks=np.arange(0, 21, 5))\n", "ax.legend()\n", "\n", "fig.tight_layout()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Results\n", "\n", "The trained network predict and subtract the noise source. Calculate the RMSE" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "RMSE: 0.19632732217681909\n" ] }, { "data": { "image/png": "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\nOt212+EWucUAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "y_pred = model.predict(X_test)\n", "y_pred = np.squeeze(y_pred)\n", "y_clean = y_test-y_pred\n", "\n", "print('RMSE: {}'.format(np.sqrt(np.mean((y_clean-clean[indx:])**2))))\n", "\n", "fig, ax = plt.subplots()\n", "\n", "ax.plot(y_pred, label='Prediction')\n", "ax.plot(y_clean, label='Subtraction')\n", "ax.plot(clean[indx:], label='True signal')\n", "ax.set(xlabel='Time (s)', ylabel='Amplitude')\n", "ax.legend()\n", "\n", "fig.tight_layout()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Hyperparameter Optimization\n", "\n", "Apply hyperparameter optimization using Hyperopt Tree-structured Parzen Estimators (TPE) and try to get a better RMSE" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "from hyperopt import fmin, tpe, hp, STATUS_OK, Trials" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "# define a search space\n", "space = {\n", " 'activation':hp.choice('activation', ('relu', 'tanh')),\n", " 'lr':hp.loguniform('lr', np.log(1e-6), np.log(1e-2)), \n", " 'dropout':hp.uniform('dropout', 0.0, 1.0), \n", " 'reg':hp.uniform('reg', 1e-6, 1e-3)\n", "}\n", "\n", "# define loss function\n", "def loss(params):\n", " \n", " input_shape = X_train.shape[1:]\n", " model = create_model(input_shape, **params)\n", "\n", " _ = model.fit(X_train, y_train, epochs=1, batch_size=32, verbose=0)\n", " val_loss = model.evaluate(X_test, y_test, verbose=1)\n", " print('Loss: {}'.format(val_loss))\n", " \n", " return {'loss':val_loss, 'status':STATUS_OK}" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Begin tuning\n", "------------\n", "40/40 [==============================] - 0s 2ms/step\n", "Loss: 0.5786983609199524\n", "40/40 [==============================] - 0s 3ms/step\n", "Loss: 1.102782917022705\n", "40/40 [==============================] - 0s 4ms/step\n", "Loss: 0.7187470674514771\n", "40/40 [==============================] - 0s 4ms/step\n", "Loss: 0.5550930500030518\n", "40/40 [==============================] - 0s 5ms/step\n", "Loss: 0.5837780833244324\n", "40/40 [==============================] - 0s 6ms/step\n", "Loss: 0.5605306148529052\n", "40/40 [==============================] - 0s 7ms/step\n", "Loss: 0.561450469493866\n", "40/40 [==============================] - 0s 7ms/step\n", "Loss: 0.5772148251533509\n", "40/40 [==============================] - 0s 8ms/step\n", "Loss: 0.6679161489009857\n", "40/40 [==============================] - 0s 9ms/step\n", "Loss: 0.5729451656341553\n", "40/40 [==============================] - 0s 10ms/step\n", "Loss: 0.9338226348161698\n", "40/40 [==============================] - 0s 10ms/step\n", "Loss: 0.6787738800048828\n", "40/40 [==============================] - 0s 11ms/step\n", "Loss: 1.4597121715545653\n", "40/40 [==============================] - 0s 12ms/step\n", "Loss: 0.5956997632980346\n", "40/40 [==============================] - 1s 13ms/step\n", "Loss: 0.5722716748714447\n", "40/40 [==============================] - 1s 14ms/step\n", "Loss: 0.5935169458389282\n", "40/40 [==============================] - 1s 14ms/step\n", "Loss: 0.7749105453491211\n", "40/40 [==============================] - 1s 19ms/step\n", "Loss: 0.6912153869867325\n", "40/40 [==============================] - 1s 16ms/step\n", "Loss: 0.5846617102622986\n", "40/40 [==============================] - 1s 17ms/step\n", "Loss: 0.573354697227478\n", "\n", "Best parameters:\n", "----------------\n", "activation = relu\n", "reg = 0.0008943804949462422\n", "lr = 0.0021212938566429265\n", "dropout = 0.22685124692574277\n" ] } ], "source": [ "print('Begin tuning')\n", "print('------------')\n", "trials = Trials()\n", "best_params = fmin(loss,\n", " space = space,\n", " algo = tpe.suggest,\n", " max_evals = 20,\n", " trials = trials)\n", "print('')\n", "print('Best parameters:')\n", "print('----------------')\n", "best_params['activation'] = ['relu', 'tanh'][best_params['activation']]\n", "for k, v in best_params.items():\n", " print('{} = {}'.format(k, v))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Train the network using the best hyperparameters" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Train on 160 samples, validate on 40 samples\n", "Epoch 1/20\n", "160/160 [==============================] - 2s 12ms/step - loss: 0.5562 - val_loss: 0.5429\n", "Epoch 2/20\n", "160/160 [==============================] - 0s 101us/step - loss: 0.5444 - val_loss: 0.5471\n", "Epoch 3/20\n", "160/160 [==============================] - 0s 107us/step - loss: 0.5513 - val_loss: 0.5434\n", "Epoch 4/20\n", "160/160 [==============================] - 0s 154us/step - loss: 0.5431 - val_loss: 0.5363\n", "Epoch 5/20\n", "160/160 [==============================] - 0s 196us/step - loss: 0.5331 - val_loss: 0.5341\n", "Epoch 6/20\n", "160/160 [==============================] - 0s 150us/step - loss: 0.5380 - val_loss: 0.5327\n", "Epoch 7/20\n", "160/160 [==============================] - 0s 128us/step - loss: 0.5314 - val_loss: 0.5323\n", "Epoch 8/20\n", "160/160 [==============================] - 0s 150us/step - loss: 0.5312 - val_loss: 0.5285\n", "Epoch 9/20\n", "160/160 [==============================] - 0s 158us/step - loss: 0.5402 - val_loss: 0.5273\n", "Epoch 10/20\n", "160/160 [==============================] - 0s 161us/step - loss: 0.5297 - val_loss: 0.5260\n", "Epoch 11/20\n", "160/160 [==============================] - 0s 117us/step - loss: 0.5269 - val_loss: 0.5245\n", "Epoch 12/20\n", "160/160 [==============================] - 0s 186us/step - loss: 0.5304 - val_loss: 0.5234\n", "Epoch 13/20\n", "160/160 [==============================] - 0s 147us/step - loss: 0.5271 - val_loss: 0.5232\n", "Epoch 14/20\n", "160/160 [==============================] - 0s 141us/step - loss: 0.5096 - val_loss: 0.5187\n", "Epoch 15/20\n", "160/160 [==============================] - 0s 143us/step - loss: 0.5250 - val_loss: 0.5204\n", "Epoch 16/20\n", "160/160 [==============================] - 0s 157us/step - loss: 0.5300 - val_loss: 0.5169\n", "Epoch 17/20\n", "160/160 [==============================] - 0s 141us/step - loss: 0.5149 - val_loss: 0.5162\n", "Epoch 18/20\n", "160/160 [==============================] - 0s 121us/step - loss: 0.5233 - val_loss: 0.5147\n", "Epoch 19/20\n", "160/160 [==============================] - 0s 224us/step - loss: 0.5255 - val_loss: 0.5142\n", "Epoch 20/20\n", "160/160 [==============================] - 0s 199us/step - loss: 0.5169 - val_loss: 0.5136\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "input_shape = X_train.shape[1:]\n", "model = create_model(input_shape, **best_params)\n", "\n", "\n", "# Plot train loss and val loss\n", "stats = model.fit(X_train, y_train, \n", " validation_data = (X_test, y_test),\n", " epochs=20, batch_size=32)\n", "\n", "fig, ax = plt.subplots()\n", "\n", "ax.plot(stats.history['loss'], label='train')\n", "ax.plot(stats.history['val_loss'], label='test')\n", "ax.set(xlabel='Epochs', ylabel='MSE Loss', xticks=np.arange(0, 21, 5))\n", "ax.legend()\n", "\n", "fig.tight_layout()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Results after tuning\n", "\n", "Plot subtraction after tuning and calculate the RMSE. We see that the performance post-tuning improves greatly." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "RMSE: 0.0760254564312577\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "y_pred = model.predict(X_test)\n", "y_pred = np.squeeze(y_pred)\n", "y_clean = y_test-y_pred\n", "\n", "print('RMSE: {}'.format(np.sqrt(np.mean((y_clean-clean[indx:])**2))))\n", "\n", "fig, ax = plt.subplots()\n", "\n", "ax.plot(y_pred, label='Prediction')\n", "ax.plot(y_clean, label='Subtraction')\n", "ax.plot(clean[indx:], label='True signal')\n", "ax.set(xlabel='Time (s)', ylabel='Amplitude')\n", "ax.legend()\n", "\n", "fig.tight_layout()" ] } ], "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.5.2" } }, "nbformat": 4, "nbformat_minor": 2 }