{"componentChunkName":"component---src-templates-post-template-js","path":"/posts/2021-07-11/cs231n-lec-2","result":{"data":{"markdownRemark":{"id":"7e98334f-34d9-54ea-b9a9-afc8e457b2be","html":"<p>본 게시물은 <a href=\"http://cs231n.stanford.edu/2017/syllabus.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">CS231n: Convolutional Neural Networks for Visual Recognition (2017)</a> 강의의 영상과 슬라이드를 기반을 작성 되었습니다.</p>\n<hr>\n<h2 id=\"image-classification\" style=\"position:relative;\"><a href=\"#image-classification\" aria-label=\"image classification permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Image Classification</h2>\n<ul>\n<li>컴퓨터 비전 분야에서의 core task이자 CS231n에서 주로 다루기도하는 문제</li>\n</ul>\n<h3 id=\"image-classification은-어떻게-이루어-지는가\" style=\"position:relative;\"><a href=\"#image-classification%EC%9D%80-%EC%96%B4%EB%96%BB%EA%B2%8C-%EC%9D%B4%EB%A3%A8%EC%96%B4-%EC%A7%80%EB%8A%94%EA%B0%80\" aria-label=\"image classification은 어떻게 이루어 지는가 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Image Classification은 어떻게 이루어 지는가?</h3>\n<ol>\n<li>이미지를 입력받는다.</li>\n<li>정해진 카테고리 집합에서 컴퓨터가 이미지를 보고 어디에 속할지를 고른다.</li>\n</ol>\n<p>👉 인간에게는 쉽지만 컴퓨터에게는 매우 어렵다.<br>\n👉 컴퓨터에게 이미지 == 거대한 숫자판<br>\n<span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 960px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/57ba9b3543c787d77a96581afc581983/b0aa6/01_semantic_gap.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 49.583333333333336%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAACXBIWXMAAAsTAAALEwEAmpwYAAAB1UlEQVQoz2VSTU8TURTtz9MFEhPBRYsUCK3GRowxcYHduJANW3duWEAIGAyYCL/AkIAbhzIt812m09KZftMx0057fPeSmYxwk5vz5s15536mhsMhZFmGaZqQJAm6bsBxHFhWFbWaw/fdbg/j8Rjtdpu90+mwt9ot9Pt9TCYTTKdTxhQRPc9Dr9eD57oYDAbw/b/iQZfP0WP6R4GvVAWKpkIhFK7pOkajEchINEWHet3Bzt42vh8d4vjnCX4cHuH2dsgkqoCC+r6PylUFmqGziC7QqlYZgyD4X/D0/AxP0s+QLRSQe/sO2ZVFlC5LTIyi+0JY1TQWUVRVnEWW4pvwgeCFauL15y94+XEDS7kslnPL0DSdSZQd9YZ69edCQrlSgVyWGSmAoigPS740bKysb2LpzXus5jMorK3BMCwEo4D7SGWTu64n7g0xMIuHZRg0sG4sFguWtGvkP3zC80waL7JzKBaLsEwrJkbY8lpiA+poNpu8ARQgsojHgr9+S8jkX+Hp3CwezTzGfHpBlFVmQhiGcekkZtu2GGIDjcYNOveyizOs2jV83drC7rd94QfY2T+A691Fp/5FgjXBozJpMMnMk5a6f5G05L9occnDcBIvczJDsn++7tRCK3luUAAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/57ba9b3543c787d77a96581afc581983/8ac56/01_semantic_gap.webp 240w,\n/static/57ba9b3543c787d77a96581afc581983/d3be9/01_semantic_gap.webp 480w,\n/static/57ba9b3543c787d77a96581afc581983/e46b2/01_semantic_gap.webp 960w,\n/static/57ba9b3543c787d77a96581afc581983/e96a9/01_semantic_gap.webp 1233w\"\n              sizes=\"(max-width: 960px) 100vw, 960px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/57ba9b3543c787d77a96581afc581983/8ff5a/01_semantic_gap.png 240w,\n/static/57ba9b3543c787d77a96581afc581983/e85cb/01_semantic_gap.png 480w,\n/static/57ba9b3543c787d77a96581afc581983/d9199/01_semantic_gap.png 960w,\n/static/57ba9b3543c787d77a96581afc581983/b0aa6/01_semantic_gap.png 1233w\"\n            sizes=\"(max-width: 960px) 100vw, 960px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/57ba9b3543c787d77a96581afc581983/d9199/01_semantic_gap.png\"\n            alt=\"01_semantic_gap.png\"\n            title=\"01_semantic_gap.png\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span>\n👉 <code class=\"language-text\">Semantic Gap</code> : 컴퓨터가 실제로 보고 있는 <u>숫자판</u>과, <u>고양이</u>라고 하는 의미 사이에 존재하는 간극</p>\n<h3 id=\"image-classification은-컴퓨터에게-어렵다\" style=\"position:relative;\"><a href=\"#image-classification%EC%9D%80-%EC%BB%B4%ED%93%A8%ED%84%B0%EC%97%90%EA%B2%8C-%EC%96%B4%EB%A0%B5%EB%8B%A4\" aria-label=\"image classification은 컴퓨터에게 어렵다 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Image Classification은 컴퓨터에게 어렵다!</h3>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 834px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/97eeaa07a655b483bde1f13a6f43b393/5d72a/02_difficault.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 162.5%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAhCAIAAABWXBxEAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAHxklEQVQ4y1XRd1DTCRYH8N94c7e3uEURG6zichhCl7B0A4QauhCSACkkIT2hBNIJJAQhhISS0JIgoIsKIqIg6KqHylowsoh0laICAhZAVlm5uRUPZ3Zuxpn3Zt4/n3lvvg+IDAu1trb2cXf1c4e4QFwJyclenm7o2EhEdFhoaKhGQdDkwJoLooVkXybiUHVRxvjoqFQi9Id5abQlgKWl5ZYtgL+btYWpyVf//DoA5mf6vYnFru0HLXa6Q5y4dK/qPC9t5iE/MOB1ABAyAiVSCYmMAQCARqcCVlZW2741kaSiQ6FOB60s/X0Pf/2Pv201+bvlXjMfd4iQHaCVBdxtoWbG7yOHmkjY0cqqXATWd+/ebeQUMmBu8YOF2dZ0rF+gp40XBBQZFmxqut3C3NzR3j4AFpiOd6PE7Z26yTWwzOBgIAUZTEvF2DibffPdFjqVArh5eNiB9uGR0LBAD3RMoEyaS6HQuVk8Pl8kkxepxIgyUdCdk5RCki0mCETFHolDxUBhEBtbS6GQDwwOPbw7OCirrtdq1HevtjSfbqyv0xv0eoVSLZYp0uLg4eADuJiY9tau+3eMyVE+zAS4kpvCiA8yqHKBkUfTy8tLxfLs42XS2z3XmOxMAY+vUha6exx29w6Od3f6AQDS6GlnTp+vqdSHuezBB4E5aH8RPlQlTAFOtV2hpwr5KYjjcopBU1xWojqmLajT5NvYupCo6XQk1GEXwCDTRRlUZLinN3iXD3gHLtyzQsJMJSUC8YkEIjZRJeXg0QiJWKKvKidj4/QqsTvENQ6FFxChgY4mJAyOjgvHHzmEi/JTiWgnSiVNWqmMSwdC4JGxUZEIBBoeEZsjV1WWq6ViQWujgZfG3LxCRIdHeO0gxP+UFAXKZsLLuRhStI8yHaXJQl1qUAK3enrONje3NJ/tunTl3v3+x+MjI4O9A323xoeNE4/6jbfafmnTX73Y0Hvz3OhAz0j/r4PG7r7bVwbudc9OjwP5HHYIxJGIjMxKoyYTyAI+K48Lp2HcuGxoHj+Mxw4TkIMMiqwWQ2GTTn5aX3BKV6hTi3K5xNYzxwE6GkGKDTaUZWsLsrgMQgYbL0wNM6j56dQoLsFXTAmiHHHS5dH1ivR6VdbPJYJjCs5mzhxcSHN9OZBFJcZHBzs72fltvsbdNYOBEXFjO0+qWhpKzh+TFnGRqFCXKlma4SijgJNYLWed1oh0R1O5pIjWE5UAPhG57fvv7K3NIQ7WZqamCYiQLKo3DeEqYEXIONEcnD86xLFaxqxXC2qVPH0R36AUlOSwmJiI43otkMFmh8ECaEloJi6RlphQIEorzcHI+An8jDhBZhydGELHBZxQi3IyaUd5tEIeVcYiyGhEZHSIUqkA5icHxn/reTxwe2rwzvxY79yYcWzg9oMHNydH7gwZu6ceD66v/2dlaXnpzdLrV6+np6YnHj158Wx2cX7x/doacEIEUyTZ6Cj2lST7Jpb9aYZzPhIkxdo3ZPxUlGB1XpO5sPi2vaW9+0pP772HvcbBq5evd7Rdam86Pz35DGgSBNSxHVREUBkOXEEClZFBZXRwHdlRTz4kjdp/TiPobL+o11Z0X7t983rv5XOdmgJV17mOa5dv9N29D1QxoBqMTQ0FUkpzaEp1ziVYCxNAslhwMc5ZFLG/q0Y0OjJZVazNE+c36wwKJr1YJG6o0v/ScW168jlQmwrNIf5LSgEXJRy8letZjneUpoDlDHAR27ES/2NXZebI+POKwnJceFSDqvhs3bHx/t9GHwxNTcwuLrwB6rP8Wej9YoxNlxB6QxGeh7QVYkE8rI0o3qEUa3Uqn9J24drw8ET3xSvDfQ9ezS/MPH02N/tyeXltbW0dUFM9JZF7pZH7Som2DTSwGL47D2lXSz5UEmmeEbC7Sc0YHH5iND68e+/BwvyrhYWXw0NjT6dfzMwuzszMA1JGlJzoU86AlbPgJ0VxutSY1gLqSQmeh/CXJAS215W+W/1z7vmb6Yn51aX1xReriy9WVlfWZmcXp6aeAWtr79c//PHu/Ypx9Madoav9j28MTP56b6RnaLJ/aLp3bLb3yULfZo3O9Q487emb+vfYbN+fH/+7sfHp48YGsLHx8dOnTy9X5ggV3kitU5IOkl+bcKq5rqalktMclN7ontkEzWhyY/0MYehdk7W2nDOBqx+WNsnGJv748TNeXJlTtuIqL6Cr2mI72iUlKk1Nva7uVKFCnV1Um83QRkjq4w0qljwdkdOIWvnw5i+82ZvT3NuZ9kuZLzqKjHXZ12t5uYUSFodWUVlVVlGvlAmlDKSMhVLx0QJ2hLwR9Xb91f/x580zKxPFjRhdIYmddICD8iitKiExKTHoaBQhPjr8cDbNj5PszSIFMxWxwjNHfv/jzRd4YflpktouQWodFLc7GeHJy5VgGQx0SrKzt9vO3XtIuLAUQoRvMATLgbMM/u8+LH+BF5efJxXahfJ3+1LM8Rw3cRUbmxdFy6MG4f3DUf42kB9h4T6weBcPvClVDX37/vUXeH7pGVoFggm/hfG3h+buiCkwjym2PFIMhgl2+rL22KO3OqO3OaC+cUn5Ci13Wfn91ReBrbx/XdHOUzRRi9tYFZfTSzrTVB1U5QWaoi1VfpKRU0fKOUHObkiRHCdVdorXPqx+xp82/gdr1vHMPXE57QAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/97eeaa07a655b483bde1f13a6f43b393/8ac56/02_difficault.webp 240w,\n/static/97eeaa07a655b483bde1f13a6f43b393/d3be9/02_difficault.webp 480w,\n/static/97eeaa07a655b483bde1f13a6f43b393/e1262/02_difficault.webp 834w\"\n              sizes=\"(max-width: 834px) 100vw, 834px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/97eeaa07a655b483bde1f13a6f43b393/8ff5a/02_difficault.png 240w,\n/static/97eeaa07a655b483bde1f13a6f43b393/e85cb/02_difficault.png 480w,\n/static/97eeaa07a655b483bde1f13a6f43b393/5d72a/02_difficault.png 834w\"\n            sizes=\"(max-width: 834px) 100vw, 834px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/97eeaa07a655b483bde1f13a6f43b393/5d72a/02_difficault.png\"\n            alt=\"02_difficault.png\"\n            title=\"02_difficault.png\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<ol>\n<li>viewpoint variation</li>\n<li>이미지에 미묘한 변화만 주더라고 픽셀 값이 광범위하게 변화한다.</li>\n<li>예를들어 고양이가 가만히 있더라도 카메라의 이동에 따라 픽셀값이 달라진다.</li>\n<li>조명 illumination</li>\n<li>변형 deformation</li>\n<li>가려짐 occlusion</li>\n<li>배경과의 유사함 Background Clutter</li>\n<li>클래스내의 다양성 Intraclass Variation</li>\n</ol>\n<p>이런 것들을 모두 고려하였을 때, 컴퓨터가 이미지의 의미를 알아챈다는 것은 매우 어려워 보인다.<br>\n👉 일부 제한된 상황이라면 잘 동작하는 기술이 존재한다!<br>\n👉 앞으로의 강의에서는 이것이 어떻게 가능해졌는지 볼 것이다.</p>\n<h3 id=\"이전까지-이미지를-인식하기-위해-해왔던-시도\" style=\"position:relative;\"><a href=\"#%EC%9D%B4%EC%A0%84%EA%B9%8C%EC%A7%80-%EC%9D%B4%EB%AF%B8%EC%A7%80%EB%A5%BC-%EC%9D%B8%EC%8B%9D%ED%95%98%EA%B8%B0-%EC%9C%84%ED%95%B4-%ED%95%B4%EC%99%94%EB%8D%98-%EC%8B%9C%EB%8F%84\" aria-label=\"이전까지 이미지를 인식하기 위해 해왔던 시도 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>이전까지 이미지를 인식하기 위해 해왔던 시도</h3>\n<p>😺 <strong>고양이 인식하기</strong>\n<span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 849px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/dee8cf736ff26691e8dc974778ef3d95/f96df/03_image_classifier.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 38.75%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAICAYAAAD5nd/tAAAACXBIWXMAAA7DAAAOwwHHb6hkAAABn0lEQVQoz22Sz0tCQRDH9yCK4EEQBA8iiBev3rpEdCrsB6VgyisyUCIRI9CkOoR08WWGCiF0KDr0dwgWFVHRRYS8qgd5ivqeB1G/uUsuRQ4MM8OX/czM7pKPzw88PD3i/e0Nry/P+PqqYGLFYhGiKCKTySCVSiGXy0GSJKaNRiMef+ckEA5iwb2EnfA+PIKA9OUFB0YiERBCoFKpoNFooNVqUSqVmDYcDjnst5NY8hLruwfY3Ath2eXE+Rj40xDxeJwB7XY7rFYrLBYLyuUyB04zcpq/hyt0AiHgh3tjBVf5a9RqNdTrdQSDQQY0m80wGAwwGo0oFApMr1arUBQF7XYb3W6XxU6nA3KUvsbc6gYEvwdbfi9ubu94t2g0ytakQL1ez6CTlfv9Pnq9HnMKmtTkSMxi3efB7PwMnCuLyGZzHBiLxdiEFETBarV66sp0Or5y+PAY3m0BW4EdrHl9OEuKXEwkEtDpdHA4HLDZbDCZTKhUKn8ehRp9+UlNms0mpLF3xvcgNVuQZYUDZVlGo9FgB2ikPhgM/n2XVqvF82/tgew7JanNgwAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/dee8cf736ff26691e8dc974778ef3d95/8ac56/03_image_classifier.webp 240w,\n/static/dee8cf736ff26691e8dc974778ef3d95/d3be9/03_image_classifier.webp 480w,\n/static/dee8cf736ff26691e8dc974778ef3d95/51e4d/03_image_classifier.webp 849w\"\n              sizes=\"(max-width: 849px) 100vw, 849px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/dee8cf736ff26691e8dc974778ef3d95/8ff5a/03_image_classifier.png 240w,\n/static/dee8cf736ff26691e8dc974778ef3d95/e85cb/03_image_classifier.png 480w,\n/static/dee8cf736ff26691e8dc974778ef3d95/f96df/03_image_classifier.png 849w\"\n            sizes=\"(max-width: 849px) 100vw, 849px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/dee8cf736ff26691e8dc974778ef3d95/f96df/03_image_classifier.png\"\n            alt=\"03_image_classifier.PNG\"\n            title=\"03_image_classifier.PNG\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<ol>\n<li>이미지에서 edgds를 계산, 다양한 corners와 edges를 각 카테고리(귀, 코, …)로 분류</li>\n<li>이들로부터 고양이라는 특징(귀가 두 개 코가 하나 등 고양이를 인식하기 위한 규칙)을 찾아낸다.</li>\n</ol>\n<p>이러한 방식은 잘 동작하지 않는다.<br></p>\n<ul>\n<li>위에서 언급했던 문제들에 대해 강건하지 못하고</li>\n<li>인식하고자 하는 새로운 객체가 등장하면 처음부터 모든 동작을 반복해 한다.</li>\n</ul>\n<p>👉 다양한 객체들에 유연하게 적용가능한 알고리즘 필요<br>\n👉 ML key insight : <strong><code class=\"language-text\">Data-Driven Approach</code></strong>가 등장하게 됨</p>\n<h3 id=\"data-driven-approach\" style=\"position:relative;\"><a href=\"#data-driven-approach\" aria-label=\"data driven approach permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Data-Driven Approach</h3>\n<p>카테고리에 대한 규칙을 정하는 것이 아니라..!</p>\n<ol>\n<li>카테고리에 해당하는 엄청 많이 데이터를 수집하고</li>\n<li>데이터들을 이용하여 ML classifier(=model) 학습</li>\n<li>학습된 classifier를 새로운 이미지로 테스트한다.</li>\n</ol>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">def</span> <span class=\"token function\">train</span><span class=\"token punctuation\">(</span>images<span class=\"token punctuation\">,</span> labels<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n  <span class=\"token comment\"># Maching learning !</span>\n  <span class=\"token keyword\">return</span> model\n\n<span class=\"token keyword\">def</span> <span class=\"token function\">predict</span><span class=\"token punctuation\">(</span>model<span class=\"token punctuation\">,</span> test_images<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n  <span class=\"token comment\"># Use model to predict labels</span>\n  <span class=\"token keyword\">return</span> test_labels</code></pre></div>\n<p>🌟 지금부터 할 것 : 간단한 ML classifier부터 살펴보기</p>\n<h2 id=\"nearest-neighbor\" style=\"position:relative;\"><a href=\"#nearest-neighbor\" aria-label=\"nearest neighbor permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Nearest Neighbor</h2>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">def</span> <span class=\"token function\">train</span><span class=\"token punctuation\">(</span>images<span class=\"token punctuation\">,</span> labels<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n  <span class=\"token comment\"># Memorize all data and labels</span>\n  <span class=\"token keyword\">return</span> model\n\n<span class=\"token keyword\">def</span> <span class=\"token function\">predict</span><span class=\"token punctuation\">(</span>model<span class=\"token punctuation\">,</span> test_images<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n  <span class=\"token comment\"># Predict the label of the most similar training image</span>\n  <span class=\"token keyword\">return</span> test_labels</code></pre></div>\n<ul>\n<li>Train 단계 : 모든 데이터와 라벨을 기억</li>\n<li>Predict 단계 : 새로운 이미지와 기존 이미지(학습에 사용된 이미지)를 비교하여 가장 유사한 학습 이미지의 라벨을 반환</li>\n</ul>\n<h3 id=\"예시로-보는-nearest-neighbor의-동작feat-cifar-10\" style=\"position:relative;\"><a href=\"#%EC%98%88%EC%8B%9C%EB%A1%9C-%EB%B3%B4%EB%8A%94-nearest-neighbor%EC%9D%98-%EB%8F%99%EC%9E%91feat-cifar-10\" aria-label=\"예시로 보는 nearest neighbor의 동작feat cifar 10 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>예시로 보는 Nearest Neighbor의 동작(feat. CIFAR-10)</h3>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 835px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/860895ef0f63b8ff068e284153ed0c0b/f0685/04_cifar_10_nn.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 47.5%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAACXBIWXMAAA7DAAAOwwHHb6hkAAACiUlEQVQoz42S7U+SYRTG+Ttra7MtN2Hay0ybQpq8CvoAPYAPykMQaqDDTJ2a+AIsJXnJHPS6chqJ5SdTgVXor5u+9a2z3Tvb2bXrXNd9Ls3h4SFbm5sUCnkqlQq1WpXTs1Oq1SoXFxc0Gg0uLy/539KUy2VisRj5/A7FYomPHz6Sy+X4cnDwD/Do6Igmdv/gC9++f//7yuWvfBPzihC1v7/P8fExmqbCUrHIYjzIxvoi6sQj5ufnWFpJsZbOEI9PUa/X2c7mSSaTTIb8hP0q4TGVaOQRst9LQHRVDVJ68xZN6d07UjPT9N66jtnai7FXi8Foxmo1Ig3qMZsMnJycsJ15wcLCnCBy4ZddeD3D+KQB+g16JPcAJrOBrHCmER/Ey2wWueU6UmcbCzMKLsWPQ3HQJ+lxe238+HHGm90Mmc0kieVZpqJBZp4FmH86TnTMTjwaZiKi8Pn9jiAUlStsEejXo9j1eHz3cDoM3Lfepd/UyWjAIg50Lg63RXJ9lch4GJ/XzYjsRg2FGVElQo+d+PweCqUSmsbvBrvFAua+DryWm8JuNw7ZiKVXh8OsQx0RhLUzUuktEqsb+EMRPF4XAcWLOjaKb3QUj0vGYh+m8EooPD8/Z2/vEwO2Pvru30ZxmoXNbgydrdy52YJk66ZWr7K2+pyV5UWC/oe43EMMDTtwmAZwDAu87KHLaCH3OtskPOPthz16TFacYwHCkSjaLgPGQRsusVUOBan//EV85omIVwT9vXa0bVfRtl6lXXuDVt01dB03aNNdIZ1ZRtMMcEVkKTY9yeLaOkvLS0zOzpJKppiLTZNIromAX5JOp0gkEigBGZdkQnHbeSg5MdseMOKxM2jtoZDf5g9ym2vKhYKASwAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/860895ef0f63b8ff068e284153ed0c0b/8ac56/04_cifar_10_nn.webp 240w,\n/static/860895ef0f63b8ff068e284153ed0c0b/d3be9/04_cifar_10_nn.webp 480w,\n/static/860895ef0f63b8ff068e284153ed0c0b/2321d/04_cifar_10_nn.webp 835w\"\n              sizes=\"(max-width: 835px) 100vw, 835px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/860895ef0f63b8ff068e284153ed0c0b/8ff5a/04_cifar_10_nn.png 240w,\n/static/860895ef0f63b8ff068e284153ed0c0b/e85cb/04_cifar_10_nn.png 480w,\n/static/860895ef0f63b8ff068e284153ed0c0b/f0685/04_cifar_10_nn.png 835w\"\n            sizes=\"(max-width: 835px) 100vw, 835px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/860895ef0f63b8ff068e284153ed0c0b/f0685/04_cifar_10_nn.png\"\n            alt=\"04_cifar_10_nn.PNG\"\n            title=\"04_cifar_10_nn.PNG\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>CIFAR-10은 10개의 클래스(비행기, 자동차, 새, …)로 분류되는 50000장의 학습용 이미지와 10000장의 테스트 이미지로 구성되어 있다.</p>\n<p>오른편의 그림은 Nearest Neighbor를 이용하여 예측을 진행한 결과이다. 그림의 왼쪽열이 테스트 이미지이고 오른쪽 방향으로 학습 이미지를 테스트 이미지와 유사한 순으로 정렬한 것이다. 2번째 줄의 2번째까지는 테스트 이미지의 카테고리과 같은 개를 유사한 이미지로 출력하지만 그 이후로는 사슴 혹은 말과 같은 다른 카테고리의 요소들을 출력하고 있다.<br>\n👉 Nearest Neighbor 알고리즘 적용시 학습 데이터셋에서 가장 가까운 샘플을 찾아냄<br>\n👉 이게 성능면에서는 좋지 않지만, 지금 단계에서 예시로 보기에는 가치가 있다.</p>\n<h3 id=\"nearest-neighbor-주요-안점\" style=\"position:relative;\"><a href=\"#nearest-neighbor-%EC%A3%BC%EC%9A%94-%EC%95%88%EC%A0%90\" aria-label=\"nearest neighbor 주요 안점 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Nearest Neighbor 주요 안점</h3>\n<p><code class=\"language-text\">두 이미지 쌍을 어떻게 비교할 것인가?</code><br>\n<code class=\"language-text\">비교를 위하여 어떤 비교함수를 사용할 것인가?</code></p>\n<p>앞의 예제 L1 Distrance(Manhattan distance, 이하 L1 Dist)를 사용하였다.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 815px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/f3ddf7b6545f8bd5aa526c1e6a5916f5/ef916/05_NN_L1_dist.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 39.166666666666664%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAICAYAAAD5nd/tAAAACXBIWXMAAA7DAAAOwwHHb6hkAAABVUlEQVQoz31S2ZKCMBDk/3/N8nWXEjkMEAiXgJZyae/0WPK4qUolzNHd08HzfR/H4xGHwwFhGIKrbmq4qkTbNYiSCNf+KrEGr9cL/633+w2PRc/nE4/HA9u27Yl1XTHNk8Z552J+nmcsy6Lnui6Ypkn3l8zruhbnc4BTcMIwDNpEQCr89X9wDgOEUajA4zggzQxManAxF9jCwsiZ21xBFVADeY6qclKcou97aRyRyZ25LMtQulJPqioEJM8zIXS6G7FimZd9bI8FdV0ryxfwfr+j6zohqQSgQFkWiONIVMx6d06A2kaJCvkmKHvWbYVHJWS0AhjJaEwSlI0Eo3qqS5JEiT8EpYJehdRaK9/uk5fH9DgqC+hJIF6SmWxsIJgxBql4FscxZlHYtq3W2+KjLE5iFbCPfLuNGviqGcR4PgBjqkiUkpkPQOPpL+1gjif7hmHc/44/6y9clyixI+sAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/f3ddf7b6545f8bd5aa526c1e6a5916f5/8ac56/05_NN_L1_dist.webp 240w,\n/static/f3ddf7b6545f8bd5aa526c1e6a5916f5/d3be9/05_NN_L1_dist.webp 480w,\n/static/f3ddf7b6545f8bd5aa526c1e6a5916f5/0ea8f/05_NN_L1_dist.webp 815w\"\n              sizes=\"(max-width: 815px) 100vw, 815px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/f3ddf7b6545f8bd5aa526c1e6a5916f5/8ff5a/05_NN_L1_dist.png 240w,\n/static/f3ddf7b6545f8bd5aa526c1e6a5916f5/e85cb/05_NN_L1_dist.png 480w,\n/static/f3ddf7b6545f8bd5aa526c1e6a5916f5/ef916/05_NN_L1_dist.png 815w\"\n            sizes=\"(max-width: 815px) 100vw, 815px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/f3ddf7b6545f8bd5aa526c1e6a5916f5/ef916/05_NN_L1_dist.png\"\n            alt=\"05_NN_L1_dist.PNG\"\n            title=\"05_NN_L1_dist.PNG\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>이는 두 이미지에서 같은 픽셀 위치에 있는 값끼리 뺀 후 절대값을 취하고 이후 모든 픽셀에 대한 수행결과를 더하는 것으로 계산된다. 단순한 동작이지만 <u>두 이미지간의 차이를 어떻게 측정할 것인가?</u>에 대한 구체적 답변이 된다.</p>\n<h3 id=\"nearest-neighbord의-한계점\" style=\"position:relative;\"><a href=\"#nearest-neighbord%EC%9D%98-%ED%95%9C%EA%B3%84%EC%A0%90\" aria-label=\"nearest neighbord의 한계점 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Nearest Neighbord의 한계점</h3>\n<h4 id=\"예측-시간\" style=\"position:relative;\"><a href=\"#%EC%98%88%EC%B8%A1-%EC%8B%9C%EA%B0%84\" aria-label=\"예측 시간 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>예측 시간</h4>\n<p>N개의 training set이 존재할 때, Nearest Neighbor의 <code class=\"language-text\">Train/Predict 함수의 속도</code>는 어떻게 될까?</p>\n<ul>\n<li>Train O(1) : 단순 저장</li>\n<li>Predict O(N) : N개의 학습 이미지와 입력 이미지를 모두 비교해야하기 때문, 느림</li>\n</ul>\n<p>모바일 혹은 브라우저 또는 다른 저전력 장치에서 실행되는 실제 서비스에서는 학습시간은 상대적으로 오래 걸려도 괜찮으나 예측 시간(test/prediction time)이 빠르기를 원한다. 하지만, Nearest Neighbor는 그 수요와 정반대로 동작한다.</p>\n<h4 id=\"분류-성능의-한계\" style=\"position:relative;\"><a href=\"#%EB%B6%84%EB%A5%98-%EC%84%B1%EB%8A%A5%EC%9D%98-%ED%95%9C%EA%B3%84\" aria-label=\"분류 성능의 한계 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>분류 성능의 한계</h4>\n<p>Nearest Neighbor이 실제로 동작한 결과는 아래와 같은 결정 영역(decision regions)으로 그려낼 수 있다.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 518px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/b9212a3cc4c716397e9c1251a45e0b6b/6b9fd/06_decision_regions.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 73.33333333333334%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAYAAADkmO9VAAAACXBIWXMAAA7DAAAOwwHHb6hkAAADJUlEQVQ4y12S/VMaVxSG+f/bJsrHst8ginwpRoVgojaiFeR7ARUFNc1MOrWpmdqmtTNxL08Pi52m+eGZe+65e959z70n1GgoSqUpO6+Enf+oVBSbW76ss72iUobK/ie8msfbVxOud8fc7E2YlC8Yb4+42Z3w/uQdoRcvFOHwFF2fEo9P0bQpkeh8r8XnubgGZuKO1GGG4pFN127Ss1r0nBbtWJ1muEb92yPO8gNC5bIKil13ju3MxFQQOzOcObnjNdYHEQpdi5O1KsOERz/VYZDq0tEbtKJ1xqURoe3S3IUrRbY9xTSnLIQfJacCQcsCN/UH+WaSdRHL93SONl9z6vbx3FbgdCbque2g9VD15b0UgyGFmohomo9uzN0aOkG7idQD2Vqa1XaYQseimf2BYdLDS7QDoZlgz27NBW92hySNB07SQyxxGDPAscWd88jy7g52dowWhny1TKa3wFZthV6iRddsBi33E53Apec8CT7s7eBE7rlN5SnrlwyXDlhNfGJhEZJliatFksVT3GaEbMeg2HBpp2ucmv35PSY7Ad6/Dnmdo+HUuc1vwnqcP7NLpPWPZJZ+IfPmJel2hGI3zGiosdmOkenqbNWX2d/Z4qRwwCDR+3/L6lAGLL3Ao/UNvvuMz2su0xWd25LBSuc5du0ZpU6c+/MY+55Bpm3IXUYp9OPBAx1uVziTB+o5zSfBagl/NYafieMvR2WVVyiY3G1b5Do2iUaEXEsjLSQaUZabUVZaOpmWxWrHZLVrUN3YxzN6MjbnIvhmC9/5DpXTmW64+EVbXsDmumJR9ExaA5v7S4v7UZyDvslaW2N4ajM+M+kPLRpDk+O+xSD3PRcbY0L+/iYqtYgqWKi1OVPhdxmPv65kliYmjGWuxjEeL2P8fSHxRObpSn4cnMt6bfF5ZPCxczBvWRUMlLhTRUdiB/9APnrrSIHEEwt/bASrmhhMZ/sZs7Mn1JXc++wnP62L4N6GOHyOymqoTAwl96lawkS4EC5nyNllFDVaeIpjXyG50SL+j3kRvD5HeTXUsIkaNOb8LNwJv37JCerD8Ve5L/hQR/025B8fe9c0UoXLggAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/b9212a3cc4c716397e9c1251a45e0b6b/8ac56/06_decision_regions.webp 240w,\n/static/b9212a3cc4c716397e9c1251a45e0b6b/d3be9/06_decision_regions.webp 480w,\n/static/b9212a3cc4c716397e9c1251a45e0b6b/c29d2/06_decision_regions.webp 518w\"\n              sizes=\"(max-width: 518px) 100vw, 518px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/b9212a3cc4c716397e9c1251a45e0b6b/8ff5a/06_decision_regions.png 240w,\n/static/b9212a3cc4c716397e9c1251a45e0b6b/e85cb/06_decision_regions.png 480w,\n/static/b9212a3cc4c716397e9c1251a45e0b6b/6b9fd/06_decision_regions.png 518w\"\n            sizes=\"(max-width: 518px) 100vw, 518px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/b9212a3cc4c716397e9c1251a45e0b6b/6b9fd/06_decision_regions.png\"\n            alt=\"06_decision_regions.png\"\n            title=\"06_decision_regions.png\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>결정 영역에서 각 점은 학습 데이터이고 점의 색은 클래스(label)이 된다. 이 결정 영역의 색은 평면의 각 픽셀에 대해 훈련 데이터에서 가장 가까운 점을 찾아 해당 점의 클래스 레이블로 칠한 것이다. 이 경우 두가지 문제를 존재한다.</p>\n<ol>\n<li>초록색 영역 한 가운데에 노란색 섬이 존재.</li>\n<li>초록색 영역이 파란색 영역을 침범</li>\n</ol>\n<p>이는 특정한 노란색 점 혹은 초록색 점이 잡음(noise)이거나 잘못된 정보(spurioius)인 경우 발생할 수 있다. 이를 통하여 Nearest Neighbor는 여러 상황에 대하여 충분히 강건하지 못하다 말할 수 있다.</p>\n<h2 id=\"k-nearest-neighborsknn\" style=\"position:relative;\"><a href=\"#k-nearest-neighborsknn\" aria-label=\"k nearest neighborsknn permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>K-Nearest Neighbors(KNN)</h2>\n<p>위에서 언급된 Nearest Neighbor의 문제점을 해결하고자 KNN이 등장하게 된다. 이는 Distance metric를 이용하여 가까운 이웃을 <code class=\"language-text\">K</code>개만큼 찾고 이웃끼리 <strong>투표(voting)</strong>를 하여 가장 많은 득표수를 올린 레이블로 예측하는 방식이다.</p>\n<p>+) 추가 : 투표 결과의 결정방식에도 다양한 방법이 존재하고 위에 언급된 가장 많은 득표수를 올린 레디블을 선택하는 방식을 Majority voting이라 한다.</p>\n<h3 id=\"k\" style=\"position:relative;\"><a href=\"#k\" aria-label=\"k permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>K</h3>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 841px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/2053105106d47ea7c1129c849706b076/bad1b/07_knn_decision_regions.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 36.25%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAHCAYAAAAIy204AAAACXBIWXMAAA7DAAAOwwHHb6hkAAABwUlEQVQozzWRa28SARBF+d2a0NY29BGj1vLWpEmhEiFUDAixEIHa8tglIAosLMtiKGlSrFCggHTZPa5Wb3Lnw9w5yUzGAgYP0v/W2XyO1JaQmg1aza/Icg1FqXPZV1G6CrLaRlUVbkfX/5j//IMskqSTu1iRz4H4ZUS7JFGLV2mWOyROh8SiA2LxMaWzIY3TKvWPVdTWCKGIyWkU8tCvDOmdq/xoDrAEgxqP1sC2Bc/fJkj5goi2PD2hj9MD65uwvQ1v/BWElxkqjhzlixlWs7dmhReHLZLRKJ83PiG9q2FRPogknwq4j0q8Trt4Hw6QfVbgutim64sQ2u9wEMrgKDwhGghRtlcYCDUEe5qTQBdX1s2rix0yniRyRMJiJI7BaaWUspERN4gLW5zFvAzEFhzvMvfvESvuEM9vEs7s8U2so0k1cD2mk3YTKe1ycr5OqhJi/H2KZZWNo4Ud6E0vhuwC2Q3KAdqVyCp8xH3Uy6pl3i47uGvsM7kKYfQaaH4ni5wPQ/WgS3ZuW26MmWxuuPwF9wvuJjdMzM/p2hzDNPoSYz4zPWE4uDTzAaxmsBxjmPP8yRZjfprZfHoD2hRjOeE3PmTgcf7xBwEAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/2053105106d47ea7c1129c849706b076/8ac56/07_knn_decision_regions.webp 240w,\n/static/2053105106d47ea7c1129c849706b076/d3be9/07_knn_decision_regions.webp 480w,\n/static/2053105106d47ea7c1129c849706b076/d02c2/07_knn_decision_regions.webp 841w\"\n              sizes=\"(max-width: 841px) 100vw, 841px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/2053105106d47ea7c1129c849706b076/8ff5a/07_knn_decision_regions.png 240w,\n/static/2053105106d47ea7c1129c849706b076/e85cb/07_knn_decision_regions.png 480w,\n/static/2053105106d47ea7c1129c849706b076/bad1b/07_knn_decision_regions.png 841w\"\n            sizes=\"(max-width: 841px) 100vw, 841px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/2053105106d47ea7c1129c849706b076/bad1b/07_knn_decision_regions.png\"\n            alt=\"07_knn_decision_regions.png\"\n            title=\"07_knn_decision_regions.png\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>KNN에서 사용자가 선택하게 되는 값으로 투표에 참여할 이웃의 수를 의미한다.</p>\n<p>대체로 K가 1보다 클때 결정경계가 부드러워지고 좋은 결과를 보이고 있다.</p>\n<p>K가 1보다 클 때, 라벨이 결정되지 못한 흰색영역이 등장하는데 이는 투표 결과에서 승자를 확정할 수 없는 지역을 의미한다. 이 부분을 추론 혹은 랜덤으로 값을 채울 수도 있지만, 현재는 간단한 예제를 보는 것이 목적이기 때문에 흰색으로 칠해 두었다.</p>\n<h3 id=\"distance-metric\" style=\"position:relative;\"><a href=\"#distance-metric\" aria-label=\"distance metric permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Distance Metric</h3>\n<p>KNN에서 사용자가 선택하게 되는 또 다른 값으로 <u>서로 다른 점들을 어떻게 비교할 것인가</u>에 대한 방법이다.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 784px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/e21e90fde0e7222b0bbf7c136fd82c95/4971b/08_distance_metric.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 44.166666666666664%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAJCAYAAAAywQxIAAAACXBIWXMAAA7DAAAOwwHHb6hkAAABJElEQVQoz3WSC2+DMAyE+f//cF1bFggd4rEGmqTlefNFgqXVGskkhuPzYZN473G5XKC+FLTWyPMcdV1DKYWiKGCMAdc0TWjbNtwryxKn0wlN04Sc71RVhWVZkFhnww0KtM7xcTiEPE3TAL3dbk9AFmVkmQpxPp9xPB7/gLy0bRPCe4dMZ6ibGvf7fYet64pt0UDXm7DrQsu5R9d1VIXnCV4WnaxRvsG4x+B5nkPRWMdIYuEwDDDX61vYlhNG91fR/vQ2uHsCco3jiE4GUJoOhfRjlVbEoBjYy2eOUrzyI1RZyfmxF94dcmLOOXwL8FMGZK391x0LU0uXxrHPWw/x7JA7K7ci3noTg15bQ60XA9wXge/AuFesSkEMeTcYDo/O+JfEml/0prqDUsxDpAAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/e21e90fde0e7222b0bbf7c136fd82c95/8ac56/08_distance_metric.webp 240w,\n/static/e21e90fde0e7222b0bbf7c136fd82c95/d3be9/08_distance_metric.webp 480w,\n/static/e21e90fde0e7222b0bbf7c136fd82c95/2a3bb/08_distance_metric.webp 784w\"\n              sizes=\"(max-width: 784px) 100vw, 784px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/e21e90fde0e7222b0bbf7c136fd82c95/8ff5a/08_distance_metric.png 240w,\n/static/e21e90fde0e7222b0bbf7c136fd82c95/e85cb/08_distance_metric.png 480w,\n/static/e21e90fde0e7222b0bbf7c136fd82c95/4971b/08_distance_metric.png 784w\"\n            sizes=\"(max-width: 784px) 100vw, 784px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/e21e90fde0e7222b0bbf7c136fd82c95/4971b/08_distance_metric.png\"\n            alt=\"08_distance_metric.png\"\n            title=\"08_distance_metric.png\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>이전까지의 예제에서는 L1 Dist로 픽셀간 차이의 절대값의 합을 구하였다. 이번에 추가로 소개할 방법은 L2 Distance(Euclidean Distance, 이하 L2 Dist)로 두 거리의 차의 제곱합의 제곱근을 계산하는 것으로 구할 수 있다.</p>\n<p>위의 그림은 그래프는 원점에서 떨어져 있는 거리가 같은 점들을 모아 놓은 것이다. 강의에서는 거리 척도(L1, L2)에 따라 공간의 근본적인 기하하적 구조 자체가 서로 다르게 된다고 표현하고 있다.</p>\n<ul>\n<li>\n<p>L1 Dist은 좌표계에 영향을 받는다.</p>\n<ul>\n<li>어떤 벡터가 있고 각 요소가 어떤 특별한 의미를 가질 때 더 유용할 수도 있다. 즉, 특정 벡터의 각각 요소들이 개별적인 의미를 가진다면(키/몸무게) L1 Dist가 더 유용할 <em>수도</em> 있다.</li>\n</ul>\n</li>\n<li>그렇지 않고 각 요소간의 실직적인 의미를 잘 모르는 경우에는 L2가 더 유용할 <em>수도</em> 있다.</li>\n<li>Problem-dependent 문제 의존적인 부분이기에 실제로 실험을 해보지 않는 이상 어떤것도 확신할 수는 없다.</li>\n</ul>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 806px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/2a1543e163c1a8d41952c8abc94271c9/764be/09_L1_L2.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 41.66666666666667%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAICAYAAAD5nd/tAAAACXBIWXMAAA7DAAAOwwHHb6hkAAABv0lEQVQoz1WSYU/aUBSG+fXLPm0sAyXTwGacibDgh8lMFvmgmbK4MTehpRUoUAYKpZRSKBRon11ARrzJyXlv8pw355x7Q67rUq83kCQZRVEpFIpUq1VUoVVVpd/vszyO46DrOuVyFVlWRJQoVyrIoq4k9GAwWHGhIAjExRCFj6LIpNVu0LNNrKGFMxqtoCWzybZt4HkO9tCg02kxGA4YTbZcaCla7TlabUpdX6DedzEbXayGiTeePjP0/QCt7lHR5txJDkq5j9U0MMsG0+Fk3SEsSKddXryF17uQOMvy8/Cc20gOW1+PG/hrw9ksIHYAL6MQFuy+YHPJM/KvrugW2xtDH/m0QOKdyW6ywdHVId+TWQp7eey/1jPDxWzBdbLEwV6PWFLj47cjrk++8if6g57SedrhcpTMJ9zEPl8uEmR+RTjJJbhJZRnp9n/DJRfMZwSp9zgfBHcZJ5OPkL6Jc5k6pScZW0M+H8NxmMndDmNpB1uKMP4dw7eaTzv013nuCS4OqTe4RcEWo4IVcRvGe1C2hsFDCx5reD2VaUeGYU38E03MOF51xuaVfZ+gWReshmfIgi2CLTj7XizYWrH/AIkIRb7lq7jNAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/2a1543e163c1a8d41952c8abc94271c9/8ac56/09_L1_L2.webp 240w,\n/static/2a1543e163c1a8d41952c8abc94271c9/d3be9/09_L1_L2.webp 480w,\n/static/2a1543e163c1a8d41952c8abc94271c9/e94a4/09_L1_L2.webp 806w\"\n              sizes=\"(max-width: 806px) 100vw, 806px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/2a1543e163c1a8d41952c8abc94271c9/8ff5a/09_L1_L2.png 240w,\n/static/2a1543e163c1a8d41952c8abc94271c9/e85cb/09_L1_L2.png 480w,\n/static/2a1543e163c1a8d41952c8abc94271c9/764be/09_L1_L2.png 806w\"\n            sizes=\"(max-width: 806px) 100vw, 806px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/2a1543e163c1a8d41952c8abc94271c9/764be/09_L1_L2.png\"\n            alt=\"09_L1_L2.png\"\n            title=\"09_L1_L2.png\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>위 그림에서는 거리 척도에 따라 발생하는 기하하적 변화를 확인 가능하다. 경계의 모양이 L1 Dist일 때, L2 Dist일 때가 서로 다른 것을 볼 수 있다. L1은 좌표축의 영향을 받기 때문에 경계가 수직 혹은 수평에 가깝다. L2는 축의 영향을 받지 않기 때문에 더 자연스럽게 결정경계가 만들어진다.</p>\n<p>다양한 거리척도를 이용하면 KNN으로 다양한 데이터를 다룰 수 있다. 벡터/이미지/문장 등 데이터 사이에 거리를 구할 수 있는 척도가 존재한다면 KNN 적용이 모두 가능하다. 추가로 KNN은 아주 단순한 알고리즘이어서 새로운 문제를 접했을 때 가장 먼저 간단히 시도해볼만하다.</p>\n<h3 id=\"하이퍼-파라미터\" style=\"position:relative;\"><a href=\"#%ED%95%98%EC%9D%B4%ED%8D%BC-%ED%8C%8C%EB%9D%BC%EB%AF%B8%ED%84%B0\" aria-label=\"하이퍼 파라미터 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>하이퍼 파라미터</h3>\n<p>이전 파트에서 다룬 K와 L1/L2 Dist와 같이 Train time에 학습되는 것이 아닌 학습전에 사용자가 선택하게 되는 값들을 <strong>하이퍼 파라미터</strong>라고 한다.</p>\n<p><strong>어떻게 구할까?</strong><br>\n다양한 하이퍼 파라미터 값을 시도해보고 가장 좋은 값을 찾는다.<br>\n<code class=\"language-text\">다양한 하이퍼 파라미터를 시도해 보는 것</code>과 <code class=\"language-text\">가장 좋은 값을 선택하는 것</code> 은 어떻게 해야 할까? 강의에서는 <strong><u>4가지 아이디어</u></strong>를 제시하고 있다.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 813px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/c1cf32024152ed84bd6e524b1449cd06/baaa6/11_dataset.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 72.91666666666666%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAYAAADkmO9VAAAACXBIWXMAAAsTAAALEwEAmpwYAAADBklEQVQ4y22TiXLiSAxA+f+vma1MaifHMgQwAWzj2/ggJtjYQCAz5CDByYS3sslObdWuq1RSS221XkvdGPtjpsm0ltvbW+J4QiJ2mmas79b851uKT7Vh/QPyFcS3MJ1DmnOQcMN0TBzPrsV2LUbmCHfscrdZsVovuf+5YSPyY3vP9uWJbTZjq2psg4BtGLIdGfw0TMpZVp/XiFY+4cI7yvJTxB7nDtdel6Z6wZlyKnYHe6pjZibmnY9Z2FiFgy37tdTg7mV7TOg4To2aZdlvnSQJs9mslso3n89ZLpb1D4fVBpxAcJccBPNjseIwLzgkKYJDY6D2qbAtwa2wXd+pkStfEAf12rQN0uyW14+S3aJgJ4g716P0Q97DCaVu8SuZwccHDX8uSVLzUyTpzMDPbXpOm47Z4t/xKmYmGnZm4fkqRVfB+npCdnXFw2p1RA7CoEab53PpbEpRFMe1YOZ5Xl9B5c8lnktsX5Zsnx9IVzOenh8pZV2Weynu45iw2Wqi6SqqNkQbaTiujSrrkaHXuvLr4g+igLV0/W2/Y/u4ZpoHPEjn319fKXc7fr2/f1ZYuPiZLWgOlW1PR3xXL/E+fUex8UTHsYLd/4Jx/YXc7VAoPcyTE+btNg/LY9MaVQV+4OONPZlDm/6wX+t4EjEOx4RSWSS2LhUvl9LV9z1v5Y69zOT++Zm3lxdK0b8rjKKI6XTKzeSGdJZSjVEcx/U9Vq8nlOHN5A6jMJJ7Lo6jw/9/h8OBxrXdwYilc8kIxWhjxjrWRBf7ClO0Fmm0Rm3cxGAxUZjY5ywChZWqciPdTQR3ORzydH9/rPBb55Su0aJntfmz/ZXOqEVHkp1enaKIz7UuUXt/EHotBvol3+XVmLIn63Zxz87wzs9JxX5YH9994/vwgoHXQx1f0xxc0He7WGOF3vBMHoRCNG5j6d+II/EJzeXwEt1SWPT7xM0mE5HKftxsjgmvNBmb8YBRpNJS/0L1+8xvekzMMxZJdVBfkjRr9KHboyX7bW/AnaYxEeQbQV6J/Q/y38UJMdv1MZFuAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/c1cf32024152ed84bd6e524b1449cd06/8ac56/11_dataset.webp 240w,\n/static/c1cf32024152ed84bd6e524b1449cd06/d3be9/11_dataset.webp 480w,\n/static/c1cf32024152ed84bd6e524b1449cd06/90602/11_dataset.webp 813w\"\n              sizes=\"(max-width: 813px) 100vw, 813px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/c1cf32024152ed84bd6e524b1449cd06/8ff5a/11_dataset.png 240w,\n/static/c1cf32024152ed84bd6e524b1449cd06/e85cb/11_dataset.png 480w,\n/static/c1cf32024152ed84bd6e524b1449cd06/baaa6/11_dataset.png 813w\"\n            sizes=\"(max-width: 813px) 100vw, 813px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/c1cf32024152ed84bd6e524b1449cd06/baaa6/11_dataset.png\"\n            alt=\"11_dataset.png\"\n            title=\"11_dataset.png\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<ol>\n<li>\n<p><strong>전체 데이터셋에 대하여 분류기의 정확도와 성능을 가장 높게 만들어 주는 값을 탐색</strong></p>\n<ul>\n<li>끔찍한 방법🤒</li>\n<li>K=1이 가장 정확하게 training data를 분류하며, K가 1보다 클 때는 학습 데이터 중 몇 개를 잘못 분류할 수 있다. 하지만 학습데이터에 포함되어 있지 않았던 데이터에 대해서는 후자가 더 좋은 성능을 보일 수 있다.</li>\n<li>ML에서는 학습데이터를 얼마나 잘 맞추는지는 중요하지 않고, 학습시킨 분류기가 <strong>처음 보는 데이터를 얼마나 잘 분류</strong>해내냐가 중요하다.</li>\n</ul>\n</li>\n<li>\n<p><strong>전체를 쪼개어 일부를 테스트 데이터로 사용한다.</strong></p>\n<ul>\n<li>학습 데이터를 사용하며 다양한 하이퍼 파라미터를 교체해가며 분류기를 학습시키고 테스트 데이터로 성능을 평가한다. 실험결과 테스트 데이터에서의 성능과 지표가 가장 좋은 하이퍼 파라미터를 선택한다.</li>\n<li>끔찍한 방법 2🤒</li>\n<li>ML에서는 처음 보는 데이터를 얼마나 잘 맞추냐가 중요한데 이 경우는 테스트 데이터를 얼마나 잘 맞추냐를 기준으로 하이퍼 파라미터가 선택되었다.</li>\n<li><strong>테스트셋이 처음보는 데이터를 대표하지 못하게 되었다.</strong></li>\n</ul>\n</li>\n<li>\n<p><strong>일반적인 방법 : 세개로 나눈다. trainig, validation, test</strong></p>\n<ul>\n<li>학습 데이터를 사용하며 다양한 하이퍼 파라미터를 교체해가며 분류기를 학습시키고 검증 데이터(validation)로 성능을 평가한다. 실험결과 validation 데이터에서의 성능과 지표가 가장 좋은 하이퍼 파라미터를 선택한다.</li>\n<li>모든 것이 확정되고 난 후, <strong>테스트 데이터로 “단 한번”의 검증을 수행</strong>한다. 테스트 데이터가 처음보는 데이터의 대표가 되며 이 값이 논문이나 보고서에 들어가는 값이 된다.</li>\n</ul>\n</li>\n<li>\n<p><strong>교차 검증</strong></p>\n<ul>\n<li>데이터셋이 작을 때 사용한다.</li>\n<li>딥러닝에서는 많이 사용하지 않는다 → 큰 모델을 학습시킬때는 학습 자체가 계산량이 많아 이런 부가적인 연산이 필요한 작업을 거의 사용하지 않는다.</li>\n<li>테스트 데이터를 따로 빼고 나머지 데이터를 여러 부분으로 쪼갠다.</li>\n<li>쪼개진 부분을 번갈아가면서 validation set으로 사용</li>\n</ul>\n</li>\n</ol>\n<h3 id=\"k의-변화에-따른-정확도-변화\" style=\"position:relative;\"><a href=\"#k%EC%9D%98-%EB%B3%80%ED%99%94%EC%97%90-%EB%94%B0%EB%A5%B8-%EC%A0%95%ED%99%95%EB%8F%84-%EB%B3%80%ED%99%94\" aria-label=\"k의 변화에 따른 정확도 변화 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>K의 변화에 따른 정확도 변화</h3>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 385px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/263ea8825955b976dc7ee9bbb5042f92/409e6/12_k.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 79.16666666666667%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAQCAYAAAAWGF8bAAAACXBIWXMAAAsTAAALEwEAmpwYAAABk0lEQVQ4y6VU227DIAzt/3/V9rx9wCbtIrXTVC0JudAEwiUex5FpkrbSLkiEYOxjH9uwm6aJxnEk7/3FDCFQ27ZUFAUdj0eqqoqstTd1gbXDB0an04mVjTGrVWtNTdNQXdesNwwDn231YO+cmwFhBC8yQoj02wGWmDtsgI4NhvchefIc/k8nBqJkQAhAB+GyJ+upLDSDYojB9n8ry4AxRs6LRKg7S89PX6RUnw2WkcyrAF+JEAlH9cZxjvDj0ND93T6tbTacO8GtHGz/MyDAlFLZ4PVF0ePDJ72/1SlytERkI+R2SXOeZ+oZsCxLrrLk8LDvODpQdy6QNSEVzbHMu7jpgLOjFeVlUQCoqlR167JZjBNVZZ+MApkU9dB7dgSHZnCXVZamBAUUxCYwTAAJRbtxEFIqAFzX5hIQN0AAtTY3k7+UCWVjrkTYdV1uG2NGQiv9q7H7vl9dvb8MMMxXD5UGbXkMcIA9Lj7yCxn+RQeMIMeFQEGhj9bDGUcIZXnCsOIpgkz2UJSXBTKhh6gAKjKk6hsHKuaGjVgN+QAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/263ea8825955b976dc7ee9bbb5042f92/8ac56/12_k.webp 240w,\n/static/263ea8825955b976dc7ee9bbb5042f92/63fcf/12_k.webp 385w\"\n              sizes=\"(max-width: 385px) 100vw, 385px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/263ea8825955b976dc7ee9bbb5042f92/8ff5a/12_k.png 240w,\n/static/263ea8825955b976dc7ee9bbb5042f92/409e6/12_k.png 385w\"\n            sizes=\"(max-width: 385px) 100vw, 385px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/263ea8825955b976dc7ee9bbb5042f92/409e6/12_k.png\"\n            alt=\"12_k.png\"\n            title=\"12_k.png\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<ul>\n<li>x축 K, y축 분류 정확도를 의미한다.</li>\n<li>\n<p><strong>이 그래프로 알 수 있는 것</strong></p>\n<ul>\n<li>K에 따른 분류 정확도 변화</li>\n<li>하이퍼 파라미터별 validation folds 별 성능 분산</li>\n</ul>\n</li>\n<li>이 그래프가 주어졌을 때, <strong>validaiton set 성능이 최대인 하이퍼 파라미터를 선택</strong>하게 된다.</li>\n</ul>\n<h3 id=\"knn은-이미지-분류에-잘-사용되지-않는다\" style=\"position:relative;\"><a href=\"#knn%EC%9D%80-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EB%B6%84%EB%A5%98%EC%97%90-%EC%9E%98-%EC%82%AC%EC%9A%A9%EB%90%98%EC%A7%80-%EC%95%8A%EB%8A%94%EB%8B%A4\" aria-label=\"knn은 이미지 분류에 잘 사용되지 않는다 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>KNN은 이미지 분류에 잘 사용되지 않는다</h3>\n<p><strong>이유 1. <u>test time이 너무 느리다.</u></strong></p>\n<p><strong>이유 2. <u>L1/L2 Dist가 이미지간의 거리 측정에 적절하지 않다.</u></strong>\n<span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 703px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/bdc7002049d9b32c421044c360fd77db/242e2/13_same_dist.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 32.08333333333333%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAYAAADDl76dAAAACXBIWXMAAAsTAAALEwEAmpwYAAABv0lEQVQY0x3R7U9SARTH8fuvtFVrtrZqqxdmNIogFoVwA2sVtWUht6f5wrWwslUYNSCeKhMH6AXEvyQGzdlcywhL0nu5qKsElvnq27UX58X5nHN+b47QbrfRNI3S+xJLS3W2+06ng6qqVMplGvqs1Wr9N0VRKFcqqLpt7/3Wq642KFU+sLK6xvrGBkI+n0eSbnLfc47h/gu8G08xM1NkwDugm4i//zwT6QyFQgHJJzF00Ynf6yGdyfAil8Po9eG6LNInXeVuLIkgyzKnzSeJ3rrCddMhQqEQ08Ui1hPHkRwW3N37SMQTyPqxzWIh7LvEbVsP8VicwJTMTpMJSb81mLu5NhpEmJzMIoou7vT1Yj3YRSQSIZfP4XSIOI0Gju3dpQfGkeUp7GftDLrtWPbv0QNjPM1m6eoVOeWys/vwAW4EXyKEI0mOHLURH/EzHQ0QCidIJFP0GM4wEXxC/lWAaPQtr9+kMFvdJB8PMz76kLGxNPfCSXYYHQw9G+FR9DmeBwEETWvqD9DY2vzDr7Um1epXFhaqzM3Ns1yv01j5Qa22yBfdZ2c/0lQVmsqybt+oLX5n/tNnFN3+bm2yuv6Tf6l8TejJTapsAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/bdc7002049d9b32c421044c360fd77db/8ac56/13_same_dist.webp 240w,\n/static/bdc7002049d9b32c421044c360fd77db/d3be9/13_same_dist.webp 480w,\n/static/bdc7002049d9b32c421044c360fd77db/b1708/13_same_dist.webp 703w\"\n              sizes=\"(max-width: 703px) 100vw, 703px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/bdc7002049d9b32c421044c360fd77db/8ff5a/13_same_dist.png 240w,\n/static/bdc7002049d9b32c421044c360fd77db/e85cb/13_same_dist.png 480w,\n/static/bdc7002049d9b32c421044c360fd77db/242e2/13_same_dist.png 703w\"\n            sizes=\"(max-width: 703px) 100vw, 703px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/bdc7002049d9b32c421044c360fd77db/242e2/13_same_dist.png\"\n            alt=\"13_same_dist.png\"\n            title=\"13_same_dist.png\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<ul>\n<li>기존 이미지에 세가지 왜곡을 주었을 때, 왜곡된 이미지와 원본 사이의 L2 Dist는 모두 동일(저스틴이 L2가 같도록 섬세하게 생성함)</li>\n<li>L2 Dist는 perceptual distances를 측정하는데 적합하지 않다.</li>\n</ul>\n<p><strong>이유 3. <u>차원의 저주</u></strong>\n<span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 703px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/241afddf0ddb1aa7c1bc6f06dc05a9ed/242e2/14_curse_of_dimensionality.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 42.083333333333336%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAICAYAAAD5nd/tAAAACXBIWXMAAAsTAAALEwEAmpwYAAABiElEQVQoz3WSW0/bQBCF/f//SKEgBXhoEe0L6hMPoCJVkJs3e/U6a8NiWGMnsXM63jSRkOhIY4+8njPfGTsBRdM0sNYiz3NkWQalFLTWsRZCYL1eD69hu91+uBttwBiD90/Y9rtnyXBp2xZlWaIoCjr0sXbOkeiuoa5r7OMg2vdQmkPScO9rhDogvIWd4P+CsRQsTeGfPbpNdxDr+g4T+Yi7icBEcNzPBH4/3OLH9RWS1WoFznm0GEKITT3hLwsLqS10RqtYGtilRdd1UTB3Bn+mM0xZjjkfY8YfcH55itHlVyQ9oTtXoKqqwc/BlrICTApMucRCSXCdYvNPMFsqElIQBMHJdkqUJxcjnH3/iaQKL3itParQwL++Uf0Sm3SuIc0cc0FiqoTM2EHQEPFcjmmQIbEikn4Z/cLxxTckTdvgvQmUbcx23RAiiHCYvCfkWAyEmz0hCcmUCA0Ns0SrcXR2hNv7m88/ymD56bmg3VHSOhzt05Xuww5TbsgB/WLZguopxuPHePYXXi9YaUYzXNwAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/241afddf0ddb1aa7c1bc6f06dc05a9ed/8ac56/14_curse_of_dimensionality.webp 240w,\n/static/241afddf0ddb1aa7c1bc6f06dc05a9ed/d3be9/14_curse_of_dimensionality.webp 480w,\n/static/241afddf0ddb1aa7c1bc6f06dc05a9ed/b1708/14_curse_of_dimensionality.webp 703w\"\n              sizes=\"(max-width: 703px) 100vw, 703px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/241afddf0ddb1aa7c1bc6f06dc05a9ed/8ff5a/14_curse_of_dimensionality.png 240w,\n/static/241afddf0ddb1aa7c1bc6f06dc05a9ed/e85cb/14_curse_of_dimensionality.png 480w,\n/static/241afddf0ddb1aa7c1bc6f06dc05a9ed/242e2/14_curse_of_dimensionality.png 703w\"\n            sizes=\"(max-width: 703px) 100vw, 703px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/241afddf0ddb1aa7c1bc6f06dc05a9ed/242e2/14_curse_of_dimensionality.png\"\n            alt=\"14_curse_of_dimensionality.png\"\n            title=\"14_curse_of_dimensionality.png\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<ul>\n<li>KNN이 하는일 → 학습 데이터의 공간을 분할하는 것</li>\n<li>KNN이 잘 동작하려면 공간을 분류하기에 충분할 만큼 조밀한 학습 데이터가 필요하다.</li>\n<li>공간을 조밀하게 덮을려면 충분한 양의 학습 데이터 필요하며 차원이 증가함에 따라 더 많은 양의 데이터가 필요하게 된다. 고화질의 이미지일 수록 모든 공간을 매울만큼의 데이터를 구하기란 쉽지 않다.</li>\n<li>추가 자료 : <a href=\"http://thesciencelife.com/archives/1001\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">http://thesciencelife.com/archives/1001</a></li>\n</ul>\n<p>👏 <strong>Summary</strong> 이미지 분류가 무엇인지 설명하기 위해 KNN을 예제로 들어보았다!</p>\n<h2 id=\"linear-classification\" style=\"position:relative;\"><a href=\"#linear-classification\" aria-label=\"linear classification permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><strong>Linear Classification</strong></h2>\n<ul>\n<li>간단하지만 아주 중요하며 neural networks(이하 NN)과 convolutional neural networks(이하 CNN)의 기반이 된다.</li>\n<li><strong>NN</strong>는 레고 블럭처럼 여러 구성요소(component)를 끼워 맞춰 거대한 네트워크를 구성하는 것이라 볼 수 있다.</li>\n<li>이때 기본이 되는 <strong>NN</strong>이 Linear Classifiation이라 할 수 있다. 이것을 이해함으로써 전체 NN이 어떤식으로 작동하는지 이해할 수 있을 것이다.</li>\n</ul>\n<h3 id=\"parametric-approachfeat-cifar-10\" style=\"position:relative;\"><a href=\"#parametric-approachfeat-cifar-10\" aria-label=\"parametric approachfeat cifar 10 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><strong>Parametric Approach(feat. CIFAR-10)</strong></h3>\n<ul>\n<li>Linear classification은 <u>Parametric Model</u>의 가장 단순한 형태이다.</li>\n</ul>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 643px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/4bf017b92784add47596484330ae7121/b5bda/15_parametric_approach.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 37.916666666666664%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAICAYAAAD5nd/tAAAACXBIWXMAAAsTAAALEwEAmpwYAAABRklEQVQoz42Rz07CQBCH+5xGT15NMOENTDQxRg8eTDx5MLwAF/Vi4k3ACIpQAweBFujWVjGB/qPdz6WAIgnqJJPdmd2db+a3mtUHvQbDEcokSSKRctFZiiW/mXZ8csrB4Rn5/MWKK6rIUiaOY9XAiDAM8TyPKIoYqdj3A7T1TJa1zQ329nfVoY9t2ziOiy16VGoG4t4gKt0i3ge4joMQAtd1KZTuqNd1CsUi1acajWaTl1YbbXvniEx2i/NcLqVPaGEYEfg+nj+m37X5EBbReEwQBKn76qylHvf7FqZp0uv1vkfW9WeKilIuV+i0O5hGN21/bqPB2494lc311WxhYxhmSppQJ5rEqpv00mS9vAJLpDrKJPl6mMz2yUIuLbiSqEZD6SIrD8jqoypqTT/nr1+eUubUGSmddQiNBlKJL69v4NX5V8FP5WhfeubYmfAAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/4bf017b92784add47596484330ae7121/8ac56/15_parametric_approach.webp 240w,\n/static/4bf017b92784add47596484330ae7121/d3be9/15_parametric_approach.webp 480w,\n/static/4bf017b92784add47596484330ae7121/b1337/15_parametric_approach.webp 643w\"\n              sizes=\"(max-width: 643px) 100vw, 643px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/4bf017b92784add47596484330ae7121/8ff5a/15_parametric_approach.png 240w,\n/static/4bf017b92784add47596484330ae7121/e85cb/15_parametric_approach.png 480w,\n/static/4bf017b92784add47596484330ae7121/b5bda/15_parametric_approach.png 643w\"\n            sizes=\"(max-width: 643px) 100vw, 643px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/4bf017b92784add47596484330ae7121/b5bda/15_parametric_approach.png\"\n            alt=\"15_parametric_approach.png\"\n            title=\"15_parametric_approach.png\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<ul>\n<li>\n<p>Parametric Model(x, W) => y</p>\n<ul>\n<li>x : 입력값</li>\n<li><strong>W : 가중치</strong></li>\n<li>y : CIFAR-10의 각 10개의 클래스 점수, 점수가 높을 수록 해당 클래스일 확률이 높다는 것을 의미</li>\n</ul>\n</li>\n<li>\n<p>파라미터 등장! <u><strong>학습 데이터의 정보를 요약하여 파라미터에 모아둔다.</strong></u></p>\n<ul>\n<li>test time에 training data가 더 이상 필요없어져 속도가 증가한다.</li>\n<li>딥러닝은 함수 <strong><em>f</em></strong> 의 구조를 적절하게 잘 설계하는 것이 주요 task라 볼 수 있다.</li>\n<li>어떤 식으로 가중치와 데이터를 조합할 것인가를 고민하는 과정이 다양한 NN 아키텍쳐를 설계하는 과정이 될 것이다.</li>\n<li>가장 쉬운 방법 : <u>가중치와 데이터를 그냥 곱하는 것</u> → <strong>Linear classifier</strong></li>\n</ul>\n</li>\n</ul>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 820px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/dbd41e231cdb57d4b2beaa02d4f44a9a/9f82e/16_parametric_approach.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 42.5%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAJCAYAAAAywQxIAAAACXBIWXMAAAsTAAALEwEAmpwYAAABpklEQVQoz42Sy24TUQyG5zlZsIEVbNhUfQGE4AHoEomuQGJZ0m4QTduECVKSadokjZQ0w6AmzeXM5DbJ3M75ejITRZXaIixZtmyf3/bvY4ACZKpq7WrxZoKxN2QgbhFTQTzzKP3oc/g9ovwrRK4UMlG6/qEaEw8cB8JwDaULlaTWrFI0i5R+m+TNPI5V4fDTV6qmTfXnFf2LJe45BC4PxPjy7YC9vQOOj81tMEwCGo5FvWcRLASUy3BWRP3tZfllRLySxFFCkiRIKYmiSFs94cudHZ69eM67929ZrQKEEEynM/p9h0rjD36pxaJUZDIWuIMBrudi29dY5xa1ixqVSplWq0Wz2WCsa4zdDx95/eYVn/f30+5Zt5goDBiLJdfWFYHmJdT8hJqX9SSj0ZB6va6B7RRsOBqlb9fTGvnTAkdHOfInJ2lBt2vj+/52/flssvEU/yNG7+ZGg3TpdNq02x3m8zlJHGcQ/hJyOW39FE5Jub2m3PjyXiy98lOdVBCg90Lpg6jLSzSx2Yzq8e+SpTTgY8k0rXlTVhVVKKBOz2Cx2HT69+p3+y+kdCmVFjwAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/dbd41e231cdb57d4b2beaa02d4f44a9a/8ac56/16_parametric_approach.webp 240w,\n/static/dbd41e231cdb57d4b2beaa02d4f44a9a/d3be9/16_parametric_approach.webp 480w,\n/static/dbd41e231cdb57d4b2beaa02d4f44a9a/b1f58/16_parametric_approach.webp 820w\"\n              sizes=\"(max-width: 820px) 100vw, 820px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/dbd41e231cdb57d4b2beaa02d4f44a9a/8ff5a/16_parametric_approach.png 240w,\n/static/dbd41e231cdb57d4b2beaa02d4f44a9a/e85cb/16_parametric_approach.png 480w,\n/static/dbd41e231cdb57d4b2beaa02d4f44a9a/9f82e/16_parametric_approach.png 820w\"\n            sizes=\"(max-width: 820px) 100vw, 820px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/dbd41e231cdb57d4b2beaa02d4f44a9a/9f82e/16_parametric_approach.png\"\n            alt=\"16_parametric_approach.png\"\n            title=\"16_parametric_approach.png\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<ul>\n<li>\n<p>f(x, W) = Wx</p>\n<ul>\n<li>입력 이미지 32x32x3 → 평탄화 : 3072x1 dim → 10-class score</li>\n<li>(10x3072) * (3072x1) = (10x1) → W의 shape는 (10x3072)가 되어야 한다.</li>\n</ul>\n</li>\n<li>\n<p>bias</p>\n<ul>\n<li>class수과 같은 1차원 벡터</li>\n<li>데이터와 무관하게 특정 클래스에 우선권을 부가한다. 학습 이미지에 불균형이 있는 상황 등에 유용할 것이다.</li>\n</ul>\n</li>\n<li>\n<p>계산 예시\n<span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 663px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/4109c1f74f8dc320ec8ec1acbaeaf26e/0786c/17_parametric_approach.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 40.416666666666664%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAICAYAAAD5nd/tAAAACXBIWXMAAAsTAAALEwEAmpwYAAABn0lEQVQoz4WR627aQBSE/f5v0Fa0UpU+QaVUakVIgJK2KQRxieO2lItZMMZeg23wDfNl7YQ2Un90pNE5OruaPTujHY9HDocDSZIQRRFCCMR8zmIhWKje8zzSNC1Z3D0Ripo/8e9cUyd/xOI4Zh8pximR4j5W8yQjzXJc1yUMQ054FP0XmrfxME0Te7VSW2REUhDM7/DFPbulga/6yJlhWRbrtUO2kwQLQynmSFNHTodE+z2Beqz4qfah+onK2Tsqb17zezzGmxrMvlUx21eI2wbmTQ1L77CybbzNFt8yWfauOWQZs06Tyfc6/naLfLJG+/j5hhdvz3hVeclkOmX0w6JxMeRL06BV16lXB3TbI2wlOBcmhj5R8yGrla3qgEatp3ze4LhOaZ3W7uu8Pz+ndllFuh5ja0Sjf0n9tsZXvcVV94Luzw5SSsIgRKxNrgdNskNGq9eg3qmp7WTpcZGBVqQVq0CSJC1N3YQSe7vk7lefvtHF8gTOdl2m7fs+uzjEkgvyPC/r0hUqSOVhEDx++Xlaz3tPejgqhBMKgYL/wwONcVYFxvdV/QAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/4109c1f74f8dc320ec8ec1acbaeaf26e/8ac56/17_parametric_approach.webp 240w,\n/static/4109c1f74f8dc320ec8ec1acbaeaf26e/d3be9/17_parametric_approach.webp 480w,\n/static/4109c1f74f8dc320ec8ec1acbaeaf26e/c294c/17_parametric_approach.webp 663w\"\n              sizes=\"(max-width: 663px) 100vw, 663px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/4109c1f74f8dc320ec8ec1acbaeaf26e/8ff5a/17_parametric_approach.png 240w,\n/static/4109c1f74f8dc320ec8ec1acbaeaf26e/e85cb/17_parametric_approach.png 480w,\n/static/4109c1f74f8dc320ec8ec1acbaeaf26e/0786c/17_parametric_approach.png 663w\"\n            sizes=\"(max-width: 663px) 100vw, 663px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/4109c1f74f8dc320ec8ec1acbaeaf26e/0786c/17_parametric_approach.png\"\n            alt=\"17_parametric_approach.png\"\n            title=\"17_parametric_approach.png\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<ul>\n<li>(0.2 × 56)+(-0.5 x 231)+(0.1 × 24)+(2 × 2)+1.1 = -96.8</li>\n</ul>\n</li>\n<li>linear classifier는 각 클래스를 구분시켜 주는 선형의 경계를 그어주는 역할</li>\n</ul>\n<h4 id=\"linear-classification이-직면할-수-있는-문제\" style=\"position:relative;\"><a href=\"#linear-classification%EC%9D%B4-%EC%A7%81%EB%A9%B4%ED%95%A0-%EC%88%98-%EC%9E%88%EB%8A%94-%EB%AC%B8%EC%A0%9C\" aria-label=\"linear classification이 직면할 수 있는 문제 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><strong>linear classification</strong>이 직면할 수 있는 문제</h4>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 636px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/2fc702216507eaa8131b6707fb69682f/9be90/18_parametric_approach.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 43.333333333333336%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAJCAYAAAAywQxIAAAACXBIWXMAAAsTAAALEwEAmpwYAAAB6klEQVQoz0WRC3OiQBCE+f//6Opyl7pSIy8R8ZUYTYweRuUhoAgI+N1IvMpWbdXu9HbPTrcyXRakaUaR5+T3fb1euS3Xq5m+F5yznMuloCxL7hDeocSZF8THTOqXpnbjKZvnBf5+jx/4xHFMFEX8X3l0JFxvCYOASLCiKL6x5MTm5Z395yenNP0W9J0R3m4nggGxiAW+T13XzYN4uWJnWngbVxodvkh3LPV8PMNi+7FquFX1VVeMjxDjPWChW6SWxcEwqLOMOkk49eVu27x1TcJej0LOpTSUjqSDAbHgm06H2NApHZtiNkPRVyfUdcpS7VHpGoWmUZ/P1GHAUTMYvkQ8DgLMSUikmlTbT6gurOwFi5FL8ueRwBqxtN8opImivXqoc49ZRydRNQ5dlfKccfV3jPQXVGfP5uEBzVrT1+eU7loES1aqzVIfsvv5Qz5jY1tLEplC8Vpt/FaLrjakPdvTnm5ILhKlt2V8Exz5/P39iGq7DESwEsGbx8d2i+TpqcFiOTd3sUzJdV3GVLEGczT3jP6RcKzEXUm9Gfk55Jft0xv7JJpJLSPfBC/CmY53DLVn4XfJxPvccVAyUc3kq874DctNsVYxp1LSPBykboovNtt7YLlpUO69JulcAomcqWA9Go1+n3wy4R9l85XcHx0lJwAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/2fc702216507eaa8131b6707fb69682f/8ac56/18_parametric_approach.webp 240w,\n/static/2fc702216507eaa8131b6707fb69682f/d3be9/18_parametric_approach.webp 480w,\n/static/2fc702216507eaa8131b6707fb69682f/6d494/18_parametric_approach.webp 636w\"\n              sizes=\"(max-width: 636px) 100vw, 636px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/2fc702216507eaa8131b6707fb69682f/8ff5a/18_parametric_approach.png 240w,\n/static/2fc702216507eaa8131b6707fb69682f/e85cb/18_parametric_approach.png 480w,\n/static/2fc702216507eaa8131b6707fb69682f/9be90/18_parametric_approach.png 636w\"\n            sizes=\"(max-width: 636px) 100vw, 636px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/2fc702216507eaa8131b6707fb69682f/9be90/18_parametric_approach.png\"\n            alt=\"18_parametric_approach.png\"\n            title=\"18_parametric_approach.png\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span>\n다양한 사례들이지만 결국 선분 하나로 데이터를 분류할 수 없다는 문제로 정리도니다.</p>\n<h3 id=\"summary\" style=\"position:relative;\"><a href=\"#summary\" aria-label=\"summary permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><strong>summary</strong></h3>\n<ul>\n<li>linear classifier의 수식 → 단순 행렬과 벡터의 곱</li>\n<li>가중치 행렬 w를 학습시키고 나면 새로운 학습 데이터에도 스코어를 매길 수 있다.</li>\n<li>W를 어떻게 구할 수 있는지는 배우지는 않았다. → 다음 언제가에 계속..</li>\n</ul>\n<br>\n<br>","fields":{"slug":"/posts/2021-07-11/cs231n-lec-2","tagSlugs":["/tag/cs-231-n/","/tag/deep-learning/"]},"frontmatter":{"date":"2021-07-11T15:47:32.169Z","description":"Lec.02 Image Classification 강의 정리본. The data-driven approach, K-nearest neighbor, Hyperparameters, Linear classification I","tags":["cs231n","deep learning"],"title":"CS231N Lec.02 Image Classification","socialImage":null}}},"pageContext":{"slug":"/posts/2021-07-11/cs231n-lec-2"}},"staticQueryHashes":["251939775","401334301","825871152"]}