<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>코딩하는 해커</title>
    <link>https://psleon.tistory.com/</link>
    <description>My ambition is to become an AI researcher &amp;amp; Data scientist.
- Hinc lucem et pocula sacra</description>
    <language>ko</language>
    <pubDate>Fri, 8 May 2026 03:20:47 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>PSLeon</managingEditor>
    <image>
      <title>코딩하는 해커</title>
      <url>https://tistory1.daumcdn.net/tistory/4990561/attach/e0d52a4186da43628281d832d733d08f</url>
      <link>https://psleon.tistory.com</link>
    </image>
    <item>
      <title>1. Cell 구조와 기능에 대한 개요</title>
      <link>https://psleon.tistory.com/258</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;1. Cell 구조와 기능에 대한 개요&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Cell(세포)의 구조와 기능에 대해 거시적 관점으로 살펴보고 이어지는 포스팅에서 점차 깊게 디테일한 부분을 공부해보고자 한다.&lt;br /&gt;오늘 공부하는 내용은 존슨 홉킨스 대학의 Robert Schleif 교수님이 저자이신 'Genetics and Molecular Biology'의 챕터 1의 내용인 An Overview of Cell Structure and Functions 부분을 학습하고자 한다. 총 23개의 챕터가 존재하는데 일단 1회독을 하며 전체적인 내용을 살펴보고자 한다. 오늘 하는 부분은 &quot;1. An Overview of Cell Structure and Function&quot; 챕터이다. 이 챕터의 하부 섹션은 다음과 같다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;579&quot; data-origin-height=&quot;259&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xEfQC/btsPualhBxG/BnXhOd3OJkoGJ33v2eD6B0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xEfQC/btsPualhBxG/BnXhOd3OJkoGJ33v2eD6B0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xEfQC/btsPualhBxG/BnXhOd3OJkoGJ33v2eD6B0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxEfQC%2FbtsPualhBxG%2FBnXhOd3OJkoGJ33v2eD6B0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;579&quot; height=&quot;259&quot; data-origin-width=&quot;579&quot; data-origin-height=&quot;259&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;위에서 볼 수 있다시피, 가장 먼저 세포는 많은 양의 정보를 필요로 한다는 것부터 설명이 시작된다.&lt;br /&gt;그리고, 이후에 나오는 몇몇의 단어는 AI를 공부하는 필자의 입장에서는 생소한 단어인데, 모르는 단어를 먼저 정리하는게 우선인 것 같다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;prokaryotic cell: 원핵세포&lt;br /&gt;eukaryotic cell: 진핵세포&lt;br /&gt;&amp;nbsp;&lt;br /&gt;위 두 가지 단어는 생명과학때 잠시 봤던 기억이 나는데, 엄청 오랜 기간동안 잊고 살았기 때문에 기본적인 내용을 정리하고 공부를 하는 것이 옳은 방향인 것 같다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;원핵세포는 진짜 핵을 갖지 않은 세포로, 원시세포이며 대표적인 원핵세포로는 세균이 있다. 생긴건 다음과 같다.&lt;br /&gt;추가로, 진짜 핵을 갖지 않은 세포라 해놓고 왜 그림에 핵양체가 있는지 궁금해서 찾아보니 핵과 핵양체의 가장 결정적인 차이는 핵막의 유무라고 한다. 진핵세포의 경우 핵막이라는 막에 둘러쌓여 있는 핵(nucleus)이 존재하는데 원핵세포의 경우 핵막에 둘러 쌓인 핵이 없고, 유전물질들이 세포질 내의 특정 영역에 뭉쳐있는 형태로 존재한다고 한다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;881&quot; data-origin-height=&quot;347&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/S8eOI/btsPu7A5h36/q5fNEeUKUPaZhKfD7oeWc0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/S8eOI/btsPu7A5h36/q5fNEeUKUPaZhKfD7oeWc0/img.png&quot; data-alt=&quot;원핵세포&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/S8eOI/btsPu7A5h36/q5fNEeUKUPaZhKfD7oeWc0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FS8eOI%2FbtsPu7A5h36%2Fq5fNEeUKUPaZhKfD7oeWc0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;881&quot; height=&quot;347&quot; data-origin-width=&quot;881&quot; data-origin-height=&quot;347&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;원핵세포&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;진핵세포는 핵과 핵막이 존재하는 세포이며, 대표적으로 동물과 식물의 세포가 진핵세포에 해당한다. 생긴건 다음과 같이 원핵세포보다 훨씬 복잡하게 생겼다. 직감상, 앞으로 다루게 될 중요한 부분이 될 것이라 생각된다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;333&quot; data-origin-height=&quot;206&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/boyUla/btsPtzFLuBR/BEIQXCM5tyLyX75P4j4sL1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/boyUla/btsPtzFLuBR/BEIQXCM5tyLyX75P4j4sL1/img.png&quot; data-alt=&quot;진핵세포&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/boyUla/btsPtzFLuBR/BEIQXCM5tyLyX75P4j4sL1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FboyUla%2FbtsPtzFLuBR%2FBEIQXCM5tyLyX75P4j4sL1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;333&quot; height=&quot;206&quot; data-origin-width=&quot;333&quot; data-origin-height=&quot;206&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;진핵세포&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;이제 다시 차례대로 왜 세포들은 엄청난 양의 정보를 필요로 하는지에 대해서 살펴보자.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1.1 세포가 엄청 많은 양의 정보를 필요로 하는 이유&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세포는 스스로 유지하고 성장하고 또다른 세포를 번식하기 위해 많은 부가적인 요소들(&lt;i&gt;e.g.&lt;/i&gt;, 단백질, 소분자)을 스스로 만들어 내야한다. 조금 더 쉽게 비유하자면, 1인 기업 운영의 경우, 기업의 대표가 사업 아이템 기획, 마케팅, 영업 전반적인 것을 모두 진행해야 하는데 대표는 여러 명의 직원을 거닌 회사의 대표보다 더 많은 지식과 정보가 요구될 것이다. 마치 이런 이유와 마찬가지로 세포의 경우도 방대한 양의 정보를 필요로 한다고 이해할 수 있다.&lt;br /&gt;세포는 앞에서도 언급한 바와 같이 수많은 요소들을 스스로 만들어내야 하는데, 이를 위해 수많은 설계도가 필요하다. 그 정보를 모두 갖고 있는 것이 DNA이다. 이는 마치 도서관에서 필요한 책을 꺼내는 것과 같은 느낌인데 무엇인가 만들어야할 때 항상 DNA의 모든 유전자를 다 필요하는 것이 아닌 필요한 유전자만 사용한다. 이를 유전자 발현 조절(gene regulation)이라고 한다. 예를 들어, 특정 영양소가 부족하다면, 해당 영양소를 만드는 데 필요한 효소의 유전자만 발현시켜 효율적으로 생산시킬 수 있다.&lt;br /&gt;지금까지의 내용만 봐도 DNA가 세포에 있어서 얼마나 중요한지 깨달을 수 있다. 따라서 DNA는 안정적으로 정보를 보존해야하기 때문에 중학교 과학시간에 익히 들은 이중나선구조의 형태로, 두 개의 가닥이 서로 정보를 보완하는 형태로 되어있다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vdr84/btsPuOBVGYa/9WM68EYEnBFgMwBr1gCbVK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vdr84/btsPuOBVGYa/9WM68EYEnBFgMwBr1gCbVK/img.jpg&quot; data-alt=&quot;DNA 이중 나선 구조&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vdr84/btsPuOBVGYa/9WM68EYEnBFgMwBr1gCbVK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fvdr84%2FbtsPuOBVGYa%2F9WM68EYEnBFgMwBr1gCbVK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1280&quot; height=&quot;720&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;DNA 이중 나선 구조&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1.2 원핵세포 구조의 기초&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;본 포스팅의 초반부에 원핵세포와 진핵세포에 대해 간단히 정리하며, 원핵세포에는 대표적으로 세균이 있다고 하였다. 내가 참고하는 책에도 대장균(E. coli)을 예로 설명이 되어있다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1057&quot; data-origin-height=&quot;435&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KOboj/btsPun5TGY7/kxPBJNp5NkLc0B0XO3MKwk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KOboj/btsPun5TGY7/kxPBJNp5NkLc0B0XO3MKwk/img.png&quot; data-alt=&quot;일반적인 대장균의 크기 (길이 1~3 &amp;amp;micro;m, 직경 0.75 &amp;amp;micro;m)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KOboj/btsPun5TGY7/kxPBJNp5NkLc0B0XO3MKwk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKOboj%2FbtsPun5TGY7%2FkxPBJNp5NkLc0B0XO3MKwk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1057&quot; height=&quot;435&quot; data-origin-width=&quot;1057&quot; data-origin-height=&quot;435&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;일반적인 대장균의 크기 (길이 1~3 &amp;micro;m, 직경 0.75 &amp;micro;m)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;대장균 (E.coli)의 경우 아주 작은 생명체로 원핵세포의 구조를 갖고 있다. 위 사진을 보면 세포가 어떻게 생겼는지 볼 수 있는데, 기본적으로 외형은 길쭉한 알약처럼 생긴 것을 확인할 수 있다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;대장균과 같이 원핵세포의 경우 자기 자신을 보호하기 위해 여러 겹으로 된 세포 외피(cell envelope)를 갖고 있는데, 이 외피는 외막, 세포벽, 내막으로 구성되어 있으며 이를 도식화하면 아래와 같다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1172&quot; data-origin-height=&quot;621&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4DJyG/btsPt1B5hNc/G0sbwaSdhzttVP6LkIHJL0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4DJyG/btsPt1B5hNc/G0sbwaSdhzttVP6LkIHJL0/img.png&quot; data-alt=&quot;대장균의 외피의 구조 도식화&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4DJyG/btsPt1B5hNc/G0sbwaSdhzttVP6LkIHJL0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4DJyG%2FbtsPt1B5hNc%2FG0sbwaSdhzttVP6LkIHJL0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1172&quot; height=&quot;621&quot; data-origin-width=&quot;1172&quot; data-origin-height=&quot;621&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;대장균의 외피의 구조 도식화&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;가장 바깥쪽 부분이 외막(outer membrane)이며, 세포를 보호하는 보호막 역할을 한다. 그리고 외막과 내막 사이에는 그물망층으로 구성되어 있는 세포벽(cell wall)이 있다. 이는 펩티도글리칸(peptidoglycan)이라는 물질로 만들어져 있는 그물망으로, 세포를 터지지 않고 알약 모양의 형태로 유지하도록 유지시켜 준다. 마지막으로 세포의 가장 중요한 내용물을 직접 감싸고 있는 내막(inner membrane)이 있다. 내막의 경우 가장 안쪽에서 세포의 내용물을 감싸기 때문에 가장 중요한 부분이다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;그리고 세포 내부의 경우 세포질이라고 부르는데(crytoplasm), 리보솜(ribosome)과 핵양체(nuclear region)이 존재하는 것을 확인할 수 있다.&lt;br /&gt;리보솜은 세포질에서 단백질 합성을 수행하는 RNA-단백질 복합체로 모든 생물 세포에 존재한다. 대장균의 경우 약 10,000개 정도의 리보솜이 존재한다.&lt;br /&gt;마지막으로 핵양체는, 원핵세포의 경우 진핵세포와 다르게 핵막이 없는데, 대신, 유전 정보가 담긴 DNA가 세포질 내의 특정 영역에 끈처럼 뭉쳐 있는데, 이를 핵양체라고 한다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;이와 같이 엄청 작은 대장균도 스스로를 보호하는 세포 외피와 스스로 필요한 요소를 생산하도록 하는 하는 내부 세포질이 존재한다. 교재에는 많은 화학 구조도 함께 있지만 이 부분은 비전공자이므로 생략한다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1.3 진핵세포 구조의 기초&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로 살펴볼 것은 진핵세포이다. 진핵세포는 원핵 세포와 비교했을 때 훨씬 크고 복잡한 구조를 갖고 있으며, 식물과 동물이 진핵세포로 이루어져 있다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;832&quot; data-origin-height=&quot;502&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/boPkzf/btsPuFkYZpt/XBgPwqIVvwJWWcqgV2A050/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/boPkzf/btsPuFkYZpt/XBgPwqIVvwJWWcqgV2A050/img.png&quot; data-alt=&quot;진핵세포&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/boPkzf/btsPuFkYZpt/XBgPwqIVvwJWWcqgV2A050/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FboPkzf%2FbtsPuFkYZpt%2FXBgPwqIVvwJWWcqgV2A050%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;832&quot; height=&quot;502&quot; data-origin-width=&quot;832&quot; data-origin-height=&quot;502&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;진핵세포&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;진핵세포를 원핵세포와 구분 짓는 가장 큰 특징이 바로 핵막(nucleus membrane)의 유무이다. 진핵 세포의 경우 핵(nucleus)이 존재하는데, 이는 바깥쪽의 핵막에 둘러쌓여 있다. 핵에는 세포의 모든 활동을 지시하는 DNA가 히스톤이라는 단백질과 함께 복잡하게 꼬여 안전하게 보관된다. 그리고 핵막을 자세히 보면 동그란 구멍이 보이는데 이를 핵공(nuclear pore)이라 하며, 이를 통해 필요한 물질만 선택적으로 드나들도록 할 수 있다. 또한, 진핵세포에는 핵 외에도 여러 종류의 막으로 둘러싸인 세포 소기관들이 존재한다. 주요 세포 소기관으로는 미토콘드리아, 소포체, 골지체, 엽록체가 있으며 각각은 다음과 같이 이해할 수 있다.&lt;br /&gt;- 미토콘드리아(mitochondrion): 세포 활동에 필요한 대부분의 화학 에너지인 ATP를 생산하는 역할을 한다. 미토콘드리아에는 자체적인 DNA와 리보솜을 갖고 있어, 과거에는 독립적인 박테리아였다는 증거로 여겨진다.&lt;br /&gt;- 소포체(endoplasmic reticulum): 진핵세포 그림을 보면 긴 벌레처럼 생긴 구조물이 보이는데, 이를 소포체라고 한다. 핵막 바깥쪽부터 세포질 전체에 걸쳐 뻗어 있는 막 구조물로 단백질과 지질을 합성하고 세포 내의 다른 곳으로 운송하는 역할을 한다.&lt;br /&gt;- 골지체(golgi apparatus): 골지체의 경우 소포체에서 만들어진 단백질을 변형하고 가공하여 세포 내의 다른 소기관으로 보내거나 세포 밖으로 보내는 역할을 한다.&lt;br /&gt;- 엽록체(chloroplasts): 식물과 조류 세포에서 발견되는 소기관으로, 광합성을 통해 빛 에너지를 포도당과 같은 화학 에너지로 전환시키는 역할을 하며, 자체 DNA와 리보솜을 갖는다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1.3 긴 길이의 DNA는 어떻게 세포속에 들어가는가?&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 서브 섹션의 경우 Packing DNA into Cells라는 이름이 제목이다. 세포의 설계도 역할을 하는 DNA의 경우 펼치게 되면 세포 자체보다 훨씬 길어지게 된다. 예를 들어, 대장균의 경우 DNA의 길이는 약 0.1cm인데, 반면 대장균의 핵양체의 경우 한 변의 길이가 0.25&amp;micro;로 0.000025cm에 불과하다. 즉, 이를 영어로 표현하니 DNA라는 긴 실을 마치 세포라는 상자 속에 꾸겨 넣는 듯한 표현을 쓰려고 하다보니 저런 소제목이 나온 것 같다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;511&quot; data-origin-height=&quot;568&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5XJLD/btsPuY5oPSi/GckNc34JaaHKY1MxIT6th1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5XJLD/btsPuY5oPSi/GckNc34JaaHKY1MxIT6th1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5XJLD/btsPuY5oPSi/GckNc34JaaHKY1MxIT6th1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5XJLD%2FbtsPuY5oPSi%2FGckNc34JaaHKY1MxIT6th1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;511&quot; height=&quot;568&quot; data-origin-width=&quot;511&quot; data-origin-height=&quot;568&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;근본적인 문제는 아주 긴 DNA와 아주 작은 세포인데, 이를 원핵세포인 대장균의 경우 어떻게 해결할까?&lt;br /&gt;대장균의 경우, 아주 긴 DNA를 핵양체라는 좁은 공간에 약 60겹으로 겹쳐서 꾸겨 넣게된다. 하지만 이렇게 한다면, DNA를 읽어서 단백질을 만드는 효소인 RNA가 빽빽하게 꾸겨진 DNA 가닥 사이에 물리적으로 들어갈 수 없게 된다. 하지만 세포의 경우 몇가지의 방법을 통해 이를 해결한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;첫번째는 핵양체 속의 DNA 덩어리가 계속 움직이며 효소가 접근할 수 있도록 한다. 다음으로, RNA 효소가 빽빽한 DNA 틈을 비집고 들어가는 것이다. 마지막으로 핵심적인 유전자들은 DNA 덩어리 표면에 위치하도록 하여 RNA가 쉽게 접근할 수 있도록 한다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;비교적 단순한 원핵세포가 이정도라면, 진핵세포는 어떨까? 진핵세포의 경우 원핵세포보다 최대 1000배나 많은 DNA를 갖고 있다고 한다. 따라서 위에서 언급한 문제가 훨씬 더 복잡하며, DNA를 감는 히스톤(histone)이라는 단백질이 존재하기 때문에 더 어려운 문제이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이러한 문제를 해결하기 위해 진핵세포는 조절 단백질(regulatory protein)을 활용하는데, 유전자가 발현되기 전에 특정 조절 단백질들이 먼저 DNA의 조절 부위에 결합하여 히스톤이 그 자리에 결합하는 것을 막아, 향후에도 RNA 효소가 접근할 수 있도록 한다. 그리고 또 다른 방법으로는 조절 단백질을 통해 히스톤을 밀어내거나 위치를 바꾸도록 하여 RNA 효소가 접근할 수 있도록 한다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1.4 세포막을 통한 분자의 이동 (Moving Molecules into or out of Cells)&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세포는 생존에 필요한 물질은 받아들이고, 불필요하거나 해로운 물질은 밖으로 내보내야 한다. 이 모든 과정은 세포를 둘러싼 세포막을 통해서 일어나고, 이는 에너지를 사용하지 않는 방식(passive transport)과 에너지를 사용하는 방식(active transport)으로 나뉜다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저, 수동 수송(passive transport)의 경우 물질의 농도가 높은 곳에서 낮은 곳으로 자연스럽게 이동하는 현상이다. 수동 수송의 종류로는 단순 확산과 촉진 확산이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 단순 확산: 산소나&amp;nbsp;이산화탄소처럼&amp;nbsp;크기가&amp;nbsp;매우&amp;nbsp;작은&amp;nbsp;분자가&amp;nbsp;세포막을&amp;nbsp;직접&amp;nbsp;통과하는&amp;nbsp;방식&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 촉진 확산: 포도당이나&amp;nbsp;아미노산처럼&amp;nbsp;크기가&amp;nbsp;좀&amp;nbsp;더&amp;nbsp;크거나&amp;nbsp;전하를&amp;nbsp;띠는&amp;nbsp;분자들이&amp;nbsp;세포막에&amp;nbsp;있는&amp;nbsp;운반체&amp;nbsp;단백질의&amp;nbsp;도움을&amp;nbsp;받아&amp;nbsp;이동하는&amp;nbsp;방식&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로, 능동 수송(active transport)은 세포가 에너지를 사용하여 물질을 농도가 낮은 곳에서 높은 곳으로 거슬러 이동시키는 방식이다. 이는 이미 세포 안에 특정 물질이 많아도, 밖에서 더 끌어와야 할 때 사용된다. 이를 위해 분반체 단백질이 반드시 필요하고, 이 단백질이 펌프(pump) 역할을 하기 위해서는 세포의 대사 에너지(주로 ATP)를 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;능동 수송의 경우, 반드시 에너지가 필요하다 했는데, 크게 세 가지 방식으로 에너지를 얻게 된다. 화학 삼투(chemiosmosis), 결합 단백질 시스템(binding protein systems), 인산기 전이효소 시스템(phosphotransferase system)이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;화학 삼투는 세포가 양성자(H+)를 세포 밖으로 포너애 농도 차이를 만드는데, 이 양성자가 다시 안으로 들어오려는 힘을 이용해 다른 분자를 함께 이동시킨다. 이때 동향수송(symport)과 역수송(antiport)라는 단어도 나오는데, 동향 수송은 양성자와 다른 분자가 같은 방향으로 함께 들어오는 것을 의미하고 역수송은 이 둘이 서로 반대 방향으로 나가는걸 말한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결합 단백질 시스템의 경우 앞에서 말한 것과 같이 대사 에너지를 사용하는 방식인데, 주로 ATP라는 에너지 분자를 직접 분해(기수분해)하여 에너지를 얻는데, 기수분해될 때 나오는 에너지의 약 50%를 물질 수송에 사용하여 아미노산, 당 등 특정 분자와 결합하는 단백질을 통해 물질을 이동시킨다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막으로 인산기 전이효소 시스템은, 대장균(E. coil)에서 주로 발견되는 독특한 방식인데, 세포 밖의 당(sugar)을 안으로 들어오면서 동시에 인산(phosphate)을 붙여 화학적으로 변화시킨다. 이렇게 되면, 당이 세포 안에서 마치 덫에 걸린 것처럼 갇히게 되어 다시 밖으로 나갈 수 없게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1.5 작은 부피의 세포 내에서의 확산(diffusion)&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AI에서 내가 주로 다루는 분야는 Generative modeling이다. 여기서 최근 가장 핵심이 되는 패러다임은 확산 모델인데, 본 과목을 학습하면서 디퓨전, 즉 확산이라는 단어를 보니 뭔가 더 반가운 느낌이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;확산이라는 단어를 생각하면 아래의 이미지와 같이 점차 퍼져나가는 이미지를 연상시킬 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;800&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bcAWwW/btsPuDBkQu8/iaCbj1sFynteWPbJo7lhjk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bcAWwW/btsPuDBkQu8/iaCbj1sFynteWPbJo7lhjk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bcAWwW/btsPuDBkQu8/iaCbj1sFynteWPbJo7lhjk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbcAWwW%2FbtsPuDBkQu8%2FiaCbj1sFynteWPbJo7lhjk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1280&quot; height=&quot;800&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;800&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;작은 부피의 세포 내에서 확산은 무엇을 의미할까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세포 내부는 질서있게 배열된 분자들의 모임이 아니고, 분자들이 매우 빠른 속도로 움직인다. 예를 들어, 세포에게 특정 단백질을 만들라는 신호를 주게 된다면 몇 분 안에 새로운 단백질이 완성된다. 새로운 단백질 합성을 위해 필요로 하는 분자들이 서로를 매우 빠르게 움직이며 합쳐져야 가능한 일이다. 이렇게 빠르게 움직이는 것을 확산(diffusion)이라 부른다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;교재에는 계산을 통해 단백질 분자 하나가 확산만으로 세포를 가로지르는 데 걸리는 시간이 나타나 있는데, 박테리아의 경우 약 1/250초, 진핵세포의 경우 약 2초라는 아주 빠른 속도로 세포의 한쪽 끝에서 다른 쪽 끝으로 이동할 수 있다고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1.6 기하급수적으로 증가하는 세포&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이상적인 환경이라면 세포의 성장 속도는 세포 수에 정비례하여 빨라진다. 그래서 세포는 지수적 성장을 한다고도 표현을 하는데, 이렇듯 세포 집단의 성장을 나타내는 핵심 공식으로, 지수 성장률(&amp;micro;)을 이용한 공식이고 다음과 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;427&quot; data-origin-height=&quot;86&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cNwSv4/btsPt82OiF9/dRuRc0j7wqorGQxC8pMZZ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cNwSv4/btsPt82OiF9/dRuRc0j7wqorGQxC8pMZZ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cNwSv4/btsPt82OiF9/dRuRc0j7wqorGQxC8pMZZ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcNwSv4%2FbtsPt82OiF9%2FdRuRc0j7wqorGQxC8pMZZ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;427&quot; height=&quot;86&quot; data-origin-width=&quot;427&quot; data-origin-height=&quot;86&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서, N(t)는 시간 t 시점에서의 세포 수를 의미하며, N(0)은 가장 처음 세포 수, &amp;micro;는 세포의 고유한 지수 성장률을 의미한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1.7 성장하는 세포의 구성 변화&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;성장하는 세포 집단에서 특정 효소의 합성이 시작될 때, 시간이 지남에 따라서 효소 양은 어떻게 변화할까?&lt;br /&gt;즉, 성장하는 세포 집단에서 세포는 계속 2배씩 늘어나는데 새로 만들어지는 효소는 어떻게 이 속도를 따라잡는지 구성 변화를 살펴보자.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;951&quot; data-origin-height=&quot;313&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NI4iM/btsPuDAIYmo/Ttt98hrkEKY5LqjhYcVn41/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NI4iM/btsPuDAIYmo/Ttt98hrkEKY5LqjhYcVn41/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NI4iM/btsPuDAIYmo/Ttt98hrkEKY5LqjhYcVn41/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNI4iM%2FbtsPuDAIYmo%2FTtt98hrkEKY5LqjhYcVn41%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;951&quot; height=&quot;313&quot; data-origin-width=&quot;951&quot; data-origin-height=&quot;313&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;위 표에서는 세포의 질량이 시간이 지남에 따라 1, 2, 4, 8로 정확히 2배씩 늘어나는 이상적인 지수적 성장을 가정하고 있다.&lt;br /&gt;이때, 가능한 시나리오는 2개가 있다. 첫 번째는 효소 합성이 오래전에 시작된 경우 즉, 안정 상태인 경우이다. 그리고 두 번째는 t가 0에서 시작된 유도 상태가 있다.&lt;br /&gt;먼저, 안정 상태(steady state)의 경우, 효소 합성이 아주 오래전부터 계속되어 안정 상태에 도달한 경우이다. 그래서 위 표에서도 세포의 질량이 증가한 양과 효소의 총량이 동일하게 정확히 2배씩 증가하는 것을 확인할 수 있다. 이 경우, 세포 하나당 효소의 농도가 항상 일정하게 유지된다.&lt;br /&gt;다음으로, 유도 상태인데, 이것이 위 표의 핵심이다. t=0 시점에 세포의 질량은 1이지만, 효소는 0인 것을 확인할 수 있다. 이 시점부터 세포는 효소를 합성하게 된다. 그러면 T_d 시점에서 세포의 질량은 2이지만 처음 효소가 합성되었기 때문에 A만큼의 효소를 만들게 된다. 이제 다음 시점인 2T_d 시점에서는 2배만큼 늘어난 세포가 또다시 효소를 합성하게 되어 3A 만큼의 효소가 생긴다. 이런식으로 직전 시점의 세포의 양만큼 점차 효소도 늘어나게 된다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1.8 성장하는 세포 집단의 나이 분포&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;활발하게 성장하고 분열하는 세포 집단에서 존재하는 세포는 동일하지 않고 다양한 나이 분포를 갖고 있다.&lt;br /&gt;새롭게 분열된 세포는 성장하면서 부피가 두 배가 되고 두 개의 자식세포로 분열한다. 쉽게 말해, 세포 1개의 나이가 1이 되어 분열하면 나이 0인 새로운 세포가 2개가 생긴다는 것이다.&lt;br /&gt;이렇게 되면 당연히 존재하는 세포의 수도, 세포의 나이도 다르게 되는 것은 당연하다. 아래 그림을 보면 개별 세포의 나이가 어떻게 분포하는지 잘 나타내는 그래프인데, 항상 오른쪽 아래로 내려가는 지수 함수 형태를 보이게 된다. 즉, 어린 세포가 항상 더 많다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;526&quot; data-origin-height=&quot;450&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dzSlhl/btsPuEGoPYR/qU4sZGV31Ufk69hZRXt9Bk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dzSlhl/btsPuEGoPYR/qU4sZGV31Ufk69hZRXt9Bk/img.png&quot; data-alt=&quot;Age distribution in an exponentially growing population&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dzSlhl/btsPuEGoPYR/qU4sZGV31Ufk69hZRXt9Bk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdzSlhl%2FbtsPuEGoPYR%2FqU4sZGV31Ufk69hZRXt9Bk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;526&quot; height=&quot;450&quot; data-origin-width=&quot;526&quot; data-origin-height=&quot;450&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Age distribution in an exponentially growing population&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Genetics and Molecular Biology</category>
      <category>mcb</category>
      <category>Molecular cell biology</category>
      <category>분자생물학</category>
      <category>생명과학</category>
      <category>유전학</category>
      <author>PSLeon</author>
      <guid isPermaLink="true">https://psleon.tistory.com/258</guid>
      <comments>https://psleon.tistory.com/258#entry258comment</comments>
      <pubDate>Wed, 23 Jul 2025 16:19:32 +0900</pubDate>
    </item>
    <item>
      <title>AI 연구자가 말하는 ChatGPT 시대의 공부법</title>
      <link>https://psleon.tistory.com/257</link>
      <description>&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;ChatGPT가 등장한 이후, 많은 학생들이 AI를 과제, 레포트, 시험 준비 등 다양한 방식으로 활용하고 있다. 이에 따라 교육 현장에서는 “AI 활용을 제한해야 한다”는 입장과 “학습에 도움이 되니 자유롭게 허용해야 한다”는 입장 간의 팽팽한 대립이 이어지고 있다.&lt;br&gt;&lt;br&gt;나는 현재 인공지능 전공으로 대학원 석사 과정을 밟고 있으며, 학부 시절에는 교직 이수를 통해 교육학을 함께 공부했다. 특히 수많은 교육학 과목들(교육방법및교육공학, 교육심리학, 교육사회학, 교육행정및교육경영, 교육과정및교육평가, 특수교육학개론, 학교폭력예방및학생의이해, 컴퓨터교육론, 컴퓨터교육학및논술, 컴퓨터교재연구및지도법)을 모두 A+로 이수할 만큼 열정적으로 교육학 공부에 임했고, 이로 인해 교육의 본질과 교수·학습 이론에 대한 이해도 깊게 쌓을 수 있었다. 이러한 경험은 내가 ChatGPT와 같은 AI가 교육에 미치는 영향에 대해 보다 균형 잡힌 시각을 갖도록 도와주었다.&lt;br&gt;&lt;br&gt;개인적으로도 ChatGPT를 여러 방면으로 활용하고 있다. 예를 들어, 간단한 아이디어가 있을 때 이를 구체화하기 위해서 또는 글을 작성해야 할 때 전체적인 글의 구조나 흐름을 잡을 때, 혹은 간단한 코딩 작업의 skeleton code를 빠르게 생성할 때 매우 유용하다. 코딩의 경우, 디테일한 부분은 여전히 직접 코딩하지만, 필자 역시 반복적이고 단순한 작업은 AI에게 맡긴다. 물론 석사과정 동안 해당 부분에 대해서도 반대하는 인원도 여럿 목격했다. 그때마다 세탁기가 등장한 이후에도 손빨래를 고집하는 것과 같은 비효율성을 떠올리게 된다.&lt;br&gt;&lt;br&gt;또한, 필자는 한 가지 사실에 대해 확실히 말할 수 있다. ChatGPT 이전보다 지금 이 시점에서 AI를 활용했을 때 나의 생산성이 훨씬 높아졌다는 점이다. 이러한 경험은 불특정 다수에게 설문을 진행하더라도 확실히 같은 결과가 나올 것이다.&lt;br&gt;&lt;br&gt;하지만 여기에는 전제가 있다. AI를 단순히 ‘답을 대신해주는 도구’로만 받아들이는 태도는 오히려 위험하다. 스스로 생각하지 않고 AI에 과도하게 의존하는 태도는, 결국 AI의 대표적인 위협 중 하나인 ‘인간 일자리의 대체’를 현실로 만들 수 있다. 그러나 필자는 확신한다. 확률과 통계를 기반으로 학습된 확률 분포에서 샘플링을 통해 그럴싸한 문장을 생성하는 모델은 인간의 깊이 있는 사고를 완전히 대체할 수 없다.&lt;br&gt;&lt;br&gt;결국, 위와 같은 이유로 이미 도래한 AI 시대에서 중요한 것은 AI에 대한 규제를 강화하는 것이 아닌 AI의 원리를 정확히 이해하고, 이를 적극적으로 활용할 줄 아는 인재를 양성하는 것이라 생각한다. 겉으로는 멋진 강의를 하는 이른바 ‘AI 전문가’ 중 많은 수가 실제로는 ChatGPT 논문 한 번 제대로 읽어보지 않은 경우도 적지 않다. 프롬프트를 이렇게 바꿔보고, 저렇게 바꿔보면서 터득한 ‘경험적 노하우’는 그 자체로도 의미 있지만, 본질을 이해하지 못하면 결국 ‘똑똑한 사용자’ 수준에 머무르게 된다.&lt;br&gt;&lt;br&gt;ChatGPT와 같은 생성형 모델은 본질적으로 확률과 통계에 기반해 가장 그럴싸한 문장을 생성한다. 즉, ‘가장 그럴듯한 말’을 하는 것이지 ‘가장 사실적인 내용’을 하는 것은 아니다. LLM(Large Language Models) 분야 흔히 말하는 hallucination(환각)이라는 현상은 이와 밀접한 관련이 있다. 그렇기 때문에 사용자는 언제나 AI의 답변을 비판적으로 수용할 수 있어야 하고, 중요한 의사결정이나 학습의 경우 AI의 응답을 검증하고 스스로 사고하는 노력을 병행해야 한다.&lt;br&gt;&lt;br&gt;나는 ChatGPT를 비롯한 생성형 AI가 교육을 바꿀 수 있다고 믿는다. 더 정확히 말하면, ‘어떻게 활용하느냐’에 따라 학습의 질이 달라질 수 있다고 생각한다. 잘 활용하면 사고력, 창의력, 생산성을 높이는 강력한 도구가 될 수 있고, 잘못 사용하면 사고력 없는 무기력한 학습자가 될 수 있다. 결국, AI 시대의 진짜 경쟁력은 ‘도구를 얼마나 똑똑하게 사용하는가’에 달려 있다.&lt;br&gt;&lt;br&gt;교육학도이자 AI 연구자로서, 나는 두 분야의 관점을 통합해서 이해할 수 있는 입장에 있다. 그리고 그 입장에서 단언할 수 있다. AI는 피해야 할 존재가 아니라, 잘 길들이고 잘 활용해야 할 파트너다. 예를 들어 구성주의 교육 이론에 따르면, 학습은 지식을 수동적으로 전달받는 것이 아니라, 학습자가 능동적으로 구성해나가는 과정이다. 이런 관점에서 ChatGPT는 지식의 전달자가 아니라, 구성의 도구로 활용될 때 비로소 학습 효과를 낼 수 있다. 또한 학습자의 사고 과정에 대한 자각을 강조하는 메타인지 관점에서도, AI를 활용한 자기 점검과 피드백은 교육적으로 매우 유의미할 수 있다.&lt;br&gt;&lt;br&gt;따라서 AI를 두려워하기보다는, 정확히 이해하고 현명하게 활용하자. 그것이 바로 미래 교육의 핵심이다.&lt;/p&gt;</description>
      <category>AI &amp;amp; BigData</category>
      <category>ChatGPT</category>
      <category>교육학</category>
      <category>구성주의</category>
      <category>인공지능 교육</category>
      <category>인공지능 레포트</category>
      <category>챗지피티</category>
      <category>챗지피티 과제</category>
      <category>챗지피티 교육</category>
      <author>PSLeon</author>
      <guid isPermaLink="true">https://psleon.tistory.com/257</guid>
      <comments>https://psleon.tistory.com/257#entry257comment</comments>
      <pubDate>Fri, 28 Mar 2025 01:33:12 +0900</pubDate>
    </item>
    <item>
      <title>대한전자공학회 우수학생논문상 수상</title>
      <link>https://psleon.tistory.com/256</link>
      <description>&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1170&quot; data-origin-height=&quot;1654&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MhGTd/btsK8KYNvaF/3fU4QNZjj3uJsKP8hWTrU1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MhGTd/btsK8KYNvaF/3fU4QNZjj3uJsKP8hWTrU1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MhGTd/btsK8KYNvaF/3fU4QNZjj3uJsKP8hWTrU1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMhGTd%2FbtsK8KYNvaF%2F3fU4QNZjj3uJsKP8hWTrU1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1170&quot; height=&quot;1654&quot; data-origin-width=&quot;1170&quot; data-origin-height=&quot;1654&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;지난 11월, 강원도 하이원 리조트에서 열린 2024 대한전자공학회 추계학술대회에 ‘KL 발산 기반의 적대적 공격을 통한 딥페이크 생성 방해’라는 논문을 발표하고 왔다. 원본 이미지와 생성되는 이미지 간의 KL divergence loss를 최대화하는 방향으로 PGD Attack을 진행하여 왜곡된 출력 결과를 유도하도록 하여 최종적으로 딥페이크를 예방하는 연구를 진행했는데 포스터 발표때 심사위원분께서 좋게 봐주신 것 같다.&lt;br&gt;지난 논문에서는 GAN 모델을 대상으로만 진행했는데 디퓨전 모델에 대해서도 딥페이크를 방해하는 연구를 진행해서 더 수준 높은 연구를 진행할 예정이다.&lt;/p&gt;</description>
      <category>Adversarial Attack</category>
      <category>kl 다이버전스</category>
      <category>대한전자공학회</category>
      <category>디퓨전</category>
      <category>딥페이크</category>
      <category>딥페이크 방해</category>
      <category>딥페이크 탐지</category>
      <category>생성 모델</category>
      <category>우수학생논문상</category>
      <category>확률분포</category>
      <author>PSLeon</author>
      <guid isPermaLink="true">https://psleon.tistory.com/256</guid>
      <comments>https://psleon.tistory.com/256#entry256comment</comments>
      <pubDate>Thu, 5 Dec 2024 22:27:44 +0900</pubDate>
    </item>
    <item>
      <title>[Paper Review] Denoising Diffusion Probabilistic Models</title>
      <link>https://psleon.tistory.com/254</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;논문 리뷰: DDPM(Denoising Diffusion Probablistic Models)&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;논문 링크: &lt;a href=&quot;https://arxiv.org/pdf/2006.11239&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://arxiv.org/pdf/2006.11239&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;깃허브 링크: &lt;a href=&quot;https://github.com/lucidrains/denoising-diffusion-pytorch&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/lucidrains/denoising-diffusion-pytorch&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘은 생성 모델의 혁신을 이끈 논문인 DDPM(Denoising Diffusion Probablistic Models)에 대해 논문 리뷰를 진행하고자 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 논문을 제일 처음 읽었을 때는 모르는 단어들과 수식들로 인해 큰 어려움을 겪었다. 하지만 여러 레퍼런스들을 참고하여 3주 정도 읽으니 어느 정도 남에게 설명할 수 있을 정도로 이해가 된 것 같다. 만약 독자들 중에서도 처음 디퓨전 논문을 읽고 너무 어렵다면 자주 반복해서 읽으면서 생성 모델의 원리, 기존 방식들과의 차이 그리고 근본적으로 왜 노이즈를 넣고 없애는 과정을 진행하는가에 관한 고민을 많이 해보면 점차 이 논문을 자기 것으로 만들 수 있을 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;논문을 읽다 보면 수식의 늪처럼 느껴지지만, 본 논문 리뷰에서는 수학적인 증명보다는 전체적인 컨셉을 이해하는데 초점을 맞춰 리뷰를 진행하도록 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. Background&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1140&quot; data-origin-height=&quot;497&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b2BynZ/btsK25aJAn3/9DlHACDFuXky2eLFP7BtV0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b2BynZ/btsK25aJAn3/9DlHACDFuXky2eLFP7BtV0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b2BynZ/btsK25aJAn3/9DlHACDFuXky2eLFP7BtV0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb2BynZ%2FbtsK25aJAn3%2F9DlHACDFuXky2eLFP7BtV0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1140&quot; height=&quot;497&quot; data-origin-width=&quot;1140&quot; data-origin-height=&quot;497&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2020년 이전까지만 하더라도 VAE, GAN이 생성 모델의 패러다임을 주도하고 있었다. 물론, 2015년에 ICML에 발표된 논문인 &quot;Deep unsupervised learning using nonequilibrium thermodynamics&quot;에서 디퓨전 모델의 초기 개념이 제안되었으나 디노이징 과정의 효율성이 부족했고 실제 응용에 쓰기에는 부족했기 때문에 여전히 GAN과 VAE가 생성 모델의 주요 접근법으로 자리 잡고 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 2020년, NIPS에 &quot;Denoising Diffusion Probablistic Models(DDPM)&quot; 논문이 발표되면서 생성 모델은 GAN과 VAE를 뛰어넘는 성능을 보여주었고, 강력한 생성 모델로써 패러다임을 주도하게 된다. 대표적으로 GLIDE, DALL-E 2, Imagen과 같은 이미지 생성 모델이 디퓨전 기반의 모델이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 그림의 우측을 보자. DALL-E 2에서 말을 타고 있는 우주인을 photorealistic한 style로 그려달라고 하니 꽤 사실적인 그림이 생성된 것을 볼 수 있다. 그리고 Imagen의 경우, 뇌가 로켓을 타고 달을 향하도록 그림을 그려달라고 하자 창의적이면서 재미있는 그림이 생성된 것을 볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1399&quot; data-origin-height=&quot;647&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/H7wr0/btsK4tV34rk/pHx96eoe38bN2KPKwKX18k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/H7wr0/btsK4tV34rk/pHx96eoe38bN2KPKwKX18k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/H7wr0/btsK4tV34rk/pHx96eoe38bN2KPKwKX18k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FH7wr0%2FbtsK4tV34rk%2FpHx96eoe38bN2KPKwKX18k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1399&quot; height=&quot;647&quot; data-origin-width=&quot;1399&quot; data-origin-height=&quot;647&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 그림을 보자. 위 그림은 실제 이미지일까? 아니면 생성 모델이 생성한 이미지일까? 정답은 생성 모델이 생성한 이미지이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DDPM 논문을 보면 생성된 샘플이라고 적혀있는 것을 확인할 수 있다. 왼쪽으로부터 2열까지는 CelebA-HQ 데이터셋으로부터 샘플링된 샘플인데 진짜 사람같이 보이는 사진을 생성해내는 놀라운 성능을 볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;더 많은 예시들은 아래 논문에서 확인할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;648&quot; data-origin-height=&quot;1036&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eez1jF/btsK2yLeLBZ/VISlrPZU4KNJl4bEiY5tck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eez1jF/btsK2yLeLBZ/VISlrPZU4KNJl4bEiY5tck/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eez1jF/btsK2yLeLBZ/VISlrPZU4KNJl4bEiY5tck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Feez1jF%2FbtsK2yLeLBZ%2FVISlrPZU4KNJl4bEiY5tck%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;648&quot; height=&quot;1036&quot; data-origin-width=&quot;648&quot; data-origin-height=&quot;1036&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1184&quot; data-origin-height=&quot;460&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yYiLI/btsK2zXJh2z/HQU1ju1kbKjfU6rzyBOuF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yYiLI/btsK2zXJh2z/HQU1ju1kbKjfU6rzyBOuF1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yYiLI/btsK2zXJh2z/HQU1ju1kbKjfU6rzyBOuF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyYiLI%2FbtsK2zXJh2z%2FHQU1ju1kbKjfU6rzyBOuF1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1184&quot; height=&quot;460&quot; data-origin-width=&quot;1184&quot; data-origin-height=&quot;460&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 그림은 일반인들도 쉽게 사용할 수 있는 Stable Diffusion의 overall architecture를 나타낸다. 특정 텍스트가 prompt로 들어오면, CLIP 등으로 구성된 텍스트 인코더를 통해 Token embeddings을 생성하고, 이를 Image Information Creator인 Diffusion에 통과시킨다. 이 Diffusion Model은 UNet과 Scheduler로 구성되어 있다. 디퓨전을 통과하고 나면 이미지 정보 텐서가 이미지 디코더로 들어가게 되고 디코더를 통해 최종적인 이미지가 생성된다. DALL-E 2나 Imagen도 이와 비슷한 프로세스를 거치기 때문에, 우리의 핵심은 중앙에 있는 Diffusion Process를 이해하는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;흔히 AI를 공부하게 되면 모델을 크게 회귀 모델과 분류 모델로 나누고 이 둘을 기반으로 공부하게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 디퓨전과 같은 생성 모델은 근본적으로 이와 매커니즘이 다르다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가령, 어떤 이미지가 입력으로 들어왔을 때, 클래스를 예측하는 분류 모델이라 가정해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;679&quot; data-origin-height=&quot;430&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ck7lvU/btsK2ZoiLYK/eYNpNgqvUY6wkAXFahcsB0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ck7lvU/btsK2ZoiLYK/eYNpNgqvUY6wkAXFahcsB0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ck7lvU/btsK2ZoiLYK/eYNpNgqvUY6wkAXFahcsB0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fck7lvU%2FbtsK2ZoiLYK%2FeYNpNgqvUY6wkAXFahcsB0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;679&quot; height=&quot;430&quot; data-origin-width=&quot;679&quot; data-origin-height=&quot;430&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 그림에서 x는 입력 이미지인 초콜릿 이미지, y는 이에 해당하는 라벨인 초콜릿이라 가정하자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때, 초콜릿 이미지라는 x가 주어졌을 때, 초콜릿이라는 클래스일 조건부 확률로 나타낼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;528&quot; data-origin-height=&quot;472&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/r1xM5/btsK2dAPF1b/S60240K2T0Zam6yRNZ1W30/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/r1xM5/btsK2dAPF1b/S60240K2T0Zam6yRNZ1W30/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/r1xM5/btsK2dAPF1b/S60240K2T0Zam6yRNZ1W30/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fr1xM5%2FbtsK2dAPF1b%2FS60240K2T0Zam6yRNZ1W30%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;528&quot; height=&quot;472&quot; data-origin-width=&quot;528&quot; data-origin-height=&quot;472&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이와 반대로, 생성 모델은 초콜릿이라는 클래스가 주어졌을 때, 이에 해당하는 원본 이미지 x인 조건부 확률로 condition이 뒤바뀌게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1191&quot; data-origin-height=&quot;450&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MYQ9e/btsK4zIIFxm/3KZz7lA0kC2JcEkdu6lx01/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MYQ9e/btsK4zIIFxm/3KZz7lA0kC2JcEkdu6lx01/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MYQ9e/btsK4zIIFxm/3KZz7lA0kC2JcEkdu6lx01/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMYQ9e%2FbtsK4zIIFxm%2F3KZz7lA0kC2JcEkdu6lx01%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1191&quot; height=&quot;450&quot; data-origin-width=&quot;1191&quot; data-origin-height=&quot;450&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 분류 모델의 경우 x가 주어졌을 때 y일 확률이 가장 높은 클래스를 예측하는 것이 목표지만 생성 모델은 조건을 보고 추정을 통해 원본에 해당하는 x를 샘플링하는 것이 목표라는 아주 큰 차이점이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;생성 모델에 대해 나동빈님의 GAN 강의 자료를 참고해서 조금 더 깊게 이해해 보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;912&quot; data-origin-height=&quot;509&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yN8sO/btsK2YXen4U/3ucF8sowwjcLNkg6mCsg0K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yN8sO/btsK2YXen4U/3ucF8sowwjcLNkg6mCsg0K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yN8sO/btsK2YXen4U/3ucF8sowwjcLNkg6mCsg0K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyN8sO%2FbtsK2YXen4U%2F3ucF8sowwjcLNkg6mCsg0K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;912&quot; height=&quot;509&quot; data-origin-width=&quot;912&quot; data-origin-height=&quot;509&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1202&quot; data-origin-height=&quot;554&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b62kpH/btsK3R4cAgT/w45hDWhpI7nfbWVtNzyfo1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b62kpH/btsK3R4cAgT/w45hDWhpI7nfbWVtNzyfo1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b62kpH/btsK3R4cAgT/w45hDWhpI7nfbWVtNzyfo1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb62kpH%2FbtsK3R4cAgT%2Fw45hDWhpI7nfbWVtNzyfo1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1202&quot; height=&quot;554&quot; data-origin-width=&quot;1202&quot; data-origin-height=&quot;554&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;생성 모델은 실제로 존재하지 않지만 마치 실제로 존재하는 것 같은 이미지를 생성한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한, 이러한 생성 모델은 결합 확률 분포(joint probablity distribution)을 학습하여 새로운 데이터 인스턴스를 샘플링하는 구조로 이루어져 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가령, 사람의 얼굴을 생성하는 모델이 있다고 가정하자. 이때, 사람의 특징을 코의 크기와 눈의 모양과 같이 2개의 특징과 특정 결합 확률의 밀도로 구성된 3차원 특징 공간의 확률 분포로 구성할 수 있다. 이렇게 구성된 그래프에서 사람 이미지, 즉, 새로운 데이터 인스턴스는 이 다차원 특징 공간 상의 한 점으로 표현할 수 있게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 결합 확률 분포 상의 확률 밀도가 높은 영역에서 샘플링하게 된다면 실제 사람 얼굴처럼 보이는 인스턴스를 생성하게 되지만 반대로, 확률 밀도가 낮은 영역에서 샘플링하게 된다면 사실성이 떨어진 인스턴스를 생성하게 되는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 생성 모델의 품질은 원본 데이터의 확률 분포를 얼마나 잘 근사시키는지에 따라 달라지게 된다. 쉽게 이해하기 위해 아래 그림을 보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;831&quot; data-origin-height=&quot;460&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BktHX/btsK4sbNaQd/r5AyKgQH4XP6MHkEB16cHK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BktHX/btsK4sbNaQd/r5AyKgQH4XP6MHkEB16cHK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BktHX/btsK4sbNaQd/r5AyKgQH4XP6MHkEB16cHK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBktHX%2FbtsK4sbNaQd%2Fr5AyKgQH4XP6MHkEB16cHK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;831&quot; height=&quot;460&quot; data-origin-width=&quot;831&quot; data-origin-height=&quot;460&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 그림에서, 왼쪽의 p(&amp;middot;)는 실제 데이터 분포를 나타내고 x(1), x(2), x(3), x(4)는 데이터 샘플을 의미한다. 그리고 q_&amp;theta;(&amp;middot;)는 미지의 확률 분포 p(x)에서 훈련 데이터 D = {x(1), x(2), x(3), x(4)}가 추출되었을 때, 이 데이터를 통해 p(x)와 가까운 확률분포를 학습하는 생성 모델이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 생성 모델의 경우 원본 데이터 분포를 잘 근사하는 확률분포를 학습하는 것이 목표이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1065&quot; data-origin-height=&quot;483&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cIIVQy/btsK4eEMSAX/KcKsCkmPeVOFufp70YVUK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cIIVQy/btsK4eEMSAX/KcKsCkmPeVOFufp70YVUK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cIIVQy/btsK4eEMSAX/KcKsCkmPeVOFufp70YVUK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcIIVQy%2FbtsK4eEMSAX%2FKcKsCkmPeVOFufp70YVUK1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1065&quot; height=&quot;483&quot; data-origin-width=&quot;1065&quot; data-origin-height=&quot;483&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 그림에서 초기 생성 모델의 분포는 초록색의 분포이고, 원본 데이터의 분포는 검은색 점으로 구성된 가우시안 형태의 분포일 때, 생성 모델을 학습시킨다고 가정하자. (a) ~ (d) 시점으로 가면 갈수록 모델은 점차 원본 데이터의 분포를 학습하게 되고, 생성 모델이 잘 학습되었다면 원본 데이터의 분포를 아주 잘 근사화하도록 학습되게 되고, 아래 그림의 빨간 네모 박스의 샘플들처럼 사실적인 이미지를 생성할 수 있게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1119&quot; data-origin-height=&quot;464&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b13VYd/btsK2BVwGNL/QEFpLhmJI4NFgRaZskkkN1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b13VYd/btsK2BVwGNL/QEFpLhmJI4NFgRaZskkkN1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b13VYd/btsK2BVwGNL/QEFpLhmJI4NFgRaZskkkN1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb13VYd%2FbtsK2BVwGNL%2FQEFpLhmJI4NFgRaZskkkN1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1119&quot; height=&quot;464&quot; data-origin-width=&quot;1119&quot; data-origin-height=&quot;464&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 본격적으로, 디퓨전 모델에 대해서 알아보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;320&quot; data-origin-height=&quot;180&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bGZtRt/btsK2eNkMz3/BBnLlTAIylkdtVkgAUOik1/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bGZtRt/btsK2eNkMz3/BBnLlTAIylkdtVkgAUOik1/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bGZtRt/btsK2eNkMz3/BBnLlTAIylkdtVkgAUOik1/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/bGZtRt/btsK2eNkMz3/BBnLlTAIylkdtVkgAUOik1/img.gif&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;597&quot; height=&quot;336&quot; data-origin-width=&quot;320&quot; data-origin-height=&quot;180&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;디퓨전(diffusion)이라는 용어는 초기 상태의 분자들이 점차 흩어지는 랑주뱅 동역학(langevin dynamics)에서 영감을 받아 사용하게 되었고, 디퓨전 모델은 원본 데이터에 점차 노이즈를 삽입하여 가우시안 형태의 단순한 분포로 변환하고 이를 다시 복원하는 과정을 따른다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;ddpm.gif&quot; data-origin-width=&quot;1182&quot; data-origin-height=&quot;428&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/br7nSY/btsK2lMbWTm/udWF31o4oNFc3yV1muHhV0/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/br7nSY/btsK2lMbWTm/udWF31o4oNFc3yV1muHhV0/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/br7nSY/btsK2lMbWTm/udWF31o4oNFc3yV1muHhV0/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/br7nSY/btsK2lMbWTm/udWF31o4oNFc3yV1muHhV0/img.gif&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1182&quot; height=&quot;428&quot; data-filename=&quot;ddpm.gif&quot; data-origin-width=&quot;1182&quot; data-origin-height=&quot;428&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;626&quot; data-origin-height=&quot;498&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ai2bP/btsK4ybYNYP/eFQ6rLCYZ9hnIQOp6CCssK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ai2bP/btsK4ybYNYP/eFQ6rLCYZ9hnIQOp6CCssK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ai2bP/btsK4ybYNYP/eFQ6rLCYZ9hnIQOp6CCssK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAi2bP%2FbtsK4ybYNYP%2FeFQ6rLCYZ9hnIQOp6CCssK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;626&quot; height=&quot;498&quot; data-origin-width=&quot;626&quot; data-origin-height=&quot;498&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 그림을 보면 'An RGB image of a Sunflower' 이라는 텍스트가 입력되었을 때, T번의 타임 스텝 동안의 디퓨전 프로세스와 디노이징 프로세스를 거쳐 RGB 이미지 형태의 해바라기 사진을 생성하는 과정을 보여준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1040&quot; data-origin-height=&quot;503&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bk77jw/btsK25oh16e/xKsE3Z6KtnaL9HGk28zDB1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bk77jw/btsK25oh16e/xKsE3Z6KtnaL9HGk28zDB1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bk77jw/btsK25oh16e/xKsE3Z6KtnaL9HGk28zDB1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbk77jw%2FbtsK25oh16e%2FxKsE3Z6KtnaL9HGk28zDB1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1040&quot; height=&quot;503&quot; data-origin-width=&quot;1040&quot; data-origin-height=&quot;503&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 디퓨전 모델은 원본 이미지 x_0가 있을 때, 전체 타임 스텝 T까지 점차 노이즈를 삽입하는 디퓨전 프로세스 q와 X_T부터 x_0까지 역으로 노이즈를 점차 없애며 이미지를 복원하여 사실적인 이미지를 생성하는 과정인 리버스 프로세스 확은 디노이징 프로세스 p&amp;theta;로 구성되어 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. Denoising Diffusion Probablistic Models (DDPM)&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DDPM을 제대로 이해하기 위해선 Background가 상당히 중요하기 때문에 서론이 길었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 전반적인 생성 모델의 컨셉을 이해하기 위해 지금까지 탄탄한 background를 형성했기 때문에 DDPM을 꼭 이해할 수 있을 것이다. Experiments에 대한 내용은 논문에 잘 적혀있으니 생략하고 핵심 Method 부분에 대해서 깊게 이해해보는 것이 본 리뷰의 목표이다. DDPM 리뷰의 핵심인 이번 section에서는 수학적 배경을 위한 Prerequisite, Denoising Diffusion, Diffusion Process, Reverse Process에 대해서 설명하고자 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2.1 Prerequisite&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1171&quot; data-origin-height=&quot;505&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bSMEyF/btsK1XkK92Z/Ds7j9uiXTZJiTXrbXO5GAk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bSMEyF/btsK1XkK92Z/Ds7j9uiXTZJiTXrbXO5GAk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bSMEyF/btsK1XkK92Z/Ds7j9uiXTZJiTXrbXO5GAk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbSMEyF%2FbtsK1XkK92Z%2FDs7j9uiXTZJiTXrbXO5GAk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;957&quot; height=&quot;413&quot; data-origin-width=&quot;1171&quot; data-origin-height=&quot;505&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1170&quot; data-origin-height=&quot;501&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cPLTJD/btsK4fKuULx/TdCPWFqxS5anEvocTC2Xok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cPLTJD/btsK4fKuULx/TdCPWFqxS5anEvocTC2Xok/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cPLTJD/btsK4fKuULx/TdCPWFqxS5anEvocTC2Xok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcPLTJD%2FbtsK4fKuULx%2FTdCPWFqxS5anEvocTC2Xok%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1170&quot; height=&quot;501&quot; data-origin-width=&quot;1170&quot; data-origin-height=&quot;501&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;본 논문을 이해하기 위해서 학부 수준의 기초 통계학의 내용, 베이지안 룰, 가우시안 분포, 가우시안 분포의 확률 밀도 함수(pdf), 테일러 급수, 마르코프 성질에 관한 기본 내용을 알고 있다면 본 논문을 이해하는데 있어 한결 수월해진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;본 리뷰에서는 중요한 두 개의 성질에 대해서만 간단히 설명하겠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마르코프 성질은 특정 상태(t+1 시점)의 확률은 오직 현재 상태(t)에만 의존한다는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로, 가우시안 분포에서 평균인 &amp;mu;와 분산인 &amp;sigma;^2 값에 따라서 가우시안 분포의 형태가 어떻게 달라지는지 안다면 머릿속으로 디퓨전 프로세스를 상상할 때 큰 도움이 된다. 간단히 설명하자면, 평균 &amp;mu;의 값이 0이고 분산 &amp;sigma;^2의 값이 1이라면 우리가 흔히 알고 있는 표준 정규분포 형태를 따르게 되며 위 그림에서 왼쪽은 분산은 고정하고 평균 &amp;mu;만 다르게 한 것이고, 오른쪽은 평균은 고정하고 분산 &amp;sigma;^2을 다르게 한 것이다. 평균 &amp;mu;는 정규분포의 중심 위치를 정하며, 분산 &amp;sigma;^2은 분포의 폭과 높이를 정한다. 분산이 크면 클수록 분포의 높이는 낮아지며 폭은 넓어지게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2.2 Denoising Diffusion&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1202&quot; data-origin-height=&quot;458&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QTRkB/btsK3iumbZD/SX80XnK0y3zwo0LHx7qXs1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QTRkB/btsK3iumbZD/SX80XnK0y3zwo0LHx7qXs1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QTRkB/btsK3iumbZD/SX80XnK0y3zwo0LHx7qXs1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQTRkB%2FbtsK3iumbZD%2FSX80XnK0y3zwo0LHx7qXs1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1202&quot; height=&quot;458&quot; data-origin-width=&quot;1202&quot; data-origin-height=&quot;458&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 본격적으로 디노이징 디퓨전 모델이 무엇인지 살펴보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앞에 background에서 살짝 언급한 것과 같이 디노이징 디퓨전 모델은 심플한 2개의 프로세스로 구성되어 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫 번째는 Forward Diffusion Process로, 입력 이미지에 마르코프 성질에 따라 점진적으로 노이즈를 추가하는 과정이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로 Reverse Denoising Process는 무작위한 노이즈 상태의 X_T 시점에서 마르코프 성질에 따라 점진적으로 노이즈를 없애는 과정이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1194&quot; data-origin-height=&quot;525&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cfJOvD/btsK4u1LnyN/IGFfmHbwLAlp2eZmqAVook/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cfJOvD/btsK4u1LnyN/IGFfmHbwLAlp2eZmqAVook/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cfJOvD/btsK4u1LnyN/IGFfmHbwLAlp2eZmqAVook/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcfJOvD%2FbtsK4u1LnyN%2FIGFfmHbwLAlp2eZmqAVook%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1194&quot; height=&quot;525&quot; data-origin-width=&quot;1194&quot; data-origin-height=&quot;525&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;디퓨전 과정 q(X_t | X_(t-1))로부터 얻어진 디노이징 과정의 q(X_(t-1) | X_t)의 조건부 확률은 그 자체만으로 샘플링, 즉 inference에 사용할 수 없다. 하지만 이전 연구를 통해 만약 q(X_t | X_(t-1))&amp;lt;노이즈를 넣은 것&amp;gt;이 가우시안이라면, q(X_(t-1) | X_t) 또한 가우시안이라는게 밝혀졌다. 단, &amp;beta;가 아주 작아야한다는 조건이 있다. 본 논문에서는 &amp;beta; 기호가 계속 나오는데, 이는 사실 분산인 &amp;sigma;^2을 뜻한다. 이게 무슨 소리인지 처음 읽으면 매우 이해하기 난해하다. 다음 그림을 통해 한번 다시 파고 들어보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;597&quot; data-origin-height=&quot;455&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bubUKz/btsK2v823Ie/ZOaEPmClFuf5kQWg8LkUPk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bubUKz/btsK2v823Ie/ZOaEPmClFuf5kQWg8LkUPk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bubUKz/btsK2v823Ie/ZOaEPmClFuf5kQWg8LkUPk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbubUKz%2FbtsK2v823Ie%2FZOaEPmClFuf5kQWg8LkUPk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;597&quot; height=&quot;455&quot; data-origin-width=&quot;597&quot; data-origin-height=&quot;455&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;노이즈를 점진적으로 추가하는 Diffusion Process는 코드 상 간단하게 구현할 수 있지만, 노이즈가 포함된 시점에서 이전 시점의 확률 분포를 예측하는 것은 쉽지 않다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;디노이징 과정에서는&amp;nbsp;q(X_(t-1) | X_t), 즉 현재 시점 t의 데이터를 기반으로 t-1 시점의 데이터를 복원해야 하지만 이를 수학적으로 계산하는 것은 매우 복잡하고 어려운 문제이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대신, Forward Process에서 노이즈의 크기인 &amp;beta;를 매우 작게 설정하여 q(x_t | x_(t-1))가 가우시안 분포라는 가정을 만족시킨다. 이를 활용하여 q(X_(t-1) | X_t)를 가우시안 분포로 근사하는 p&amp;theta;를 학습시켜야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때, 가우시안 분포를 따른다는 점을 이용하여 Forward Process를 통해 얻은 조건부 확률 분포를 베이지안 룰을 통해 q(x_(t-1) | x_t)에 대한 가우시안 근사를 구하고 모델이 학습하는 p&amp;theta; 간의 확률 분포 차이를 KL Divergence를 활용하여 확률 분포 차이를 최소화하도록 학습하는 것이 디노이징 디퓨전 모델의 목표이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 과정을 그림으로 나타내면 다음과 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1069&quot; data-origin-height=&quot;418&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/N2iZR/btsK4tPkzoh/sghE922pcH7otw61IuK7c1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/N2iZR/btsK4tPkzoh/sghE922pcH7otw61IuK7c1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/N2iZR/btsK4tPkzoh/sghE922pcH7otw61IuK7c1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FN2iZR%2FbtsK4tPkzoh%2FsghE922pcH7otw61IuK7c1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1069&quot; height=&quot;418&quot; data-origin-width=&quot;1069&quot; data-origin-height=&quot;418&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2.3 Diffusion Process&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 노이즈를 점진적으로 추가하는 과정인 Forward Diffusion Process를 살펴 보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;497&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eicaNl/btsK2Fp4yZv/pAr2Exa4nAAKr1k67DKxrK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eicaNl/btsK2Fp4yZv/pAr2Exa4nAAKr1k67DKxrK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eicaNl/btsK2Fp4yZv/pAr2Exa4nAAKr1k67DKxrK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeicaNl%2FbtsK2Fp4yZv%2FpAr2Exa4nAAKr1k67DKxrK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1000&quot; height=&quot;497&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;497&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1262&quot; data-origin-height=&quot;465&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/C7Dn0/btsK4uOd1ZK/lrDp9vDHlnY7bz95Y1fMD0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/C7Dn0/btsK4uOd1ZK/lrDp9vDHlnY7bz95Y1fMD0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/C7Dn0/btsK4uOd1ZK/lrDp9vDHlnY7bz95Y1fMD0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FC7Dn0%2FbtsK4uOd1ZK%2FlrDp9vDHlnY7bz95Y1fMD0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1262&quot; height=&quot;465&quot; data-origin-width=&quot;1262&quot; data-origin-height=&quot;465&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 그림에서 가장 초기 x_0 시점에서는 원본 고양이 이미지가 있다. 하지만 마르코프 성질에 따라 매 스텝마다 작은 크기의 &amp;beta; 만큼의 가우시안 노이즈가 추가되면서 X_T 시점에서는 완전 noisy한 상태가 되고 가우시안 분포를 따르게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 과정은 중심 극한 정리(CLT)에 의해 성립하게 되는데, 이는 가우시안 분포는 반복적으로 결합되거나 추가되더라도 가우시안 성질이 보존되며, 각 시점에서 분포가 점차 변화하는 과정을 통해 초기의 복잡한 데이터 분포가 가우시안 분포로 수렴하게 된다는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 시점별로 분포가 변화하는 것을 보면 초기의 복잡한 분포에서 가우시안 분포로 변화하는 것을 확인할 수 있다. 즉, 생성 모델은 결국 분포로부터 샘플링해야 하는데 Forward Diffusion Process를 통해 복잡한 분포를 아주 simple한 분포로 변환할 수 있고, 이 분포로부터 sampling하여 높은 품질의 이미지를 생성할 수 있도록 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1106&quot; data-origin-height=&quot;523&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bSWQCg/btsK2AvzZnM/B97kZLrN54f3khPIzNC6xK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bSWQCg/btsK2AvzZnM/B97kZLrN54f3khPIzNC6xK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bSWQCg/btsK2AvzZnM/B97kZLrN54f3khPIzNC6xK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbSWQCg%2FbtsK2AvzZnM%2FB97kZLrN54f3khPIzNC6xK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1106&quot; height=&quot;523&quot; data-origin-width=&quot;1106&quot; data-origin-height=&quot;523&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한, &amp;beta;_t는 노이즈의 크기를 표현하는 scailing factor인데 본 논문에서는 각 스텝에서 노이즈의 크기를 정하는 과정을 Noise Scheduling이라고 표현한다. 크게 3가지 정도로 실험을 진행했는데 선형적으로 증가시키는 방식과 시그모이드 형태로 증가시키는 방식, 이차함수 형태로 증가시키는 방식으로 진행했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저, Linear scheduling (선형 스케줄링)은 &amp;beta;_t 값이 선형적으로 증가하는 형태로, 초기에는 노이즈의 크기가 작게 추가되며, 스텝이 진행됨에 따라 점진적으로 노이즈가 증가한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로, Sigmoid scheduling (시그모이드 스케줄링)은 &amp;beta;_t 값이 시그모이드 형태로 증가하는데 초기에는 노이즈 증가가 느리게 진행되다가, 중간 지점에서 급격히 증가한 후 다시 느려진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막으로, Quadratic scheduling (이차 스케줄링)은 &amp;beta;_t 값이 이차함수 형태로 증가하여 초기에는 노이즈 증가가 선형보다 느리고, 후반부로 갈수록 빠르게 증가한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;beta;_t의 스케줄링 방식은 생성 모델의 성능에 큰 영향을 미치기 때문에 데이터 분포나 모델의 특성에 따라 적합한 방식을 선택할 수 있다. 예를 들어, Sigmoid 스케줄링은 초기 정보를 더 오래 유지하며, Quadratic 스케줄링은 빠르게 노이즈를 추가하고자 할 때 유리하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1297&quot; data-origin-height=&quot;474&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/biSHsW/btsK2Bae7V4/aZcIo2IQ4nHHpRBqnn87Q0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/biSHsW/btsK2Bae7V4/aZcIo2IQ4nHHpRBqnn87Q0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/biSHsW/btsK2Bae7V4/aZcIo2IQ4nHHpRBqnn87Q0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbiSHsW%2FbtsK2Bae7V4%2FaZcIo2IQ4nHHpRBqnn87Q0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1297&quot; height=&quot;474&quot; data-origin-width=&quot;1297&quot; data-origin-height=&quot;474&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금까지 이해한 내용을 기반하여, 최종적으로 Forward Diffusion Process의 수식을 보면 다음과 같이 정의할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;계속 &amp;beta;를 사용하다가, 최종 수식에서는 &amp;alpha;가 등장했는데 이는 실제 계산을 간단히 하기 위해 1-&amp;beta;_t를 &amp;alpha;로 정의하며 각 시간 t에서 데이터 유지 비율을 나타낸다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;alpha; bar_t의 경우, 모든 이전 스텝의 &amp;alpha;_s 값을 누적하여 곱한 값으로 누적 데이터 유지 비율을 나타낸다. 시간이 지남에 따라 &amp;alpha; bar_t는 점차 감소하여 원본 데이터 정보가 줄어들고, 노이즈가 점차 지배적이 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 수식에서 이 둘을 사용하는 이유는 스텝에서의 데이터 유지와 노이즈 추가를 간단히 표현할 수 있기 때문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2.4 Reverse Process&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1125&quot; data-origin-height=&quot;421&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UosQE/btsK3kyNsmO/zyOb0KKEFfuo5MvKovKNik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UosQE/btsK3kyNsmO/zyOb0KKEFfuo5MvKovKNik/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UosQE/btsK3kyNsmO/zyOb0KKEFfuo5MvKovKNik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUosQE%2FbtsK3kyNsmO%2FzyOb0KKEFfuo5MvKovKNik%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1125&quot; height=&quot;421&quot; data-origin-width=&quot;1125&quot; data-origin-height=&quot;421&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 DDPM의 핵심인 Reverse Process이다. 소설가인 Pearl S. Buck은 &quot;It's easy to destroy but hard to create.&quot;라는 명언을 남겼다. 이는 디노이징 디퓨전 모델의 Reverse Process에 아주 적합한 말인 것 같다. 파괴하는 것은 쉽지만 만드는 것은 어렵다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저, 아주 쉽게 확률 분포의 공간의 개념으로 Reverse Process를 이해해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;545&quot; data-origin-height=&quot;464&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ccsIHG/btsK2ajTL42/mcMJbCNaWQUd3kVh5HGxY1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ccsIHG/btsK2ajTL42/mcMJbCNaWQUd3kVh5HGxY1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ccsIHG/btsK2ajTL42/mcMJbCNaWQUd3kVh5HGxY1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FccsIHG%2FbtsK2ajTL42%2FmcMJbCNaWQUd3kVh5HGxY1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;545&quot; height=&quot;464&quot; data-origin-width=&quot;545&quot; data-origin-height=&quot;464&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 그림과 같이 Forward Diffusion 과정을 통해 원본 데이터의 부분 공간으로부터 벗어난 전체 공간 상의 한 점으로 샘플을 나타낼 수 있다. 우리는 이 샘플을 Reverse Diffusion 과정을 통해 최대한 원본 데이터의 확률 분포 공간으로 복원시키고 이를 샘플링해야 높은 품질의 이미지를 생성할 수 있게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1127&quot; data-origin-height=&quot;428&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uVyIf/btsK4gim5dV/zHEPZJ4kTXw786Ezy1wne1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uVyIf/btsK4gim5dV/zHEPZJ4kTXw786Ezy1wne1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uVyIf/btsK4gim5dV/zHEPZJ4kTXw786Ezy1wne1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuVyIf%2FbtsK4gim5dV%2FzHEPZJ4kTXw786Ezy1wne1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1127&quot; height=&quot;428&quot; data-origin-width=&quot;1127&quot; data-origin-height=&quot;428&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이와 같이 생성에 활용되는 조건부 확률 분포 p&amp;theta;를 학습하기 위해 바로 직전에 소개한 Diffusion Process q(z|x)의 조건부 확률 분포가 활용된다. 모델 학습을 위해 사용되는 Loss를 통해 살펴보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1171&quot; data-origin-height=&quot;475&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ydZRp/btsK3nCi6vP/MhYx1VbX3sICnbkNVjkeVK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ydZRp/btsK3nCi6vP/MhYx1VbX3sICnbkNVjkeVK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ydZRp/btsK3nCi6vP/MhYx1VbX3sICnbkNVjkeVK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FydZRp%2FbtsK3nCi6vP%2FMhYx1VbX3sICnbkNVjkeVK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1171&quot; height=&quot;475&quot; data-origin-width=&quot;1171&quot; data-origin-height=&quot;475&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저, 가장 위의 Loss_diffusion은 2015년에 발표된 논문인 디퓨전의 시초인 &quot;Deep unsupervised learning using nonequilibrium thermodynamics&quot;에 제안된 loss function을 깔끔하게 다시 정리한 것이다. 총 3가지 term으로 구성되어 있는데,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫 번째 loss term은 KL Divergence를 통해 x_0로 x_T인 z를 생성하는 q 분포와 p&amp;theta;(z)의 분포가 유사해지도록 하는 Regularizer on Encoder이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로 두번째 loss term은 reverse process와 diffusion process 간의 분포가 유사해지도록 하는 Denoising Process이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막으로, 세 번째 loss term은 Reconstruction loss로 x_1에서 x_0이 나올 likelihood를 maximization하는 loss term이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1292&quot; data-origin-height=&quot;282&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/btzufv/btsK4aCtbPu/PpwQGNgFZ9vapjK9d8AJt0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/btzufv/btsK4aCtbPu/PpwQGNgFZ9vapjK9d8AJt0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/btzufv/btsK4aCtbPu/PpwQGNgFZ9vapjK9d8AJt0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbtzufv%2FbtsK4aCtbPu%2FPpwQGNgFZ9vapjK9d8AJt0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1292&quot; height=&quot;282&quot; data-origin-width=&quot;1292&quot; data-origin-height=&quot;282&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 본 논문에서는 이 3개의 loss term을 다음과 같이 DDPM Loss를 제안함으로써 단순히 노이즈를 비교하는 형태로 단순화하였고 이는 이 논문의 가장 큰 contribution이라고 할 수 있다. 조금 더 심플하게 살펴보면, forward process로 추가된 노이즈와 모델이 예측한 노이즈 간의 MSE를 계산하는 아주 단순한 형태의 loss로 간소화시켰다는 것을 확인할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수식에 대한 자세한 정리 부분은 appendix에 첨부하였으니 참고해보면 좋을 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1228&quot; data-origin-height=&quot;417&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JUTHC/btsK3scsGml/elalStfuvrlItsojavYLW0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JUTHC/btsK3scsGml/elalStfuvrlItsojavYLW0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JUTHC/btsK3scsGml/elalStfuvrlItsojavYLW0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJUTHC%2FbtsK3scsGml%2FelalStfuvrlItsojavYLW0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1228&quot; height=&quot;417&quot; data-origin-width=&quot;1228&quot; data-origin-height=&quot;417&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결국, 본 논문에서는 해당 loss를 통해 모델이 forward process를 통해 추가된 노이즈 &amp;epsilon;을 정확히 예측하도록 학습하고, 학습된 &amp;epsilon;_&amp;theta;를 사용해 forward process의 반대 방향으로 점진적으로 원본 데이터를 복원하여 샘플링한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이는 앞에서 소개한 scheduling 방법과 U-Net을 결합하여 구현할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;많은 Network Architecture 중에 U-Net을 사용하는 이유는 U-Net은 노이즈 제거와 이미지 복원에 필요한 전역적 그리고 국소적 정보를 처리하는 데 강점을 가지며, 효율적이고 유연한 구조를 갖고 있기 때문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1003&quot; data-origin-height=&quot;505&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b0WyT0/btsK4gCEy0E/t2GXwZmdwfikxqqRPzAQ9K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b0WyT0/btsK4gCEy0E/t2GXwZmdwfikxqqRPzAQ9K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b0WyT0/btsK4gCEy0E/t2GXwZmdwfikxqqRPzAQ9K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb0WyT0%2FbtsK4gCEy0E%2Ft2GXwZmdwfikxqqRPzAQ9K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1003&quot; height=&quot;505&quot; data-origin-width=&quot;1003&quot; data-origin-height=&quot;505&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막으로 아래 그림은 지금까지 설명한 Forward Diffusion Process와 Reverse Diffusion Process를 전체적으로 보여주는 그림이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;896&quot; data-origin-height=&quot;507&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OmuN8/btsK2ooFe3Q/KxmR7kM5BU0vk5PCgE6rI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OmuN8/btsK2ooFe3Q/KxmR7kM5BU0vk5PCgE6rI1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OmuN8/btsK2ooFe3Q/KxmR7kM5BU0vk5PCgE6rI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOmuN8%2FbtsK2ooFe3Q%2FKxmR7kM5BU0vk5PCgE6rI1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;896&quot; height=&quot;507&quot; data-origin-width=&quot;896&quot; data-origin-height=&quot;507&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;논문이 상당히 난이도가 높고, 논문 자체에는 수식이 너무 많고 VAE나 Flow-based Model을 모른다면 수식 유도가 어렵기 때문에 수식을 하나하나 다 이해하려고 하는 것보다 논문의 key idea를 확실하게 이해하는 식으로 진행하는 것도 괜찮은 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Appendix&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1023&quot; data-origin-height=&quot;550&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b8O7wF/btsK4wFfDU6/3F602Wk6ETPbyDoext0zPk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b8O7wF/btsK4wFfDU6/3F602Wk6ETPbyDoext0zPk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b8O7wF/btsK4wFfDU6/3F602Wk6ETPbyDoext0zPk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb8O7wF%2FbtsK4wFfDU6%2F3F602Wk6ETPbyDoext0zPk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1023&quot; height=&quot;550&quot; data-origin-width=&quot;1023&quot; data-origin-height=&quot;550&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;647&quot; data-origin-height=&quot;576&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b29OKe/btsK22rCINs/hNpoXhwL1xi0wtK5i5WDtk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b29OKe/btsK22rCINs/hNpoXhwL1xi0wtK5i5WDtk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b29OKe/btsK22rCINs/hNpoXhwL1xi0wtK5i5WDtk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb29OKe%2FbtsK22rCINs%2FhNpoXhwL1xi0wtK5i5WDtk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;647&quot; height=&quot;576&quot; data-origin-width=&quot;647&quot; data-origin-height=&quot;576&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;862&quot; data-origin-height=&quot;581&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4PnsO/btsK33crcWG/8IoD6vix6cK9fBOE0IvFQK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4PnsO/btsK33crcWG/8IoD6vix6cK9fBOE0IvFQK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4PnsO/btsK33crcWG/8IoD6vix6cK9fBOE0IvFQK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4PnsO%2FbtsK33crcWG%2F8IoD6vix6cK9fBOE0IvFQK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;862&quot; height=&quot;581&quot; data-origin-width=&quot;862&quot; data-origin-height=&quot;581&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;571&quot; data-origin-height=&quot;592&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cq4zNI/btsK3OGnIjO/aYqSEXnWkjNDiw3EKxJha0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cq4zNI/btsK3OGnIjO/aYqSEXnWkjNDiw3EKxJha0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cq4zNI/btsK3OGnIjO/aYqSEXnWkjNDiw3EKxJha0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcq4zNI%2FbtsK3OGnIjO%2FaYqSEXnWkjNDiw3EKxJha0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;571&quot; height=&quot;592&quot; data-origin-width=&quot;571&quot; data-origin-height=&quot;592&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;558&quot; data-origin-height=&quot;586&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pwxpv/btsK3i84JBn/DePbzYBbV6RA0KuVqinYR1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pwxpv/btsK3i84JBn/DePbzYBbV6RA0KuVqinYR1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pwxpv/btsK3i84JBn/DePbzYBbV6RA0KuVqinYR1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fpwxpv%2FbtsK3i84JBn%2FDePbzYBbV6RA0KuVqinYR1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;558&quot; height=&quot;586&quot; data-origin-width=&quot;558&quot; data-origin-height=&quot;586&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;576&quot; data-origin-height=&quot;600&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/doeLaK/btsK2zpTTsM/zeLlwalJsJ6BisrXIQs040/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/doeLaK/btsK2zpTTsM/zeLlwalJsJ6BisrXIQs040/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/doeLaK/btsK2zpTTsM/zeLlwalJsJ6BisrXIQs040/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdoeLaK%2FbtsK2zpTTsM%2FzeLlwalJsJ6BisrXIQs040%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;576&quot; height=&quot;600&quot; data-origin-width=&quot;576&quot; data-origin-height=&quot;600&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Reference&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[1] YouTube. Denoising diffusion probabilistic models explained. Retrieved from &lt;a href=&quot;https://www.youtube.com/watch?v=AVvlDmhHgC4&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.youtube.com/watch?v=AVvlDmhHgC4&lt;/a&gt;&lt;br /&gt;[2]&amp;nbsp;Stanford&amp;nbsp;University.&amp;nbsp;(2023).&amp;nbsp;Lecture&amp;nbsp;15:&amp;nbsp;Diffusion&amp;nbsp;models.&amp;nbsp;CS231n:&amp;nbsp;Deep&amp;nbsp;Learning&amp;nbsp;for&amp;nbsp;Computer&amp;nbsp;Vision.&amp;nbsp;Retrieved&amp;nbsp;from&amp;nbsp;&lt;a href=&quot;https://cs231n.stanford.edu/slides/2023/lecture_15.pdf&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://cs231n.stanford.edu/slides/2023/lecture_15.pdf&lt;/a&gt;&lt;br /&gt;[3]&amp;nbsp;Lazebnik,&amp;nbsp;S.&amp;nbsp;(2023).&amp;nbsp;Lecture&amp;nbsp;17:&amp;nbsp;Diffusion&amp;nbsp;models.&amp;nbsp;Retrieved&amp;nbsp;from&amp;nbsp;&lt;a href=&quot;https://slazebni.cs.illinois.edu/spring23/lec17_diffusion.pdf&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://slazebni.cs.illinois.edu/spring23/lec17_diffusion.pdf&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[4] OpenCV. Denoising diffusion probabilistic models. Retrieved from &lt;a href=&quot;https://learnopencv.com/denoising-diffusion-probabilistic-models/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://learnopencv.com/denoising-diffusion-probabilistic-models/&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[5] Sohl-Dickstein, J., Weiss, E. A., Maheswaranathan, N., &amp;amp; Ganguli, S. (2015). Deep unsupervised learning using nonequilibrium thermodynamics. International Conference on Machine Learning (ICML), 2256&amp;ndash;2265. Retrieved from &lt;a href=&quot;https://arxiv.org/abs/1503.03585&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://arxiv.org/abs/1503.03585&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[6] Ho, J., Jain, A., &amp;amp; Abbeel, P. (2020). Denoising diffusion probabilistic models. Advances in Neural Information Processing Systems (NeurIPS). Retrieved from &lt;a href=&quot;https://arxiv.org/abs/2006.11239&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://arxiv.org/abs/2006.11239&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[7] YouTube. The diffusion model: A new paradigm in AI Retrieved from &lt;a href=&quot;https://www.youtube.com/watch?v=_JQSMhqXw-4&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.youtube.com/watch?v=_JQSMhqXw-4&lt;/a&gt;&lt;/p&gt;</description>
      <category>Paper</category>
      <category>DDPM</category>
      <category>gan</category>
      <category>노이즈</category>
      <category>디퓨전</category>
      <category>디퓨전 모델</category>
      <category>딥페이크</category>
      <category>생성 모델</category>
      <category>스테이블 디퓨전</category>
      <category>이미지 합성</category>
      <category>확산모델</category>
      <author>PSLeon</author>
      <guid isPermaLink="true">https://psleon.tistory.com/254</guid>
      <comments>https://psleon.tistory.com/254#entry254comment</comments>
      <pubDate>Mon, 2 Dec 2024 00:46:55 +0900</pubDate>
    </item>
    <item>
      <title>[LLM] 대형 언어 모델(LLM) 소개</title>
      <link>https://psleon.tistory.com/253</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;대형 언어 모델(LLM) 소개(Introduction to LLM)&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ChatGPT가 공개된지 약 2년이 다되어 가는 시점이고, 처음 나왔을 때는 hallucination(AI가 학습된 데이터나 맥락에 근거하지 않는 잘못된 정보나 허위 정보를 생성하는 현상)이 심해서 여러 번의 검증을 하고 사용하였는데, 최근에는 이러한 문제가 상당하 개선되며 다양한 분야에 적용되어 인간의 업무 효율성을 높이고 있다. 시대의 흐름에 맞게 AI를 사용하는 것은 선택이 아닌 필수가 된 시점에서 자연어 처리(Natural Language Processing, NLP)와 대형 언어 모델(Large Language Model)에 대한 이해는 AI를 공부한다면 필수적이라고 생각한다. 따라서, 기본적인 자연어 처리 기법과 대형 언어 모델의 기초를 만들어준 Transformer와 Transformer 구조에서 인코더 부분을 활용한 Bert 모델, 디코더 부분을 활용한 GPT 모델에 대해 앞으로 몇 차례의 포스팅을 통해 다뤄보고자 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;What is GPT?&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가장 먼저, GPT에 대해서 간단히 얘기해 보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GPT는 OpenAI에 의해 2022년 11월 30일에 세상에 공개된 대형 언어 모델(Large Language Model)이며, AI를 학습 중인 사람들은 아래와 같이 ChatGPT가 아주 익숙할 것이다. 이번 포스팅의 마지막 부분에서는 대형 언어 모델을 뜻하는 단어 중 Large에 대한 부분과 Language Model에 대한 부분을 나눠서 생각해볼 것이다. 얼마나 커야 대형 언어 모델에 속하는 것이고, 언어 모델이란 무엇인가에 관한 내용이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1468&quot; data-origin-height=&quot;1208&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cETuRw/btsKkd2RUNZ/jmKpuxFIZX7QjfNOSjFs10/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cETuRw/btsKkd2RUNZ/jmKpuxFIZX7QjfNOSjFs10/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cETuRw/btsKkd2RUNZ/jmKpuxFIZX7QjfNOSjFs10/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcETuRw%2FbtsKkd2RUNZ%2FjmKpuxFIZX7QjfNOSjFs10%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;651&quot; height=&quot;1208&quot; data-origin-width=&quot;1468&quot; data-origin-height=&quot;1208&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한, 다들 GPT에 대한 이야기를 많이 하지만 구체적으로 어떤 뜻을 내포하고 있는지 아는 이들은 별로 없을 것이다. GPT의 풀 네임은 Generative pretrained Transformer이며 한글로 풀어서 말하면 생성형 사전 학습 트랜스포머라는 뜻을 가진다. 앞으로 생성(generation), 사전 학습(pretrain), 트랜스포머(transformer)에 대해서 순서대로 하나씩 살펴볼 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-10-27 오전 1.52.32.png&quot; data-origin-width=&quot;2374&quot; data-origin-height=&quot;1092&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dbwvAX/btsKlW54ZQR/wswqIKKQ0xTYGLu0YIXiqk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dbwvAX/btsKlW54ZQR/wswqIKKQ0xTYGLu0YIXiqk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dbwvAX/btsKlW54ZQR/wswqIKKQ0xTYGLu0YIXiqk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdbwvAX%2FbtsKlW54ZQR%2FwswqIKKQ0xTYGLu0YIXiqk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2374&quot; height=&quot;1092&quot; data-filename=&quot;스크린샷 2024-10-27 오전 1.52.32.png&quot; data-origin-width=&quot;2374&quot; data-origin-height=&quot;1092&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앞에서 트랜스포머에 대해서 여러 차례 언급했는데 이는 2017년에 인공지능 탑 티어 학회 중 하나인 NeuIPS에 발표된 논문인 &quot;Attention is all you need(&lt;a href=&quot;https://proceedings.neurips.cc/paper_files/paper/2017/file/3f5ee243547dee91fbd053c1c4a845aa-Paper.pdf&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://proceedings.neurips.cc/paper_files/paper/2017/file/3f5ee243547dee91fbd053c1c4a845aa-Paper.pdf&lt;/a&gt;)'에서 제안된 인코더-디코더 구조의 모델이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-10-27 오전 1.56.54.png&quot; data-origin-width=&quot;1962&quot; data-origin-height=&quot;992&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqcY0g/btsKlzDy4em/iiQdAzhmWSTlxgjlQ4yJcK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqcY0g/btsKlzDy4em/iiQdAzhmWSTlxgjlQ4yJcK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqcY0g/btsKlzDy4em/iiQdAzhmWSTlxgjlQ4yJcK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqcY0g%2FbtsKlzDy4em%2FiiQdAzhmWSTlxgjlQ4yJcK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;710&quot; height=&quot;992&quot; data-filename=&quot;스크린샷 2024-10-27 오전 1.56.54.png&quot; data-origin-width=&quot;1962&quot; data-origin-height=&quot;992&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앞으로 다룰 포스팅에서는 self-attention이 무엇인지, cross attention이 무엇인지, masked self-attention이 무엇인지에 대해서 하나씩 구체적으로 알아볼 예정이다. 또한 Transformer는 어떤 sequence한 데이터를 처리할 때 주로 사용하던 RNN과 같은 모델의 단점을 해결하기 위한 모델로써, RNN, LSTM, GRU와 같은 시계열 처리 모델에 대한 이해도 필요하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;대형 언어 모델(Large Language Model)&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전통적으로 컴퓨터를 인간의 지능과 같이 만들기 위한 시도는 오랜 과거부터 지속되어 왔다. 인공지능이 활성화되기 전, 전통적인 방식으로는 사람이 직접 특정 규칙에 대해 하드 코딩하여 사람과 같이 특정 물체를 분류할 수 있도록 하는 것을 예로 들 수 있다. 시간이 지나면서 병렬 연산에 유리한 GPU의 발전하여 대규모 연산도 빠른 시간 내에 가능해지면서 Deep Neural Network의 시대가 도래하였고 이제는 rule-based가 아닌 단순히 딥러닝 모델에 입력 데이터만 넣어주면 여러 레이어를 지나면서 원하는 결과를 도출할 수 있게 됐다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;쉽게 말하면, 어떤 고양이나 강아지 사진을 입력 데이터로 주기만 하면 신경망이 알아서 여러 연산을 통해 이 사진이 고양이인지 강아지인지 구별할 수 있게 되었다는 것을 뜻한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-10-27 오전 2.01.58.png&quot; data-origin-width=&quot;2040&quot; data-origin-height=&quot;340&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cHGAvo/btsKkjVYoGq/ZJvVLfyk45JXTlGHSTeKXK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cHGAvo/btsKkjVYoGq/ZJvVLfyk45JXTlGHSTeKXK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cHGAvo/btsKkjVYoGq/ZJvVLfyk45JXTlGHSTeKXK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcHGAvo%2FbtsKkjVYoGq%2FZJvVLfyk45JXTlGHSTeKXK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;770&quot; height=&quot;128&quot; data-filename=&quot;스크린샷 2024-10-27 오전 2.01.58.png&quot; data-origin-width=&quot;2040&quot; data-origin-height=&quot;340&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2012년 AlexNet이 위와 같은 컴퓨터 비전 task에서 분류 문제의 붐을 일으킨 후, object detection, face recognition, object tracking 등 다양한 task가 발전하였으며, 자연어 처리 task에서도 인공지능을 활용한 연구가 상당히 발전하게 됐고 그 결과 ChatGPT가 등장하게 되었다. 요즘은 더 나아가 언어 모델과 컴퓨터 비전 모델을 결합한 생성 모델인 Text-to-Image 모델에 관한 연구도 활발히 진행되고 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-10-27 오전 2.06.06.png&quot; data-origin-width=&quot;2396&quot; data-origin-height=&quot;854&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IlySY/btsKl1e8tEf/rLCSxDiclKoEedRWWDw6EK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IlySY/btsKl1e8tEf/rLCSxDiclKoEedRWWDw6EK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IlySY/btsKl1e8tEf/rLCSxDiclKoEedRWWDw6EK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIlySY%2FbtsKl1e8tEf%2FrLCSxDiclKoEedRWWDw6EK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;748&quot; height=&quot;267&quot; data-filename=&quot;스크린샷 2024-10-27 오전 2.06.06.png&quot; data-origin-width=&quot;2396&quot; data-origin-height=&quot;854&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 본격적으로, 대형 언어 모델(LLM)에 대해서 자세히 살펴보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대형 언어 모델은 딥러닝의 하위 분야 중 하나이다. 딥러닝 분야 중에서도 자연어 처리 분야와 컴퓨터 비전 분야 모두에 속하는 분야라고 생각할 수 있다. 그 이유는 앞에 설명한 것과 같이 자연어와 독립적으로 상호작용하는 것이 아닌 멀티모달로써, Text-to-Image도 가능하며, Image-to-Text도 가능하고 다양한 방면으로 활용될 수 있기 때문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-10-27 오전 2.07.43.png&quot; data-origin-width=&quot;1110&quot; data-origin-height=&quot;728&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CROp4/btsKlbbJokN/Gz7iemExJNsKomo8DzIlc1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CROp4/btsKlbbJokN/Gz7iemExJNsKomo8DzIlc1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CROp4/btsKlbbJokN/Gz7iemExJNsKomo8DzIlc1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCROp4%2FbtsKlbbJokN%2FGz7iemExJNsKomo8DzIlc1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;653&quot; height=&quot;428&quot; data-filename=&quot;스크린샷 2024-10-27 오전 2.07.43.png&quot; data-origin-width=&quot;1110&quot; data-origin-height=&quot;728&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;언어 모델은 일반적인 다양한 문제를 해결하는 것을 목적으로 하고 대량의 데이터로 사전 학습하고 파인튜닝하여 사용된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제는 Large가 무엇인지에 대해 생각해보자. 바로 직전에 설명한 내용을 잘 이해했다면 두 가지 정도로 생각할 수 있을 것이다. 첫 번째는 Large training dataset을 의미한다. 즉, 엄청 많은 데이터셋에 의해 학습된다는 것이다. 다음으로 두 번째는 대규모 데이터셋에 의해 학습되기 때문에 이에 대한 파라미터 수가 대규모라는 것이다. 파라미터는 모델의 가중치(weights)라고 생각해도 무방하다. 얼마나 대규모인지 쉽게 이해하기 위해서 GPT-1부터 GPT-4까지 비교하면 다음과 같다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;GPT-1 has 117M parameters. - 1억 1700만개 파라미터&lt;/li&gt;
&lt;li&gt;GPT-2 has 1.5B parameters. - 15억개 파라미터&lt;/li&gt;
&lt;li&gt;GPT-3 has 175B parameters. - 1750억개 파라미터&lt;/li&gt;
&lt;li&gt;GPT-4 has 1.75T parameters (estimate). - 1조 7500억개 파라미터&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앞에서 사전 학습이라는 단어와 파인튜닝에 대해서도 언급했는데 이는 아래의 이미지를 통해 쉽게 이해할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-10-27 오전 2.18.13.png&quot; data-origin-width=&quot;2240&quot; data-origin-height=&quot;850&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lBA0V/btsKktqq3Wi/Vl4ZOCJw15oIHAucqWcaNk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lBA0V/btsKktqq3Wi/Vl4ZOCJw15oIHAucqWcaNk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lBA0V/btsKktqq3Wi/Vl4ZOCJw15oIHAucqWcaNk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlBA0V%2FbtsKktqq3Wi%2FVl4ZOCJw15oIHAucqWcaNk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;770&quot; height=&quot;292&quot; data-filename=&quot;스크린샷 2024-10-27 오전 2.18.13.png&quot; data-origin-width=&quot;2240&quot; data-origin-height=&quot;850&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저, 대규모의 데이터를 통해 모델을 학습 시키는 과정을 &lt;b&gt;사전 학습&lt;/b&gt;한다고 하며, 위 그림을 통해 이해하자면 강아지가 있을 때 기본적으로 앉아, 이리와 등 다양한 기본적인 훈련을 시키는 것이다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로, 이렇게 사전 학습된 모델을 통해 해결하고자 하는 특정한 task에 대해 높은 성능을 위해 추가적인 custom dataset을 통해 추가로 학습을 진행하는 것을 &lt;b&gt;파인튜닝&lt;/b&gt;한다고 한다. 위 그림 상에서는 일반적인 강아지를 목적에 맞게 경찰견, 도우미견 등으로 특별 훈련하는 것으로 이해할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 모델을 사전 학습하고 이후 특정 목적에 맞게 파인튜닝하는 과정을 언어 모델을 예를 들면 다음과 같은 하나의 이미지로 이해할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-10-27 오전 2.23.02.png&quot; data-origin-width=&quot;2286&quot; data-origin-height=&quot;932&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bBEXNc/btsKkgkFbIO/lQrzltzxTo01TuamEtFeq1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bBEXNc/btsKkgkFbIO/lQrzltzxTo01TuamEtFeq1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bBEXNc/btsKkgkFbIO/lQrzltzxTo01TuamEtFeq1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbBEXNc%2FbtsKkgkFbIO%2FlQrzltzxTo01TuamEtFeq1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;774&quot; height=&quot;316&quot; data-filename=&quot;스크린샷 2024-10-27 오전 2.23.02.png&quot; data-origin-width=&quot;2286&quot; data-origin-height=&quot;932&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;뉴스 기사 데이터나 사전 데이터 등 대규모의 언어 데이터를 통해 모델을 사전 학습 시키면 모델은 일반적인 언어와 상식에 관한 지식을 얻게 되고 비로소 General purpose Language Model이 된다. 이렇게 사전 학습된 일반적인 대형 언어 모델을 통해 다양한 문제를 해결할 수 있는데 대표적인 예시가 언어 번역(language translation), 문장 완성(sentence completion), 텍스트 분류(text classification), 질문 답변(question answering) 등이 있다. 이후, 목적에 맞게 특정 분야의 적은 양의 데이터셋을 통해 추가적인 훈련(파인튜닝)을 진행하면 상당히 높은 성능의  커스터마이징된 모델이 되는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-10-27 오전 2.27.00.png&quot; data-origin-width=&quot;2202&quot; data-origin-height=&quot;740&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lELJM/btsKl1MY6ul/3K06IIvW4atUBVjKCOqUrk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lELJM/btsKl1MY6ul/3K06IIvW4atUBVjKCOqUrk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lELJM/btsKl1MY6ul/3K06IIvW4atUBVjKCOqUrk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlELJM%2FbtsKl1MY6ul%2F3K06IIvW4atUBVjKCOqUrk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2202&quot; height=&quot;740&quot; data-filename=&quot;스크린샷 2024-10-27 오전 2.27.00.png&quot; data-origin-width=&quot;2202&quot; data-origin-height=&quot;740&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왜 대형 언어 모델 기반의 개발이 인기가 높은 것일까? 전통적인 머신러닝 개발 과정에서는 대규모 데이터셋을 사용해야 했으며 모델에 대한 설계도 전문가가 직접해야 어느 정도 성능을 낼 수 있는 모델을 구성할 수 있었고 이러한 과정에서 매우 많은 훈련 자원이 필요했으며, 시간도 매우 오래 걸렸다. 하지만 대형 언어 모델 기반의 개발에서는 데이터가 거의 없는 zero dataset이나 적은 데이터인 few dataset만으로도 누구나 프롬프트 엔지니어링만을 거치면 우리가 원하는 모델을 만들 수 있다는 간편함 덕분에 높은 인기가 있는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금까지 간단하게 대형 언어 모델이 무엇인지 큰 그림을 살펴보았고 다음 포스팅에서는 기본적인 NLP 모델 구조에 대해서 인공지능 이론과 함께 설명하고자 한다.&lt;/p&gt;</description>
      <category>NLP&amp;amp;LLM</category>
      <category>Bert</category>
      <category>ChatGPT</category>
      <category>fine-tuning</category>
      <category>LLM</category>
      <category>nlp</category>
      <category>Pretrained</category>
      <category>Transformer</category>
      <category>대형 언어 모델</category>
      <category>사전학습</category>
      <category>파인튜닝</category>
      <author>PSLeon</author>
      <guid isPermaLink="true">https://psleon.tistory.com/253</guid>
      <comments>https://psleon.tistory.com/253#entry253comment</comments>
      <pubDate>Sun, 27 Oct 2024 02:41:23 +0900</pubDate>
    </item>
    <item>
      <title>[Physics] 파동의 성질과 활용</title>
      <link>https://psleon.tistory.com/252</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;파동의 성질과 활용&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;파동&lt;/b&gt;: &lt;b&gt;진동&lt;/b&gt;이 주위로 퍼져나가는 현상&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;220&quot; data-origin-height=&quot;151&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bwadKL/btsJUmdyDQ7/4NYi3arf3kTSkeQLUw1rJK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bwadKL/btsJUmdyDQ7/4NYi3arf3kTSkeQLUw1rJK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bwadKL/btsJUmdyDQ7/4NYi3arf3kTSkeQLUw1rJK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbwadKL%2FbtsJUmdyDQ7%2F4NYi3arf3kTSkeQLUw1rJK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;220&quot; height=&quot;151&quot; data-origin-width=&quot;220&quot; data-origin-height=&quot;151&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파동은 진동이 주위로 퍼져나가는 현상을 뜻하는데, 이때 진동이란 어떤 특정한 위치에서 짧게 왕복운동 하는 것을 뜻한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파동의 종류로는 크게 횡파와 종파로 나눌 수 있다. 진동을 주위로 퍼져 나가게 하기 위해서는 어떠한 물질이 필요한데, 이러한 물질을 매질이라고 한다. 예를 들어, 지진파의 경우 암석이 매질이 되는 것이고 음파의 경우에는 공기가 매질이 된다. 매질은 제자리에서 또 다른 매질을 진동시켜 공간을 따라 전파되어 파동을 발생시킨다. 파동에는 매질의 진동 방향과 파동의 진행 방향에 따라 횡파와 종파로 나뉜다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;횡파는 파동의 진행 방향과 매질의 진동 방향이 서로 수직인 파동을 뜻하며 그림으로 나타내면 아래와 같다. 예시로는 지진파의 S파와 전자기파(빛)가 있다. 참고로, 빛이 횡파이기 때문에 횡파와 종파를 동일한 선상에 둔다면, 횡파가 더 중요하게 여겨진다고 할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;300&quot; data-origin-height=&quot;106&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ex5982/btsJU0OtW6o/2YjH79Auwp7ODUda6gIKgk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ex5982/btsJU0OtW6o/2YjH79Auwp7ODUda6gIKgk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ex5982/btsJU0OtW6o/2YjH79Auwp7ODUda6gIKgk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fex5982%2FbtsJU0OtW6o%2F2YjH79Auwp7ODUda6gIKgk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;300&quot; height=&quot;106&quot; data-origin-width=&quot;300&quot; data-origin-height=&quot;106&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 종파는 파동의 진행 방향과 매질의 진행 방향이 동일하며 아래와 같은 그림과 같이 표현할 수 있다. 예시로는 지진파의 P파와 소리(초음파)가 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;191&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c6QlQQ/btsJTd9S0pu/yLtLj8RHywTHmyfBClBrik/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c6QlQQ/btsJTd9S0pu/yLtLj8RHywTHmyfBClBrik/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c6QlQQ/btsJTd9S0pu/yLtLj8RHywTHmyfBClBrik/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc6QlQQ%2FbtsJTd9S0pu%2FyLtLj8RHywTHmyfBClBrik%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;191&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;191&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파동이 발생하기 위해서는 꼭 매질이 필요한데, 빛의 경우 예외적으로 매질이 필요없다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;빛의 경우, 진공에서 속력이 가장 빠른데 빛의 진행 속력은 30만 km/s이다. 그런데 사실 진공에서의 빛의 속력과 공기 중의 빛의 속력은 거의 동일하다. 하지만 빛의 매질이 액체나 고체로 변경된다면 빛의 속력은 느려진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;소리의 경우, 매질이 꼭 있어야만 소리가 전달될 수 있다. 따라서 소리의 진행 속력이 빠르기 위한 조건은 분자의 간격이 촘촘해야 하기 때문에 고체에서 가장 빠르고 액체가 그 다음이며, 공기에서 가장 느리다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;추가로 횡파와 종파에 따라 간단히 용어 정리를 하면 다음과 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저, 횡파의 경우, 마루와 골이라는 용어를 활용하여 파장을 설명할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;994&quot; data-origin-height=&quot;195&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zrmt1/btsJTmFAzKB/WyyVAwkzgh2t8fb3TzHjf0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zrmt1/btsJTmFAzKB/WyyVAwkzgh2t8fb3TzHjf0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zrmt1/btsJTmFAzKB/WyyVAwkzgh2t8fb3TzHjf0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fzrmt1%2FbtsJTmFAzKB%2FWyyVAwkzgh2t8fb3TzHjf0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;994&quot; height=&quot;195&quot; data-origin-width=&quot;994&quot; data-origin-height=&quot;195&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;횡파를 보면, S자의 형태로 높은 곳과 낮은 곳의 파동을 확인할 수 있는데, 높은 곳을 '마루'라고 하고 낮은 곳을 '골'이라고 한다. 그리고 마루에서 마루까지 혹은 골에서 골까지의 거리를 '파장'이라고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고, 종파의 경우, 밀과 소라는 용어를 활용하여 파장을 설명할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;191&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c6QlQQ/btsJTd9S0pu/yLtLj8RHywTHmyfBClBrik/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c6QlQQ/btsJTd9S0pu/yLtLj8RHywTHmyfBClBrik/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c6QlQQ/btsJTd9S0pu/yLtLj8RHywTHmyfBClBrik/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc6QlQQ%2FbtsJTd9S0pu%2FyLtLj8RHywTHmyfBClBrik%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;191&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;191&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 그림에서 알 수 있듯이, 매질의 간격이 밀집된 곳을 '밀'이라 하고 듬성듬성한 곳을 '소'라고 하며 밀에서 밀까지 혹은 소에서 소까지의 거리를 '파장'이라고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파장은 파동의 진행 속력을 구하기 위한 하나의 요소 역할을 하며, 그리스 문자로 람다(&amp;lambda;)로 쓴다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;추가로 알아야할 용어로는 '진폭'과 '주기'가 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;994&quot; data-origin-height=&quot;195&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zrmt1/btsJTmFAzKB/WyyVAwkzgh2t8fb3TzHjf0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zrmt1/btsJTmFAzKB/WyyVAwkzgh2t8fb3TzHjf0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zrmt1/btsJTmFAzKB/WyyVAwkzgh2t8fb3TzHjf0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fzrmt1%2FbtsJTmFAzKB%2FWyyVAwkzgh2t8fb3TzHjf0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;994&quot; height=&quot;195&quot; data-origin-width=&quot;994&quot; data-origin-height=&quot;195&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;진폭은 마루와 골 중간 지점에서부터 마루 혹은 골까지의 거리를 뜻한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 주기는 매질이 1회 진동하는데 걸린 시간 T를 뜻한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제는 진동수를 알아보자&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;진동수는 영어로 frequency라고 하고 기호로는 f로 쓴다. 진동수의 뜻은 1초 동안 파동이 진동하는 횟수를 뜻하며 단위는 맥스웰이 사용한 Hz를 사용한다. 진동수는 아래와 같이 구할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;진동수(f) = 1 / 주기(T)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한, 파동의 진행 속력을 한 주기 동안 매질이 한 번 진동하는 동안에 이동한 거리를 통해 구할 수 있고 다음과 같이 구할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;c = &amp;lambda; / T = &amp;lambda;f&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;343&quot; data-origin-height=&quot;89&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MA1Co/btsJTz5U3iI/d25AVetcohCHAm3qxVPg7K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MA1Co/btsJTz5U3iI/d25AVetcohCHAm3qxVPg7K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MA1Co/btsJTz5U3iI/d25AVetcohCHAm3qxVPg7K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMA1Co%2FbtsJTz5U3iI%2Fd25AVetcohCHAm3qxVPg7K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;343&quot; height=&quot;89&quot; data-origin-width=&quot;343&quot; data-origin-height=&quot;89&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Physics</category>
      <category>매질</category>
      <category>물리</category>
      <category>물리1</category>
      <category>빛</category>
      <category>종파</category>
      <category>진동</category>
      <category>파동</category>
      <category>파동의 성질</category>
      <category>횡파</category>
      <author>PSLeon</author>
      <guid isPermaLink="true">https://psleon.tistory.com/252</guid>
      <comments>https://psleon.tistory.com/252#entry252comment</comments>
      <pubDate>Fri, 4 Oct 2024 00:46:46 +0900</pubDate>
    </item>
    <item>
      <title>[Paper Review] Disrupting Deepfakes: Adversarial Attacks ~</title>
      <link>https://psleon.tistory.com/247</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;논문 리뷰: Disrupting Deepfakes: Adversarial Attacks on Conditional Image Translation Networks&lt;/b&gt;&lt;/h2&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;- 논문 링크: &lt;a href=&quot;https://arxiv.org/pdf/2003.01279&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://arxiv.org/pdf/2003.01279&lt;/span&gt;&lt;/a&gt;&lt;br&gt;- 깃허브 링크: &lt;a href=&quot;https://github.com/natanielruiz/disrupting-deepfakes?tab=readme-ov-file&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://github.com/natanielruiz/disrupting-deepfakes?tab=readme-ov-file&lt;/span&gt;&lt;/a&gt;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Background&lt;/b&gt;&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;오늘은 2020년 CVPR 워크샵에서 발표된 논문인 &quot;Disrupting Deepfakes: Adversarial Attacks on Conditional Image Translation Networks&quot;이라는 논문에 대해 리뷰하고자 한다. 최근 Adversarial Attack에 관심을 갖게 되고난 후 &quot;딥페이크 범죄&quot;가 사회적 이슈가 되었다. 그리고 필자는 사람 눈에는 안보이지만 아주 미세한 노이즈를 사진에 넣어서 GAN이나 Diffusion 모델로 딥페이크를 하게 됐을 때 이를 못하도록 막는 기술을 연구하고 싶다는 생각을 했고, 관련 연구들을 서베이하던 중 필자의 방향과 가장 비슷한 논문 2개 정도를 발견했고, 오늘 그 중 하나를 리뷰하고자 한다.&lt;br&gt;원본 이미지에 아주 미세한 노이즈를 적용한 후 딥페이크를 진행했을 때의 결과 이미지는 아래와 같다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1820&quot; data-origin-height=&quot;1084&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TfJI3/btsJx6BVPTE/aoGK6rUAJCKArge7J17qHK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TfJI3/btsJx6BVPTE/aoGK6rUAJCKArge7J17qHK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TfJI3/btsJx6BVPTE/aoGK6rUAJCKArge7J17qHK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTfJI3%2FbtsJx6BVPTE%2FaoGK6rUAJCKArge7J17qHK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1820&quot; height=&quot;1084&quot; data-origin-width=&quot;1820&quot; data-origin-height=&quot;1084&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;위 결과를 보면 알 수 있듯이, 노이즈 없이 원본 이미지에 딥페이크를 진행하면 성공적으로 얼굴이 변경되지만, 약간의 노이즈를 삽입한 이미지를 보면, 사람 눈에는 전혀 보이지도 않지만 딥페이크를 진행하면, 완전 사람이 알아볼 수 없는 형태인 블러링된 상태로 출력된다는 것을 확인할 수 있다. 여러 딥페이크 범죄 관련 예방을 위해 진행된 연구들은 대다수 딥페이크 탐지기에 대한 연구인데, 이는 범죄가 발생하기 전에는 전혀 예방할 수 없다는 한계가 있지만, 이 연구는 본질적인 문제인 사전 예방이 가능한 방법을 제안했다는 점에서 contribution이 있다고 할 수 있다.&lt;br&gt;본 논문 리뷰는 Introduction, Contribution, Method, Experiment, Conclusion 순서로 작성하고자 한다.&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Abstract&lt;/b&gt;&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;딥러닝을 사용한 얼굴 수정 시스템은 점차 강력해지고 접근이 쉬워졌다. 사람의 얼굴 사진이 주어지면 이러한 시스템은 완전히 같은 사람의 얼굴을 다른 표정이나 자세의 새로운 이미지로 만들어낼 수 있다. 또한 몇몇 시스템은 머리 색깔이나 나이와 같이 특정 속성에 대해서 수정할 수 있다. 이렇게 수정된 이미지나 비디오를 딥페이크(Deepfakes)라고 부른다. 제약없이 사람을 수정한 이미지를 만드는 악성 사용자로부터 예방하기 위해서 우리는 이미지 변환 시스템의 결과 이미지를 방해하는 적대적 공격을 생성함으로써 이 새로운 문제를 해결하고자 한다. 우리는 이 문제를 딥페이크 방해(disrupting deepfakes)라고 한다. 대부분의 이미지 변환 모델의 아키텍처는 속성에 따라 조건화(e.g., 사람의 얼굴을 웃게해줘)된 생성 모델들(generative models)이다. 우리는 먼저, 다양한 클래스로 일반화되는 클래스 이전 가능한 적대적 공격을 최초로 제안하고 성공적으로 적용했다. 이로 인해, 공격자는 조건화 클래스에 대한 지식이 필요하지 않다. 다음으로, 우리는 강인한 이미지 변환 신경망으로 한걸음 나아가기 위해 생성형 적대적 신경망(GAN)을 위한 적대적 학습(adversarial training)을 최초로 제안하고 이 또한, 성공적으로 적용했다. 마지막으로, 그레이박스 시나리오에서 블러링은 방해에 대한 성공적인 방어를 구축할 수 있다. 우리는 블러 방어를 피하기 위한 확산 스펙트럼의 적대적 공격(spread-spectrum adversarial attack)을 제안한다.&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. Introduction&lt;/b&gt;&lt;/h3&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;480&quot; data-origin-height=&quot;270&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Emobw/btsJSk76Ner/MK4Y5USn542Kyj6KYiwM3K/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Emobw/btsJSk76Ner/MK4Y5USn542Kyj6KYiwM3K/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Emobw/btsJSk76Ner/MK4Y5USn542Kyj6KYiwM3K/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/Emobw/btsJSk76Ner/MK4Y5USn542Kyj6KYiwM3K/img.gif&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;480&quot; height=&quot;270&quot; data-origin-width=&quot;480&quot; data-origin-height=&quot;270&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;480&quot; data-origin-height=&quot;480&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c2mYtx/btsJRADVfJo/xnFEWP7krkCYAYxBmqZ3h1/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c2mYtx/btsJRADVfJo/xnFEWP7krkCYAYxBmqZ3h1/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c2mYtx/btsJRADVfJo/xnFEWP7krkCYAYxBmqZ3h1/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/c2mYtx/btsJRADVfJo/xnFEWP7krkCYAYxBmqZ3h1/img.gif&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;480&quot; height=&quot;480&quot; data-origin-width=&quot;480&quot; data-origin-height=&quot;480&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;662&quot; data-origin-height=&quot;370&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ts7DD/btsJRc4g6aZ/36kRfKLaVyNQIcZCuDdQk1/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ts7DD/btsJRc4g6aZ/36kRfKLaVyNQIcZCuDdQk1/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ts7DD/btsJRc4g6aZ/36kRfKLaVyNQIcZCuDdQk1/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/ts7DD/btsJRc4g6aZ/36kRfKLaVyNQIcZCuDdQk1/img.gif&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;662&quot; height=&quot;370&quot; data-origin-width=&quot;662&quot; data-origin-height=&quot;370&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;생성형 적대적 신경망(GAN: Generative Adversarial Network)와 노이즈 제거 확률 확산 모델(DDPM: Denosing Diffusion Probabilistic Models)가 등장함에 따라 원본 이미지를 조작하여 새로운 얼굴로 만들거나 혹은 성별을 바꾸거나 헤어 스타일을 바꾸는 등 다양하게 특정 속성들을 변경할 수 있게 되었다.&lt;br&gt;이와 같이 딥페이크 기술이 널리 퍼지고, 일반인들도 GitHub에 공개된 오픈소스를 통해 쉽게 사용할 수 있도록 되자, 악성 사용자(malicious actors)들은 원본 이미지의 대상의 허락없이도 함부로 딥페이크 기술을 사용하여 가짜 뉴스를 만들거나 혹은 최근 이슈가 되고 있는 성범죄 등 다양한 사회적 문제를 일으키고 있다.&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;715&quot; data-origin-height=&quot;597&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCxx0x/btsJS8eOC9v/5oEjuUPyz4d3hx3mcQMN1k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCxx0x/btsJS8eOC9v/5oEjuUPyz4d3hx3mcQMN1k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCxx0x/btsJS8eOC9v/5oEjuUPyz4d3hx3mcQMN1k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCxx0x%2FbtsJS8eOC9v%2F5oEjuUPyz4d3hx3mcQMN1k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;715&quot; height=&quot;597&quot; data-origin-width=&quot;715&quot; data-origin-height=&quot;597&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;735&quot; data-origin-height=&quot;686&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brUbz8/btsJSKd41TO/A0B3B5YQiKEQfQc3OyEzr0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brUbz8/btsJSKd41TO/A0B3B5YQiKEQfQc3OyEzr0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brUbz8/btsJSKd41TO/A0B3B5YQiKEQfQc3OyEzr0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbrUbz8%2FbtsJSKd41TO%2FA0B3B5YQiKEQfQc3OyEzr0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;735&quot; height=&quot;686&quot; data-origin-width=&quot;735&quot; data-origin-height=&quot;686&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;이러한 딥페이크 범죄의 대상은 직업, 나이, 성별에 관계없이 피해가 확산되고 있다. 가장 큰 문제는 피해가 발생한 후 이를 발견할 수 있고 딱히 예방 방법이 없다는 것이다.&lt;br&gt;이러한 딥페이크 범죄를 막기 위한 여러 연구가 존재했는데, 그 중 대표적인 분야가 바로 'Deepfake Detection'이다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1247&quot; data-origin-height=&quot;564&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfNCDf/btsJRzrntEB/lXGe9lW5iJR9YdcpficND1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfNCDf/btsJRzrntEB/lXGe9lW5iJR9YdcpficND1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfNCDf/btsJRzrntEB/lXGe9lW5iJR9YdcpficND1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbfNCDf%2FbtsJRzrntEB%2FlXGe9lW5iJR9YdcpficND1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1247&quot; height=&quot;564&quot; data-origin-width=&quot;1247&quot; data-origin-height=&quot;564&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;실제, 언론이나 구글 스칼라를 통해 확인해보면 deepfake detection과 관련된 여러 내용이 나온다. 이는 딥페이크 기술을 사용해 조작된 fake 이미지 혹은 영상인지 아니면 real 이미지 혹은 영상인지 감지하여 판별하는 시스템이다. 이는 가짜 뉴스 판별에는 도움이 되지만 현재 이슈가 되고 있는 딥페이크 성범죄에 대해서는 큰 실효성이 없다. 그 이유는 성범죄는 예방이 최우선 목적이 되어야하며, 이미 범죄가 발생한 후에는 피해자에게 큰 정신적 고통을 줄 수 있는 큰 문제이기 때문이다. 따라서, 애초에 딥페이크를 통해 얼굴을 조작하는 등의 기술을 원천적으로 차단하고 예방할 수 있어야 한다.&lt;br&gt;&amp;nbsp;&lt;br&gt;본 논문에서는 'Deepfake Disruption'이라는 새로운 분야를 제안한다. 즉, 원본 이미지에 사람 눈으로는 거의 식별이 불가능한 미세한 노이즈를 삽입하여 적대적 예제(adversarial example)를 만든다. 그리고 해당 적대적 예제를 통해 얼굴 조작(face manipulation)을 진행하면 이미지가 블러링되거나 파괴된 이미지가 출력되는 방법이다. 물론 이 연구에서는 GAN 모델에 대해서만 진행했기 때문에 약간의 아쉬움이 남는다. 차후 내 연구에서는 Diffusion 모델에도 강건하게 공격할 수 있는 Method를 제안하고 싶다.&lt;br&gt;&amp;nbsp;&lt;br&gt;필자는 최근 딥페이크 범죄가 이슈화되기 전부터 내가 공부하는 Adversarial Attack이라는 분야를 활용하여 딥페이크를 막을 수 있는 기술을 만들고 싶었는데, 본 논문은 정확하게 내가 원하는 내용과 일치하는 논문이다. 이 논문에서 원본 이미지에 미세한 노이즈를 삽입하여 Adversarial example을 만드는 내용은 2015년 ICLR에 발표된 Ian. J. Goodfellow의 논문인 &quot;Explaining and Harnessing Adversarial Examples&quot;를 보면 더 자세히 이해할 수 있다. 본 논문은 필자가 리뷰한 적이 있는 논문으로, 아래 링크를 통해 학습할 할 수 있다.&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://psleon.tistory.com/244&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://psleon.tistory.com/244&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1355&quot; data-origin-height=&quot;458&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uSzRK/btsJRSqJs4O/u4qKkBX5GHTAZKfMtBIwIk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uSzRK/btsJRSqJs4O/u4qKkBX5GHTAZKfMtBIwIk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uSzRK/btsJRSqJs4O/u4qKkBX5GHTAZKfMtBIwIk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuSzRK%2FbtsJRSqJs4O%2Fu4qKkBX5GHTAZKfMtBIwIk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1355&quot; height=&quot;458&quot; data-origin-width=&quot;1355&quot; data-origin-height=&quot;458&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;위 그림은 Adversarial Attack을 한번에 정리하여 나타낸 그림이다. 어떤 모델이 있고, 그 모델은 그림의 좌측과 같이 판다 이미지에 대해서 57.7%의 confidence를 갖고 판다로 예측하는 모델에 아주 미세한 노이즈(0.007 만큼 곱한 아주 작은 노이즈)를 원본 이미지에 삽입하면 그림의 중앙에 위치하는 적대적 예제(adversarial example)가 만들어지고, 이는 모델이 99.3%의 confidence를 갖고 긴팔원숭이(gibbon)이라고 오분류(misclassify)를 이끌어낸다. 이렇게 오분류를 이끌어내는 task를 적대적 공격(adversarial attack)이라고 한다.&lt;br&gt;Explaining and Harnessing Adversarial Examples 논문의 저자 중 한명인 세게디가 L-BFGS라는 방법을 제안한 이후, FGSM이 등장하고 그 이후 더 강력한 공격인 C&amp;amp;W Attack, PGD, Auto Attack 등 다양한 공격 기법이 등장했다.&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;766&quot; data-origin-height=&quot;606&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/M4cRn/btsJRqBhH6f/Zs6Njbfb17YADQ33srpXB0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/M4cRn/btsJRqBhH6f/Zs6Njbfb17YADQ33srpXB0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/M4cRn/btsJRqBhH6f/Zs6Njbfb17YADQ33srpXB0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FM4cRn%2FbtsJRqBhH6f%2FZs6Njbfb17YADQ33srpXB0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;766&quot; height=&quot;606&quot; data-origin-width=&quot;766&quot; data-origin-height=&quot;606&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;이러한 적대적 공격의 원리는 L-Norm을 활용하여 정해진 ε보다 작은 노이즈를 생성하여 적대적 예제를 만들고 이렇게 만들어진 적대적 예제는 결정 경계(decision boundary)의 범위 밖에 위치하게 되어 오분류를 이끌어 내는 것이다.&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1211&quot; data-origin-height=&quot;555&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WOxUY/btsJThQbH7z/phoksTBhfkQ0Ud7K5StkiK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WOxUY/btsJThQbH7z/phoksTBhfkQ0Ud7K5StkiK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WOxUY/btsJThQbH7z/phoksTBhfkQ0Ud7K5StkiK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWOxUY%2FbtsJThQbH7z%2FphoksTBhfkQ0Ud7K5StkiK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1211&quot; height=&quot;555&quot; data-origin-width=&quot;1211&quot; data-origin-height=&quot;555&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;Adversarial Attack에는 크게 다음과 같은 2가지 공격이 존재한다.&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;White-Box Attack: 공격자가 사전에 모델의 종류나 파라미터와 같은 모든 정보에 접근할 수 있을 때 진행되는 적대적 공격&lt;/li&gt;&lt;li&gt;Black-Box Attack: 공격자가 사전에 모델과 관련된 정보를 모르지만 대표적인 모델에 대해서 공격을 진행 후 adversarial example의 전이성(transferability)을 활용한 공격&lt;/li&gt;&lt;/ul&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;본 논문에서는 다음과 같이 위 두 가지의 공격 시나리오를 적절히 조합한 'Gray-Box Scenario'를 정의하고 이 환경에서의 공격을 제안한다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1219&quot; data-origin-height=&quot;552&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Kle3B/btsJSh4IOVn/AG9HMfPMqBMPsP3D0gKiRk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Kle3B/btsJSh4IOVn/AG9HMfPMqBMPsP3D0gKiRk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Kle3B/btsJSh4IOVn/AG9HMfPMqBMPsP3D0gKiRk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKle3B%2FbtsJSh4IOVn%2FAG9HMfPMqBMPsP3D0gKiRk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1219&quot; height=&quot;552&quot; data-origin-width=&quot;1219&quot; data-origin-height=&quot;552&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;그레이박스 시나리오는 모델과 모델의 파라미터에 대해서는 완벽히 알고 있지만 방어를 위한 전처리 과정(예를 들면 블러링)에 대해서는 무시하는 것이다.&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;998&quot; data-origin-height=&quot;460&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/B8W4Q/btsJSNhDLgK/iRBW5HTk12FTu7sfi9fObK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/B8W4Q/btsJSNhDLgK/iRBW5HTk12FTu7sfi9fObK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/B8W4Q/btsJSNhDLgK/iRBW5HTk12FTu7sfi9fObK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FB8W4Q%2FbtsJSNhDLgK%2FiRBW5HTk12FTu7sfi9fObK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;998&quot; height=&quot;460&quot; data-origin-width=&quot;998&quot; data-origin-height=&quot;460&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;위 그림은 본 논문의 deepfake disruption 과정을 나타낸 그림이다. 원본 이미지와 적대적 예제에 대해서 각각 StarGAN을 활용한 face manipulation을 진행했을 때, 어떤 결과가 나오는지 한눈에 보여준다. 먼저, 원본 이미지로 딥페이크를 진행하면 얼굴은 동일한데 헤어 색상이 변한 것을 확인할 수 있다. 하지만 공격이 진행된 이미지에 대해서 딥페이크를 진행하면 알아볼 수 없는 이미지로 결과가 출력된다. 즉, 필자가 앞서 말한 것과 같이 딥페이크에 대해 예방할 수 있는 방법이다.&lt;br&gt;&amp;nbsp;&lt;br&gt;예시를 조금 더 살펴보자.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;968&quot; data-origin-height=&quot;379&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dcuMEC/btsJSdOT96e/PzchplLsIUZfmKlaGrZH71/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dcuMEC/btsJSdOT96e/PzchplLsIUZfmKlaGrZH71/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dcuMEC/btsJSdOT96e/PzchplLsIUZfmKlaGrZH71/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdcuMEC%2FbtsJSdOT96e%2FPzchplLsIUZfmKlaGrZH71%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;968&quot; height=&quot;379&quot; data-origin-width=&quot;968&quot; data-origin-height=&quot;379&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;StarGAN이나 GANimation을 통해 노이즈 없이 정상적인 이미지로 딥페이크를 진행했을 때는 그림의 Original Output과 같이 정상적으로 딥페이크 결과물이 생성되는 것을 확인할 수 있다.&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;926&quot; data-origin-height=&quot;360&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xTSuo/btsJSpIbbXy/0qj6ZxTZ5CIXhPQrLKClV0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xTSuo/btsJSpIbbXy/0qj6ZxTZ5CIXhPQrLKClV0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xTSuo/btsJSpIbbXy/0qj6ZxTZ5CIXhPQrLKClV0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxTSuo%2FbtsJSpIbbXy%2F0qj6ZxTZ5CIXhPQrLKClV0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;926&quot; height=&quot;360&quot; data-origin-width=&quot;926&quot; data-origin-height=&quot;360&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;그런데 Disruption(일종의 noise)를 원본 이미지에 삽입하면, 사람 눈으로 보기에는 원본 이미지와 동일하지만 딥페이크를 진행한 결과물을 보면 거의 사람의 형체를 알아볼 수 없는 결과물이 생성되는 것을 확인할 수 있다.&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. Contribution&lt;/b&gt;&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;본 논문의 공헌은 크게 4가지로 정리할 수 있다.&lt;/p&gt;&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;&lt;li&gt;이미지 변환 모델에 적대적 공격 방법들을 적용함으로써 딥페이크를 방해하기 위한 베이스라인을 제안했다.&lt;/li&gt;&lt;li&gt;조건부 이미지 변환 모델들의 disruption을 다루고, 하나의 조건화된 클래스로부터 다른 클래스로 전이되는 새로운 방해 방법을 제안하고 평가했다.&lt;/li&gt;&lt;li&gt;최초로 생성형 적대적 네트워크를 위한 적대적 훈련을 제안하고 평가했다.&lt;/li&gt;&lt;li&gt;그레이박스 시나리오에서 블러 방어를 회피할 수 있는 새로운 확산 스펙트럼 방해를 제안했다.&lt;/li&gt;&lt;/ol&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. Method&lt;/b&gt;&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;Method 파트는 이미지 변환 방해 그리고 조건부 이미지 변환 방해, 다음으로 GAN 적대적 훈련, 마지막으로 블러 방어의 확산 스펙트럼 회피와 같이 총 4가지의 하위 섹션으로 구성된다.&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3.1. 이미지 변환 방해&lt;/b&gt;&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;적대적 예제를 만드는 이전 연구들과 마찬가지로 이 연구에서는 disruption을 만들기 위해 아래와 같이 사람 눈으로는 식별할 수 없는 작은 노이즈(perturbation) η를 원본 이미지 x에 삽입하여 disrupted image x~(x tilda)를 생성한다. 수식으로는 다음과 같다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;592&quot; data-origin-height=&quot;121&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/duyJph/btsJSm5SRob/7KNIX1j4tfEjXi9YrJFPz1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/duyJph/btsJSm5SRob/7KNIX1j4tfEjXi9YrJFPz1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/duyJph/btsJSm5SRob/7KNIX1j4tfEjXi9YrJFPz1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FduyJph%2FbtsJSm5SRob%2F7KNIX1j4tfEjXi9YrJFPz1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;592&quot; height=&quot;121&quot; data-origin-width=&quot;592&quot; data-origin-height=&quot;121&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;이때, 노이즈 η를 만들기 위해 본 논문에서는 이전의 연구들 중 FGSM과 I-FGSM을 사용했다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1042&quot; data-origin-height=&quot;186&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b6NeKu/btsJSHhyQ6M/NiXuiZQCwXAHqsJ1kTerDk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b6NeKu/btsJSHhyQ6M/NiXuiZQCwXAHqsJ1kTerDk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b6NeKu/btsJSHhyQ6M/NiXuiZQCwXAHqsJ1kTerDk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb6NeKu%2FbtsJSHhyQ6M%2FNiXuiZQCwXAHqsJ1kTerDk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1042&quot; height=&quot;186&quot; data-origin-width=&quot;1042&quot; data-origin-height=&quot;186&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;FGSM은 첫번째 수식과 같이 모델의 손실 함수 L에 대한 그레이디언트를 구하고 그 그레이디언트의 부호에 1을 곱한 값을 ε만큼 곱하여 노이즈를 생성한다.&lt;br&gt;I-FGSM에서 I는 Iterable을 뜻하고, FGSM을 α-step만큼 반복하여 원본 이미지에 노이즈를 점진적으로 추가하여 더 강력한 적대적 예제를 생성한다. 단, ε의 범위를 벗어나면 클리핑하도록 하여 제약 조건 범위 안에서의 최대 크기의 노이즈를 생성하도록 한다.&lt;br&gt;&amp;nbsp;&lt;br&gt;G를 이미지 변환을 위한 GAN의 생성자라고 하고 y와 y~를 각각 x와 x~를 통해 만들어진 변환된 결과 이미지라고 하면 수식으로는 다음과 나타낼 수 있다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1149&quot; data-origin-height=&quot;110&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/o0WRA/btsJS5I7hjh/lHZ3donJCQ0iSppB2kvNi0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/o0WRA/btsJS5I7hjh/lHZ3donJCQ0iSppB2kvNi0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/o0WRA/btsJS5I7hjh/lHZ3donJCQ0iSppB2kvNi0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fo0WRA%2FbtsJS5I7hjh%2FlHZ3donJCQ0iSppB2kvNi0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1149&quot; height=&quot;110&quot; data-origin-width=&quot;1149&quot; data-origin-height=&quot;110&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;이 논문에서는 위 수식에서 네모 박스 표시한 수식과 같이 눈에 띄는 손상이 발생하여 사람이 봤을 때 이미지가 변경되었다는 것을 알아차리고 이미지에 대해 불신하게 될 때 공격이 성공적이라고 간주한다.&lt;br&gt;&amp;nbsp;&lt;br&gt;또한, 이전의 적대적 공격에 대한 연구에서는 L0, L2 그리고 L-infinity distance metrics을 사용하여 최대한 적은 왜곡을 보이는 공격에 초점을 맞췄지만 본 논문에서는 참조 이미지 r에 대해 출력 왜곡을 최대화하여 잘못된 이미지를 만드는 것을 목표로 한다. 이를 위한 수식은 다음과 같다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;779&quot; data-origin-height=&quot;321&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/O7KjU/btsJRQzGoXQ/i29fvpFCmN1hK2Afib12Q0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/O7KjU/btsJRQzGoXQ/i29fvpFCmN1hK2Afib12Q0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/O7KjU/btsJRQzGoXQ/i29fvpFCmN1hK2Afib12Q0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FO7KjU%2FbtsJRQzGoXQ%2Fi29fvpFCmN1hK2Afib12Q0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;779&quot; height=&quot;321&quot; data-origin-width=&quot;779&quot; data-origin-height=&quot;321&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;위 수식을 살펴보면, 2가지 케이스로 나뉘어 수식을 정의했다. 이때, r은 ground-truth 역할을 하는 정상적으로 잘 변환된 이미지로 r = G(x)이다.&lt;br&gt;&amp;nbsp;&lt;br&gt;첫 번째 수식부터 확인해보면, 적대적 예제인 G(x + η)와 r 간의 손실함수 값이 최대가 되는 η를 찾는 것이다. 단, 이때 L-infinity norm을 적용하여 ε보다 작은 최대 크기의 η를 찾도록 한다.&lt;br&gt;&amp;nbsp;&lt;br&gt;다음으로, 두 번째 수식은 targeted disruption에 관한 수식으로, r이 첫 번째 수식과 같이 정상적으로 만들어진 이미지일 수도 있으나 이미 잘못된 결과를 만들어 두고 이와 같은 결과를 유도할 수도 있는데 이에 관한 수식이다. 이 수식 또한 L-infinity norm을 적용하여 ε보다 작은 최대 크기의 η를 찾는데, 첫 번째 수식과는 반대로 적대적 예제인 G(x + η)와 r 간의 손실함수 값이 최소가 되는 η를 생성하여 최대한 이미 왜곡이 심하게 진행되어 있는 참조 이미지 r과 최대한 흡사한 결과가 출력될 수 있는 노이즈를 찾는 것이다.&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3.2. 조건부 이미지 변환 방해&lt;/b&gt;&lt;/h4&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;795&quot; data-origin-height=&quot;156&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ev2gU0/btsJSJffeAC/E4oRS5Dkq4JQrCVNe2ncgk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ev2gU0/btsJSJffeAC/E4oRS5Dkq4JQrCVNe2ncgk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ev2gU0/btsJSJffeAC/E4oRS5Dkq4JQrCVNe2ncgk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fev2gU0%2FbtsJSJffeAC%2FE4oRS5Dkq4JQrCVNe2ncgk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;795&quot; height=&quot;156&quot; data-origin-width=&quot;795&quot; data-origin-height=&quot;156&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;본 논문에서는 많은 이미지 변환 시스템의 경우 입력 이미지뿐만 아니라 대상 클래스에 대해서도 조건화과 된다고 하며, y = G(x, c)와 같이 나타낼 수 있다고 한다. 이때 x는 입력 이미지이고, c는 대상 클래스, y는 출력 이미지를 뜻한다고 한다.&lt;br&gt;대상 클래스에 대해서는 예시로 쉽게 설명해뒀는데, '금발', '갈색 머리'와 같은 데이터셋의 속성이 될 수 있다고 한다.&lt;br&gt;&amp;nbsp;&lt;br&gt;즉, 어떤 이미지가 주어졌을 때, 성별을 변환하거나 표정을 변환하는 방법들을 통틀어서 조건부 이미지 변환(conditional image translation)이라고 하고 본 논문에서는 이에 대한 방해 방법을 다음과 같이 제안했다.&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;808&quot; data-origin-height=&quot;256&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dffxax/btsJRbxwnMf/MtCqfVJ6TJcKplXtatdkn1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dffxax/btsJRbxwnMf/MtCqfVJ6TJcKplXtatdkn1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dffxax/btsJRbxwnMf/MtCqfVJ6TJcKplXtatdkn1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdffxax%2FbtsJRbxwnMf%2FMtCqfVJ6TJcKplXtatdkn1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;808&quot; height=&quot;256&quot; data-origin-width=&quot;808&quot; data-origin-height=&quot;256&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;내용을 보면 특정한 조건에 대해서만 방해가 되는 것이 아닌 여러 클래스에 대해 동일하게 보장되는 즉, 클래스 전이 가능한 방해를 찾기 위한 수식을 제안함을 확인할 수 있다. 그 이유는 일반적인 적대적 공격을 진행하면 특정 클래스에 대해서만 방해 효과를 갖게 되는데, 특정 얼굴 표정의 변화와 같은 특정 조건이 아닌 다양한 일반적인 조건에 대해서도 공격이 가능해야 실제 딥페이크 예방에 효과적이기 때문이다.&lt;br&gt;&amp;nbsp;&lt;br&gt;그래서 수식 (7)을 보면 클래스 전이 가능한 방해에 대해 기댓값 표현인 E를 표현해서 나타낸 것을 확인할 수 있다. 이전과 마찬가지로 L-infinity norm을 적용하여 η가 ε보다 커지지 않도록 제약 조건을 두고, G(x + η, c)와 r 사이의 손실 함수의 결과의 평균이 최소화 되는 η를 찾아 다양한 조건 c(e.g., 얼굴 표정, 성별, 나이)에 대해서 변환을 잘 망가뜨릴 수 있는 가장 효과적인 노이즈 η를 찾는 최적화 수식이다.&lt;br&gt;그리고 본 논문에서는 수식 (8)과 같이 수식(7)을 실제로 계산하기 위해 시그마 기호를 활용하여 다양한 조건 c에 대해 모든 조건 c에 대한 손실을 합산하여 &lt;span style=&quot;color: #333333;&quot;&gt;가장 효과적인 노이즈&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;&lt;/span&gt;η를 찾는 최적화 수식으로 바꿔서 제안했다.&lt;br&gt;&amp;nbsp;&lt;br&gt;위에서 제안한 최적화 문제를 해결하기 위해서 본 논문에서는 Iterative Class Transferable Disruption과 Joint Class Transferable Disruption이라는 두 가지의 새로운 방해 방법을 제안했다.&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1141&quot; data-origin-height=&quot;446&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QrpkD/btsJTB1YC0f/5bUHUBDR0Sy3ddUjMOqxO0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QrpkD/btsJTB1YC0f/5bUHUBDR0Sy3ddUjMOqxO0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QrpkD/btsJTB1YC0f/5bUHUBDR0Sy3ddUjMOqxO0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQrpkD%2FbtsJTB1YC0f%2F5bUHUBDR0Sy3ddUjMOqxO0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1141&quot; height=&quot;446&quot; data-origin-width=&quot;1141&quot; data-origin-height=&quot;446&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;첫 번째 방법인 Iterative Class Transferable Disruption은 앞서 제안한 최적화 문제를 반복적인 방식으로 해결하는 방법이다.&lt;br&gt;I-FGSM처럼 여러 번의 반복(iteration)을 통해 적대적 노이즈 η를 점진적으로 업데이트하는 방식이다. 각 반복 단계마다 손실 함수 L(G(x + η), r)의 그레이디언트를 계산하고, 이를 이용하여 η를 조금씩 조정하면서 최적의 η를 찾아낼 수 있다. 이를 통해 다양한 클래스 조건 c에 대해 효과적인 노이즈를 생성할 수 있고, 여러 조건에 대해 전이 가능한 방해 효과를 얻을 수 있다.&lt;br&gt;&amp;nbsp;&lt;br&gt;두 번째 방법인 Joint Class Transferable Disruption은 첫 번째 방법과는 다르게 모든 조건 c에 대해 동시에 최적화하는 방법이다. 점진적으로 반복하며 모든 조건에 대한 손실을 한꺼번에 고려하여 노이즈 η를 업데이트한다. 이를 위해 각 조건 c에 대한 손실을 합산한 뒤 그 총합을 기반으로 η를 조정한다.&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3.3. GAN 적대적 훈련&lt;/b&gt;&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로는 이러한 공격을 방어하기 위한 Defense 기법 중 하나인 적대적 훈련을 GAN에 적용하는 내용에 관한 설명이다.&lt;br&gt;적대적 훈련은 일반적으로 분류 모델에 대한 적대적 공격을 막는 방법으로, 트레이닝 데이터셋에 적대적 예제를 포함시켜 함께 훈련을 진행하면 적대적 공격에 강건(robust)한 모델을 구축할 수 있다.&lt;br&gt;본 논문에서는 이를 활용하여 생성형 적대적 신경망에 적대적 훈련을 적용한 첫 번째 적용을 제안한다.&lt;br&gt;이를 위해선 GAN의 학습 과정과 각각의 손실 함수에 대해 먼저 알아야 한다.&lt;br&gt;&amp;nbsp;&lt;br&gt;먼저 GAN의 학습과정은 다음과 같다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;827&quot; data-origin-height=&quot;259&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cj5up0/btsJRYdgDoo/kGAMZH2OLbsjiOk3HEB7T1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cj5up0/btsJRYdgDoo/kGAMZH2OLbsjiOk3HEB7T1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cj5up0/btsJRYdgDoo/kGAMZH2OLbsjiOk3HEB7T1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcj5up0%2FbtsJRYdgDoo%2FkGAMZH2OLbsjiOk3HEB7T1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;827&quot; height=&quot;259&quot; data-origin-width=&quot;827&quot; data-origin-height=&quot;259&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Generative Adversarial Network(GAN)는 위와 같이 두 가지 신경망인 생성자(Generator, G)와 판별자(Discriminator, D)가 서로 경쟁적으로 학습하는 구조를 갖고 있다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;639&quot; data-origin-height=&quot;286&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bRBl2j/btsJSFxdK9Z/jrZ3pVdQhC5Gw2khUKANj1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bRBl2j/btsJSFxdK9Z/jrZ3pVdQhC5Gw2khUKANj1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bRBl2j/btsJSFxdK9Z/jrZ3pVdQhC5Gw2khUKANj1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbRBl2j%2FbtsJSFxdK9Z%2FjrZ3pVdQhC5Gw2khUKANj1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;639&quot; height=&quot;286&quot; data-origin-width=&quot;639&quot; data-origin-height=&quot;286&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;생성자 G는 랜덤한 노이즈 벡터 z를 입력으로 받아 가짜 이미지 G(x)를 생성한다. 생성자의 목표는 판별자가 진짜라고 판단하도록 최대한 진짜와 유사한 이미지를 생성하는 것이다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;622&quot; data-origin-height=&quot;374&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GHYsh/btsJROu79DU/FSJX2kiz4aMwZjRUKJSCi1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GHYsh/btsJROu79DU/FSJX2kiz4aMwZjRUKJSCi1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GHYsh/btsJROu79DU/FSJX2kiz4aMwZjRUKJSCi1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGHYsh%2FbtsJROu79DU%2FFSJX2kiz4aMwZjRUKJSCi1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;622&quot; height=&quot;374&quot; data-origin-width=&quot;622&quot; data-origin-height=&quot;374&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;판별자 D는 진짜 이미지와 가짜 이미지를 입력으로 받아, 해당 이미지가 진짜(real)인지 가짜(fake)인지 구분하는 역할을 한다. 즉 판별자 D는 진짜 이미지를 1에 가깝게, 가짜 이미지를 0에 가깝게 분류하는 것이 목표이다.&lt;br&gt;&amp;nbsp;&lt;br&gt;이제 GAN 모델의 손실함수를 살펴보자.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;892&quot; data-origin-height=&quot;295&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/npOUJ/btsJTDeqdtb/7G2KXgHKWuHL2wUDgTH6ik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/npOUJ/btsJTDeqdtb/7G2KXgHKWuHL2wUDgTH6ik/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/npOUJ/btsJTDeqdtb/7G2KXgHKWuHL2wUDgTH6ik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnpOUJ%2FbtsJTDeqdtb%2F7G2KXgHKWuHL2wUDgTH6ik%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;892&quot; height=&quot;295&quot; data-origin-width=&quot;892&quot; data-origin-height=&quot;295&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;GAN의 전체적인 목적은 위와 같은 손실함수로 표현된다. 앞 부분의 E[log(D(x))]는 진짜 데이터 x에 대해 판별자 D가 진짜로 판별하도록 학습하는 부분이고 뒷 부분의 E[log(1 - D(G(z)))]는 가짜 데이터 G(z)에 대해 판별자 D가 가짜로 판별하도록 학습하는 항목이다. 이 과정에서 판별자 D는 진짜 이미지를 진짜로, 가짜 이미지를 가짜로 정확하게 구분할 수 있도록 최적화 되고, 동시에 생성자 G는 판별자가 가짜 이미지를 진짜라고 오분류하도록 최적화된다.&lt;br&gt;&amp;nbsp;&lt;br&gt;기댓값으로 표현한 수식을 수학적으로 표현하여 판별자와 생성자의 손실 함수를 나타내면 아래와 같다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;654&quot; data-origin-height=&quot;306&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cci75Z/btsJRw2vuA9/iFhBiyFUJ1HyE1KeoyoooK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cci75Z/btsJRw2vuA9/iFhBiyFUJ1HyE1KeoyoooK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cci75Z/btsJRw2vuA9/iFhBiyFUJ1HyE1KeoyoooK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcci75Z%2FbtsJRw2vuA9%2FiFhBiyFUJ1HyE1KeoyoooK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;654&quot; height=&quot;306&quot; data-origin-width=&quot;654&quot; data-origin-height=&quot;306&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;683&quot; data-origin-height=&quot;303&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b0iERT/btsJSLEciSV/Kl7bEePEooNmYG6MWU7Tkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b0iERT/btsJSLEciSV/Kl7bEePEooNmYG6MWU7Tkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b0iERT/btsJSLEciSV/Kl7bEePEooNmYG6MWU7Tkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb0iERT%2FbtsJSLEciSV%2FKl7bEePEooNmYG6MWU7Tkk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;683&quot; height=&quot;303&quot; data-origin-width=&quot;683&quot; data-origin-height=&quot;303&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;이제 본격적으로 본 논문에서 제안하는 GAN을 위한 적대적 훈련에 대해 살펴보자.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;871&quot; data-origin-height=&quot;291&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wIthy/btsJTfZbIPG/eR3kTfuZqNnKjEYwrDT1CK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wIthy/btsJTfZbIPG/eR3kTfuZqNnKjEYwrDT1CK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wIthy/btsJTfZbIPG/eR3kTfuZqNnKjEYwrDT1CK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwIthy%2FbtsJTfZbIPG%2FeR3kTfuZqNnKjEYwrDT1CK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;871&quot; height=&quot;291&quot; data-origin-width=&quot;871&quot; data-origin-height=&quot;291&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;본 논문에서는 조건부 이미지 변환 GAN에서 수식 (11)과 같은 손실 함수를 사용한다고 하였다. 이때, D는 판별자를 나타낸다.&lt;br&gt;먼저, E[logD(x)]는 진짜 이미지 x에 대해서 판별자 D가 진짜로 인식하도록 하는 손실 항목이다.&amp;nbsp;&lt;br&gt;다음으로 E[log(1 - D(G(x, c)))]는 생성자 G가 조건 c를 기반으로 만든 가짜 이미지 G(x, c)에 대해, 판별자가 가짜로 인식하도록 하는 손실 항목이다.&lt;br&gt;본 논문에서는 생성자가 적대적 예제에 대한 저항성을 갖도록 하기 위해 수식 (12)와 같이 기존의 판별자 손실 함수를 변형하여 생성자 손실 함수 부분에 노이즈 η를 포함하여 함께 학습하도록 진행하였다.&lt;br&gt;&amp;nbsp;&lt;br&gt;또한, 본 논문에서는 아래와 같이 생성자와 판별자 손실 각각에 대해서 노이즈를 삽입하여 각각 적대적 훈련을 진행하는 방법도 수식 (13)과 같이 제안하였다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;880&quot; data-origin-height=&quot;171&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bTN7Ju/btsJRCBv5uX/b8gbsUdMOlkhZkqbBlaWK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bTN7Ju/btsJRCBv5uX/b8gbsUdMOlkhZkqbBlaWK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bTN7Ju/btsJRCBv5uX/b8gbsUdMOlkhZkqbBlaWK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbTN7Ju%2FbtsJRCBv5uX%2Fb8gbsUdMOlkhZkqbBlaWK1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;880&quot; height=&quot;171&quot; data-origin-width=&quot;880&quot; data-origin-height=&quot;171&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 수식은, 진짜 이미지 x에 대해서도 노이즈 η1을 추가하여 판별자 D가 해당 이미지를 진짜로 판별하도록 훈련하도록 하며, 생성자 G에 대해서는 조건 c에 따라 노이즈 η2가 추가된 입력 이미지 x를 기반으로 생성한 가짜 이미지에 또 다른 노이즈인 η3을 추가하여 최종적으로 G(x + η2, c) + η3을 판별자 D에 입력하여 이렇게 여러 노이즈가 추가된 가짜 이미지를 가짜로 인식하도록 훈련을 진행한다.&lt;br&gt;정리하면, 수식 (13)의 앞 부분은 노이즈 η를 가진 진짜 이미지를 판별자가 진짜로 인식하도록 하는 부분이고, 뒷 부분은 η를 가진 가짜 이미지를 판별자가 가짜로 인식하도록 훈련하는 부분이다. 이와 같은 과정을 통해 생성자 G와 판별자 D는 적대적 공격에 더욱 robust 해질 수 있다.&lt;br&gt;&amp;nbsp;&lt;br&gt;---&lt;br&gt;이후 파트부터 추후 작성&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3.4. 블러 방어의 확산 스펙트럼 회피&lt;/b&gt;&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;4. Experiment&lt;/b&gt;&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;실험 모델 아키텍처 및 데이터셋 설명&lt;/b&gt;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;4.1. 이미지 변환 방해&lt;/b&gt;&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;4.2. 클래스 전이 가능한 적대적 방해&lt;/b&gt;&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;4.3. GAN 모델의 적대적 훈련 및 기타 방어&lt;/b&gt;&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;4.4. 블러 방어의 확산 스펙트럼 회피&lt;/b&gt;&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;5. Conclusion&lt;/b&gt;&lt;/h3&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Paper</category>
      <category>advdiff</category>
      <category>advgan</category>
      <category>Diffusion</category>
      <category>gan</category>
      <category>딥페이크</category>
      <category>딥페이크 방지</category>
      <category>딥페이크 블러</category>
      <category>딥페이크 쉴드</category>
      <category>딥페이크 예방</category>
      <category>적대적 예제</category>
      <author>PSLeon</author>
      <guid isPermaLink="true">https://psleon.tistory.com/247</guid>
      <comments>https://psleon.tistory.com/247#entry247comment</comments>
      <pubDate>Tue, 1 Oct 2024 20:22:16 +0900</pubDate>
    </item>
    <item>
      <title>[ROS2 튜토리얼] 1. 환경 구성</title>
      <link>https://psleon.tistory.com/251</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;What is ROS?&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ROS is an open-source, meta-operating system for your robot. It provides the services you would expect from an operating system, including hardware abstraction, low-level device control, implementation of commonly-used functionality, message-passing between processes, and package management. It also provides tools and libraries for obtaining, building, writing, and running code across multiple computers.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ROS란 무엇일까? ROS Wiki에서는 위와 같이 ROS에 대해서 설명한다. 이를 해석하면 아래와 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ROS는 로봇 개발을 위한 오픈 소스 메타 운영체제이다. 이는 운영체제로부터 예측할 수 있는 서비스와 하드웨어 추상화, 저수준의 디바이스 제어, 일반적으로 사용되는 기능 구현, 프로세스 간의 메시지 전달 그리고 패키지 관리를 제공한다. 또한 여러 컴퓨터들로부터 코드를 얻고, 구축하고, 쓰고, 실행할 수 있는 툴과 라이브러리를 제공한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;공학 관련 수업을 이수한 경험이 있으면 위 설명이 직관적으로 와닿는다. 그럼에도 한가지 의문점은 메타 운영체제(meta-operating system)이다. 메타 운영체제란 무엇일까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;메타 운영체제&lt;/b&gt;: 실제&amp;nbsp;하드웨어를&amp;nbsp;직접&amp;nbsp;제어하거나&amp;nbsp;관리하지는&amp;nbsp;않지만&amp;nbsp;그&amp;nbsp;위에서&amp;nbsp;동작하는&amp;nbsp;다양한&amp;nbsp;시스템이나&amp;nbsp;애플리케이션에&amp;nbsp;운영체제&amp;nbsp;수준의&amp;nbsp;서비스를&amp;nbsp;제공하는&amp;nbsp;소프트웨어&amp;nbsp;플랫폼&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;ROS 2 Foxy 설치&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번에 기회가 되어 ROS 2(Robot Operating System 2)를 스터디하게 되었는데, 공부하면서 정리도 할 겸 Chapter별로 기록해서 차후에 ROS를 공부하게 될 분들에게 조금이나마 도움이 되고자 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;필자의 개발 환경은 Ubuntu 20.04이고 해당 환경에서는 ROS2 - Foxy가 가장 호환이 잘되기 때문에 이를 기준으로 진행한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ROS 2 Foxy 설치를 위해서는 아래 사이트를 참고하자.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.ros.org/en/foxy/Installation/Ubuntu-Install-Debians.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.ros.org/en/foxy/Installation/Ubuntu-Install-Debians.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최종적으로 설치가 끝나고 ros2 run demo_nodes_cpp talker를 타이핑 했을 때 아래와 같이 출력된다면 정상 설치가 완료된 것이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;ROS2설치완.png&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;188&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/C8Cu0/btsJSr0ao7i/yJI2YriAf3H1BE2Kw8GVOK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/C8Cu0/btsJSr0ao7i/yJI2YriAf3H1BE2Kw8GVOK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/C8Cu0/btsJSr0ao7i/yJI2YriAf3H1BE2Kw8GVOK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FC8Cu0%2FbtsJSr0ao7i%2FyJI2YriAf3H1BE2Kw8GVOK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1000&quot; height=&quot;188&quot; data-filename=&quot;ROS2설치완.png&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;188&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;[ROS2 튜토리얼] 1. 환경 구성&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금부터 본격적으로 공식 문서 중 Beginner part의 첫 번째인 'Beginner: CLI tools, 1. Configuring environment' 부터 진행해보자. 본 스터디를 위해 활용한 공식 문서 링크는 다음과 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.ros.org/en/foxy/Tutorials/Beginner-CLI-Tools/Configuring-ROS2-Environment.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.ros.org/en/foxy/Tutorials/Beginner-CLI-Tools/Configuring-ROS2-Environment.html&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;본 문서를 보면 Background, Prerequisites, Tasks, Summary 순으로 정리되어 있고, 이 순서를 참고해서 필요없는 부분을 생략하고 중요한 부분 위주로 정리하고자 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. Background&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Ros 2는 Shell 환경을 사용한 워크스페이스(workspace)를 결합하는 개념에 의존한다고 되어있다. 이렇게 함으로써 Foxy 뿐만 아니라 다양한 버전과의 호환도 가능해지고 다양한 패키지 세트에 대해 개발도 더 쉬워진다고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 내용을 읽으면 워크스페이스를 결합한다는 말이 잘 와닿지 않는다. 그래서 풀어서 설명하면 워크스페이스란 ROS 2에서 개발하는 패키지들이 저장되는 디렉토리이고, 이를 결합한다는 것은 이러한 여러 개의 워크스페이스를 동시에 사용하고, 각 워크스페이스에 있는 패키지들이 서로 상호작용할 수 있도록 설정하는 것을 뜻한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 각각 용어를 간단히 정리하고 넘어가자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;워크스페이스(workspace): ROS 2에서 개발하는 패키지들이 저장되는&amp;nbsp;하나의 독립적인 디렉토리, 언더레이와 오버레이의 역할 수행 가능&lt;/li&gt;
&lt;li&gt;언더레이(underlay): ROS 2의 기본 작업공간으로, ROS 2를 설치하면 제공되는 핵심 패키지들이 포함되어 있음&lt;/li&gt;
&lt;li&gt;오버레이(overlay): 사용자가 새로 만들거나 수정하는 작업공간으로, 언더레이 위에 쌓아 올리는 추가적인 작업공간&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;rarr; ROS 2 개발을 시작하면 언더레이 작업공간을 먼저 활성화하고, 그 위에 오버레이 작업공간을 활성화한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2. Tasks&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저, ROS 2에 접근하기 위해서는 새로운 셀을 열 때마다 아래 명령어를 입력해야 한다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;source&amp;nbsp;/opt/ros/foxy/setup.bash&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 이 과정이 귀찮다면 shell의 시작 스크립트에 바로 추가하는 방법도 있고, 이는 아래와 같다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;echo&amp;nbsp;&quot;source&amp;nbsp;/opt/ros/foxy/setup.bash&quot;&amp;nbsp;&amp;gt;&amp;gt;&amp;nbsp;~/.bashrc&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3. Summary&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;The&amp;nbsp;ROS&amp;nbsp;2&amp;nbsp;development&amp;nbsp;environment&amp;nbsp;needs&amp;nbsp;to&amp;nbsp;be&amp;nbsp;correctly&amp;nbsp;configured&amp;nbsp;before&amp;nbsp;use.&amp;nbsp;This&amp;nbsp;can&amp;nbsp;be&amp;nbsp;done&amp;nbsp;in&amp;nbsp;two&amp;nbsp;ways:&amp;nbsp;either&amp;nbsp;sourcing&amp;nbsp;the&amp;nbsp;setup&amp;nbsp;files&amp;nbsp;in&amp;nbsp;every&amp;nbsp;new&amp;nbsp;shell&amp;nbsp;you&amp;nbsp;open,&amp;nbsp;or&amp;nbsp;adding&amp;nbsp;the&amp;nbsp;source&amp;nbsp;command&amp;nbsp;to&amp;nbsp;your&amp;nbsp;startup&amp;nbsp;script.&lt;/li&gt;
&lt;li&gt;If&amp;nbsp;you&amp;nbsp;ever&amp;nbsp;face&amp;nbsp;any&amp;nbsp;problems&amp;nbsp;locating&amp;nbsp;or&amp;nbsp;using&amp;nbsp;packages&amp;nbsp;with&amp;nbsp;ROS&amp;nbsp;2,&amp;nbsp;the&amp;nbsp;first&amp;nbsp;thing&amp;nbsp;you&amp;nbsp;should&amp;nbsp;do&amp;nbsp;is&amp;nbsp;check&amp;nbsp;your&amp;nbsp;environment&amp;nbsp;variables&amp;nbsp;and&amp;nbsp;ensure&amp;nbsp;they&amp;nbsp;are&amp;nbsp;set&amp;nbsp;to&amp;nbsp;the&amp;nbsp;version&amp;nbsp;and&amp;nbsp;distro&amp;nbsp;you&amp;nbsp;intended.&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>ROS2</category>
      <category>Ros</category>
      <category>ros 2</category>
      <category>ROS2</category>
      <category>ros2 foxy</category>
      <category>ros2 설치</category>
      <category>로봇 프로그래밍</category>
      <category>자율주행</category>
      <author>PSLeon</author>
      <guid isPermaLink="true">https://psleon.tistory.com/251</guid>
      <comments>https://psleon.tistory.com/251#entry251comment</comments>
      <pubDate>Tue, 1 Oct 2024 17:08:49 +0900</pubDate>
    </item>
    <item>
      <title>[Statistics] 이산확률분포 - 베르누이 분포, 이항분포</title>
      <link>https://psleon.tistory.com/249</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;이산확률분포 - 베르누이 분포, 이항분포(Bernoulli Distribution, Binomial Distribution)&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;깃허브 연습코드 링크&lt;/b&gt;: &lt;a href=&quot;https://github.com/PSLeon24/Mathematical_Statistics/blob/main/Probability_Distribution/%EB%B2%A0%EB%A5%B4%EB%88%84%EC%9D%B4%20%EB%B6%84%ED%8F%AC.ipynb&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/PSLeon24/Mathematical_Statistics/blob/main/Probability_Distribution/%EB%B2%A0%EB%A5%B4%EB%88%84%EC%9D%B4%20%EB%B6%84%ED%8F%AC.ipynb&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 포스팅에서는 이산확률분포 중에서 베르누이 분포와 이항분포를 알아보고자 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저, 이산확률분포가 무엇인지에 대한 개념을 정립하고 시작하자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;확률분포는 크게 2가지 카테고리로 분류할 수 있는데, 첫째는 이산확률분포(discrete probability distribution)이고 둘째는 연속확률분포(continuous probability distribution)이다. 이 둘의 차이를 가장 잘 나타내는 그림은 다음과 같다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;314&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8vPpw/btsJRZvHbyf/SUPTUwUoXAWVSZiFaZWl30/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8vPpw/btsJRZvHbyf/SUPTUwUoXAWVSZiFaZWl30/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8vPpw/btsJRZvHbyf/SUPTUwUoXAWVSZiFaZWl30/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8vPpw%2FbtsJRZvHbyf%2FSUPTUwUoXAWVSZiFaZWl30%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;314&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;314&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저, 이산확률분포는 가능한 결과가 특정한 유한 또는 계산할 수 있는 무한집합을 가지는 확률분포로써 주로 정수값을 가진다. 쉽게 말하면, 특정 범위 내에서 정확한 값으로만 가질 수 있는 확률분포인 것이다. 예를 들면, 주사위를 던졌을 때 나오는 값과 같은 경우는 1~6까지 이산적인 값을 가지고, 또한 동전의 앞면을 1, 뒷면을 0이라고 하면 이 또한 이산적인 값을 가진다고 볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대표적인 이산확률분포의 종류로는 베르누이 분포, 이항분포, 초기하분포, 포아송분포, 기하분포, 음이항분포, 다항분포 등이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이산확률분포의 함수는 확률질량함수(pmf: probability mass function)라고 부른다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로, 연속확률분포는 가능한 값이 연속적인 구간을 가지며, 주로 실수형 값을 가진다. 예를 들어, 사람의 키, 몸무게, 온도 등 실수형 값을 갖는 확률분포가 바로 연속확률분포인 것이다. 대표적인 연속확률분포의 종류로는 정규분포, 표준정규분포 등이 있다. 연속확률분포의 함수는 확률밀도함수(pdf: probability density function)라고 부른다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금부터 다룰 내용은 이산확률분포 중 가장 기초가 되는 베르누이 분포에 대해서 알아보고자 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;베르누이 분포(Bernoulli Distribution)&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;베르누이 분포는 성공 확률이 일정한 1회의 시행(단일 시행)에서 나오는 확률분포로써 결과가 성공 또는 실패(다른 관점에서는 1 또는 0)과 같이 결과가 2가지의 경우만을 갖는 경우의 확률분포를 뜻한다. 이때, 성공 확률은 p로 나타내고 실패 확률은 1-p로 나타낸다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;베르누이 분포의 확률질량함수(pmf)는 다음과 같이 나타낼 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;685&quot; data-origin-height=&quot;241&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dScgPI/btsJSrynlXY/dKUKIS6gk9exQpjF6RRxh1/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dScgPI/btsJSrynlXY/dKUKIS6gk9exQpjF6RRxh1/img.webp&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dScgPI/btsJSrynlXY/dKUKIS6gk9exQpjF6RRxh1/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdScgPI%2FbtsJSrynlXY%2FdKUKIS6gk9exQpjF6RRxh1%2Fimg.webp&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;685&quot; height=&quot;241&quot; data-origin-width=&quot;685&quot; data-origin-height=&quot;241&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 식을 다시 설명하면, k=1일 때(성공할 확률)는 p이고, k=0일 때(실패할 확률)는 1-p인 q이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;베르누이 분포의 기댓값인 평균과 분산은 각각 다음과 같다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;E(X) = p&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Var(X) = p(1-p)&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;베르누이 분포는 scipy의 stats 라이브러리의 bernoulli를 import해서 사용하면 파이썬 코드를 통해 시뮬레이션 할 수 있는데, 예를 들어 성공확률 p가 0.6인 경우 1000개의 샘플을 생성하여 성공과 실패의 확률을 히스토그램으로 시각화하면 다음과 같은 결과를 확인할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;603&quot; data-origin-height=&quot;507&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bkwbLy/btsJRYXU5pY/cX6TSVGhA12RIOsrKqg48k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bkwbLy/btsJRYXU5pY/cX6TSVGhA12RIOsrKqg48k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bkwbLy/btsJRYXU5pY/cX6TSVGhA12RIOsrKqg48k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbkwbLy%2FbtsJRYXU5pY%2FcX6TSVGhA12RIOsrKqg48k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;603&quot; height=&quot;507&quot; data-origin-width=&quot;603&quot; data-origin-height=&quot;507&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;베르누이 분포의 기댓값은 p이므로 E(X)= p = 0.6이고 분산은 Var(X) = p(1-p) = 0.6 x 0.4 =&amp;nbsp;0.24이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결과를 보면 샘플로부터의 평균은 0.63, 분산은 0.23으로 이론적으로 계산했던 값과 거의 동일하다는 것을 확인할 수 있고, 시각화 결과를 보더라도 1(성공 확률)의 비율이 약 60%를 차지한다는 것을 확인할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;이항분포(Binomial Distribution)&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이항분포는 베르누이 분포와 매우 밀접한 관계가 있는 분포이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이항분포란 성공 확률이 일정한 n회의 시행(다중 시행)에서 나오는 확률분포이며, X는 이항분포를 따른다라는 표현으로 X~B(n, p)로 표기한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이항분포의 확률질량함수(pmf)는 베르누이 분포의 확률질량함수와 매우 유사하며 조합(combination)을 사용해서 다음과 같이 나타낼 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;406&quot; data-origin-height=&quot;404&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CT0FE/btsJSfryJFI/W2laclgEt2sdKsF48jAEM0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CT0FE/btsJSfryJFI/W2laclgEt2sdKsF48jAEM0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CT0FE/btsJSfryJFI/W2laclgEt2sdKsF48jAEM0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCT0FE%2FbtsJSfryJFI%2FW2laclgEt2sdKsF48jAEM0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;406&quot; height=&quot;404&quot; data-origin-width=&quot;406&quot; data-origin-height=&quot;404&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이항분포의 기댓값인 평균과 분산은 각각 다음과 같다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;E(X) = np&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Var(X) = np(1-p)&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이항분포는 scipy의 stats 라이브러리의 binom을 import해서 사용하면 베르누이 분포를 시뮬레이션했던 것과 마찬가지로 파이썬 코드를 통해 시뮬레이션 할 수 있다. 아래 예시는 10번의 시행에서 각 시행의 성공 확률이 0.6인 이항분포의 시뮬레이션 결과이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;577&quot; data-origin-height=&quot;496&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sHsE1/btsJRPNzpzD/nFWVzAjA6xAvpGKiVnFUlK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sHsE1/btsJRPNzpzD/nFWVzAjA6xAvpGKiVnFUlK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sHsE1/btsJRPNzpzD/nFWVzAjA6xAvpGKiVnFUlK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsHsE1%2FbtsJRPNzpzD%2FnFWVzAjA6xAvpGKiVnFUlK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;577&quot; height=&quot;496&quot; data-origin-width=&quot;577&quot; data-origin-height=&quot;496&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이항분포의 기댓값은 np이므로 10 * 0.6 = 6이고 분산은 np(1-p)이므로 10*0.6*0.4=2.4이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실제 시뮬레이션 결과를 보면 이론적 계산 결과와 거의 동일함을 확인할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한, 실제 시각화 결과를 보더라도 성공 횟수가 6을 중심으로 분포되어 있고 0, 1, 10과 같은 극단적인 값은 상대적으로 적게 나타나는 것을 확인할 수 있고 정규분포와 흡사하게 종모양의 분포가 나타나는 것을 확인할 수 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;BCE(Binary Cross Entropy)와 베르누이 분포의 관계: 인공지능 관점의 해석&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘 학습한 베르누이 분포는 인공지능의 이진분류 문제에서 사용하는 손실함수인 Binary Corss Entropy(BCE)와 매우 깊은 연관관계를 갖는다. BCE는 인공지능 모델의 예측 확률 y^과 실제 레이블 y 사이의 차이를 측정하는 손실 함수로, 베르누이 분포에서 발생하는 데이터의 가능도(likelihood)를 최대화하는 것과 동일하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;BCE의 수식은 다음과 같다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;BCE(y, y^) = -(ylog(y^) + (1-y)log(1-y^)), 여기서 y는 실제 레이블(0 또는 1), y^은 모델이 예측한 클래스 1에 대한 확률이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가령, 고양이 이미지가 있는지 없는지 여부를 판별하는 모델이 있다고 가정했을 때, 모델이 80%의 confidence로 고양이가 있다고 예측했을 때, 실제 레이블이 1(고양이가 있음)이라고 가정하자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때 BCE 손실은 다음과 같이 계산된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;BCE Loss = -(1log(0.8) + (1-1)log(1-0.8)) = -log(0.8) = 0.22&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 모델의 예측이 정확할수록 BCE Loss 값은 작아지고 모델을 학습하며 이 loss를 최소화하는 방향으로 학습함으로써 모델이 더욱 정확하게 예측할 수 있게 된다.&lt;/p&gt;</description>
      <category>Mathematics/Statistics</category>
      <category>BCE</category>
      <category>독립시행</category>
      <category>베르누이 분포</category>
      <category>베르누이분포</category>
      <category>수리통계학</category>
      <category>이산확률분포</category>
      <category>이항분포</category>
      <category>통계</category>
      <category>확률</category>
      <category>확률과 통계</category>
      <author>PSLeon</author>
      <guid isPermaLink="true">https://psleon.tistory.com/249</guid>
      <comments>https://psleon.tistory.com/249#entry249comment</comments>
      <pubDate>Mon, 30 Sep 2024 15:28:46 +0900</pubDate>
    </item>
    <item>
      <title>[cs231n] 1. Image Classification Pipeline</title>
      <link>https://psleon.tistory.com/246</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;1. Image Classification Pipeline [cs231]&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;석사 1학기를 시작하며 &quot;비전 데이터 딥러닝&quot; 과목을 수강 신청하고 오늘 첫 수업을 다녀왔다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;본 강의의 base가 cs231n 강의라고 하여 방학동안 공부했던 내용들을 복습도 할 겸 처음부터 다시 강의를 들으며 블로그에 정리할 예정이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;본 강의는 YouTube에 무료로 공개되어 있고 강의 링크는 다음과 같다. 더보기란에 강의 슬라이드 링크도 포함되어 있으니 이를 활용하여 학습하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;강의 링크: &lt;a href=&quot;https://www.youtube.com/watch?v=OoUX-nOEjG0&amp;amp;list=PLC1qU-LWwrF64f4QKQT-Vg5Wr4qEE1Zxk&amp;amp;index=2&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.youtube.com/watch?v=OoUX-nOEjG0&amp;amp;list=PLC1qU-LWwrF64f4QKQT-Vg5Wr4qEE1Zxk&amp;amp;index=2&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=OoUX-nOEjG0&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/bxDTzv/hyWV6JLV1d/T6DKsiM1J9MlafaTxVTRok/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;Lecture 2 | Image Classification&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/OoUX-nOEjG0&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1강은 Introduction이기 때문에 생략하고 바로 2강부터 진행한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. Image Classification&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;이미지 분류&lt;/b&gt;: 컴퓨터 비전의 핵심적인 작업으로 input image가 어떤 category에 해당하는지 prediction하는 작업&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;795&quot; data-origin-height=&quot;342&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RFPlw/btsJqhqGb0W/NYP1GQbrwKFRqBepcWkup0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RFPlw/btsJqhqGb0W/NYP1GQbrwKFRqBepcWkup0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RFPlw/btsJqhqGb0W/NYP1GQbrwKFRqBepcWkup0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRFPlw%2FbtsJqhqGb0W%2FNYP1GQbrwKFRqBepcWkup0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;795&quot; height=&quot;342&quot; data-origin-width=&quot;795&quot; data-origin-height=&quot;342&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사람의 눈으로 봤을 때 위 이미지를 고양이로 분류하는 것은 너무나 쉽지만, 머신러닝(including deep learning)에서는 상당히 어려운 일이다. 그 이유는 아래와 같이 이미지 데이터는 0~255의 픽셀값으로 데이터가 구성되어 있기 때문이다. 즉 아래를 보면 800x600 pixel로 구성된 고양이 이미지는 R, G, B 각각의 채널에 대해 800 x 600 사이즈의 픽셀값이 포함되어 있는데 각 채널의 숫자들과 고양이는 의미적으로 관련이 없기 때문에 숫자만으로 cat으로 분류하는 것은 상당히 어려운 일이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;785&quot; data-origin-height=&quot;411&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cIEUDk/btsJqAKq1Ep/BIgRI6xfNabUUXLBMvxC51/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cIEUDk/btsJqAKq1Ep/BIgRI6xfNabUUXLBMvxC51/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cIEUDk/btsJqAKq1Ep/BIgRI6xfNabUUXLBMvxC51/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcIEUDk%2FbtsJqAKq1Ep%2FBIgRI6xfNabUUXLBMvxC51%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;785&quot; height=&quot;411&quot; data-origin-width=&quot;785&quot; data-origin-height=&quot;411&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한 위 이미지를 정확히 cat으로 분류하는 것에는 여러 문제가 더 존재한다. 첫째로는 카메라의 촬영 방향에 따라 모든 픽셀 값이 변경되기 때문이다. 이 외에도 조명의 변화, 부적절한 자세, 가려짐(occlusion), 배경과의 유사성, 여러 유사한 클래스의 존재 등 다양한 문제를 고려해야 하기 때문에 상당히 어려운 문제라고 할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여러 시도가 있었는데 그 중 하나는 아래와 같이 물체의 edge들을 추출하여 그것들을 계산하여 눈, 코, 입 등 중요한 정보의 값들과 비교하여 cat이라고 분류하는 것이다. 하지만 이러한 방법은 잘 작동하지 않았다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;931&quot; data-origin-height=&quot;431&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c4fX6q/btsJpppEgd8/GNXXK9COtfVPhbvWiILlJ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c4fX6q/btsJpppEgd8/GNXXK9COtfVPhbvWiILlJ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c4fX6q/btsJpppEgd8/GNXXK9COtfVPhbvWiILlJ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc4fX6q%2FbtsJpppEgd8%2FGNXXK9COtfVPhbvWiILlJ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;931&quot; height=&quot;431&quot; data-origin-width=&quot;931&quot; data-origin-height=&quot;431&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후 많은 연구들은 위와 같이 특징에 따른 분류 작업을 hard-coding 하는 방식이 아닌 데이터 주도의 접근법을 연구했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;879&quot; data-origin-height=&quot;416&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/k8J2p/btsJq0IKhPw/HTk1VmLCBNlvhXBexy3oqK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/k8J2p/btsJq0IKhPw/HTk1VmLCBNlvhXBexy3oqK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/k8J2p/btsJq0IKhPw/HTk1VmLCBNlvhXBexy3oqK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk8J2p%2FbtsJq0IKhPw%2FHTk1VmLCBNlvhXBexy3oqK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;879&quot; height=&quot;416&quot; data-origin-width=&quot;879&quot; data-origin-height=&quot;416&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터 주도 접근법에서 첫 번째 작업은 인터넷에서 각 레이블에 알맞는 이미지들을 수집하여 데이터셋을 구성하는 것이다. 그리고 머신러닝 분류기를 해당 데이터와 레이블을 활용하여 훈련하고, 새로운 테스트 이미지에 대해 어떠한 성능을 보이는지 평가하는 방식으로 구성되어 있다. 최근에 활용하는 딥러닝 방식도 모두 이러한 순서로 구성되어 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이와 같은 Data-Driven Approach의 첫 번째 분류기는 최근접 이웃(Nearest Neighbor) 방식이 있다. 최근접 이웃 방식은 상당히 쉽고 간단한 방식이지만 성능이 좋아 아직도 간단한 작업에는 사용되는 머신러닝 알고리즘이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;866&quot; data-origin-height=&quot;320&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/btSaWu/btsJr0ukPta/IPOzIKnGsLO5F0hREkMpF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/btSaWu/btsJr0ukPta/IPOzIKnGsLO5F0hREkMpF1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/btSaWu/btsJr0ukPta/IPOzIKnGsLO5F0hREkMpF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbtSaWu%2FbtsJr0ukPta%2FIPOzIKnGsLO5F0hREkMpF1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;866&quot; height=&quot;320&quot; data-origin-width=&quot;866&quot; data-origin-height=&quot;320&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저, 훈련 단계에서는 아무것도 하지 않고 단지 훈련 데이터와 훈련 레이블을 기억시킨다. 그리고 예측 단계에서는 새로운 이미지가 들어 왔을 때 기억하고 있는 데이터와 가장 유사한 레이블을 출력하는 방식이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;838&quot; data-origin-height=&quot;446&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/z55pX/btsJqSjKpZz/Yuh04CbH6eG9wVzePiiny0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/z55pX/btsJqSjKpZz/Yuh04CbH6eG9wVzePiiny0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/z55pX/btsJqSjKpZz/Yuh04CbH6eG9wVzePiiny0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fz55pX%2FbtsJqSjKpZz%2FYuh04CbH6eG9wVzePiiny0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;838&quot; height=&quot;446&quot; data-origin-width=&quot;838&quot; data-origin-height=&quot;446&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내용을 설명하기 위해 이 강의에서 사용되는 데이터셋은 CIFAR10이라는 데이터셋으로, 10개의 카테고리에 대해 32x32x3의 정보가 담긴 총 60,000개의 이미지로 구성된 데이터셋이다. 좌측은 각 레이블에 대한 이미지이고, 우측은 최근접 이웃 알고리즘을 활용하여 새로운 이미지를 넣었을 때 어떤 유사한 이미지들을 찾았는지에 관한 그림이다. 다른 이미지들도 있으나 상당히 간단한 알고리즘에도 불구하고 높은 정확도로 유사한 이미지들을 찾는다는 것을 확인할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. Distance Metrics&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최근접 이웃 알고리즘을 이해하기 위해서는 Distance Metric에 대한 이해가 필요하다. 이것은 선형대수의 Norm 개념을 사용하는 것으로써, 거리를 계산하는 방법이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;919&quot; data-origin-height=&quot;440&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cn9Jmd/btsJqffzz3K/wkIKxSu5b8xl7Zh5xmK2X0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cn9Jmd/btsJqffzz3K/wkIKxSu5b8xl7Zh5xmK2X0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cn9Jmd/btsJqffzz3K/wkIKxSu5b8xl7Zh5xmK2X0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcn9Jmd%2FbtsJqffzz3K%2FwkIKxSu5b8xl7Zh5xmK2X0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;919&quot; height=&quot;440&quot; data-origin-width=&quot;919&quot; data-origin-height=&quot;440&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테스트 이미지와 기억하고 있는 모든 훈련 이미지를 비교하기 위해서 L1 거리를 사용한다. 이는 두 이미지 간의 각 픽셀의 차이의 절대값의 합으로 표현한다. 이렇게 픽셀간의 차이가 가장 작다면 가장 유사한 클래스라고 판단할 수 있기 때문이다. 코드를 예제로 보면 다음과 같다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;546&quot; data-origin-height=&quot;446&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WRrxa/btsJrC1FFgu/5qpKDn7q9kgNiIj4Lp9YTk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WRrxa/btsJrC1FFgu/5qpKDn7q9kgNiIj4Lp9YTk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WRrxa/btsJrC1FFgu/5qpKDn7q9kgNiIj4Lp9YTk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWRrxa%2FbtsJrC1FFgu%2F5qpKDn7q9kgNiIj4Lp9YTk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;546&quot; height=&quot;446&quot; data-origin-width=&quot;546&quot; data-origin-height=&quot;446&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;train() 함수에서는 변수에 데이터들을 할당하여 각각을 memorize하고 predict() 함수는 L1 distance를 계산하여 가장 거리가 가까운 요소를 찾아 반환하여 해당 label을 반환한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 한 가지 질문을 던져볼 수 있다. 최근접 이웃은 얼마나 빠를까? N개의 예제가 있을 때 시간 복잡도 차원에서 보면 훈련 과정은 단순히 기억만 하고 있기 때문에 O(1)의 시간 복잡도를 갖는다. 하지만 예측에는 O(N)의 시간 복잡도를 갖는다. 즉, 훈련은 빠르고 예측이 오래 걸린다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 이러한 방식은 좋은 방식이 아니다. 실제 task에서 사용하기 위해서는 훈련이 오래 걸리더라도 예측이 빨라야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 다음으로 넘어가서, 정확하게 최근접 이웃 알고리즘이 어떤 식으로 작동하는지 결정 영역(decision regions)의 그림을 보고 이해하자.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;504&quot; data-origin-height=&quot;367&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kLGw4/btsJp9fvZJk/qrVpKGk9fOQLrURzZL5Zp1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kLGw4/btsJp9fvZJk/qrVpKGk9fOQLrURzZL5Zp1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kLGw4/btsJp9fvZJk/qrVpKGk9fOQLrURzZL5Zp1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkLGw4%2FbtsJp9fvZJk%2FqrVpKGk9fOQLrURzZL5Zp1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;504&quot; height=&quot;367&quot; data-origin-width=&quot;504&quot; data-origin-height=&quot;367&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 그림을 보면 2차원 평면에 여러 색의 점들과 5가지 색으로 구분된 구역이 나눠진 것을 볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각각의 점들은 훈련 데이터이고 5가지 색의 배경으로 구분된 영역들은 이에 대한 각각의 레이블이라고 이해하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 이 방식은 그렇게 좋지 않다는 것을 확인할 수 있는데, 그림의 중앙의 영역을 보면 하나의 노란 점은 초록 영역에 있거나 초록색 영역이 파란색 영역을 침범하는 등의 문제가 발생하는데 이는 옳지 않게 분류를 이끌 수 있다. 이는 가장 가까운 1개의 데이터와 비교를 하기 때문인데, 이러한 이유로 majority vote 라는 방법을 도입하여 가장 가까운 K개의 점들과의 거리를 비교하여 cluster를 구성하는 K-Nearest Neighbor 알고리즘이 생겼다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;952&quot; data-origin-height=&quot;272&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/z7fl6/btsJrZbbZ68/rQb4VYnbeHEYnTYNEHhIm0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/z7fl6/btsJrZbbZ68/rQb4VYnbeHEYnTYNEHhIm0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/z7fl6/btsJrZbbZ68/rQb4VYnbeHEYnTYNEHhIm0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fz7fl6%2FbtsJrZbbZ68%2FrQb4VYnbeHEYnTYNEHhIm0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;952&quot; height=&quot;272&quot; data-origin-width=&quot;952&quot; data-origin-height=&quot;272&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실제 K를 조금씩 증가시키며 decision boundary를 확인해보면 조금 더 정확하게 영역을 구분하는 것을 확인할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금까지는 L1 distance를 이용했지만 L2 distance를 이용하는 방법도 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;811&quot; data-origin-height=&quot;363&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OKVt2/btsJqgFAQNp/acNNI7IQJIVtKYt09bDJ0K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OKVt2/btsJqgFAQNp/acNNI7IQJIVtKYt09bDJ0K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OKVt2/btsJqgFAQNp/acNNI7IQJIVtKYt09bDJ0K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOKVt2%2FbtsJqgFAQNp%2FacNNI7IQJIVtKYt09bDJ0K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;811&quot; height=&quot;363&quot; data-origin-width=&quot;811&quot; data-origin-height=&quot;363&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;L2 distance는 유클리드 거리라고도 하며 각 차이의 제곱의 제곱근을 거리로 이용하는 방법이다. 각 입력값의 요소가 개별적인 의미를 갖고 있다면 L1 distance가 잘 어울리지만 요소들 간의 실질적인 의미를 잘 모르는 경우 L2 distance가 더 잘어울린다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. Hyperparameters &amp;amp; Splitting Data &amp;amp; Cross-Validation&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금까지 모델을 구성하면서 어떤 K를 선택하고 어떤 distance 기준을 선택하는지에 따라 많은 성능 차이가 있다는 것을 확인했다. 이와 같이 모델을 구현하는 이가 직접 정해야되는 것들을 하이퍼파라미터라고 한다. 좋은 모델을 만들기 위해서는 다양한 하이퍼파라미터를 하나씩 넣어보고 최고의 하이퍼파라미터를 선택해야 한다. 그런데 단순히 훈련 데이터의 성능을 최대화하는 방식으로 진행하는 것은 좋지 않다. 그 이유는 모델의 일반화 성능을 높이는 것이 목표인데, 즉 한번도 본 적 없는 데이터에 대해서 높은 성능을 보이는 것이 목표이기 때문에 데이터를 분리할 필요가 있다. 그래서 Train, Test와 같이 데이터셋을 구분하는 방법을 생각할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;902&quot; data-origin-height=&quot;330&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qvW9X/btsJrZbcCIB/V6K4anwVIrqqBRDBwLQfp1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qvW9X/btsJrZbcCIB/V6K4anwVIrqqBRDBwLQfp1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qvW9X/btsJrZbcCIB/V6K4anwVIrqqBRDBwLQfp1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqvW9X%2FbtsJrZbcCIB%2FV6K4anwVIrqqBRDBwLQfp1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;902&quot; height=&quot;330&quot; data-origin-width=&quot;902&quot; data-origin-height=&quot;330&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 이 방식 또한 좋은 방식이 아니다. 그 이유는 테스트셋에서만 좋은 성능을 보이는 모델로 적합되기 때문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이에 가장 좋은 방식은 데이터의 대부분을 훈련 데이터로 나누고, 일부는 검증 데이터(validation), 그리고 나머지는 테스트 데이터로 나누는 것이다. 테스트 데이터는 훈련 과정 중에 절대 사용하지 말고 최적의 하이퍼 파라미터를 찾기 위해서는 검증 데이터만을 사용하고 최종 테스트에서만 테스트 데이터를 사용하는 것이 가장 옳은 방식이다. 이를 그림으로 나타내면 다음과 같다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;839&quot; data-origin-height=&quot;113&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pw77E/btsJrSXxFnU/ECP7dco0A4aNZ730VMkTTK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pw77E/btsJrSXxFnU/ECP7dco0A4aNZ730VMkTTK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pw77E/btsJrSXxFnU/ECP7dco0A4aNZ730VMkTTK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fpw77E%2FbtsJrSXxFnU%2FECP7dco0A4aNZ730VMkTTK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;839&quot; height=&quot;113&quot; data-origin-width=&quot;839&quot; data-origin-height=&quot;113&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 하나의 하이퍼파라미터 선택 전략이 더 있는데 교차 검증(cross validation)이라는 방식이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 방식은 데이터셋 중 테스트 데이터셋을 정해놓고 나머지 데이터를 몇개로 쪼개어 훈련/검증 데이터셋으로 나누고 번갈아 가면서 검증 데이터셋으로 사용하여 평균적인 성능을 확인하는 것이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;429&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b4oW3g/btsJp5EiKH1/R9guuD8UNSWUEmoTumuzi0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b4oW3g/btsJp5EiKH1/R9guuD8UNSWUEmoTumuzi0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b4oW3g/btsJp5EiKH1/R9guuD8UNSWUEmoTumuzi0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb4oW3g%2FbtsJp5EiKH1%2FR9guuD8UNSWUEmoTumuzi0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;828&quot; height=&quot;429&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;429&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;4. K-Nearest Neighbor &amp;amp; Curse of Dimensionality&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 다시 한번 K-최근접 이웃 알고리즘으로 돌아와 보자. 이 방식은 거의 사용되지 않고 있는데 그 이유 중 가장 큰 이유는 테스트 시간이 오래 걸린다는 것이고, 픽셀에 대한 거리 평가는 유의미한 정보가 없어 여러 noise에 약하기 때문이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;903&quot; data-origin-height=&quot;429&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cd1c63/btsJqK0sXfv/RB9EBPl2sPkMKyyEyilpyK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cd1c63/btsJqK0sXfv/RB9EBPl2sPkMKyyEyilpyK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cd1c63/btsJqK0sXfv/RB9EBPl2sPkMKyyEyilpyK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcd1c63%2FbtsJqK0sXfv%2FRB9EBPl2sPkMKyyEyilpyK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;903&quot; height=&quot;429&quot; data-origin-width=&quot;903&quot; data-origin-height=&quot;429&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;속도가 느린 이유를 이해하기 위해 차원의 저주(curse of dimensionality)에 대해 알아보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단순히 1차원에서의 4개의 점은 4개로 나타낼 수 있지만, 2차원에서의 4개의 점은 제곱수인 16개, 3차원이라면 64개로 기하급수적으로 늘어나는 것을 확인할 수 있다. 대부분 디지털 이미지는 R, G, B 3개의 채널로 구성되어 있고 이에 대해 각각 픽셀이 포함되는데, 그렇다면 최근 고화질 이미지의 픽셀을 생각했을 때 엄청난 연산이 필요하고 따라서 예측을 수행할 때 매우 오래 걸릴 것이라는 것을 이해할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;911&quot; data-origin-height=&quot;431&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d5i3zi/btsJpLFX22S/FuerdplNHSFrhp2uNjcuAk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d5i3zi/btsJpLFX22S/FuerdplNHSFrhp2uNjcuAk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d5i3zi/btsJpLFX22S/FuerdplNHSFrhp2uNjcuAk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd5i3zi%2FbtsJpLFX22S%2FFuerdplNHSFrhp2uNjcuAk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;911&quot; height=&quot;431&quot; data-origin-width=&quot;911&quot; data-origin-height=&quot;431&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;5. Linear Classification&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 이미지 분류를 하는데 K-최근접 알고리즘은 그렇게 좋지 않은 선택지라는 것을 알게 되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금부터는 선형 분류(linear classification)에 대해서 배워 보고자 한다. 선형 분류는 상당히 간단한 알고리즘이지만 딥러닝까지 이어지는 아주 중요한 내용이다. 그 이유는 신경망(neural network)는 아래 이미지와 같이 선형 분류기 여러 개를 레고 블럭을 조립하듯이 쌓은 모델이기 때문이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;784&quot; data-origin-height=&quot;424&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GtMdh/btsJrEFhmc3/ItywsUskCKLQMMqeBk3UJK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GtMdh/btsJrEFhmc3/ItywsUskCKLQMMqeBk3UJK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GtMdh/btsJrEFhmc3/ItywsUskCKLQMMqeBk3UJK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGtMdh%2FbtsJrEFhmc3%2FItywsUskCKLQMMqeBk3UJK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;784&quot; height=&quot;424&quot; data-origin-width=&quot;784&quot; data-origin-height=&quot;424&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;6. Parameteric Classification&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위에서 소개한 선형 분류기는 parametric model의 단순한 형태인데, 행렬과 벡터간의 선형 결합으로 이해할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 f(x, W) = Wx의 수식에서 f는 모델이고, x는 원본 이미지, W는 가중치 혹은 파라미터로 이해하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 어떤 원본 이미지가 input으로 들어왔을 때 적절한 가중치들이 곱해져 각 카테고리의 확률을 output으로 제공한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각각의 class scores는 각 카테고리의 확률을 나타내고 만약 cat의 스코가 높다면 해당 이미지가 고양이일 확률이 높다는 것을 의미한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;932&quot; data-origin-height=&quot;453&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bkQgAB/btsJrp9rvcC/rvMTdBuxC166sX0JPpjDG0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bkQgAB/btsJrp9rvcC/rvMTdBuxC166sX0JPpjDG0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bkQgAB/btsJrp9rvcC/rvMTdBuxC166sX0JPpjDG0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbkQgAB%2FbtsJrp9rvcC%2FrvMTdBuxC166sX0JPpjDG0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;932&quot; height=&quot;453&quot; data-origin-width=&quot;932&quot; data-origin-height=&quot;453&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;계산 과정을 조금 더 상세히 보자면 아래와 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어 4픽셀로 구성된 예제이고 이때 각 클래스는 cat, dog, ship이라고 가정하자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이미 구성되어 있는 가중치와 입력 이미지의 픽셀을 각각 곱하여 계산하고 bias(편향)만큼 더해주면 각 클래스의 score가 출력되는 것을 확인할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;942&quot; data-origin-height=&quot;429&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bD54QH/btsJrCAD2TZ/7SVYL64FvbEUnZmv7WWC60/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bD54QH/btsJrCAD2TZ/7SVYL64FvbEUnZmv7WWC60/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bD54QH/btsJrCAD2TZ/7SVYL64FvbEUnZmv7WWC60/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbD54QH%2FbtsJrCAD2TZ%2F7SVYL64FvbEUnZmv7WWC60%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;942&quot; height=&quot;429&quot; data-origin-width=&quot;942&quot; data-origin-height=&quot;429&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 선형 분류기가 어떻게 분류를 하는지 이해하기 위해 훈련된 가중치들을 시각화한 것을 보자.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;948&quot; data-origin-height=&quot;451&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MrM0Y/btsJrI1Shlv/fRv51xKFKZK5vhKbhTMCq1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MrM0Y/btsJrI1Shlv/fRv51xKFKZK5vhKbhTMCq1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MrM0Y/btsJrI1Shlv/fRv51xKFKZK5vhKbhTMCq1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMrM0Y%2FbtsJrI1Shlv%2FfRv51xKFKZK5vhKbhTMCq1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;948&quot; height=&quot;451&quot; data-origin-width=&quot;948&quot; data-origin-height=&quot;451&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;912&quot; data-origin-height=&quot;434&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lZry0/btsJqeuhDgU/ZxxRLamNpQGtqsLOZKGsi1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lZry0/btsJqeuhDgU/ZxxRLamNpQGtqsLOZKGsi1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lZry0/btsJqeuhDgU/ZxxRLamNpQGtqsLOZKGsi1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlZry0%2FbtsJqeuhDgU%2FZxxRLamNpQGtqsLOZKGsi1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;912&quot; height=&quot;434&quot; data-origin-width=&quot;912&quot; data-origin-height=&quot;434&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 가중치를 시각화 한 결과를 보면 색상의 차이에 따라 분류하는 것이라고 추측할 수 있고, 고차원 공간에서 선형 결정 경계를 기준으로 선형적으로 분류됨을 확인할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 강의에서는 손실 함수(비용 함수), 최적화, 컨볼루션 신경망(CNN)에 대해 학습할 예정이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Computer Vision</category>
      <category>cs231n</category>
      <category>Stanford</category>
      <category>딥러닝</category>
      <category>이미지분류</category>
      <category>컴퓨터비전</category>
      <author>PSLeon</author>
      <guid isPermaLink="true">https://psleon.tistory.com/246</guid>
      <comments>https://psleon.tistory.com/246#entry246comment</comments>
      <pubDate>Wed, 4 Sep 2024 15:48:46 +0900</pubDate>
    </item>
    <item>
      <title>[Paper Review] Explaining and Harnessing Adversarial Examples(FGSM)</title>
      <link>https://psleon.tistory.com/244</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;논문 리뷰: Explaining and Harnessing Adversairal Examples(FGSM)&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- 논문 링크&lt;/b&gt;: &lt;a href=&quot;https://arxiv.org/pdf/1412.6572&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span&gt;https://arxiv.org/pdf/1412.6572&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;b&gt;- 예제 코드(with PyTorch)&lt;/b&gt;: &lt;a href=&quot;https://github.com/PSLeon24/Paper-Implementation-with-PyTorch/blob/main/FGSM/FGSM.ipynb&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span&gt;https://github.com/PSLeon24/Paper-Implementation-with-PyTorch/blob/main/FGSM/FGSM.ipynb&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;b&gt;- 세미나 자료&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignLeft&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/CUb5K/btsJn8e36gs/q9QR4it5sq216qwabfd0Y1/Explaining-and-harnessing-adversarial-examples.pdf?attach=1&amp;amp;knm=tfile.pdf&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;Explaining-and-harnessing-adversarial-examples.pdf&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;5.16MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;오늘은 적대적 공격, 적대적 예제를 공부할 때 가장 기반이 되는 논문인 &quot;Explaining and Harnessing Adversarial Examples&quot; 논문을 다루고자 한다.&lt;br /&gt;이 논문은 2015년 ICLR에 출판된 논문이며, 논문의 저자는 생성형 적대적 신경망(Generative Adversarial Network: GAN)을 제안한 Ian J. Goodfellow이다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. Prerequisite&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Adversarial Attack은 의도적으로 오분류를 이끌어내는 입력값인 Adversarial Examples를 만들어 내는 공격을 뜻한다.&lt;br /&gt;Adversarial Examples는 모델 내에 perturbation이 삽입된 이미지를 뜻한다. 여기서 perturbation의 단어 뜻은 '섭동'이라는 것인데, 단어가 어려워 쉽게 노이즈(noise)라고 생각하면 된다. 적대적 예제에 대해서 이 논문에서는 이미지에 대해서만 한정하지만 사실 음성에 대해서나 텍스트 데이터에 대해서도 가능하다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1631&quot; data-origin-height=&quot;620&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rEs0Y/btsJmls1A0I/cAQjF7rQ4BHbmKJ9BFIKgK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rEs0Y/btsJmls1A0I/cAQjF7rQ4BHbmKJ9BFIKgK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rEs0Y/btsJmls1A0I/cAQjF7rQ4BHbmKJ9BFIKgK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrEs0Y%2FbtsJmls1A0I%2FcAQjF7rQ4BHbmKJ9BFIKgK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1631&quot; height=&quot;620&quot; data-origin-width=&quot;1631&quot; data-origin-height=&quot;620&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;위 그림에서 x는 원본 이미지인 판다 이미지를 특정 모델이 57.7%의 confidence를 갖고 panda로 예측한 것이다. 하지만 여기에 0.007의 epsilon 만큼의 노이즈를 추가했더니 모델은 99.3%의 confidence를 갖고 gibbon(긴팔원숭이)로 잘못 예측하는데, 이때 노이즈가 포함된 판다 이미지가 바로 적대적 예제(adversarial examples)인 것이다. 우측에 노이즈가 포함된 판다 이미지의 경우 사람의 눈으로는 차이를 구별할 수 없다는 것이 특징이다. 수식의 경우는 나중에 자세히 설명하도록 하겠다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;이러한 적대적 공격은 왜 위험한 것일까?&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1413&quot; data-origin-height=&quot;655&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GVZu5/btsJnJsMbxT/LpXkIA5IPMC9sLDTbedXb1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GVZu5/btsJnJsMbxT/LpXkIA5IPMC9sLDTbedXb1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GVZu5/btsJnJsMbxT/LpXkIA5IPMC9sLDTbedXb1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGVZu5%2FbtsJnJsMbxT%2FLpXkIA5IPMC9sLDTbedXb1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1413&quot; height=&quot;655&quot; data-origin-width=&quot;1413&quot; data-origin-height=&quot;655&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;2018년 CVPR에 출판된 &quot;Robust Physical-World Attacks on Deep Learning Models&quot; 논문에서는 위 그림과 같이 Stop 표지판에 적대적 스티커를 붙여 시속 45마일로 오분류하도록 만드는 방법을 발견했다. 이는 실제 자율주행 시스템에서 큰 문제를 야기할 수 있다. 자율주행 차량이 Stop 표지판을 보고 멈춰야하지만 오분류로 인해 정상적으로 주행하게 된다면 인명피해가 발생할 수 있기 때문이다. 이러한 사례 외에도 군사 목적의 AI 모델이나 스팸 방지 AI 모델에도 이러한 공격이 진행된다면 상당한 피해가 발생할 수 있다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. Background&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;과거 연구에서는 적대적 예제가 발생하는 원인에 대해서는 미스터리였으며, 여러 연구자들의 추측에 의하면 DNN(Deep Neural Network)의 극도의 비선형성 때문이라고 생각했고, 모델 앙상블의 부족과 지도 학습(Supervised Learning)에 있어서 불충분한 정규화의 결합 때문에 이러한 문제가 발생한다고 추측했다.&lt;br /&gt;하지만 이 논문에서는 오히려 DNN의 비선형성이 문제가 아니라 고차원 공간에서의 선형성(Linear behavior)이 적대적 예제의 원인이 되기에 충분하다고 하였으며 이러한 관점을 통해 단순하고 빠르게 적대적 예제를 생성하는 방법을 설계하고 제안했다. 그 방법이 바로 적대적 예제를 공부하면 튜토리얼에 가장 자주 나오는 FGSM(Fast Gradient Signed Method)이다.&lt;br /&gt;관련 연구로는 논문 저자 중 한명인 세게디(Szegedy)의 이전 연구인 'Intriguing Properties of Neural Networks&quot; 에서 밝혀낸 다음과 같은 3가지가 이 논문과 관련된 내용이 포함되어 있음을 밝힌다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;적대적 예제는 원본과 너무 비슷해서 인간의 눈으로는 차이점을 구별할 수 없었다.&lt;/li&gt;
&lt;li&gt;얕은 소프트맥스 회귀 모델(Shallow softmax regression models)들 또한 적대적 예제에 취약하다.&lt;/li&gt;
&lt;li&gt;적대적 예제를 다시 모델 학습에 사용하는 적대적 훈련은 모델을 정규화하는 효과가 있다. 그러나 내부 계산에 있어서 비용이 많이 들기 때문에 실용적이지는 않다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 현대의 머신러닝 모델들을 기반으로 하는 분류기(classifier)가 테스트 데이터셋에 대해서는 높은 성능을 갖지만 본 논문에서 약간의 노이즈를 적용했을 때 높은 confidence를 갖고 오분류하는 결과를 보며 이러한 알고리즘들은 Potemkin Village를 건설했다고 표현한다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;454&quot; data-origin-height=&quot;308&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kHfNL/btsJm627dpi/F1P4MDqLDnSoh354mbEsk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kHfNL/btsJm627dpi/F1P4MDqLDnSoh354mbEsk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kHfNL/btsJm627dpi/F1P4MDqLDnSoh354mbEsk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkHfNL%2FbtsJm627dpi%2FF1P4MDqLDnSoh354mbEsk1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;454&quot; height=&quot;308&quot; data-origin-width=&quot;454&quot; data-origin-height=&quot;308&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;Potemkin Village란 위 그림과 같이, 외관상으로는 좋아보이지만 사실은 빈껍데기와 같은 것을 뜻하는 용어이다. 즉, 모델이 실제 데이터를 이해하지 못하고 있지만 겉으로 보기에는 잘 작용하는 것처럼 보일 수 있다는 뜻이다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. Contribution&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;본 논문의 공헌은 아래의 3가지 정도로 생각할 수 있다.&lt;br /&gt;첫째, 쉽고 빠르게 적대적 예제를 생성하는 방법인 FGSM(Fast Gradient Signed Method)를 제안했다.&lt;br /&gt;둘째, 적대적 훈련(Adversarial Training)이 드롭아웃보다 더 효과적으로 정규화를 할 수 있음을 보였다.&lt;br /&gt;셋째, L1 규제나 노이즈를 추가하는 것은 단순하지만 적대적 훈련보다 정규화 효과를 재현할 수 없었음을 실험을 통해 밝혔다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;4. Method&lt;/b&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4.1. The Linear Explanation of Adversarial Examples&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;본 논문에서는 방법을 제안하기 전에 적대적 예제에 대해서 선형적 설명부터 진행한다. 일반적으로 이미지에 사용되는 RGB 채널의 경우 R, G, B 각각에 대해서 8비트 범위 내에 있는 256개의 값(0~255)으로 픽셀을 표현하기 때문에 매우 작은 색상의 변화에 대한 차이를 표현하는데 한계가 있다. 예를 들면, 시스템 상에서는 노이즈의 크기가 만약 0.3 픽셀 정도의 차이이고 기존의 값이 100이었다면, 100.3이 아닌 100으로 표현되는데 모델은 고차원 공간 상에서 이러한 미세한 차이가 축적된다면 큰 변화를 이끌어 낼 수 있다고 한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;569&quot; data-origin-height=&quot;400&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bMriQx/btsJnoCunhv/kZvt3Awr9I44ghxDNlPn4K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bMriQx/btsJnoCunhv/kZvt3Awr9I44ghxDNlPn4K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bMriQx/btsJnoCunhv/kZvt3Awr9I44ghxDNlPn4K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMriQx%2FbtsJnoCunhv%2FkZvt3Awr9I44ghxDNlPn4K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;569&quot; height=&quot;400&quot; data-origin-width=&quot;569&quot; data-origin-height=&quot;400&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;918&quot; data-origin-height=&quot;240&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3WR5i/btsJnGQmPiy/Gsyjp1EC1hOt5iwVqEqnA0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3WR5i/btsJnGQmPiy/Gsyjp1EC1hOt5iwVqEqnA0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3WR5i/btsJnGQmPiy/Gsyjp1EC1hOt5iwVqEqnA0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3WR5i%2FbtsJnGQmPiy%2FGsyjp1EC1hOt5iwVqEqnA0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;918&quot; height=&quot;240&quot; data-origin-width=&quot;918&quot; data-origin-height=&quot;240&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 수식을 살펴보자. x&amp;tilde; = x + &amp;eta;에서 x&amp;tilde;는 적대적 예제를 뜻하고 x는 원본 이미지, &amp;eta;(eta)는 아주 작은 perturbation을 뜻한다. 즉, 원본 이미지에 약간의 perturbation을 추가한 것이 adversarial example이라고 수식적으로 표현한 것이고 사실상 perturbation을 추가한 것은 모델이 같은 class로 판단하기 때문에 가중치 벡터인 w와 적대적 예제 x&amp;tilde;의 dot product를 하게 되면 아래와 같이 나타낼 수 있다.&lt;br /&gt;wᵀ(x + &amp;eta;) = wᵀx + wᵀ&amp;eta; (분배법칙)&lt;br /&gt;이때, perturbation인 &amp;eta;의 infinity norm은 &amp;epsilon;보다 작게 설정함으로써 아주 약간의 perturbation을 설정함으로써 사실상 원본을 거의 훼손하지 않으면서 모든 픽셀에 작은 변화를 줄 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1459&quot; data-origin-height=&quot;333&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yVhgt/btsJl4ZwdBj/UtGC4KanB8rCpv8U5zfSo0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yVhgt/btsJl4ZwdBj/UtGC4KanB8rCpv8U5zfSo0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yVhgt/btsJl4ZwdBj/UtGC4KanB8rCpv8U5zfSo0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyVhgt%2FbtsJl4ZwdBj%2FUtGC4KanB8rCpv8U5zfSo0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1459&quot; height=&quot;333&quot; data-origin-width=&quot;1459&quot; data-origin-height=&quot;333&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 그림에서 infinity norm은 벡터의 모든 요소 중 가장 큰 값만을 고려하는데, 이를 통해 perturbation을 쉽게 계산할 수 있고, 모든 픽셀에 동일한 크기의 perturbation을 추가하기 때문에 전체 이미지에 걸쳐 변화가 균일하게 분산되는 효과가 있기 때문에 덜 눈에 띄는 효과가 있다. 그림의 우측은 이진 분류의 예시에서 원래 입력 데이터가 decision boundary를 넘을 만큼 perturbation을 적용하여 adversarial example을 생성하는 것을 시각화한 것이다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4.2. Linear Perturbation of Non-Linear Models&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로는 비선형 모델의 선형적 교란에 관한 내용이다. 많은 DNN 모델에서는 활성화 함수로 Sigmoid나 ReLU와 같은 비선형 함수를 사용한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1268&quot; data-origin-height=&quot;581&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cmQO8H/btsJmMYamdF/ZknpQbLxeKWi4k8nki6ka1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cmQO8H/btsJmMYamdF/ZknpQbLxeKWi4k8nki6ka1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cmQO8H/btsJmMYamdF/ZknpQbLxeKWi4k8nki6ka1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcmQO8H%2FbtsJmMYamdF%2FZknpQbLxeKWi4k8nki6ka1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1268&quot; height=&quot;581&quot; data-origin-width=&quot;1268&quot; data-origin-height=&quot;581&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;하지만 이러한 활성화 함수들도 사실 특정 부분에서 선형적이라는 것을 알 수 있다. 먼저 saturating한 함수인 sigmoid와 non-saturating한 함수인 ReLU 모두 그림에서 빨갛게 처리한 부분에서는 선형적인 특징이 있다고 볼 수 있다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1401&quot; data-origin-height=&quot;602&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uUdM1/btsJmwOOUNf/31scveVWy0pxjKfydDQHC1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uUdM1/btsJmwOOUNf/31scveVWy0pxjKfydDQHC1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uUdM1/btsJmwOOUNf/31scveVWy0pxjKfydDQHC1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuUdM1%2FbtsJmwOOUNf%2F31scveVWy0pxjKfydDQHC1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1401&quot; height=&quot;602&quot; data-origin-width=&quot;1401&quot; data-origin-height=&quot;602&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;따라서, 선형적인 특성이 있는 활성화 함수로 학습한 비선형적인 모델의 decision boundary 또한 선형적으로 나타나고 이러한 선형성으로 인해 4.1. The Linear Explaination of Adversarial Examples에서 제안한 적대적 예제가 비선형 모델에서도 충분히 발생할 수 있다고 한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1365&quot; data-origin-height=&quot;563&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kDn4q/btsJlfUTNFy/sbKC2zhuhkNA4lbrKsxcZ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kDn4q/btsJlfUTNFy/sbKC2zhuhkNA4lbrKsxcZ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kDn4q/btsJlfUTNFy/sbKC2zhuhkNA4lbrKsxcZ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkDn4q%2FbtsJlfUTNFy%2FsbKC2zhuhkNA4lbrKsxcZ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1365&quot; height=&quot;563&quot; data-origin-width=&quot;1365&quot; data-origin-height=&quot;563&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;위 그림은 이 논문에서 제안하는 FGSM의 핵심적인 수식이 포함된 그림이다.&lt;br /&gt;perturbation인 &amp;eta;를 어떻게 만드는지에 관한 수식이고 지금부터 수식을 하나씩 뜯어서 살펴보자.&lt;br /&gt;먼저, 노이즈의 크기가 너무 커지는 것을 방지하는 가중치인 &amp;epsilon;과 sign() 함수를 곱하여 perturbation의 크기를 작게 맞춰준다는 것을 알 수 있다. 그리고 sign() 함수는 위 그림의 우측과 같이 부호를 반환하는 함수이다. 만약 입력이 0보다 작으면 -1을 0보다 크다면 1을 반환하는 함수이다. 그리고 ▽x는 gradient를 뜻하고 J() 함수는 cost function이다. 그리고 &amp;theta;, x, y는 각각 모델의 파라미터, 인풋에 사용되는 이미지, y는 인풋 x에 대한 타겟이다. 즉, 수식을 전체적으로 이해해보자면, 모델 파라미터 &amp;theta;를 갖는 모델에 x를 input으로 넣었을 때 실제 타겟인 y와의 loss를 계산하는 손실 함수의 gradient의 부호에 1을 곱한 값과 &amp;epsilon;을 곱해서 perturbation을 만들어 이를 원본 입력에 추가함으로써 adversarial example을 만들 수 있다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1165&quot; data-origin-height=&quot;558&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bcTIKC/btsJnIU0HNO/1a5dmVBHMdCHGzyAlrLwEK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bcTIKC/btsJnIU0HNO/1a5dmVBHMdCHGzyAlrLwEK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bcTIKC/btsJnIU0HNO/1a5dmVBHMdCHGzyAlrLwEK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbcTIKC%2FbtsJnIU0HNO%2F1a5dmVBHMdCHGzyAlrLwEK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1165&quot; height=&quot;558&quot; data-origin-width=&quot;1165&quot; data-origin-height=&quot;558&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;위 그림처럼 원본 이미지의 경우 loss가 최소가 되는 방향으로 학습을 진행하게 되지만, adversarial example의 경우 시각적으로는 동일하지만 잘못 분류하게 만들어 loss가 커지도록 한다. 또한 perturbation은 모델이 잘못 분류된 것에 대해 높은 confidence를 갖는 decision boundary로 이동하도록 설계되어 최종적으로 적대적 예제를 분류할 때 confidence도 증가하게 된다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1618&quot; data-origin-height=&quot;611&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dlyDoV/btsJlKNO0ZT/NGxjsNFS691HjCuBIZttOK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dlyDoV/btsJlKNO0ZT/NGxjsNFS691HjCuBIZttOK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dlyDoV/btsJlKNO0ZT/NGxjsNFS691HjCuBIZttOK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdlyDoV%2FbtsJlKNO0ZT%2FNGxjsNFS691HjCuBIZttOK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1618&quot; height=&quot;611&quot; data-origin-width=&quot;1618&quot; data-origin-height=&quot;611&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;판다 예제를 통해 설명하자면 특정 decision boundary 안에 포함되어 정상적으로 분류하도록 만들어진 모델이 있는데, 판다 이미지에 perturbation을 추가하게 되면 시각적으로는 동일하지만 decision boundary를 벗어나서 잘못된 분류를 하게 된다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;935&quot; data-origin-height=&quot;625&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdXEzo/btsJl9GrggW/pTDWHl6f0HHJy3KEOv55o0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdXEzo/btsJl9GrggW/pTDWHl6f0HHJy3KEOv55o0/img.png&quot; data-alt=&quot;출처: 안전한 인공지능 시스템을 위한 심층 신경망 강화(한빛미디어)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdXEzo/btsJl9GrggW/pTDWHl6f0HHJy3KEOv55o0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdXEzo%2FbtsJl9GrggW%2FpTDWHl6f0HHJy3KEOv55o0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;935&quot; height=&quot;625&quot; data-origin-width=&quot;935&quot; data-origin-height=&quot;625&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;출처: 안전한 인공지능 시스템을 위한 심층 신경망 강화(한빛미디어)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;위 그림은 조금 더 자세히 나타낸 예시이다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1050&quot; data-origin-height=&quot;520&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RcZBZ/btsJlp4dxc1/AZTv3CdVtuxhb7HljUR4PK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RcZBZ/btsJlp4dxc1/AZTv3CdVtuxhb7HljUR4PK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RcZBZ/btsJlp4dxc1/AZTv3CdVtuxhb7HljUR4PK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRcZBZ%2FbtsJlp4dxc1%2FAZTv3CdVtuxhb7HljUR4PK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1050&quot; height=&quot;520&quot; data-origin-width=&quot;1050&quot; data-origin-height=&quot;520&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 본 논문에서는 &amp;epsilon;을 점점 크게해보면서 MNIST와 CIFAR-10 데이터셋에 대해 실험을 진행했는데, &amp;epsilon;이 커질수록 오분류율이 높아지는 결과를 확인할 수 있었다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;598&quot; data-origin-height=&quot;671&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kBpZ6/btsJmK65dBD/gR4193n29C8ID8Zsr2Oli0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kBpZ6/btsJmK65dBD/gR4193n29C8ID8Zsr2Oli0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kBpZ6/btsJmK65dBD/gR4193n29C8ID8Zsr2Oli0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkBpZ6%2FbtsJmK65dBD%2FgR4193n29C8ID8Zsr2Oli0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;598&quot; height=&quot;671&quot; data-origin-width=&quot;598&quot; data-origin-height=&quot;671&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;필자도 공개된 FGSM 소스코드를 활용하여 &amp;epsilon; 변화에 따라 사전학습된 LeNet 모델의 Test Accuracy의 변화를 살펴봤다. 확실히 &amp;epsilon;이 증가하면 할수록 Test Accuracy가 기하급수적으로 떨어지는 것을 확인할 수 있었다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;672&quot; data-origin-height=&quot;855&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MN3IK/btsJl5RJzqq/QG2RU40SQn9g7J1YIkBOLk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MN3IK/btsJl5RJzqq/QG2RU40SQn9g7J1YIkBOLk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MN3IK/btsJl5RJzqq/QG2RU40SQn9g7J1YIkBOLk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMN3IK%2FbtsJl5RJzqq%2FQG2RU40SQn9g7J1YIkBOLk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;672&quot; height=&quot;855&quot; data-origin-width=&quot;672&quot; data-origin-height=&quot;855&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;추가로 &amp;epsilon;이 증가함에 따라 이미지가 어떻게 보이는지도 시각화 해봤는데 &amp;epsilon;이 0.15일 때부터는 노이즈가 조금씩 눈에 보이는 것을 확인할 수 있었다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;5. Experiment&lt;/b&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;5.1. Adversarial Training of Linear Model Versus Weight Decay&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1542&quot; data-origin-height=&quot;595&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bHYzoU/btsJmaSUmlK/P9jXqYzasdswepbLHjzbO1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bHYzoU/btsJmaSUmlK/P9jXqYzasdswepbLHjzbO1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bHYzoU/btsJmaSUmlK/P9jXqYzasdswepbLHjzbO1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbHYzoU%2FbtsJmaSUmlK%2FP9jXqYzasdswepbLHjzbO1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1542&quot; height=&quot;595&quot; data-origin-width=&quot;1542&quot; data-origin-height=&quot;595&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;Adversarial Training은 적대적 예제를 훈련 데이터로 사용하여 학습하는 것이다. 이 논문에서는 적대적 훈련을 가중치 감소와 비교하기 위해 로지스틱 회귀에서 발생하는 적대적 훈련을 예시로 든다. 이때 사용하는 Loss Function은 위와 같은데, 이때 &amp;zeta;(zeta) 함수는 softplus function이다. softplus function은 활성화 함수 중 하나로 ReLU와 흡사하게 생긴 비선형 함수임을 알 수 있다. 잘못 구분된 것들에 대해서는 loss가 매우 높게 나오고 잘 구분된 것들은 loss가 0이 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;780&quot; data-origin-height=&quot;254&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bGi5t8/btsJmMw57kZ/U50v3uIUqXXCBn5wdkMKi1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bGi5t8/btsJmMw57kZ/U50v3uIUqXXCBn5wdkMKi1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bGi5t8/btsJmMw57kZ/U50v3uIUqXXCBn5wdkMKi1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbGi5t8%2FbtsJmMw57kZ%2FU50v3uIUqXXCBn5wdkMKi1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;780&quot; height=&quot;254&quot; data-origin-width=&quot;780&quot; data-origin-height=&quot;254&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 그림에서 (a)번째는 prediction 값을 나타내고, (b)는 GT(Ground Truth)에 y를 곱했기 때문에 제대로 예측했으면 양수, 틀리면 음수의 값을 갖게 된다. 그리고 softplus() 함수에 이 결과를 넣으면 틀린 결과에 대해서는 loss를 높게 주고, 맞은 결과에 대해서는 loss를 낮게 주게 만드는 것이다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;또한 이렇게 도출된 수식을 보면 L1 Regularization과 흡사한 형태를 갖고 있다는 것을 확인할 수 있다. 하지만 중요한 차이점이 있는데, L1 규제에서의 최적화는 일부 가중치를 0으로 만들고 다른 가중치는 상대적으로 크게 두는 경향이 있다. 즉, feature selection의 기능이 있어 input이 다차원일 때, 모든 차원에 대해서 조금씩 움직이는 것이 아니라, 몇 개의 차원에 대해 크게 움직인다. 하지만 softplus() 함수의 경우 포함될 수 있는 적대적 훈련 중에 모델은 모든 차원에서 가중치를 더 균일하게 조정하기 때문에 모든 차원에 대해서 조금씩 움직인다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;5.2. Adversarial Training of Deep Network&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;966&quot; data-origin-height=&quot;558&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzUnz9/btsJm8NoHSW/yd1CPSPJK3YysVSR4cFYgK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzUnz9/btsJm8NoHSW/yd1CPSPJK3YysVSR4cFYgK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzUnz9/btsJm8NoHSW/yd1CPSPJK3YysVSR4cFYgK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzUnz9%2FbtsJm8NoHSW%2Fyd1CPSPJK3YysVSR4cFYgK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;966&quot; height=&quot;558&quot; data-origin-width=&quot;966&quot; data-origin-height=&quot;558&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 그림은 Adversarial Training에 대한 수식과 과정을 간단히 시각화한 것이다.&lt;br /&gt;&amp;alpha;는 Clean Data와 Adversarial Examples를 어떤 비율로 Training을 시킬지에 관한 가중치이다. 본 연구에서는 &amp;alpha;를 0.5로 설정해서 5:5로 데이터를 훈련시켰다.&lt;br /&gt;이렇게 Adversarial Training을 진행한 결과, 기존 모델의 경우 적대적 예제에 대해 89.4%의 error rate가 있었으나 적대적 훈련을 진행한 결과 error rate가 17.9%로 떨어진 것을 확인할 수 있었다. 물론 적대적 훈련을 진행해도 오분류 가능성이 여전히 존재했고 신뢰도도 81.4%로 매우 큰 값이었다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1225&quot; data-origin-height=&quot;501&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/csicb2/btsJlvca6N4/yFKkZCsvz3UBf5jXnlW4D0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/csicb2/btsJlvca6N4/yFKkZCsvz3UBf5jXnlW4D0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/csicb2/btsJlvca6N4/yFKkZCsvz3UBf5jXnlW4D0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcsicb2%2FbtsJlvca6N4%2FyFKkZCsvz3UBf5jXnlW4D0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1225&quot; height=&quot;501&quot; data-origin-width=&quot;1225&quot; data-origin-height=&quot;501&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;위 그림은 MNIST 데이터셋에 대해 적대적 훈련을 거치지 않은 것과 적대적 훈련을 진행한 모델의 가중치를 시각화 한 것이다. 좌측의 Naively trained model을 보면 이미지 전반적으로 특징을 추출하는 것을 확인할 수 있다. 따라서 노이즈에 더 민감하다는 것을 확인할 수 있다. 반면, 우측의 적대적 훈련을 적용한 모델의 경우 특정 부분에만 집중함으로써 조금 더 localized 되어 있고 설명 가능한 형태로써 시각적인 특징을 갖게 됨을 확인할 수 있으며 따라서 적대적 공격에 조금 더 robust 하다고 볼 수 있다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;5.3. Different Kinds of Model Capacity&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;적대적 예제가 직관적이지 않은 이유는 우리가 인지할 수 있는 차원보다 훨씬 높은 고차원이기 때문이다.&lt;br /&gt;또한 capacity가 낮은 모델은 여러 confident한 예측을 하지 못할 것이라고 하지만 이는 정확하지 않다.&lt;br /&gt;아래 수식은 매우 non-linear한 모델인 shallow RBF network의 수식이고, 이를 예를 들어 살펴보자.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;117&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KeeI8/btsJmbxxAmA/7BCYxdlFUUjXn07aFaka0k/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KeeI8/btsJmbxxAmA/7BCYxdlFUUjXn07aFaka0k/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KeeI8/btsJmbxxAmA/7BCYxdlFUUjXn07aFaka0k/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKeeI8%2FbtsJmbxxAmA%2F7BCYxdlFUUjXn07aFaka0k%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1280&quot; height=&quot;117&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;117&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;RBF network 자체는 적대적 예제에 면역을 갖고 있어 error rate는 55.4%로 다른 모델보다 낮은 에러율을 보인다는 것을 알 수 있다. 그리고 주목할 점은 오분류한 example에 대한 confidence가 1.2%로 매우 낮다는 것인데, 이는 모델이 완벽하게 이해하지 못한 데이터에 대해서는 confidence를 대폭 낮춘 것이다. 하지만 RBF network의 경우 테스트 정확도가 60.6%로 낮기 때문에 실용성은 떨어지고, 이 아이디어에 영감을 받아 deep RBF network를 포함한 다양한 모델을 탐색하고자 했으나 어려운 작업이라고 한다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;5.4. Why do Adversarial Examples Generalize?&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;적대적 예제로 인해 특정 모델에서 오분류가 일어난다면 다른 모든 구조의 모델에서도 동일한 오분류가 발생한다. 이런 성질을 transferability 하다고 한다. 선형적인 관점에서 적대적 예제는 높은 차원에서 발생하는데 앞에서 확인했듯이 가장 중요한 것이 바로 &amp;epsilon; 값이다. 아래 그림은 &amp;epsilon;의 크기에 따라서 augmented softmax가 변하는 것을 보여주는데 4를 올바로 분류하고 싶을 때, 가운데 빨간 부분(&amp;epsilon;이 -1 ~ 0 사이)이 4에 대한 softmax가 가장 큰 것을 확인할 수 있고 그 외에 부분은 4에 대한 softmax가 가장 크지 않다는 것을 알 수 있다. 그리고 &amp;epsilon;의 크기에 따라서 softmax가 linear한 형태로 이루어져 있다. 그리고 대부분의 model architecture가 아래와 같이 linear한 형태로 이루어져 있기 때문에 모델을 훈련할 때 대부분 비슷한 weight를 갖게 되기 때문에 적대적 예제는 일반화된다고 할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1518&quot; data-origin-height=&quot;643&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDW4cj/btsJmBbpyxj/58jstjEyjWUeZxT205rQf0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDW4cj/btsJmBbpyxj/58jstjEyjWUeZxT205rQf0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDW4cj/btsJmBbpyxj/58jstjEyjWUeZxT205rQf0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDW4cj%2FbtsJmBbpyxj%2F58jstjEyjWUeZxT205rQf0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1518&quot; height=&quot;643&quot; data-origin-width=&quot;1518&quot; data-origin-height=&quot;643&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;5.5. Alternative Hypothesis&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;가설 1. 모델이 '실제'와 '가짜' 데이터를 구별하는 방법을 생성적 훈련(generative training)을 통해 '실제' 데이터에 대해서만 confidence를 갖는다.&lt;/b&gt;&lt;br /&gt;- MNIST에 대해서 error rate가 0.88%인 MP-DBM 모델을 통해 진행하였으나, &amp;epsilon;이 0.25인 경우 97.5%의 높은 error rate를 얻었다. 따라서 이 가설은 옳지 않다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;b&gt;가설 2. 여러 모델들의 가중치를 평균내면 적대적 예제가 사라질 수 있다.&lt;/b&gt;&lt;br /&gt;- 12개의 MNIST maxout network들을 앙상블해서 훈련시켰음에도 &amp;epsilon;이 0.25인 경우 91.1%의 error rate를 얻었다. 따라서 이 가설은 옳지 않다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;6. Conclusion&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;적대적 예제는 머신러닝에서 널리 퍼진 현상으로, 모델의 과적합 때문에 발생하는 것이 아닌 고차원 공간에서 모델의 선형성 때문에 발생한다.&lt;/li&gt;
&lt;li&gt;이러한 적대적 예제는 신경망의 근본적인 특성을 강조한다. 즉, 인간이 감지할 수 없는 작고 의도적인 교란에 쉽게 속을 수 있다는 것이다.&lt;/li&gt;
&lt;li&gt;이 연구에서는 적대적 예제를 효율적으로 생성하고 적대적 훈련에 사용할 수 있는 Fast Gradient Sign Method(FGSM)을 제안했다.&lt;/li&gt;
&lt;li&gt;적대적 훈련은 모델을 robust하게 하고 적대적 공격으로부터 더 유연하게 대처할 수 있도록 한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;* 코드를 돌려보고 궁금한 점&lt;/b&gt;&lt;br /&gt;- adversarial example을 캡쳐해서 다시 사용하면 noise가 그대로 유지될까?&lt;/p&gt;</description>
      <category>Paper</category>
      <author>PSLeon</author>
      <guid isPermaLink="true">https://psleon.tistory.com/244</guid>
      <comments>https://psleon.tistory.com/244#entry244comment</comments>
      <pubDate>Fri, 30 Aug 2024 23:34:43 +0900</pubDate>
    </item>
    <item>
      <title>딥페이크 범죄 예방이 가능할까?</title>
      <link>https://psleon.tistory.com/243</link>
      <description>&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;오늘은 최근 화두가 되고 있는 딥페이크 범죄에 대해 컴퓨터 비전을 전공하는 석사생의 관점에서 이를 예방할 수 있는지에 대해 간단히 포스팅 하고자 한다.&lt;br&gt;&lt;br&gt;먼저, 최근 뉴스에 많이 언급되는 딥페이크 범죄에 사용되는 방법은 크게 Face Swap과 Undress와 같이 두 개로 나눌 수 있다. 먼저,&amp;nbsp; Face Swap은 어떤 원본 사진이 있을 때 해당하는 사진의 얼굴을 특정인으로 변경하는 방법이다. 다음으로 Undress는 특정인의 전신 사진을 올리면 옷을 벗겨 나체처럼 보이게 하는 등 여러 방법이 있다.&lt;br&gt;&lt;br&gt;이는 GAN(Generative Adversarial Network)이라는 생성형 적대적 신경망 혹은 Diffusion(확산) 모델을 통해 주로 이미지를 만들어 낸다. 이는 쉽게 말하자면, ChatGPT가 기존에 학습한 여러 문장, 단어 등을 통해 새로운 글을 창조해내는 것처럼 기존에 학습한 여러 이미지 데이터들을 통해 새로운 이미지를 주어진 명령에 맞게 이미지를 생성하는 인공지능 모델을 뜻한다.&lt;br&gt;&lt;br&gt;요즘 난리가 난 텔레그램 상에서의 딥페이크 범죄를 알아보자.&lt;br&gt;텔레그램은 익명성과 프라이버시를 가장 중요하게 여기며 제작된 채팅 어플리케이션이다. 흔히, 수사기관에서 범죄에 연루된 정보를 기업에 공조 요청을 하면 대부분은 협조하지만 텔레그램은 수사기관에 정보를 일체 제공하지 않는다. 따라서 텔레그램에서 대화를 나누며 범죄를 저지르거나 혹은 그 안에서만 특정 범죄를 저질렀다면 이는 사실상 수사를 통해 검거하기 어렵다.&lt;br&gt;하지만 특정 딥페이크 요구에 대한 댓가로 비트코인이나 계좌거래 혹은 상품권 거래를 통해 금전적인 거래가 이루어졌다면 이를 현금화하는 과정을 충분히 역추적하여 범죄자를 검거할 수 있다.&lt;br&gt;&lt;br&gt;다음으로, 딥페이크 범죄에 대해 예방이 가능한지에 대한 내용이다.&lt;br&gt;먼저, 딥페이크를 조사하면서 어떤 식으로 진행되는지 찾아봤다. 구글에 “undress deepfake ai”, ”face swap deepfake”와 같은 키워드를 통해 검색을 진행하면 여러 사이트가 검색 결과로 노출된다. 확인해본 결과, 사이트 상에 일부 금액을 결제하고 특정인의 사진을 업로드하면 서버 내에 있는 모델을 통해 딥페이크 결과물을 받는 식으로 판단된다. 물론 이 방법 외에도 stable diffusion과 같은 생성 모델에 여러 extensions를 설치하여 진행하는 사례도 있는 것으로 파악했다.&lt;br&gt;이러한 딥페이크는 단 한 장의 사진으로도 충분히 이루어질 수 있기 때문에 SNS에 사진이 한 장이라도 공개되어 있다면 본질적으로는 딥페이크를 예방하기란 사실상 불가능에 가깝다. 심지어 개인이 딥페이크를 범죄를 저지르고 소장만 하고 있다면 아무리 법적인 장치로 처벌을 한다하더라도 사실상 검거가 어렵다. 하지만 인공지능을 공부하는 사람의 관점에서 그나마 예방할 수 있는 방법을 제시한다면, 가급적 SNS 상에 올릴 때 전신 사진 혹은 정면이 잘 보이는 사진을 업로드하는 것은 주의하거나 스노우 어플 등을 활용하여 필터를 사용하는 것을 방법으로 들 수 있다. 대부분의 합성을 위한 모델은 정면의 얼굴을 그대로 불러와 기존에 있는 이미지에 최대한 자연스럽게 다시 생성하는 방식이기 때문에 얼굴의 각도를 다르게하거나 이미지의 해상도가 낮거나 이미지에 필터를 사용할 경우 딥페이크 생성을 교란할 수 있는 효과가 있기 때문이다.&lt;/p&gt;</description>
      <category>Adversarial Attack</category>
      <category>딥페이크</category>
      <category>딥페이크 예방</category>
      <category>딥페이크피해</category>
      <author>PSLeon</author>
      <guid isPermaLink="true">https://psleon.tistory.com/243</guid>
      <comments>https://psleon.tistory.com/243#entry243comment</comments>
      <pubDate>Wed, 28 Aug 2024 02:29:42 +0900</pubDate>
    </item>
    <item>
      <title>[Adversarial Attack] 적대적 공격의 기초 및 종류</title>
      <link>https://psleon.tistory.com/242</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;적대적 공격의 기초 및 종류&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. 적대적 공격(Adversarial Attack)&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1451&quot; data-origin-height=&quot;587&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bcNodR/btsJggkJt5F/OorGKkofw3wjiwzqrp9ikk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bcNodR/btsJggkJt5F/OorGKkofw3wjiwzqrp9ikk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bcNodR/btsJggkJt5F/OorGKkofw3wjiwzqrp9ikk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbcNodR%2FbtsJggkJt5F%2FOorGKkofw3wjiwzqrp9ikk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1451&quot; height=&quot;587&quot; data-origin-width=&quot;1451&quot; data-origin-height=&quot;587&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 이미지는 2015년 ICRL에 출판된 'Explaining And Harnessing Adversarial Examples' 논문에서 소개된 대표적인 Adversarial Attack을 나타내는 그림이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 예시를 설명하자면 x라는 input, 즉 정상적인 판다 이미지를 입력했을 때 57.7%의 확률로 판다라고 classification을 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만, 여기에 0.007(&amp;epsilon;) 만큼의 perturbation(일종의 noise)를 이미지에 더한다면 사람의 눈에는 알아차릴 수 없는(unnoticeable) 노이즈가 이미지에 포함되게 되고, 최종적으로 노이즈가 포함된 이미지에 대해 다시 classification을 진행했을 경우, 99.3%의 confidence를 가지고 gibbon(긴팔원숭이)라고 오분류(misclassify)를 하게 된다는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서, 적대적 공격을 정리하면 다음과 같이 정의할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;적대적 공격&lt;/b&gt;(adversarial attack): 머신러닝, 딥러닝 모델에 일종의 적대적 교란 혹은 노이즈(adversarial perturbation)을 적용하여 오분류를 발생시키는 공격&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. 적대적 공격의 종류&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;적대적 공격은 크게 회피 공격(evasion attacks), 중독(오염) 공격(poisoning attacks), 탐색적 공격(exploratory attacks)와 같이 3가지로 구분할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2.1. 회피 공격(evasion attacks)&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저, 회피 공격은 위에서 언급한 적대적 예제(adversarial examples)를 사용하여 머신러닝 혹은 딥러닝 모델이 오분류 하도록 하는 공격으로, '입력 공격'으로도 불린다. 대표적인 예시가 바로 위에서 언급한 논문의 공격 기법인 FGSM(Fast Gradient Sign Method)이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;625&quot; data-origin-height=&quot;230&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qcd0G/btsJgGpOzwn/ONb8ZW69WkoKO38e4Hr3VK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qcd0G/btsJgGpOzwn/ONb8ZW69WkoKO38e4Hr3VK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qcd0G/btsJgGpOzwn/ONb8ZW69WkoKO38e4Hr3VK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fqcd0G%2FbtsJgGpOzwn%2FONb8ZW69WkoKO38e4Hr3VK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;625&quot; height=&quot;230&quot; data-origin-width=&quot;625&quot; data-origin-height=&quot;230&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2.2. 중독 공격(poisoning attacks)&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로, 중독 공격은 회피 공격과는 다르게 Attacker(공격자)가 머신러닝 혹은 딥러닝 모델의 학습 과정에 관여하여 AI 시스템 자체를 손상시키는 공격이다. 대표적인 중독 공격의 방법의 예시로는 2016년 MS(마이크로소프트)사의 챗봇 테이 사례가 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 사례는, 일부 극우 성향의 사용자들이 챗봇에게 악의적인 발언을 하도록 훈련시켜 테이가 욕설, 인종차별, 성차별, 자극적인 정치적 발언을 남발하도록 하여 16시간 만에 운영을 중단한 사례가 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;625&quot; data-origin-height=&quot;365&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/drZ7qu/btsJfCu9NIq/Yk7xdr3O5gWmvYSXYC30Pk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/drZ7qu/btsJfCu9NIq/Yk7xdr3O5gWmvYSXYC30Pk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/drZ7qu/btsJfCu9NIq/Yk7xdr3O5gWmvYSXYC30Pk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdrZ7qu%2FbtsJfCu9NIq%2FYk7xdr3O5gWmvYSXYC30Pk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;625&quot; height=&quot;365&quot; data-origin-width=&quot;625&quot; data-origin-height=&quot;365&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정리하면, 아래와 같이 악의적인 학습 데이터를 모델 학습 과정에 주입하여 모델을 망가뜨리는 공격하는 방법이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;625&quot; data-origin-height=&quot;423&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/REiJI/btsJg7tGC4T/noBRXL8m1qiitKEJqC2Ok0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/REiJI/btsJg7tGC4T/noBRXL8m1qiitKEJqC2Ok0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/REiJI/btsJg7tGC4T/noBRXL8m1qiitKEJqC2Ok0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FREiJI%2FbtsJg7tGC4T%2FnoBRXL8m1qiitKEJqC2Ok0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;625&quot; height=&quot;423&quot; data-origin-width=&quot;625&quot; data-origin-height=&quot;423&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2.3. 탐색적 공격(exploratory attacks)&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;탐색적 공격의 대표적인 예로는 &lt;b&gt;모델 전도 공격&lt;/b&gt;(Model Inversion Attack)과 &lt;b&gt;API를 통한 모델 추출 공격&lt;/b&gt;(Model Extraction via APIs)가 있다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;모델 전도 공격&lt;/b&gt;: 모델 전도 공격은 모델에 수많은 쿼리를 던진 후, 산출된 결괏값을 분석하여 모델 학습을 위해 사용된 데이터를 추출하는 공격&lt;/li&gt;
&lt;li&gt;&lt;b&gt;API를 통한 모델 추출 공격&lt;/b&gt;: 이미 공개된 API의 학습모델 정보를 추출하는 공격 기법&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 그림은 전도 공격을 통해 얼굴인식 모델의 학습을 위해 사용된 얼굴 이미지 데이터를 복원한 사례이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;592&quot; data-origin-height=&quot;273&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OWmbK/btsJggyicfi/6CJg0KnSwPkhZtB4q3sK7K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OWmbK/btsJggyicfi/6CJg0KnSwPkhZtB4q3sK7K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OWmbK/btsJggyicfi/6CJg0KnSwPkhZtB4q3sK7K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOWmbK%2FbtsJggyicfi%2F6CJg0KnSwPkhZtB4q3sK7K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;592&quot; height=&quot;273&quot; data-origin-width=&quot;592&quot; data-origin-height=&quot;273&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모델 전도 공격은 공격 대상 모델의 입력값과 결괏값을 분석하여 학습 데이터를 추출하는 공격인 반면, 모델 추출 공격은 모델을 추출하는 공격이다. 즉, 유사한 모델을 만들어내는 공격 기법을 뜻한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;625&quot; data-origin-height=&quot;236&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/chzhUB/btsJfSkbAda/jNrYkypCXpu3ru3Bp1Tp6K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/chzhUB/btsJfSkbAda/jNrYkypCXpu3ru3Bp1Tp6K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/chzhUB/btsJfSkbAda/jNrYkypCXpu3ru3Bp1Tp6K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FchzhUB%2FbtsJfSkbAda%2FjNrYkypCXpu3ru3Bp1Tp6K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;625&quot; height=&quot;236&quot; data-origin-width=&quot;625&quot; data-origin-height=&quot;236&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;References&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[1] &lt;a href=&quot;https://arxiv.org/pdf/1412.6572&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://arxiv.org/pdf/1412.6572&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[2] &lt;a href=&quot;https://wikidocs.net/176802&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://wikidocs.net/176802&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1724657841627&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;2. Adversarial Attack&quot; data-og-description=&quot;최근 보안시장에서는 새로운 멀웨어를 탐지하기 위해 AI가 활용되고 있습니다. 악성코드로 분류되는 확률을 최소화하도록 AI 모델을 공격하여 공격자는 악성코드 탐지 알고리즘&amp;hellip;&quot; data-og-host=&quot;wikidocs.net&quot; data-og-source-url=&quot;https://wikidocs.net/176802&quot; data-og-url=&quot;https://wikidocs.net/176802&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bPmqD4/hyWScQCqXq/cr8F0zYpnrrMPJUclYYJcK/img.jpg?width=100&amp;amp;height=93&amp;amp;face=0_0_100_93&quot;&gt;&lt;a href=&quot;https://wikidocs.net/176802&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://wikidocs.net/176802&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bPmqD4/hyWScQCqXq/cr8F0zYpnrrMPJUclYYJcK/img.jpg?width=100&amp;amp;height=93&amp;amp;face=0_0_100_93');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;2. Adversarial Attack&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;최근 보안시장에서는 새로운 멀웨어를 탐지하기 위해 AI가 활용되고 있습니다. 악성코드로 분류되는 확률을 최소화하도록 AI 모델을 공격하여 공격자는 악성코드 탐지 알고리즘&amp;hellip;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;wikidocs.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[3] &lt;a href=&quot;https://dl.acm.org/doi/10.1145/2810103.2813677&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://dl.acm.org/doi/10.1145/2810103.2813677&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1724657834705&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;Chapter&quot; data-og-title=&quot;Model Inversion Attacks that Exploit Confidence Information and Basic Countermeasures | Proceedings of the 22nd ACM SIGSAC Confe&quot; data-og-description=&quot;Publication History Published: 12 October 2015&quot; data-og-host=&quot;dl.acm.org&quot; data-og-source-url=&quot;https://dl.acm.org/doi/10.1145/2810103.2813677&quot; data-og-url=&quot;https://dl.acm.org/doi/10.1145/2810103.2813677&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bMGtEM/hyWSeVdDnY/HUjjckoZ49FgdKt3W6QKsK/img.jpg?width=302&amp;amp;height=392&amp;amp;face=0_0_302_392&quot;&gt;&lt;a href=&quot;https://dl.acm.org/doi/10.1145/2810103.2813677&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dl.acm.org/doi/10.1145/2810103.2813677&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bMGtEM/hyWSeVdDnY/HUjjckoZ49FgdKt3W6QKsK/img.jpg?width=302&amp;amp;height=392&amp;amp;face=0_0_302_392');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Model Inversion Attacks that Exploit Confidence Information and Basic Countermeasures | Proceedings of the 22nd ACM SIGSAC Confe&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Publication History Published: 12 October 2015&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dl.acm.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[4] &lt;a href=&quot;https://www.lgcns.com/blog/cns-tech/ai-data/9616/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.lgcns.com/blog/cns-tech/ai-data/9616/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1724657840873&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;머신러닝 보안 취약점! 적대적 공격의 4가지 유형 - LG CNS&quot; data-og-description=&quot;미래학자인 레이 커즈와일(Ray Kurzweil)은 저서 &amp;lsquo;특이점이 온다(The Singularity is near)를 통해 오는 2045년이면 인공지능이 인간의 지능을 넘어설 것으로 예측했습니다. 세간을 충격에 빠뜨렸던 알파&quot; data-og-host=&quot;www.lgcns.com&quot; data-og-source-url=&quot;https://www.lgcns.com/blog/cns-tech/ai-data/9616/&quot; data-og-url=&quot;https://www.lgcns.com/blog/cns-tech/ai-data/9616/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/KL39n/hyWVSCZIU8/A4S3lbes3AuK6ormgEkfDK/img.png?width=600&amp;amp;height=268&amp;amp;face=0_0_600_268,https://scrap.kakaocdn.net/dn/1iLDA/hyWV6gVufy/woqafsBEOIKkPevQYXzIiK/img.png?width=600&amp;amp;height=268&amp;amp;face=0_0_600_268,https://scrap.kakaocdn.net/dn/QPK4z/hyWShYH1GL/5qwkVgkvISrViGOzukNDgK/img.png?width=625&amp;amp;height=365&amp;amp;face=36_30_356_216&quot;&gt;&lt;a href=&quot;https://www.lgcns.com/blog/cns-tech/ai-data/9616/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.lgcns.com/blog/cns-tech/ai-data/9616/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/KL39n/hyWVSCZIU8/A4S3lbes3AuK6ormgEkfDK/img.png?width=600&amp;amp;height=268&amp;amp;face=0_0_600_268,https://scrap.kakaocdn.net/dn/1iLDA/hyWV6gVufy/woqafsBEOIKkPevQYXzIiK/img.png?width=600&amp;amp;height=268&amp;amp;face=0_0_600_268,https://scrap.kakaocdn.net/dn/QPK4z/hyWShYH1GL/5qwkVgkvISrViGOzukNDgK/img.png?width=625&amp;amp;height=365&amp;amp;face=36_30_356_216');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;머신러닝 보안 취약점! 적대적 공격의 4가지 유형 - LG CNS&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;미래학자인 레이 커즈와일(Ray Kurzweil)은 저서 &amp;lsquo;특이점이 온다(The Singularity is near)를 통해 오는 2045년이면 인공지능이 인간의 지능을 넘어설 것으로 예측했습니다. 세간을 충격에 빠뜨렸던 알파&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.lgcns.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Adversarial Attack</category>
      <author>PSLeon</author>
      <guid isPermaLink="true">https://psleon.tistory.com/242</guid>
      <comments>https://psleon.tistory.com/242#entry242comment</comments>
      <pubDate>Mon, 26 Aug 2024 16:37:49 +0900</pubDate>
    </item>
    <item>
      <title>[다중시점기하학] 1. 점과 선 - 2차원 사영평면</title>
      <link>https://psleon.tistory.com/241</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;1.&amp;nbsp;Planar&amp;nbsp;Geometry&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;점과 선 - 2차원 사영평면&lt;/b&gt;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(1) &lt;b&gt;선의 동차 표현(Homogeneous Representation of Lines)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; l = (a, b, c)ᵀ&lt;br /&gt;&lt;br /&gt;(2) &lt;b&gt;점의 동차 표현(Homogeneous Representation of Points)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; x = (x, y, 1)ᵀ&lt;br /&gt;&lt;br /&gt;(3) &lt;b&gt;자유도(Degrees of Freedom)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 이미지가 변환(transformation)될 때 최소한으로 필요로 하는 독립변수의 수&lt;br /&gt;&lt;br /&gt;(4) &lt;b&gt;선의 교점&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; x = l X l' (외적(cross product)을 사용해서 구할 수 있음)&lt;br /&gt;&lt;br /&gt;(5) &lt;b&gt;두 점을 연결하는 직선&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; l = x X x' (외적(cross product)을 사용해서 구할 수 있음)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(6) &lt;b&gt;평행선의 교점 - 평행한 두 직선은 무한대에서 만남&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; l x l' = (c' - c)(b, -a, 0) ~ 0으로 b, -a를 나눌 수 없기 때문에 무한대에서 만난다는 것을 알 수 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(7) &lt;b&gt;이상점 및 무한선&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - (x1, x2, 0): ideal point&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - (0, 0, 1): line at infinity&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Important Results&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(1)&amp;nbsp;점&amp;nbsp;x가&amp;nbsp;직선&amp;nbsp;l상에&amp;nbsp;있을&amp;nbsp;필요충분조건&amp;nbsp;xᵀl&amp;nbsp;=&amp;nbsp;lᵀx&amp;nbsp;=&amp;nbsp;x&amp;middot;l&amp;nbsp;=&amp;nbsp;0&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(2)&amp;nbsp;두&amp;nbsp;직선&amp;nbsp;l과&amp;nbsp;l'의&amp;nbsp;교점&amp;nbsp;x&amp;nbsp;=&amp;nbsp;l&amp;nbsp;X&amp;nbsp;l'&amp;nbsp;(X:&amp;nbsp;cross&amp;nbsp;product)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(3) 두 점 x와 x'을 지나는 직선은 l = x X x' (X: cross product)&lt;/p&gt;</description>
      <category>다중시점기하학(Multiple View Geometry)</category>
      <author>PSLeon</author>
      <guid isPermaLink="true">https://psleon.tistory.com/241</guid>
      <comments>https://psleon.tistory.com/241#entry241comment</comments>
      <pubDate>Sun, 18 Aug 2024 23:06:26 +0900</pubDate>
    </item>
    <item>
      <title>Transformer</title>
      <link>https://psleon.tistory.com/239</link>
      <description>&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wKhaF/btsIIhqStsB/9tCKwc1CZOY1wLINLGHDXk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wKhaF/btsIIhqStsB/9tCKwc1CZOY1wLINLGHDXk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wKhaF/btsIIhqStsB/9tCKwc1CZOY1wLINLGHDXk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwKhaF%2FbtsIIhqStsB%2F9tCKwc1CZOY1wLINLGHDXk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3024&quot; height=&quot;4032&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;ViT 공부를 하기 위해서 트랜스포머 모델을 공부 중인데 내용이 좀 어려워 쉽게 와닿지 않는다. 조금 더 봐야겠다.&lt;/p&gt;</description>
      <category>AI &amp;amp; BigData</category>
      <author>PSLeon</author>
      <guid isPermaLink="true">https://psleon.tistory.com/239</guid>
      <comments>https://psleon.tistory.com/239#entry239comment</comments>
      <pubDate>Mon, 22 Jul 2024 13:15:00 +0900</pubDate>
    </item>
    <item>
      <title>[Practical English] 실생활에 유용한 영어 표현 10개(WEEKEND PLANS)</title>
      <link>https://psleon.tistory.com/238</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;WEEKEND PLANS&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;본 포스팅에서는 주말 계획과 관련된 실생활에 유용한 영어 표현 10가지를 소개한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. &quot;What about you?&quot; or &quot;How about you?&quot;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Most important conversation questions.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 대화를 할 때 무엇인가 말을 하고 나서 부가적으로 상대방에게 &quot;너는?&quot; 이라고 말하는 아주 기초적인 표현이다. 대화가 끊어지지 않게 쓸 때 유용한 표현이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. Brunch&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Breakfast와 Lunch가 합쳐진 단어로, 많은 미국인들이 토요일이나 일요일에 아침과 점심 사이에 집이나 브런치 스팟으로 외식을 가서 브런치를 즐긴다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;e.g., &quot;My friends and I are meeting at our favorite &lt;b&gt;brunch&lt;/b&gt; spot on Sunday.&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. Social butterfly&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- social butterfly는 사교적인 사람을 뜻하는 단어로써, 사회적인 활동에 나비처럼 여기저기 참석을 많이 한다는 뜻을 갖고 있다. 가장 자연스러운 뜻을 생각하면 &quot;인싸&quot;를 뜻한다고 생각할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;e.g., &quot;My friend is a &lt;b&gt;social butterfly&lt;/b&gt;. She has invitations to 3 brunches and 4 afternoon teas!&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;4. Homebody&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 사교적이고 인싸를 social butterfly라고 표현한다고 3에서 설명했다. 그렇다면 흔히, 집순이를 뜻하는 단어는 어떻게 표현할까? 바로 &quot;homebody&quot;이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;e.g., &quot;My friend is a social butterfly but I am more of a &lt;b&gt;homebody&lt;/b&gt;.&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;5.&amp;nbsp; Stay in&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- stay in은 &quot;~에 머물다&quot;의 뜻이 있는데, 실제 미국에서는 집에 그냥 있는 것을 표현할 때 stay in home이라고 하지 않고 줄여서 stay in이라고 표현한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;e.g., &quot;It's supposed to be cold and rainy this weekend, so I'm just going to &lt;b&gt;stay in&lt;/b&gt; and read a book.&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;6.&amp;nbsp; Binge-watch&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- binge-watch는 영화나 시리즈물을 &quot;정주행&quot;하는 것을 뜻한다. 즉, 몰아보다를 뜻하는 단어라고 생각하면 된다. 이를 활용한 단어로, binge-drinking이라는 단어가 있는데 쉽게 &quot;과음, 폭음&quot;으로 해석할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;e.g., &quot;Last weekend my husband and I &lt;b&gt;binge-watched&lt;/b&gt; all of the Star Wars movies.&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;7.&amp;nbsp; Catch up on some chores&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &quot;catch up on ~&quot;은 따라잡다를 의미하고 &quot;chore&quot;는 허드렛일, 하기싫은 일을 뜻한다. catch up on some chores은 그동안 밀려왔던 집안일(dishes, cleaning, laundry, home repair, so on)을 하는 것을 뜻하는 단어이다. 만약에 평소에 잠이 부족하여 잠을 주말에 몰아잔다면 catch up on sleep과 같이 표현할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;e.g., &quot;I was so busy all week, and finally I'm going to &lt;b&gt;catch up on some chores&lt;/b&gt; this weekend.&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;8.&amp;nbsp; What are you up to this weekend?&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 이번 주말에 뭐해?를 영작하라고 하면 대부분 &quot;What are you doing this weekend?&quot;을 생각할 것이다. 하지만 이 표현보다 더 많이 쓰는 표현이 &quot;What are you up to this weekend?&quot;이다. 지금 뭐하는지 물을 때도 &quot;What are you doing now?&quot;가 아니라 &quot;What are you up to now?&quot;라고 물으면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 그런데 위 문장을 또박또박 말하는 것은 미국 스타일이 아니다. 미국인들은 &quot;What are you up to weekend?&quot;라는 문장 전체를 정직하게 발음하지 않는다. &quot;What are&quot;을 &quot;What're&quot;로 줄여서 아래와 같이 발음한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;e.g, &quot;&lt;b&gt;What're you up to this weekend?&lt;/b&gt;&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 그런데, 위 문장의 &quot;What are you&quot;라는 표현을 &quot;Watcha&quot;를 사용하고 &quot;up&quot;을 &quot;'p&quot;로 줄여 아래와 같이 조금 더 짧게 발음하는 경우도 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;e.g., &quot;&lt;b&gt;Whtcha'p to this weekend?&lt;/b&gt;&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;9.&amp;nbsp; What have you got going on this weekend?&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &quot;What have you got going on this weekend?&quot; 이 문장 또한 &quot;What are you doing this weekend?&quot;와 동일한 뜻이지만, 조금 더 캐쥬얼하게 사용하기 위해 사용할 수 있는 또 다른 문장이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 이 문장도 8번과 마찬가지로 전체 문장을 또박또박 발음하지 않고 아래와 같이 발음한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;e.g., &quot;&lt;b&gt;What've you got goin' on?&lt;/b&gt;&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 위 문장에서 더 많이 생략하고 다음과 같이 발음하는 경우도 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;e.g., &quot;Wha&lt;b&gt;d&lt;/b&gt;ayagot goin' on?&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;10.&amp;nbsp; You doing anything fun this weekend?&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &quot;You doing anything fun this weekend?&quot;는 &quot;Are you doing anything fun this weekend?&quot;를 뜻하는 표현으로 이번 주말에 재밌는 일이 있는지 물어보는 표현이다. 만약 이번 방학 때 재밌는 계획이 있는지 물어볼 때 아래와 같이 표현할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;e.g., &quot;You doing anything fun on this vacation?&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 하지만 위 표현도 미국인들은 아래와 같이 줄여서 발음한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;e.g., &quot;Ya doin' anything fun on this vacation?&quot;&lt;/p&gt;</description>
      <category>English</category>
      <category>homebody</category>
      <category>social butterfly</category>
      <category>몰아서 보다 영어로</category>
      <category>실용영어</category>
      <category>영어표현</category>
      <category>인싸 영어로</category>
      <category>정주행 영어로</category>
      <category>집순이 영어로</category>
      <author>PSLeon</author>
      <guid isPermaLink="true">https://psleon.tistory.com/238</guid>
      <comments>https://psleon.tistory.com/238#entry238comment</comments>
      <pubDate>Wed, 17 Jul 2024 16:01:39 +0900</pubDate>
    </item>
    <item>
      <title>AI 학습 노트 공유</title>
      <link>https://psleon.tistory.com/237</link>
      <description>&lt;div style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/1xS1a/btsHM281OTg/GdHKgr0LUubsGNNtFfsGdk/PSLeon24_Artificial_Intelligence_%20Practice.pdf?attach=1&amp;amp;knm=tfile.pdf&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;PSLeon24_Artificial_Intelligence_ Practice.pdf&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;3.94MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;

&lt;h1&gt;Artificial Intelligence&lt;/h1&gt;
&lt;a id=&quot;user-content-artificial-intelligence&quot; style=&quot;color: #000000;&quot; href=&quot;https://github.com/PSLeon24/Artificial_Intelligence#artificial-intelligence&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Yeongmin Ko's learning notes&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Difference&lt;/h4&gt;
&lt;a id=&quot;user-content-difference&quot; style=&quot;color: #000000;&quot; href=&quot;https://github.com/PSLeon24/Artificial_Intelligence#difference&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #1f2328; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Classification: KNN, Decision Tree&lt;/li&gt;
&lt;li&gt;Regression: Linear and Logistic Regression&lt;/li&gt;
&lt;li&gt;Clustering: K-Means, Agglomerative Clustering, DBSCAN&lt;/li&gt;
&lt;li&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1252&quot; data-origin-height=&quot;324&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SubSC/btsHLViGEi6/uMsEsgGk42DssOFXlZkXpk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SubSC/btsHLViGEi6/uMsEsgGk42DssOFXlZkXpk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SubSC/btsHLViGEi6/uMsEsgGk42DssOFXlZkXpk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSubSC%2FbtsHLViGEi6%2FuMsEsgGk42DssOFXlZkXpk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;626&quot; height=&quot;324&quot; data-origin-width=&quot;1252&quot; data-origin-height=&quot;324&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. Clustering(K-Means, Agglomerative Clustering, DBSCAN)&lt;/h3&gt;
&lt;a id=&quot;user-content-1-clusteringk-means-agglomerative-clustering-dbscan&quot; style=&quot;color: #000000;&quot; href=&quot;https://github.com/PSLeon24/Artificial_Intelligence#1-clusteringk-means-agglomerative-clustering-dbscan&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #1f2328; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;군집화(Clustering): 서로 유사한 데이터 개체 집합을 하위 집합으로 분할하는 프로세스(The process of partitioning a set of data objects that are similar to each other into subsets)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;561&quot; data-origin-height=&quot;420&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bZP2K2/btsHMLfmdiU/yUVi5eeS0kEjqe6LJpLwWK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bZP2K2/btsHMLfmdiU/yUVi5eeS0kEjqe6LJpLwWK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bZP2K2/btsHMLfmdiU/yUVi5eeS0kEjqe6LJpLwWK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZP2K2%2FbtsHMLfmdiU%2FyUVi5eeS0kEjqe6LJpLwWK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;300&quot; height=&quot;420&quot; data-origin-width=&quot;561&quot; data-origin-height=&quot;420&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;li&gt;이때, 각 하위 집합을 클러스터라고 부름(A subset is called cluster)&lt;/li&gt;
&lt;li&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1204&quot; data-origin-height=&quot;558&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EU2Eh/btsHLrh0pF3/nLRpAkMY9DKmSlwJR7kmFk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EU2Eh/btsHLrh0pF3/nLRpAkMY9DKmSlwJR7kmFk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EU2Eh/btsHLrh0pF3/nLRpAkMY9DKmSlwJR7kmFk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEU2Eh%2FbtsHLrh0pF3%2FnLRpAkMY9DKmSlwJR7kmFk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;300&quot; height=&quot;558&quot; data-origin-width=&quot;1204&quot; data-origin-height=&quot;558&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;K-Means(K-평균)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;K는 클러스터(하위 집합)의 갯수(K is number of clusters)&lt;/li&gt;
&lt;li&gt;중심 기반 테크닉(A centroid-based technique)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Centroid는 각 클러스터에 속한 객체의 평균(Centroid is the average of objects belonging to each cluster)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1178&quot; data-origin-height=&quot;384&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cFRyHd/btsHNrAIBJr/i0wHz2szyzQpLcNKVFz8D0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cFRyHd/btsHNrAIBJr/i0wHz2szyzQpLcNKVFz8D0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cFRyHd/btsHNrAIBJr/i0wHz2szyzQpLcNKVFz8D0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcFRyHd%2FbtsHNrAIBJr%2Fi0wHz2szyzQpLcNKVFz8D0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;384&quot; data-origin-width=&quot;1178&quot; data-origin-height=&quot;384&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;위 그림의 경우, K = 4&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;작동 알고리즘
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Step 1. 군집의 갯수 k 결정(Determine parameter k (k &amp;gt; 0))&lt;/li&gt;
&lt;li&gt;Step 2. 초기 중심점 설정을 위해 k개의 점을 무작위로 선택&lt;/li&gt;
&lt;li&gt;Step 3. 모든 점을 가장 가까운 중심에 할당하여 k개의 클러스터를 형성&lt;/li&gt;
&lt;li&gt;Step 4. 각 클러스터의 중심점을 다시 계산(각 클러스터의 평균 계산)&lt;/li&gt;
&lt;li&gt;Step 5. 중심이 변하지 않을 때까지 3~4단계를 반복&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Agglomerative Clustering(병합 군집)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;상향식 전략(Bottom-up strategy)&lt;/li&gt;
&lt;li&gt;각 개체가 자체 클러스터를 형성하도록 하는 것부터 시작하여 모든 객체가 단일 클러스터에 포함될 때까지 클러스터를 점점 더 큰 클러스터로 반복적으로 병합&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;작동 알고리즘
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Step 1. 각 객체는 하나의 클러스터를 형성&lt;/li&gt;
&lt;li&gt;Step 2. 가장 낮은 수준에서 가장 가까운 두 개의 클러스터를 하나의 클러스터로 병합&lt;/li&gt;
&lt;li&gt;Step 3. 단일 클러스터가 될 때까지 2단계를 반복&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;DBSCAN(밀도 기반 클러스터링)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;어느 점을 기준으로 반경 radius 내에 점이 n개 이상 있으면 하나의 군집으로 인식하는 방식
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;점 p가 있을 때, 점 p에서 부터 거리 e(epsilon)내에 점이 m(minPts)개 있으면 하나의 군집으로 인식&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;627&quot; data-origin-height=&quot;410&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzUGhz/btsHMQuban3/FnRR83zVRhCHRwfY2whSDK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzUGhz/btsHMQuban3/FnRR83zVRhCHRwfY2whSDK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzUGhz/btsHMQuban3/FnRR83zVRhCHRwfY2whSDK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzUGhz%2FbtsHMQuban3%2FFnRR83zVRhCHRwfY2whSDK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;410&quot; data-origin-width=&quot;627&quot; data-origin-height=&quot;410&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. K-Nearest Neighbors&lt;/h3&gt;
&lt;a id=&quot;user-content-2-k-nearest-neighbors&quot; style=&quot;color: #000000;&quot; href=&quot;https://github.com/PSLeon24/Artificial_Intelligence#2-k-nearest-neighbors&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #1f2328; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;K 최근접 이웃(K-Nearest Neighbors)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;새로운 데이터가 들어왔을 때 기존 데이터 중 새로운 데이터와 비슷한 속성의 그룹으로 분류하는 알고리즘(Classifies unlabeled data points by assigning them the class of similar labeled data points)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;작동 알고리즘
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Step 1. 주변의 몇 개의 데이터와 비교할지 파라미터 k 결정(Determine parameter k (k &amp;gt; 0))&lt;/li&gt;
&lt;li&gt;Step 2. 새 데이터와 기존 데이터 간의 거리를 계산해서 두 데이터 간의 유사도 구하기(Determine similarity by calculating the distance between a test point and all other points in the dataset)&lt;/li&gt;
&lt;li&gt;Step 3. 2단계에서 계산한 거리 값에 따라 데이터 세트를 정렬(Sort the dataset according to the distance values)&lt;/li&gt;
&lt;li&gt;Step 4. k번째 최근접 이웃의 범주를 결정(Determine the category of the k-th nearest neighbors)&lt;/li&gt;
&lt;li&gt;Step 5. 새로운 데이터에 대해 k개의 최근접 이웃의 단순 다수결을 통해 범주를 결정(Use simple majority of the category of the k nearest neighbors as the category of a test point)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;장점(advantages)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;간단하고 상대적으로 효과적(Simple and relatively effective)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;단점(disadvantages)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Requires selection of an appropriate k
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;k가 너무 작으면 모델이 복잡해서 과적합(overfitting)이 발생&lt;/li&gt;
&lt;li&gt;k가 너무 크면 모델이 너무 단순해져서 과소적합(underfitting)이 발생&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Does not produce a model
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;별도의 학습 모델을 생성하지 않기 때문에 새로운 데이터에 대해 매번 계산이 필요하므로 계산 비용이 높음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Nominal feature and missing data require additional processing
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;KNN은 주로 수치형 데이터에 사용되기 때문에 명목형 변수에 대해서는 라벨 인코딩이나 원핫 인코딩과 같은 방식으로 수치형으로 변환해야 하며 결측값의 경우 별도의 방식으로 전처리해야 하는 추가 비용이 발생&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3. Naive Bayes&lt;/h3&gt;
&lt;a id=&quot;user-content-3-naive-bayes&quot; style=&quot;color: #000000;&quot; href=&quot;https://github.com/PSLeon24/Artificial_Intelligence#3-naive-bayes&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #1f2328; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;베이즈 정리(Bayes' theorem): 사전확률과 사후확률의 관계에 대해서 설명하는 정리&lt;/li&gt;
&lt;li&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;317&quot; data-origin-height=&quot;159&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/crwfPA/btsHLyaecbS/dBlZVcxHBBgTn07wpcRsKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/crwfPA/btsHLyaecbS/dBlZVcxHBBgTn07wpcRsKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/crwfPA/btsHLyaecbS/dBlZVcxHBBgTn07wpcRsKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcrwfPA%2FbtsHLyaecbS%2FdBlZVcxHBBgTn07wpcRsKK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;317&quot; height=&quot;159&quot; data-origin-width=&quot;317&quot; data-origin-height=&quot;159&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;li&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;382&quot; data-origin-height=&quot;86&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c3KuwV/btsHMt0lg2t/42CY11knpTXu6C5xok7Wk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c3KuwV/btsHMt0lg2t/42CY11knpTXu6C5xok7Wk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c3KuwV/btsHMt0lg2t/42CY11knpTXu6C5xok7Wk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc3KuwV%2FbtsHMt0lg2t%2F42CY11knpTXu6C5xok7Wk1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;191&quot; height=&quot;86&quot; data-origin-width=&quot;382&quot; data-origin-height=&quot;86&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;li&gt;용어 정리
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;가설(H, Hypothesis): 가설 혹은 어떤 사건이 발생했다는 주장&lt;/li&gt;
&lt;li&gt;증거(E, Evidence): 새로운 정보&lt;/li&gt;
&lt;li&gt;우도(가능도, likelihood) = P(E|H): 가설(H)이 주어졌을 때 증거(E)가 관찰될 가능성
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;확률 vs 우도
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;확률: 특정 경우에 대한 상대적 비율
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모든 경우에 대하여 더하면 1이 됨(Mutually exclusive &amp;amp; exhaustive)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;우도: '가설'에 대한 상대적 비율
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;가설은 얼마든지 세울 수 있고, 심지어 서로간에 포함관계가 될 수도 있음(Not mutually exclusive &amp;amp; Not exhaustive)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;사전확률(Prior probaility) = P(H): 어떤 사건이 발생했다는 주장의 신뢰도&lt;/li&gt;
&lt;li&gt;사후확률(Posterior probability) = P(H|E): 새로운 정보를 받은 후 갱신된 신뢰도&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;작동 알고리즘
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Step 1. 주어진 클래스 라벨에 대한 사전 확률(Prior probability)을 계산&lt;/li&gt;
&lt;li&gt;Step 2. 각 클래스의 각 속성으로 우도 확률(Likelihood probability) 계산&lt;/li&gt;
&lt;li&gt;Step 3. 이 값을 Bayes Formula에 대입하고 사후 확률(Posterior probability)을 계산&lt;/li&gt;
&lt;li&gt;Step 4. 1~3의 결과로 어떤 클래스가 높은 사후 확률을 갖게 될 지 알 수 있음(입력 값이 어떤 클래스에 더 높은 확률로 속할 수 있을지)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4. Association Mining(Apriori Algorithm)&lt;/h3&gt;
&lt;a id=&quot;user-content-4-association-miningapriori-algorithm&quot; style=&quot;color: #000000;&quot; href=&quot;https://github.com/PSLeon24/Artificial_Intelligence#4-association-miningapriori-algorithm&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #1f2328; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;연관 규칙(Association Rule)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터에서 변수 간의 유의미한 규칙을 발견하는 데 쓰이는 알고리즘&lt;/li&gt;
&lt;li&gt;e.g., 라면을 구매하는 고객이 햇반을 함께 구매할 가능성이 높다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;연관성 규칙 생성 과정
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Step 1. 지지도(Support, 교사건)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터에서 항목 집합이 얼마나 빈번하게 등장하는지를 나타내는 척도&lt;/li&gt;
&lt;li&gt;Support(X) = Count(X) / n&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Step 2. 신뢰도(Confidence, 조건부 확률)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;조건부 아이템(A)을 구매한 경우, 이중에서 얼마나 결론부 아이템(B)을 구매할 것인지를 나타내는 척도&lt;/li&gt;
&lt;li&gt;Confidence(A &amp;rarr; B) = Support(X, Y) / Support(X) = Support(X, Y) / Support(X)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Apriori Algorithm
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;연관 규칙(association rule)의 대표적인 알고리즘으로, 특정 사건이 발생했을 때 함께 발생하는 또 다른 사건의 규칙을 찾는 알고리즘&lt;/li&gt;
&lt;li&gt;작동 알고리즘
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Step 1. 모든 항목의 빈도를 계산하여 최소 지지도(minimum support)를 넘는 항목들만 남김&lt;/li&gt;
&lt;li&gt;Step 2. 남은 항목들을 조합하여 2개의 항목 집합으로 이루어진 후보 항목 집합을 만듦&lt;/li&gt;
&lt;li&gt;Step 3. 2단계에서 만든 후보 항목 집합으로부터 빈도를 계산하여 최소 지지도를 넘는 항목들만 남김&lt;/li&gt;
&lt;li&gt;Step 4. 후보 항목 집합이 더이상 나오지 않을 때까지 남은 항목들로부터 2~3단계를 반복 수행&lt;/li&gt;
&lt;li&gt;Step 5. 각 빈발 항목 집합에 대해 모든 가능한 연관 규칙을 생성하고 각각의 신뢰도(confidence)를 계산함&lt;/li&gt;
&lt;li&gt;Step 6. 신뢰도가 최소 신뢰도(minimum confidence)를 넘는 규칙들만 남김&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5. Collaborative Filtering&lt;/h3&gt;
&lt;a id=&quot;user-content-5-collaborative-filtering&quot; style=&quot;color: #000000;&quot; href=&quot;https://github.com/PSLeon24/Artificial_Intelligence#5-collaborative-filtering&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #1f2328; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;협업 필터링(Collaborative Filtering)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;제품 및 사용자 간의 유사성을 검토하고 이를 바탕으로 사용자 취향에 맞는 제품을 추천해주는 방식으로 사용자 기반 협업 필터링과 아이템 기반 협업 필터링으로 분류할 수 있음
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;e.g., 특정 사용자와 비슷한 취향을 가진 사람이 좋아하는 음악은 특정 사용자도 좋아할 가능성이 높음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Recommendation Systems Applications&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AmazonNetflixWatcha&lt;/p&gt;
&lt;table style=&quot;background-color: #ffffff; color: #1f2328; text-align: start; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;background-color: #000000;&quot;&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #1f2328; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;사용자 기반 협업 필터링(User-based filtering)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Basic idea: 타겟 사용자와 관심사가 같은 유사 사용자 찾기
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;e.g., 영화 추천 시스템에서 한 사용자가 특정 영화에 높은 평점을 줬다면, 이와 비슷한 취향을 가진 사용자들에게도 해당 영화를 추천&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;884&quot; data-origin-height=&quot;576&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dqU3GW/btsHMgtmecy/Qte7uinBzp4MhvkSbMRRx0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dqU3GW/btsHMgtmecy/Qte7uinBzp4MhvkSbMRRx0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dqU3GW/btsHMgtmecy/Qte7uinBzp4MhvkSbMRRx0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdqU3GW%2FbtsHMgtmecy%2FQte7uinBzp4MhvkSbMRRx0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;442&quot; height=&quot;576&quot; data-origin-width=&quot;884&quot; data-origin-height=&quot;576&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;li&gt;사용자 간의 유사성 계산(피어슨 상관계수 활용)&lt;/li&gt;
&lt;li&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;858&quot; data-origin-height=&quot;158&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8UYpT/btsHMP27nx3/USvOMESzMl1bUd1Hd0nNf0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8UYpT/btsHMP27nx3/USvOMESzMl1bUd1Hd0nNf0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8UYpT/btsHMP27nx3/USvOMESzMl1bUd1Hd0nNf0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8UYpT%2FbtsHMP27nx3%2FUSvOMESzMl1bUd1Hd0nNf0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;429&quot; height=&quot;158&quot; data-origin-width=&quot;858&quot; data-origin-height=&quot;158&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;li&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;658&quot; data-origin-height=&quot;202&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c38xxR/btsHLXgs581/z86oeNkgS5laY5DPtphN81/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c38xxR/btsHLXgs581/z86oeNkgS5laY5DPtphN81/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c38xxR/btsHLXgs581/z86oeNkgS5laY5DPtphN81/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc38xxR%2FbtsHLXgs581%2Fz86oeNkgS5laY5DPtphN81%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;329&quot; height=&quot;202&quot; data-origin-width=&quot;658&quot; data-origin-height=&quot;202&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;li&gt;사용자 A와 B의 공분산을 각각의 표준편차의 곱으로 나누면 피어슨 상관계수를 구할 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;아이템 기반 협업 필터링(Item-based filtering)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Basic idea: 아이템 간의 유사성을 사용하여 추천 제공
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;e.g., 대다수의 사용자가 A 영화에 이어 B 영화를 높게 평가했다면, A 영화를 선호하는 사용자에게 B 영화를 추천할 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;908&quot; data-origin-height=&quot;690&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dCX3Se/btsHNujRldU/JY7J75sr2Xf3cua6ItmQ00/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dCX3Se/btsHNujRldU/JY7J75sr2Xf3cua6ItmQ00/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dCX3Se/btsHNujRldU/JY7J75sr2Xf3cua6ItmQ00/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdCX3Se%2FbtsHNujRldU%2FJY7J75sr2Xf3cua6ItmQ00%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;454&quot; height=&quot;690&quot; data-origin-width=&quot;908&quot; data-origin-height=&quot;690&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;사용자 기반 협업 필터링의 장&amp;middot;단점
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;장점
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;직관성: 동일한 취향을 가진 사용자의 행동을 기반으로 추천을 제공하기 때문에 이해하기 쉬움&lt;/li&gt;
&lt;li&gt;개인화된 추천: 비슷한 사용자를 찾음으로써 개인화된 추천이 가능함&lt;/li&gt;
&lt;li&gt;신규 아이템 추천 가능: 새로운 아이템이 시스템에 추가되면 기존의 사용자 취향에 맞추어 쉽게 추천 가능&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;단점
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;확장성 문제: 사용자 수가 많아질수록 유사도 계산이 비효율적이게 됩니다. 특히 대규모 데이터셋에서는 계산 비용이 높음&lt;/li&gt;
&lt;li&gt;희소성 문제: 사용자-아이템 매트릭스가 희소할 경우(많은 빈칸이 있는 경우) 유사한 사용자를 찾기가 어려움&lt;/li&gt;
&lt;li&gt;콜드 스타트 문제: 새로운 사용자에 대해 충분한 정보가 없을 경우 추천이 어려움&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;아이템 기반 협업 필터링의 장&amp;middot;단점
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;장점
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;확장성: 아이템 수는 일반적으로 사용자 수보다 적기 때문에 유사도 계산이 더 효율적&lt;/li&gt;
&lt;li&gt;안정성: 아이템의 유사도는 시간에 따라 크게 변하지 않으므로 더 안정적인 추천이 가능함&lt;/li&gt;
&lt;li&gt;희소성 문제 해결: 사용자가 적어도 하나의 아이템을 평가했다면 추천이 가능함&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;단점
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;신규 아이템 문제: 새로운 아이템에 대한 유사도 정보를 얻기 어려워 추천이 힘들 수 있음&lt;/li&gt;
&lt;li&gt;개인화 부족: 사용자 기반 협업 필터링에 비해 개인화가 어려움. 특정 사용자의 취향보다는 아이템의 전반적인 유사성에 의존하기 때문&lt;/li&gt;
&lt;li&gt;초기 학습 비용: 초기 아이템 간 유사도 계산에 많은 시간이 소요될 수 있음&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;6. Linear Regression&lt;/h3&gt;
&lt;a id=&quot;user-content-6-linear-regression&quot; style=&quot;color: #000000;&quot; href=&quot;https://github.com/PSLeon24/Artificial_Intelligence#6-linear-regression&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #1f2328; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;선형 회귀(Linear Regression): 주어진 데이터에서 독립 변수(X)와 종속 변수(Y) 간의 선형 관계를 모델링하여 연속적인 값을 예측하는 머신러닝 알고리즘(머신러닝 알고리즘이지만 인공신경망 알고리즘의 기초가 됨)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;602&quot; data-origin-height=&quot;66&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bo1ST9/btsHMPB0YEd/9yJkqbXoIhq69IN2XgvdZK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bo1ST9/btsHMPB0YEd/9yJkqbXoIhq69IN2XgvdZK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bo1ST9/btsHMPB0YEd/9yJkqbXoIhq69IN2XgvdZK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbo1ST9%2FbtsHMPB0YEd%2F9yJkqbXoIhq69IN2XgvdZK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;301&quot; height=&quot;66&quot; data-origin-width=&quot;602&quot; data-origin-height=&quot;66&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;li&gt;위 수식에서  는 회귀 계수, ϵ은 오차항이며, 회귀 계수를 찾기 위해 최소제곱법을 사용하여 오차 제곱합을 최소화&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;560&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/u7yrD/btsHMP9RpHN/G02Hdj0KQeIWqStVvOWrqK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/u7yrD/btsHMP9RpHN/G02Hdj0KQeIWqStVvOWrqK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/u7yrD/btsHMP9RpHN/G02Hdj0KQeIWqStVvOWrqK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fu7yrD%2FbtsHMP9RpHN%2FG02Hdj0KQeIWqStVvOWrqK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;706&quot; height=&quot;560&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;560&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;7. Perceptron &amp;amp; Adaline&lt;/h3&gt;
&lt;a id=&quot;user-content-7-perceptron--adaline&quot; style=&quot;color: #000000;&quot; href=&quot;https://github.com/PSLeon24/Artificial_Intelligence#7-perceptron--adaline&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #1f2328; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;퍼셉트론(Perceptron): 퍼셉트론은 단층 신경망의 가장 기본적인 형태로, 선형 회귀와 유사한 구조를 가지며 이진 분류 문제를 해결하기 위해 사용
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;퍼셉트론은 입력값에 가중치를 곱한 후, 그 합을 활성화 함수(주로 계단 함수)를 통해 이진 출력을 생성&lt;/li&gt;
&lt;li&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;614&quot; data-origin-height=&quot;70&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OYDlW/btsHM5YYbtD/XoKF5LGW1XKBc1afUzQj40/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OYDlW/btsHM5YYbtD/XoKF5LGW1XKBc1afUzQj40/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OYDlW/btsHM5YYbtD/XoKF5LGW1XKBc1afUzQj40/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOYDlW%2FbtsHM5YYbtD%2FXoKF5LGW1XKBc1afUzQj40%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;307&quot; height=&quot;70&quot; data-origin-width=&quot;614&quot; data-origin-height=&quot;70&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;li&gt;위 수식에서 step은 가중치 합을 입력으로 받아서 최종 출력을 결정하는 계단 함수이고, w는 가중치 벡터,  는 입력 벡터,  는 바이어스&lt;/li&gt;
&lt;li&gt;계단 함수(step)의 수식:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;364&quot; data-origin-height=&quot;108&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dK5hwy/btsHMTEqTNq/hkjOs1gOCSBdWU7T7JrDv1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dK5hwy/btsHMTEqTNq/hkjOs1gOCSBdWU7T7JrDv1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dK5hwy/btsHMTEqTNq/hkjOs1gOCSBdWU7T7JrDv1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdK5hwy%2FbtsHMTEqTNq%2FhkjOs1gOCSBdWU7T7JrDv1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;182&quot; height=&quot;108&quot; data-origin-width=&quot;364&quot; data-origin-height=&quot;108&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;504&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Od6B4/btsHMTj9YLS/2x2kavRtQ1IbWVkqQ6gxlk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Od6B4/btsHMTj9YLS/2x2kavRtQ1IbWVkqQ6gxlk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Od6B4/btsHMTj9YLS/2x2kavRtQ1IbWVkqQ6gxlk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOd6B4%2FbtsHMTj9YLS%2F2x2kavRtQ1IbWVkqQ6gxlk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;703&quot; height=&quot;504&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;504&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;li&gt;아달린(Adaline): 퍼셉트론과 유사하지만, 출력에 활성화 함수(계단 함수)를 적용하지 않고 선형 함수의 결과를 학습에 사용하는 것이 특징
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;532&quot; data-origin-height=&quot;62&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/du7Yyv/btsHLeiMKph/A2GVHCi3KsNsctM8aEnU7k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/du7Yyv/btsHLeiMKph/A2GVHCi3KsNsctM8aEnU7k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/du7Yyv/btsHLeiMKph/A2GVHCi3KsNsctM8aEnU7k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdu7Yyv%2FbtsHLeiMKph%2FA2GVHCi3KsNsctM8aEnU7k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;266&quot; height=&quot;62&quot; data-origin-width=&quot;532&quot; data-origin-height=&quot;62&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;li&gt;위 수식에서 w는 가중치 벡터,  는 입력 벡터,  는 바이어스, 아데린은 평균 제곱 오차 함수를 사용하여 가중치를 업데이트하며, 연속적인 오차를 최소화&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;563&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mha1m/btsHLHkFzU5/74NRYiWPluL2MckiqOrqF0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mha1m/btsHLHkFzU5/74NRYiWPluL2MckiqOrqF0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mha1m/btsHLHkFzU5/74NRYiWPluL2MckiqOrqF0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fmha1m%2FbtsHLHkFzU5%2F74NRYiWPluL2MckiqOrqF0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;563&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;563&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;8. Logistic Regression&lt;/h3&gt;
&lt;a id=&quot;user-content-8-logistic-regression&quot; style=&quot;color: #000000;&quot; href=&quot;https://github.com/PSLeon24/Artificial_Intelligence#8-logistic-regression&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #1f2328; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;로지스틱 회귀(Logistic Regression): 이진 분류 문제를 해결하기 위해 고안된 방법으로, 입력 변수들의 선형 결합을 구한 후 이를 로짓 함수(또는 로지스틱 함수)를 통과시켜 확률을 예측
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;로짓 함수는 S자 형태를 띠며 0과 1 사이의 값을 가짐. 이 함수를 통과한 결과는 특정 사건이 발생할 확률로 해석되며, 이진 분류에서는 양성 클래스에 속할 확률로 해석&lt;/li&gt;
&lt;li&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;678&quot; data-origin-height=&quot;118&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbdcdz/btsHLP3QfHZ/kmhKpyObXzlSztqXDpz1S1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbdcdz/btsHLP3QfHZ/kmhKpyObXzlSztqXDpz1S1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbdcdz/btsHLP3QfHZ/kmhKpyObXzlSztqXDpz1S1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbbdcdz%2FbtsHLP3QfHZ%2FkmhKpyObXzlSztqXDpz1S1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;339&quot; height=&quot;118&quot; data-origin-width=&quot;678&quot; data-origin-height=&quot;118&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;li&gt;위 수식에서  (Y=1)은 양성 클래스에 속할 확률을 의미하며, X는 입력 변수,  는 회귀 계수를 나타냄. 모델은 주어진 데이터에서 확률을 최대화하는 회귀 계수를 찾기 위해 최대 우도 추정(MLE)법을 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Odds(오즈): 성공 확률과 실패 확률의 비율 &amp;rarr; 특정 사건이 발생할 확률을 그 사건이 발생하지 않을 확률과 비교한 값
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;0부터 1까지 증가할 때 오즈 비의 값은 처음에는 천천히 증가하다가 p가 1에 가까워지면 급격히 증가함&lt;/li&gt;
&lt;li&gt;Odds Ratio(오즈 비): p / (1 - p) (p = 성공 확률)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;e.g., 어떤 사건이 발생할 확률이 80%일 때의 odds ratio는?
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;0.8 / (1 - 0.8) = 0.8 / 0.2 = 4&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Logit function(로짓 함수): 오즈의 자연 로그를 취한 값
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;logit(p) = log(p / (1 - p))&lt;/li&gt;
&lt;li&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;450&quot; data-origin-height=&quot;300&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/clEYLV/btsHM6XSitd/lKeFFSY73SKgmcZBTxY3T0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/clEYLV/btsHM6XSitd/lKeFFSY73SKgmcZBTxY3T0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/clEYLV/btsHM6XSitd/lKeFFSY73SKgmcZBTxY3T0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FclEYLV%2FbtsHM6XSitd%2FlKeFFSY73SKgmcZBTxY3T0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;450&quot; height=&quot;300&quot; data-origin-width=&quot;450&quot; data-origin-height=&quot;300&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;li&gt;p가 0.5일 때 0이 되고 가 0과 1일 때 각각 무한대로 음수와 양수가 되는 특징을 가짐&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;538&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vnZro/btsHMAd3kTR/MhOcQNwdGG3eIyIKoAoUzk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vnZro/btsHMAd3kTR/MhOcQNwdGG3eIyIKoAoUzk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vnZro/btsHMAd3kTR/MhOcQNwdGG3eIyIKoAoUzk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvnZro%2FbtsHMAd3kTR%2FMhOcQNwdGG3eIyIKoAoUzk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;704&quot; height=&quot;538&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;538&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;li&gt;활성화 함수: 선형 함수를 통과시켜 얻은 값을 임계 함수에 보내기 전에 변형시키는데 필요한 함수로, 주로 비선형 함수를 사용
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Why does Activation function use nonlinear function?
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;선형 함수(단순한 규칙)의 경우 직선으로 data를 구분하는데, 이는 아무리 층을 깊게 쌓아도 하나의 직선으로 규칙이 표현된다는 것을 뜻함. 즉, 선형 변환을 계속 반복하더라도 결국 선형 함수이므로 별 의미가 없음.&lt;/li&gt;
&lt;li&gt;그러나, 비선형 함수의 경우 여러 데이터의 복잡한 패턴을 학습할 수 있고, 계속 비선형을 유지하기 때문에 다층 구조의 유효성을 충족시킬 수 있음. 또한, 비선형 함수는 대부분 미분이 가능하기 때문에 활성화 함수로 적합함.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Sigmoid function(시그모이드 함수)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1033&quot; data-origin-height=&quot;499&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDuEY9/btsHLNSvTYY/D3xSKH6VIT5v7nuhk8X5V0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDuEY9/btsHLNSvTYY/D3xSKH6VIT5v7nuhk8X5V0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDuEY9/btsHLNSvTYY/D3xSKH6VIT5v7nuhk8X5V0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDuEY9%2FbtsHLNSvTYY%2FD3xSKH6VIT5v7nuhk8X5V0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1033&quot; height=&quot;499&quot; data-origin-width=&quot;1033&quot; data-origin-height=&quot;499&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;9. Single Layer Neural Network&lt;/h3&gt;
&lt;a id=&quot;user-content-9-single-layer-neural-network&quot; style=&quot;color: #000000;&quot; href=&quot;https://github.com/PSLeon24/Artificial_Intelligence#9-single-layer-neural-network&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #1f2328; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;단일층 신경망: 입력층과 출력층으로 구성된 가장 간단한 형태의 신경망. 주로 퍼셉트론, 아데린, 로지스틱 회귀와 같은 모델들을 포함할 수 있으며, 다양한 활성화 함수를 사용할 수 있어 비선형 문제를 해결할 수 있음&lt;/li&gt;
&lt;li&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;296&quot; data-origin-height=&quot;66&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NTbF1/btsHLU46ozL/ts1F7n6aYdLL3a3tA4bmeK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NTbF1/btsHLU46ozL/ts1F7n6aYdLL3a3tA4bmeK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NTbF1/btsHLU46ozL/ts1F7n6aYdLL3a3tA4bmeK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNTbF1%2FbtsHLU46ozL%2Fts1F7n6aYdLL3a3tA4bmeK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;148&quot; height=&quot;66&quot; data-origin-width=&quot;296&quot; data-origin-height=&quot;66&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;li&gt;위 수식에서 f는 활성화 함수(예: 시그모이드 함수, ReLU 등), w는 가중치 벡터,  는 입력 벡터,  는 바이어스&lt;/li&gt;
&lt;li&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;568&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/by6YjU/btsHLHkFzTi/MCXwEKP9oKVrrMXpKTUkf0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/by6YjU/btsHLHkFzTi/MCXwEKP9oKVrrMXpKTUkf0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/by6YjU/btsHLHkFzTi/MCXwEKP9oKVrrMXpKTUkf0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fby6YjU%2FbtsHLHkFzTi%2FMCXwEKP9oKVrrMXpKTUkf0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;702&quot; height=&quot;568&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;568&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;10. Multi Layer Neural Network&lt;/h3&gt;
&lt;a id=&quot;user-content-10-multi-layer-neural-network&quot; style=&quot;color: #000000;&quot; href=&quot;https://github.com/PSLeon24/Artificial_Intelligence#10-multi-layer-neural-network&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;11. Convolutional Neural Network&lt;/h3&gt;
&lt;a id=&quot;user-content-11-convolutional-neural-network&quot; style=&quot;color: #000000;&quot; href=&quot;https://github.com/PSLeon24/Artificial_Intelligence#11-convolutional-neural-network&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;12. Recurrent Neural Network&lt;/h3&gt;
&lt;a id=&quot;user-content-12-recurrent-neural-network&quot; style=&quot;color: #000000;&quot; href=&quot;https://github.com/PSLeon24/Artificial_Intelligence#12-recurrent-neural-network&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;13. Long Short-Term Memory&lt;/h3&gt;
&lt;a id=&quot;user-content-13-long-short-term-memory&quot; style=&quot;color: #000000;&quot; href=&quot;https://github.com/PSLeon24/Artificial_Intelligence#13-long-short-term-memory&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;div style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Similarity Measure&lt;/h2&gt;
&lt;a id=&quot;user-content-similarity-measure&quot; style=&quot;color: #000000;&quot; href=&quot;https://github.com/PSLeon24/Artificial_Intelligence#similarity-measure&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. Pearson Correlation&lt;/h3&gt;
&lt;a id=&quot;user-content-1-pearson-correlation&quot; style=&quot;color: #000000;&quot; href=&quot;https://github.com/PSLeon24/Artificial_Intelligence#1-pearson-correlation&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #1f2328; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;피어슨 상관계수(Pearson Correlation): -1 ~ 1 사이의 가능한 유사도(Possible similarity values between -1 and 1)&lt;/li&gt;
&lt;li&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1264&quot; data-origin-height=&quot;350&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bj38mM/btsHNDt6qLy/1aSJvlrsSbch3M8iSFsHp0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bj38mM/btsHNDt6qLy/1aSJvlrsSbch3M8iSFsHp0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bj38mM/btsHNDt6qLy/1aSJvlrsSbch3M8iSFsHp0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbj38mM%2FbtsHNDt6qLy%2F1aSJvlrsSbch3M8iSFsHp0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;632&quot; height=&quot;350&quot; data-origin-width=&quot;1264&quot; data-origin-height=&quot;350&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;1에 가까울 수록 양의 상관관계&lt;/li&gt;
&lt;li&gt;-1에 가까울 수록 음의 상관관계&lt;/li&gt;
&lt;li&gt;0에 가까울 수록 상관관계 없음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. Cosine Similarity&lt;/h3&gt;
&lt;a id=&quot;user-content-2-cosine-similarity&quot; style=&quot;color: #000000;&quot; href=&quot;https://github.com/PSLeon24/Artificial_Intelligence#2-cosine-similarity&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #1f2328; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;코사인 유사도: 벡터 간의 각도를 측정해서 유사도 계산
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;내적 공식: A&amp;middot;B = ||A|| * ||B|| * cos&amp;theta;&lt;/li&gt;
&lt;li&gt;위 공식을 통해 cos&amp;theta; = A&amp;middot;B / (||A|| * ||B||) 를 구할 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;740&quot; data-origin-height=&quot;176&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eub8cN/btsHLtNLf79/ZSkVjLNVZt23pvMq50PLE1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eub8cN/btsHLtNLf79/ZSkVjLNVZt23pvMq50PLE1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eub8cN/btsHLtNLf79/ZSkVjLNVZt23pvMq50PLE1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Feub8cN%2FbtsHLtNLf79%2FZSkVjLNVZt23pvMq50PLE1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;370&quot; height=&quot;176&quot; data-origin-width=&quot;740&quot; data-origin-height=&quot;176&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;div style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Evaluation Metrics&lt;/h2&gt;
&lt;a id=&quot;user-content-evaluation-metrics&quot; style=&quot;color: #000000;&quot; href=&quot;https://github.com/PSLeon24/Artificial_Intelligence#evaluation-metrics&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. Clustering&lt;/h3&gt;
&lt;a id=&quot;user-content-1-clustering&quot; style=&quot;color: #000000;&quot; href=&quot;https://github.com/PSLeon24/Artificial_Intelligence#1-clustering&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #1f2328; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Adjusted Rand Index
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;590&quot; data-origin-height=&quot;148&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KhAtA/btsHLhfsOcG/ysrfThZSTClRk1j9fMOUik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KhAtA/btsHLhfsOcG/ysrfThZSTClRk1j9fMOUik/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KhAtA/btsHLhfsOcG/ysrfThZSTClRk1j9fMOUik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKhAtA%2FbtsHLhfsOcG%2FysrfThZSTClRk1j9fMOUik%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;590&quot; height=&quot;148&quot; data-origin-width=&quot;590&quot; data-origin-height=&quot;148&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. Classification&lt;/h3&gt;
&lt;a id=&quot;user-content-2-classification&quot; style=&quot;color: #000000;&quot; href=&quot;https://github.com/PSLeon24/Artificial_Intelligence#2-classification&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #1f2328; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;혼동행렬(Confusion matrix)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;혼동행렬: 예측값이 실제값과 일치하는지 여부에 따라 분류한 표(a table that categorizes predictions according to whether they match the actual value)&lt;/li&gt;
&lt;li&gt;The most common performance measures consider the model's ability to discern one class versus all others
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;The class of interest is known as the positive&lt;/li&gt;
&lt;li&gt;All others are known as negative&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;The relationship between the positive class and negative class predictions can be depicted as a 2 x 2 confusion matrix
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;True Positive(TP): Correctly classfied as the class of interest&lt;/li&gt;
&lt;li&gt;True Negative(TN): Correctly classified as not the class of interest&lt;/li&gt;
&lt;li&gt;False Positive(FP): Incorrectly classified as the class of interest&lt;/li&gt;
&lt;li&gt;False Negative(FN): Incorrectly classified as not the class of interest&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dSdz0E/btsHNcqfDs6/e17PENkOfoyj2nI2KCmFM1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dSdz0E/btsHNcqfDs6/e17PENkOfoyj2nI2KCmFM1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dSdz0E/btsHNcqfDs6/e17PENkOfoyj2nI2KCmFM1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdSdz0E%2FbtsHNcqfDs6%2Fe17PENkOfoyj2nI2KCmFM1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1280&quot; height=&quot;720&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;T와 F의 경우, True(참)와 False(거짓)을 나타내며, 예측값과 실제값이 일치하는 경우 T가 오고 예측값과 실제값이 다른 경우 F가 옴&lt;/li&gt;
&lt;li&gt;P와 N의 경우, Positive(긍정)와 Negative(부정)을 나타내며, 예측값이 양성 클래스(1)을 나타내는 경우 P가 오고 예측값이 음성 클래스(0)을 나타내는 경우 N이 옴&lt;/li&gt;
&lt;li&gt;e.g., 예측값=0, 실제값=0인 경우, TN&lt;/li&gt;
&lt;li&gt;e.g., 예측값=1, 실제값=0인 경우, FP&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;정확도(Accuracy): 2 x 2 혼동행렬에서, 아래와 같이 정확도를 수식화할 수 있음
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;652&quot; data-origin-height=&quot;126&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bem4aM/btsHMBxfdmY/ks6We0zXjexCikKm4V9KW1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bem4aM/btsHMBxfdmY/ks6We0zXjexCikKm4V9KW1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bem4aM/btsHMBxfdmY/ks6We0zXjexCikKm4V9KW1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbem4aM%2FbtsHMBxfdmY%2Fks6We0zXjexCikKm4V9KW1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;326&quot; height=&quot;126&quot; data-origin-width=&quot;652&quot; data-origin-height=&quot;126&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;오분류율(Error rate): 오분류율은 1에서 정확도를 빼면 됨
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;864&quot; data-origin-height=&quot;114&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/l8vWZ/btsHLPJxfgT/7JZ50fKEKkqapo6VN5zsZ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/l8vWZ/btsHLPJxfgT/7JZ50fKEKkqapo6VN5zsZ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/l8vWZ/btsHLPJxfgT/7JZ50fKEKkqapo6VN5zsZ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fl8vWZ%2FbtsHLPJxfgT%2F7JZ50fKEKkqapo6VN5zsZ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;432&quot; height=&quot;114&quot; data-origin-width=&quot;864&quot; data-origin-height=&quot;114&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;정밀도(Precision): 정밀도는 모델의 예측값이 긍정인 것들 중 실제값이 긍정인 비율을 나타냄
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;420&quot; data-origin-height=&quot;126&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FMWIR/btsHLtz9VSO/mBoO1x2wKBeL1jZsBD10Ik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FMWIR/btsHLtz9VSO/mBoO1x2wKBeL1jZsBD10Ik/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FMWIR/btsHLtz9VSO/mBoO1x2wKBeL1jZsBD10Ik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFMWIR%2FbtsHLtz9VSO%2FmBoO1x2wKBeL1jZsBD10Ik%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;210&quot; height=&quot;126&quot; data-origin-width=&quot;420&quot; data-origin-height=&quot;126&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;li&gt;정밀도는 재현율과 헷갈리기 쉬운데, 예측값이 긍정이라는 키워드를 기억하면 분모의 수식인 TP + FP를 기억하기 쉬움&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;재현율(Recall): 재현율은 실제값이 긍정인 것들 중 예측값이 긍정인 비율을 나타냄
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;336&quot; data-origin-height=&quot;126&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/U6Z59/btsHLFf4Hx7/RsK7skqM5cT9hgrShaSaS0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/U6Z59/btsHLFf4Hx7/RsK7skqM5cT9hgrShaSaS0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/U6Z59/btsHLFf4Hx7/RsK7skqM5cT9hgrShaSaS0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FU6Z59%2FbtsHLFf4Hx7%2FRsK7skqM5cT9hgrShaSaS0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;168&quot; height=&quot;126&quot; data-origin-width=&quot;336&quot; data-origin-height=&quot;126&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;li&gt;재현율은 정밀도와 헷갈리기 쉬운데, 실제값이 긍정이라는 키워드를 기억하면 분모의 수식인 TP + FN을 기억하기 쉬움&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;F 점수(F-Score): 정밀도와 재현율의 조화평균
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;746&quot; data-origin-height=&quot;132&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SsnbW/btsHMAd3kTw/p7pPYUP0g8YCS2AkyTVtg0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SsnbW/btsHMAd3kTw/p7pPYUP0g8YCS2AkyTVtg0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SsnbW/btsHMAd3kTw/p7pPYUP0g8YCS2AkyTVtg0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSsnbW%2FbtsHMAd3kTw%2Fp7pPYUP0g8YCS2AkyTVtg0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;326&quot; height=&quot;132&quot; data-origin-width=&quot;746&quot; data-origin-height=&quot;132&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3. Regression&lt;/h3&gt;
&lt;a id=&quot;user-content-3-regression&quot; style=&quot;color: #000000;&quot; href=&quot;https://github.com/PSLeon24/Artificial_Intelligence#3-regression&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #1f2328; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;평균 제곱 오차(Mean Squared Error, MSE)&lt;/li&gt;
&lt;li&gt;평균 절대 오차(Mean absolute error, MAE)&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>AI &amp;amp; BigData</category>
      <author>PSLeon</author>
      <guid isPermaLink="true">https://psleon.tistory.com/237</guid>
      <comments>https://psleon.tistory.com/237#entry237comment</comments>
      <pubDate>Mon, 3 Jun 2024 15:24:46 +0900</pubDate>
    </item>
    <item>
      <title>ADSP 3시간 공부 합격 후기</title>
      <link>https://psleon.tistory.com/236</link>
      <description>&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1170&quot; data-origin-height=&quot;2532&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cvDftY/btsHKJbf8AF/s3VSv8bzRdLbPtApdmJYTK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cvDftY/btsHKJbf8AF/s3VSv8bzRdLbPtApdmJYTK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cvDftY/btsHKJbf8AF/s3VSv8bzRdLbPtApdmJYTK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcvDftY%2FbtsHKJbf8AF%2Fs3VSv8bzRdLbPtApdmJYTK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1170&quot; height=&quot;2532&quot; data-origin-width=&quot;1170&quot; data-origin-height=&quot;2532&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;어제 제 41회 ADSP 사전 결과가 공개됐다. 필자는 전날 오후 딱 3시간만 공부하고 시험을 치러갔는데 생각보다 어려워서 60점 근처에서 턱걸이 할 줄 알았는데 다행히 70점이라는 안정적인 점수로 합격했다.&lt;br&gt;평소 인공지능과 데이터 분석을 공부하였기 때문에 완전 노베이스라고는 할 수 없지만 시험 전날 벼락치기했던 1, 2과목에서는 정말 노베이스였다.&lt;br&gt;나의 시험 합격 전략은 다음과 같았다.&lt;br&gt;상대적으로 쉬운 1~2과목에서 15문제 이상 맞추고 3과목 중에서는 아는 문제와 찍는 문제를 포함해서 15문제 이상을 맞추자는 것이었다.&lt;br&gt;다행스럽게 1~2과목은 벼락치기가 가능해서 각각 8문제씩 16문제를 맞췄다. 그리고 3과목에서는 19문제를 맞췄다.&lt;br&gt;그러면 지금부터 어떻게 1~2과목에서 고득점을 할 수 있었는지에 대해 공유하고자 한다.&lt;br&gt;필자는 만약 공부하고자 하는 자료가 유튜브에 있다면 텍스트로 공부하기 보다는 영상을 배속으로 반복재생하여 머릿 속에 주입하는 것을 선호한다.&lt;br&gt;그래서 아래의 영상을 3회 반복 시청하고 시험에 임했다.&lt;br&gt;딱히 교재도 필요없고 반복 시청하면서 앞글자 암기와 용어만 익숙해지면 누구든 합격할 수 있을 것이라고 판단된다.&lt;br&gt;&lt;br&gt;&lt;a href=&quot;https://youtu.be/6h6Dsh6IMgA?feature=shared&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://youtu.be/6h6Dsh6IMgA?feature=shared&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <category>AI &amp;amp; BigData</category>
      <author>PSLeon</author>
      <guid isPermaLink="true">https://psleon.tistory.com/236</guid>
      <comments>https://psleon.tistory.com/236#entry236comment</comments>
      <pubDate>Sat, 1 Jun 2024 20:02:21 +0900</pubDate>
    </item>
    <item>
      <title>[파이토치] 메타코드M '딥러닝 입문 + Pytorch 실습 부트캠프' 강의 후기(1/8)</title>
      <link>https://psleon.tistory.com/235</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;[파이토치]&amp;nbsp;메타코드M&amp;nbsp;'딥러닝&amp;nbsp;입문&amp;nbsp;+&amp;nbsp;Pytorch&amp;nbsp;실습&amp;nbsp;부트캠프'&amp;nbsp;강의&amp;nbsp;후기(1/8)&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;922&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dxss06/btsGO8WgkBO/1DVCSfd0qsbYxzMKbOEhnk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dxss06/btsGO8WgkBO/1DVCSfd0qsbYxzMKbOEhnk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dxss06/btsGO8WgkBO/1DVCSfd0qsbYxzMKbOEhnk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdxss06%2FbtsGO8WgkBO%2F1DVCSfd0qsbYxzMKbOEhnk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;620&quot; height=&quot;447&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;922&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;위 그림은 최근 딥러닝 프레임워크의 점유율을 나타낸 그림인데, 시간이 지남에 따라 텐서플로의 비중은 줄어들고 파이토치가 급격하게 늘고 있는 것을 확인할 수 있다. 물론 최근 SOTA급 구현 코드나 논문들의 github 코드를 확인하면 대다수가 파이토치로 구현된 것을 알 수 있는데, 꼼꼼한 커리큘럼으로 파이토치를 배울 수 있는 곳은 드물었다. 하지만 필자가 평소에 AI 학습이나 선형대수학 공부를 위해 활용했던 사이트인 메타코드M에서 이번에 강의를 새롭게 런칭했고, 4월 말까지는 무료로 오픈한다고 해서 강의를 신청했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;혹시나, 본 강의에 관심이 있는 독자는 아래의 링크를 클릭하여 상세한 정보를 확인하면 된다.&lt;/p&gt;
&lt;figure id=&quot;og_1713674184575&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;메타코드M&quot; data-og-description=&quot;빅데이터 , AI 강의 플랫폼 &amp;amp; IT 현직자 모임 플랫폼ㅣ메타코드 커뮤니티 일원이 되시기 바랍니다.&quot; data-og-host=&quot;mcode.co.kr&quot; data-og-source-url=&quot;https://mcode.co.kr/video/list2?viewMode=view&amp;amp;idx=106&quot; data-og-url=&quot;http://mcode.co.kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bTsw7C/hyVSS5L6Xj/OvWHrLGAMF2Es942cR2eAK/img.jpg?width=250&amp;amp;height=100&amp;amp;face=0_0_250_100,https://scrap.kakaocdn.net/dn/p4Ji5/hyVS2UMEps/5g0TUKmclExZrcuO0ke3Z1/img.png?width=1920&amp;amp;height=400&amp;amp;face=0_0_1920_400,https://scrap.kakaocdn.net/dn/N89Zl/hyVSUbqvDv/GYWHnRGYbgUCNYVmJu0ZH1/img.png?width=1920&amp;amp;height=400&amp;amp;face=0_0_1920_400&quot;&gt;&lt;a href=&quot;https://mcode.co.kr/video/list2?viewMode=view&amp;amp;idx=106&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://mcode.co.kr/video/list2?viewMode=view&amp;amp;idx=106&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bTsw7C/hyVSS5L6Xj/OvWHrLGAMF2Es942cR2eAK/img.jpg?width=250&amp;amp;height=100&amp;amp;face=0_0_250_100,https://scrap.kakaocdn.net/dn/p4Ji5/hyVS2UMEps/5g0TUKmclExZrcuO0ke3Z1/img.png?width=1920&amp;amp;height=400&amp;amp;face=0_0_1920_400,https://scrap.kakaocdn.net/dn/N89Zl/hyVSUbqvDv/GYWHnRGYbgUCNYVmJu0ZH1/img.png?width=1920&amp;amp;height=400&amp;amp;face=0_0_1920_400');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;메타코드M&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;빅데이터 , AI 강의 플랫폼 &amp;amp; IT 현직자 모임 플랫폼ㅣ메타코드 커뮤니티 일원이 되시기 바랍니다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;mcode.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-04-21 오후 1.39.51.png&quot; data-origin-width=&quot;2632&quot; data-origin-height=&quot;956&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cF9ZRn/btsGMVD5j3b/xZDGzK6uqk0fEtuFMaPPn0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cF9ZRn/btsGMVD5j3b/xZDGzK6uqk0fEtuFMaPPn0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cF9ZRn/btsGMVD5j3b/xZDGzK6uqk0fEtuFMaPPn0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcF9ZRn%2FbtsGMVD5j3b%2FxZDGzK6uqk0fEtuFMaPPn0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2632&quot; height=&quot;956&quot; data-filename=&quot;스크린샷 2024-04-21 오후 1.39.51.png&quot; data-origin-width=&quot;2632&quot; data-origin-height=&quot;956&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;강의는 오리엔테이션, 파이토치 기초, 파이토치 연습, 마무리의 총 4개의 목차로 구성되어 있다. 하지만 오리엔테이션과 마무리를 제외하면 핵심적인 부분은 챕터 2와 챕터 3이다. 챕터 2는 Tensor를 다루는 내용 3강과 기본적인 뉴럴 네트워크를 다루는 내용 2강, Loss를 다루는 내용이 3강으로 구성되어 있다. 그리고 챕터 3는 선형회귀로 예측하는 내용 3강, 로지스틱 회귀로 분류하는 내용 3강, 비전 분류(CNN 포함)와 관련된 내용 4강, 시계열 모델을 다루는 내용 3강으로 구성되어 있다. 앞으로 후기글은 'Tensor 다루기', '뉴럴 네트워크', 'Loss', '선형회귀', '로지스틱 회귀', '비전 분류', '시계열 모델'에 대해 각각 강의 후기를 작성할 예정이다. 그리고 오늘은 오리엔테이션 강의 후기에 대한 내용을 작성하고자 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-04-21 오후 1.54.17.png&quot; data-origin-width=&quot;2692&quot; data-origin-height=&quot;964&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/srfQH/btsGNBru8tk/tErKSUvW3ktwIulkTJ1Oz0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/srfQH/btsGNBru8tk/tErKSUvW3ktwIulkTJ1Oz0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/srfQH/btsGNBru8tk/tErKSUvW3ktwIulkTJ1Oz0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsrfQH%2FbtsGNBru8tk%2FtErKSUvW3ktwIulkTJ1Oz0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2692&quot; height=&quot;964&quot; data-filename=&quot;스크린샷 2024-04-21 오후 1.54.17.png&quot; data-origin-width=&quot;2692&quot; data-origin-height=&quot;964&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;오리엔테이션은 강좌에 대한 간략적인 소개와 딥러닝이 무엇인지, 딥러닝 활용사례에는 무엇이 있는지 소개하는 3개의 강의로 구성되어 있다. 그리고 본 강의에서 파이토치를 실습할 때는 윈도우 환경, 맥 환경 그리고 컴퓨터의 사양과 상관없이 위 그림에서 알 수 있듯이 구글의 colab을 사용한다. 따라서 클라우드 환경에서 GPU를 활용하여 파이토치 실습이 가능하다는 장점이 있다. 그리고 강사님께서 코랩을 활용하면서 실제로 많이 쓰이는 단축키들도 초반에 잘 알려줘서 도움이 되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-04-21 오후 1.58.30.png&quot; data-origin-width=&quot;2844&quot; data-origin-height=&quot;1612&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Z6efa/btsGN23if9O/ZZJAMgPaChVnxRz9WIK7kK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Z6efa/btsGN23if9O/ZZJAMgPaChVnxRz9WIK7kK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Z6efa/btsGN23if9O/ZZJAMgPaChVnxRz9WIK7kK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZ6efa%2FbtsGN23if9O%2FZZJAMgPaChVnxRz9WIK7kK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2844&quot; height=&quot;1612&quot; data-filename=&quot;스크린샷 2024-04-21 오후 1.58.30.png&quot; data-origin-width=&quot;2844&quot; data-origin-height=&quot;1612&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;딥러닝을 소개하기 앞서, 인공지능, 머신러닝, 딥러닝의 차이에 대해 설명해주신다. 그리고 기계학습에서도 세부적으로 지도학습, 비지도학습, 강화학습으로 구분된다는 것을 예시를 들어 위와 같이 강의에서 잘 풀어서 설명해주신다. 이 강의에서는 비지도학습이나 강화학습은 포함되지 않고 지도학습 위주로 진행이 된다고 한다. 그래서 챕터 3에도 회귀와 분류만 포함이 된 것이었다. 다음에 기회가 되면 파이토치를 활용해서 비지도학습을 진행하는 강의도 추가되었으면 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-04-21 오후 1.58.52.png&quot; data-origin-width=&quot;2820&quot; data-origin-height=&quot;1588&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bYiWic/btsGNOjM05O/TkwljstLnaRNmFzhqSj77K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bYiWic/btsGNOjM05O/TkwljstLnaRNmFzhqSj77K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bYiWic/btsGNOjM05O/TkwljstLnaRNmFzhqSj77K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYiWic%2FbtsGNOjM05O%2FTkwljstLnaRNmFzhqSj77K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2820&quot; height=&quot;1588&quot; data-filename=&quot;스크린샷 2024-04-21 오후 1.58.52.png&quot; data-origin-width=&quot;2820&quot; data-origin-height=&quot;1588&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;위 그림은 선형회귀에 대한 예시를 들며 머신러닝 구조를 아주 쉽고 명확하게 설명해주는 내용이다. 대다수의 강의나 교재에서 선형회귀를 설명할 때는 대부분 산점도 그래프를 주고, 데이터를 가장 잘 표현하는 직선을 찾는 문제라는 식의 비교적 추상적인 표현으로 설명이 끝나는데, 해당 강의가 인상 깊었던 점은 Regression이라는 부분도 길지 않은 시간동안 상당히 꼼꼼하게 예시를 통한 설명으로 개념을 확실히 잡아준다는 것이다. 또한 슬라이드 한 장만으로 상관관계를 파악하여 독립변수와 종속변수를 설정하고, 데이터셋을 분리한 후 모델을 학습하고 평가하는 전반적인 머신러닝 파이프라인을 너무 잘 설명한 점에서 인상 깊었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-04-21 오후 2.07.53.png&quot; data-origin-width=&quot;2834&quot; data-origin-height=&quot;1554&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dwytJe/btsGNueVdyi/PrJZDBEYyFIOw9q5mhedXk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dwytJe/btsGNueVdyi/PrJZDBEYyFIOw9q5mhedXk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dwytJe/btsGNueVdyi/PrJZDBEYyFIOw9q5mhedXk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdwytJe%2FbtsGNueVdyi%2FPrJZDBEYyFIOw9q5mhedXk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2834&quot; height=&quot;1554&quot; data-filename=&quot;스크린샷 2024-04-21 오후 2.07.53.png&quot; data-origin-width=&quot;2834&quot; data-origin-height=&quot;1554&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;위 그림은 지도학습 중 분류에 대한 예시를 설명하는 내용이다. 비교적 실제 우리들에게 친숙한 주제로 독립변수, 종속변수에 대해 설명하며 어떻게 분류되는지를 설명한다. 필자는 처음 머신러닝과 딥러닝을 공부할 때 저런 용어들이 가장 헷갈렸던 것 같다. 어떤 책에서는 feature라고 나오는데 어떤 책에서는 X 혹은 input, 설명변수, 독립변수와 같이 표현하니 어려웠는데 강의 초반부에 동의어들을 저렇게 정리해주기 때문에 입문자들이 초반에 헤매지 않고 잘 이해할 수 있을 것이라는 생각이 들었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-04-21 오후 2.12.13.png&quot; data-origin-width=&quot;2842&quot; data-origin-height=&quot;1590&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HUs9r/btsGMEbERze/qnZQzjplwYobHSpSEnRC8K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HUs9r/btsGMEbERze/qnZQzjplwYobHSpSEnRC8K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HUs9r/btsGMEbERze/qnZQzjplwYobHSpSEnRC8K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHUs9r%2FbtsGMEbERze%2FqnZQzjplwYobHSpSEnRC8K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2842&quot; height=&quot;1590&quot; data-filename=&quot;스크린샷 2024-04-21 오후 2.12.13.png&quot; data-origin-width=&quot;2842&quot; data-origin-height=&quot;1590&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;마지막으로는 딥러닝 활용 사례를 소개하는 부분이다. 활용 사례를 소개할 때는 컴퓨터 비전 Tasks, 자연어 처리 Tasks, 멀티모달 Tasks로 나누어 최근 트렌드에 대해 하나씩 소개해 주신다. 특히 멀티모달은 사람들에게는 잘 알려져 있지 않지만 한창 핫하게 연구되고 있는 분야인데 이 부분을 소개해준다는 것이 좋았다. 예를 들면, 특정 글을 작성하면 위의 그림과 같이 비디오를 제작해주는 것과 같은 것이다. 이러한 부분이 차후 강의를 듣고 나도 저런 모델을 만들고 싶다는 동기부여를 시킬 수 있어 좋은 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;이번 포스팅에서는 전반적인 강의 소개와 오리엔테이션 내용에 대한 후기를 작성했다. 다음 포스팅부터는 강의에 대한 리뷰와 복습 내용을 위주로 작성할 예정이다. 9일 정도 무료 강의로 오픈 중이니 독자들도 관심이 있으면 이번 기회에 파이토치를 학습해보길 권한다.&lt;/p&gt;</description>
      <category>AI &amp;amp; BigData</category>
      <category>METACODE</category>
      <category>metacodem</category>
      <category>Sota</category>
      <category>딥러닝 입문</category>
      <category>메타코드</category>
      <category>메타코드m</category>
      <category>부트캠프</category>
      <category>파이토치</category>
      <author>PSLeon</author>
      <guid isPermaLink="true">https://psleon.tistory.com/235</guid>
      <comments>https://psleon.tistory.com/235#entry235comment</comments>
      <pubDate>Sun, 21 Apr 2024 14:17:17 +0900</pubDate>
    </item>
    <item>
      <title>[AI] 인공지능 대학원 면담 전공 및 수학(선형대수, 통계) 질문 및 답변 준비</title>
      <link>https://psleon.tistory.com/234</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q1. PCA&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;란 무엇인가&lt;span&gt;?&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;주성분 분석은 높은 차원의 데이터의 중요한 정보를 유지하면서 차원을 줄이는 방법입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;주성분 분석을 하는 과정은 먼저 데이터를 표준화하고 공분산 행렬을 계산합니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;다음으로 공분산 행렬의 고유값과 고유벡터를 계산합니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이때 고유값은 주성분의 중요도를 나타내고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;고유벡터는 주성분 벡터를 나타냅니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이 과정이 끝나면 고유값이 큰 순서대로 주성분을 선택하여 데이터를 새로운 좌표계로 변환하여 데이터를 저차원으로 축소합니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;활용하는 분야는 이상치 탐지&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;이미지 압축 등이 있습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q2. &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;딥러닝의 문제점과 해결 방법은&lt;span&gt;?&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;대표적인 딥러닝의 문제점은 과적합과 학습 데이터 부족&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;기울기 소실 문제가 있습니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;과적합은 모델이 훈련 데이터에만 적합되어 새로운 데이터에 대한 일반화 성능이 떨어지는 현상입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이를 해결하기 위한 방법은 &lt;/span&gt;&lt;span&gt;L1 &lt;/span&gt;&lt;span&gt;또는 &lt;/span&gt;&lt;span&gt;L2 &lt;/span&gt;&lt;span&gt;규제를 적용하여 가중치를 제한하거나&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;조기 중단&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;드롭 아웃과 같은 방법이 있습니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;학습 데이터 부족은 딥러닝의 경우 많은 양의 훈련 데이터가 필요한데 데이터를 구하는 것이 어렵다는 문제가 있습니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이를 해결하기 위해 전이학습이나 데이터 증강과 같은 방법으로 해결할 수 있습니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;기울기 소실 문제는 딥러닝 모델의 은닉층이 깊어질수록 역전파 과정에서 기울기 값이 점차 감소하다가 소실되어 학습이 어려워지는 현상입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이를 해결하기 위해 활성화 함수로 &lt;/span&gt;&lt;span&gt;Sigmoid&lt;/span&gt;&lt;span&gt;가 아닌 &lt;/span&gt;&lt;span&gt;ReLU&lt;/span&gt;&lt;span&gt;를 쓰거나 배치 정규화를 하는 방법이 있습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q3. Linear Regression&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;이 무엇인지 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;선형회귀란 통계학과 머신러닝에서 기본적이고 간단한 회귀 분석 방법 중 하나입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;선형회귀는 하나 이상의 독립 변수와 종속 변수 사이의 선형 관계를 모델링하는 데 사용됩니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;즉&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;데이터가 주어져 있을 때 주어진 데이터에 가장 잘 맞는 직선 또는 초평면을 찾아내어 독립 변수와 종속 변수 간의 관계를 모델링합니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;주어진 데이터에 가장 잘 맞는 직선 또는 초평면은 종속 변수와 예측값의 차이인 오차가 최소가 되는 것을 뜻합니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q4. RNN, LSTM, Attention &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;각각의 차이를 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;RNN&lt;/span&gt;&lt;span&gt;은 순환신경망으로써 시계열 데이터를 처리하기 위한 신경망 구조입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;시퀀스 데이터를 한 단계씩 처리하면서 내부 상태를 업데이트하여 이전 정보를 기억하는 방식이기 때문에 시퀀스 길이가 길어지면 이전 정보가 사라져 정확도가 떨어지고 장기 의존성 문제에 취약하다는 단점이 있습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;LSTM&lt;/span&gt;&lt;span&gt;은 &lt;/span&gt;&lt;span&gt;RNN&lt;/span&gt;&lt;span&gt;의 장기 의존성 문제를 해결하기 위해 고안된 모델입니다&lt;/span&gt;&lt;span&gt;. LSTM&lt;/span&gt;&lt;span&gt;은 &lt;/span&gt;&lt;span&gt;RNN&lt;/span&gt;&lt;span&gt;의 히든 상태에 셀 상태를 사용하여 보다 긴 시퀀스 데이터를 처리할 수 있습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Attention&lt;/span&gt;&lt;span&gt;은 입력의 특정 부분에 집중하여 중요한 정보를 추출하고 출력에 반영하는 시퀀스 데이터를 처리하는 데 사용되는 메커니즘입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;주로 문서 번역이나 요약과 같은 자연어 처리 분야에서 많이 활용됩니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q5. AI, ML, DL&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;의 차이점을 각각 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;AI&lt;/span&gt;&lt;span&gt;는 인간의 지능을 컴퓨터에 구현하는 분야로써 가장 포괄적인 개념입니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;ML&lt;/span&gt;&lt;span&gt;은 인공지능의 하위 분야로 데이터를 통해 자동으로 규칙을 훈련하는 알고리즘을 연구하는 분야로 통계학과 밀접하며 주로 정형화된 데이터에 적합합니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;하지만 현실에 존재하는 대부분의 데이터는 비정형 데이터가 많은데 이러한 경우 인공 신경망을 사용하여 데이터를 학습하는 &lt;/span&gt;&lt;span&gt;ML &lt;/span&gt;&lt;span&gt;하위 분야가 &lt;/span&gt;&lt;span&gt;DL&lt;/span&gt;&lt;span&gt;입니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q6. Eigenvector&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;와&lt;span&gt; Eigenvalue&lt;/span&gt;가 무엇인지 각각 설명하고 왜 중요한지 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;어떤 행렬 &lt;/span&gt;&lt;span&gt;A&lt;/span&gt;&lt;span&gt;와 열 벡터를 곱하는 것이 선형 변환입니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;고유벡터는 선형 변환했을 때 방향은 변하지 않고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;크기만 변하는 벡터를 뜻하고 행렬이 데이터를 어떻게 변환시키는지를 나타내는 중요한 방향성 정보를 나타내기 때문에 중요합니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;고유값은 해당 고유벡터에 대한 스칼라 값으로&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;해당 벡터가 변환되는 크기를 갖는데 행렬이 얼마나 데이터를 확대 또는 축소하는지를 나타내는 중요한 정보를 나타내기 때문에 중요합니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q7. &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;지도&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;학습&lt;span&gt;, &lt;/span&gt;비지도&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;학습&lt;span&gt;, &lt;/span&gt;강화&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;학습의 정의와 종류를 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;지도 학습과 비지도 학습&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;강화 학습은 모두 머신러닝의 주요 학습 방법입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;먼저&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;지도 학습은 정답 레이블이 있는 학습 데이터를 사용하여 모델을 학습하는 방식입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;예시로는 회귀와 분류가 있습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;비지도 학습은 지도 학습과는 다르게 정답 레이블이 학습 데이터를 사용하여 모델을 학습하는 방식입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;예시로는 클러스터링과 차원 축소가 있습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;강화 학습은 에이전트가 환경과 상호 작용하며 보상을 최대화하도록 학습하는 방식입니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q8. Singular value decomposition&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;이란 무엇인지 설명하시오&lt;span&gt;.(SVD)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;행렬 &lt;/span&gt;&lt;span&gt;A&lt;/span&gt;&lt;span&gt;를 &lt;/span&gt;&lt;span&gt;U&lt;/span&gt;&lt;span&gt; x &lt;/span&gt;&lt;span&gt;&amp;Sigma;&lt;/span&gt;&lt;span&gt; x V&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;ᵀ&lt;/span&gt;&lt;span&gt;로 분해하는 기법을 특잇값 분해라고 합니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이때&lt;/span&gt;&lt;span&gt;, U&lt;/span&gt;&lt;span&gt;는 &lt;/span&gt;&lt;span&gt;AA&lt;/span&gt;&lt;span&gt;ᵀ&lt;/span&gt;&lt;span&gt;에 고유벡터를 모아 놓은 직교행렬입니다&lt;/span&gt;&lt;span&gt;. V&lt;/span&gt;&lt;span&gt;는 &lt;/span&gt;&lt;span&gt;A&lt;/span&gt;&lt;span&gt;ᵀ&lt;/span&gt;&lt;span&gt;A&lt;/span&gt;&lt;span&gt;의 고유벡터를 모아 놓은 직교행렬입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;따라서&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;&amp;Sigma; 는 그 둘의 공통인 고유값의 양의 제곱근을 의미합니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;특잇값 분해를 통해 행렬의 중요한 정보를 요약해서 표현할 수 있고 행렬 계산을 간소화하는 데 도움이 됩니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q9. Precision, Recall, F1 Score&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;는 무엇이고 각각 왜 사용하는지 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;정밀도&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;재현율&lt;/span&gt;&lt;span&gt;, F1 Score&lt;/span&gt;&lt;span&gt;는 주로 이진분류 모델의 성능을 평가하기 위한 척도로 사용됩니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;먼저&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;정밀도&lt;/span&gt;&lt;span&gt;는 모델이 참으로 예측한 것 중에서 실제로 참인 샘플의 비율을 뜻합니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;즉&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;모델이 얼마나 정확하게 예측을 잘 하는지를 뜻합니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;다음으로 재현율은 실제로 참인 샘플 중에서 모델이 참으로 예측한 샘플의 비율을 뜻합니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;즉&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;모델이 얼마나 실제 예측해야 하는 클래스를 잘 찾아내는지를 뜻합니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;마지막으로&lt;/span&gt;&lt;span&gt;, F1 Score&lt;/span&gt;&lt;span&gt;는 정밀도와 재현율의 조화평균을 나타내는 값입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이는 모델이 정밀도와 재현율을 모두 고려하여 성능을 판단할 수 있도록 합니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q10. MLE&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;와&lt;span&gt; MAP&lt;/span&gt;의 가장 큰 차이점은 무엇인지 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;MLE&lt;/span&gt;&lt;span&gt;와 &lt;/span&gt;&lt;span&gt;MAP&lt;/span&gt;&lt;span&gt;는 모두 확률 모델에서 모수를 추정하는 방법입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이 둘의 가장 큰 차이점은 사전 확률 분포를 사용하는지 여부입니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;MLE&lt;/span&gt;&lt;span&gt;는 주어진 데이터의 가능성&lt;/span&gt;&lt;span&gt;(likelihood)&lt;/span&gt;&lt;span&gt;를 최대화하는 모수를 추정하는데&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;이때&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;사전 확률 분포를 사용하지 않습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;MAP&lt;/span&gt;&lt;span&gt;는 주어진 데이터의 가능성과 사전 확률의 곱&lt;/span&gt;&lt;span&gt;(posterior probability)&lt;/span&gt;&lt;span&gt;을 최대화하는 모수를 추정하는데&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;이때&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;사전 확률 분포를 사용합니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q11. &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;활성화 함수의 종류를 나열하고 각각 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;활성&lt;/span&gt;&lt;span&gt;화 함수에는 시그모이드 함수&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;하이퍼볼릭 탄젠트 함수&lt;/span&gt;&lt;span&gt;, ReLU &lt;/span&gt;&lt;span&gt;함수&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;소프트맥스 함수 등이 있습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;먼저&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;시그모이드 함수는 입력값을 &lt;/span&gt;&lt;span&gt;0~1 &lt;/span&gt;&lt;span&gt;사이의 값으로 변환하는 함수로써 &lt;/span&gt;&lt;span&gt;S&lt;/span&gt;&lt;span&gt;자 모양의 그래프를 가지는 함수입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그러나 출력값이 &lt;/span&gt;&lt;span&gt;0 &lt;/span&gt;&lt;span&gt;또는 &lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;에 수렴하기 때문에 기울기 소실이 발생하는 문제가 있습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;하이퍼볼릭 탄젠트 함수는 입력값을 &lt;/span&gt;&lt;span&gt;-1~1 &lt;/span&gt;&lt;span&gt;사이의 값으로 변환하는 함수입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;시그모이드와 유사하지만 출력 범위가 &lt;/span&gt;&lt;span&gt;-1&lt;/span&gt;&lt;span&gt;부터 &lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;로 확장되어 기울기 소실 문제를 완화합니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;렐루 함수는 &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;이하의 입력값은 &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt;, 0&lt;/span&gt;&lt;span&gt;보다 큰 경우에는 입력값을 그대로 출력하는 함수입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;렐루 함수는 이러한 특징 때문에 역전파 과정에서 기울기 소실 문제가 발생하지 않아 딥러닝 모델의 활성화 함수로 많이 사용됩니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;소프트 맥스 함수는 주로 다중 클래스 분류의 출력층에 사용되는 활성화 함수로 입력값을 각 클래스에 대한 확률로 변환하는 함수입니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q12. Backpropagation&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;이 무엇인지 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;역전파 알고리즘은 인공 신경망을 학습시키는 알고리즘입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;역전파 알고리즘은 순전파를 통해 출력값과 실제 값 사이의 오차를 계산하고 이 오차를 역방향으로 전파하여 각 층의 가중치와 편향을 업데이트하는 과정을 반복하는 알고리즘입니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q13. Convolution Layer&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;가 무엇인지 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Convolution Layer&lt;/span&gt;&lt;span&gt;는 필터 또는 커널이라고 불리는 작은 행렬을 사용하여 입력 데이터의 특징&lt;/span&gt;&lt;span&gt;(feature)&lt;/span&gt;&lt;span&gt;을 추출하는 층입니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q14. CNN&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;에 대해서 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;CNN&lt;/span&gt;&lt;span&gt;은 합성곱 신경망으로써&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;주로 이미지 처리 분야에서 활용됩니다&lt;/span&gt;&lt;span&gt;. CNN&lt;/span&gt;&lt;span&gt;은 이미지를 입력으로 받아 합성곱층의 필터를 통해 특징 맵을 생성하고 풀링층에서 풀링 연산을 통해 특징 맵의 크기를 줄입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;특징 추출을 마친 특징 맵을 평탄화하여 완전 연결층에서 회귀 또는 분류를 진행합니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q15. FC Layer&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;가 무엇인지 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;FC Layer&lt;/span&gt;&lt;span&gt;는 완전 연결층이라고 불리는 인공 신경망의 한 종류로&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;이전 층의 모든 뉴런과 연결된 층입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이러한 완전 연결층은 주로 인공 신경망의 마지막 부분에 위치하며 주로 분류나 회귀와 같은 최종 작업을 수행하는 데 사용됩니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q16. &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;과대적합과 과소적합이 무엇인지 설명하고 각각의 문제점과 해결방법을 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;과대적합은 모델이 훈련 데이터에 너무 맞추어져서 새로운 데이터에 대한 성능이 저하되는 현상입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이를 해결하기 위해서는 더 다양한 데이터로 훈련하거나 가중치의 크기를 제한하는 &lt;/span&gt;&lt;span&gt;L1 &lt;/span&gt;&lt;span&gt;또는 &lt;/span&gt;&lt;span&gt;L2 &lt;/span&gt;&lt;span&gt;규제를 적용하여 모델의 복잡도를 감소시킬 수도 있습니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;또한 딥러닝에서는 드롭아웃을 사용할 수 있습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;과소적합은 모델이 너무 단순하여 훈련 데이터의 패턴을 충분히 학습하지 못하는 현상입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;모델의 층을 늘리거나 학습 반복 횟수나 학습률 등을 조정하여 모델이 더 많은 학습을 하도록 할 수 있습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q17. Batch Normalization&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;이 무엇인지 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;배치 정규화는 딥러닝 모델의 안정성과 학습 속도를 향상시키기 위한 기법 중 하나로써&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;각 층의 입력 데이터를 평균과 표준편차를 이용하여 정규화하는 것입니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q18. Lasso&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;와&lt;span&gt; Ridge&lt;/span&gt;의 차이를 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Lasso&lt;/span&gt;&lt;span&gt;는 &lt;/span&gt;&lt;span&gt;L1 &lt;/span&gt;&lt;span&gt;규제라고도 하며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;가중치의 절댓값의 합을 패널티로 사용하여 모델의 복잡도를 제어합니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이때&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;패널티는 일부 계수를 &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;으로 만드는 것인데 이를 통해 중요한 특징만 선택하고 나머지 특징은 제거하여 모델을 더 간결하게 만들 수 있습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Ridge&lt;/span&gt;&lt;span&gt;는 &lt;/span&gt;&lt;span&gt;L2 &lt;/span&gt;&lt;span&gt;규제라고도 하며 가중치의 제곱합을 패널티로 사용하여 모델의 복잡도를 제어합니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이때&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;패널티는 모든 계수를 &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;에 가까워지게 하여 모델의 계수를 안정적으로 유지하여 예측 오차를 줄일 수 있습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;요약하면&lt;/span&gt;&lt;span&gt;, Lasso&lt;/span&gt;&lt;span&gt;는 특성 선택을 수행하고 해석 가능한 모델을 만들어내는 데에 더 적합하며&lt;/span&gt;&lt;span&gt;, Ridge&lt;/span&gt;&lt;span&gt;는 과적합을 방지하면서 모든 특성을 유지하는 데에 더 적합합니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q19. SVM&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;에 대해서 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;SVM&lt;/span&gt;&lt;span&gt;은 서포트 벡터 머신의 약자로&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;분류와 회귀 문제에 사용되는 지도 학습 모델입니다&lt;/span&gt;&lt;span&gt;. SVM&lt;/span&gt;&lt;span&gt;은 데이터를 분류할 때 각 클래스를 잘 구분하는 결정 경계를 찾는 것을 목표로 합니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q20. Sample Variance&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;에 대해 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;표본 분산은 각 &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;데이터들이 평균으로부터 얼마나 퍼져 있는지를&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;나타내&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;는 통계량입니다&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;표본 분산을 구하기 위해서는 먼저&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;각 데이터에서 평균을 빼고 제곱을 합니다&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;그리고 이렇게 구한 제곱값들의 합을 구하고 이를 전체 데이터의 개수로 나누어 구할 수 있습니다&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q21. train, validation, test&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;로 나누는 이유를 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;train, validation, test&lt;/span&gt;&lt;span&gt;로 나누는 이유는 모델의 일반화 성능을 평가하고 과적합을 방지하기 위함에 있습니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;모델 학습 과정에서 &lt;/span&gt;&lt;span&gt;train &lt;/span&gt;&lt;span&gt;데이터에만 너무 최적화되면 과적합이 발생하므로 &lt;/span&gt;&lt;span&gt;validation &lt;/span&gt;&lt;span&gt;데이터로 과적합을 방지할 수 있습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q22. &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;차원의 저주가 무엇인지 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;차원의 저주는 데이터&lt;/span&gt;&lt;span&gt;의 차원이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;증가함에 따라 발생하는 문제를 말합니다&lt;span&gt;. &lt;/span&gt;고차원에서는 데이터 간의 거리가 멀어지고 데이터가 희소해지며&lt;span&gt;, &lt;/span&gt;적절한 학습 데이터를 확보하기 어려워 학습과 일반화에 어려움이 발생합니다&lt;span&gt;. &lt;/span&gt;차원 축소나 중요&lt;/span&gt;&lt;span&gt;한 &lt;/span&gt;&lt;span&gt;특징만을 선택하&lt;/span&gt;&lt;span&gt;는 방법 등으로 차원의 저주를 해결할 수 있습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q23. Cross Validation&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;에 대해 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;교차 검증은 모델의 성능을 보다 정확하게 평가하기 위해 데이터를 여러 부분으로 나누고 각 부분을 번갈아 가면서 학습과 평가에 사용하는 방법입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이를 통해 과적합을 방지하고 모델의 일반화 성능을 향상시킬 수 있습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;먼저&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;원본 데이터 세트를 &lt;/span&gt;&lt;span&gt;k&lt;/span&gt;&lt;span&gt;개의 부분 집합인 폴드로 나눕니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그리고 &lt;/span&gt;&lt;span&gt;k&lt;/span&gt;&lt;span&gt;개의 폴드 중 하나를 검증 세트로 사용하고 &lt;/span&gt;&lt;span&gt;k-1&lt;/span&gt;&lt;span&gt;개의 폴드를 학습에 사용하여 학습하고 검증하는 과정을 &lt;/span&gt;&lt;span&gt;k&lt;/span&gt;&lt;span&gt;번 반복하고 모든 폴드에 대한 평균 평가 결과를 통해 모델의 성능을 구할 수 있습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q24. Entropy&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;에 대해 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;엔트로피&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #24292f;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #24292f;&quot;&gt;정보의 불확실성&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #24292f;&quot;&gt;에 대한 척도이다&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #24292f;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #24292f;&quot;&gt;확률 변수의 가능한 모든 상태에 대한 정보를 고려하여&lt;span&gt;, &lt;/span&gt;그 상태가 발생할 확률에 따라 가중치를 더한 값이다&lt;span&gt;. &lt;/span&gt;상황이 더 불확실하거나 무질서하다면 엔트로피 값은 높아지고&lt;span&gt;, &lt;/span&gt;반대로 상황이 더 확실하거나 질서 정연하다면 엔트로피 값은 낮아진다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q25. Cross-Entropy&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;에 대해 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;교차 엔트로피는 &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;정보&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;이론과&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;머신러닝에서&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;사용되는&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;개념으로&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;두&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;확률&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;분포&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;간의&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;차이를&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;측정하는&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;지표입니다&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;실제&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;타깃&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;클래스와&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;모델의&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;예측&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;확률&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;분포&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;간의&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span&gt;차이를 계산하여 모델 성능을 평가하는 손실 함수로 사용됩니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q26. Gradient Descent&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;에 대해 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;경사하강법은 함수의 최솟값을 찾는 최적화 알고리즘입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;함수의 기울기를 계산하여 현재 위치에서 가장 가파르게 내려가는 방향으로 이동하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;이 과정을 반복하여 최솟값에 도달하는 방식입니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q27. Optimizer&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;의 종류와 차이를 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q28. Ensemble&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;에 대해 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;여러 개의 다른 모델을 결합하여 더 강력하고 안정적인 예측을 만드는 기술입니다&lt;span&gt;. &lt;/span&gt;앙상블은 단일 모델보다 더 나은 성능을 달성하고 과적합을 줄이는 데 도움이 됩니다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;앙상블 학습 종류로는 배깅과 부스팅이 있습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;배깅은 동일한 모델을 여러 번 독립적으로 학습하고 각 모델의 예측을 평균화하여 최종 예측을 만듭니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;대표적인 앙상블 기법으로는 랜덤 포레스트가 있습니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;랜덤 포레스트는 다수의 의사 결정 트리를 배깅하여 예측합니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;부스팅은 여러 개의 약한 학습기를 순차적으로 학습하고 이전 모델의 오차에 가중치를 부여하여 다음 모델을 학습합니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;대표적인 앙상블 기법으로는 그래디언트 부스팅이 있습니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그래디언트 부스팅은 잔여 오차를 최소화하는 방향으로 학습하는 방식입니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q29. Linearly Independent&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;가 무엇인지 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;선형 독립은 어떤 벡터도 다른 벡터들의 선형 결합으로 나타낼 수 없을 때 그 벡터들을 선형 독립이라고 합니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q30. Null Space&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;에 대해서 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;영 공간은 행렬&lt;/span&gt;&lt;span&gt; A&lt;/span&gt;&lt;span&gt;에 의해 영 벡터로 변환되는 모든 벡터들의 공간입니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q31. Rank&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;에 대해서 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Rank&lt;/span&gt;&lt;span&gt;는 선형대수학에서 행렬이 나타낼 수 있는 벡터 공간의 차원입니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q32. Determinant&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;가 의미하는 바가 무엇인지 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;행렬식&lt;/span&gt;&lt;span&gt;은 정사각행렬이 나타내는 선형변환이 공간의 부피를 확대하거나 줄이는지를 나타내는 지표로 사용됩니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;행렬식의 값은 스칼라 값으로 나오는데 만약 &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;이라면 역행렬이 존재하지 않는다는 것을 뜻합니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q33. KNN&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;이 무엇인지 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;KNN&lt;/span&gt;&lt;span&gt;은 지도 학습 알고리즘 중 하나입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;새로운 데이터가 들어왔을 때 기존 데이터 중 비슷한 속성의 그룹으로 분류하는 알고리즘입니다&lt;/span&gt;&lt;span&gt;. KNN&lt;/span&gt;&lt;span&gt;은 컴퓨터 비전 분야에서 얼굴 인식&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;의료용 데이터에서 질병 감지 등에 활용됩니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q34. Stack&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;과&lt;span&gt; Queue, Tree&lt;/span&gt;와&lt;span&gt; Heap&lt;/span&gt;의 구조에 대해 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;스택&lt;/span&gt;&lt;span&gt;은 후입선출의 자료구조로써 가장 마지막에 입력된 데이터가 가장 먼저 나가는 자료구조입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;큐는 스택과는 반대로 선입선출의 자료구조로써 가장 먼저 입력된 데이터가 가장 먼저 나가는 자료구조입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;함수의 호출의 경우 스택의 예시이며 작업 대기열 처리는 큐의 예시라고 할 수 있습니다&lt;/span&gt;&lt;span&gt;.&lt;br /&gt;&lt;/span&gt;&lt;span&gt;힙은 특정한 규칙을 갖는 완전 이진 트리 형태의 자료 구조입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;최대 힙의 경우&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;부모 노드는 항상 자식 노드보다 크거나 같고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;최소 힙의 경우&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;부모 노드는 항상 자식 노드 보다 작거나 같습니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이러한 특징으로 인해 최댓값이나 최솟값을 빨리 찾을 수 있다는 장점이 있습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q35. Array&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;와&lt;span&gt; Linked List&lt;/span&gt;의 장&lt;span&gt;/&lt;/span&gt;단점을 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;배열&lt;/span&gt;&lt;span&gt;의 경우 구현이 간단하며 인덱스를 사용하여 원소에 접근할 수 있기 때문에 접근 속도가 빠르다는 장점이 있지만 원소의 삽입과 삭제 시 그 뒤에 있는 원소 혹은 앞에 있는 원소들이 한 칸 씩 이동해야 하기 때문에 비용이 높다는 단점이 있습니다&lt;/span&gt;&lt;span&gt;.&lt;br /&gt;&lt;/span&gt;&lt;span&gt;연&lt;/span&gt;&lt;span&gt;결 리스트의 경우&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;크기를 정할 필요없이 동적으로 할당하면 되기 때문에 메모리 낭비를 줄일 수 있다는 장점이 있지만&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;구현이 배열보다는 복잡하고 연결된 노드를 따라 탐색을 해야 하기 때문에 접근 속도가 느리다는 단점이 있습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q36. Hash Table&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;과&lt;span&gt; Time Complexity&lt;/span&gt;를 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;해시 테이블은 파이썬의 &lt;/span&gt;&lt;span&gt;Dictionary &lt;/span&gt;&lt;span&gt;구조와 동일하게 키와 값의 쌍으로 데이터를 저장하는 자료구조로써 빠르게 데이터를 검색할 수 있습니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;해시 테이블의 평균 시간 복잡도는 &lt;/span&gt;&lt;span&gt;O(1)&lt;/span&gt;&lt;span&gt;입니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q37. BST(Binary Search Tree)&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;와&lt;span&gt; Binary Tree&lt;/span&gt;에 대해 각각 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt;진 트리는 자식 노드를 최대 &lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;개까지 가질 수 있는 트리 형태의 자료구조입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt;진 탐색 트리는 이진 트리의 일종이지만 왼쪽 자식 노드는 부모 노드보다 작고 오른쪽 자식 노드는 부모보다 큰 값이 오는 규칙이 적용되는 이진 트리입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이를 통해 이진 탐색이 가능하여 빠르게 데이터를 탐색할 수 있다는 장점이 있지만 트리가 한쪽으로 편향되면 탐색 효율이 떨어질 수 있다는 문제점이 있습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q38. Linked List&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;에서&lt;span&gt; Cycle&lt;/span&gt;이 형성되었는지 어떻게 확인할 수 있는지 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;두&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;개의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;포인터를 사용하여 사이클을 감지할 수 있습니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;먼저&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;하나의 포인트는 &lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;칸씩 이동하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;나머지 포인트는 &lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;칸씩 이동합니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;사이클이 없다면 &lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span&gt;칸씩 이동하는 포인트가 &lt;/span&gt;&lt;span&gt;null&lt;/span&gt;&lt;span&gt;을 가리키게 되고 사이클이 있다면 두 포인트가 만나게 됩니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q39. Circular Queue&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;에 대해서 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;일&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;반적인&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;큐와&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;달리&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;원&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;형&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;큐&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;는&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;원형으로&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;구성되어&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;있어서&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; front&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;와&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; rear&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;가&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;원형을&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;따라&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;이동합니다&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;이것은&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;배열이나&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;연결&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;리스트를&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;사용하여&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;구현될&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;수&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;있습니다&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q40. Local Minima&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;를 해소하기 위한 방법을 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;로컬 미니마는 함수나 그래프에서 특정 지역에서 최소값을 나타내는 지점을 의미합니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그런데 딥러닝 모델은 대부분 복잡한 비선형 함수이며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;이러한 경우 많은 로컬 미니마가 존재하여 모델의 성능이 저하될 수 있습니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이를 해소하기 위해서 아다그라드&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;모멘텀&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;아담과 같은 최적화 알고리즘을 적용하여 해소할 수 있습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q41. Normalization&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;과&lt;span&gt; Regularization&lt;/span&gt;의 차이를 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Normalization&lt;/span&gt;&lt;span&gt;은 데이터의 스케일을 조정하여 학습 과정을 안정화시키고 최적화하는 기법입니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Regularization&lt;/span&gt;&lt;span&gt;은 모델의 복잡성을 제어하고 과적합을 방지하기 위한 기법입니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q42. Activation Function&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;에서&lt;span&gt; ReLU&lt;/span&gt;를 많이 사용하는 이유가 무엇인지 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;ReLU&lt;/span&gt;&lt;span&gt;는 음수 입력에 대해 &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;을 출력하고 양수 출력에 대해서는 입력 값을 출력하는 활성화 함수입니다&lt;/span&gt;&lt;span&gt;. ReLU&lt;/span&gt;&lt;span&gt;를 많이 사용하는 이유는 양수 입력에 대해 그레이디언트가 &lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;로 유지되기 때문에 기울기 소실 문제를 해결할 수 있고 계산 효율성이 높아 많이 사용합니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q43. Dropout&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;에 대해 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Dropout&lt;/span&gt;&lt;span&gt;은 신경망 학습 과정에서 과적합을 방지하고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;일반화 성능을 향상시키기 위한 정규화 기법 중 하나입니다&lt;/span&gt;&lt;span&gt;. Dropout&lt;/span&gt;&lt;span&gt;을 적용하면 각 훈련 과정 중에 각 뉴런의 일부를 무작위로 제거합니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q44. Loss Function&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;에 대해 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;손&lt;/span&gt;&lt;span&gt;실 함수란 모델 학습 과정에서 실제 값과 예측 값의 오차를 측정하는 함수입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;대표적으로 회귀 문제에서는 평균 제곱 오차&lt;/span&gt;&lt;span&gt;(MSE)&lt;/span&gt;&lt;span&gt;와 &lt;span&gt;&amp;nbsp;&lt;/span&gt;평균 절대 오차&lt;/span&gt;&lt;span&gt;(MAE)&lt;/span&gt;&lt;span&gt;가 있고 분류 문제에서는 교차 엔트로피 손실과 이진 교차 엔트로피 손실이 주로 사용됩니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q45. &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;역행렬을 어떻게 구할 수 있는지 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;역행렬을 가우스&lt;/span&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt;조던 소거법을 통해 구할 수 있습니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;행렬 &lt;/span&gt;&lt;span&gt;A&lt;/span&gt;&lt;span&gt;가 있으면 항등행렬과 결합하여 첨가행렬을 만듭니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;첨가행렬이란 행렬 &lt;/span&gt;&lt;span&gt;A&lt;/span&gt;&lt;span&gt;를 왼쪽에 두고 항등행렬을 오른쪽에 놓은 행렬을 뜻하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;첨가행렬에서 가우스&lt;/span&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt;조던 소거법을 통해 전개 후 왼쪽의 정사각행렬을 항등행렬로 만들면 오른쪽에 놓이는 행렬이 &lt;/span&gt;&lt;span&gt;A&lt;/span&gt;&lt;span&gt;의 역행렬이 됩니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q46. Normal Distribution&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;에 대해 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;정&lt;/span&gt;&lt;span&gt;규 분포는 종모양을 가지고 있고 중심이 평균인 분포입니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q47. CLT(Central Limit Thorem)&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;에 대해 설명하고 왜 유용한지 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;중&lt;/span&gt;&lt;span&gt;심극한정리란 랜덤 샘플을 여러 개 뽑아서 평균을 만든다면 표본의 갯수가 많을수록 정규분포에 가까워진다는 것입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이는 충분히 큰 표본을 추출했을 때 표본 평균의 분포를 예측할 수 있고 여러 통계적 분석에서 활용할 수 있기 때문에 유용합니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q48. Logistic Regression&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;이 무엇이고 언제 사용할 수 있는지 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;로지스&lt;/span&gt;&lt;span&gt;틱 회귀란 이진 분류를 위한 방법으로 &lt;/span&gt;&lt;span&gt;logit&lt;/span&gt;&lt;span&gt;을 선형 회귀함으로써 이진 분류한 것입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;여기서 &lt;/span&gt;&lt;span&gt;logit&lt;/span&gt;&lt;span&gt;이란 &lt;/span&gt;&lt;span&gt;log-odds&lt;/span&gt;&lt;span&gt;인데&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;여기서 &lt;/span&gt;&lt;span&gt;odds&lt;/span&gt;&lt;span&gt;는 승산을 의미하고 만약 이길 확률이 &lt;/span&gt;&lt;span&gt;q&lt;/span&gt;&lt;span&gt;라고 했을 때 &lt;/span&gt;&lt;span&gt;q/1-q&lt;/span&gt;&lt;span&gt;를 &lt;/span&gt;&lt;span&gt;odds&lt;/span&gt;&lt;span&gt;라고 하고 여기에 &lt;/span&gt;&lt;span&gt;log&lt;/span&gt;&lt;span&gt;를 취한 것이 &lt;/span&gt;&lt;span&gt;logit&lt;/span&gt;&lt;span&gt;입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이름은 회귀라고 되어 있으나 분류 모델을 구성할 때 사용할 수 있습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q49. L1, L2 &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;정규화가 무엇인지 각각 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;L1&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정규화와 &lt;/span&gt;&lt;span&gt;L2 &lt;/span&gt;&lt;span&gt;정규화 모두 모델을 훈련시킬 때 모델의 과적합을 방지하기 위한 규제 방법입니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;먼저&lt;/span&gt;&lt;span&gt;, L1 &lt;/span&gt;&lt;span&gt;정규화는 가중치의 절대값의 합을 정규화 항으로 추가합니다&lt;/span&gt;&lt;span&gt;. L1 &lt;/span&gt;&lt;span&gt;정규화의 경우&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;모델의 가중치를 &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;에 가깝게 만들어 특정 가중치를 선택적으로 제거하여 덜 중요한 특징을 무시하도록 합니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;다음으로&lt;/span&gt;&lt;span&gt;, L2 &lt;/span&gt;&lt;span&gt;정규화는 가중치의 제곱합을 정규화 항으로 추가합니다&lt;/span&gt;&lt;span&gt;. L2 &lt;/span&gt;&lt;span&gt;정규화의 경우&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;모델의 가중치를 &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;에 가깝게 만들기는 하지만 모든 가중치를 골고루 분포하도록 한다는 점에서 &lt;/span&gt;&lt;span&gt;L1 &lt;/span&gt;&lt;span&gt;정규화와 차이가 있습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q50. Independence(&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;독립성&lt;span&gt;)&lt;/span&gt;에 대해 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;독립성은 두 개 이상의 사건이 서로 영향을 미치지 않고 독립적으로 발생하는 상황을 나타냅니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;즉&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;하나의 사건이 발생함으로써 다른 사건이 발생할 확률에 아무런 영향을 주지 않는 것을 의미합니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;예를 들어&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;동전을 두 번 던졌을 때 첫 번째 던지기의 결과가 앞면일지 뒷면일지는 두 번째 던지기의 결과에 영향을 주지 않습니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;따라서 두 번째 던지기의 결과는 첫 번째 던지기의 결과와 독립적입니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q51. Gradient Vanishing&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;이 생기는 이유는 무엇이고 해결하는 방법이 무엇이 있는지 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;기울기 소실은 심층 신경망에서 발생하는 문제로 역전파 과정에서 신경망의 하위층으로 갈수록 기울기가 급격히 감소하여 더 이상 학습이 이루어지지 않는 현상입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이를 해결하기 위해서는 &lt;/span&gt;&lt;span&gt;sigmoid&lt;/span&gt;&lt;span&gt;나 &lt;/span&gt;&lt;span&gt;tanh &lt;/span&gt;&lt;span&gt;같은 활성화 함수가 아닌 &lt;/span&gt;&lt;span&gt;ReLu &lt;/span&gt;&lt;span&gt;함수를 사용하는 방법이 있고 배치 정규화를 사용하는 방법이 있습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q53. Max Pooling&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;하는 이유를 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Max Pooling&lt;/span&gt;&lt;span&gt;은 &lt;/span&gt;&lt;span&gt;CNN&lt;/span&gt;&lt;span&gt;에서 주어진 영역에서 최댓값을 취하는 연산을 수행하는 것입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이를 통해 중요한 특징만 추출하여 과적합을 방지할 수 있고 학습 속도를 빠르게 할 수 있어 &lt;/span&gt;&lt;span&gt;Max Pooling&lt;/span&gt;&lt;span&gt;을 사용합니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q54. &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;하이퍼파라미터 튜닝은 어떻게 할 수 있는지 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;하이퍼파라미&lt;/span&gt;&lt;span&gt;터 튜닝은 모델의 성능을 향상시키기 위해 매개변수들을 조정하는 과정입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;대표적으로 그리드 탐색이나 랜덤 탐색과 같은 방법이 있는데&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q55. &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;가우시안 분포에 대해 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;가우시&lt;/span&gt;&lt;span&gt;안 분포란 정규분포로 불리는 &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;종 모양의 대칭적인 연&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;속 확률 &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;분포&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;의 한 종류입니다&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;곡선의 중심은 평균값이고 표준편차는 곡선의 폭을 나타냅니다&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;가우시안 분포는 중심극한정리와 밀접한 관련이 있어서 &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;많은 자연 현상과 데이터의 분포를 설명하는 데 널리 사용됩니다&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q56. &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;조건부 확률 분포에 대해 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;조건&lt;/span&gt;&lt;span&gt;부 확률 분포란 &lt;/span&gt;&lt;span&gt;한 사건이 다른 사건에 대한 조건으로 주어졌을 때 발생할 확률 분포를 의미합니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;즉&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;하나의 사건이 발생했을 때 다른 사건이 발생할 확률을 설명하는 확률 분포입니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q57. &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;베이지안 룰에 대해 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;베이지&lt;/span&gt;&lt;span&gt;안 룰은 사후 확률을 구하기 위한 공식으로 사후확률을 사전확률과 우도의 곱을 가지고 표현한 식입니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q58. &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;행렬의&lt;span&gt; 4&lt;/span&gt;가지&lt;span&gt; Space&lt;/span&gt;에 대해 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;행렬&lt;/span&gt;&lt;span&gt;의 &lt;/span&gt;&lt;span&gt;4&lt;/span&gt;&lt;span&gt;가지 공간으로는 열공간&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;행공간&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;영공간&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;좌영공간이 있습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;먼저 열공간은 열벡터의 선형 결합으로 &lt;/span&gt;&lt;span&gt;span&lt;/span&gt;&lt;span&gt;되는 공간을 뜻하고 행공간은 행벡터의 선형 결합으로 &lt;/span&gt;&lt;span&gt;span&lt;/span&gt;&lt;span&gt;되는 공간을 뜻합니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;그리고 영공간은 선형 결합에 의해 영 벡터로 매핑되는 모든 벡터들의 집합이고 좌영공간은 전치 행렬의 영공간을 뜻합니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q59. List&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;와&lt;span&gt; Dictionary&lt;/span&gt;의 차이에 대해 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;리스트&lt;/span&gt;&lt;span&gt;와 딕셔너리는 파이썬에서 사용되는 자료구조로써 &lt;/span&gt;&lt;span&gt;리스트&lt;/span&gt;&lt;span&gt;는 순차적이며 수정 가능한 객체들의 집합이고 배열과 매우 흡사합니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;딕셔너리는 키와 값의 쌍으로 이루어진 비순차적인 집합입니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q60. &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;확률과 통계의 차이를 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;확률&lt;/span&gt;&lt;span&gt;과 통계는 매우 밀접한 관계가 있지만 확률의 경우 어떤 사건이 발생할 가능성을 측정하는 것이고 통계는 데이터를 수집하고 분석하여 패턴을 발견하고 결론을 도출하는 방법론입니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q61. Bias&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;가 무엇인지 설명하고 이를 통제하는 방법은 무엇인지 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;편향&lt;/span&gt;&lt;span&gt;은 모델의 예측 값과 실제 값이 얼마나 멀리 떨어져 있는지를 나타내는 개념입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;즉&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;편향이 크다면 실제 값과 예측 값 사이에 큰 차이가 있다는 것으로 과소적합이며 편향이 작다면 반대로 과대적합임을 의미합니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이를 통제하기 위해서는 규제 기법을 통해 모델의 복잡성을 조정하거나 다양한 데이터를 수집하여 편향을 최소화할 수 있습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q62. &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;평균&lt;span&gt;(mean)&lt;/span&gt;과 중앙값&lt;span&gt;(median) &lt;/span&gt;중에 어떤 케이스에서 어떤 것을 사용해야 하는지 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;평균&lt;/span&gt;&lt;span&gt;은 모든 데이터의 합을 총 데이터의 개수로 나눈 값으로써 데이터의 전반적인 경향을 파악하는데 유용하지만 이상치가 존재할 경우 이상치에 의해 대표성을 잃을 수 있습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;이상치가 있을 때에는 중앙값을 대푯값으로 쓰는 것이 좋은데 중앙값이란 크기순으로 정렬했을 때 가장 가운데 위치한 값을 의미합니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q63. ROC Curve&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;에 대해 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;ROC&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;곡선은 &lt;/span&gt;&lt;span&gt;이진 분류 모델의 성능을 평가하는 데 사용되는 그래프입니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;ROC &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;곡선&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;아래&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;영역은&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;모델의&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;전반적인&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;성능을&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;요약하는&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;지표입니다&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;. AUC &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;값이&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; 1&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;에&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;가까울수록&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;모델의&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;성능이&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;우수하며&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;, 0.5&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;에&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;가까울수록&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;무작위&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;분류와&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;비슷한&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;성능을&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;갖습니다&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q64. &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;뉴럴넷의 가장 큰 단점은 무엇이고 이를 위해 나온&lt;span&gt; One-Shot Learning&lt;/span&gt;은 무엇인지 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;뉴럴넷&lt;/span&gt;&lt;span&gt;의 가장 큰 단점은 데이터의 양과 품질에 대한 의존성입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이러한 한계를 극복하기 위해 나온 것이 &lt;/span&gt;&lt;span&gt;One-Shot Learning&lt;/span&gt;&lt;span&gt;이고 하나의 샘플 이미지만으로 새로운 클래스를 인식하는 것을 의미합니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q65. &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;그래프 자료구조에 대해 설명하고&lt;span&gt; BFS&lt;/span&gt;와&lt;span&gt; DFS&lt;/span&gt;에 대해 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;그래프&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;객체 간의 관계를 표현하는데 사용되는 자료 구조입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그래프&lt;/span&gt;&lt;span&gt;는 &lt;/span&gt;&lt;span&gt;노드와 노드를 연결하는 간선으로 이루어져 있습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;BFS&lt;/span&gt;&lt;span&gt;와 &lt;/span&gt;&lt;span&gt;DFS&lt;/span&gt;&lt;span&gt;는 그래프를 탐색하는 알고리즘입니다&lt;/span&gt;&lt;span&gt;. BFS&lt;/span&gt;&lt;span&gt;는 너비우선탐색으로 시작 노드에서 시작하여 인접한 모든 노드를 방문한 후에는 해당 노드의 인접한 노드를 방문하는 방식으로 진행됩니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이 과정을 반복하여 그래프의 모든 노드를 방문합니다&lt;/span&gt;&lt;span&gt;. BFS&lt;/span&gt;&lt;span&gt;는 큐를 사용하여 구현할 수 있습니다&lt;/span&gt;&lt;span&gt;. DFS&lt;/span&gt;&lt;span&gt;는 깊이우선탐색으로 시작 노드에서 시작하여 한 노드의 모든 자식을 우선적으로 탐색하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;그 다음 자식 노드로 이동합니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이 과정을 모든 자식 노드를 방문하고 나서야 부모 노드로 돌아가서 반복합니다&lt;/span&gt;&lt;span&gt;. DFS&lt;/span&gt;&lt;span&gt;는 스택이나 재귀 함수를 사용하여 구현할 수 있습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q66. Type 1 Error&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;와&lt;span&gt; Type 2 Error&lt;/span&gt;의 차이를 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;제&lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;종 오류는 옳은 귀무 가설을 기각하는 경우입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;즉&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;실제로는 차이가 없는데 차이가 있다고 잘못 결론 내린 경우입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;제&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;종&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;오류는&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;잘못된&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;귀무&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;가설을&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;채택하는&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;경우입니다&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;즉&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;실제로&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;차이가&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;있는데&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;차이가&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;없다고&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;잘못&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;결론&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;내린&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;경우입니다&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0d0d0d;&quot;&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q67. Bagging&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;이 무엇인지 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;배깅은 동일한 모델을 여러 번 독립적으로 학습하고 각 모델의 예측을 평균화하여 최종 예측을 만드는 것입니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q68. Chain Rule&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;이 무엇인지 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;연쇄&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;법칙&lt;/span&gt;&lt;span&gt;은 미분에서 합성 함수의 도함수를 구하는 규칙입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;이때&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;합성 함수란 여&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;러 함수를 조합하여 새로운 함수를 만드는 것을 말합니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;연쇄 법칙을 통해서 복잡한 함수의 미분을 간단하게 계산할 수 있고 역전파 알고리즘에서 활용됩니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Q69. LiDAR&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;에 대해 설명하시오&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;-&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;라이다&lt;/span&gt;&lt;span&gt;는 &lt;/span&gt;&lt;span&gt;빛을 사용하여 거리를 측정하는 기술입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;라이다 센서는 자율 주행 자동차&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;로봇&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;지형 지도 작성 등 다양한 응용 분야에서 사용됩니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;자율 주행 자동차에서는 라이다 센서가 주변 환경을 실시간으로 감지하여 도로 상황을 분석하고 안전한 주행 경로를 계획하는 데 사용됩니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;</description>
      <category>AI &amp;amp; BigData</category>
      <author>PSLeon</author>
      <guid isPermaLink="true">https://psleon.tistory.com/234</guid>
      <comments>https://psleon.tistory.com/234#entry234comment</comments>
      <pubDate>Thu, 11 Apr 2024 11:27:42 +0900</pubDate>
    </item>
  </channel>
</rss>