Skip to content

Instantly share code, notes, and snippets.

@myui
Last active August 6, 2018 05:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save myui/71a8154c8fe7a20aa17ad30ea37564b6 to your computer and use it in GitHub Desktop.
Save myui/71a8154c8fe7a20aa17ad30ea37564b6 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import sys\n",
"import numpy as np\n",
"import math\n",
"import random\n",
"import matplotlib\n",
"import matplotlib.pylab as plt\n",
"from matplotlib.patches import Rectangle"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"\n",
"plt_color_array = ['blue', 'cyan', 'green', 'black', 'magenta', 'red', 'yellow']\n",
"plt_dict = dict()\n",
"sigmoid = lambda x: 1.0 / (1.0 + np.exp(-x))\n",
"random.seed(1024)\n",
"num_input = 2\n",
"num_hidden = 64\n",
"num_output = 2\n",
"opt_algo_set = ['SGD', 'Momentum', 'NAG', 'Adagrad', 'Adadelta', 'RMSprop', 'Adam']"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"class NeuralNet:\n",
" def __init__(self, num_input, num_hidden, num_output):\n",
" self.num_input = num_input\n",
" self.num_hidden = num_hidden\n",
" self.num_output = num_output\n",
" def train(self, x, y, opt_algo, num_epoch = 30, mini_batch = 100, lambda_ = 0.01):\n",
" if not opt_algo in opt_algo_set:\n",
" print ('opt_algo not in %s' % opt_algo_set)\n",
" return\n",
" num_params = self.num_hidden * (self.num_input + 1) + self.num_output * (self.num_hidden + 1)\n",
" w = np.matrix(0.005 * np.random.random([num_params, 1]))\n",
" data = np.column_stack([x, y])\n",
" gamma = 0.9\n",
" epsilon = 1e-8\n",
" if opt_algo == 'RMSprop' or opt_algo == 'Adam':\n",
" eta = 0.001\n",
" else:\n",
" eta = 0.05\n",
" v = np.matrix(np.zeros(w.shape))\n",
" m = np.matrix(np.zeros(w.shape))\n",
" beta1 = 0.9\n",
" beta2 = 0.999\n",
" beta1_exp = 1.0\n",
" beta2_exp = 1.0\n",
" grad_sum_square = np.matrix(np.zeros(w.shape))\n",
" grad_expect = np.matrix(np.zeros(w.shape))\n",
" delta_expect = np.matrix(np.zeros(w.shape))\n",
" first_run = True\n",
" for epoch in range(num_epoch):\n",
" np.random.shuffle(data)\n",
" k = 0\n",
" cost_array = list()\n",
" while k < len(data):\n",
" x = data[k : k + mini_batch, 0 : -1]\n",
" y = np.matrix(data[k : k + mini_batch, -1], dtype = 'int32')\n",
" if opt_algo == 'SGD':\n",
" cost, grad = self.gradient(x, y, lambda_, w)\n",
" w -= eta * grad\n",
" elif opt_algo == 'Momentum':\n",
" cost, grad = self.gradient(x, y, lambda_, w)\n",
" v = gamma * v + eta * grad\n",
" w -= v\n",
" elif opt_algo == 'NAG':\n",
" cost, grad = self.gradient(x, y, lambda_, w - gamma * v)\n",
" v = gamma * v + eta * grad\n",
" w -= v\n",
" elif opt_algo == 'Adagrad':\n",
" cost, grad = self.gradient(x, y, lambda_, w)\n",
" grad_sum_square += np.square(grad)\n",
" delta = eta * grad / np.sqrt(grad_sum_square + epsilon)\n",
" w -= delta\n",
" elif opt_algo == 'Adadelta':\n",
" cost, grad = self.gradient(x, y, lambda_, w)\n",
" grad_expect = gamma * grad_expect + (1.0 - gamma) * np.square(grad)\n",
" if first_run == True:\n",
" delta = eta * grad\n",
" else:\n",
" delta = np.multiply(np.sqrt(delta_expect + epsilon) / np.sqrt(grad_expect + epsilon), grad)\n",
" w -= delta\n",
" delta_expect = gamma * delta_expect + (1.0 - gamma) * np.square(delta)\n",
" elif opt_algo == 'RMSprop':\n",
" cost, grad = self.gradient(x, y, lambda_, w)\n",
" grad_expect = gamma * grad_expect + (1.0 - gamma) * np.square(grad)\n",
" w -= eta * grad / np.sqrt(grad_expect + epsilon)\n",
" elif opt_algo == 'Adam':\n",
" cost, grad = self.gradient(x, y, lambda_, w)\n",
" m = beta1 * m + (1.0 - beta1) * grad\n",
" v = beta2 * v + (1.0 - beta2) * np.square(grad)\n",
" beta1_exp *= beta1\n",
" beta2_exp *= beta2\n",
" w -= eta * (m / (1.0 - beta1_exp)) / (np.sqrt(v / (1.0 - beta2_exp)) + epsilon)\n",
" k += mini_batch\n",
" cost_array.append(cost)\n",
" if first_run == True:\n",
" first_run = False\n",
" if not opt_algo in plt_dict:\n",
" plt_dict[opt_algo] = list()\n",
" plt_dict[opt_algo].extend(cost_array)\n",
" self.w1 = w[0 : self.num_hidden * (self.num_input + 1)].reshape(self.num_hidden, self.num_input + 1)\n",
" self.w2 = w[self.num_hidden * (self.num_input + 1) : ].reshape(self.num_output, self.num_hidden + 1)\n",
" def gradient(self, x, y, lambda_, w):\n",
" num_sample = len(x)\n",
" w1 = w[0 : self.num_hidden * (self.num_input + 1)].reshape(self.num_hidden, self.num_input + 1)\n",
" w2 = w[self.num_hidden * (self.num_input + 1) : ].reshape(self.num_output, self.num_hidden + 1)\n",
" b = np.matrix(np.ones([num_sample, 1]))\n",
" a1 = np.column_stack([x, b])\n",
" s2 = sigmoid(a1 * w1.T)\n",
" a2 = np.column_stack([s2, b])\n",
" a3 = sigmoid(a2 * w2.T)\n",
" y_one_hot = np.matrix(np.zeros([num_sample, self.num_output]))\n",
" y_one_hot[(np.matrix(range(num_sample)), y.T)] = 1\n",
" cost = (1.0 / num_sample) * (- np.multiply(y_one_hot, np.log(a3)) - np.multiply(1.0 - y_one_hot, np.log(1.0 - a3))).sum()\n",
" cost += (lambda_ / (2.0 * num_sample)) * (np.square(w1[ : , 0 : -1]).sum() + np.square(w2[ : , 0 : -1]).sum())\n",
" delta3 = a3 - y_one_hot\n",
" delta2 = np.multiply(delta3 * w2[ : , 0 : -1], np.multiply(s2, 1.0 - s2))\n",
" l1_grad = delta2.T * a1\n",
" l2_grad = delta3.T * a2\n",
" r1_grad = np.column_stack([w1[ : , 0 : -1], np.matrix(np.zeros([self.num_hidden, 1]))])\n",
" r2_grad = np.column_stack([w2[ : , 0 : -1], np.matrix(np.zeros([self.num_output, 1]))])\n",
" w1_grad = (1.0 / num_sample) * l1_grad + (1.0 * lambda_ / num_sample) * r1_grad\n",
" w2_grad = (1.0 / num_sample) * l2_grad + (1.0 * lambda_ / num_sample) * r2_grad\n",
" w_grad = np.row_stack([w1_grad.reshape(-1, 1), w2_grad.reshape(-1, 1)])\n",
" return cost, w_grad"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"if __name__ == '__main__':\n",
" x_train = np.array([[1, 0], [0, 1], [1, 1], [0, 0]])\n",
" y_train = np.array([[0], [0], [1], [1]])\n",
" x_test = np.array([[1, 0], [0, 1], [1, 1], [0, 0]])\n",
" y_test = np.array([[0], [0], [1], [1]])\n",
" clf = NeuralNet(num_input, num_hidden, num_output)\n",
" for opt_algo in opt_algo_set:\n",
" clf.train(x_train, y_train, opt_algo, num_epoch = 30, lambda_ = 0.1)\n",
" plt.subplot(111)\n",
" plt.title('Performance of different Gradient Descent Optimization')\n",
" plt.xlabel('epoch')\n",
" plt.ylabel('cost')\n",
" proxy = list()\n",
" legend_array = list()\n",
" for index, (opt_algo, epoch_cost) in enumerate(plt_dict.items()):\n",
" selected_color = plt_color_array[index % len(plt_color_array)]\n",
" plt.plot(range(len(epoch_cost)), epoch_cost, '-%s' % selected_color[0])\n",
" proxy.append(Rectangle((0, 0), 0, 0, facecolor = selected_color))\n",
" legend_array.append(opt_algo)\n",
" plt.legend(proxy, legend_array)\n",
" plt.savefig(\"nn-sgt1.png\")\n",
" plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import math\n",
"import contextlib"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {},
"outputs": [],
"source": [
"class SGD(object):\n",
" default_name = 'SGD'\n",
" default_color = 'gray'\n",
" def __init__(self, lr=0.01, name='', color=None, line=None):\n",
" self.name = name if name != '' else self.default_name\n",
" self.color = color or self.default_color\n",
" self.line = line or '-'\n",
"\n",
" self.lr = lr\n",
"\n",
" def __call__(self, g):\n",
" return self.lr * g\n",
"\n",
"\n",
"class MomentumSGD(object):\n",
" default_name = 'MomentumSGD'\n",
" default_color = 'green'\n",
" def __init__(self, lr=0.001, momentum=0.9, name='', color=None, line=None):\n",
" self.name = name if name != '' else self.default_name\n",
" self.color = color or self.default_color\n",
" self.line = line or '-'\n",
" self.lr = lr\n",
" self.momentum = momentum\n",
" self.v = None\n",
"\n",
" def __call__(self, g):\n",
" if self.v is None:\n",
" self.v = np.zeros_like(g)\n",
" self.v = self.momentum * self.v + self.lr * g\n",
" return self.v\n",
"\n",
"\n",
"class Adagrad(object):\n",
" default_name = 'Adagrad'\n",
" default_color = 'red'\n",
" def __init__(self, lr=0.001, eps=1e-8, name='', color=None, line=None):\n",
" self.name = name if name != '' else self.default_name\n",
" self.color = color or self.default_color\n",
" self.line = line or '-'\n",
"\n",
" self.lr = lr\n",
" self.eps = eps\n",
" self.g = None\n",
"\n",
" def __call__(self, g):\n",
" if self.g is None:\n",
" self.g = np.zeros_like(g)\n",
"\n",
" self.g += g * g\n",
" return self.lr / (np.sqrt(self.g) + self.eps) * g\n",
"\n",
"class Adagrad2(object):\n",
" default_name = 'Adagrad2'\n",
" default_color = 'pink'\n",
" def __init__(self, lr=0.001, eps=1.0, name='', color=None, line=None):\n",
" self.name = name if name != '' else self.default_name\n",
" self.color = color or self.default_color\n",
" self.line = line or '-'\n",
"\n",
" self.lr = lr\n",
" self.eps = eps\n",
" self.g = None\n",
"\n",
" def __call__(self, g):\n",
" if self.g is None:\n",
" self.g = np.zeros_like(g)\n",
"\n",
" gg = self.g\n",
" self.g += g * g\n",
" return self.lr / (np.sqrt(gg + self.eps)) * g\n",
" \n",
"class Adadelta(object):\n",
" default_name = 'Adadelta'\n",
" default_color = 'orange'\n",
" def __init__(self, rho=0.95, eps=1e-8, name='', color=None,\n",
" line=None):\n",
" self.name = name if name != '' else self.default_name\n",
" self.color = color or self.default_color\n",
" self.line = line or '-'\n",
"\n",
" self.rho = rho\n",
" self.eps = eps\n",
" self.dx = None\n",
" self.v = None\n",
"\n",
" def __call__(self, g):\n",
" if self.dx is None:\n",
" self.dx = np.zeros_like(g)\n",
" self.v = np.zeros_like(g)\n",
"\n",
" self.v = self.rho * self.v + (1. - self.rho) * g * g\n",
" dx = np.sqrt((self.dx + self.eps) / (self.v + self.eps)) * g\n",
" self.dx = self.rho * self.dx + (1. - self.rho) * dx * dx\n",
" return dx\n",
"\n",
"\n",
"class RMSProp(object):\n",
" default_name = 'RMSProp'\n",
" default_color = 'cyan'\n",
" def __init__(self, lr=0.001, alpha=0.99, eps=1e-8, name='',\n",
" color=None, line=None):\n",
" self.name = name if name != '' else self.default_name\n",
" self.color = color or self.default_color\n",
" self.line = line or '-'\n",
"\n",
" self.lr = lr\n",
" self.alpha = alpha\n",
" self.eps = eps\n",
" self.v = None\n",
"\n",
" def __call__(self, g):\n",
" if self.v is None:\n",
" self.v = np.zeros_like(g)\n",
"\n",
" self.v = self.alpha * self.v + (1. - self.alpha) * g * g\n",
" return self.lr / (np.sqrt(self.v) + self.eps) * g\n",
"\n",
"\n",
"class Adam(object):\n",
" default_name = 'Adam'\n",
" default_color = 'blue'\n",
" def __init__(self, lr=0.001, beta1=0.9, beta2=0.999, eps=1e-8,\n",
" name='', color=None, line=None):\n",
" self.name = name if name != '' else self.default_name\n",
" self.color = color or self.default_color\n",
" self.line = line or '-'\n",
"\n",
" self.lr = lr\n",
" self.beta1 = beta1\n",
" self.beta2 = beta2\n",
" self.eps = eps\n",
" self.m = None\n",
" self.v = None\n",
" self.t = 1\n",
"\n",
" def __call__(self, g):\n",
" if self.m is None:\n",
" self.m = np.zeros_like(g)\n",
" self.v = np.zeros_like(g)\n",
"\n",
" self.m = self.beta1 * self.m + (1. - self.beta1) * g\n",
" m_hat = self.m / (1.0 - pow(self.beta1, self.t))\n",
" self.v = self.beta2 * self.v + (1. - self.beta2) * g * g\n",
" v_hat = self.v / (1.0 - pow(self.beta2, self.t))\n",
" self.t += 1\n",
" return self.lr * m_hat / (np.sqrt(v_hat) + self.eps)\n"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"def calc_grad_change(optimizer, grads):\n",
" param_change = []\n",
" for g in grads:\n",
" param_change.append(optimizer(g))\n",
" return np.vstack(param_change)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"def draw_graphs(grads, optimizers):\n",
" plt.axhline(y=0, color='k')\n",
" for o in optimizers:\n",
" plt.plot(range(len(grads)), calc_grad_change(o, grads),\n",
" label=o.name, color=o.color, linestyle=o.line)\n",
"\n",
" \n",
"@contextlib.contextmanager\n",
"def new_plot(ymin=-0.02, ymax=0.02):\n",
" plt.close()\n",
" yield\n",
" plt.ylim(ymin, ymax)\n",
" plt.xlabel('Steps')\n",
" plt.ylabel('Parameter update ratio')\n",
" plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)\n",
" plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"\n",
"\n",
"with new_plot(ymin=0.0, ymax=0.011):\n",
" draw_graphs(np.ones((100, 1)),\n",
" [\n",
" SGD(),\n",
" MomentumSGD(),\n",
" # Adagrad(),\n",
" Adagrad2(),\n",
" Adadelta(),\n",
" RMSProp(),\n",
" Adam()\n",
" ])\n",
" draw_graphs(np.ones((100, 1)) * 3.0,\n",
" [\n",
" SGD(name=None, line='dashed'),\n",
" MomentumSGD(name=None, line='dashed'),\n",
" Adagrad(name=None, line='dashed'),\n",
" Adadelta(name=None, line='dashed'),\n",
" RMSProp(name=None, line='dashed'),\n",
" Adam(name=None, line='dashed')\n",
" ])\n"
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"with new_plot(ymin=-0.001, ymax=0.001):\n",
" draw_graphs(np.sin(np.arange(300) * math.pi * 0.05).reshape(-1, 1),\n",
" [\n",
" Adagrad(), \n",
" Adagrad2(),\n",
" Adam()\n",
" ])"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7f9769acb828>]"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(np.sin(np.arange(300) * math.pi * 0.05).reshape(-1, 1))"
]
},
{
"cell_type": "code",
"execution_count": 67,
"metadata": {},
"outputs": [],
"source": [
"def rosenbrock(x,y):\n",
" return (1-x)**2 + 100* ((y-x**2))**2"
]
},
{
"cell_type": "code",
"execution_count": 70,
"metadata": {},
"outputs": [],
"source": [
"from mpl_toolkits.mplot3d import Axes3D\n",
"from matplotlib import cm\n",
"from matplotlib.ticker import LinearLocator, FormatStrFormatter\n",
"import matplotlib.pyplot as plot\n",
"import numpy as np\n"
]
},
{
"cell_type": "code",
"execution_count": 71,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig = plot.figure()\n",
"ax = fig.gca(projection='3d')"
]
},
{
"cell_type": "code",
"execution_count": 72,
"metadata": {},
"outputs": [],
"source": [
"s = 0.05 # Try s=1, 0.25, 0.1, or 0.05\n",
"X = np.arange(-2, 2.+s, s) #Could use linspace instead if dividing\n",
"Y = np.arange(-2, 3.+s, s) #evenly instead of stepping...\n",
" \n",
"#Create the mesh grid(s) for all X/Y combos.\n",
"X, Y = np.meshgrid(X, Y)"
]
},
{
"cell_type": "code",
"execution_count": 80,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.colorbar.Colorbar at 0x7f9769adaa58>"
]
},
"execution_count": 80,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#Rosenbrock function w/ two parameters using numpy Arrays\n",
"Z = (1.-X)**2 + 100.*(Y-X*X)**2\n",
"\n",
"surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm,\n",
" linewidth=0, antialiased=False) #Try coolwarm vs jet\n",
"\n",
" \n",
"ax.zaxis.set_major_locator(LinearLocator(10))\n",
"ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))\n",
"\n",
"fig.colorbar(surf, shrink=0.5, aspect=5)"
]
},
{
"cell_type": "code",
"execution_count": 81,
"metadata": {},
"outputs": [],
"source": [
"plot.show()"
]
},
{
"cell_type": "code",
"execution_count": 77,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<Figure size 432x288 with 0 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"flg = plot.figure()"
]
},
{
"cell_type": "code",
"execution_count": 82,
"metadata": {},
"outputs": [],
"source": [
"ax = fig.gca(projection='3d')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"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.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment