From 1274ed77fb4c392fa267314eb4f67c3d6447ae75 Mon Sep 17 00:00:00 2001 From: David Bailey Date: Thu, 26 Oct 2017 23:29:41 +0200 Subject: [PATCH] Add files via upload --- neuralnetworks.ipynb | 478 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 478 insertions(+) create mode 100644 neuralnetworks.ipynb diff --git a/neuralnetworks.ipynb b/neuralnetworks.ipynb new file mode 100644 index 0000000..f111e66 --- /dev/null +++ b/neuralnetworks.ipynb @@ -0,0 +1,478 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Common Activation Functions" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n/QAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nfgAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "from math import tanh\n", + "from matplotlib import pyplot as plt\n", + "i = np.arange(-10, 10, .1)\n", + "\n", + "def softplus(x):\n", + " return np.log(1 + np.exp(x))\n", + "\n", + "plt.plot(i, softplus(i))\n", + "plt.ylabel('softplus(x)')\n", + "plt.show()\n", + "\n", + "def logistic_sigmoid(x):\n", + " return 1 / (1 + np.exp(-x))\n", + "\n", + "plt.plot(i, logistic_sigmoid(i))\n", + "plt.ylabel('logistic_sigmoid(x)')\n", + "plt.show()\n", + "\n", + "def softmax(x):\n", + " e_x = np.exp(x - np.max(x))\n", + " return e_x / e_x.sum()\n", + "\n", + "plt.plot(i, softmax(i))\n", + "plt.ylabel('softmax(x)')\n", + "plt.show()\n", + "\n", + "def rectified_linear_activation_function(z):\n", + " return max([0, z])\n", + "\n", + "plt.plot(i, list(map(rectified_linear_activation_function, i)))\n", + "plt.ylabel('rectified_linear_activation_function(x)')\n", + "plt.show()\n", + "\n", + "plt.plot(i, list(map(tanh, i)))\n", + "plt.ylabel('tanh(x)')\n", + "plt.show()\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### XOR as a Neural Network in Numpy, Keras (TensorFlow), TensorFlow, and PyTorch" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "XOR with Numpy" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "matrix([[0],\n", + " [1],\n", + " [1],\n", + " [0]])" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import numpy as np\n", + "\n", + "X = np.matrix([[0, 0],\n", + " [0, 1],\n", + " [1, 0],\n", + " [1, 1]])\n", + "W = np.matrix([[1, 1],\n", + " [1, 1]])\n", + "c = np.array([0, -1])\n", + "w = np.matrix([[1],\n", + " [-2]])\n", + "\n", + "A_in = (X * W + c)\n", + "A_out = np.matrix([list(rectified_linear_activation_function(y) for y in x) for x in A_in.tolist()])\n", + "A_out * w" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "XOR with Keras" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4/4 [==============================] - 0s\n" + ] + }, + { + "data": { + "text/plain": [ + "array([[0],\n", + " [1],\n", + " [1],\n", + " [0]], dtype=int32)" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import keras\n", + "\n", + "model = keras.models.Sequential()\n", + "model.add(keras.layers.core.Dense(2, activation='relu', input_shape=(2,)))\n", + "model.add(keras.layers.core.Dense(1)) # linear is the default activation (https://keras.io/activations/)\n", + "model.set_weights([\n", + " np.array([[1 , 1], [1, 1]]),\n", + " np.array([ 0, -1]),\n", + " np.array([[1], [-2]]),\n", + " np.array([ 0])\n", + "])\n", + "model.predict_classes(X)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "XOR with TensorFlow" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 0.],\n", + " [ 1.],\n", + " [ 1.],\n", + " [ 0.]])" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import tensorflow as tf\n", + "\n", + "tfX = tf.constant(X, dtype='float64')\n", + "tfW = tf.Variable(W, dtype='float64')\n", + "tfc = tf.Variable(c, dtype='float64')\n", + "tfw = tf.Variable(w, dtype='float64')\n", + "\n", + "node1 = tf.matmul(tfX, tfW)\n", + "node2 = tf.add(node1, tfc)\n", + "node3 = tf.nn.relu(node2)\n", + "node4 = tf.matmul(node3, tfw)\n", + "\n", + "init = tf.global_variables_initializer()\n", + "sess = tf.Session()\n", + "sess.run(init)\n", + "sess.run(node4)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "XOR with PyTorch" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Variable containing:\n", + " 0\n", + " 1\n", + " 1\n", + " 0\n", + "[torch.FloatTensor of size 4x1]" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from torch import Tensor\n", + "from torch.autograd import Variable\n", + "from torch.nn import Module, Linear, Parameter \n", + "from torch.nn.functional import relu\n", + "\n", + "class Net(Module):\n", + " def __init__(self):\n", + " super(Net, self).__init__()\n", + " self.fc1 = Linear(2, 2)\n", + " self.fc2 = Linear(2, 1)\n", + " def forward(self, x):\n", + " x = relu(self.fc1(x))\n", + " x = self.fc2(x)\n", + " return x\n", + "\n", + "net = Net()\n", + "\n", + "net.fc1.weight = Parameter(Tensor([[1, 1],\n", + " [1, 1]]))\n", + "net.fc1.bias = Parameter(Tensor([[0, -1]]))\n", + "net.fc2.weight = Parameter(Tensor([[1, -2]]))\n", + "net.fc2.bias = Parameter(Tensor([[0]]))\n", + "\n", + "input = Variable(Tensor([[0, 0],\n", + " [0, 1],\n", + " [1, 0],\n", + " [1, 1]]))\n", + "out = net(input)\n", + "out" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Neural Network w/ Loss Function, Gradient, and Optimization defined with Sympy" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "forward: w*x\n", + "loss: (w*x - y)**2\n", + "gradient: 2*x*(w*x - y)\n", + "w: 2\n", + "learning_rate: 0.01 \n", + "\n", + "x: 1 y: 2 w: 2\n", + "gradient: 0.e-141\n", + "x: 2 y: 4 w: 2.00000000000000\n", + "gradient: 0.e-140\n", + "x: 3 y: 6 w: 2.00000000000000\n", + "gradient: 0.e-140\n", + "loss: 4.62129760221396e-274 \n", + "\n", + "x: 1 y: 2 w: 2.00000000000000\n", + "gradient: 0.e-141\n", + "x: 2 y: 4 w: 2.00000000000000\n", + "gradient: 0.e-140\n", + "x: 3 y: 6 w: 2.00000000000000\n", + "gradient: 0.e-140\n", + "loss: 4.62129760221396e-274 \n", + "\n", + "x: 1 y: 2 w: 2.00000000000000\n", + "gradient: 0.e-141\n", + "x: 2 y: 4 w: 2.00000000000000\n", + "gradient: 0.e-140\n", + "x: 3 y: 6 w: 2.00000000000000\n", + "gradient: 0.e-140\n", + "loss: 4.62129760221396e-274 \n", + "\n", + "x: 1 y: 2 w: 2.00000000000000\n", + "gradient: 0.e-141\n", + "x: 2 y: 4 w: 2.00000000000000\n", + "gradient: 0.e-140\n", + "x: 3 y: 6 w: 2.00000000000000\n", + "gradient: 0.e-140\n", + "loss: 4.62129760221396e-274 \n", + "\n", + "x: 1 y: 2 w: 2.00000000000000\n", + "gradient: 0.e-141\n", + "x: 2 y: 4 w: 2.00000000000000\n", + "gradient: 0.e-140\n", + "x: 3 y: 6 w: 2.00000000000000\n", + "gradient: 0.e-140\n", + "loss: 4.62129760221396e-274 \n", + "\n", + "x: 1 y: 2 w: 2.00000000000000\n", + "gradient: 0.e-141\n", + "x: 2 y: 4 w: 2.00000000000000\n", + "gradient: 0.e-140\n", + "x: 3 y: 6 w: 2.00000000000000\n", + "gradient: 0.e-140\n", + "loss: 4.62129760221396e-274 \n", + "\n", + "x: 1 y: 2 w: 2.00000000000000\n", + "gradient: 0.e-141\n", + "x: 2 y: 4 w: 2.00000000000000\n", + "gradient: 0.e-140\n", + "x: 3 y: 6 w: 2.00000000000000\n", + "gradient: 0.e-140\n", + "loss: 4.62129760221396e-274 \n", + "\n", + "x: 1 y: 2 w: 2.00000000000000\n", + "gradient: 0.e-141\n", + "x: 2 y: 4 w: 2.00000000000000\n", + "gradient: 0.e-140\n", + "x: 3 y: 6 w: 2.00000000000000\n", + "gradient: 0.e-140\n", + "loss: 4.62129760221396e-274 \n", + "\n", + "x: 1 y: 2 w: 2.00000000000000\n", + "gradient: 0.e-141\n", + "x: 2 y: 4 w: 2.00000000000000\n", + "gradient: 0.e-140\n", + "x: 3 y: 6 w: 2.00000000000000\n", + "gradient: 0.e-140\n", + "loss: 4.62129760221396e-274 \n", + "\n", + "x: 1 y: 2 w: 2.00000000000000\n", + "gradient: 0.e-141\n", + "x: 2 y: 4 w: 2.00000000000000\n", + "gradient: 0.e-140\n", + "x: 3 y: 6 w: 2.00000000000000\n", + "gradient: 0.e-140\n", + "loss: 4.62129760221396e-274 \n", + "\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "import sympy\n", + "\n", + "x_data = np.array([1, 2, 3])\n", + "y_data = np.array([2, 4, 6])\n", + "\n", + "x, y, w, y_pred = sympy.symbols('x y w y_pred')\n", + "y_pred = x * w\n", + "print('forward:', y_pred)\n", + "loss = (y_pred - y)**2\n", + "print('loss:', loss)\n", + "gradient = sympy.diff(loss, w)\n", + "print('gradient:', gradient)\n", + "\n", + "w_in = np.random.randint(0,3)\n", + "print('w:', w_in)\n", + "learning_rate = 0.01\n", + "print('learning_rate:', learning_rate, '\\n')\n", + "for epoch in range(10):\n", + " for x_in, y_in in zip(x_data, y_data):\n", + " print('x:', x_in, 'y:', y_in, 'w:', w_in)\n", + " grad = gradient.evalf(subs={x: x_in, y: y_in, w: w_in})\n", + " print('gradient:', grad)\n", + " w_in = w_in - learning_rate * grad\n", + " l = loss.evalf(subs={x: x_in, y: y_in, w: w_in})\n", + " print('loss:', l, '\\n')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "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.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}