{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# SYA-KE Deep Learning Training" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "\"OReilyBook\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Parent Repository URL " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[https://github.com/oreilly-japan/deep-learning-from-scratch](https://github.com/oreilly-japan/deep-learning-from-scratch)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Pythonに慣れる" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Python 3.6.5\n" ] } ], "source": [ "!python --version" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "#もう何年もやってるので省略" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Numpyに慣れる" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 参考URL" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[http://www.sist.ac.jp/~kanakubo/research/hosoku/gyoretu.html](http://www.sist.ac.jp/~kanakubo/research/hosoku/gyoretu.html)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 配列、行列" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "import numpy as np" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'1.14.3'" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.__version__" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "x = np.array([1.0,2.0,3.0])" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "y = np.array([2.0,4.0,6.0])" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([3., 6., 9.])" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x + y" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([-1., -2., -3.])" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x - y" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 2., 8., 18.])" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x * y" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0.5, 0.5, 0.5])" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x / y" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0.5, 1. , 1.5])" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x / 2.0" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "A = np.array([[1,2],[3,4]])" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[1 2]\n", " [3 4]]\n" ] } ], "source": [ "print(A)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(2, 2)" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A.shape" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dtype('int32')" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A.dtype" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "B = np.array([[3,0],[0,6]])" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 4, 2],\n", " [ 3, 10]])" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A + B" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 3, 0],\n", " [ 0, 24]])" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A * B" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[10, 20],\n", " [30, 40]])" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A*10" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[参考](http://www.scipy-lectures.org/intro/numpy/operations.html)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[51, 55],\n", " [14, 19],\n", " [ 0, 4]])" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X = np.array([[51,55],[14,19],[0,4]])\n", "X" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([51, 55])" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X[0] #0行目" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "55" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X[0][1] #(0,1) =>(0行1列)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[51 55]\n", "[14 19]\n", "[0 4]\n" ] } ], "source": [ "for row in X:\n", " print(row)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([51, 55, 14, 19, 0, 4])" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "AX = X.flatten() #行列を配列に\n", "AX" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([51, 55, 19])" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "AX[AX>15]#配列から条件の値を抽出" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "array([[ True, True],\n", " [False, True],\n", " [False, False]])" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X>15" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/plain": [ "array([51, 55, 19])" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X[X>15]#行列でもできる。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "ニューラルネットワークにおいては行列は 行数=入力数 列数=重み数" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Matplotlibに慣れる" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[参考URL](http://qiita.com/hik0107/items/de5785f680096df93efa)" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "x = np.arange(0,6,0.1) #0to6 by 0.1 => sin(0to6)\n", "y = np.sin(x)\n", "plt.plot(x,y)\n", "plt.show()\n", "plt.close()" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "x = np.arange(0,6,0.1) #0to6 by 0.1 => sin(0to6)\n", "y1 = np.sin(x)\n", "y2 = np.cos(x)\n", "plt.plot(x,y1,label=\"sin(x)\")\n", "plt.plot(x,y2,label=\"cos(x)\", linestyle=\"--\")\n", "plt.xlabel(\"x\")\n", "plt.ylabel(\"y\")\n", "plt.title(\"sin(x), cos(x)\")\n", "plt.legend()#show label box\n", "plt.show()\n", "plt.close()" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "#plt.show()をinlineにて表示する\n", "#Esc+Lで行番号を表示する\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "x = np.arange(0,6,0.1) #0to6 by 0.1 => sin(0to6)\n", "y1 = np.sin(x)\n", "y2 = np.cos(x)\n", "plt.plot(x,y1,label=\"sin(x)\")\n", "plt.plot(x,y2,label=\"cos(x)\", linestyle=\"--\")\n", "plt.axhline(color='black',linestyle=\"--\")\n", "plt.xlabel(\"x\")\n", "plt.ylabel(\"y\")\n", "plt.title(\"sin(x), cos(x), y=0\")\n", "plt.legend()#show label box\n", "plt.show()\n", "plt.close()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# パーセプトロンに慣れる" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\r\n", "\r\n", "\r\n", "\r\n", "\r\n", "\r\n", "%3\r\n", "\r\n", "cluster_x\r\n", "\r\n", "入力層\r\n", "\r\n", "cluster_y\r\n", "\r\n", "出力層\r\n", "\r\n", "\r\n", "x1\r\n", "\r\n", "x1:入力1\r\n", "\r\n", "\r\n", "y\r\n", "\r\n", "y:出力1\r\n", "\r\n", "\r\n", "x1->y\r\n", "\r\n", "\r\n", "w1:重み1\r\n", "\r\n", "\r\n", "x2\r\n", "\r\n", "x2:入力2\r\n", "\r\n", "\r\n", "x2->y\r\n", "\r\n", "\r\n", "w2:重み2\r\n", "\r\n", "\r\n", "\r\n" ], "text/plain": [ "" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from graphviz import Digraph\n", "dot = Digraph(comment=\"単純パーセプトロン\")\n", "dot.attr(rankdir=\"LR\")\n", "dot.attr(splines=\"line\")\n", "dot.attr(fixedsize=\"true\")\n", "with dot.subgraph(name=\"cluster_x\") as x:\n", " x.attr(label=\"入力層\")\n", " x.attr(color=\"white\")\n", " x.node(\"x1\",\"x1:入力1\")\n", " x.node(\"x2\",\"x2:入力2\")\n", "with dot.subgraph(name=\"cluster_y\") as y:\n", " y.attr(label=\"出力層\")\n", " y.attr(color=\"white\")\n", " y.node(\"y\",\"y:出力1\")\n", "dot.edge(\"x1\", \"y\", label=\"w1:重み1\")\n", "dot.edge(\"x2\", \"y\", label=\"w2:重み2\")\n", "#print(dot)\n", "dot" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "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 }