{"id":759,"date":"2020-04-26T14:08:02","date_gmt":"2020-04-26T05:08:02","guid":{"rendered":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=759"},"modified":"2020-04-26T14:08:02","modified_gmt":"2020-04-26T05:08:02","slug":"11%eb%9d%bc%ec%9d%b8%ec%9d%98-%ed%8c%8c%ec%9d%b4%ec%84%a0-%ec%bd%94%eb%93%9c%eb%a1%9c-%ec%84%a4%eb%aa%85%ed%95%98%eb%8a%94-%ec%8b%a0%ea%b2%bd%eb%a7%9d","status":"publish","type":"post","link":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=759","title":{"rendered":"11\ub77c\uc778\uc758 \ud30c\uc774\uc120 \ucf54\ub4dc\ub85c \uc124\uba85\ud558\ub294 \uc2e0\uacbd\ub9dd"},"content":{"rendered":"<h1>11\ub77c\uc778\uc758 \ud30c\uc774\uc120 \ucf54\ub4dc\ub85c \uc124\uba85\ud558\ub294 \uc2e0\uacbd\ub9dd<\/h1>\n<p><a href=\"http:\/\/iamtrask.github.io\/2015\/07\/12\/basic-python-network\/\">\ucc38\uc870<\/a><\/p>\n<p>\uba38\uc2e0 \ub7ec\ub2dd \uacf5\ubd80\ud560 \ub54c \uac00\uc7a5 \ub9ce\uc774 \ub3c4\uc6c0\uc774 \ub41c \ucf54\ub4dc\uc785\ub2c8\ub2e4.<\/p>\n<h2>\ucf54\ub4dc<\/h2>\n<pre><code class=\"language-python\">X = np.array([ [0,0,1],[0,1,1],[1,0,1],[1,1,1] ])\ny = np.array([[0,1,1,0]]).T\nsyn0 = 2*np.random.random((3,4)) - 1\nsyn1 = 2*np.random.random((4,1)) - 1\nfor j in range(60000):\n    l1 = 1\/(1+np.exp(-(np.dot(X,syn0))))\n    l2 = 1\/(1+np.exp(-(np.dot(l1,syn1))))\n    l2_delta = (y - l2)*(l2*(1-l2))\n    l1_delta = l2_delta.dot(syn1.T) * (l1 * (1-l1))\n    syn1 += l1.T.dot(l2_delta)\n    syn0 += X.T.dot(l1_delta)<\/code><\/pre>\n<p>\ub2e8\uc9c0 11\uc904\uc758 \ucf54\ub4dc\ub85c \uba38\uc2e0\ub7ec\ub2dd\uc744 \uc124\uba85\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc2ec\uc9c0\uc5b4 \uacf5\uc2dd\ub3c4 \uc5c6\uace0 \ubb50\ub3c4 \uc5c6\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>\ub77c\uc778 1-2<\/h2>\n<p>\uba38\uc2e0 \ub7ec\ub2dd\uc740 \uc54c\uace0\uc788\ub294 \uc785\ub825\uac12\uacfc \ucd9c\ub825\uac12\uc744 \uae30\ubc18\uc73c\ub85c \uc778\uacf5\uc9c0\ub2a5\ub9dd(network) \uc744 \ud559\uc2b5\uc2dc\ud0a4\uace0, \ud559\uc2b5\ub41c \ub9dd(network) \uc744 \uc774\uc6a9\ud574 \uc0c8\ub85c\uc6b4 \uc785\ub825\uac12\uc774 \ucd9c\ub825\uac12\uc744 \uc0dd\uc131\ud558\ub294 \ubc29\uc2dd\uc785\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-python\">import numpy as np\n\nX = np.array([\n    [0,0,1],\n    [0,1,1],\n    [1,0,1],\n    [1,1,1]\n])\ny = np.array([\n    [0,1,1,0]\n]).T\n\nprint(y)<\/code><\/pre>\n<p>\uc704\uc5d0\uc11c 4\uac1c\uc758 \uc785\ub825\uac12(X) \uacfc 4\uac1c\uc758 \ucd9c\ub825\uac12(y) \uc774 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc785\ub825\uac12 <code>[0,0,1]<\/code> \uc5d0 \ub300\ud574 \ucd9c\ub825\uac12 <code>0<\/code>, \uc785\ub825\uac12 <code>[0,1,1]<\/code> \uc5d0 \ub300\ud574 \ucd9c\ub825\uac12 <code>1<\/code> \ub4f1\uc774 \ub300\uc751\ud569\ub2c8\ub2e4.<\/p>\n<h2>\ub77c\uc778 3-4<\/h2>\n<pre><code class=\"language-python\">syn0 = 2*np.random.random((3,4)) - 1\nsyn1 = 2*np.random.random((4,1)) - 1<\/code><\/pre>\n<p>\ub79c\ub364\uac12\uc73c\ub85c \uc2e0\uacbd\ub9dd\uc744 \ucd08\uae30\ud654\ud569\ub2c8\ub2e4.<\/p>\n<p><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/wp-content\/uploads\/2020\/04\/20200426-01.png\"><img decoding=\"async\" src=\"https:\/\/www.skyer9.pe.kr\/wordpress\/wp-content\/uploads\/2020\/04\/20200426-01.png\" alt=\"\" \/><\/a><\/p>\n<p><code>X<\/code> \uc640 <code>y<\/code> \uc0ac\uc774\uc5d0 <code>-1 ~ 1<\/code> \uc0ac\uc774\uc758 \ub79c\ub364\uac12\uc73c\ub85c \uad6c\uc131\ub41c \ud589\ub82c\uc744 \ubc30\uce58\ud569\ub2c8\ub2e4. \ud559\uc2b5\uc740 \uc774 \ub79c\ub364\uac12\uc744 \uc801\uc808\ud55c \uac12\uc73c\ub85c \uad50\uc815\ud574 \ub098\uac00\ub294 \uacfc\uc815\uc785\ub2c8\ub2e4.<\/p>\n<h2>\ub77c\uc778 5-7<\/h2>\n<pre><code class=\"language-python\">for j in xrange(60000):\n    l1 = 1\/(1+np.exp(-(np.dot(X,syn0))))\n    l2 = 1\/(1+np.exp(-(np.dot(l1,syn1))))<\/code><\/pre>\n<p>\uc704 \ub0b4\uc6a9\uc744 \ud568\uc218\ub97c \uc0dd\uc131\ud574\uc11c \uc815\ub9ac\ud574 \ubd05\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-python\"># sigmoid function\ndef nonlin(x,deriv=False):\n    if(deriv==True):\n        return x*(1-x)\n    return 1\/(1+np.exp(-x))\n\nfor j in range(60000):\n    # forward propagation\n    l0 = X\n    l1 = nonlin(np.dot(l0,syn0))\n    l2 = nonlin(np.dot(l1,syn1))<\/code><\/pre>\n<p><code>X<\/code> \ub97c \uccab\ubc88\uc9f8 \ub808\uc774\uc5b4 <code>l0<\/code> \uc5d0 \ub300\uc785\ud569\ub2c8\ub2e4.<br \/>\n<code>l0<\/code> \uc744 <code>syn0<\/code> \uacfc \ub3c4\ud2b8\uc5f0\uc0b0 \ud6c4 <code>sigmoid<\/code> \ud568\uc218\uc5d0 \uc785\ub825\ud569\ub2c8\ub2e4.<br \/>\n\ub2e4\uc2dc, <code>l1<\/code> \uc744 <code>syn1<\/code> \uacfc \ub3c4\ud2b8\uc5f0\uc0b0 \ud6c4 <code>sigmoid<\/code> \ud568\uc218\uc5d0 \uc785\ub825\ud569\ub2c8\ub2e4.<\/p>\n<h2>\ub77c\uc778 8-9<\/h2>\n<pre><code class=\"language-python\">for j in range(60000):\n    # ......\n    l2_delta = (y - l2)*(l2*(1-l2))\n    l1_delta = l2_delta.dot(syn1.T) * (l1 * (1-l1))<\/code><\/pre>\n<p>\uc704 \ub0b4\uc6a9\ub3c4 \ub2e4\uc2dc \ud480\uc5b4 \ubd05\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-python\">for j in range(60000):\n    # how much did we miss?\n    l2_error = y - l2\n    l2_delta = l2_error * nonlin(l2,True)\n    l1_delta = l2_delta.dot(syn1.T) * nonlin(l1,True)<\/code><\/pre>\n<p><code>y - l2<\/code> \ub85c \ucd9c\ub825\uac12\uacfc \uacc4\uc0b0\uac12\uc758 \uc624\ucc28\ub97c \uad6c\ud569\ub2c8\ub2e4.<br \/>\n\ub79c\ub364\uac12\uc73c\ub85c \uc5f0\uc0b0\uc744 \ud588\uc73c\ubbc0\ub85c \ub2f9\uc5f0\ud788 \uc624\ucc28\uac00 \ubc1c\uc0dd\ud569\ub2c8\ub2e4.<\/p>\n<h2>\ub77c\uc778 10-11<\/h2>\n<p>\uc704\uc5d0\uc11c \uad6c\ud55c \ub378\ud0c0\uac12\uc744 \uc774\uc6a9\ud574 \uc2e0\uacbd\ub9dd\uc744 \uad50\uc815\ud569\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-python\">for j in range(60000):\n    # ......\n    syn1 += l1.T.dot(l2_delta)\n    syn0 += X.T.dot(l1_delta)<\/code><\/pre>\n<h2>\ud14c\uc2a4\ud2b8 \ud558\uae30<\/h2>\n<p>\uc704\uc758 \uc2e0\uacbd\ub9dd\uc774 \uc815\uc0c1\uc801\uc73c\ub85c \uc5c5\ub370\uc774\ud2b8 \ub418\uc5c8\ub294\uc9c0 \ud655\uc778\ud574 \ubd05\ub2c8\ub2e4.<\/p>\n<p>\uc774\ubbf8 \uc54c\uace0\uc788\ub294 <code>[1,1,1]<\/code> \uac12\uc744 \uc774\uc6a9\ud574 <code>0<\/code> \uc774 \ucd9c\ub825\ub418\ub294\uc9c0 \ud655\uc778\ud574 \ubd05\ub2c8\ub2e4.<\/p>\n<p>\uc544\uc9c1 \uc54c\uc9c0 \ubabb\ud558\ub294 <code>[1,1,0]<\/code> \uac12\uc744 \uc785\ub825\ud574 \uacb0\uacfc\uac12\uc744 \uc608\uce21\ud574\ubd05\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-python\">X_test = np.array([\n    [1,1,1],\n    [1,1,0]\n])\n\nl0 = X_test\nl1 = nonlin(np.dot(l0,syn0))\nl2 = nonlin(np.dot(l1,syn1))\n\nprint(l2)\n\n[[0.00284545]\n [0.99835627]]<\/code><\/pre>\n<p>\uc815\ud655\ud788 <code>0<\/code> \uc774 \uc544\ub2c8\ub77c 0.00284545 \uc774 \ucd9c\ub825\ub429\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>11\ub77c\uc778\uc758 \ud30c\uc774\uc120 \ucf54\ub4dc\ub85c \uc124\uba85\ud558\ub294 \uc2e0\uacbd\ub9dd \ucc38\uc870 \uba38\uc2e0 \ub7ec\ub2dd \uacf5\ubd80\ud560 \ub54c \uac00\uc7a5 \ub9ce\uc774 \ub3c4\uc6c0\uc774 \ub41c \ucf54\ub4dc\uc785\ub2c8\ub2e4. \ucf54\ub4dc X = np.array([ [0,0,1],[0,1,1],[1,0,1],[1,1,1] ]) y = np.array([[0,1,1,0]]).T syn0 = 2*np.random.random((3,4)) &#8211; 1 syn1 = 2*np.random.random((4,1)) &#8211; 1 for j in range(60000): l1 = 1\/(1+np.exp(-(np.dot(X,syn0)))) l2 = 1\/(1+np.exp(-(np.dot(l1,syn1)))) l2_delta = (y &#8211; l2)*(l2*(1-l2)) l1_delta = l2_delta.dot(syn1.T) * (l1 *\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=759\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[18],"tags":[],"class_list":["post-759","post","type-post","status-publish","format-standard","hentry","category-machine-learning"],"_links":{"self":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/759","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=759"}],"version-history":[{"count":6,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/759\/revisions"}],"predecessor-version":[{"id":773,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/759\/revisions\/773"}],"wp:attachment":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=759"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=759"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=759"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}