<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>LambdaCourse</title>
    <link>https://lambdacourse.tistory.com/</link>
    <description>논문리뷰 스터디 lambdacourse 입니다.</description>
    <language>ko</language>
    <pubDate>Sat, 22 Aug 2026 19:17:57 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>sonic</managingEditor>
    <image>
      <title>LambdaCourse</title>
      <url>https://tistory1.daumcdn.net/tistory/8456510/attach/800811b8353a42adafef53bebb8dba3e</url>
      <link>https://lambdacourse.tistory.com</link>
    </image>
    <item>
      <title>[권도현] Towards Robust Vision Transformer</title>
      <link>https://lambdacourse.tistory.com/84</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://openaccess.thecvf.com/content/CVPR2022/papers/Mao_Towards_Robust_Vision_Transformer_CVPR_2022_paper.pdf&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://openaccess.thecvf.com/content/CVPR2022/papers/Mao_Towards_Robust_Vision_Transformer_CVPR_2022_paper.pdf&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CVPR 2022&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저자 Alibaba Group&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;배경&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;ViT가 CNN보다 상대적으로 robust하다는 관찰은 있었지만 그 원인이 명확하지 않았고, 당시 ViT 변형들의 구조 설계도 주로 clean accuracy만 보고 이루어졌기 때문에, 각 architecture component가 robustness에 미치는 영향을 체계적으로 분석하고 그 결과로 robust ViT를 설계하려고 한다.&amp;nbsp;&lt;/blockquote&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;2020 ViT 등장&lt;/b&gt;&lt;br /&gt;&amp;rarr; CNN 없이 Transformer만으로 이미지 분류가 잘 된다.&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;331&quot; data-start=&quot;168&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2021 robustness 연구들&lt;/b&gt;&lt;br /&gt;&amp;rarr; &amp;ldquo;ViT가 corruption이나 distribution shift에서 CNN보다 강하다&amp;rdquo;라는 결과들이 나왔다.&amp;nbsp; 그런데 다른 연구에서는 training recipe나 모델 크기를 맞추면 CNN과 차이가 줄어든다고 반박하기도 했다.&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;471&quot; data-start=&quot;422&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;471&quot; data-start=&quot;422&quot; data-ke-size=&quot;size16&quot;&gt;그리고 동시에 ViT 성능을 높이기 위해 많은 후속 모델이 CNN식 구조를 넣고 있었다.&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;79f78ea9-d6e3-4249-abb3-938268ae29d5:0:editor&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div contenteditable=&quot;false&quot;&gt;
&lt;div&gt;Vanilla ViT&lt;/div&gt;
&lt;div&gt;&amp;darr;&lt;/div&gt;
&lt;div&gt;convolutional stem 추가&lt;/div&gt;
&lt;div&gt;local attention 추가&lt;/div&gt;
&lt;div&gt;hierarchical structure 추가&lt;/div&gt;
&lt;div&gt;relative position encoding 추가&lt;/div&gt;
&lt;div&gt;...&lt;/div&gt;
&lt;div&gt;&amp;darr;&lt;/div&gt;
&lt;div&gt;clean accuracy &amp;uarr;&lt;/div&gt;
&lt;/div&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;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;737&quot; data-start=&quot;719&quot; data-ke-size=&quot;size16&quot;&gt;당시에는 대부분 모델을 설계할 때 I&lt;span data-client-katex-layout=&quot;&quot; data-math-source=&quot;\text{ImageNet Accuracy} \uparrow&quot; data-end=&quot;778&quot; data-start=&quot;739&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;mageNet Accuracy&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;uarr; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;를 중심으로 판단했지, &lt;span data-client-katex-layout=&quot;&quot; data-math-source=&quot;\text{ImageNet-C / ImageNet-R / adversarial robustness}&quot; data-end=&quot;855&quot; data-start=&quot;794&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;ImageNet-C / ImageNet-R / adversarial robustness&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;까지 구조 요소별로 따져서 설계하지는 않았다. 따라서&amp;nbsp;이런 설계 변경들이 clean accuracy는 올리는데, robustness에도 좋은가? 에 대한 의문도 생겼었다.&amp;nbsp;&lt;/p&gt;
&lt;h2 data-end=&quot;1001&quot; data-start=&quot;928&quot; data-ke-size=&quot;size26&quot;&gt;모델 아키텍처&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span data-client-katex-layout=&quot;&quot; data-math-source=&quot;\text{Patch Embedding}&quot; data-end=&quot;13101&quot; data-start=&quot;13073&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;기존 ViT 를 크게 아래의 4개로 나눠서 robustness 를 판단한다.&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 data-client-katex-layout=&quot;&quot; data-math-source=&quot;\text{Patch Embedding}&quot; data-end=&quot;13101&quot; data-start=&quot;13073&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;1. Patch Embedding&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; 2. &lt;span data-client-katex-layout=&quot;&quot; data-math-source=&quot;\text{Position Embedding}&quot; data-end=&quot;13134&quot; data-start=&quot;13103&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;Position&amp;nbsp;Embedding&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; 3. &lt;span data-client-katex-layout=&quot;&quot; data-math-source=&quot;\text{Transformer Blocks}&quot; data-end=&quot;13167&quot; data-start=&quot;13136&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;Transformer&amp;nbsp;Blocks&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; 4. &lt;span data-client-katex-layout=&quot;&quot; data-math-source=&quot;\text{Classification Head}&quot; data-end=&quot;13201&quot; data-start=&quot;13169&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;Classification&amp;nbsp;Head&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 data-client-katex-layout=&quot;&quot; data-math-source=&quot;\text{Classification Head}&quot; data-end=&quot;13201&quot; data-start=&quot;13169&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;RVT를 만들고 추가적으로 제안한 PAAS 와 Patch wise Augumentation 을 붙여서 RVT* 를 만든다. &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&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-22 오전 1.54.20.png&quot; data-origin-width=&quot;790&quot; data-origin-height=&quot;416&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cUFkiT/dJMcaheyQdD/abCLt2SZzOKBnxpIKpJ7UK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cUFkiT/dJMcaheyQdD/abCLt2SZzOKBnxpIKpJ7UK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cUFkiT/dJMcaheyQdD/abCLt2SZzOKBnxpIKpJ7UK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcUFkiT%2FdJMcaheyQdD%2FabCLt2SZzOKBnxpIKpJ7UK%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;790&quot; height=&quot;416&quot; data-filename=&quot;스크린샷 2026-08-22 오전 1.54.20.png&quot; data-origin-width=&quot;790&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-22 오전 1.53.52.png&quot; data-origin-width=&quot;1012&quot; data-origin-height=&quot;470&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YgZr3/dJMcaiEvuuO/XKFhSVB84vb7M6fvcBqKpk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YgZr3/dJMcaiEvuuO/XKFhSVB84vb7M6fvcBqKpk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YgZr3/dJMcaiEvuuO/XKFhSVB84vb7M6fvcBqKpk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYgZr3%2FdJMcaiEvuuO%2FXKFhSVB84vb7M6fvcBqKpk%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;1012&quot; height=&quot;470&quot; data-filename=&quot;스크린샷 2026-08-22 오전 1.53.52.png&quot; data-origin-width=&quot;1012&quot; data-origin-height=&quot;470&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;Patch Embedding&lt;/h3&gt;
&lt;p data-end=&quot;232&quot; data-start=&quot;222&quot; data-section-id=&quot;1tnsjc9&quot; data-ke-size=&quot;size16&quot;&gt;기존 ViT&lt;/p&gt;
&lt;p data-end=&quot;309&quot; data-start=&quot;234&quot; data-ke-size=&quot;size16&quot;&gt;기존 ViT는 이미지를 patch로 나눈 다음, 각 patch를 펼쳐서 &lt;b&gt;Linear Projection&lt;/b&gt;으로 token으로 바꾼다.&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-end=&quot;309&quot; data-start=&quot;234&quot; data-ke-style=&quot;style3&quot;&gt;Image -&amp;gt; 16&amp;times;16 patches -&amp;gt; &amp;nbsp;Flatten -&amp;gt; Linear Projection -&amp;gt; Patch Tokens&lt;/blockquote&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;729a14e4-b86c-4ee7-ac23-ffc815804bc2:0:editor&quot;&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저자들은 이런 단순한 patch embedding이 edge, corner 같은 low-level visual structure를 충분히 활용하지 못할 수 있다고 봤다.&amp;nbsp; 기존 ViT 변형들에서 사용하던 convolutional embedding, T2T embedding 등을 DeiT-Ti에 붙여 robustness를 비교했을때. T2T(Tokens-to-Tokens) 방식이 견고성과 정확도 면에서 가장 우수했지만, 연산 효율성을 고려해 Conv 방식을 선택했다.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-22 오전 2.57.08.png&quot; data-origin-width=&quot;1294&quot; data-origin-height=&quot;680&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Xn2ra/dJMcags7BDq/Vb5AjmdMrJVVvEEgyXHcZK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Xn2ra/dJMcags7BDq/Vb5AjmdMrJVVvEEgyXHcZK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Xn2ra/dJMcags7BDq/Vb5AjmdMrJVVvEEgyXHcZK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXn2ra%2FdJMcags7BDq%2FVb5AjmdMrJVVvEEgyXHcZK%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;485&quot; height=&quot;255&quot; data-filename=&quot;스크린샷 2026-08-22 오전 2.57.08.png&quot; data-origin-width=&quot;1294&quot; data-origin-height=&quot;680&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Linear Projection
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;방법: 이미지를 (16 x 16) 크기의 패치로 만듦&lt;/li&gt;
&lt;li&gt;연산: 각 패치를 그냥 일렬로 세운다 (16 x 16 x 3 = 768)개의 픽셀 값)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Convolutional Stem
&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;연산:필터가 이미지 위를 훑으며 인접한 픽셀끼리 가중치를 곱하고 더합니다.이 과정을 거쳐 특징 맵(Feature Map)이 됨&lt;/li&gt;
&lt;li&gt;변환: 이후 패치화(Patching)를 하고, 이후 Linear Projection&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;T2T (Tokens-to-Tokens)
&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;연산: 매우 작은 단위(7x7)로 패치를 쪼갠다.이 작은 패치들끼리 서로 Attention을 수행.연관성 있는 패치들끼리 묶어서(Merging) 다시 하나의 토큰으로 만들고.이 과정을 2~3번 반복&lt;/li&gt;
&lt;/ul&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;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Position&amp;nbsp;Embedding&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot; data-client-katex-layout=&quot;&quot; data-math-source=&quot;\text{Transformer Blocks}&quot; data-end=&quot;13167&quot; data-start=&quot;13136&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;기존 ViT&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 style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;1306&quot; data-end=&quot;1368&quot;&gt;Transformer는 token의 순서를 원래 알 수 없기 때문에 position embedding을 더해준다.&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-start=&quot;1306&quot; data-end=&quot;1368&quot; data-ke-style=&quot;style3&quot;&gt;Patch token + Position embedding -&amp;gt; Transformer&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-22 오전 3.30.37.png&quot; data-origin-width=&quot;632&quot; data-origin-height=&quot;180&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ecEW5d/dJMcaf1Z9qD/sBzJzMgvgrlNa4fnhjhjq0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ecEW5d/dJMcaf1Z9qD/sBzJzMgvgrlNa4fnhjhjq0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ecEW5d/dJMcaf1Z9qD/sBzJzMgvgrlNa4fnhjhjq0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FecEW5d%2FdJMcaf1Z9qD%2FsBzJzMgvgrlNa4fnhjhjq0%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;499&quot; height=&quot;142&quot; data-filename=&quot;스크린샷 2026-08-22 오전 3.30.37.png&quot; data-origin-width=&quot;632&quot; data-origin-height=&quot;180&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-end=&quot;1368&quot; data-start=&quot;1306&quot; 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 data-end=&quot;1368&quot; data-start=&quot;1306&quot;&gt;None:&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;/li&gt;
&lt;li data-end=&quot;1368&quot; data-start=&quot;1306&quot;&gt;Learned&amp;nbsp;Absolute:&amp;nbsp;고정된&amp;nbsp;개수의&amp;nbsp;학습&amp;nbsp;가능한&amp;nbsp;벡터를&amp;nbsp;생성하고,&amp;nbsp;입력&amp;nbsp;토큰에&amp;nbsp;1:1로&amp;nbsp;더하는&amp;nbsp;방식.&amp;nbsp;각&amp;nbsp;위치(0번&amp;nbsp;패치,&amp;nbsp;1번&amp;nbsp;패치&amp;nbsp;등)에&amp;nbsp;고유한&amp;nbsp;벡터&amp;nbsp;값이&amp;nbsp;대응됨.&lt;/li&gt;
&lt;li data-end=&quot;1368&quot; data-start=&quot;1306&quot;&gt;Sin-cos&amp;nbsp;Absolute:&amp;nbsp;학습을&amp;nbsp;거치지&amp;nbsp;않고,&amp;nbsp;사인(Sine)과&amp;nbsp;코사인(Cosine)&amp;nbsp;함수로&amp;nbsp;계산된&amp;nbsp;고정&amp;nbsp;값을&amp;nbsp;위치&amp;nbsp;벡터로&amp;nbsp;사용하는&amp;nbsp;방식.&lt;/li&gt;
&lt;li data-end=&quot;1368&quot; data-start=&quot;1306&quot;&gt;Learned&amp;nbsp;Relative:&amp;nbsp;절대적인&amp;nbsp;위치가&amp;nbsp;아닌,&amp;nbsp;토큰과&amp;nbsp;토큰&amp;nbsp;사이의&amp;nbsp;거리(상대적&amp;nbsp;거리)를&amp;nbsp;학습하여&amp;nbsp;반영하는&amp;nbsp;방식.&lt;/li&gt;
&lt;li data-end=&quot;1368&quot; data-start=&quot;1306&quot;&gt;Input-conditioned&amp;nbsp;(CPE):&amp;nbsp;입력&amp;nbsp;데이터에&amp;nbsp;컨볼루션(Convolution)&amp;nbsp;연산을&amp;nbsp;적용하여,&amp;nbsp;입력의&amp;nbsp;특징에&amp;nbsp;따라&amp;nbsp;위치&amp;nbsp;값을&amp;nbsp;유연하게&amp;nbsp;계산하여&amp;nbsp;더하는&amp;nbsp;방식.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-22 오전 5.11.08.png&quot; data-origin-width=&quot;1046&quot; data-origin-height=&quot;342&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/btZKGM/dJMcaiqUDM7/ZjTklM84ETSPtdyACbgT2K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/btZKGM/dJMcaiqUDM7/ZjTklM84ETSPtdyACbgT2K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/btZKGM/dJMcaiqUDM7/ZjTklM84ETSPtdyACbgT2K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbtZKGM%2FdJMcaiqUDM7%2FZjTklM84ETSPtdyACbgT2K%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;634&quot; height=&quot;207&quot; data-filename=&quot;스크린샷 2026-08-22 오전 5.11.08.png&quot; data-origin-width=&quot;1046&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;Position Encoding은 있어야 robustness가 좋아진다.&lt;/p&gt;
&lt;p data-end=&quot;3468&quot; data-start=&quot;3386&quot; data-ke-size=&quot;size16&quot;&gt;하지만 Learned Absolute / Sin-Cos / Relative 중 무엇을 선택하는지만으로는 robustness가 크게 달라지지 않는다.&lt;/p&gt;
&lt;p data-end=&quot;3507&quot; data-start=&quot;3473&quot; data-ke-size=&quot;size16&quot;&gt;CPE는 input-dependent라 오히려 조금 불리하다. CPE가 입력에 conditioned되어 있어서 입력이 perturbation되면 positional representation 자체도 같이 변하기 쉬워 robustness에 불리할 수 있다고 말한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;3507&quot; data-start=&quot;3473&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;3507&quot; data-start=&quot;3473&quot; data-ke-size=&quot;size16&quot;&gt;Self-attention은 각 patch의 Q와 K 내적을 이용해 어떤 patch를 볼지 결정한다. 그런데 adversarial perturbation이 patch feature를 변경하면 Q와 K도 변하므로, &lt;span data-client-katex-layout=&quot;&quot; data-math-source=&quot;QK^T&quot; data-end=&quot;3336&quot; data-start=&quot;3328&quot;&gt;&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;Q&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;T&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; attention logits가 달라지고 결과적으로 모델이 중요하게 보는 patch 관계가 크게 바뀔 수 있다. 따라서 attention 자체가 두 patch의 공간적 관계를 고려하도록 만들자&lt;/p&gt;
&lt;p data-end=&quot;1368&quot; data-start=&quot;1306&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1368&quot; data-start=&quot;1306&quot; data-ke-size=&quot;size16&quot;&gt;=&amp;gt; PAAS(Position-Aware Attention Scaling )&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-22 오전 4.08.22.png&quot; data-origin-width=&quot;436&quot; data-origin-height=&quot;46&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oDo6F/dJMcadwhpLb/l2Zgyhl30t6vx4k5CRoFn0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oDo6F/dJMcadwhpLb/l2Zgyhl30t6vx4k5CRoFn0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oDo6F/dJMcadwhpLb/l2Zgyhl30t6vx4k5CRoFn0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoDo6F%2FdJMcadwhpLb%2Fl2Zgyhl30t6vx4k5CRoFn0%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;436&quot; height=&quot;46&quot; data-filename=&quot;스크린샷 2026-08-22 오전 4.08.22.png&quot; data-origin-width=&quot;436&quot; data-origin-height=&quot;46&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot; data-start=&quot;13136&quot; data-end=&quot;13167&quot; data-math-source=&quot;\text{Transformer Blocks}&quot; data-client-katex-layout=&quot;&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;Transformer&amp;nbsp;Blocks&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;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/h3&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 data-end=&quot;125&quot; data-start=&quot;102&quot; data-section-id=&quot;1mn4bth&quot;&gt;Multi-stage 구조 도입&lt;/li&gt;
&lt;li data-end=&quot;151&quot; data-start=&quot;126&quot; data-section-id=&quot;1szn2q3&quot;&gt;Attention head 수 조정&lt;/li&gt;
&lt;li data-end=&quot;200&quot; data-start=&quot;152&quot; data-section-id=&quot;23l7p0&quot;&gt;Local attention은 쓰지 않고 global attention 유지&lt;/li&gt;
&lt;li data-end=&quot;234&quot; data-start=&quot;201&quot; data-section-id=&quot;152fwn6&quot;&gt;FFN을 Convolutional FFN으로 변경&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Multi-stage&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-22 오전 5.16.29.png&quot; data-origin-width=&quot;384&quot; data-origin-height=&quot;134&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/64f1q/dJMcah6JsVn/DJxICSheKJnIW1ufsvfw41/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/64f1q/dJMcah6JsVn/DJxICSheKJnIW1ufsvfw41/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/64f1q/dJMcah6JsVn/DJxICSheKJnIW1ufsvfw41/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F64f1q%2FdJMcah6JsVn%2FDJxICSheKJnIW1ufsvfw41%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;384&quot; height=&quot;134&quot; data-filename=&quot;스크린샷 2026-08-22 오전 5.16.29.png&quot; data-origin-width=&quot;384&quot; data-origin-height=&quot;134&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;V2는 뒤쪽의 더 낮은 resolution stage인 S4에 2개 block를 넘겼을때 roburst 성능이 젤 좋았다. V5, V6처럼 S1과 S2의 높은-resolution stage에 block을 넣기 시작하면 robustness가 크게 떨어졌다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;고해상도 feature를 처리하는 block이 너무 많을수록 robustness가 떨어졌다.&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;논문이 최종적으로 선택한 stage distribution은 V2 = [0,0,10,2]&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;S1&amp;nbsp;56&amp;times;56&amp;nbsp;:&amp;nbsp;0&amp;nbsp;blocks&lt;br /&gt;S2&amp;nbsp;28&amp;times;28&amp;nbsp;:&amp;nbsp;0&amp;nbsp;blocks&lt;br /&gt;&lt;br /&gt;S3&amp;nbsp;14&amp;times;14&amp;nbsp;:&amp;nbsp;10&amp;nbsp;RVT&amp;nbsp;Blocks&lt;br /&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;&amp;nbsp;&amp;darr;&lt;br /&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;2&amp;times;2&amp;nbsp;Pooling&lt;br /&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;&amp;nbsp;&amp;darr;&lt;br /&gt;S4&amp;nbsp;&amp;nbsp;7&amp;times;7&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;2&amp;nbsp;RVT&amp;nbsp;Blocks&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Attention head 수&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-22 오전 5.34.30.png&quot; data-origin-width=&quot;436&quot; data-origin-height=&quot;102&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9aIIb/dJMcahMi3eq/AKKOD8GpPDw9Yd0PspFqo1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9aIIb/dJMcahMi3eq/AKKOD8GpPDw9Yd0PspFqo1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9aIIb/dJMcahMi3eq/AKKOD8GpPDw9Yd0PspFqo1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9aIIb%2FdJMcahMi3eq%2FAKKOD8GpPDw9Yd0PspFqo1%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;436&quot; height=&quot;102&quot; data-filename=&quot;스크린샷 2026-08-22 오전 5.34.30.png&quot; data-origin-width=&quot;436&quot; data-origin-height=&quot;102&quot;/&gt;&lt;/span&gt;&lt;/figure&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;상태: 정보 처리의 '완전성'이 결여됨.견고성 영향: 입력된 패치들 사이의 관계를 소수의 헤드가 모두 처리해야 하므로, 모델이 정Coarse representation을 배우게 된다. 이 경우, 모델은 이미지의 핵심 형상보다는 특정 패치들에 과하게 의존하거나, 노이즈를 포함한 전체적인 통계치에 쉽게 낚일수있다. 그렇게 되면 공격자가 주입한 고주파 노이즈에 대한 대응 능력이 낮아 견고성이 매우 취약&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;헤드 개수가 증가할 때 (최적점까지: 예: 8개)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;헤드가 늘어남에 따라 각 헤드는 입력 정보의 서로 다른 측면(다각적 관점)을 분담하여 처리. 이를 통해 모델은 사물의 미세한 구조(Fine-grained representation)를 정교하게 포착하게 된다. 공격자가 이미지의 일부분에 노이즈를 섞더라도, 8개의 헤드가 각기 다른 영역과 관계성을 감시하고 있으므로, 특정 헤드의 왜곡이 모델 전체의 판단을 바꾸게 하지 못한다. 즉, 공격에 의한 오염을 분산시키고 상쇄하는 효과가 발생하여 견고성이 높아진다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;헤드 개수가 지나치게 많을 때 (12개 이상)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;전체 feature 차원이 고정된 상태에서 헤드 개수만 늘리면, 각 헤드가 담당하는 차원의 크기(Head dimension)가 작아진다.각 헤드가 다룰 수 있는 정보의 밀도가 낮아져서, 사물을 파악하는 정보가 파편화된다. 이는 모델이 안정적인 특징을 추출하는 데 방해가 되어서 결과적으로 견고성 정확도가 다시 떨어지게 됩니다.&lt;/li&gt;
&lt;/ul&gt;
&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;Global attention&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-22 오전 9.32.36.png&quot; data-origin-width=&quot;1480&quot; data-origin-height=&quot;658&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cRyDWW/dJMcadiWF0Z/52Wz8tlDyKyAKb251V60x0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cRyDWW/dJMcadiWF0Z/52Wz8tlDyKyAKb251V60x0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cRyDWW/dJMcadiWF0Z/52Wz8tlDyKyAKb251V60x0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcRyDWW%2FdJMcadiWF0Z%2F52Wz8tlDyKyAKb251V60x0%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;551&quot; height=&quot;245&quot; data-filename=&quot;스크린샷 2026-08-22 오전 9.32.36.png&quot; data-origin-width=&quot;1480&quot; data-origin-height=&quot;658&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;기존 ViT&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;P1 &amp;harr; P2 &lt;br /&gt;P1 &amp;harr; P3 &lt;br /&gt;P1 &amp;harr; P100 &lt;br /&gt;...&lt;/blockquote&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;멀리 떨어진 patch끼리도 직접 관계를 계산할 수 있다.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;910&quot; data-start=&quot;873&quot; data-ke-size=&quot;size16&quot;&gt;반면 Swin 스타일의 local window attention은:&lt;/p&gt;
&lt;blockquote data-end=&quot;910&quot; data-start=&quot;873&quot; data-ke-style=&quot;style3&quot;&gt;[ P1 P2 P3 ] &lt;br /&gt;[ P4 P5 P6 ]&lt;br /&gt;[ P7 P8 P9 ]&lt;/blockquote&gt;
&lt;p data-end=&quot;1013&quot; data-start=&quot;964&quot; data-ke-size=&quot;size16&quot;&gt;이 안에서만 attention을 계산하고, 멀리 있는 patch와는 바로 관계를 못 보게 된다.&amp;nbsp; 저자들은 이것이 ViT의 장점인 long-range dependency modeling을 손상시킬 수 있다고 본다.&amp;nbsp; long-range attention은 이미지의 멀리 떨어진 여러 영역을 함께 이용해서 object의 전체 구조를 파악하는데, 한 local texture가 깨지더라도 다른 영역의 정보를 이용할 여지가 있다. Transformer가 long-range dependency를 통해 shape-biased feature를 학습하는 능력이 corruption/OOD robustness와 관계 있을 수 있다고 보고 있다.&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;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;Convolutional FFN&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-22 오전 9.35.01.png&quot; data-origin-width=&quot;1676&quot; data-origin-height=&quot;766&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6NOiQ/dJMcagzSGaQ/usH8KlBrjuiAyUCEbLM5X1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6NOiQ/dJMcagzSGaQ/usH8KlBrjuiAyUCEbLM5X1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6NOiQ/dJMcagzSGaQ/usH8KlBrjuiAyUCEbLM5X1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6NOiQ%2FdJMcagzSGaQ%2FusH8KlBrjuiAyUCEbLM5X1%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;604&quot; height=&quot;276&quot; data-filename=&quot;스크린샷 2026-08-22 오전 9.35.01.png&quot; data-origin-width=&quot;1676&quot; data-origin-height=&quot;766&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 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Transformer FFN은 각 token을 &lt;b&gt;독립적으로&lt;/b&gt; 처리한다. FFN 내부에서는 Token 1이 Token 2 정보를 직접 보지 않는, position-wise MLP이다. conv 를 추가함으로써 convolutional FFN이 현재 token과 주변 token을 같이 encode해서 local information exchange를 만든다고 설명한다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-22 오전 9.50.02.png&quot; data-origin-width=&quot;370&quot; data-origin-height=&quot;48&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Bhtqf/dJMcacxvvwR/o8aYdU3Yk34xmWUVOR4mzK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Bhtqf/dJMcacxvvwR/o8aYdU3Yk34xmWUVOR4mzK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Bhtqf/dJMcacxvvwR/o8aYdU3Yk34xmWUVOR4mzK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBhtqf%2FdJMcacxvvwR%2Fo8aYdU3Yk34xmWUVOR4mzK%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;285&quot; height=&quot;37&quot; data-filename=&quot;스크린샷 2026-08-22 오전 9.50.02.png&quot; data-origin-width=&quot;370&quot; data-origin-height=&quot;48&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-22 오전 9.49.51.png&quot; data-origin-width=&quot;184&quot; data-origin-height=&quot;144&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/csIcsf/dJMcadC1i9B/KuMriaQFMBk8JiX995pRC1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/csIcsf/dJMcadC1i9B/KuMriaQFMBk8JiX995pRC1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/csIcsf/dJMcadC1i9B/KuMriaQFMBk8JiX995pRC1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcsIcsf%2FdJMcadC1i9B%2FKuMriaQFMBk8JiX995pRC1%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;134&quot; height=&quot;105&quot; data-filename=&quot;스크린샷 2026-08-22 오전 9.49.51.png&quot; data-origin-width=&quot;184&quot; data-origin-height=&quot;144&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-22 오전 9.50.15.png&quot; data-origin-width=&quot;348&quot; data-origin-height=&quot;56&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tY2Z3/dJMcai5sTHE/NkEyqu8ChbV0JrKVbMuRXk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tY2Z3/dJMcai5sTHE/NkEyqu8ChbV0JrKVbMuRXk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tY2Z3/dJMcai5sTHE/NkEyqu8ChbV0JrKVbMuRXk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtY2Z3%2FdJMcai5sTHE%2FNkEyqu8ChbV0JrKVbMuRXk%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;249&quot; height=&quot;40&quot; data-filename=&quot;스크린샷 2026-08-22 오전 9.50.15.png&quot; data-origin-width=&quot;348&quot; data-origin-height=&quot;56&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;원래 Transformer는&amp;nbsp;&lt;b&gt;token끼리 섞는 역할은 self-attention이 담당하고, FFN은 각 token feature를 더 복잡하게 변환하는 역할&lt;/b&gt;로 분업했다. &lt;span style=&quot;background-color: #fcfcfc; color: #666666; text-align: left;&quot;&gt;기존 FFN 대신&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #fcfcfc; color: #666666; text-align: left;&quot;&gt;convolutional FFN 방식을 사용하는게 robustness 를 올릴수있다고 보았다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;Self-Attention &amp;rarr; token &amp;harr; token 정보 교환 &lt;br /&gt;FFN &amp;rarr; 각 token 내부 feature 변환&lt;/blockquote&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;55701292-7813-4b7f-b9df-5a7c3bee53cf:1:editor&quot;&gt;
&lt;div&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;Token1 &amp;rarr; Linear &amp;rarr; Activation &amp;rarr; Linear &lt;br /&gt;Token2 &amp;rarr; Linear &amp;rarr; Activation &amp;rarr; Linear &lt;br /&gt;Token3 &amp;rarr; Linear &amp;rarr; Activation &amp;rarr; Linear&lt;/blockquote&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;blockquote data-end=&quot;999&quot; data-start=&quot;984&quot; data-ke-style=&quot;style3&quot;&gt;Linear &lt;br /&gt;&amp;darr; 토큰들을 2D grid로 봄 &lt;br /&gt;&amp;darr; 3&amp;times;3 Conv &lt;br /&gt;&amp;darr; Linear&lt;/blockquote&gt;
&lt;p data-end=&quot;999&quot; data-start=&quot;984&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; 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 data-end=&quot;3037&quot; data-start=&quot;2958&quot; data-section-id=&quot;61b1e8&quot;&gt;convolutional FFN은 ViT의 long-term dependency modeling ability를 손상시키지 않는다&lt;/li&gt;
&lt;li data-end=&quot;3144&quot; data-start=&quot;3038&quot; data-section-id=&quot;brkbwi&quot;&gt;일반 FFN은 single token representation만 encode하지만, convolutional FFN은 현재 token + 이웃 token을 함께 encode한다&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;RVT는 Transformer block에서 multi-stage 구조를 사용하고, 적절한 attention head 수를 선택하며, global self-attention은 유지하고, FFN 내부에는 3&amp;times;3 convolution을 추가했다.&lt;/blockquote&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;Classification Head&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존 ViT&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;Transformer를 여러 층 통과하면서 [CLS] token이 다른 모든 patch token과 attention을 주고받는다.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;마지막에는 [CLS]가 전체 이미지 정보를 모은 representation 역할을 하고, 그걸 classifier에 넣어서 판단하는 구조&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;[CLS] token + patch tokens &lt;br /&gt;&amp;darr; &lt;br /&gt;Transformer Blocks &lt;br /&gt;&amp;darr; &lt;br /&gt;마지막 [CLS] token만 꺼냄 &lt;br /&gt;&amp;darr; &lt;br /&gt;Linear Classifier &lt;br /&gt;&amp;darr; &lt;br /&gt;Class prediction&lt;/blockquote&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;저자들은 CNN에서는 마지막 feature map을 global average pooling해서 여러 spatial location의 정보를 합치는데, 이 방식이 translation invariance를 활용하는 데 유리하다고 판단했다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Translation invariance = 물체가 이미지 안에서 조금 이동해도 최종 예측이 거의 안 바뀌는 성질&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;예를 들어 고양이가 왼쪽 위에 있든, 오른쪽 아래로 조금 이동한 경우이든 모델이 둘다 고양이라고 판단한다면 translation invariant하다고 한다. 아래의 경우에 대해서 global average pooling은 평균갓ㅂ이 같다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;0 0 5 0 &lt;br /&gt;0 0 0 0&lt;br /&gt;&amp;darr;&lt;br /&gt;0 0 0 0 &lt;br /&gt;0 5 0 0&lt;/blockquote&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;실험 결과도 CLS token은 필수적이지 않고, 오히려 마지막 output tokens에 global average pooling을 적용하면 robustness가 좋아진다는 것을 확인할 수 있다.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;PAAS&lt;/h3&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Position-Aware Attention Scaling, attention score를 위치 정보까지 고려해서 scaling하는 방식이다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;기존 ViT = content similarity -&amp;gt; Attn&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-22 오전 10.26.11.png&quot; data-origin-width=&quot;526&quot; data-origin-height=&quot;98&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfQ7Su/dJMcacK7Nou/77nfNi2RUSeQf9V6D2p7jK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfQ7Su/dJMcacK7Nou/77nfNi2RUSeQf9V6D2p7jK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfQ7Su/dJMcacK7Nou/77nfNi2RUSeQf9V6D2p7jK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbfQ7Su%2FdJMcacK7Nou%2F77nfNi2RUSeQf9V6D2p7jK%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;327&quot; height=&quot;61&quot; data-filename=&quot;스크린샷 2026-08-22 오전 10.26.11.png&quot; data-origin-width=&quot;526&quot; data-origin-height=&quot;98&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;PAAS = &lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;content similarity&lt;span&gt; x position importance -&amp;gt; Attn&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-22 오전 10.27.08.png&quot; data-origin-width=&quot;566&quot; data-origin-height=&quot;86&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cjDace/dJMb991SJjU/wP3qZkWkQfvWB9z3DdZzy1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cjDace/dJMb991SJjU/wP3qZkWkQfvWB9z3DdZzy1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cjDace/dJMb991SJjU/wP3qZkWkQfvWB9z3DdZzy1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcjDace%2FdJMb991SJjU%2FwP3qZkWkQfvWB9z3DdZzy1%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;362&quot; height=&quot;55&quot; data-filename=&quot;스크린샷 2026-08-22 오전 10.27.08.png&quot; data-origin-width=&quot;566&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;Attn 에서 &lt;span data-client-katex-layout=&quot;&quot; data-math-source=&quot;(i,j)&quot; data-end=&quot;175&quot; data-start=&quot;166&quot;&gt;&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;i&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt;j&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; 원소는 i번째 위치의 query와 j번째 위치의 key의 content similarity를 나타내고, paas 는 여기에 N*N 행렬을 element wise 로 곱한다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key 위치. &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1&amp;nbsp; &amp;nbsp; &amp;nbsp; 2&amp;nbsp; &amp;nbsp; &amp;nbsp; 3&amp;nbsp; &amp;nbsp; &amp;nbsp;4 &lt;br /&gt;Query 1&amp;nbsp; w11&amp;nbsp; w12&amp;nbsp; w13&amp;nbsp; w14. &lt;br /&gt;위치&amp;nbsp; &amp;nbsp; &amp;nbsp;2&amp;nbsp; w21 w22 w23 w24 &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;3 w31 w32 w33 w34 &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;4 w41 w42 w43 w44&lt;br /&gt;&lt;br /&gt;위치 i &amp;harr; 위치 j 관계가 자주 유용함 &lt;br /&gt;&amp;rarr; Wp[i,j] 크게 &lt;br /&gt;위치 i &amp;harr; 위치 k 관계가 별로 필요 없음 &lt;br /&gt;&amp;rarr; Wp[i,k] 작게&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-22 오전 9.59.57.png&quot; data-origin-width=&quot;584&quot; data-origin-height=&quot;642&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/C6DjB/dJMcahFwOkH/swzWzwXuATR7Dyh5r6ZaO0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/C6DjB/dJMcahFwOkH/swzWzwXuATR7Dyh5r6ZaO0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/C6DjB/dJMcahFwOkH/swzWzwXuATR7Dyh5r6ZaO0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FC6DjB%2FdJMcahFwOkH%2FswzWzwXuATR7Dyh5r6ZaO0%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;417&quot; height=&quot;458&quot; data-filename=&quot;스크린샷 2026-08-22 오전 9.59.57.png&quot; data-origin-width=&quot;584&quot; data-origin-height=&quot;642&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; 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;br /&gt;important&amp;nbsp;region&amp;nbsp;&amp;rarr;&amp;nbsp;attention&amp;nbsp;큼&lt;br /&gt;irrelevant region &amp;rarr; 작음&lt;/li&gt;
&lt;li&gt;adversarial input&lt;br /&gt;important&amp;nbsp;region&amp;nbsp;&amp;rarr;&amp;nbsp;일부&amp;nbsp;유지&lt;br /&gt;irrelevant&amp;nbsp;region&amp;nbsp;&amp;rarr;&amp;nbsp;갑자기&amp;nbsp;큼&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;noisy attn map 이 생성되는데, paas 가 적용된 경우 행렬 W 가 soft mask c처럼 작동해, classification 에는 작은 값을 준다. adversarial perturbation 때문에 갑자기 커진 attention을 억제하는 효과가 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-22 오전 10.35.39.png&quot; data-origin-width=&quot;284&quot; data-origin-height=&quot;242&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b1mZL0/dJMcahyOSs4/jPfvIdus91BiKlub6wbBv1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b1mZL0/dJMcahyOSs4/jPfvIdus91BiKlub6wbBv1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b1mZL0/dJMcahyOSs4/jPfvIdus91BiKlub6wbBv1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb1mZL0%2FdJMcahyOSs4%2FjPfvIdus91BiKlub6wbBv1%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;192&quot; height=&quot;242&quot; data-filename=&quot;스크린샷 2026-08-22 오전 10.35.39.png&quot; data-origin-width=&quot;284&quot; data-origin-height=&quot;242&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;같은 layer 범위에 적용했을 때 PAAS가 기존 position embedding보다 항상 조금 더 좋다.&lt;/li&gt;
&lt;li&gt;더 많은 block에 position mechanism을 적용할수록 성능이 좋아지다가 어느 정도 포화된다. 논문 본문에서는 특히 약 5개 block 이후부터 PAAS 효과가 saturation되는 경향이 있다&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;Patch-Wise&amp;nbsp;Augmentation&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존 image-level augmentation만으로는 ViT의 patch 간 관계를 충분히 다양하게 못 만든다 &amp;rarr; patch마다 augmentation을 따로 줘서 inter-patch diversity를 늘리자고 주장&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;기존 image-level augmentation&lt;br /&gt;[ P1 ][ P2 ][ P3 ] &lt;br /&gt;[ P4 ][ P5 ][ P6 ] &lt;br /&gt;&amp;darr; 전체 이미지에 동일한 변환 &lt;br /&gt;[flip][flip][flip] &lt;br /&gt;[flip][flip][flip]&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ViT는 intra-patch feature(patch 내부 특징)이고, 다른 하나는 inter-patch relation(patch끼리의 관계)를 학습한다. 그런데 전체 이미지를 한 번에 변형하면 patch 내부에는 변화가 생겨도, 모든 patch가 같은 transformation을 받으니까 patch들 사이의 변형 조합은 다양하지 않다&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;Patch-wise augmentation &lt;br /&gt;[ P1: crop ][ P2: noise ][ P3: original ] &lt;br /&gt;[ P4: flip ][ P5: crop ][ P6: noise ]&lt;/blockquote&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 data-end=&quot;1416&quot; data-start=&quot;1390&quot; data-section-id=&quot;1xmjgrr&quot;&gt;RC = Random Resized Crop : patch 하나를 받아서 그 patch 내부에서 일부 영역을 무작위로 crop한 다음, 다시 원래 patch 크기로 resize하는 augmentation&lt;/li&gt;
&lt;li data-end=&quot;1438&quot; data-start=&quot;1417&quot; data-section-id=&quot;8vxzjr&quot;&gt;GN = Gaussian Noise : patch의 각 픽셀 값에 작은 랜덤 노이즈를 더하는 것&lt;/li&gt;
&lt;li data-end=&quot;1461&quot; data-start=&quot;1439&quot; data-section-id=&quot;unfpva&quot;&gt;HF = Horizontal Flip : patch 하나를 좌우로 뒤집는 것&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;*논문 설정상 각 patch에 대해 각 augmentation이 적용될 확률&amp;nbsp; p를 0.1 로 두고 있다.&amp;nbsp;&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;스크린샷 2026-08-22 오전 10.35.56.png&quot; data-origin-width=&quot;328&quot; data-origin-height=&quot;244&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cviH8g/dJMcadC1jVU/CVH7TniIKP21fKVF3KElN0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cviH8g/dJMcadC1jVU/CVH7TniIKP21fKVF3KElN0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cviH8g/dJMcadC1jVU/CVH7TniIKP21fKVF3KElN0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcviH8g%2FdJMcadC1jVU%2FCVH7TniIKP21fKVF3KElN0%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;328&quot; height=&quot;244&quot; data-filename=&quot;스크린샷 2026-08-22 오전 10.35.56.png&quot; data-origin-width=&quot;328&quot; data-origin-height=&quot;244&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Gaussian noise가 robustness 개선에 가장 효과적이었다&lt;/li&gt;
&lt;li&gt;세 방법 모두 clean/robust accuracy에 도움이 됐다.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Experiment&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-22 오전 9.44.50.png&quot; data-origin-width=&quot;852&quot; data-origin-height=&quot;670&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wtis1/dJMcaazJoOr/OfvzMPUCrrFIyApZytenq0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wtis1/dJMcaazJoOr/OfvzMPUCrrFIyApZytenq0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wtis1/dJMcaazJoOr/OfvzMPUCrrFIyApZytenq0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fwtis1%2FdJMcaazJoOr%2FOfvzMPUCrrFIyApZytenq0%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;684&quot; height=&quot;538&quot; data-filename=&quot;스크린샷 2026-08-22 오전 9.44.50.png&quot; data-origin-width=&quot;852&quot; data-origin-height=&quot;670&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;robustness를 &lt;b&gt;3종류&lt;/b&gt;로 나눠서 실험했다.&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;292&quot; data-start=&quot;123&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;174&quot; data-start=&quot;123&quot; data-section-id=&quot;lb1hcc&quot;&gt;Adversarial robustness: FGSM, PGD, ImageNet-A&lt;/li&gt;
&lt;li data-end=&quot;221&quot; data-start=&quot;175&quot; data-section-id=&quot;4te3ay&quot;&gt;Common corruption robustness: ImageNet-C&lt;/li&gt;
&lt;li data-end=&quot;292&quot; data-start=&quot;222&quot; data-section-id=&quot;1y6p6gp&quot;&gt;Distribution shift / OOD robustness: ImageNet-R, ImageNet-Sketch&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-22 오전 11.12.26.png&quot; data-origin-width=&quot;1792&quot; data-origin-height=&quot;566&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rjEO9/dJMcafOCUsy/i8BmIjddcwstkUt4GkXPV1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rjEO9/dJMcafOCUsy/i8BmIjddcwstkUt4GkXPV1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rjEO9/dJMcafOCUsy/i8BmIjddcwstkUt4GkXPV1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrjEO9%2FdJMcafOCUsy%2Fi8BmIjddcwstkUt4GkXPV1%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;1792&quot; height=&quot;566&quot; data-filename=&quot;스크린샷 2026-08-22 오전 11.12.26.png&quot; data-origin-width=&quot;1792&quot; data-origin-height=&quot;566&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;FGSM (Fast Gradient Sign Method)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;= 입력 이미지에 사람이 거의 알아보기 힘든 작은 perturbation을 추가해서 모델이 오분류하도록 만드는 adversarial attack&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;loss를 입력 이미지 &lt;span data-client-katex-layout=&quot;&quot; data-math-source=&quot;x&quot; data-end=&quot;660&quot; data-start=&quot;655&quot;&gt;&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;x&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;에 대해 미분해서, 각 픽셀을 어느 방향으로 바꾸면 loss가 증가하는지 찾는다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-22 오전 11.22.14.png&quot; data-origin-width=&quot;340&quot; data-origin-height=&quot;44&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Lii3O/dJMb991SK6x/v40DQrRkjGQRhJ9GnB9Yb0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Lii3O/dJMb991SK6x/v40DQrRkjGQRhJ9GnB9Yb0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Lii3O/dJMb991SK6x/v40DQrRkjGQRhJ9GnB9Yb0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLii3O%2FdJMb991SK6x%2Fv40DQrRkjGQRhJ9GnB9Yb0%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;340&quot; height=&quot;44&quot; data-filename=&quot;스크린샷 2026-08-22 오전 11.22.14.png&quot; data-origin-width=&quot;340&quot; data-origin-height=&quot;44&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;316&quot; data-start=&quot;301&quot; data-section-id=&quot;1mcxslr&quot;&gt;&lt;span data-client-katex-layout=&quot;&quot; data-math-source=&quot;x&quot; data-end=&quot;308&quot; data-start=&quot;303&quot;&gt;&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;x&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;: 원본 이미지&lt;/li&gt;
&lt;li data-end=&quot;334&quot; data-start=&quot;317&quot; data-section-id=&quot;1hwbcng&quot;&gt;&lt;span data-client-katex-layout=&quot;&quot; data-math-source=&quot;y&quot; data-end=&quot;324&quot; data-start=&quot;319&quot;&gt;&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;y&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;: 정답 label&lt;/li&gt;
&lt;li data-end=&quot;357&quot; data-start=&quot;335&quot; data-section-id=&quot;1ic2naw&quot;&gt;&lt;span data-client-katex-layout=&quot;&quot; data-math-source=&quot;L(x,y)&quot; data-end=&quot;347&quot; data-start=&quot;337&quot;&gt;&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;L&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;x&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt;y&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;: 모델의 loss&lt;/li&gt;
&lt;li data-end=&quot;427&quot; data-start=&quot;358&quot; data-section-id=&quot;1vl0idw&quot;&gt;&lt;span data-client-katex-layout=&quot;&quot; data-math-source=&quot;\nabla_x L&quot; data-end=&quot;374&quot; data-start=&quot;360&quot;&gt;&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nabla;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;x&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;L&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;: 입력 이미지의 각 픽셀을 어느 방향으로 바꾸면 loss가 증가하는지 나타내는 gradient&lt;/li&gt;
&lt;li data-end=&quot;499&quot; data-start=&quot;428&quot; data-section-id=&quot;14dqc84&quot;&gt;&lt;span data-client-katex-layout=&quot;&quot; data-math-source=&quot;\mathrm{sign}&quot; data-end=&quot;447&quot; data-start=&quot;430&quot;&gt;&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;sign&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;: gradient의 크기는 버리고 증가 방향은 &lt;span data-client-katex-layout=&quot;&quot; data-math-source=&quot;+1&quot; data-end=&quot;480&quot; data-start=&quot;474&quot;&gt;&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&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 data-client-katex-layout=&quot;&quot; data-math-source=&quot;-1&quot; data-end=&quot;495&quot; data-start=&quot;489&quot;&gt;&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;minus;&lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;로 변환&lt;/li&gt;
&lt;li data-end=&quot;541&quot; data-start=&quot;500&quot; data-section-id=&quot;5nj25m&quot;&gt;&lt;span data-client-katex-layout=&quot;&quot; data-math-source=&quot;\epsilon&quot; data-end=&quot;514&quot; data-start=&quot;502&quot;&gt;&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;ϵ&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;: 이미지에 추가할 perturbation의 크기&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결과 분석&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;같은 급의 기존 ViT 대비 RVT가 훨씬 robust하다&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Tiny 모델 기준으로:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1210&quot; data-start=&quot;967&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1047&quot; data-start=&quot;967&quot; data-section-id=&quot;dqjqdn&quot;&gt;DeiT-Ti: Clean 72.2 / FGSM 22.3 / PGD 6.2 / IN-C 71.1 / IN-R 32.6 / IN-SK 20.2&lt;/li&gt;
&lt;li data-end=&quot;1128&quot; data-start=&quot;1048&quot; data-section-id=&quot;10vxc6w&quot;&gt;RVT-Ti: Clean 78.4 / FGSM 34.8 / PGD 11.7 / IN-C 58.2 / IN-R 43.7 / IN-SK 30.0&lt;/li&gt;
&lt;li data-end=&quot;1210&quot; data-start=&quot;1129&quot; data-section-id=&quot;19doe63&quot;&gt;RVT-Ti*: Clean 79.2 / FGSM 42.7 / PGD 18.9 / IN-C 57.0 / IN-R 43.9 / IN-SK 30.4&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DeiT &amp;rarr; RVT에서 이미 구조만 바꿔도 robustness가 크게 올라가고, RVT &amp;rarr; RVT*에서 PAAS + patch-wise augmentation을 추가하면 특히 FGSM/PGD가 더 크게 좋아진다.&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;&lt;b&gt;clean accuracy가 높은 모델이 반드시 robust한 건 아니다&lt;/b&gt;. 예를 들어 PVT-Small은 clean accuracy 79.9로 DeiT-S와 비슷하지만 FGSM은 26.6, PGD는 3.1로 훨씬 낮아. 반면 RVT-S는 clean 81.7, FGSM 51.3, PGD 26.2로 훨씬 강하다.&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;&lt;b&gt;RVT가 한 종류 robustness만 좋아진 게 아니라 adversarial / corruption / distribution shift 세 축에서 전반적으로 좋아졌다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-22 오전 9.57.42.png&quot; data-origin-width=&quot;626&quot; data-origin-height=&quot;264&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bk21Ci/dJMcaf8JFwq/j9Unks0TxTHusWhKGeKaX0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bk21Ci/dJMcaf8JFwq/j9Unks0TxTHusWhKGeKaX0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bk21Ci/dJMcaf8JFwq/j9Unks0TxTHusWhKGeKaX0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbk21Ci%2FdJMcaf8JFwq%2Fj9Unks0TxTHusWhKGeKaX0%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;180&quot; data-filename=&quot;스크린샷 2026-08-22 오전 9.57.42.png&quot; data-origin-width=&quot;626&quot; data-origin-height=&quot;264&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;DeiT-Ti, ConViT, PiT 에도 PAAS와 Patch-wise Augmentation을 적용했더니, 모든 모델에서 견고성이 5% 이상 향상되었다.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;어떤 ViT를 가져와도 견고성을 높여주는 plug-and-play 도구로서 활용할수있다ㅏ.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;</description>
      <author>whereami72</author>
      <guid isPermaLink="true">https://lambdacourse.tistory.com/84</guid>
      <comments>https://lambdacourse.tistory.com/84#entry84comment</comments>
      <pubDate>Sat, 22 Aug 2026 11:48:05 +0900</pubDate>
    </item>
    <item>
      <title>[김민정] Scalable Diffusion Models with Transformers</title>
      <link>https://lambdacourse.tistory.com/83</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. Intro&lt;/h3&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-filename=&quot;figure1_samples.png&quot; data-origin-width=&quot;1725&quot; data-origin-height=&quot;1418&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bBtS27/dJMcaikccTP/MiWcZeYr4Hw3gIlKRtkaF0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bBtS27/dJMcaikccTP/MiWcZeYr4Hw3gIlKRtkaF0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bBtS27/dJMcaikccTP/MiWcZeYr4Hw3gIlKRtkaF0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbBtS27%2FdJMcaikccTP%2FMiWcZeYr4Hw3gIlKRtkaF0%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;1725&quot; height=&quot;1418&quot; data-filename=&quot;figure1_samples.png&quot; data-origin-width=&quot;1725&quot; data-origin-height=&quot;1418&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;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;- 제목: Scalable Diffusion Models with Transformers (DiT) &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;- William Peebles, Saining Xie / ICCV 2023 (Oral, Best Paper), IEEE 2023&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;-8623 Citations&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;- &lt;a href=&quot;https://arxiv.org/abs/2212.09748&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://arxiv.org/abs/2212.09748&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt; - 김민정, 260822 발표&lt;/span&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;nbsp;&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;592&quot; data-origin-height=&quot;337&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pt2dZ/dJMcahZPbxv/t5vEcRAVvvMiQNpjUg6yBk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pt2dZ/dJMcahZPbxv/t5vEcRAVvvMiQNpjUg6yBk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pt2dZ/dJMcahZPbxv/t5vEcRAVvvMiQNpjUg6yBk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fpt2dZ%2FdJMcahZPbxv%2Ft5vEcRAVvvMiQNpjUg6yBk%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;592&quot; height=&quot;337&quot; data-origin-width=&quot;592&quot; data-origin-height=&quot;337&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;One Liner&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CNN을 Transformer로 변경한 뒤, &lt;span style=&quot;color: #000000; text-align: start;&quot; data-token-index=&quot;0&quot;&gt;모델을 키우면 성능이 예측 가능하게 좋아짐(scalability)을&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt; 증명함.&lt;/span&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;span style=&quot;color: #000000; text-align: start;&quot;&gt;CNN은 키워도 한계가 있는데, Transformer는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-token-index=&quot;2&quot;&gt;키우면 키우는 만큼 좋아진다&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;는 게 GPT에서 이미 증명됨. 그 성질을 이미지 생성에 가져온 것.&lt;/span&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;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;caret-color: #000000;&quot;&gt;목차&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;1. 배경지식 (Diffusion / U-Net / ViT / Latent Diffusion) &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;2. 문제 제기 &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;3. DiT 아키텍처 &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;4. 실험 &amp;mdash; 스케일링 분석 &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;5. 결과 및 한계 &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;6. 정리&lt;/span&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;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;2. Diffusion Model 수식 추가 !!&amp;nbsp;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;사진에 노이즈를 점진적으로 더한 결과물에서 역과정을 거치면 새로운 사진을 생성할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;Foward process - 노이즈 더하기&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Screenshot 2026-08-22 at 11.01.31 AM.png&quot; data-origin-width=&quot;682&quot; data-origin-height=&quot;136&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Wrpuk/dJMcaixLiVY/48kQTBdxgFFsQYUZZNanc1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Wrpuk/dJMcaixLiVY/48kQTBdxgFFsQYUZZNanc1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Wrpuk/dJMcaixLiVY/48kQTBdxgFFsQYUZZNanc1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWrpuk%2FdJMcaixLiVY%2F48kQTBdxgFFsQYUZZNanc1%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;682&quot; height=&quot;136&quot; data-filename=&quot;Screenshot 2026-08-22 at 11.01.31 AM.png&quot; data-origin-width=&quot;682&quot; data-origin-height=&quot;136&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;원본 이미지&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;x_0&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;에 정해진 비율로 가우시안 노이즈를 섞는다.&lt;/span&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-filename=&quot;Screenshot 2026-08-22 at 11.01.48 AM.png&quot; data-origin-width=&quot;774&quot; data-origin-height=&quot;106&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1CXx6/dJMcabrPfiK/x6nrkO10qimHRADyPmUJv0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1CXx6/dJMcabrPfiK/x6nrkO10qimHRADyPmUJv0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1CXx6/dJMcabrPfiK/x6nrkO10qimHRADyPmUJv0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1CXx6%2FdJMcabrPfiK%2Fx6nrkO10qimHRADyPmUJv0%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;106&quot; data-filename=&quot;Screenshot 2026-08-22 at 11.01.48 AM.png&quot; data-origin-width=&quot;774&quot; data-origin-height=&quot;106&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;t : 타임스텝 (0 = 원본, 1000 = 완전 노이즈). 논문에서 t_{max}=1000&lt;/li&gt;
&lt;li&gt;bar_alpha_t : 하이퍼파라미터 (학습 안 함). 논문은 linear variance schedule, 1*10^{-4} -&amp;gt; 2*10^{-2}&lt;/li&gt;
&lt;li&gt;&lt;b&gt;결론: &lt;/b&gt;이 식 덕분에 아무 t 나 골라서&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;한 번에&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;노이즈 이미지를 만들 수 있다 (순차적으로 1000번 안 돌려도 됨) &amp;rarr; 학습이 효율적임&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;Reverse Process - 신경망을 이용해 노이즈 제거하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Screenshot 2026-08-22 at 11.03.47 AM.png&quot; data-origin-width=&quot;592&quot; data-origin-height=&quot;128&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3a1D3/dJMcaasX2M1/HLqkepfk9S275RWfvYl2ik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3a1D3/dJMcaasX2M1/HLqkepfk9S275RWfvYl2ik/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3a1D3/dJMcaasX2M1/HLqkepfk9S275RWfvYl2ik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3a1D3%2FdJMcaasX2M1%2FHLqkepfk9S275RWfvYl2ik%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;128&quot; data-filename=&quot;Screenshot 2026-08-22 at 11.03.47 AM.png&quot; data-origin-width=&quot;592&quot; data-origin-height=&quot;128&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;size18&quot;&gt;학습 손실함수&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Screenshot 2026-08-22 at 11.04.32 AM.png&quot; data-origin-width=&quot;496&quot; data-origin-height=&quot;130&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b7JT9r/dJMcaiEvBlP/H1sOOoL7qh4qCKDkpITSZ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b7JT9r/dJMcaiEvBlP/H1sOOoL7qh4qCKDkpITSZ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b7JT9r/dJMcaiEvBlP/H1sOOoL7qh4qCKDkpITSZ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb7JT9r%2FdJMcaiEvBlP%2FH1sOOoL7qh4qCKDkpITSZ1%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;496&quot; height=&quot;130&quot; data-filename=&quot;Screenshot 2026-08-22 at 11.04.32 AM.png&quot; data-origin-width=&quot;496&quot; data-origin-height=&quot;130&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모델이 예측한 노이즈와 실제로 넣으 노이즈의 mean squre error로 간단하게 축약이 가능하다.&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;iDDPM과 샘플링&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;분산 (Sigma_theta)를 학습하려면 전체 KL항이 필요해서&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;논문은 Nichol &amp;amp; Dhariwal(iDDPM) 방식 채택함.&lt;/span&gt;&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Screenshot 2026-08-22 at 11.06.19 AM.png&quot; data-origin-width=&quot;540&quot; data-origin-height=&quot;58&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c4dYPs/dJMb998z7vo/hkG8OdUFk95kuS81beAKm0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c4dYPs/dJMb998z7vo/hkG8OdUFk95kuS81beAKm0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c4dYPs/dJMb998z7vo/hkG8OdUFk95kuS81beAKm0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc4dYPs%2FdJMb998z7vo%2FhkG8OdUFk95kuS81beAKm0%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;540&quot; height=&quot;58&quot; data-filename=&quot;Screenshot 2026-08-22 at 11.06.19 AM.png&quot; data-origin-width=&quot;540&quot; data-origin-height=&quot;58&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;이로 인해 DiT의 출력 채널이 2C가 됨.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;(노이즈&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;C&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;+ 분산&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;C&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;)로 이루어짐, 추후 디코더 설명시 연결됨.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;caret-color: #000000;&quot;&gt;Sampling - 이미지 생성&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Screenshot 2026-08-22 at 11.07.32 AM.png&quot; data-origin-width=&quot;278&quot; data-origin-height=&quot;68&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bpAsXB/dJMcag7GH6b/Sjubpb31Ny1EUlupCCnarK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bpAsXB/dJMcag7GH6b/Sjubpb31Ny1EUlupCCnarK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bpAsXB/dJMcag7GH6b/Sjubpb31Ny1EUlupCCnarK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbpAsXB%2FdJMcag7GH6b%2FSjubpb31Ny1EUlupCCnarK%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;278&quot; height=&quot;68&quot; data-filename=&quot;Screenshot 2026-08-22 at 11.07.32 AM.png&quot; data-origin-width=&quot;278&quot; data-origin-height=&quot;68&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;caret-color: #000000;&quot;&gt;순수 노이즈 에서 시작하여 신경망으로 노이즈를 예측하며 차차 노이즈를 제거해나간다. x_t_max -&amp;gt; x_t-1&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;caret-color: #000000;&quot;&gt;이 과정을 반복한다. 논문에서는 250 DDPM steps를 사용했다. 최종적으로 x_0가 생성 이미지가 된다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;caret-color: #000000;&quot;&gt;Diffusion의 특이점&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;GAN은 한 번에 다 만들고, Diffusion은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-token-index=&quot;1&quot;&gt;여러 번 반복&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;해서 만든다. 그래서 느리지만 품질/다양성이 좋고,&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-token-index=&quot;3&quot;&gt;샘플링 스텝 수라는 추가 연산 축&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;이 존재한다 .&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&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;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;3. U-Net&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-token-index=&quot;0&quot;&gt;U-Net&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(Ronneberger 2015, 원래 의료영상 세그멘테이션용): 인코더로 줄이고 디코더로 키우면서 skip connection으로 연결하는 CNN&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Screenshot 2026-08-22 at 11.42.47 AM.png&quot; data-origin-width=&quot;760&quot; data-origin-height=&quot;446&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/biuiE9/dJMcaiLbsy4/C5m6I4BY9krkMbVqggkbr1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/biuiE9/dJMcaiLbsy4/C5m6I4BY9krkMbVqggkbr1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/biuiE9/dJMcaiLbsy4/C5m6I4BY9krkMbVqggkbr1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbiuiE9%2FdJMcaiLbsy4%2FC5m6I4BY9krkMbVqggkbr1%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;760&quot; height=&quot;446&quot; data-filename=&quot;Screenshot 2026-08-22 at 11.42.47 AM.png&quot; data-origin-width=&quot;760&quot; data-origin-height=&quot;446&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;U-Net&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(Ronneberger 2015, 의료영상 세그멘테이션용): 인코더로 줄이고 디코더로 키우면서 skip connection으로 연결하는 CNN&lt;/li&gt;
&lt;li&gt;디퓨전에서 U-Net이 쓰이는 구조적 이유:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;입력과 출력의 shape가 같아야 한다!&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(노이즈 낀 이미지 &amp;rarr; 같은 크기의 노이즈 예측).&lt;/li&gt;
&lt;li&gt;Ho et al.&amp;nbsp;(DDPM, 2020)이 PixelCNN++에서 물려받아 처음 도입 &amp;rarr; ResNet 블록 + 낮은 해상도에 self-attention 끼워넣기&lt;/li&gt;
&lt;li&gt;Dhariwal &amp;amp; Nichol (ADM, 2021)이 세부 튜닝(adaptive norm, 채널 수 등)은 했지만&amp;nbsp;&lt;b&gt;구조는 가져감.&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;Inductive Bias of CNN&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;caret-color: #000000;&quot;&gt;CNN이 이미지를 다룰 때 가지고 있는 다음 가정들&lt;/span&gt;&lt;/span&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; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Locality (지역성)&lt;/b&gt;: 가까운 픽셀끼리 관련 있다&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Translation equivariance (이동 등변성)&lt;/b&gt;: 고양이가 왼쪽에 있든 오른쪽에 있든 같은 필터로 잡힌다&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Multi-scale hierarchy&lt;/b&gt;: U-Net의 다운/업샘플링 구조&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;데이터가 적을 때는 이 가정이 도움이 되지만,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;데이터&amp;middot;연산이 많아지면 오히려 제약&lt;/b&gt;이 된다는 것이 ViT 이미지 분류에서 증명됨.&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;논문은 U-Net의 inductive bias는 디퓨전 성능에 필수적이지 않다고 주장한다.&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;4. Vision Transformer&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;트랜스포머는 원래 1차원 토큰 시퀀스용이므로 2차원 이미지를 처리하기에 곤란하다.&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;ViT는 이미지를 패치로 잘라 단어처럼 취급한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;figure4.png&quot; data-origin-width=&quot;1210&quot; data-origin-height=&quot;943&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/boFdLZ/dJMcafucQuH/wXBnnTcYxGR2hxeH5yn7wk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/boFdLZ/dJMcafucQuH/wXBnnTcYxGR2hxeH5yn7wk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/boFdLZ/dJMcafucQuH/wXBnnTcYxGR2hxeH5yn7wk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FboFdLZ%2FdJMcafucQuH%2FwXBnnTcYxGR2hxeH5yn7wk%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;1210&quot; height=&quot;943&quot; data-filename=&quot;figure4.png&quot; data-origin-width=&quot;1210&quot; data-origin-height=&quot;943&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;이미지를 p* p격자로 자름 (예: 16&amp;times;16)&lt;/li&gt;
&lt;li&gt;각 패치를 flatten &amp;rarr; linear projection &amp;rarr; d(차원 벡터) (= 토큰)&lt;/li&gt;
&lt;li&gt;positional embedding 더해서 위치 정보 주입 (Transformer 자체는 순서를 모름)&lt;/li&gt;
&lt;li&gt;Transformer 블록 N개 통과&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Screenshot 2026-08-22 at 11.13.22 AM.png&quot; data-origin-width=&quot;212&quot; data-origin-height=&quot;84&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFCDX3/dJMcacjU4jV/TmYaSShMcEB1dmcHMdLwK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFCDX3/dJMcacjU4jV/TmYaSShMcEB1dmcHMdLwK1/img.png&quot; data-alt=&quot;시퀀스 길이, I는 입력 해상도&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFCDX3/dJMcacjU4jV/TmYaSShMcEB1dmcHMdLwK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFCDX3%2FdJMcacjU4jV%2FTmYaSShMcEB1dmcHMdLwK1%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;212&quot; height=&quot;84&quot; data-filename=&quot;Screenshot 2026-08-22 at 11.13.22 AM.png&quot; data-origin-width=&quot;212&quot; data-origin-height=&quot;84&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;시퀀스 길이, I는 입력 해상도&lt;/figcaption&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;size18&quot;&gt;Tradeoff for ViT&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;span style=&quot;color: #000000; text-align: start;&quot;&gt;패치를 절반으로 줄이면 (&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;p: 4 -&amp;gt; 2&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;) 토큰 수는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-token-index=&quot;3&quot;&gt;4배&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&amp;rarr; 연산량(Gflops)도&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-token-index=&quot;5&quot;&gt;최소 4배가 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;그런데&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-token-index=&quot;7&quot;&gt;파라미터 수는 거의 안 변한다.&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(첫 linear layer만 살짝 바뀜) &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;결과적으로 이 논문이 파라미터 수 &amp;ne; 성능, Gflops = 성능을 증명하는데 사용된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;왜 파라미터 수가 아니라 Gflops인가&amp;nbsp;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;생성모델 논문들은 관례적으로&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;파라미터 수&lt;/b&gt;로 모델 복잡도를 표현해 왔다&lt;/li&gt;
&lt;li&gt;하지만 파라미터 수는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;해상도/토큰 수를 반영하지 못한다&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&amp;rarr; 나쁜 프록시&lt;/li&gt;
&lt;li&gt;아키텍처 설계 연구(RegNet 등)에서 표준인&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;theoretical Gflops&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;를 쓰겠음&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1506&quot; data-origin-height=&quot;256&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFPDo6/dJMcaidvNu2/aWe2NSPGyru1ugmP0cOlF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFPDo6/dJMcaidvNu2/aWe2NSPGyru1ugmP0cOlF1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFPDo6/dJMcaidvNu2/aWe2NSPGyru1ugmP0cOlF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFPDo6%2FdJMcaidvNu2%2FaWe2NSPGyru1ugmP0cOlF1%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;1506&quot; height=&quot;256&quot; data-origin-width=&quot;1506&quot; data-origin-height=&quot;256&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&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;span style=&quot;color: #000000; text-align: start;&quot;&gt;4. &amp;nbsp;Latent Diffusion Model &amp;nbsp;- Why Latent?&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;256&amp;times;256&amp;times;3 = 196,608 차원에서 디퓨전을 돌리면 너무 비싸다. 게다가 픽셀 대부분은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-token-index=&quot;1&quot;&gt;지각적으로 의미 없는 고주파 디테일이다.&lt;/span&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;LDM (Rombach et al. 2022, Stable Diffusion 논문)&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;VAE 학습&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(인코더 E, 디코더 D) &amp;mdash; 이미지를 작은 공간 표현으로 압축&lt;/li&gt;
&lt;li&gt;&lt;b&gt;latent에서 디퓨전 학습&lt;/b&gt;: z = E(x)에 대해 디퓨전. E를 고정함.&lt;/li&gt;
&lt;li&gt;생성 시: 디퓨전으로 z 샘플링 &amp;rarr; x = D(z) 로 이미지 복원&lt;/li&gt;
&lt;/ol&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;span style=&quot;color: #000000; text-align: start;&quot;&gt;256&amp;times;256&amp;times;3 이미지 &amp;rarr;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-token-index=&quot;1&quot;&gt;32&amp;times;32&amp;times;4 latent&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(약&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-token-index=&quot;3&quot;&gt;48배&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;압축), &lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;512&amp;times;512 &amp;rarr; 64&amp;times;64&amp;times;4 latent&lt;/span&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;span style=&quot;color: #000000; text-align: start;&quot;&gt;latent 이용시 10배 저렴해진다.&lt;/span&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-filename=&quot;Screenshot 2026-08-22 at 11.18.11 AM.png&quot; data-origin-width=&quot;550&quot; data-origin-height=&quot;388&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cZvZ3N/dJMcafgJsTN/MQ4GcBkwnkI9SLKYWP5KE1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cZvZ3N/dJMcafgJsTN/MQ4GcBkwnkI9SLKYWP5KE1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cZvZ3N/dJMcafgJsTN/MQ4GcBkwnkI9SLKYWP5KE1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcZvZ3N%2FdJMcafgJsTN%2FMQ4GcBkwnkI9SLKYWP5KE1%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;550&quot; height=&quot;388&quot; data-filename=&quot;Screenshot 2026-08-22 at 11.18.11 AM.png&quot; data-origin-width=&quot;550&quot; data-origin-height=&quot;388&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-token-index=&quot;0&quot;&gt;hybrid-based approach&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&amp;mdash; convolutional VAE + transformer DDPM&lt;/span&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;6. Conditioning&lt;/h2&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; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;타임스텝&lt;/b&gt;&lt;span&gt; &lt;/span&gt;t: 지금 노이즈가 얼마나 심한 단계인지 나타냄&lt;/li&gt;
&lt;li&gt;&lt;b&gt;클래스 라벨&lt;/b&gt;&lt;span&gt; &lt;/span&gt;y&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;(or text)&lt;/b&gt;: 무엇을 그릴지 나타냄&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;어떻게 &lt;b&gt;Transformer 블록에 이 정보를 입력할까 고민함.&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-size: 1.25em; letter-spacing: -1px;&quot;&gt;7. Classifier-Free Guidance&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;샘플링시 더 조건을 강하게 제시하고 싶어서 고안함.&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Screenshot 2026-08-22 at 11.26.06 AM.png&quot; data-origin-width=&quot;916&quot; data-origin-height=&quot;130&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/s8cFs/dJMcadb0bIE/RK9ko46WNvKRAnkJAWc5z0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/s8cFs/dJMcadb0bIE/RK9ko46WNvKRAnkJAWc5z0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/s8cFs/dJMcadb0bIE/RK9ko46WNvKRAnkJAWc5z0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fs8cFs%2FdJMcadb0bIE%2FRK9ko46WNvKRAnkJAWc5z0%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;916&quot; height=&quot;130&quot; data-filename=&quot;Screenshot 2026-08-22 at 11.26.06 AM.png&quot; data-origin-width=&quot;916&quot; data-origin-height=&quot;130&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;디퓨전 모델의 출력을 score function으로 해석하면 다음과 같다.&lt;/span&gt;&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Screenshot 2026-08-22 at 11.26.28 AM.png&quot; data-origin-width=&quot;782&quot; data-origin-height=&quot;202&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NpMjV/dJMcags7Jo1/Qrhi75kgZKNjB4BM3ljUwk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NpMjV/dJMcags7Jo1/Qrhi75kgZKNjB4BM3ljUwk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NpMjV/dJMcags7Jo1/Qrhi75kgZKNjB4BM3ljUwk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNpMjV%2FdJMcags7Jo1%2FQrhi75kgZKNjB4BM3ljUwk%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;782&quot; height=&quot;202&quot; data-filename=&quot;Screenshot 2026-08-22 at 11.26.28 AM.png&quot; data-origin-width=&quot;782&quot; data-origin-height=&quot;202&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;varnothing :[조건 없음]을 나타내는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;학습된 null embedding&lt;/b&gt;. 학습 중 라벨을 랜덤하게 drop해서 만든다&lt;/li&gt;
&lt;li&gt;s &amp;gt; 1 : guidance scale. s = 1 이면 일반 샘플링&lt;/li&gt;
&lt;li&gt;해석:&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;조건 있을 때의 예측 방향으로 더 과장해서 밀어라&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;비용: 매 스텝 forward를&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;2번&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(조건 있음/없음) &amp;rarr; 샘플링 2배 느려짐&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;Tradeoffs&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;s&amp;uarr; -&amp;gt;.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-token-index=&quot;1&quot;&gt;충실도(fidelity)&amp;middot;Precision &amp;uarr;, 다양성(diversity)&amp;middot;Recall &amp;darr;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;논문 결과: DiT-XL/2 guidance 없으면 FID 9.62, cfg=1.5면&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-token-index=&quot;3&quot;&gt;2.27&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;. &amp;rarr; guidance 영향이 엄청 큼&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;7-1. Metrics&lt;/h3&gt;
&lt;table style=&quot;color: #000000; text-align: start; border-collapse: collapse; width: 100%; height: 118px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 36px;&quot;&gt;
&lt;td style=&quot;height: 36px;&quot;&gt;&lt;b&gt;FID&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(Fr&amp;eacute;chet Inception Distance)&lt;/td&gt;
&lt;td style=&quot;height: 36px;&quot;&gt;&amp;darr;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;height: 36px;&quot;&gt;Inception 네트워크 feature 공간에서&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;생성 이미지 분포와 실제 이미지 분포의 거리&lt;/b&gt;. 품질+다양성을 함께 반영. 생성모델의 표준 지표. 낮을수록 좋음.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;height: 18px;&quot;&gt;&lt;b&gt;sFID&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 18px;&quot;&gt;&amp;darr;&lt;/td&gt;
&lt;td style=&quot;height: 18px;&quot;&gt;spatial feature를 쓴 FID 변형. 공간적 구조를 더 잘 봄&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;height: 18px;&quot;&gt;&lt;b&gt;IS&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(Inception Score)&lt;/td&gt;
&lt;td style=&quot;height: 18px;&quot;&gt;&amp;uarr;&lt;/td&gt;
&lt;td style=&quot;height: 18px;&quot;&gt;분류기가 얼마나 확신 있게, 그리고 다양하게 분류하는지&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;height: 18px;&quot;&gt;&lt;b&gt;Precision&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 18px;&quot;&gt;&amp;uarr;&lt;/td&gt;
&lt;td style=&quot;height: 18px;&quot;&gt;생성 이미지가&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;얼마나 진짜같은지&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(충실도)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;height: 18px;&quot;&gt;&lt;b&gt;Recall&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 18px;&quot;&gt;&amp;uarr;&lt;/td&gt;
&lt;td style=&quot;height: 18px;&quot;&gt;실제 분포를&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;얼마나 폭넓게 덮는지&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(다양성)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;FID-50K&lt;/b&gt;: 5만 장 생성해서 계산&lt;/li&gt;
&lt;li&gt;&lt;b&gt;FID-10K&lt;/b&gt;: 1만 장, 실험을 많이 돌려야 할 때 사용&lt;/li&gt;
&lt;li&gt;FID는 구현 디테일(리사이즈 방식 등)에 민감 &amp;rarr; 논문은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;ADM의 TensorFlow 평가 스위트&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;&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;2. 논문의 연구 질문&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;1. U-Net의 inductive bias는 디퓨전에&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-token-index=&quot;1&quot;&gt;정말 필수&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;인가? &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;2. Transformer로 바꾸면&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-token-index=&quot;3&quot;&gt;어떻게 조건 정보를 넣을&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;것인가? &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;3. Transformer의&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-token-index=&quot;5&quot;&gt;scalability&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;를 생성 모델도 물려받을 수 있는가?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Screenshot 2026-08-22 at 11.47.40 AM.png&quot; data-origin-width=&quot;404&quot; data-origin-height=&quot;706&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QRzZ6/dJMcadC1mHs/rAVQzjBx1rwsYrHGnoL7m1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QRzZ6/dJMcadC1mHs/rAVQzjBx1rwsYrHGnoL7m1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QRzZ6/dJMcadC1mHs/rAVQzjBx1rwsYrHGnoL7m1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQRzZ6%2FdJMcadC1mHs%2FrAVQzjBx1rwsYrHGnoL7m1%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;404&quot; height=&quot;706&quot; data-filename=&quot;Screenshot 2026-08-22 at 11.47.40 AM.png&quot; data-origin-width=&quot;404&quot; data-origin-height=&quot;706&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;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;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. patch size&lt;/h3&gt;
&lt;p style=&quot;position: absolute;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;p= 2, 4, 8&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/boFdLZ/dJMcafucQuH/wXBnnTcYxGR2hxeH5yn7wk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/boFdLZ/dJMcafucQuH/wXBnnTcYxGR2hxeH5yn7wk/img.png&quot; data-is-animation=&quot;false&quot; data-filename=&quot;figure4.png&quot; data-origin-height=&quot;943&quot; data-origin-width=&quot;1210&quot; data-widthpercent=&quot;24.18&quot; style=&quot;width: 23.90051%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/boFdLZ/dJMcafucQuH/wXBnnTcYxGR2hxeH5yn7wk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FboFdLZ%2FdJMcafucQuH%2FwXBnnTcYxGR2hxeH5yn7wk%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;1210&quot; height=&quot;943&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/p0BVJ/dJMcafA0j9E/d2yZbsxgXxfhQLK4EEjJAk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/p0BVJ/dJMcafA0j9E/d2yZbsxgXxfhQLK4EEjJAk/img.png&quot; data-origin-width=&quot;1219&quot; data-origin-height=&quot;303&quot; data-filename=&quot;table1.png&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;75.82&quot; style=&quot;width: 74.9367%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/p0BVJ/dJMcafA0j9E/d2yZbsxgXxfhQLK4EEjJAk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fp0BVJ%2FdJMcafA0j9E%2Fd2yZbsxgXxfhQLK4EEjJAk%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;303&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3. 조건 4개&lt;/h3&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-filename=&quot;Screenshot 2026-08-22 at 12.43.30 PM.png&quot; data-origin-width=&quot;2014&quot; data-origin-height=&quot;1140&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfBoXn/dJMcagUdZT6/gTvHuXukkLNtAZssO5fm81/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfBoXn/dJMcagUdZT6/gTvHuXukkLNtAZssO5fm81/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfBoXn/dJMcagUdZT6/gTvHuXukkLNtAZssO5fm81/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbfBoXn%2FdJMcagUdZT6%2FgTvHuXukkLNtAZssO5fm81%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;2014&quot; height=&quot;1140&quot; data-filename=&quot;Screenshot 2026-08-22 at 12.43.30 PM.png&quot; data-origin-width=&quot;2014&quot; data-origin-height=&quot;1140&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-filename=&quot;Screenshot 2026-08-22 at 11.50.01 AM.png&quot; data-origin-width=&quot;858&quot; data-origin-height=&quot;514&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dUpm8K/dJMcahMi9hY/jYq7xA3LkuwkqcMTAuvDb1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dUpm8K/dJMcahMi9hY/jYq7xA3LkuwkqcMTAuvDb1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dUpm8K/dJMcahMi9hY/jYq7xA3LkuwkqcMTAuvDb1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdUpm8K%2FdJMcahMi9hY%2FjYq7xA3LkuwkqcMTAuvDb1%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;858&quot; height=&quot;514&quot; data-filename=&quot;Screenshot 2026-08-22 at 11.50.01 AM.png&quot; data-origin-width=&quot;858&quot; data-origin-height=&quot;514&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;4-1. adaptive normalization (adaLN)&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Screenshot 2026-08-22 at 11.21.00 AM.png&quot; data-origin-width=&quot;478&quot; data-origin-height=&quot;188&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uor3f/dJMcajcfCr3/sQIZoMkKKjlNDVjho1fjTk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uor3f/dJMcajcfCr3/sQIZoMkKKjlNDVjho1fjTk/img.png&quot; data-alt=&quot;gamma=scale, beta=shift&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uor3f/dJMcajcfCr3/sQIZoMkKKjlNDVjho1fjTk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fuor3f%2FdJMcajcfCr3%2FsQIZoMkKKjlNDVjho1fjTk%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;478&quot; height=&quot;188&quot; data-filename=&quot;Screenshot 2026-08-22 at 11.21.00 AM.png&quot; data-origin-width=&quot;478&quot; data-origin-height=&quot;188&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;gamma=scale, beta=shift&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;일반 LayerNorm으로 정규화 한 뒤, scale과 shift를 고정값으로 학습하지 않고 조건 정보로부터 매번 Regress하여 갱신 계산하는 방식.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; 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-filename=&quot;Screenshot 2026-08-22 at 11.22.22 AM.png&quot; data-origin-width=&quot;608&quot; data-origin-height=&quot;168&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dfSrQh/dJMcacRIBjT/XNDotjgNR5TS3eJKNfvio0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dfSrQh/dJMcacRIBjT/XNDotjgNR5TS3eJKNfvio0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dfSrQh/dJMcacRIBjT/XNDotjgNR5TS3eJKNfvio0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdfSrQh%2FdJMcacRIBjT%2FXNDotjgNR5TS3eJKNfvio0%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;608&quot; height=&quot;168&quot; data-filename=&quot;Screenshot 2026-08-22 at 11.22.22 AM.png&quot; data-origin-width=&quot;608&quot; data-origin-height=&quot;168&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;modulation: 조건에 따라 정규화 통계를 바꿔치기 한다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-token-index=&quot;1&quot;&gt;조건 정보로 feature를 변조하는 방식임.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4-2. adaLN-Zero&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;adaLN에 추가로&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;residual 직전의 게이트 alpha&lt;/b&gt;도 regress하고,&lt;br /&gt;그 alpha 를 출력하는 MLP를&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;0으로 초기화&lt;/b&gt;한다.&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;rarr; 학습 시작 시점에 alpha = 0 &amp;rarr; 블록 출력이 0 &amp;rarr;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;블록 전체가 identity function&lt;/b&gt;&lt;br /&gt;&amp;rarr; 처음엔 아무것도 안 하는 상태에서 출발함으로써 &amp;nbsp;대규모 학습이 안정적이고 빠르게 수렴한다.&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;근거가 된 선행 연구:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Goyal et al. 2017: residual block의 마지막 BN scale gamma 를 0으로 초기화하면 대규모 학습 가속&lt;/li&gt;
&lt;li&gt;Diffusion U-Net도 각 블록 마지막 conv를 0으로 초기화하고 있었음&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;구현 디테일 (from Appendix A)&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;timestep은 256차원 frequency embedding &amp;rarr; 2-layer MLP(SiLU).&lt;br /&gt;adaLN은 hidden size의&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;4배&lt;/b&gt;, adaLN-Zero는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;6배&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;출력 (&amp;gamma;,&amp;beta;,&amp;alpha; &amp;times; 2세트).&lt;br /&gt;core transformer는 GELU(tanh 근사).&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4-3. 추가 방식&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;In-context conditioning&lt;/b&gt;: t, y 임베딩을 그냥&lt;span&gt;&amp;nbsp;&lt;/span&gt;토큰 2개 추가. ViT의 cls token처럼 사용됨. 표준 ViT 블록 그대로 사용 가능, Gflops 증가 거의 없음&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Cross-attention&lt;/b&gt;: self-attention 뒤에 cross-attention 층 추가, 조건을 K/V로. LDM이 텍스트 조건에 쓰는 방식.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Gflops 약 15% 증가&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(가장 효과가 컸음)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;adaLN&lt;/b&gt;: Gflops 증가 가장 적음.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;단점은 모든 토큰에 같은 함수를 적용해야함&lt;/b&gt;(토큰별 차별화 불가)&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;5. 실험 1 - 어떤 조건 주입이 제일 좋은가&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;- 400K step FID: in-context 35.24 / cross-attn 26.14 / adaLN 25.21 /&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-token-index=&quot;1&quot;&gt;adaLN-Zero 19.47&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;figure5.png&quot; data-origin-width=&quot;890&quot; data-origin-height=&quot;679&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/L13Uw/dJMcabrPgPe/bHBeIwDu9kSf4317uDMykk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/L13Uw/dJMcabrPgPe/bHBeIwDu9kSf4317uDMykk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/L13Uw/dJMcabrPgPe/bHBeIwDu9kSf4317uDMykk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FL13Uw%2FdJMcabrPgPe%2FbHBeIwDu9kSf4317uDMykk%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;890&quot; height=&quot;679&quot; data-filename=&quot;figure5.png&quot; data-origin-width=&quot;890&quot; data-origin-height=&quot;679&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 style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;6. 실험 2- 스케일링&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;1행: 패치 고정하고 모델 키우기 &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;2행: 모델 고정하고 패치 줄이기) &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;12개 모델 = 4 크기 &amp;times; 3 패치&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;figure6.png&quot; data-origin-width=&quot;1849&quot; data-origin-height=&quot;770&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VdCDZ/dJMcaiR3dYy/1E2kBaMKstAgp9kINok8l1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VdCDZ/dJMcaiR3dYy/1E2kBaMKstAgp9kINok8l1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VdCDZ/dJMcaiR3dYy/1E2kBaMKstAgp9kINok8l1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVdCDZ%2FdJMcaiR3dYy%2F1E2kBaMKstAgp9kINok8l1%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;1849&quot; height=&quot;770&quot; data-filename=&quot;figure6.png&quot; data-origin-width=&quot;1849&quot; data-origin-height=&quot;770&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;7. 핵심 발견 - GFlops와 FID의 상관관계&lt;/h3&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-token-index=&quot;0&quot;&gt;Correlation: -0.93&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;figure8.png&quot; data-origin-width=&quot;890&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgOH1O/dJMcadC1mLH/YXl4FUK51fyCx8G3G2Qx2K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgOH1O/dJMcadC1mLH/YXl4FUK51fyCx8G3G2Qx2K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgOH1O/dJMcadC1mLH/YXl4FUK51fyCx8G3G2Qx2K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgOH1O%2FdJMcadC1mLH%2FYXl4FUK51fyCx8G3G2Qx2K%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;890&quot; height=&quot;720&quot; data-filename=&quot;figure8.png&quot; data-origin-width=&quot;890&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;학습 연산량 관점 &lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;training compute 대비 FID&lt;/span&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-filename=&quot;figure9.png&quot; data-origin-width=&quot;925&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/q2g1i/dJMcadiWMaI/y9QBN3KFksUfslSHlINb21/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/q2g1i/dJMcadiWMaI/y9QBN3KFksUfslSHlINb21/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/q2g1i/dJMcadiWMaI/y9QBN3KFksUfslSHlINb21/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fq2g1i%2FdJMcadiWMaI%2Fy9QBN3KFksUfslSHlINb21%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;925&quot; height=&quot;720&quot; data-filename=&quot;figure9.png&quot; data-origin-width=&quot;925&quot; data-origin-height=&quot;720&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;8. 실험 3 - 샘플링 늘려보기&lt;/h3&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;span style=&quot;color: #000000; text-align: start;&quot;&gt;DiT-L/2 (1000 steps, 80.7 Tflops, FID 25.9) vs&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-token-index=&quot;1&quot;&gt;DiT-XL/2 (128 steps, 15.2 Tflops, FID 23.7)&lt;/span&gt;&lt;/b&gt;&lt;/h4&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-filename=&quot;figure10.png&quot; data-origin-width=&quot;925&quot; data-origin-height=&quot;674&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ciSwiP/dJMcag7GI33/x2xpZm6xPexAzny0KBEbLk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ciSwiP/dJMcag7GI33/x2xpZm6xPexAzny0KBEbLk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ciSwiP/dJMcag7GI33/x2xpZm6xPexAzny0KBEbLk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FciSwiP%2FdJMcag7GI33%2Fx2xpZm6xPexAzny0KBEbLk%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;925&quot; height=&quot;674&quot; data-filename=&quot;figure10.png&quot; data-origin-width=&quot;925&quot; data-origin-height=&quot;674&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;9. &lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;SOTA 결과&lt;/span&gt;&lt;/h3&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;span style=&quot;color: #000000; text-align: start;&quot;&gt;(256&amp;times;256) &amp;mdash; DiT-XL/2-G&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-token-index=&quot;1&quot;&gt;FID 2.27&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;table2.png&quot; data-origin-width=&quot;910&quot; data-origin-height=&quot;743&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VFO3n/dJMcadiWKvt/A21OWcHOFPyGCYGhRXOkZ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VFO3n/dJMcadiWKvt/A21OWcHOFPyGCYGhRXOkZ1/img.png&quot; data-alt=&quot;Table 2&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VFO3n/dJMcadiWKvt/A21OWcHOFPyGCYGhRXOkZ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVFO3n%2FdJMcadiWKvt%2FA21OWcHOFPyGCYGhRXOkZ1%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;910&quot; height=&quot;743&quot; data-filename=&quot;table2.png&quot; data-origin-width=&quot;910&quot; data-origin-height=&quot;743&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Table 2&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;(512&amp;times;512) &amp;mdash;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-token-index=&quot;1&quot;&gt;FID 3.04&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;table3.png&quot; data-origin-width=&quot;1092&quot; data-origin-height=&quot;531&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ynj1a/dJMcacqOhLN/yh2j6FksHkEt6yHzp7oXo1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ynj1a/dJMcacqOhLN/yh2j6FksHkEt6yHzp7oXo1/img.png&quot; data-alt=&quot;Table 3&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ynj1a/dJMcacqOhLN/yh2j6FksHkEt6yHzp7oXo1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYnj1a%2FdJMcacqOhLN%2Fyh2j6FksHkEt6yHzp7oXo1%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;1092&quot; height=&quot;531&quot; data-filename=&quot;table3.png&quot; data-origin-width=&quot;1092&quot; data-origin-height=&quot;531&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Table 3&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;버블 차트에서 DiT-XL/2-G가 가장 작고 가장 낮음&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;figure2.png&quot; data-origin-width=&quot;1849&quot; data-origin-height=&quot;800&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sywr3/dJMcadiWKtI/MA5CRU3muzbRkSE9bnj2ck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sywr3/dJMcadiWKtI/MA5CRU3muzbRkSE9bnj2ck/img.png&quot; data-alt=&quot;Fig 2&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sywr3/dJMcadiWKtI/MA5CRU3muzbRkSE9bnj2ck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fsywr3%2FdJMcadiWKtI%2FMA5CRU3muzbRkSE9bnj2ck%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;1849&quot; height=&quot;800&quot; data-filename=&quot;figure2.png&quot; data-origin-width=&quot;1849&quot; data-origin-height=&quot;800&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Fig 2&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;10. 정성적 결과&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;12개 모델 동일 노이즈 샘플 &amp;mdash; 대각선으로 좋아짐&lt;/span&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-filename=&quot;figure7.png&quot; data-origin-width=&quot;2128&quot; data-origin-height=&quot;2596&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7NgpC/dJMcahS02qY/I9NSV6cHKFgFsjPR6QSur0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7NgpC/dJMcahS02qY/I9NSV6cHKFgFsjPR6QSur0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7NgpC/dJMcahS02qY/I9NSV6cHKFgFsjPR6QSur0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7NgpC%2FdJMcahS02qY%2FI9NSV6cHKFgFsjPR6QSur0%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;2128&quot; height=&quot;2596&quot; data-filename=&quot;figure7.png&quot; data-origin-width=&quot;2128&quot; data-origin-height=&quot;2596&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;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;11. 별첨&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;table1.png&quot; data-origin-width=&quot;1219&quot; data-origin-height=&quot;303&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bE2zsQ/dJMcaidvLaM/G80MnNJRhWUICamSWbUhu0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bE2zsQ/dJMcaidvLaM/G80MnNJRhWUICamSWbUhu0/img.png&quot; data-alt=&quot;Table 1&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bE2zsQ/dJMcaidvLaM/G80MnNJRhWUICamSWbUhu0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbE2zsQ%2FdJMcaidvLaM%2FG80MnNJRhWUICamSWbUhu0%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;303&quot; data-filename=&quot;table1.png&quot; data-origin-width=&quot;1219&quot; data-origin-height=&quot;303&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Table 1&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;table4.png&quot; data-origin-width=&quot;1725&quot; data-origin-height=&quot;758&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wQdYe/dJMcaiqULJ6/e0guVJKogTlle93znPq1EK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wQdYe/dJMcaiqULJ6/e0guVJKogTlle93znPq1EK/img.png&quot; data-alt=&quot;Table 4&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wQdYe/dJMcaiqULJ6/e0guVJKogTlle93znPq1EK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwQdYe%2FdJMcaiqULJ6%2Fe0guVJKogTlle93znPq1EK%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;1725&quot; height=&quot;758&quot; data-filename=&quot;table4.png&quot; data-origin-width=&quot;1725&quot; data-origin-height=&quot;758&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Table 4&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;12. Review&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&amp;nbsp;=&amp;nbsp;노이즈&amp;nbsp;예측&amp;nbsp;신경망&amp;nbsp;1개&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;darr;&amp;nbsp;그&amp;nbsp;신경망이&amp;nbsp;지금까지&amp;nbsp;무조건&amp;nbsp;U-Net(CNN)이었다&lt;br /&gt;꼭 CNN이어야 하나? &amp;rarr; Transformer로 교체 (ViT처럼 패치를 토큰으로)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;darr; 타임스텝/라벨을 어떻게 넣지?&lt;br /&gt;4가지 비교 &amp;rarr; adaLN-Zero가 제일 싸고 제일 성능도 좋음&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;darr; 그리고 12개 모델 스케일링&amp;nbsp;실험&lt;br /&gt;파라미터 그대로인데 패치만 줄여도 FID 매우 개선됨...&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;rarr;&amp;nbsp;결론:&amp;nbsp;Gflops가&amp;nbsp;성능을&amp;nbsp;결정한다&amp;nbsp;(r&amp;nbsp;=&amp;nbsp;&amp;minus;0.93)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;darr;&lt;br /&gt;FID&amp;nbsp;2.27&amp;nbsp;SOTA,&amp;nbsp;ADM의&amp;nbsp;1/10&amp;nbsp;연산&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;darr;&lt;br /&gt;그래서&amp;nbsp;Sora&amp;nbsp;/&amp;nbsp;SD3의&amp;nbsp;백본이&amp;nbsp;됨&lt;/p&gt;</description>
      <author>lucia-m-kim</author>
      <guid isPermaLink="true">https://lambdacourse.tistory.com/83</guid>
      <comments>https://lambdacourse.tistory.com/83#entry83comment</comments>
      <pubDate>Sat, 22 Aug 2026 11:34:41 +0900</pubDate>
    </item>
    <item>
      <title>[서윤진] High-Resolution Image Synthesis with Latent Diffusion Models</title>
      <link>https://lambdacourse.tistory.com/82</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;제목:&lt;/b&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;High-Resolution Image Synthesis with Latent Diffusion Models&lt;br /&gt;&lt;b&gt;저자:&lt;/b&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Robin Rombach, Andreas Blattmann, Dominik Lorenz, Patrick Esser, Bj&amp;ouml;rn Ommer&lt;/span&gt;&lt;br /&gt;&lt;b&gt;학회:&lt;/b&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;CVPR 2022 &amp;mdash;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;IEEE/CVF Conference on Computer Vision and Pattern Recognition&lt;br /&gt;&lt;b&gt;발표 연도:&lt;/b&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;2022년&lt;/b&gt;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;CVPR 2021의&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;Taming Transformers for High-Resolution Image Synthesis&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;에서 VQGAN을 이용해 이미지를 latent space로 압축하고 Transformer로 생성하는 방법을 연구했다. LDM은 이러한 latent-space image generation 아이디어를 발전시켜, autoregressive Transformer 대신 diffusion model을 latent space에서 수행함으로써 생성 품질을 유지하면서 계산 효율을 크게 개선한 연구이다.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;In&lt;/span&gt;&lt;b&gt;troduction &amp;amp; &lt;span style=&quot;letter-spacing: 0px;&quot;&gt;Related Work&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;GAN은 이미지 품질과 sampling 속도는 좋지만 학습이 불안정하고 데이터 분포 전체를 잘 포착하지 못할 수 있으며, VAE나 flow-based model은 학습은 안정적이지만 생성 품질이 상대적으로 낮다. Autoregressive model은 density estimation 성능은 뛰어나지만 순차적으로 이미지를 생성해야 하기 때문에 계산량이 크고 고해상도 이미지에 적용하기 어렵다. Diffusion Model은 높은 생성 품질과 안정적인 학습이라는 장점을 가지지만, pixel space에서 반복적으로 denoising을 수행하기 때문에 학습과 inference 비용이 매우 크다.&lt;/span&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;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;기존 diffusion model은 고차원의 pixel space에서 직접 반복적으로 denoising을 수행하기 때문에 학습과 추론에 매우 많은 계산량과 시간이 필요하다.&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #000000; caret-color: #000000; letter-spacing: 0px;&quot;&gt;diffusion model이 보통&lt;/span&gt;&lt;span style=&quot;color: #000000; caret-color: #000000; letter-spacing: 0px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000; caret-color: #000000; letter-spacing: 0px;&quot;&gt;pixel space에서 직접 작동한다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;933&quot; data-start=&quot;852&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;이미지 하나가&amp;nbsp;&lt;span aria-hidden=&quot;true&quot;&gt;H&amp;times;W&amp;times;3&lt;/span&gt;개의 값으로 이루어져 있기 때문에 고해상도 이미지에서는 매우 높은 차원의 공간을 처리해야한다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;986&quot; data-start=&quot;935&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;그리고 diffusion은 한 번의 forward pass로 이미지를 생성하는 것이 아니라,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-client-katex-layout=&quot;&quot; data-math-source=&quot;x_T \rightarrow x_{T-1} \rightarrow \cdots \rightarrow x_1 \rightarrow x_0&quot; data-end=&quot;1068&quot; data-start=&quot;988&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;xT​&amp;rarr;xT&amp;minus;1​&amp;rarr;⋯&amp;rarr;x1​&amp;rarr;x0​ &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;처럼&amp;nbsp;여러 번 반복해서 denoising&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;1131&quot; data-start=&quot;1104&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;따라서 학습뿐 아니라 inference도 비싸다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;1303&quot; data-start=&quot;1133&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;논문에서는 당시 강력한 diffusion model을 학습하는 데&amp;nbsp;150~1000 V100 GPU-days가 들기도 했고, A100 GPU 한 장으로 50,000장의 샘플을 생성하는 데 약&amp;nbsp;5일이 걸릴 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;이에 저자들은 이미지의 모든 픽셀 정보가 생성에 똑같이 중요하지 않으며, &lt;b&gt;사람이 거의 인식하지 못하는 세부 정보까지 모두 pixel space에서 처리하는 것은 비효율적&lt;/b&gt;이라고 보았다. 이를 해결하기 위해 먼저 autoencoder를 사용해 이미지를 저차원의 latent representation으로 압축한 뒤, 이 latent space에서 diffusion 과정을 수행하는 Latent Diffusion Model을 제안했다. 이를 통해 이미지의 중요한 의미적 정보는 유지하면서도 diffusion이 처리해야 할 데이터의 차원을 줄여, 기존 diffusion model의 생성 성능을 유지하면서 학습과 추론 비용을 크게 줄이는 것을 목표로 한다.&lt;/span&gt;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;기존에도 이미지 생성 모델의 단점을 보완하기 위해 이미지를 먼저 압축한 뒤, 압축된 latent representation을 생성모델이 학습하는&amp;nbsp;&lt;/span&gt;&lt;b&gt;two-stage approach&lt;/b&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;가 사용되어 왔다. &lt;/span&gt;&lt;/span&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;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;대표적으로 VQ-VAE는 이미지를 discrete latent space로 변환한 후 autoregressive model을 이용해 latent representation의 분포를 학습하며, 이러한 방식은 이후 이미지와 텍스트의 discrete representation을 함께 학습하는 text-to-image 생성으로도 확장되었다. VQGAN 역시 비슷한 two-stage 구조를 사용하지만, 첫 단계에서 adversarial objective와 perceptual objective를 활용해 더 큰 이미지에 autoregressive transformer를 적용할 수 있도록 했다. 그러나 기존 autoregressive 기반 latent model은 계산량을 감당하기 위해&lt;b&gt; latent space를 매우 강하게 압축&lt;/b&gt;해야 한다는 문제가 있었다. 압축을 강하게 하면 계산 효율은 높아지지만 중요한 이미지 정보가 손실되어 생성 품질이 떨어질 수 있고, 반대로 압축을 약하게 하면 이미지 품질은 잘 보존되지만 latent representation의 크기가 커져 계산 비용이 증가한다. 즉, 기존 two-stage 방법에는&amp;nbsp;&lt;/span&gt;&lt;b&gt;압축률과 생성 품질&amp;middot;계산 효율 사이의 trade-off&lt;/b&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;가 존재했다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-22 오전 3.19.24.png&quot; data-origin-width=&quot;754&quot; data-origin-height=&quot;590&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OPXk4/dJMcaasXWyQ/WdiJPXm4htIHOa5FKVIZ0k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OPXk4/dJMcaasXWyQ/WdiJPXm4htIHOa5FKVIZ0k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OPXk4/dJMcaasXWyQ/WdiJPXm4htIHOa5FKVIZ0k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOPXk4%2FdJMcaasXWyQ%2FWdiJPXm4htIHOa5FKVIZ0k%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;754&quot; height=&quot;590&quot; data-filename=&quot;스크린샷 2026-08-22 오전 3.19.24.png&quot; data-origin-width=&quot;754&quot; data-origin-height=&quot;590&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;이 그림은 LDM의 학습 과정을 perceptual compression과 semantic compression으로 구분해 보여준다. 먼저 autoencoder가 사람이 거의 인식하지 못하는 high-frequency detail을 제거하면서 시각적으로 중요한 정보는 유지하는 perceptual compression을 수행한다. 이후 LDM은 압축된 latent space에서 이미지의&lt;b&gt; 의미적&amp;middot;개념적 구조를 학습하는 semantic compression&lt;/b&gt;을 수행한다. 즉, 불필요한 픽셀 수준의 정보를 autoencoder가 먼저 제거하고, diffusion model은 더 작은 latent space에서 중요한 의미와 구조에 집중하도록 하여 계산 효율을 높이는 것이 핵심이다.&amp;nbsp;&lt;/span&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;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;caret-color: #000000;&quot;&gt;Method&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Method는 먼저 autoencoder로 이미지를 latent space에 압축하고, &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;그 latent space에서 diffusion을 수행한 뒤, &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;cross-attention을 이용해 text 등 다양한 조건을 생성 과정에 반영하는 세 단계로 구성&lt;/span&gt;&lt;/b&gt;&lt;/span&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;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;1. Perceptual Image Compression&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Autoencoder로 이미지를 저차원 latent space로 압축하는 단계. 사람이 거의 인식하지 못하는 세부정보는 줄이고, 중요한 시각적 정보는 보존한다.&lt;/span&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;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;저자들은 encoder와 decoder로 이루어진 autoencoder를 사용한다. 원본 이미지&amp;nbsp;&lt;span aria-hidden=&quot;true&quot;&gt;x&lt;/span&gt;는 encoder&amp;nbsp;&lt;span aria-hidden=&quot;true&quot;&gt;E&lt;/span&gt;를 통해 latent representation&amp;nbsp;&lt;span aria-hidden=&quot;true&quot;&gt;z=E(x)&lt;/span&gt;로 변환되고, decoder&amp;nbsp;&lt;span aria-hidden=&quot;true&quot;&gt;D&lt;/span&gt;는 이를 다시&amp;nbsp;&lt;span aria-hidden=&quot;true&quot;&gt;x~=D(z)&lt;/span&gt;로 복원한다. &amp;nbsp;이때 encoder는 이미지의 공간 크기를 downsampling factor&amp;nbsp;&lt;span aria-hidden=&quot;true&quot;&gt;f&lt;/span&gt;만큼 줄인다. 중요한 점은 기존 autoregressive 기반 latent 모델처럼 이미지를 지나치게 강하게 압축하지 않는다는 것이다. LDM은 latent의&amp;nbsp;2차원 공간 구조를 그대로 활용해 diffusion을 수행하기 때문에 비교적 약한 압축만으로도 효율적으로 학습할 수 있으며, 그 결과 원본 이미지의 세부 정보를 더 잘 보존할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;416&quot; data-start=&quot;394&quot; data-section-id=&quot;ed7nfr&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;Perceptual Loss&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;808&quot; data-start=&quot;418&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;먼저&amp;nbsp;&lt;b&gt;perceptual loss&lt;/b&gt;를 사용한다. 단순한 pixel-wise L1/L2 loss는 원본과 복원 이미지의 각 픽셀 값을 직접 비교하기 때문에, 여러 가능한 세부 표현을 평균적으로 맞추는 방향으로 학습되면서 이미지가 흐릿해질 수 있다. Perceptual loss는 픽셀 자체가 아니라 pretrained network가 추출한 feature를 기준으로 원본 이미지와 복원 이미지의 차이를 비교한다. 따라서 픽셀 값이 정확히 같지 않더라도, 사람의 눈에 비슷한 구조와 형태를 가진 이미지를 복원하도록 학습할 수 있다. 논문은 이를 통해 단순 L1/L2 loss에서 발생하는 blurriness를 줄인다고 설명한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;808&quot; data-start=&quot;418&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;808&quot; data-start=&quot;418&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;Patch-based Adversarial Loss&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;1407&quot; data-start=&quot;847&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;다음으로&amp;nbsp;&lt;b&gt;patch-based adversarial loss&lt;/b&gt;를 함께 사용한다. 여기서는 discriminator가 복원 이미지가 실제 이미지처럼 자연스러운지를 판별한다. 일반적인 discriminator가 이미지 전체에 대해 하나의 진짜/가짜 점수를 내는 것과 달리, patch-based discriminator는 이미지의 여러 작은 영역을 각각 평가한다. 따라서 머리카락, 피부, 벽, 천과 같은 local texture나 세부 구조가 실제 이미지처럼 자연스러운지를 더 직접적으로 검사할 수 있다. Decoder는 discriminator를 속일 수 있을 만큼 자연스러운 복원 이미지를 만들도록 학습되고, discriminator는 실제 이미지와 복원 이미지를 구분하도록 학습되면서 adversarial training이 이루어진다. 즉, perceptual loss가&amp;nbsp;&lt;b&gt;원본과 비슷하게 만들라&lt;/b&gt;는 역할이라면, adversarial loss는&amp;nbsp;&lt;b&gt;복원 결과가 실제 이미지처럼 자연스럽고 선명해야 한다&lt;/b&gt;는 역할을 한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;1433&quot; data-start=&quot;1409&quot; data-section-id=&quot;1ivr7pk&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1433&quot; data-start=&quot;1409&quot; data-section-id=&quot;1ivr7pk&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;KL Regularization&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;1707&quot; data-start=&quot;1435&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;또한 latent space가 지나치게 불규칙해지는 것을 막기 위해&amp;nbsp;&lt;b&gt;KL regularization&lt;/b&gt;을 사용할 수 있다. Autoencoder 자체만 본다면 latent가 어떤 형태이든 decoder가 잘 복원하기만 하면 되지만, LDM에서는 이후 diffusion model이 latent distribution&amp;nbsp;&lt;span aria-hidden=&quot;true&quot;&gt;p(z)&lt;/span&gt;&amp;nbsp;자체를 학습해야 한다. 따라서 latent 값이 지나치게 크게 퍼지거나 불규칙하면 diffusion model이 그 분포를 학습하기 어려워질 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;1986&quot; data-start=&quot;1709&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;KL regularization은 latent distribution이 표준 정규분포&amp;nbsp;&lt;span aria-hidden=&quot;true&quot;&gt;N(0,I)&lt;/span&gt;에서 너무 멀어지지 않도록 약한 KL penalty를 주는 방식이다. 이 경우 latent는 연속값을 유지하며, 논문에서는 reconstruction 성능을 해치지 않기 위해 KL 항의 가중치를 매우 작게 사용한다. Appendix에서는 약&amp;nbsp;&lt;span aria-hidden=&quot;true&quot;&gt;10&amp;minus;6&lt;/span&gt;&amp;nbsp;수준의 작은 regularization을 사용한다고 설명한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;2012&quot; data-start=&quot;1988&quot; data-section-id=&quot;124lt1r&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2012&quot; data-start=&quot;1988&quot; data-section-id=&quot;124lt1r&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;VQ Regularization&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;2337&quot; data-start=&quot;2014&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;KL regularization 대신&amp;nbsp;&lt;b&gt;VQ regularization&lt;/b&gt;을 사용할 수도 있다. VQ 방식에서는 여러 개의 대표 벡터로 이루어진 codebook을 두고, encoder가 만든 각 위치의 latent vector를 가장 가까운 codebook vector와 대응시킨다. 이 codebook은 처음부터 의미가 정해져 있는 것이 아니라 encoder와 decoder와 함께 학습되며, 학습이 진행되면서 비슷한 visual feature들이 비슷한 codebook vector에 대응하도록 정리된다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;2633&quot; data-start=&quot;2339&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;여기서 하나의 이미지가 codebook vector 하나로 표현되는 것은 아니다. 예를 들어 latent가&amp;nbsp;&lt;span aria-hidden=&quot;true&quot;&gt;64&amp;times;64&lt;/span&gt;라면 각 공간 위치마다 latent vector가 하나씩 존재하고, 각각이 codebook의 vector를 선택한다. 따라서 전체 이미지는&amp;nbsp;&lt;b&gt;codebook vector들의 2차원 배열&lt;/b&gt;로 표현된다. 논문에서는 VQ 방식의 quantization layer를 decoder 내부에 포함된 것으로 해석할 수 있다고 설명한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;2633&quot; data-start=&quot;2339&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;2633&quot; data-start=&quot;2339&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;&amp;nbsp;왜 이런 loss와 regularization을 함께 쓰는가&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;2692&quot; data-start=&quot;2677&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;결국 각각의 역할이 다르다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000; text-align: start;&quot; data-end=&quot;2864&quot; data-start=&quot;2694&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2734&quot; data-start=&quot;2694&quot; data-section-id=&quot;1f9ma9y&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;Perceptual loss&lt;/b&gt;: 원본과 시각적으로 비슷하게 복원&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;2780&quot; data-start=&quot;2735&quot; data-section-id=&quot;1lbjnfq&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;Adversarial loss&lt;/b&gt;: 복원 이미지를 자연스럽고 선명하게 만듦&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;2864&quot; data-start=&quot;2781&quot; data-section-id=&quot;nl59ub&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;KL / VQ regularization&lt;/b&gt;: 이후 diffusion model이 학습하기 적합하도록 latent space를 안정적으로 구성&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;3118&quot; data-start=&quot;2866&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;즉, 앞의 두 loss는&amp;nbsp;reconstruction quality를 위한 것이고, KL 또는 VQ regularization은&amp;nbsp;latent space의 구조를 정리하기 위한 것이라고 보면 된다. 논문의 전체 autoencoder objective도 reconstruction/adversarial 항과 latent regularization 항을 함께 포함하는 형태다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-22 오전 3.56.17.png&quot; data-origin-width=&quot;1478&quot; data-origin-height=&quot;132&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zkqfh/dJMcacqN9rv/FNUr8gpNuv2AHrUVThc5Tk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zkqfh/dJMcacqN9rv/FNUr8gpNuv2AHrUVThc5Tk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zkqfh/dJMcacqN9rv/FNUr8gpNuv2AHrUVThc5Tk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fzkqfh%2FdJMcacqN9rv%2FFNUr8gpNuv2AHrUVThc5Tk%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;1478&quot; height=&quot;132&quot; data-filename=&quot;스크린샷 2026-08-22 오전 3.56.17.png&quot; data-origin-width=&quot;1478&quot; data-origin-height=&quot;132&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&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;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;2. Latent Diffusion Models&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;기존처럼 pixel space에서 diffusion을 하지 않고, 앞에서 만든 latent space에서 diffusion을 수행한다. 그래서 계산량을 줄이면서도 생성 품질을 유지하려고 한다.&lt;/span&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;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;Latent Diffusion Model(LDM)은 기존 diffusion model의 denoising 원리는 그대로 사용하되,&amp;nbsp;&lt;/span&gt;원본 pixel space가 아니라 autoencoder로 압축한 latent space에서 diffusion을 수행하는 모델&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;이다. 먼저 학습된 encoder&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-client-katex-layout=&quot;&quot; data-math-source=&quot;E&quot; data-end=&quot;349&quot; data-start=&quot;344&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;E&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;를 이용해 이미지&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-client-katex-layout=&quot;&quot; data-math-source=&quot;x&quot; data-end=&quot;364&quot; data-start=&quot;359&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;x&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;를 latent representation&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-client-katex-layout=&quot;&quot; data-math-source=&quot;z=E(x)&quot; data-end=&quot;398&quot; data-start=&quot;388&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;z=E(x)&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;로 변환하고, 이 latent에 noise를 추가한 뒤 U-Net이 noise를 예측하도록 학습한다. 이렇게 하면 고차원의 픽셀 전체가 아니라 더 작은 latent에서 연산하므로 학습과 sampling의 계산량을 줄일 수 있다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;593&quot; data-start=&quot;565&quot; data-section-id=&quot;a9q20e&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;기존 Diffusion Model의 목적함수&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;643&quot; data-start=&quot;595&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;일반적인 diffusion model의 학습 목적함수는 다음과 같다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-22 오전 3.51.06.png&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;96&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bnN7im/dJMcabMeS58/BQQAYp3gZZ03L8ZUakgxek/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bnN7im/dJMcabMeS58/BQQAYp3gZZ03L8ZUakgxek/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bnN7im/dJMcabMeS58/BQQAYp3gZZ03L8ZUakgxek/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbnN7im%2FdJMcabMeS58%2FBQQAYp3gZZ03L8ZUakgxek%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;640&quot; height=&quot;96&quot; data-filename=&quot;스크린샷 2026-08-22 오전 3.51.06.png&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;96&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;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;여기서&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-client-katex-layout=&quot;&quot; data-math-source=&quot;x&quot; data-end=&quot;771&quot; data-start=&quot;766&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;x&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;는 원본 이미지,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-client-katex-layout=&quot;&quot; data-math-source=&quot;\epsilon&quot; data-end=&quot;793&quot; data-start=&quot;781&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;ϵ&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;은 실제로 추가한 Gaussian noise,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-client-katex-layout=&quot;&quot; data-math-source=&quot;x_t&quot; data-end=&quot;826&quot; data-start=&quot;819&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;xt​&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;는 timestep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-client-katex-layout=&quot;&quot; data-math-source=&quot;t&quot; data-end=&quot;842&quot; data-start=&quot;837&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;t&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;만큼 noise가 추가된 이미지,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-client-katex-layout=&quot;&quot; data-math-source=&quot;\epsilon_\theta(x_t,t)&quot; data-end=&quot;887&quot; data-start=&quot;861&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;ϵ&amp;theta;​(xt​,t)&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;는 U-Net이 예측한 noise이다. 즉,&amp;nbsp;&lt;/span&gt;실제로 추가한 noise&amp;nbsp;&lt;span aria-hidden=&quot;true&quot;&gt;ϵ&lt;/span&gt;과 모델이 예측한 noise 사이의 L2 오차를 최소화&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;하도록 학습한다. 이를 반복하면 모델이 다양한 noise level에서 데이터를 어떻게 denoising해야 하는지를 배우게 된다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;1751&quot; data-start=&quot;1738&quot; data-section-id=&quot;10anrnn&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;LDM의 목적함수&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;1814&quot; data-start=&quot;1753&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;LDM에서는 동일한 diffusion objective를&amp;nbsp;latent&amp;nbsp;&lt;span aria-hidden=&quot;true&quot;&gt;z=E(x)&lt;/span&gt;에 적용한다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-22 오전 3.52.47.png&quot; data-origin-width=&quot;712&quot; data-origin-height=&quot;92&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/o5RqR/dJMcag0SLX1/RxhXZVTelcIvK7fgu3fLN0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/o5RqR/dJMcag0SLX1/RxhXZVTelcIvK7fgu3fLN0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/o5RqR/dJMcag0SLX1/RxhXZVTelcIvK7fgu3fLN0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fo5RqR%2FdJMcag0SLX1%2FRxhXZVTelcIvK7fgu3fLN0%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;712&quot; height=&quot;92&quot; data-filename=&quot;스크린샷 2026-08-22 오전 3.52.47.png&quot; data-origin-width=&quot;712&quot; data-origin-height=&quot;92&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;여기서&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-client-katex-layout=&quot;&quot; data-math-source=&quot;z_t&quot; data-end=&quot;1948&quot; data-start=&quot;1941&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;zt​&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;는 latent&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-client-katex-layout=&quot;&quot; data-math-source=&quot;z=E(x)&quot; data-end=&quot;1967&quot; data-start=&quot;1957&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;z=E(x)&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;에 timestep&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-client-katex-layout=&quot;&quot; data-math-source=&quot;t&quot; data-end=&quot;1983&quot; data-start=&quot;1978&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;t&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;만큼 noise를 추가한 것이다. U-Net은 noisy latent&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-client-katex-layout=&quot;&quot; data-math-source=&quot;z_t&quot; data-end=&quot;2029&quot; data-start=&quot;2022&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;zt​&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;를 입력받아 추가된 noise&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-client-katex-layout=&quot;&quot; data-math-source=&quot;\epsilon&quot; data-end=&quot;2058&quot; data-start=&quot;2046&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;ϵ&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;을 예측하고, 실제 noise와 예측 noise의 차이를 최소화하도록 학습된다.&lt;/span&gt;&lt;/span&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;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;두 목적함수의&amp;nbsp;&lt;/span&gt;&lt;b&gt;학습 원리는 사실상 동일하다.&lt;/b&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&amp;nbsp;가장 중요한 차이는 diffusion을 수행하는 대상이다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;+&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;LDM의 목적함수를 &lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;학습할 때는 매번 전체 diffusion 과정&lt;/span&gt;을 모두 수행하는 것이 아니라,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;t&amp;isin;{1,&amp;hellip;,T}&lt;/span&gt;&amp;nbsp;중 하나를&amp;nbsp;&lt;b&gt;uniform하게 랜덤 선택&lt;/b&gt;하고 해당 noise level에서만 loss를 계산한다. &lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;논문에서도&amp;nbsp;&lt;span aria-hidden=&quot;true&quot;&gt;t&lt;/span&gt;를 전체 timestep에서 uniformly sampling한다고 명시한다. &amp;nbsp;&lt;/span&gt;이렇게 하는 이유는&amp;nbsp;&lt;b&gt;모든 timestep의 denoising 능력을 학습하면서도 매 학습마다 전체&amp;nbsp;&lt;span aria-hidden=&quot;true&quot;&gt;T&lt;/span&gt;단계를 계산하는 비용을 피하기 위해서&lt;/b&gt;라고 이해하면 된다. 여러 training iteration 동안 서로 다른&amp;nbsp;&lt;span aria-hidden=&quot;true&quot;&gt;t&lt;/span&gt;가 계속 선택되기 때문에 결과적으로 모델은 낮은 noise부터 거의 순수한 noise에 가까운 상태까지 다양한 noise level을 학습하게 된다.&lt;/span&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;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;3. Conditioning Mechanisms&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;text, semantic map 같은 조건을 생성 과정에 넣기 위한 방법이다. 특히 cross-attention을 사용해서 조건 정보를 U-Net에 전달한다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1086&quot; data-origin-height=&quot;574&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bc0lcX/dJMcacda86u/QNpGVC1NL6iEq3lVITBoW1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bc0lcX/dJMcacda86u/QNpGVC1NL6iEq3lVITBoW1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bc0lcX/dJMcacda86u/QNpGVC1NL6iEq3lVITBoW1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbc0lcX%2FdJMcacda86u%2FQNpGVC1NL6iEq3lVITBoW1%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;1086&quot; height=&quot;574&quot; data-origin-width=&quot;1086&quot; data-origin-height=&quot;574&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;LDM은 단순히 무작위 이미지를 생성하는 것뿐 아니라,&amp;nbsp;&lt;b&gt;텍스트&amp;middot;semantic map&amp;middot;layout 같은 조건&amp;nbsp;&lt;span aria-hidden=&quot;true&quot;&gt;y&lt;/span&gt;&lt;/b&gt;&amp;nbsp;를 반영해 이미지를 생성할 수 있도록 설계된다. 즉 모델은 단순한&amp;nbsp;&lt;span aria-hidden=&quot;true&quot;&gt;p(z)&lt;/span&gt;가 아니라&amp;nbsp;&lt;b&gt;조건부 분포&amp;nbsp;&lt;span aria-hidden=&quot;true&quot;&gt;p(z∣y)&lt;/span&gt;&lt;/b&gt;&amp;nbsp;를 학습한다. 예를 들어&amp;nbsp;&lt;span aria-hidden=&quot;true&quot;&gt;y&lt;/span&gt;가 &amp;ldquo;a red car&amp;rdquo;라는 텍스트라면, 생성되는 latent가 그 텍스트 내용에 맞도록 denoising해야 한다. &amp;nbsp;조건&amp;nbsp;&lt;span aria-hidden=&quot;true&quot;&gt;y&lt;/span&gt;를 바로 U-Net에 넣는 것이 아니라, 먼저&amp;nbsp;&lt;b&gt;조건 전용 encoder&amp;nbsp;&lt;span aria-hidden=&quot;true&quot;&gt;&amp;tau;&amp;theta;​&lt;/span&gt;&lt;/b&gt;&amp;nbsp;를 사용해 조건을 intermediate representation으로 변환한다. &quot;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-client-katex-layout=&quot;&quot; data-math-source=&quot;y \rightarrow \tau_\theta(y)&quot; data-end=&quot;454&quot; data-start=&quot;420&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;y&amp;rarr;&amp;tau;&amp;theta;​(y)&quot; &lt;/span&gt;&lt;/span&gt;예를 들어 text-to-image에서는 텍스트를 token으로 나눈 뒤 transformer가 이를 embedding으로 변환한다. Semantic map이나 다른 modality를 사용하는 경우에는 그 입력에 맞는 encoder를 사용할 수 있다. 즉&amp;nbsp;&lt;span aria-hidden=&quot;true&quot;&gt;&amp;tau;&amp;theta;​&lt;/span&gt;는 조건의 종류에 따라 달라질 수 있는&amp;nbsp;&lt;b&gt;domain-specific encoder&lt;/b&gt;다. &amp;nbsp;이렇게 만들어진 condition representation은&amp;nbsp;&lt;b&gt;cross-attention&lt;/b&gt;을 통해 U-Net의 중간 feature에 전달된다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-22 오전 4.05.27.png&quot; data-origin-width=&quot;998&quot; data-origin-height=&quot;226&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZawWy/dJMcafgJmU0/Vw9FAIrKLMkGuzPQeuke01/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZawWy/dJMcafgJmU0/Vw9FAIrKLMkGuzPQeuke01/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZawWy/dJMcafgJmU0/Vw9FAIrKLMkGuzPQeuke01/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZawWy%2FdJMcafgJmU0%2FVw9FAIrKLMkGuzPQeuke01%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;226&quot; data-filename=&quot;스크린샷 2026-08-22 오전 4.05.27.png&quot; data-origin-width=&quot;998&quot; data-origin-height=&quot;226&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #3d4144; text-align: start; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Cross-attention layer는 다음 식과 같이 나타나고, &lt;span style=&quot;background-color: #ffffff; color: #3d4144; text-align: start;&quot;&gt;이미지와 conditioning 쌍을 기반으로 다음 식을 통해 조건부 LDM을 학습시킨다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-22 오전 4.06.54.png&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;156&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKGagd/dJMcadiWDjZ/G3M1BINaGEbRWPkhpFQDp1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKGagd/dJMcadiWDjZ/G3M1BINaGEbRWPkhpFQDp1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKGagd/dJMcadiWDjZ/G3M1BINaGEbRWPkhpFQDp1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKGagd%2FdJMcadiWDjZ%2FG3M1BINaGEbRWPkhpFQDp1%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;850&quot; height=&quot;156&quot; data-filename=&quot;스크린샷 2026-08-22 오전 4.06.54.png&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;156&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;기존 LDM과 마찬가지로 실제로 추가한 noise&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-client-katex-layout=&quot;&quot; data-math-source=&quot;\epsilon&quot; data-end=&quot;1506&quot; data-start=&quot;1494&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;ϵ&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;과 U-Net이 예측한 noise의 차이를 최소화하지만, 이번에는 U-Net이&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-client-katex-layout=&quot;&quot; data-math-source=&quot;z_t&quot; data-end=&quot;1557&quot; data-start=&quot;1550&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;zt​&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;와&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-client-katex-layout=&quot;&quot; data-math-source=&quot;t&quot; data-end=&quot;1564&quot; data-start=&quot;1559&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;t&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;뿐 아니라&amp;nbsp;&lt;/span&gt;&lt;b&gt;condition&amp;nbsp;&lt;span aria-hidden=&quot;true&quot;&gt;&amp;tau;&amp;theta;​(y)&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&amp;nbsp;도 함께 참고한다. 논문에서는 condition encoder&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-client-katex-layout=&quot;&quot; data-math-source=&quot;\tau_\theta&quot; data-end=&quot;1653&quot; data-start=&quot;1638&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&amp;tau;&amp;theta;​&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;와 denoising U-Net&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot; data-client-katex-layout=&quot;&quot; data-math-source=&quot;\epsilon_\theta&quot; data-end=&quot;1690&quot; data-start=&quot;1671&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;ϵ&amp;theta;​&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;를 이 objective를 통해 함께 최적화한다.&amp;nbsp;&lt;/span&gt;&lt;/span&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;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000; letter-spacing: 0px;&quot;&gt;Experiments&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;FID, IS, Precision, Recall 등으로 평가한다. FID는 생성 이미지 전체의 feature 분포가 실제 이미지 분포와 얼마나 가까운지를 측정하므로 낮을수록 좋고, IS는 각 이미지가 명확한 class로 인식되면서 전체적으로 다양한 이미지를 생성하는지를 보기 때문에 높을수록 좋다. Precision은 생성 이미지가 실제 데이터처럼 그럴듯한지를, Recall은 실제 데이터가 가진 다양한 모습을 얼마나 넓게 커버하는지를 나타낸다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #333333; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;color: #000000;&quot; data-section-id=&quot;1mp5b2&quot; data-start=&quot;76&quot; data-end=&quot;120&quot;&gt;&lt;b&gt;FID&lt;/b&gt;: 생성 데이터 전체 분포가 진짜 데이터 분포와 얼마나 비슷한가&lt;/li&gt;
&lt;li style=&quot;color: #000000;&quot; data-section-id=&quot;4pphs0&quot; data-start=&quot;121&quot; data-end=&quot;163&quot;&gt;&lt;b&gt;IS&lt;/b&gt;: 생성 이미지 한 장 한 장이 명확하고, 전체적으로 다양한가&lt;/li&gt;
&lt;li style=&quot;color: #000000;&quot; data-section-id=&quot;1jnngp4&quot; data-start=&quot;164&quot; data-end=&quot;203&quot;&gt;&lt;b&gt;Precision&lt;/b&gt;: 생성한 것들이 얼마나 진짜처럼 그럴듯한가&lt;/li&gt;
&lt;li style=&quot;color: #000000;&quot; data-section-id=&quot;ph8vtx&quot; data-start=&quot;204&quot; data-end=&quot;251&quot;&gt;&lt;b&gt;Recall&lt;/b&gt;: 진짜 데이터의 다양한 종류를 얼마나 빠뜨리지 않고 커버했는가&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000; text-align: left;&quot; data-end=&quot;134&quot; data-start=&quot;95&quot; data-section-id=&quot;xn5zq1&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;1 . Perceptual Compression Trade-off&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;505&quot; data-start=&quot;136&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;먼저 저자들은&amp;nbsp;얼마나 압축하는 것이 가장 좋은가를 확인한다. Downsampling factor&amp;nbsp;&lt;span aria-hidden=&quot;true&quot;&gt;f&lt;/span&gt;를&amp;nbsp;&lt;span aria-hidden=&quot;true&quot;&gt;1,2,4,8,16,32&lt;/span&gt;로 바꿔가며 같은 GPU, 같은 학습 step, 같은 parameter 수로 비교했다.&amp;nbsp;&lt;span aria-hidden=&quot;true&quot;&gt;f&lt;/span&gt;가 너무 작으면 latent가 충분히 줄어들지 않아 diffusion model이 여전히 많은 계산을 해야 하므로 학습이 느리고, 반대로&amp;nbsp;&lt;span aria-hidden=&quot;true&quot;&gt;f&lt;/span&gt;가 너무 크면 autoencoder 단계에서 정보가 지나치게 손실되어 생성 품질의 한계가 낮아진다. 실험 결과&amp;nbsp;LDM-4와 LDM-8이 계산 효율과 이미지 품질 사이에서 가장 좋은 균형을 보였다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-22 오전 4.12.45.png&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;480&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/casuza/dJMcabebnWo/1kymuBGpD96e1ZNEnZaIxK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/casuza/dJMcabebnWo/1kymuBGpD96e1ZNEnZaIxK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/casuza/dJMcabebnWo/1kymuBGpD96e1ZNEnZaIxK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcasuza%2FdJMcabebnWo%2F1kymuBGpD96e1ZNEnZaIxK%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;1440&quot; height=&quot;480&quot; data-filename=&quot;스크린샷 2026-08-22 오전 4.12.45.png&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;480&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;651&quot; data-start=&quot;606&quot; data-section-id=&quot;1ay4ky3&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;651&quot; data-start=&quot;606&quot; data-section-id=&quot;1ay4ky3&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;2. &amp;nbsp;Image Generation with Latent Diffusion&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;1069&quot; data-start=&quot;653&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;다음으로 LDM 자체의&amp;nbsp;unconditional image generation 성능을 확인한다. CelebA-HQ, FFHQ, LSUN-Churches, LSUN-Bedrooms 등의 데이터셋에서 256&amp;times;256 이미지를 생성하고, FID와 Precision/Recall로 생성 품질과 데이터 분포 coverage를 평가한다. CelebA-HQ에서는 LDM-4가&amp;nbsp;FID 5.11을 기록해 당시 여러 likelihood-based model과 GAN보다 좋은 결과를 얻었다. 또한 대부분의 데이터셋에서 기존 diffusion 기반 방법과 경쟁력 있는 성능을 내면서도 더 적은 계산 자원을 사용했다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;1069&quot; data-start=&quot;653&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; background-color: #f6e199;&quot;&gt;=&amp;gt; &lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;latent에서 diffusion을 해도 이미지 생성 품질이 크게 떨어지지 않고, 계산 비용은 줄일 수 있다&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-22 오전 4.29.48.png&quot; data-origin-width=&quot;882&quot; data-origin-height=&quot;464&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DtKqB/dJMcafucJYa/UDTYv8qiTKjWdBjIkAOAE1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DtKqB/dJMcafucJYa/UDTYv8qiTKjWdBjIkAOAE1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DtKqB/dJMcafucJYa/UDTYv8qiTKjWdBjIkAOAE1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDtKqB%2FdJMcafucJYa%2FUDTYv8qiTKjWdBjIkAOAE1%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;882&quot; height=&quot;464&quot; data-filename=&quot;스크린샷 2026-08-22 오전 4.29.48.png&quot; data-origin-width=&quot;882&quot; data-origin-height=&quot;464&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-22 오전 4.30.27.png&quot; data-origin-width=&quot;1830&quot; data-origin-height=&quot;590&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pXV6a/dJMcag0SL4F/JQ7AO9RYEXjx4cWKFpsqOK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pXV6a/dJMcag0SL4F/JQ7AO9RYEXjx4cWKFpsqOK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pXV6a/dJMcag0SL4F/JQ7AO9RYEXjx4cWKFpsqOK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpXV6a%2FdJMcag0SL4F%2FJQ7AO9RYEXjx4cWKFpsqOK%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;1830&quot; height=&quot;590&quot; data-filename=&quot;스크린샷 2026-08-22 오전 4.30.27.png&quot; data-origin-width=&quot;1830&quot; data-origin-height=&quot;590&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;1069&quot; data-start=&quot;653&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;1199&quot; data-start=&quot;1164&quot; data-section-id=&quot;kwb247&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;3. Conditional Latent Diffusion&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;1273&quot; data-start=&quot;1201&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;여기서는 앞에서 제안한&amp;nbsp;cross-attention conditioning이 실제로 다양한 조건에 적용 가능한지&amp;nbsp;확인한다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;1590&quot; data-start=&quot;1275&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Text-to-image의 경우 1.45B parameter의 KL-regularized LDM을 LAION-400M으로 학습하고, text prompt를 transformer로 encoding한 뒤 cross-attention으로 U-Net에 전달한다. MS-COCO 평가에서는 classifier-free guidance를 사용했을 때 당시 autoregressive 및 diffusion 기반 text-to-image 모델과 경쟁력 있는 성능을 보이면서도 parameter 수는 더 적었다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;1798&quot; data-start=&quot;1592&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;또한 text뿐 아니라&amp;nbsp;layout이나 semantic map 같은 spatial condition도 사용할 수 있음을 실험했다. 특히 256&amp;times;256 이미지로 학습한 LDM을 convolutional하게 적용하면 512&amp;times;1024처럼 더 큰 해상도의 semantic synthesis도 가능했다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;1798&quot; data-start=&quot;1592&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;=&amp;gt; &lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;LDM의 conditioning mechanism이 text에만 한정되지 않고 다양한 modality와 고해상도 생성에도 확장될 수 있다&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-22 오전 4.21.59.png&quot; data-origin-width=&quot;1850&quot; data-origin-height=&quot;690&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nwrNG/dJMb99OdM9H/Br4zMTM7DkCA8KhF31RlL1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nwrNG/dJMb99OdM9H/Br4zMTM7DkCA8KhF31RlL1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nwrNG/dJMb99OdM9H/Br4zMTM7DkCA8KhF31RlL1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnwrNG%2FdJMb99OdM9H%2FBr4zMTM7DkCA8KhF31RlL1%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;1850&quot; height=&quot;690&quot; data-filename=&quot;스크린샷 2026-08-22 오전 4.21.59.png&quot; data-origin-width=&quot;1850&quot; data-origin-height=&quot;690&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 style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;1932&quot; data-start=&quot;1909&quot; data-section-id=&quot;7j8n2h&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;4. Super-Resolution&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;2068&quot; data-start=&quot;1934&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Super-resolution에서는 저해상도 이미지를 condition으로 넣어 고해상도 이미지를 생성한다. 논문에서는 ImageNet의 64&amp;rarr;256, 즉 4배 upscaling을 실험했고,&amp;nbsp;&lt;span aria-hidden=&quot;true&quot;&gt;f=4&lt;/span&gt;의 autoencoder를 사용했다. &lt;/span&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;LDM-SR은 기존 diffusion 기반 super-resolution 모델인 SR3와 비교했을 때&amp;nbsp;FID에서는 더 좋은 성능을 보였고, SR3는 IS에서는 더 좋은 결과를 보였다. 저자들은 PSNR이나 SSIM이 높은 것이 반드시 사람이 보기에 더 좋은 이미지라는 뜻은 아니라고 지적하며, LDM은 현실적인 texture를 생성하는 데 강점이 있다고 설명한다. User study에서도 pixel-space diffusion보다 LDM 결과를 더 선호하는 비율이 높았다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;2068&quot; data-start=&quot;1934&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;=&amp;gt; 해상도를 올리는 super-resolution task에서도 LDM이 잘 작동했다.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-22 오전 4.24.27.png&quot; data-origin-width=&quot;1160&quot; data-origin-height=&quot;856&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OjXFo/dJMcaiYF53r/dqx1NPoKVvoVTKXKItdkE1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OjXFo/dJMcaiYF53r/dqx1NPoKVvoVTKXKItdkE1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OjXFo/dJMcaiYF53r/dqx1NPoKVvoVTKXKItdkE1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOjXFo%2FdJMcaiYF53r%2Fdqx1NPoKVvoVTKXKItdkE1%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;1160&quot; height=&quot;856&quot; data-filename=&quot;스크린샷 2026-08-22 오전 4.24.27.png&quot; data-origin-width=&quot;1160&quot; data-origin-height=&quot;856&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 style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;2511&quot; data-start=&quot;2494&quot; data-section-id=&quot;15wwmsv&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;5. Inpainting&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;2568&quot; data-start=&quot;2513&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;이미지의 일부가 가려졌거나 제거된 영역을 복원하는&amp;nbsp;inpainting을 실험한다. Pixel-based diffusion인 LDM-1과 latent diffusion인 LDM-4를 비교한 결과, latent-based model이&amp;nbsp;최소 약 2.7배 빠른 속도를 보이면서 FID도 개선됐다. 또한 당시 강력한 inpainting 모델인 LaMa와 비교했을 때도 LDM이 FID 기준으로 더 좋은 이미지 품질을 보였으며, user study에서도 LDM 결과에 대한 선호도가 높았다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;2568&quot; data-start=&quot;2513&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;=&amp;gt; &lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;latent diffusion이 단순 이미지 생성뿐 아니라 실제 image-to-image task에서도 계산 효율성과 품질을 동시에 확보할 수 있&lt;/span&gt;다.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-22 오전 4.26.20.png&quot; data-origin-width=&quot;948&quot; data-origin-height=&quot;1472&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/boniuZ/dJMcaiR25zj/8K5r7te58iX23grIJgqyRK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/boniuZ/dJMcaiR25zj/8K5r7te58iX23grIJgqyRK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/boniuZ/dJMcaiR25zj/8K5r7te58iX23grIJgqyRK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FboniuZ%2FdJMcaiR25zj%2F8K5r7te58iX23grIJgqyRK%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;1472&quot; data-filename=&quot;스크린샷 2026-08-22 오전 4.26.20.png&quot; data-origin-width=&quot;948&quot; data-origin-height=&quot;1472&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;div style=&quot;color: #000000; text-align: start;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span&gt;Limitations&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;LDM은 pixel-space diffusion보다 계산 효율을 크게 개선했지만, 여전히 여러 번의 denoising step이 필요한 diffusion model이기 때문에 sampling 속도가 느리다는 한계가 있다. 또한 autoencoder를 이용한 lossy compression 과정에서 일부 정보가 손실되므로 pixel-level accuracy가 중요한 task에는 적합하지 않을 수 있다. 마지막으로 대규모 데이터로 학습되는 생성 모델인 만큼 학습 데이터에 존재하는 bias가 생성 결과에 반영될 가능성도 존재한다.&lt;/span&gt;&lt;/p&gt;</description>
      <author>tjdbswls1456</author>
      <guid isPermaLink="true">https://lambdacourse.tistory.com/82</guid>
      <comments>https://lambdacourse.tistory.com/82#entry82comment</comments>
      <pubDate>Sat, 22 Aug 2026 04:34:48 +0900</pubDate>
    </item>
    <item>
      <title>[정율의] SRCNN, SRGAN, ESRGAN</title>
      <link>https://lambdacourse.tistory.com/81</link>
      <description>&lt;p data-end=&quot;43&quot; data-start=&quot;34&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;SRCNN&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;252&quot; data-start=&quot;44&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;118&quot; data-start=&quot;44&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;제목:&lt;/b&gt; Learning a Deep Convolutional Network for Image Super-Resolution&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;143&quot; data-start=&quot;119&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;저자:&lt;/b&gt; Chao Dong 외 3명&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;163&quot; data-start=&quot;144&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;학회:&lt;/b&gt; ECCV 2014&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;252&quot; data-start=&quot;164&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;논문 링크:&lt;/b&gt; &lt;a style=&quot;color: #000000;&quot; href=&quot;https://doi.org/10.1007/978-3-319-10593-2_13?utm_source=chatgpt.com&quot;&gt;SRCNN 논문 보기&lt;/a&gt; &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;263&quot; data-start=&quot;254&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;SRGAN&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;499&quot; data-start=&quot;264&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;358&quot; data-start=&quot;264&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;제목:&lt;/b&gt; Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;390&quot; data-start=&quot;359&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;저자:&lt;/b&gt; Christian Ledig 외 10명&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;410&quot; data-start=&quot;391&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;학회:&lt;/b&gt; CVPR 2017&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;499&quot; data-start=&quot;411&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;논문 링크:&lt;/b&gt; &lt;a style=&quot;color: #000000;&quot; href=&quot;https://openaccess.thecvf.com/content_cvpr_2017/html/Ledig_Photo-Realistic_Single_Image_CVPR_2017_paper.html?utm_source=chatgpt.com&quot;&gt;SRGAN 논문 보기&lt;/a&gt; &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;511&quot; data-start=&quot;501&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;ESRGAN&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;733&quot; data-start=&quot;512&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;587&quot; data-start=&quot;512&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;제목:&lt;/b&gt; ESRGAN: Enhanced Super-Resolution Generative Adversarial Networks&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;614&quot; data-start=&quot;588&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;저자:&lt;/b&gt; Xintao Wang 외 7명&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;644&quot; data-start=&quot;615&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;학회:&lt;/b&gt; ECCV Workshops 2018&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;733&quot; data-start=&quot;645&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;논문 링크:&lt;/b&gt; &lt;a style=&quot;color: #000000;&quot; href=&quot;https://openaccess.thecvf.com/content_eccv_2018_workshops/w25/html/Wang_ESRGAN_Enhanced_Super-Resolution_Generative_Adversarial_Networks_ECCVW_2018_paper.html?utm_source=chatgpt.com&quot;&gt;ESRGAN 논문 보기&lt;/a&gt;&lt;/span&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;&lt;span style=&quot;color: #000000;&quot;&gt;추가 소속: SRCNN &amp;mdash; CUHK &amp;amp; Microsoft Research / SRGAN &amp;mdash; Twitter / ESRGAN &amp;mdash; CUHK-SenseTime Joint Lab et al.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;a style=&quot;color: #000000;&quot; href=&quot;https://youtu.be/unf2ziKXBP4?si=a55ZF0ql6uVeaioE&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://youtu.be/unf2ziKXBP4?si=a55ZF0ql6uVeaioE&lt;/a&gt;\&lt;/span&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;span style=&quot;color: #000000;&quot;&gt;논문 읽기 전&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;배경 지식이 훨씬 중요하기도 하고&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;오늘 신입분들이 새로 들어오기도 하기 때문에&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;SR의 배경부터 자세히 설명하도록 하겠습니다&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;제가 논문 이미지 말고 강의 자료 사용하는 것은 위 링크의 김성범 교수님의 설명 + 강의 자료를 참고했습니다!!&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Super-Resolution은 단순 확대가 아니다&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; Single Image Super-Resolution (SISR): 한 장의 LR 이미지로 HR 이미지를 추정하는 문제&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; 핵심 질문: &amp;ldquo;없는 고주파 정보를 어떻게 그럴듯하게 복원할 것인가?&amp;rdquo;&lt;/span&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;span style=&quot;color: #000000;&quot;&gt;!단순히 256&amp;times;256 이미지를 1024&amp;times;1024로 resize하는 것과 super-resolution은 같은 문제가 아닙니다!&lt;/span&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;span style=&quot;color: #000000;&quot;&gt; &lt;b&gt;LR &amp;middot; HR &amp;middot; SR 용어와 학습 데이터&lt;/b&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; HR: 원래의 고해상도 정답 이미지&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; LR: HR을 blur/downsample하여 만든 입력 이미지&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; SR: 모델이 LR로부터 출력한 super-resolved 이미지&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; 실험에서는 HR로부터 LR을 합성해 paired data를 만드는 경우가 많음&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;990&quot; data-origin-height=&quot;286&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PAQXJ/dJMcaal3Won/zVmkwiXs8D03Ax3lKTNUzK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PAQXJ/dJMcaal3Won/zVmkwiXs8D03Ax3lKTNUzK/img.png&quot; data-alt=&quot;LR은 어떻게 만들어지는가: degradation model&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PAQXJ/dJMcaal3Won/zVmkwiXs8D03Ax3lKTNUzK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPAQXJ%2FdJMcaal3Won%2FzVmkwiXs8D03Ax3lKTNUzK%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;990&quot; height=&quot;286&quot; data-origin-width=&quot;990&quot; data-origin-height=&quot;286&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;LR은 어떻게 만들어지는가: degradation model&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1020&quot; data-origin-height=&quot;301&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dLYpu5/dJMcaikb4CL/2cYpNgQ9WK8f1HqdLviXt1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dLYpu5/dJMcaikb4CL/2cYpNgQ9WK8f1HqdLviXt1/img.png&quot; data-alt=&quot;Classical downsampling examples (nearest / bilinear / bicubic). OpenCV resize interpolation documentation, S. Narasimhan &amp;amp;ldquo;Image Resampling and Pyramids&amp;amp;rdquo;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dLYpu5/dJMcaikb4CL/2cYpNgQ9WK8f1HqdLviXt1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdLYpu5%2FdJMcaikb4CL%2F2cYpNgQ9WK8f1HqdLviXt1%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;1020&quot; height=&quot;301&quot; data-origin-width=&quot;1020&quot; data-origin-height=&quot;301&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Classical downsampling examples (nearest / bilinear / bicubic). OpenCV resize interpolation documentation, S. Narasimhan &amp;ldquo;Image Resampling and Pyramids&amp;rdquo;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;왜 SR은 ill-posed인가: one-to-many 문제&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; downsampling은 정보 손실이 있는 non-invertible operation&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; 같은 LR patch를 만들 수 있는 HR texture가 여러 개 존재&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; 따라서 SR은 &amp;ldquo;정답 픽셀을 계산&amp;rdquo;하는 문제가 아니라 prior를 이용한 inference 문제&lt;/span&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;span style=&quot;color: #000000;&quot;&gt; &lt;b&gt;전통적인 Upsampling 1: interpolation은 무엇을 하는가&lt;/b&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1005&quot; data-origin-height=&quot;694&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wiRnv/dJMcaaGxrjL/VwhpLCzEgYYhjzxAhP0W30/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wiRnv/dJMcaaGxrjL/VwhpLCzEgYYhjzxAhP0W30/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wiRnv/dJMcaaGxrjL/VwhpLCzEgYYhjzxAhP0W30/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwiRnv%2FdJMcaaGxrjL%2FVwhpLCzEgYYhjzxAhP0W30%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;1005&quot; height=&quot;694&quot; data-origin-width=&quot;1005&quot; data-origin-height=&quot;694&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 저해상도 이미지와 고해상도 이미지의 크기가 다르기 때문에, 먼저 입력 이미지를 목표 크기에 맞춰야 함&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 크기를 맞춘 뒤에는 비어 있는 픽셀 값을 어떤 방식으로 채울 것인지가 핵심 문제&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 이 뒤에서 interpolation 기반 방법과 learning-based upsampling 방법으로 나누어 설명 가능&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1005&quot; data-origin-height=&quot;694&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IJly0/dJMcahFwJW6/cKtFYPx9YvUBH5JKPPRork/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IJly0/dJMcahFwJW6/cKtFYPx9YvUBH5JKPPRork/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IJly0/dJMcahFwJW6/cKtFYPx9YvUBH5JKPPRork/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIJly0%2FdJMcahFwJW6%2FcKtFYPx9YvUBH5JKPPRork%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;1005&quot; height=&quot;694&quot; data-origin-width=&quot;1005&quot; data-origin-height=&quot;694&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Interpolation 방법 중 가장 단순한 방식&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 빈 픽셀을 가장 가까운 기존 픽셀 값으로 채움&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 연산은 간단하지만 blocky하고 계단 현상이 잘 보일 수 있음&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1005&quot; data-origin-height=&quot;694&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pycek/dJMcajcfuEw/qkxi3h4f8NvK4LXdGllQHk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pycek/dJMcajcfuEw/qkxi3h4f8NvK4LXdGllQHk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pycek/dJMcajcfuEw/qkxi3h4f8NvK4LXdGllQHk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fpycek%2FdJMcajcfuEw%2Fqkxi3h4f8NvK4LXdGllQHk%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;1005&quot; height=&quot;694&quot; data-origin-width=&quot;1005&quot; data-origin-height=&quot;694&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 빈 픽셀 값을 주변 4개 픽셀의 거리 가중 평균으로 계산&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 가까운 픽셀일수록 더 큰 가중치를 가짐&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Nearest-neighbor보다 더 연속적이고 부드러운 값을 만듦&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 다만 여전히 고정된 수학적 규칙이지, 학습을 통해 새로운 detail을 복원하는 것은 아님&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1005&quot; data-origin-height=&quot;694&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/drPDZh/dJMcahMi2xV/kYQvYZK1NDfuBgV4dKEC9k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/drPDZh/dJMcahMi2xV/kYQvYZK1NDfuBgV4dKEC9k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/drPDZh/dJMcahMi2xV/kYQvYZK1NDfuBgV4dKEC9k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdrPDZh%2FdJMcahMi2xV%2FkYQvYZK1NDfuBgV4dKEC9k%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;1005&quot; height=&quot;694&quot; data-origin-width=&quot;1005&quot; data-origin-height=&quot;694&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 이번에는 4개가 아니라 인접한 16개 픽셀 정보를 사용&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 거리 기반 cubic function을 이용해 값을 계산&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 먼저 세로 방향으로 1차 cubic interpolation을 수행&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1005&quot; data-origin-height=&quot;693&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cUAVCT/dJMcahyOMxY/wGNIirklGBDxMexY2qACz0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cUAVCT/dJMcahyOMxY/wGNIirklGBDxMexY2qACz0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cUAVCT/dJMcahyOMxY/wGNIirklGBDxMexY2qACz0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcUAVCT%2FdJMcahyOMxY%2FwGNIirklGBDxMexY2qACz0%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;1005&quot; height=&quot;693&quot; data-origin-width=&quot;1005&quot; data-origin-height=&quot;693&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 세로 방향 계산 후, 노란색 영역에 대해 가로 방향 1차 cubic interpolation을 추가 수행&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 결국 16개 주변 데이터를 활용해 보다 자연스러운 값을 생성&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 고전적 interpolation 방법들 중에서는 성능이 좋고 자주 활용되는 편&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1020&quot; data-origin-height=&quot;301&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7UIMR/dJMcagNwJ7P/VVkN9T41jpHEkAYM2QBkM1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7UIMR/dJMcagNwJ7P/VVkN9T41jpHEkAYM2QBkM1/img.png&quot; data-alt=&quot;OpenCV resize interpolation documentation, S. Narasimhan &amp;amp;ldquo;Image Resampling and Pyramids&amp;amp;rdquo;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7UIMR/dJMcagNwJ7P/VVkN9T41jpHEkAYM2QBkM1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7UIMR%2FdJMcagNwJ7P%2FVVkN9T41jpHEkAYM2QBkM1%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;1020&quot; height=&quot;301&quot; data-origin-width=&quot;1020&quot; data-origin-height=&quot;301&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;OpenCV resize interpolation documentation, S. Narasimhan &amp;ldquo;Image Resampling and Pyramids&amp;rdquo;&lt;/figcaption&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;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Upsampling 2: interpolation이 아니라 업샘플링 레이어 자체의 파라미터를 학습하는 방법 &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1005&quot; data-origin-height=&quot;694&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bG6Nvt/dJMcahlml9c/yoRYGokKepfAIqMl8uL08K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bG6Nvt/dJMcahlml9c/yoRYGokKepfAIqMl8uL08K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bG6Nvt/dJMcahlml9c/yoRYGokKepfAIqMl8uL08K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbG6Nvt%2FdJMcahlml9c%2FyoRYGokKepfAIqMl8uL08K%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;1005&quot; height=&quot;694&quot; data-origin-width=&quot;1005&quot; data-origin-height=&quot;694&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 공간을 먼저 확장한 뒤, convolution filter를 적용해 출력값 생성&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; filter weight는 사람이 정하는 것이 아니라 모델 학습으로 결정됨&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1005&quot; data-origin-height=&quot;694&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2Cch9/dJMcab6rbwN/b5gprSKMcsY4bw2eVTvVsk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2Cch9/dJMcab6rbwN/b5gprSKMcsY4bw2eVTvVsk/img.png&quot; data-alt=&quot;궁금하면 Efficient sub-pixel convolution / periodic shuffling 개념. Shi et al., CVPR 2016 이 논문을 찾아보시는 걸 추천드려요&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2Cch9/dJMcab6rbwN/b5gprSKMcsY4bw2eVTvVsk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2Cch9%2FdJMcab6rbwN%2Fb5gprSKMcsY4bw2eVTvVsk%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;1005&quot; height=&quot;694&quot; data-origin-width=&quot;1005&quot; data-origin-height=&quot;694&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;궁금하면 Efficient sub-pixel convolution / periodic shuffling 개념. Shi et al., CVPR 2016 이 논문을 찾아보시는 걸 추천드려요&lt;/figcaption&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;span style=&quot;color: #000000;&quot;&gt;&amp;middot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LR 공간에서 convolution을 수행한 뒤, 출력 채널들을 재배열해서 HR 이미지를 생성하는 방식&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 같은 위치에서 나온 값들을 모아 최종 output 픽셀로 배치&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Transpose convolution과 마찬가지로 학습을 통해 최적 weight를 찾지만, 연산 구조가 다름&lt;/span&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;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #1f4e79;&quot;&gt;&lt;b&gt;사전 지식: 알아야 하는 지표들&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PSNR = Peak Signal-to-Noise Ratio&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 예측 SR과 정답 HR의 픽셀 차이를 MSE로 계산하고, 그 MSE를 이용해 영상 복원 품질을 수치화&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MSE가 작을수록 PSNR은 커지므로, 같은 평가 조건에서는 PSNR이 높을수록 HR과 픽셀 값이 가깝다는 의미&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 보통 dB 단위로 표시&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PSNR과 SSIM은 기본적으로 평가 지표(metric)이고, MSE는 학습 loss로 직접 사용되는 경우가 많음&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;789&quot; data-origin-height=&quot;107&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DswtI/dJMcagUdQz0/LsdFZSVQKHTBxGpTxEQQ9k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DswtI/dJMcagUdQz0/LsdFZSVQKHTBxGpTxEQQ9k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DswtI/dJMcagUdQz0/LsdFZSVQKHTBxGpTxEQQ9k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDswtI%2FdJMcagUdQz0%2FLsdFZSVQKHTBxGpTxEQQ9k%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;789&quot; height=&quot;107&quot; data-origin-width=&quot;789&quot; data-origin-height=&quot;107&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;!참고로 이것은 SRGAN의 perceptual quality와 연결된다!&lt;/span&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;span style=&quot;color: #000000;&quot;&gt;&amp;middot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SSIM = Structural Similarity Index&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 픽셀 하나하나의 오차만 보지 않고 luminance(휘도), contrast(대비), structure(구조)를 비교&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 평균, 분산, 공분산을 사용해 두 이미지의 국소적 구조가 얼마나 유사한지 평가&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 보통 값이 클수록 구조적으로 더 유사하며, 동일한 이미지에서는 1&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PSNR보다 인간의 시각적 구조 인식에 가까운 관점을 포함하지만 perceptual quality 전체를 완벽하게 설명하지는 못함&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;227&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;비교 요소&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;227&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;무엇을 보는가&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;227&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;쉽게 말하면&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;227&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Luminance&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;227&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;평균 밝기&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;227&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;전체적으로 밝고 어두운 정도가 비슷한가?&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;227&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Contrast&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;227&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;분산/표준편차&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;227&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;명암 차이와 대비가 비슷한가?&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width=&quot;227&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Structure&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;227&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;공분산 기반 관계&lt;/span&gt;&lt;/td&gt;
&lt;td width=&quot;227&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;edge, texture 등 구조적 패턴이 비슷한가?&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이제 본격적으로 오늘 리뷰할 세 논문으로 넘어가도록 하겠습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1005&quot; data-origin-height=&quot;264&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfILQT/dJMcaikb4u6/H9tbpOUQo2Plwzn4HtJTB0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfILQT/dJMcaikb4u6/H9tbpOUQo2Plwzn4HtJTB0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfILQT/dJMcaikb4u6/H9tbpOUQo2Plwzn4HtJTB0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbfILQT%2FdJMcaikb4u6%2FH9tbpOUQo2Plwzn4HtJTB0%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;1005&quot; height=&quot;264&quot; data-origin-width=&quot;1005&quot; data-origin-height=&quot;264&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; SRCNN: CNN으로 LR&amp;rarr;HR mapping을 end-to-end 학습&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; SRGAN: pixel fidelity만이 아니라 perceptual realism을 loss에 반영&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; ESRGAN: SRGAN의 architecture &amp;middot; adversarial loss &amp;middot; perceptual loss를 모두 개선&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style4&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;844&quot; data-origin-height=&quot;326&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bEaC8a/dJMcafucJp2/u5mUE7fcF4KATHaKSm2rNk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bEaC8a/dJMcafucJp2/u5mUE7fcF4KATHaKSm2rNk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bEaC8a/dJMcafucJp2/u5mUE7fcF4KATHaKSm2rNk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbEaC8a%2FdJMcafucJp2%2Fu5mUE7fcF4KATHaKSm2rNk%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;844&quot; height=&quot;326&quot; data-origin-width=&quot;844&quot; data-origin-height=&quot;326&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; 입력: bicubic으로 HR 크기까지 미리 키운 LR&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; Layer 1: patch extraction &amp;amp; representation &amp;mdash; 기본 설정 9&amp;times;9, 64 maps&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; Layer 2: non-linear mapping &amp;mdash; 1&amp;times;1, 32 maps&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; Layer 3: reconstruction &amp;mdash; 5&amp;times;5, 출력 1 channel (기본 Y-channel 설정)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;627&quot; data-origin-height=&quot;174&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/P7yya/dJMcaikb8y4/oSVLpGH8qejFDmCTcgc7rk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/P7yya/dJMcaikb8y4/oSVLpGH8qejFDmCTcgc7rk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/P7yya/dJMcaikb8y4/oSVLpGH8qejFDmCTcgc7rk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FP7yya%2FdJMcaikb8y4%2FoSVLpGH8qejFDmCTcgc7rk%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;627&quot; height=&quot;174&quot; data-origin-width=&quot;627&quot; data-origin-height=&quot;174&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; Loss: MSE&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;493&quot; data-origin-height=&quot;544&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XcLdB/dJMcag7GFFB/R49XkzBeD1K9aOrpUskuXK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XcLdB/dJMcag7GFFB/R49XkzBeD1K9aOrpUskuXK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XcLdB/dJMcag7GFFB/R49XkzBeD1K9aOrpUskuXK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXcLdB%2FdJMcag7GFFB%2FR49XkzBeD1K9aOrpUskuXK%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;493&quot; height=&quot;544&quot; data-origin-width=&quot;493&quot; data-origin-height=&quot;544&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; 장점: 단순한 end-to-end CNN, 전통 방법보다 강한 복원 성능&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; 한계 1: bicubic pre-upsampling 때문에 HR space에서 많은 연산&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; 한계 2: shallow network&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; 한계 3: MSE/PSNR 중심 &amp;rarr; texture가 smooth해질 수 있음&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style4&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;질문 자체의 변화&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;ldquo;정답 픽셀에 가장 가까운 이미지&amp;rdquo;가 아니라 &amp;ldquo;사람이 봤을 때 진짜 고해상도 사진처럼 느껴지는 이미지&amp;rdquo;를 만들고 싶다면 loss를 어떻게 바꿔야 할까요?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt; 이게 SRGAN &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;877&quot; data-origin-height=&quot;414&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/r2uOC/dJMcabZJ4by/zog7EArkk7hhemw1TG0Vuk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/r2uOC/dJMcabZJ4by/zog7EArkk7hhemw1TG0Vuk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/r2uOC/dJMcabZJ4by/zog7EArkk7hhemw1TG0Vuk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fr2uOC%2FdJMcabZJ4by%2Fzog7EArkk7hhemw1TG0Vuk%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;877&quot; height=&quot;414&quot; data-origin-width=&quot;877&quot; data-origin-height=&quot;414&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; SRResNet: MSE 최적화 &amp;rarr; 높은 PSNR/SSIM, 그러나 smooth texture&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; SRGAN: perceptual loss &amp;rarr; PSNR이 낮아질 수 있지만 texture가 더 현실적으로 보임&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; MOS(Mean Opinion Score)로 인간 평가도 수행&lt;/span&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;span style=&quot;color: #000000;&quot;&gt; &lt;b&gt;GAN 2분 복습: Generator와 Discriminator를 loss 관점에서 이해하기&lt;/b&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;960&quot; data-origin-height=&quot;461&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/baqG00/dJMcaf1Z8VM/STwaRx6JSpNVMMrAYycrP0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/baqG00/dJMcaf1Z8VM/STwaRx6JSpNVMMrAYycrP0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/baqG00/dJMcaf1Z8VM/STwaRx6JSpNVMMrAYycrP0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbaqG00%2FdJMcaf1Z8VM%2FSTwaRx6JSpNVMMrAYycrP0%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;960&quot; height=&quot;461&quot; data-origin-width=&quot;960&quot; data-origin-height=&quot;461&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; Generator G: 원 GAN에서는 z &amp;rarr; fake sample, SRGAN에서는 LR &amp;rarr; SR image&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; Discriminator D: real sample은 1, generated sample은 0에 가깝게 판별&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; 원 GAN의 핵심: min_G max_D E[log D(real)] + E[log(1&amp;minus;D(fake))]&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;819&quot; data-origin-height=&quot;71&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ASCUU/dJMcabFi0i1/4ZJPk4L2xUlk8Uud3MZ8IK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ASCUU/dJMcabFi0i1/4ZJPk4L2xUlk8Uud3MZ8IK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ASCUU/dJMcabFi0i1/4ZJPk4L2xUlk8Uud3MZ8IK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FASCUU%2FdJMcabFi0i1%2F4ZJPk4L2xUlk8Uud3MZ8IK%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;819&quot; height=&quot;71&quot; data-origin-width=&quot;819&quot; data-origin-height=&quot;71&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; 실제 G 학습은 gradient가 강한 non-saturating 형태 &amp;minus;log D(fake)를 흔히 사용; SRGAN도 이 형태&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/p1kNe/dJMcahyOMBL/OywhsG0PeMx9fs8BLqwWYk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/p1kNe/dJMcahyOMBL/OywhsG0PeMx9fs8BLqwWYk/img.png&quot; data-origin-width=&quot;546&quot; data-origin-height=&quot;78&quot; data-is-animation=&quot;false&quot; style=&quot;width: 81.0863%; margin-right: 10px;&quot; data-widthpercent=&quot;82.04&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/p1kNe/dJMcahyOMBL/OywhsG0PeMx9fs8BLqwWYk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fp1kNe%2FdJMcahyOMBL%2FOywhsG0PeMx9fs8BLqwWYk%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;78&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bQ5LmP/dJMcaf1Z8XR/yIPcQSimTViDPhZYKLxDLk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bQ5LmP/dJMcaf1Z8XR/yIPcQSimTViDPhZYKLxDLk/img.png&quot; data-origin-width=&quot;544&quot; data-origin-height=&quot;355&quot; data-is-animation=&quot;false&quot; style=&quot;width: 17.7509%;&quot; data-widthpercent=&quot;17.96&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bQ5LmP/dJMcaf1Z8XR/yIPcQSimTViDPhZYKLxDLk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQ5LmP%2FdJMcaf1Z8XR%2FyIPcQSimTViDPhZYKLxDLk%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;544&quot; height=&quot;355&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;암튼 여기까지 정리하고,,, G와 D가 서로 반대 목적을 갖고 번갈아 학습한다 정도만 이해하면 오케이입니다.&lt;/span&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;263&quot; data-origin-height=&quot;39&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ev55ZM/dJMcadiWFLB/DWa9DxNvcv29dh5GP1Vkx1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ev55ZM/dJMcadiWFLB/DWa9DxNvcv29dh5GP1Vkx1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ev55ZM/dJMcadiWFLB/DWa9DxNvcv29dh5GP1Vkx1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fev55ZM%2FdJMcadiWFLB%2FDWa9DxNvcv29dh5GP1Vkx1%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;263&quot; height=&quot;39&quot; data-origin-width=&quot;263&quot; data-origin-height=&quot;39&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt; SRGAN도&amp;nbsp;dversarial loss 하나만으로는 &amp;ldquo;이 SR이 입력 LR과 같은 장면인가?&amp;rdquo;를 충분히 강하게 보장하지 못하기에 그 대응관계를 붙잡는 것이 paired HR와 비교하는 content loss가 존재합니다. GAN과 같은 역할 분담이 존재하는 것이지요.&lt;/span&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;span style=&quot;color: #000000;&quot;&gt;다만&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 원 GAN의 G는 random noise z를 입력받아 아무 이미지나 생성하지만, SRGAN의 G는 LR 이미지를 입력받아 그 LR에 대응하는 SR을 만듭니다. 즉 &amp;ldquo;무엇을 만들지&amp;rdquo;가 LR에 의해 조건화됩니다. 반면 SRGAN의 discriminator는 LR을 같이 보는 것이 아니라 real HR와 generated SR 자체의 real/fake를 구분합니다.&lt;/span&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;span style=&quot;color: #000000;&quot;&gt; &lt;b&gt;SRGAN architecture: 깊은 residual generator + discriminator&lt;/b&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1020&quot; data-origin-height=&quot;638&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmJgUz/dJMcaidvCmX/D1u80bhHD4AGe7CX8zsNQ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmJgUz/dJMcaidvCmX/D1u80bhHD4AGe7CX8zsNQ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmJgUz/dJMcaidvCmX/D1u80bhHD4AGe7CX8zsNQ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmJgUz%2FdJMcaidvCmX%2FD1u80bhHD4AGe7CX8zsNQ0%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;1020&quot; height=&quot;638&quot; data-origin-width=&quot;1020&quot; data-origin-height=&quot;638&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; Generator: 16 residual blocks (B=16)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; Residual blocks: Conv&amp;ndash;BN&amp;ndash;PReLU&amp;ndash;Conv&amp;ndash;BN + skip&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; 2&amp;times; PixelShuffle를 두 번 사용해 4&amp;times; upscaling&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; Discriminator: 8 convolutional layers, feature 64&amp;rarr;512, stride로 downsampling&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;881&quot; data-origin-height=&quot;640&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjGfsQ/dJMcacRIzwv/Qzw8AaIvSHJQ9SDj9fVzkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjGfsQ/dJMcacRIzwv/Qzw8AaIvSHJQ9SDj9fVzkK/img.png&quot; data-alt=&quot;출처: Introduction to deep super resolution ❘ by Hiroto Honda ❘ Medium&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjGfsQ/dJMcacRIzwv/Qzw8AaIvSHJQ9SDj9fVzkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjGfsQ%2FdJMcacRIzwv%2FQzw8AaIvSHJQ9SDj9fVzkK%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;640&quot; data-origin-width=&quot;881&quot; data-origin-height=&quot;640&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;출처: Introduction to deep super resolution ❘ by Hiroto Honda ❘ Medium&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;보조 설명&lt;span style=&quot;color: #000000;&quot;&gt;: &lt;b&gt;VGG19를 2분만 이해하고 SRGAN loss로 넘어가기&lt;/b&gt; &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1005&quot; data-origin-height=&quot;509&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cgj1r0/dJMcahlmq6B/urRIKC5LATDuXV12n4y0b0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cgj1r0/dJMcahlmq6B/urRIKC5LATDuXV12n4y0b0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cgj1r0/dJMcahlmq6B/urRIKC5LATDuXV12n4y0b0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcgj1r0%2FdJMcahlmq6B%2FurRIKC5LATDuXV12n4y0b0%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;1005&quot; height=&quot;509&quot; data-origin-width=&quot;1005&quot; data-origin-height=&quot;509&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;SRGAN의 핵심: Loss function을 정확히 분해해서 보기&lt;/b&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;434&quot; data-origin-height=&quot;193&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bNYo6D/dJMcahyOQld/NjuCZazXHZb0IKciMPWkuK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bNYo6D/dJMcahyOQld/NjuCZazXHZb0IKciMPWkuK/img.png&quot; data-alt=&quot;식 (1): Generator가 결국 뭘 학습하는가 - N개의 학습 이미지에 대해, Generator가 만든 SR 이미지와 실제 HR 이미지 사이의 SR loss 평균이 가장 작아지도록 Generator의 parameter 식 (2): GAN을 수식으로 쓴 것 -&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bNYo6D/dJMcahyOQld/NjuCZazXHZb0IKciMPWkuK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbNYo6D%2FdJMcahyOQld%2FNjuCZazXHZb0IKciMPWkuK%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;434&quot; height=&quot;193&quot; data-origin-width=&quot;434&quot; data-origin-height=&quot;193&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;식 (1): Generator가 결국 뭘 학습하는가 - N개의 학습 이미지에 대해, Generator가 만든 SR 이미지와 실제 HR 이미지 사이의 SR loss 평균이 가장 작아지도록 Generator의 parameter 식 (2): GAN을 수식으로 쓴 것 -&lt;/figcaption&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;350&quot; data-origin-height=&quot;112&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/T34kO/dJMcafucJrI/4X5YQ7QxZxuVDlMcuiLe01/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/T34kO/dJMcafucJrI/4X5YQ7QxZxuVDlMcuiLe01/img.png&quot; data-alt=&quot;전체 로스&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/T34kO/dJMcafucJrI/4X5YQ7QxZxuVDlMcuiLe01/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FT34kO%2FdJMcafucJrI%2F4X5YQ7QxZxuVDlMcuiLe01%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;350&quot; height=&quot;112&quot; data-origin-width=&quot;350&quot; data-origin-height=&quot;112&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;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;&amp;middot; ① Pixel/MSE loss: SR과 HR의 같은 위치 픽셀을 직접 비교 &amp;mdash; fidelity/PSNR에 유리&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;344&quot; data-origin-height=&quot;73&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GeZ0Y/dJMcajcfuJW/FL3OnZ9AmJwknc1MEsUM1k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GeZ0Y/dJMcajcfuJW/FL3OnZ9AmJwknc1MEsUM1k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GeZ0Y/dJMcajcfuJW/FL3OnZ9AmJwknc1MEsUM1k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGeZ0Y%2FdJMcajcfuJW%2FFL3OnZ9AmJwknc1MEsUM1k%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;344&quot; height=&quot;73&quot; data-origin-width=&quot;344&quot; data-origin-height=&quot;73&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; ② VGG content loss: pretrained VGG19의 &amp;phi;5,4 feature에서 SR과 HR을 비교&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;336&quot; data-origin-height=&quot;124&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b9F6Yp/dJMcadXuech/qMTokiKbPf6DfY1gr50EU0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b9F6Yp/dJMcadXuech/qMTokiKbPf6DfY1gr50EU0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b9F6Yp/dJMcadXuech/qMTokiKbPf6DfY1gr50EU0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb9F6Yp%2FdJMcadXuech%2FqMTokiKbPf6DfY1gr50EU0%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;336&quot; height=&quot;124&quot; data-origin-width=&quot;336&quot; data-origin-height=&quot;124&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; ③ Generator adversarial loss: L_adv = &amp;minus;log D(G(LR)) &amp;mdash; D가 SR을 real이라고 믿도록&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;345&quot; data-origin-height=&quot;133&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKhIUS/dJMcacqN8SO/bXywSkqfprD1xFDYmBklF0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKhIUS/dJMcacqN8SO/bXywSkqfprD1xFDYmBklF0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKhIUS/dJMcacqN8SO/bXywSkqfprD1xFDYmBklF0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKhIUS%2FdJMcacqN8SO%2FbXywSkqfprD1xFDYmBklF0%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;345&quot; height=&quot;133&quot; data-origin-width=&quot;345&quot; data-origin-height=&quot;133&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; SRGAN 논문 정의: L_SR = L_content + 10⁻&amp;sup3; L_adv; 여기서 &amp;ldquo;perceptual loss&amp;rdquo;는 이 전체 합&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;350&quot; data-origin-height=&quot;112&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/T34kO/dJMcafucJrI/4X5YQ7QxZxuVDlMcuiLe01/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/T34kO/dJMcafucJrI/4X5YQ7QxZxuVDlMcuiLe01/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/T34kO/dJMcafucJrI/4X5YQ7QxZxuVDlMcuiLe01/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FT34kO%2FdJMcafucJrI%2F4X5YQ7QxZxuVDlMcuiLe01%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;350&quot; height=&quot;112&quot; data-origin-width=&quot;350&quot; data-origin-height=&quot;112&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1064&quot; data-origin-height=&quot;527&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/saAMn/dJMcag7GHlH/7pNNeF6dskOFflk1SyrGU0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/saAMn/dJMcag7GHlH/7pNNeF6dskOFflk1SyrGU0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/saAMn/dJMcag7GHlH/7pNNeF6dskOFflk1SyrGU0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsaAMn%2FdJMcag7GHlH%2F7pNNeF6dskOFflk1SyrGU0%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;1064&quot; height=&quot;527&quot; data-origin-width=&quot;1064&quot; data-origin-height=&quot;527&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style4&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;b&gt;ESRGAN: SRGAN의 무엇이 부족했나&lt;/b&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;960&quot; data-origin-height=&quot;746&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rPc0S/dJMcagUdQF6/ODO32VIaJm6Mnhl94r9pM1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rPc0S/dJMcagUdQF6/ODO32VIaJm6Mnhl94r9pM1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rPc0S/dJMcagUdQF6/ODO32VIaJm6Mnhl94r9pM1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrPc0S%2FdJMcagUdQF6%2FODO32VIaJm6Mnhl94r9pM1%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;960&quot; height=&quot;746&quot; data-origin-width=&quot;960&quot; data-origin-height=&quot;746&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; SRGAN은 photo-realistic texture를 만들지만 unpleasant artifacts/hallucinated details가 생길 수 있음&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; ESRGAN의 세 가지 개선축: ① network architecture( &lt;span&gt;generator architecture&lt;/span&gt; ) ② adversarial loss ③ perceptual loss&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; PIRM2018-SR Challenge region 3에서 1위&lt;/span&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;span style=&quot;color: #000000;&quot;&gt; &lt;b&gt;ESRGAN ① Architecture: BN 제거 + RRDB&lt;/b&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1005&quot; data-origin-height=&quot;332&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sEXRD/dJMcajpJy1L/PGuNb3mu0iyyHJzce0ze9K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sEXRD/dJMcajpJy1L/PGuNb3mu0iyyHJzce0ze9K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sEXRD/dJMcajpJy1L/PGuNb3mu0iyyHJzce0ze9K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsEXRD%2FdJMcajpJy1L%2FPGuNb3mu0iyyHJzce0ze9K%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;1005&quot; height=&quot;332&quot; data-origin-width=&quot;1005&quot; data-origin-height=&quot;332&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; SRGAN residual block의 BatchNorm 제거&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; Residual-in-Residual Dense Block (RRDB) 사용&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; Dense connections + multi-level residual learning&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; residual scaling과 작은 initialization으로 deep network 안정화&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; deeper 설정: 23 RRDB blocks&lt;/span&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;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;ESRGAN ②③ Loss 개선: RaGAN + pre-activation VGG + L1&lt;/b&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;915&quot; data-origin-height=&quot;290&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eyQyck/dJMcabyxETi/RZn0Eo8KPCkIc5RBEvhbtk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eyQyck/dJMcabyxETi/RZn0Eo8KPCkIc5RBEvhbtk/img.png&quot; data-alt=&quot;이 real image가 평균적인 fake image보다 더 realistic한가? 이 fake가 평균적인 real보다 덜 realistic한가?&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eyQyck/dJMcabyxETi/RZn0Eo8KPCkIc5RBEvhbtk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeyQyck%2FdJMcabyxETi%2FRZn0Eo8KPCkIc5RBEvhbtk%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;915&quot; height=&quot;290&quot; data-origin-width=&quot;915&quot; data-origin-height=&quot;290&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;이 real image가 평균적인 fake image보다 더 realistic한가? 이 fake가 평균적인 real보다 덜 realistic한가?&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; Standard GAN: 각 이미지를 독립적으로 real/fake 판단&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; RaGAN: &amp;ldquo;real이 fake보다 상대적으로 더 real한가?&amp;rdquo;를 학습&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tsIwK/dJMcaal32ks/wGo0Xx8XO8DB40hdjgVSq0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tsIwK/dJMcaal32ks/wGo0Xx8XO8DB40hdjgVSq0/img.png&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;640&quot; data-is-animation=&quot;false&quot; style=&quot;width: 27.7215%; margin-right: 10px;&quot; data-widthpercent=&quot;28.05&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tsIwK/dJMcaal32ks/wGo0Xx8XO8DB40hdjgVSq0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtsIwK%2FdJMcaal32ks%2FwGo0Xx8XO8DB40hdjgVSq0%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;640&quot; height=&quot;640&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bIe9Bx/dJMcacK7LaX/CdTOw3Em8ozVKfdKtrzQKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bIe9Bx/dJMcacK7LaX/CdTOw3Em8ozVKfdKtrzQKK/img.png&quot; data-origin-width=&quot;1511&quot; data-origin-height=&quot;589&quot; data-is-animation=&quot;false&quot; style=&quot;width: 71.1157%;&quot; data-widthpercent=&quot;71.95&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bIe9Bx/dJMcacK7LaX/CdTOw3Em8ozVKfdKtrzQKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbIe9Bx%2FdJMcacK7LaX%2FCdTOw3Em8ozVKfdKtrzQKK%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;1511&quot; height=&quot;589&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&amp;middot; VGG perceptual term: activation 이후가 아니라 activation 이전 feature 사용&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; Generator: L_G = L_percep + &amp;lambda;L_G^Ra + &amp;eta;L1, &amp;lambda;=5&amp;times;10⁻&amp;sup3;, &amp;eta;=10⁻&amp;sup2;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;773&quot; data-origin-height=&quot;85&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmV4IG/dJMcagGKNkY/xwn6W2o1WTh620yjKHfLX0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmV4IG/dJMcagGKNkY/xwn6W2o1WTh620yjKHfLX0/img.png&quot; data-alt=&quot;Perceptual loss에는 VGG feature loss 사용&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmV4IG/dJMcagGKNkY/xwn6W2o1WTh620yjKHfLX0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmV4IG%2FdJMcagGKNkY%2Fxwn6W2o1WTh620yjKHfLX0%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;773&quot; height=&quot;85&quot; data-origin-width=&quot;773&quot; data-origin-height=&quot;85&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Perceptual loss에는 VGG feature loss 사용&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;490&quot; data-origin-height=&quot;209&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bsxE3a/dJMcaaNf2vE/RJrUDXGHoiRbyXKeNLzenk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bsxE3a/dJMcaaNf2vE/RJrUDXGHoiRbyXKeNLzenk/img.png&quot; data-alt=&quot;참고&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bsxE3a/dJMcaaNf2vE/RJrUDXGHoiRbyXKeNLzenk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbsxE3a%2FdJMcaaNf2vE%2FRJrUDXGHoiRbyXKeNLzenk%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;490&quot; height=&quot;209&quot; data-origin-width=&quot;490&quot; data-origin-height=&quot;209&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;참고&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;822&quot; data-origin-height=&quot;489&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mocNa/dJMcagUdUuI/DUlgD90mHoMX2bRmr1Kgyk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mocNa/dJMcagUdUuI/DUlgD90mHoMX2bRmr1Kgyk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mocNa/dJMcagUdUuI/DUlgD90mHoMX2bRmr1Kgyk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmocNa%2FdJMcagUdUuI%2FDUlgD90mHoMX2bRmr1Kgyk%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;822&quot; height=&quot;489&quot; data-origin-width=&quot;822&quot; data-origin-height=&quot;489&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;마무리&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; SRCNN: &amp;ldquo;SR도 CNN으로 end-to-end mapping을 배울 수 있다.&amp;rdquo;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; SRGAN: &amp;ldquo;높은 PSNR보다 perceptual realism을 직접 최적화하자.&amp;rdquo;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;middot; ESRGAN: &amp;ldquo;SRGAN의 generator &amp;middot; GAN loss &amp;middot; perceptual loss를 모두 개선하자.&amp;rdquo;&lt;/span&gt;&lt;/p&gt;</description>
      <author>yule27 님의 블로그</author>
      <guid isPermaLink="true">https://lambdacourse.tistory.com/81</guid>
      <comments>https://lambdacourse.tistory.com/81#entry81comment</comments>
      <pubDate>Sat, 22 Aug 2026 01:56:47 +0900</pubDate>
    </item>
    <item>
      <title>[박재형] Swin Transformer: Hierarchical Vision Transformer using Shifted Windows</title>
      <link>https://lambdacourse.tistory.com/80</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;논문 정보&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;제목: Swin Transformer: Hierarchical Vision Transformer Using Shifted Windows&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;저자: Ze Liu 외 7명&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;학회: ICCV 2021&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;핵심 목적: Transformer를 image classification뿐만 아니라 object detection과 semantic segmentation에도 사용할 수 있는 general-purpose vision backbone으로 만드는 것&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;1. 이 논문이 해결하려는 문제&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;기존 Vision Transformer(ViT)는 이미지를 여러 patch로 나눈 뒤, 모든 patch token 사이에 global self-attention을 계산한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;하지만 이를 computer vision의 범용 backbone으로 사용하려면 두 가지 문제가 발생한다.&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;첫 번째 문제: single-scale representation&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;기존 ViT는 대부분 같은 spatial resolution을 유지한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;그러나 computer vision에서는 크기가 서로 다른 object를 처리해야 한다.&lt;/span&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;span&gt;작은 object를 찾으려면 high-resolution feature가 필요하다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;큰 object와 전체적인 의미를 이해하려면 low-resolution semantic feature가 필요하다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;CNN은 깊어질수록 resolution을 줄이고 channel을 늘리기 때문에 자연스럽게 hierarchical feature map을 만든다. 반면 기존 ViT는 이런 hierarchy가 부족하기 때문에 object detection이나 semantic segmentation에 바로 적용하기 어렵다.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;두 번째 문제: global self-attention의 높은 계산량&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;입력 이미지 크기를 H &amp;times; W, patch 크기를 P &amp;times; P라고 하면 token의 개수 N은 다음과 같다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;N = (H/P) &amp;times; (W/P) = HW/P&amp;sup2;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Global self-attention은 모든 token pair 사이의 관계를 계산하므로 N &amp;times; N 크기의 attention matrix가 필요하다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;따라서 attention 계산량은 대략 다음과 같다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;O(N&amp;sup2;C)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;여기서 C는 token의 channel dimension이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이미지의 가로와 세로를 각각 2배로 만들면 token 수는 4배가 되고, attention 계산량은 약 16배가 된다. 따라서 high-resolution image를 사용하는 dense prediction에서는 global self-attention이 매우 비싸다.&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;/div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;2. 논문의 핵심 아이디어&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Swin Transformer는 두 가지 핵심 아이디어로 문제를 해결한다.&lt;/span&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;span&gt;Patch Merging을 사용하여 hierarchical feature map을 만든다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Self-attention을 local window 안에서만 계산하고, 다음 block에서는 window를 이동시키는 Shifted Window를 사용한다.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;핵심 구조는 다음처럼 정리할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Hierarchical Representation&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Window-based Self-Attention&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Shifted Window&lt;/span&gt;&lt;br /&gt;&lt;span&gt;= Efficient General-Purpose Vision Transformer&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;즉, Swin Transformer는 Transformer의 content-dependent attention을 유지하면서 CNN의 locality와 hierarchy를 다시 도입한 구조다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;708&quot; data-origin-height=&quot;412&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RmDOe/dJMcafubYl6/QXU6VkJOn8J5x65ExaZGy1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RmDOe/dJMcafubYl6/QXU6VkJOn8J5x65ExaZGy1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RmDOe/dJMcafubYl6/QXU6VkJOn8J5x65ExaZGy1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRmDOe%2FdJMcafubYl6%2FQXU6VkJOn8J5x65ExaZGy1%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;708&quot; height=&quot;412&quot; data-origin-width=&quot;708&quot; data-origin-height=&quot;412&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;span&gt;3. 전체 Architecture&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1416&quot; data-origin-height=&quot;472&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Q8fR2/dJMcajpIMF1/GqkhG6irKduQd6Lrl59Y1k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Q8fR2/dJMcajpIMF1/GqkhG6irKduQd6Lrl59Y1k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Q8fR2/dJMcajpIMF1/GqkhG6irKduQd6Lrl59Y1k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQ8fR2%2FdJMcajpIMF1%2FGqkhG6irKduQd6Lrl59Y1k%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;1416&quot; height=&quot;472&quot; data-origin-width=&quot;1416&quot; data-origin-height=&quot;472&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;3.1 Patch Partition&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;입력 이미지는 다음 shape을 가진다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;H &amp;times; W &amp;times; 3&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Swin Transformer는 이미지를 겹치지 않는 4 &amp;times; 4 patch로 나눈다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;하나의 patch에는 다음과 같이 48개의 RGB 값이 들어 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;4 &amp;times; 4 &amp;times; 3 = 48&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;각 patch를 flatten한 다음 Linear Embedding을 사용해 C-dimensional token으로 변환한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;따라서 첫 번째 feature map의 shape은 다음과 같다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;H/4 &amp;times; W/4 &amp;times; C&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;3.2 Patch Merging&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;각 stage 사이에서는 Patch Merging을 수행한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;인접한 2 &amp;times; 2 token을 하나로 묶으면 네 개의 C-dimensional token이 연결되므로 feature dimension은 일시적으로 4C가 된다.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;그다음 Linear Projection을 사용해 4C를 2C로 줄인다.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;결과적으로 Patch Merging은 다음 변화를 만든다.&lt;/span&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;span&gt;height: 절반&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;width: 절반&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;token 수: 1/4&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;channel dimension: 2배&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Swin-T의 전체 hierarchy는 다음과 같다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단계Spatial ResolutionChannelBlock 수Attention Heads&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;Stage 1&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;56 &amp;times; 56&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;96&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;2&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;3&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;Stage 2&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;28 &amp;times; 28&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;192&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;2&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;6&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;Stage 3&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;14 &amp;times; 14&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;384&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;6&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;12&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span&gt;Stage 4&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;7 &amp;times; 7&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;768&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;2&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;24&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이 구조는 CNN의 feature pyramid와 비슷하다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;초기 stage는 정확한 spatial information을 유지하고, 깊은 stage는 넓은 영역의 semantic information을 표현한다. 따라서 FPN, Mask R-CNN, UperNet과 같은 기존 detection 및 segmentation framework에 연결하기 쉽다.&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;4. Window-based Self-Attention&lt;/span&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;4.1 기본 Self-Attention&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;일반적인 Self-Attention은 다음과 같이 계산된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Attention(Q, K, V) = Softmax(QKᵀ / &amp;radic;d)V&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;여기서 다음이 성립한다.&lt;/span&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;span&gt;Q: Query&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;K: Key&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;V: Value&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;d: Query와 Key의 dimension&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;QKᵀ는 각 token이 다른 token과 얼마나 관련되어 있는지를 나타낸다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Global self-attention에서는 모든 token이 모든 다른 token을 확인하기 때문에 N &amp;times; N attention matrix가 만들어진다.&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;4.2 Global MSA의 계산량&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;h &amp;times; w개의 token과 C-dimensional feature가 있을 때, 논문은 global Multi-head Self-Attention(MSA)의 계산량을 다음과 같이 나타낸다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;MSA complexity = 4hwC&amp;sup2; + 2(hw)&amp;sup2;C&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;첫 번째 항인 4hwC&amp;sup2;는 Q, K, V와 output projection에서 발생한다. (C channels -&amp;gt; C channels)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;두 번째 항인 2(hw)&amp;sup2;C는 다음 과정에서 발생한다.&lt;/span&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;span&gt;QKᵀ 계산&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Attention matrix와 V의 곱&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;문제가 되는 부분은 (hw)&amp;sup2;이다. Token 수가 증가하면 계산량이 quadratic하게 증가한다.&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;4.3 W-MSA의 계산량&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Swin Transformer는 &lt;b&gt;전체 feature map을 M &amp;times; M local window로 나누고 각 window 내부에서만 self-attention을 수행&lt;/b&gt;한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;논문에서는 기본적으로 M = 7을 사용한다. 따라서 하나의 window에는 다음과 같이 49개의 token이 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;M&amp;sup2; = 7&amp;sup2; = 49&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Window-based Multi-head Self-Attention(W-MSA)의 계산량은 다음과 같다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;W-MSA complexity = 4hwC&amp;sup2; + 2M&amp;sup2;hwC&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;M이 고정되어 있다면 두 번째 항은 hw에 대해 linear하다.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;따라서 global attention의 quadratic complexity를 local attention의 linear complexity로 바꿀 수 있다.&lt;/span&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;span&gt;다만 Linear Projection에서 발생하는 4hwC&amp;sup2; 항은 그대로 남는다. 따라서 &amp;ldquo;linear complexity&amp;rdquo;가 전체 Transformer block의 계산이 매우 작다는 뜻은 아니다.&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;5. 고정된 Local Window의 문제&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;모든 block이 같은 위치의 window만 사용하면 &lt;b&gt;서로 다른 window에 있는 token은 절대로 직접 정보를 교환할 수 없다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;예를 들어 왼쪽 위 window에 있는 object의 일부와 오른쪽 위 window에 있는 다른 부분이 연결되어 있더라도, 두 영역은 서로 다른 window에 있기 때문에 attention을 계산할 수 없다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Local window는 효율적이지만 window 사이의 connection이 사라진다는 문제가 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Swin Transformer는 이를 Shifted Window로 해결한다.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;6. Shifted Window&lt;/span&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;6.1 W-MSA와 SW-MSA의 교대&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Swin Transformer는 두 종류의 attention block을 번갈아 사용한다.&lt;/span&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;span&gt;W-MSA: 일반적인 non-overlapping window&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;SW-MSA: 이전 window에서 일정 거리만큼 이동한 shifted window&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Window 크기가 M &amp;times; M일 때, 다음 block의 window는 대략 다음만큼 이동한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;shift size = floor(M/2)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;기본 window 크기 M = 7에서는 가로와 세로 방향으로 각각 3 token만큼 이동한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;첫 번째 block의 window 경계에 의해 분리되었던 token들이 두 번째 block에서는 같은 shifted window 안에 들어갈 수 있다. 이를 통해 cross-window connection이 만들어진다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;중요한 점은 Shifted Window가 한 번에 global context를 제공하는 것은 아니라는 것이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;정보는 다음 과정을 통해 점진적으로 넓은 영역으로 전달된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;W-MSA&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;rarr; SW-MSA&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;rarr; 반복되는 Transformer Blocks&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;rarr; Patch Merging&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;rarr; 더 넓은 Receptive Field&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;710&quot; data-origin-height=&quot;512&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmDJR1/dJMcagGJXWp/8mZxJxvWMfMAKg7mQhbk71/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmDJR1/dJMcagGJXWp/8mZxJxvWMfMAKg7mQhbk71/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmDJR1/dJMcagGJXWp/8mZxJxvWMfMAKg7mQhbk71/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmDJR1%2FdJMcagGJXWp%2F8mZxJxvWMfMAKg7mQhbk71%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;512&quot; data-origin-width=&quot;710&quot; data-origin-height=&quot;512&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;6.2 Cyclic Shift&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Shifted Window를 그대로 구현하면 이미지 경계 부분에 작은 window가 많이 생긴다. 이 window들을 padding하면 계산량과 memory access가 비효율적이 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;논문은 이를 해결하기 위해 Cyclic Shift를 사용한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;과정은 다음과 같다.&lt;/span&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;span&gt;Feature map을 왼쪽 위 방향으로 cyclic shift한다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;일반적인 M &amp;times; M window로 나눈다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Window Attention을 계산한다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;계산 후 reverse cyclic shift를 수행한다.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이 방법을 사용하면 W-MSA와 같은 수의 window를 유지할 수 있으므로 GPU에서 효율적으로 batch computation을 수행할 수 있다.&lt;/span&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;720&quot; data-origin-height=&quot;284&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nCKIn/dJMcahMig4B/LLDOwO2Lc9gbm7SnpBCy11/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nCKIn/dJMcahMig4B/LLDOwO2Lc9gbm7SnpBCy11/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nCKIn/dJMcahMig4B/LLDOwO2Lc9gbm7SnpBCy11/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnCKIn%2FdJMcahMig4B%2FLLDOwO2Lc9gbm7SnpBCy11%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;720&quot; height=&quot;284&quot; data-origin-width=&quot;720&quot; data-origin-height=&quot;284&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;2942&quot; data-origin-height=&quot;1728&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c0PktX/dJMcadiVP4Z/To0fuKMVDKt8CzeeDwLkW1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c0PktX/dJMcadiVP4Z/To0fuKMVDKt8CzeeDwLkW1/img.png&quot; data-alt=&quot;출처 : https://www.youtube.com/watch?v=tFYxJZBAbE8 (8:30)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c0PktX/dJMcadiVP4Z/To0fuKMVDKt8CzeeDwLkW1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc0PktX%2FdJMcadiVP4Z%2FTo0fuKMVDKt8CzeeDwLkW1%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;2942&quot; height=&quot;1728&quot; data-origin-width=&quot;2942&quot; data-origin-height=&quot;1728&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;출처 : https://www.youtube.com/watch?v=tFYxJZBAbE8 (8:30)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;6.3 Attention Mask가 필요한 이유&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Cyclic Shift를 사용하면 원래 이미지에서 서로 멀리 떨어진 양쪽 경계의 token이 같은 window 안에 들어갈 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;하지만 이 token들은 실제 spatial neighbor가 아니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;따라서 SW-MSA에서는 Attention Mask를 추가한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;SW-Attention은 다음과 같이 이해할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;SW-Attention(Q, K, V)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;= Softmax(QKᵀ/&amp;radic;d + B + Mask)V&lt;/span&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;span&gt;(여기서 B는 bias:즉 token 간의 상대적인 위치관계를 나타내주기 위한 항)&lt;/span&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;span&gt;Mask 값은 다음과 같다.&lt;/span&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;span&gt;실제로 같은 shifted region에 속하면 0&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;연결되면 안 되는 token pair에는 &amp;minus;&amp;infin;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Softmax를 적용하면 &amp;minus;&amp;infin;가 들어간 위치의 attention probability는 0이 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;따라서 Cyclic Shift는 효율적인 computation을 담당하고, Attention Mask는 잘못된 spatial connection을 방지한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서로 다른 old window에 있었지만 실제로 인접한 token은 연결하면서, GPU 계산을 위해 함께 포장된 비인접 boundary token만 Mask로 제외하는 것이다.&lt;/p&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;7. Relative Position Bias&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Swin Transformer는 Attention 계산에 Relative Position Bias를 추가한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Attention(Q, K, V) = Softmax(QKᵀ/&amp;radic;d + B)V&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;B는 두 token의 상대적인 위치를 나타낸다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;예를 들어 Query와 Key가 다음 중 어떤 관계에 있는지를 학습할 수 있다.&lt;/span&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;span&gt;왼쪽 또는 오른쪽&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;위 또는 아래&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;가까운 위치 또는 먼 위치&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;M &amp;times; M window에서 두 token 사이의 row 차이는 &amp;minus;(M&amp;minus;1)부터 M&amp;minus;1까지 가능하다. Column 차이도 동일하다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;따라서 가능한 relative position의 수는 다음과 같다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;(2M&amp;minus;1)&amp;sup2;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;M = 7이면 다음과 같다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;(2 &amp;times; 7&amp;minus;1)&amp;sup2; = 13&amp;sup2; = 169&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;8. 논문의 장점&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&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;단순히 더 좋은 classifier를 만드는 것이 아니라 Transformer를 general-purpose vision backbone으로 만드는 것이 목표다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&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;W-MSA와 SW-MSA를 번갈아 사용한다는 아이디어는 설명하기 쉽고 다양한 architecture에 적용할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&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;General-purpose backbone을 주장하면서 classification, detection, instance segmentation, semantic segmentation을 모두 평가했다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;넷째, 실제 hardware efficiency를 고려한다&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;단순히 FLOPs만 줄이는 것이 아니라 Cyclic Shift를 통해 batching과 memory access까지 고려했다.&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;9. 논문의 한계&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;첫째, 즉각적인 Global Context가 없다&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Local attention을 사용하기 때문에 한 token이 한 block에서 전체 이미지를 볼 수 없다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;정보는 여러 W-MSA와 SW-MSA block을 거쳐 점진적으로 전달된다. 따라서 즉각적인 long-range interaction이 중요한 task에서는 단점이 될 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;둘째, Linear Complexity가 반드시 저비용을 의미하지 않는다&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;W-MSA는 attention mixing을 token 수에 대해 linear하게 만들지만 다음 projection cost는 여전히 존재한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;4hwC&amp;sup2;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Channel dimension은 깊은 stage에서 증가한다. 따라서 큰 Swin model은 여전히 상당한 computation과 memory를 요구한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;셋째, 최고 성능에는 많은 resource가 사용된다&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;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;ImageNet-22K Pre-training&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Large Model&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;High-resolution Input&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Long Training Schedule&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Strong Detection or Segmentation Head&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Multi-scale Testing&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;따라서&lt;u&gt; 가장 높은 성능을 backbone architecture 하나의 효과로만 해석해서는 안 된다.&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;넷째, Window Size가 고정되어 있다&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;기본 7 &amp;times; 7 window는 사람이 정한 hyperparameter다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Object의 모양이나 크기에 따라 window가 dynamic하게 바뀌는 구조는 아니다.&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;10. 최종 평가&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Swin Transformer의 가장 중요한 기여는 새로운 Attention formula를 만든 것이 아니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;핵심 기여는 Transformer가 computer vision backbone으로 작동하기 위해 필요한 다음 세 요소를 하나의 효율적인 구조로 결합한 것이다.&lt;/span&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;Hierarchy&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Local Attention&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Cross-window Communication&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;&lt;span&gt;Hierarchy가 없으면 dense prediction을 위한 multi-scale feature가 부족하다.&lt;/span&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;&lt;span&gt;Local Attention이 없으면 high-resolution image에서 계산량이 너무 커진다.&lt;/span&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;&lt;span&gt;Shifted Window가 없으면 서로 다른 local window가 단절된다.&lt;/span&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;따라서 Swin Transformer의 성공은 하나의 독립적인 아이디어보다 세 가지 설계가 서로의 약점을 보완한다는 데 있다.&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Swin Transformer는 global single-scale Transformer를 hierarchical local Transformer로 바꾸고, Shifted Window를 통해 local window 사이의 정보 전달을 가능하게 만든 vision backbone이다.&lt;/span&gt;&lt;/p&gt;</description>
      <author>damifiance</author>
      <guid isPermaLink="true">https://lambdacourse.tistory.com/80</guid>
      <comments>https://lambdacourse.tistory.com/80#entry80comment</comments>
      <pubDate>Fri, 21 Aug 2026 13:06:38 +0900</pubDate>
    </item>
    <item>
      <title>[황인성] DDIM</title>
      <link>https://lambdacourse.tistory.com/79</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;저자: Jiaming Song, Chenlin Meng &amp;amp; Stefano Ermon&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;소속: Stanford University&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;학회: ICLR 2021&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. Abstract &amp;amp; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Introduction&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DDPM은 우수한 성능을 보이지만 denoising을 위해 모든 timestep을 그대로 거쳐야 해서 시간이 오래 걸린다는 단점이 존재한다. 이에 본 논문에서는 1) DDPM과 동일한 학습 과정을 거치면서, 2) forward process를 non-Markovian하게 일반화할 수 있고, 3) deterministic하고 빠른 추론이 가능한 DDIM(Denoising Diffusion Impicit Model)을 제안한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1096&quot; data-origin-height=&quot;209&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dJIXuL/dJMcaixGhMb/S8LJ4C2FsiJ07OBhklquyK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dJIXuL/dJMcaixGhMb/S8LJ4C2FsiJ07OBhklquyK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dJIXuL/dJMcaixGhMb/S8LJ4C2FsiJ07OBhklquyK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdJIXuL%2FdJMcaixGhMb%2FS8LJ4C2FsiJ07OBhklquyK%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;1096&quot; height=&quot;209&quot; data-origin-width=&quot;1096&quot; data-origin-height=&quot;209&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. 전체 수식&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의 수식:&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1086&quot; data-origin-height=&quot;97&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dqa0MJ/dJMcacc6pvF/giEkQmtkCCyk0uN9BcifEk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dqa0MJ/dJMcacc6pvF/giEkQmtkCCyk0uN9BcifEk/img.png&quot; data-alt=&quot;DDPM 수식&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dqa0MJ/dJMcacc6pvF/giEkQmtkCCyk0uN9BcifEk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdqa0MJ%2FdJMcacc6pvF%2FgiEkQmtkCCyk0uN9BcifEk%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;1086&quot; height=&quot;97&quot; data-origin-width=&quot;1086&quot; data-origin-height=&quot;97&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;DDPM 수식&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1072&quot; data-origin-height=&quot;63&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NuPaG/dJMcahetP0d/RersdtmjoiWzMuKHKLTRi0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NuPaG/dJMcahetP0d/RersdtmjoiWzMuKHKLTRi0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NuPaG/dJMcahetP0d/RersdtmjoiWzMuKHKLTRi0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNuPaG%2FdJMcahetP0d%2FRersdtmjoiWzMuKHKLTRi0%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;1072&quot; height=&quot;63&quot; data-origin-width=&quot;1072&quot; data-origin-height=&quot;63&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;1077&quot; data-origin-height=&quot;103&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lQGum/dJMcahetP0s/HbkYEXBUBsq1hnijar8q31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lQGum/dJMcahetP0s/HbkYEXBUBsq1hnijar8q31/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lQGum/dJMcahetP0s/HbkYEXBUBsq1hnijar8q31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlQGum%2FdJMcahetP0s%2FHbkYEXBUBsq1hnijar8q31%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;1077&quot; height=&quot;103&quot; data-origin-width=&quot;1077&quot; data-origin-height=&quot;103&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;739&quot; data-origin-height=&quot;71&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ciaHhW/dJMcagfvijW/voC4RD0MVuRVoyp4YacSuk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ciaHhW/dJMcagfvijW/voC4RD0MVuRVoyp4YacSuk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ciaHhW/dJMcagfvijW/voC4RD0MVuRVoyp4YacSuk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FciaHhW%2FdJMcagfvijW%2FvoC4RD0MVuRVoyp4YacSuk%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;739&quot; height=&quot;71&quot; data-origin-width=&quot;739&quot; data-origin-height=&quot;71&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DDPM 논문과 다른점: DDPM 논문에서는&amp;nbsp; &lt;span&gt;&amp;alpha;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;t로 표기한 것을 본 논문에서는 분수 꼴로 표기.&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1083&quot; data-origin-height=&quot;58&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AEApR/dJMcag0Oh6N/tCJ0fFWsmRsFTEGRaikC0k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AEApR/dJMcag0Oh6N/tCJ0fFWsmRsFTEGRaikC0k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AEApR/dJMcag0Oh6N/tCJ0fFWsmRsFTEGRaikC0k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAEApR%2FdJMcag0Oh6N%2FtCJ0fFWsmRsFTEGRaikC0k%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;1083&quot; height=&quot;58&quot; data-origin-width=&quot;1083&quot; data-origin-height=&quot;58&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DDIM의 수식: &lt;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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1068&quot; data-origin-height=&quot;118&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sEyDU/dJMcahr169P/SeVVkxIeKki53Bvil0u1CK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sEyDU/dJMcahr169P/SeVVkxIeKki53Bvil0u1CK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sEyDU/dJMcahr169P/SeVVkxIeKki53Bvil0u1CK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsEyDU%2FdJMcahr169P%2FSeVVkxIeKki53Bvil0u1CK%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;1068&quot; height=&quot;118&quot; data-origin-width=&quot;1068&quot; data-origin-height=&quot;118&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;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;non-Markovian 한 부분. 현재 상태뿐만 아니라 초기 이미지에도 의지함.&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;1109&quot; data-origin-height=&quot;228&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ey7tZC/dJMcahlhl2U/gycl4thkbZAblbtUqSgCxk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ey7tZC/dJMcahlhl2U/gycl4thkbZAblbtUqSgCxk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ey7tZC/dJMcahlhl2U/gycl4thkbZAblbtUqSgCxk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fey7tZC%2FdJMcahlhl2U%2Fgycl4thkbZAblbtUqSgCxk%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;1109&quot; height=&quot;228&quot; data-origin-width=&quot;1109&quot; data-origin-height=&quot;228&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;1080&quot; data-origin-height=&quot;93&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dmTN3b/dJMcajwz9f4/FLc4AIA517N1gDbNVOGeKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dmTN3b/dJMcajwz9f4/FLc4AIA517N1gDbNVOGeKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dmTN3b/dJMcajwz9f4/FLc4AIA517N1gDbNVOGeKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdmTN3b%2FdJMcajwz9f4%2FFLc4AIA517N1gDbNVOGeKk%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;1080&quot; height=&quot;93&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;93&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;1097&quot; data-origin-height=&quot;202&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/s87s1/dJMcahlhmax/uK9JxtfFkhCODEvt8L2Cak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/s87s1/dJMcahlhmax/uK9JxtfFkhCODEvt8L2Cak/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/s87s1/dJMcahlhmax/uK9JxtfFkhCODEvt8L2Cak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fs87s1%2FdJMcahlhmax%2FuK9JxtfFkhCODEvt8L2Cak%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;1097&quot; height=&quot;202&quot; data-origin-width=&quot;1097&quot; data-origin-height=&quot;202&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;1110&quot; data-origin-height=&quot;149&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bRHM9s/dJMcaiYBxb2/UkttCy54Qk0aXk4WCpUlfK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bRHM9s/dJMcaiYBxb2/UkttCy54Qk0aXk4WCpUlfK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bRHM9s/dJMcaiYBxb2/UkttCy54Qk0aXk4WCpUlfK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbRHM9s%2FdJMcaiYBxb2%2FUkttCy54Qk0aXk4WCpUlfK%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;1110&quot; height=&quot;149&quot; data-origin-width=&quot;1110&quot; data-origin-height=&quot;149&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;1075&quot; data-origin-height=&quot;265&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/biOpSa/dJMcagzNPKQ/WDVTK4IKwWyW3IdkzYIIpK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/biOpSa/dJMcagzNPKQ/WDVTK4IKwWyW3IdkzYIIpK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/biOpSa/dJMcagzNPKQ/WDVTK4IKwWyW3IdkzYIIpK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbiOpSa%2FdJMcagzNPKQ%2FWDVTK4IKwWyW3IdkzYIIpK%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;1075&quot; height=&quot;265&quot; data-origin-width=&quot;1075&quot; data-origin-height=&quot;265&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;1076&quot; data-origin-height=&quot;169&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/V4y20/dJMcaasSYTI/kekfqSj8h63JxnsPHKXQ0k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/V4y20/dJMcaasSYTI/kekfqSj8h63JxnsPHKXQ0k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/V4y20/dJMcaasSYTI/kekfqSj8h63JxnsPHKXQ0k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FV4y20%2FdJMcaasSYTI%2FkekfqSj8h63JxnsPHKXQ0k%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;1076&quot; height=&quot;169&quot; data-origin-width=&quot;1076&quot; data-origin-height=&quot;169&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. Result&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1092&quot; data-origin-height=&quot;686&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c1SKS5/dJMcaa7wpwH/xrKPjolKWhybMfl0ZmlXy0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c1SKS5/dJMcaa7wpwH/xrKPjolKWhybMfl0ZmlXy0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c1SKS5/dJMcaa7wpwH/xrKPjolKWhybMfl0ZmlXy0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc1SKS5%2FdJMcaa7wpwH%2FxrKPjolKWhybMfl0ZmlXy0%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;1092&quot; height=&quot;686&quot; data-origin-width=&quot;1092&quot; data-origin-height=&quot;686&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;Timestep&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;샘플링에 소요되는 시간은 스탭 수에 비례하여 증가하며 최종 샘플의 품질은 타임스텝 20과 1000이 매우 유사하다. 따라서 타임스탭을 조절할 수 있는 DDIM의 연산 시간을 줄일 수 있는 요소로 작용한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1113&quot; data-origin-height=&quot;1012&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/chRgTn/dJMcabysWTD/RZn6NQIzhZvPovA4eIzOY0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/chRgTn/dJMcabysWTD/RZn6NQIzhZvPovA4eIzOY0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/chRgTn/dJMcabysWTD/RZn6NQIzhZvPovA4eIzOY0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FchRgTn%2FdJMcabysWTD%2FRZn6NQIzhZvPovA4eIzOY0%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;1113&quot; height=&quot;1012&quot; data-origin-width=&quot;1113&quot; data-origin-height=&quot;1012&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;Interpolation&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이 Stochastic하여 이미지들 사이의 interpolation을 구할 수 없었지만 ddim의 경우 두 개 이상의 이미지 사이의 잠재적 이미지를 구할 수 있다. 예를 들어 개와 고양이 이미지 사이의 잠재적 이미지를 구해서 그 줄을 합성한 이미지를 구할 수도 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1101&quot; data-origin-height=&quot;506&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mfFyA/dJMb99UYuWE/p0lqUDXbggYeUKCbviThw1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mfFyA/dJMb99UYuWE/p0lqUDXbggYeUKCbviThw1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mfFyA/dJMb99UYuWE/p0lqUDXbggYeUKCbviThw1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmfFyA%2FdJMb99UYuWE%2Fp0lqUDXbggYeUKCbviThw1%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;1101&quot; height=&quot;506&quot; data-origin-width=&quot;1101&quot; data-origin-height=&quot;506&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;875&quot; data-origin-height=&quot;749&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/J3RIw/dJMcadpvuY2/GuJ0T5HrefFB72K557lXK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/J3RIw/dJMcadpvuY2/GuJ0T5HrefFB72K557lXK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/J3RIw/dJMcadpvuY2/GuJ0T5HrefFB72K557lXK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJ3RIw%2FdJMcadpvuY2%2FGuJ0T5HrefFB72K557lXK0%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;875&quot; height=&quot;749&quot; data-origin-width=&quot;875&quot; data-origin-height=&quot;749&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;1083&quot; data-origin-height=&quot;195&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bM73OD/dJMcagGFSnP/Jm4zX7HIM9RLmKKUBZZfdK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bM73OD/dJMcagGFSnP/Jm4zX7HIM9RLmKKUBZZfdK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bM73OD/dJMcagGFSnP/Jm4zX7HIM9RLmKKUBZZfdK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbM73OD%2FdJMcagGFSnP%2FJm4zX7HIM9RLmKKUBZZfdK%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;1083&quot; height=&quot;195&quot; data-origin-width=&quot;1083&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;4. Conclusion&lt;/p&gt;</description>
      <author>myblog33150</author>
      <guid isPermaLink="true">https://lambdacourse.tistory.com/79</guid>
      <comments>https://lambdacourse.tistory.com/79#entry79comment</comments>
      <pubDate>Sat, 15 Aug 2026 12:47:13 +0900</pubDate>
    </item>
    <item>
      <title>[김윤수] TCN</title>
      <link>https://lambdacourse.tistory.com/77</link>
      <description>&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;&amp;lt;Abstract&amp;gt;&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;대부분의 연구자들은 시간 순서가 있는 데이터 처리를 RNN/LSTM이라고 생각했음 but 최근 연구에서 recurrent network보다 더 좋은 성능을 보인다는 결과 나옴&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;rArr; 새로운 sequence modeling 문제나 데이터셋이 주어졌을때 어떤 architecture을 사용해야하는가?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;TCN이 LSTM같은 대표적인 recurrent network보다 좋은 성능 보이고 TCN이 effective memory도 더 길게 나타남&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;rArr; sequence modeling에서 recurrent network를 당연한 기본 선택으로 생각하는 관점을 다시 생각할 필요가 있고, convolutional network도 고려해볼 수 있다.&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;lt;1. introduction&amp;gt;&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;기존관점: sequence modeling은 주로 RNN 계열, 특히 LSTM/GRU가 기본적인 선택으로 여겨짐&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제제기: 최근 CNN 기반 구조도 sequence task에서 좋은 성능을 보이고 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;논문의 목적: convolution architecture와 recurrent architecture를 다양한 sequence modeling task에서 체계적으로 비교하는것이 목표임&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비교방법: CNN쪽에서는 TCN을 사용하고 recurrent network 쪽에서는 LSTM,GRU등 대표적인 구조와 비교함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;rArr; 다양한 task에서 TCN이 일반적인 recurrent architecture 보다 전반적으로 좋은 성능을 보였고, 실제로 과거 정보를 유지하는 effective memory도 더 길게 나타남&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;TCN이란? Temporal Convolution Network (task에서 사용할 기본 convolution 구조를 정리해서 TCN이라고 부르기로함)&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;lt;기본 개념&amp;gt;&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 alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1581&quot; data-origin-height=&quot;618&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sIZjr/dJMcacEhd2d/FGyGGupr4PC3nUGYwypj4K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sIZjr/dJMcacEhd2d/FGyGGupr4PC3nUGYwypj4K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sIZjr/dJMcacEhd2d/FGyGGupr4PC3nUGYwypj4K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsIZjr%2FdJMcacEhd2d%2FFGyGGupr4PC3nUGYwypj4K%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;684&quot; height=&quot;267&quot; data-origin-width=&quot;1581&quot; data-origin-height=&quot;618&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;RNN : 이전 시점의 정보를 hidden state에 저장해서 다음 시점으로 넘기면서 순서대로 처리함. sequence가 길어지면 오래전 정보를 잘 기억하지 못하고 vanishing/exploding gradient 문제가 생길 수 있음 &amp;rarr; basic RNN은 학습하기 어려워서 LSTM과 GRU 같은 구조를 많이 사용함.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1477&quot; data-origin-height=&quot;680&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0bdeQ/dJMcacYuqks/d3kGplK15mNLDrvukLpQqK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0bdeQ/dJMcacYuqks/d3kGplK15mNLDrvukLpQqK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0bdeQ/dJMcacYuqks/d3kGplK15mNLDrvukLpQqK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0bdeQ%2FdJMcacYuqks%2Fd3kGplK15mNLDrvukLpQqK%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;793&quot; height=&quot;365&quot; data-origin-width=&quot;1477&quot; data-origin-height=&quot;680&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;LSTM (Long Shor-Term Memory): RNN의 장기 기억 문제를 개선한 구조, 중요한 정보를 얼마나 기억하고 버리고 출력할지 gate로 조절&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GRU (Gated Recurrent Unit): GRU는 LSTM의 단순한 구조 모델. LSTM은 Cell State + Hidden State 두 종류의 상태를 유지하고 정보 흐름을 조절하기 위해 forget gate, input gate, output gate 3개를 사용하지만 GRU는 구조를 줄여서 Hidden State 하나만 사용하고 input gate와 forget gate를 합쳐서 update gate를 사용하여 총 2개의 gate 정보 사용함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;TCN ( Temporal Convolutional Network): RNN 계열과 달리 recurrent connection을 사용하지 않고 시간축에 1D convolution을 적용하여 sequence를 처리하는 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;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;lt;2. Background&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;CNN도 사실 sequence에 오래전부터 사용됐음&lt;/li&gt;
&lt;li&gt;기본 RNN은 학습하기 어려워서 sequence를 잘 처리할 수 있는 LSTM, GRU가 일반적으로 사용됨&lt;/li&gt;
&lt;li&gt;여러 연구들이 많이 있었는데 convolution approach와 recurrent approach를 sequence modeling에서 체계적으로 비교한 연구는 충분하지 않았음.&lt;/li&gt;
&lt;/ol&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;&amp;lt;3-1. Sequence Modeling&amp;gt;&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;sequence modeling 정의 : 입력 sequence 전체를 함수 f에 넣어서 출력 sequence를 만든다.&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;Autoregressive prediction: 과거 값을 이용해 다음 값을 예측하는 문제도 이 정의에 포함 가능 &amp;nbsp;(일반적인 sequence-to-sequence 문제에는 이 정의가 그대로 적용되는것이 아니지만 확장해서 사용가능)&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;lt;3-2. Causal Convolution&amp;gt;&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;TCN은 2가지 조건 만족해야함&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;입력과 출력 sequence 길이가 같아야함 &amp;rarr; 1D Fully Convolution Network (FCN)&lt;/li&gt;
&lt;li&gt;미래 정보가 과거로 새면 안됨 &amp;rarr; Causal Convolution&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;467&quot; data-origin-height=&quot;36&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bw4xym/dJMb99N87Nm/Mj2vsVh8YgkdQ6kTTazeZk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bw4xym/dJMb99N87Nm/Mj2vsVh8YgkdQ6kTTazeZk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bw4xym/dJMb99N87Nm/Mj2vsVh8YgkdQ6kTTazeZk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbw4xym%2FdJMb99N87Nm%2FMj2vsVh8YgkdQ6kTTazeZk%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;467&quot; height=&quot;36&quot; data-origin-width=&quot;467&quot; data-origin-height=&quot;36&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;Causal Convolution이란? : 일반 convolution이라면 현재 위치 주변을 볼 수 있음 &amp;rarr; 현재랑 과거만 사용하도록&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2201&quot; data-origin-height=&quot;851&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/P8Xh0/dJMcag0OaIE/nuQtp7r0CS9eRPcT8qKWnk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/P8Xh0/dJMcag0OaIE/nuQtp7r0CS9eRPcT8qKWnk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/P8Xh0/dJMcag0OaIE/nuQtp7r0CS9eRPcT8qKWnk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FP8Xh0%2FdJMcag0OaIE%2FnuQtp7r0CS9eRPcT8qKWnk%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;470&quot; height=&quot;182&quot; data-origin-width=&quot;2201&quot; data-origin-height=&quot;851&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제!! : effective history가 network depth에 대해 linear하게 증가함 (엄청 먼 과거까지 보고 싶으면 network를 엄청 깊게 만들거나 kernel을 엄청 크게 만들어야함)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;rArr; Dilated Convolution 등장&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; &amp;lt;3.3 Dilated Convolutions&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2250&quot; data-origin-height=&quot;550&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WeotT/dJMcadJMeri/bYKNKYPrEkEetGs0r53370/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WeotT/dJMcadJMeri/bYKNKYPrEkEetGs0r53370/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WeotT/dJMcadJMeri/bYKNKYPrEkEetGs0r53370/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWeotT%2FdJMcadJMeri%2FbYKNKYPrEkEetGs0r53370%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;729&quot; height=&quot;178&quot; data-origin-width=&quot;2250&quot; data-origin-height=&quot;550&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;깊이가 조금만 증가해도 먼 과거까지 receptive field가 넓어짐&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;678&quot; data-origin-height=&quot;400&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cgNGqK/dJMcaaNaNgA/K5q1zD3iVNRIAee7DsEM4k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cgNGqK/dJMcaaNaNgA/K5q1zD3iVNRIAee7DsEM4k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cgNGqK/dJMcaaNaNgA/K5q1zD3iVNRIAee7DsEM4k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcgNGqK%2FdJMcaaNaNgA%2FK5q1zD3iVNRIAee7DsEM4k%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;678&quot; height=&quot;400&quot; data-origin-width=&quot;678&quot; data-origin-height=&quot;400&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;2187&quot; data-origin-height=&quot;851&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dayz7e/dJMcahSWj34/8HffDqFIlE3vTXklxYDq8k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dayz7e/dJMcahSWj34/8HffDqFIlE3vTXklxYDq8k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dayz7e/dJMcahSWj34/8HffDqFIlE3vTXklxYDq8k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdayz7e%2FdJMcahSWj34%2F8HffDqFIlE3vTXklxYDq8k%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;2187&quot; height=&quot;851&quot; data-origin-width=&quot;2187&quot; data-origin-height=&quot;851&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Receptive Field : 현재 출력을 하나 계산할 때 영향을 줄 수 있는 입력의 범위&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왜 dilation을 1,2,4처럼 늘리나? : 지수적으로 증가시켜서 network가 조금만 깊어져도 먼 과거까지 빠르게 볼 수 있도록&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;lt;3.4 Residual Connections&amp;gt;&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;TCN이 긴 과거까지 보기 위해 network를 깊게 쌓을 수 있는데 너무 깊어지면 학습이 불안정해질 수 있음 &amp;rarr; Residual Connection을 넣음&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;883&quot; data-origin-height=&quot;282&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b7DSZe/dJMcag0OaII/dsMcxRYLY9Myk40DSz8x01/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b7DSZe/dJMcag0OaII/dsMcxRYLY9Myk40DSz8x01/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b7DSZe/dJMcag0OaII/dsMcxRYLY9Myk40DSz8x01/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb7DSZe%2FdJMcag0OaII%2FdsMcxRYLY9Myk40DSz8x01%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;741&quot; height=&quot;237&quot; data-origin-width=&quot;883&quot; data-origin-height=&quot;282&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;566&quot; data-origin-height=&quot;449&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bxb99T/dJMcadpvlGF/MuXDMZvx7kwtH0ych0xK20/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bxb99T/dJMcadpvlGF/MuXDMZvx7kwtH0ych0xK20/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bxb99T/dJMcadpvlGF/MuXDMZvx7kwtH0ych0xK20/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbxb99T%2FdJMcadpvlGF%2FMuXDMZvx7kwtH0ych0xK20%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;566&quot; height=&quot;449&quot; data-origin-width=&quot;566&quot; data-origin-height=&quot;449&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Activation function : 활성화 함수 - 신경망의 계산 결과에 비선형성을 추가하는 함수&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;391&quot; data-origin-height=&quot;64&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cP4Awo/dJMcahMelPc/SYfoTmP9ZKveeU8p6T26KK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cP4Awo/dJMcahMelPc/SYfoTmP9ZKveeU8p6T26KK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cP4Awo/dJMcahMelPc/SYfoTmP9ZKveeU8p6T26KK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcP4Awo%2FdJMcahMelPc%2FSYfoTmP9ZKveeU8p6T26KK%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;391&quot; height=&quot;64&quot; data-origin-width=&quot;391&quot; data-origin-height=&quot;64&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;ReLU 사용함 - x=3이면 3, x=-2이면 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;&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;&lt;b&gt;&amp;lt;3.5 Discussion&amp;gt;&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;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;parallelism 가능 : RNN은 앞 시점 계산이 끝나야 다음 계산이 가능하지만 TCN은 동시에 계산할 수 있다.&lt;/li&gt;
&lt;li&gt;Flexible Receptive Field : layer를 더 쌓거나 dilation factor d를 키우거나 kernel size를 키우는 방식으로 가능, memory 범위를 설계할 수 있다는 장점&lt;/li&gt;
&lt;li&gt;Stable Gradients : RNN은 시간 방향으로 계속 연결되어 있어서 gradient가 점점 0에 가까워지거나 gradient가 너무 커질 수 있는 문제가 발생할 수 있는데 TCN은 convolution layer 방향으로 이루어져서 이런 문제를 덜 겪음 (temporal recurrent path가 없어서)&lt;/li&gt;
&lt;li&gt;학습할때 메모리 사용량이 적다&lt;/li&gt;
&lt;li&gt;길이가 달라도 처리 가능 : 1D convolution kernel을 sequence 위에서 sliding하면 되기 때문에 임의 길이의 입력 sequence를 처리할 수 있다&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단점&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;추론할 때 과거 데이터를 저장해야한다 :&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock floatLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;202&quot; data-origin-height=&quot;64&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bXVBO9/dJMcaaflwyT/llvN880chzZbKVYoyYKKN1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bXVBO9/dJMcaaflwyT/llvN880chzZbKVYoyYKKN1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bXVBO9/dJMcaaflwyT/llvN880chzZbKVYoyYKKN1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbXVBO9%2FdJMcaaflwyT%2FllvN880chzZbKVYoyYKKN1%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;202&quot; height=&quot;64&quot; data-origin-width=&quot;202&quot; data-origin-height=&quot;64&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;RNN은 h_t-1에 과거 정보가 요약되어 있어서 raw input을 전부 들고 있을 필요가 없지만 TCN은 convolution 할 때 receptive field 안에 있는 실제 과거 입력들을 다시 참조해야한다. 따라서 inference시에 effective history 길이만큼의 데이터를 저장해야할수도 있어서 training에서는 TCN이 메모리 효율적일 수 있지만, evaluation/inference에서는 TCN이 오히려 더 많은 history storage를 요구할 수도 있음.&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. 도메인을 바꾸면 receptive field가 부족할 수 있다 : RNN은 이론적으로 hidden state를 계속 전달하지만 TCN은 receptive field가 구조적으로 정해져있다.&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;lt;4. Sequence Modeling Tasks&amp;gt;&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;TCN과 RNN 계열을 어떤 문제들로 비교했는가?&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;Adding Problem : 긴 sequence 에서 중요한 두 값을 기억해서 더할 수 있는지 보는 문제&lt;/li&gt;
&lt;li&gt;sequential MNIST : MNIST 숫자 이미지인데 784개의 픽셀을 하나의 긴 sequence로 만들어서 순서대로 입력&lt;/li&gt;
&lt;li&gt;P-MNIST : 784개 픽셀 순서를 랜덤하게 섞어버림&lt;/li&gt;
&lt;li&gt;Copy Memory : 랜덤한 숫자 10개가 나온 다음 긴 구간 0만 계속 나오고 마지막 근처에서 특별한 delimiter인 9가 나온 다음 맨 처음 숫자 출력하도록 함&lt;/li&gt;
&lt;li&gt;음악데이터 : JSB Chorales - 4성부 합창곡 382곡으로 구성된 dataset, 88-bit binary vector로 표현, Nottingham - 1200곡을 이용한 dataset이고 NLL로 평가함&lt;/li&gt;
&lt;li&gt;언어 모델링 : PTB - character-level과 word-level&lt;/li&gt;
&lt;/ol&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; &amp;lt;5. Experiments&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1463&quot; data-origin-height=&quot;760&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bMhEsN/dJMcaa0EUP3/b6ySwKSWcmuyd3oxWyXFE0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bMhEsN/dJMcaa0EUP3/b6ySwKSWcmuyd3oxWyXFE0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bMhEsN/dJMcaa0EUP3/b6ySwKSWcmuyd3oxWyXFE0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMhEsN%2FdJMcaa0EUP3%2Fb6ySwKSWcmuyd3oxWyXFE0%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;1463&quot; height=&quot;760&quot; data-origin-width=&quot;1463&quot; data-origin-height=&quot;760&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MNIST 에서 TCN이 recurrent 모델보다 높은 정확도 보임&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;copy memory에서 큰 차이남 TCN은 거의 0에 가까운 loss로 학습함 -&amp;gt; 장기 기억 문제에서 큰 성능 차이&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Word-level LAMBADA -&amp;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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;lt;6. Conclusion&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;TCN이 다양한 sequence modeling task에서 더 좋은 성능 보임&lt;/li&gt;
&lt;li&gt;같은 정도의 모델 capacity에서 TCN이 LSTM/GRU보다 더 긴 effective memory 보임&lt;/li&gt;
&lt;li&gt;sequence modeling이면 일단 RNN/LSTM부터 생각하는 관점을 다시 생각해야&lt;/li&gt;
&lt;/ol&gt;</description>
      <author>mynote00005</author>
      <guid isPermaLink="true">https://lambdacourse.tistory.com/77</guid>
      <comments>https://lambdacourse.tistory.com/77#entry77comment</comments>
      <pubDate>Sat, 15 Aug 2026 05:01:31 +0900</pubDate>
    </item>
    <item>
      <title>[한서연] WRN</title>
      <link>https://lambdacourse.tistory.com/76</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;제목: Wide Residual Networks&lt;br /&gt;저자: Sergey Zagoruyko, Nikos Komodakis&lt;br /&gt;소속: Universit&amp;eacute; Paris-Est, &amp;Eacute;cole des Ponts ParisTech&lt;br /&gt;학회지: BMVC 2016&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;0. Abstract&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Deep residual network는 수천 층까지 확장 가능하고 층을 늘릴수록 성능이 계속 좋아진다고 알려져 있었다. 하지만 정확도를 조금 올리기 위해 층수를 거의 두 배로 늘려야 하는 비효율이 있었고, 이는 diminishing feature reuse 문제와 맞물려 학습 속도를 크게 떨어뜨렸다. 본 논문은 ResNet block의 구조에 대한 상세한 실험적 연구를 수행하고, 이를 바탕으로 깊이를 줄이고 너비를 늘리는 새로운 아키텍처인 Wide Residual Network(WRN)를 제안한다. 16층에 불과한 WRN이 1000층짜리 deep ResNet을 정확도와 학습 효율 모두에서 능가함을 보이며, CIFAR, SVHN, COCO에서 state-of-the-art를 달성하고 ImageNet에서도 유의미한 개선을 나타냄을 보인다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. Introduction&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AlexNet &amp;rarr; VGG &amp;rarr; Inception &amp;rarr; ResNet으로 이어지는 CNN 발전 흐름 속에서, ResNet은 2015년 ImageNet/COCO 대회에서 큰 성공을 거두며 residual connection(identity mapping)을 도입해 매우 깊은 네트워크의 학습을 가능하게 했다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;358&quot; data-origin-height=&quot;86&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbZ74G/dJMcags1yu8/a7sQ8hsD6zXJCS2HOhzxL1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbZ74G/dJMcags1yu8/a7sQ8hsD6zXJCS2HOhzxL1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbZ74G/dJMcags1yu8/a7sQ8hsD6zXJCS2HOhzxL1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbZ74G%2FdJMcags1yu8%2Fa7sQ8hsD6zXJCS2HOhzxL1%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;358&quot; height=&quot;86&quot; data-origin-width=&quot;358&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;저자들은 이 identity mapping 구조가 깊은 네트워크 학습을 가능하게 한 동시에 약점이기도 하다고 지적한다. Gradient가 굳이 residual function F를 거치지 않고 identity 경로로 흘러갈 수 있어서, 많은 block이 실제로는 학습에 거의 기여하지 못하는 상태가 될 수 있다는 것이다. 이 문제를 다룬 선행 연구인 stochastic depth가 효과적이었다는 사실이, 이 가설을 뒷받침하는 근거로 제시된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런 배경에서 저자들은 residual network의 힘은 block 자체에 있고, 깊이는 부차적이라는 방향을 제안한다. 기존 최고 성능 모델 대비 50배 적은 층수로, 2배 이상 빠르게 학습되는 wide 네트워크를 제시하며, 16층 WRN이 1000층 thin ResNet과 동등한 정확도를 훨씬 빠르게 달성함을 보인다.&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;논문의 4가지 기여&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ResNet block 구조에 대한 상세한 실험적 연구&lt;/li&gt;
&lt;li&gt;성능을 크게 개선하는 새로운 widened block 아키텍처 제안&lt;/li&gt;
&lt;li&gt;Residual network 내 dropout을 올바르게 활용하는 새로운 방법 제안&lt;/li&gt;
&lt;li&gt;CIFAR-10/100, SVHN, COCO에서 SOTA, ImageNet에서도 유의미한 개선 달성&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. Wide Residual Networks&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2.1 기본 구조&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존 ResNet의 두 block 타입:&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;basic&lt;/b&gt;: conv3&amp;times;3 &amp;rarr; conv3&amp;times;3&lt;/li&gt;
&lt;li&gt;&lt;b&gt;bottleneck&lt;/b&gt;: conv1&amp;times;1 &amp;rarr; conv3&amp;times;3 &amp;rarr; conv1&amp;times;1 (채널을 줄였다가 다시 늘려 계산량을 줄이는 구조)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1224&quot; data-origin-height=&quot;440&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/plvQz/dJMcabZDHhq/30xmGi0umTsZ9z9OqYmOr0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/plvQz/dJMcabZDHhq/30xmGi0umTsZ9z9OqYmOr0/img.png&quot; data-alt=&quot;네 가지 block 구조 비교&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/plvQz/dJMcabZDHhq/30xmGi0umTsZ9z9OqYmOr0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FplvQz%2FdJMcabZDHhq%2F30xmGi0umTsZ9z9OqYmOr0%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;1224&quot; height=&quot;440&quot; data-origin-width=&quot;1224&quot; data-origin-height=&quot;440&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;네 가지 block 구조 비교&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;본 논문은 원본 ResNet의 conv-BN-ReLU 순서 대신, 후속 연구에서 더 나은 성능을 보인 pre-activation 순서(BN-ReLU-conv)를 기본으로 채택한다. 또한 너비 연구가 목적이므로, 채널 수를 일부러 좁혔다 넓히는 bottleneck은 배제하고 basic block에 집중한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Block의 표현력을 늘리는 세 가지 방법으로 ① block당 conv layer 수 증가(deepening factor &lt;b&gt;l&lt;/b&gt;), ② conv layer의 채널 수 증가(widening factor &lt;b&gt;k&lt;/b&gt;), ③ 필터 크기 증가를 제시하는데, 작은 필터(3&amp;times;3)의 효과가 이미 입증되어 있으므로 필터 크기는 3&amp;times;3으로 고정하고 l, k 두 변수만 조절한다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2.2 전체 네트워크 구조&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;796&quot; data-origin-height=&quot;454&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bVTfUr/dJMcafAT9xn/eLG9gaM14brNvnXqSwbqh0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bVTfUr/dJMcafAT9xn/eLG9gaM14brNvnXqSwbqh0/img.png&quot; data-alt=&quot;conv1~conv4 그룹 구조표&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bVTfUr/dJMcafAT9xn/eLG9gaM14brNvnXqSwbqh0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbVTfUr%2FdJMcafAT9xn%2FeLG9gaM14brNvnXqSwbqh0%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;796&quot; height=&quot;454&quot; data-origin-width=&quot;796&quot; data-origin-height=&quot;454&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;conv1~conv4 그룹 구조표&lt;/figcaption&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;네트워크는 초기 conv1 뒤에 conv2, conv3, conv4라는 3개의 block 그룹(각 N개의 block)이 이어지고, 마지막에 average pooling과 분류 layer가 붙는 구조다. Widening factor k가 conv2~4의 채널 수(16k, 32k, 64k)를 조절하며, k=1이면 원본 ResNet과 동일하다. 표기법 &lt;b&gt;WRN-n-k&lt;/b&gt;는 전체 conv layer 수 n, 너비 배율 k를 의미한다 (예: WRN-40-2는 40층, 폭 2배).&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2.3 Dropout in residual blocks&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파라미터가 늘어난 wide network의 과적합을 방지하기 위해, 저자들은 dropout을 block 내부, conv 사이에 삽입하는 방식을 제안한다. 선행 연구에서 identity 경로에 dropout을 넣었을 때는 오히려 부정적 효과가 있었는데, conv 사이에 넣으면 이런 부작용 없이 일관된 성능 향상을 얻는다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3. Experimental results&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3.1 블록 내부 conv 종류 비교&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;852&quot; data-origin-height=&quot;322&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfrYlI/dJMcagzMA3g/0dnZDIJXC2EeqFOU22g6z1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfrYlI/dJMcagzMA3g/0dnZDIJXC2EeqFOU22g6z1/img.png&quot; data-alt=&quot;block type별 비교 결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfrYlI/dJMcagzMA3g/0dnZDIJXC2EeqFOU22g6z1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbfrYlI%2FdJMcagzMA3g%2F0dnZDIJXC2EeqFOU22g6z1%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;852&quot; height=&quot;322&quot; data-origin-width=&quot;852&quot; data-origin-height=&quot;322&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;block type별 비교 결과&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파라미터 수가 비슷하면 block 종류(B(3,3), B(3,1), B(1,3) 등) 간 성능 차이는 크지 않았으며, 기본 B(3,3)이 근소하게 가장 우수했다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3.2 Block당 conv 개수(l) 비교&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;286&quot; data-origin-height=&quot;234&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/byL1b2/dJMcacRCQjy/1yGo5Sm0QkiBB9kq86Uzv1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/byL1b2/dJMcacRCQjy/1yGo5Sm0QkiBB9kq86Uzv1/img.png&quot; data-alt=&quot;l에 따른 CIFAR-10 오류율&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/byL1b2/dJMcacRCQjy/1yGo5Sm0QkiBB9kq86Uzv1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbyL1b2%2FdJMcacRCQjy%2F1yGo5Sm0QkiBB9kq86Uzv1%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;286&quot; height=&quot;234&quot; data-origin-width=&quot;286&quot; data-origin-height=&quot;234&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;l에 따른 CIFAR-10 오류율&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;l=2가 최적으로 나타났다. l이 3, 4로 커질수록 오히려 성능이 나빠지는데, block당 residual connection이 상대적으로 줄어들어 최적화가 어려워지기 때문으로 저자들은 추정한다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3.3 너비(k) 비교 &amp;mdash; 핵심 실험&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;812&quot; data-origin-height=&quot;490&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cdPTCi/dJMcahSVfL6/wP90PafUdpQBACqTcycpk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cdPTCi/dJMcahSVfL6/wP90PafUdpQBACqTcycpk1/img.png&quot; data-alt=&quot;depth/k에 따른 CIFAR-10, CIFAR-100 결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cdPTCi/dJMcahSVfL6/wP90PafUdpQBACqTcycpk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcdPTCi%2FdJMcahSVfL6%2FwP90PafUdpQBACqTcycpk1%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;812&quot; height=&quot;490&quot; data-origin-width=&quot;812&quot; data-origin-height=&quot;490&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;depth/k에 따른 CIFAR-10, CIFAR-100 결과&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대체로 너비를 늘릴수록 성능이 개선되지만, depth 22&amp;middot;28에서는 k를 특정 지점 이상으로 늘렸을 때 CIFAR-10 오류율이 오히려 소폭 상승하는 예외도 관찰된다. 이는 파라미터가 지나치게 커지면 추가적인 정규화 없이는 오히려 과적합 경향이 나타날 수 있음을 시사한다.&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;1086&quot; data-origin-height=&quot;718&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgvPAZ/dJMcabyrGqZ/SD7GUO1nsKk0T0eid2bXP1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgvPAZ/dJMcabyrGqZ/SD7GUO1nsKk0T0eid2bXP1/img.png&quot; data-alt=&quot;Thin vs Wide 직접 비교 (ResNet-1001 vs WRN)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgvPAZ/dJMcabyrGqZ/SD7GUO1nsKk0T0eid2bXP1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgvPAZ%2FdJMcabyrGqZ%2FSD7GUO1nsKk0T0eid2bXP1%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;1086&quot; height=&quot;718&quot; data-origin-width=&quot;1086&quot; data-origin-height=&quot;718&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Thin vs Wide 직접 비교 (ResNet-1001 vs WRN)&lt;/figcaption&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;WRN-40-4(8.9M 파라미터, 40층)는 ResNet-1001(10.2M 파라미터, 1001층)과 비슷한 파라미터 수임에도 두 데이터셋 모두 더 나은 정확도를 낸다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;P &amp;prop; l &amp;middot; d &amp;middot; k&amp;sup2;&lt;/h4&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;l, d(block 개수)에는 파라미터 수가 선형으로 비례하지만, k(너비)는 입력&amp;middot;출력 채널 두 곳에 동시에 곱해지기 때문에 제곱(k&amp;sup2;)으로 비례한다.&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3.4 Dropout 효과&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;940&quot; data-origin-height=&quot;324&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c67QIs/dJMcafnqJCk/TILchuNUZpakyiD97DW2o0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c67QIs/dJMcafnqJCk/TILchuNUZpakyiD97DW2o0/img.png&quot; data-alt=&quot;dropout 유무 비교&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c67QIs/dJMcafnqJCk/TILchuNUZpakyiD97DW2o0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc67QIs%2FdJMcafnqJCk%2FTILchuNUZpakyiD97DW2o0%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;940&quot; height=&quot;324&quot; data-origin-width=&quot;940&quot; data-origin-height=&quot;324&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;dropout 유무 비교&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1260&quot; data-origin-height=&quot;398&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ha7UP/dJMcajwyP4n/kghNXYaXn9GppDoCdM7841/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ha7UP/dJMcajwyP4n/kghNXYaXn9GppDoCdM7841/img.png&quot; data-alt=&quot;thin/wide 네트워크 training curve, CIFAR-10/100&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ha7UP/dJMcajwyP4n/kghNXYaXn9GppDoCdM7841/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHa7UP%2FdJMcajwyP4n%2FkghNXYaXn9GppDoCdM7841%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;1260&quot; height=&quot;398&quot; data-origin-width=&quot;1260&quot; data-origin-height=&quot;398&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;thin/wide 네트워크 training curve, CIFAR-10/100&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1266&quot; data-origin-height=&quot;400&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3PESK/dJMcacRCQo4/YBbnCTklLCwYyVldLb6mS0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3PESK/dJMcacRCQo4/YBbnCTklLCwYyVldLb6mS0/img.png&quot; data-alt=&quot;SVHN training curve, dropout 효과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3PESK/dJMcacRCQo4/YBbnCTklLCwYyVldLb6mS0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3PESK%2FdJMcacRCQo4%2FYBbnCTklLCwYyVldLb6mS0%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;1266&quot; height=&quot;400&quot; data-origin-width=&quot;1266&quot; data-origin-height=&quot;400&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SVHN training curve, dropout 효과&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;WRN-28-10 기준 dropout이 CIFAR-10/100 오류율을 각각 0.11%p, 0.4%p 낮췄고, data augmentation을 전혀 쓰지 않는 SVHN에서는 효과가 더 뚜렷했다(1.85% &amp;rarr; 1.64%).&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3.5 ImageNet / COCO 및 연산 효율성&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1132&quot; data-origin-height=&quot;218&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brsLYA/dJMcahyIOba/8d6rBSVsvNDWj97JFO0UrK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brsLYA/dJMcahyIOba/8d6rBSVsvNDWj97JFO0UrK/img.png&quot; data-alt=&quot;ImageNet 결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brsLYA/dJMcahyIOba/8d6rBSVsvNDWj97JFO0UrK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbrsLYA%2FdJMcahyIOba%2F8d6rBSVsvNDWj97JFO0UrK%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;1132&quot; height=&quot;218&quot; data-origin-width=&quot;1132&quot; data-origin-height=&quot;218&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;ImageNet 결과&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1134&quot; data-origin-height=&quot;254&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PSqSk/dJMcai5m0mG/jMNDJLkLbVxGYiDTrw0fz0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PSqSk/dJMcai5m0mG/jMNDJLkLbVxGYiDTrw0fz0/img.png&quot; data-alt=&quot;ImageNet 결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PSqSk/dJMcai5m0mG/jMNDJLkLbVxGYiDTrw0fz0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPSqSk%2FdJMcai5m0mG%2FjMNDJLkLbVxGYiDTrw0fz0%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;1134&quot; height=&quot;254&quot; data-origin-width=&quot;1134&quot; data-origin-height=&quot;254&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;ImageNet 결과&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;396&quot; data-origin-height=&quot;446&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GVy77/dJMcafAT9N8/gfCoiUlXsGPpnZpPzOrqDK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GVy77/dJMcafAT9N8/gfCoiUlXsGPpnZpPzOrqDK/img.png&quot; data-alt=&quot;thin vs wide 연산 시간 비교 막대그래프&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GVy77/dJMcafAT9N8/gfCoiUlXsGPpnZpPzOrqDK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGVy77%2FdJMcafAT9N8%2FgfCoiUlXsGPpnZpPzOrqDK%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;396&quot; height=&quot;446&quot; data-origin-width=&quot;396&quot; data-origin-height=&quot;446&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;thin vs wide 연산 시간 비교 막대그래프&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;WRN-50-2-bottleneck은 ResNet-152보다 3배 적은 층수로 더 나은 성능을 냈다. 연산 효율 측면에서, WRN-28-10은 thin ResNet-1001보다 1.6배, 정확도가 비슷한 WRN-40-4는 8배 빠르다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4. Conclusion&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;매우 높은 깊이 자체가 정규화 효과를 주지는 않으며, 같은 파라미터 수라면 넓은 네트워크가 얇은 네트워크만큼 혹은 더 잘 학습할 수 있다.&lt;/li&gt;
&lt;li&gt;결국 residual network의 핵심 힘은 block 자체에 있고, 극단적인 깊이는 필수가 아니다.&lt;/li&gt;
&lt;/ul&gt;</description>
      <author>sianaci</author>
      <guid isPermaLink="true">https://lambdacourse.tistory.com/76</guid>
      <comments>https://lambdacourse.tistory.com/76#entry76comment</comments>
      <pubDate>Thu, 13 Aug 2026 21:08:10 +0900</pubDate>
    </item>
    <item>
      <title>[권도현] YOLOv5, YOLOv9, YOLOv11</title>
      <link>https://lambdacourse.tistory.com/75</link>
      <description>&lt;table style=&quot;border-collapse: collapse; width: 101.163%; height: 78px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;height: 18px; width: 10.4651%;&quot;&gt;&lt;b&gt;모델&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 18px; width: 20.6977%;&quot;&gt;논문&lt;/td&gt;
&lt;td style=&quot;height: 18px; width: 22.6744%;&quot;&gt;제3자 분석 논문&lt;/td&gt;
&lt;td style=&quot;width: 22.8489%; height: 18px;&quot;&gt;핵심 의미&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;height: 20px; width: 10.4651%;&quot;&gt;&lt;b&gt;YOLOv5&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 20px; width: 20.6977%;&quot;&gt;❌ 없음&lt;/td&gt;
&lt;td style=&quot;height: 20px; width: 22.6744%;&quot;&gt;✅ 있음&lt;/td&gt;
&lt;td style=&quot;width: 22.8489%; height: 20px;&quot;&gt;PyTorch 기반의 사용하기 쉬운 실용 YOLO 생태계를 널리 확산&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;height: 20px; width: 10.4651%;&quot;&gt;&lt;b&gt;YOLOv9&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 20px; width: 20.6977%;&quot;&gt;✅ 있음, ECCV 2024&lt;/td&gt;
&lt;td style=&quot;height: 20px; width: 22.6744%;&quot;&gt;✅ 추가 분석 논문도 있음&lt;/td&gt;
&lt;td style=&quot;width: 22.8489%; height: 20px;&quot;&gt;PGI와 GELAN을 통해 학습 중 정보 손실과 gradient 문제를 연구&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;height: 20px; width: 10.4651%;&quot;&gt;&lt;b&gt;YOLO11&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 20px; width: 20.6977%;&quot;&gt;❌ 없음&lt;/td&gt;
&lt;td style=&quot;height: 20px; width: 22.6744%;&quot;&gt;✅ 있음&lt;/td&gt;
&lt;td style=&quot;width: 22.8489%; height: 20px;&quot;&gt;C3k2, C2PSA, 가벼운 head로 YOLOv8의 정확도&amp;middot;효율&amp;middot;배포성을 개선&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;YOLOv5&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;YOLOv5는 backbone에서 다중 해상도 특징을 추출하고, FPN&amp;ndash;PAN neck에서 이를 융합한 뒤, anchor-based head에서 객체 위치와 클래스를 동시에 예측하는 one-stage detector&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://arxiv.org/pdf/2407.20892&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://arxiv.org/pdf/2407.20892&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/ultralytics/yolov5&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/ultralytics/yolov5&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1785513316770&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - ultralytics/yolov5: Ultralytics YOLOv5 in PyTorch for object detection, instance segmentation, classification, training&quot; data-og-description=&quot;Ultralytics YOLOv5 in PyTorch for object detection, instance segmentation, classification, training, and export. - ultralytics/yolov5&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/ultralytics/yolov5&quot; data-og-url=&quot;https://github.com/ultralytics/yolov5&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bUh5fV/dJMb8SXMt3W/wPA1hI57cNWjZsBmDOntkK/img.jpg?width=4381&amp;amp;height=2905&amp;amp;face=0_0_4381_2905,https://scrap.kakaocdn.net/dn/bBegJ3/dJMb8XSktbt/EmWv1Sc1jOVxkw6jMtAzY0/img.jpg?width=4381&amp;amp;height=2905&amp;amp;face=0_0_4381_2905,https://scrap.kakaocdn.net/dn/cb3yOq/dJMb8WMEdAF/KF0R199aE7z8Soyeu59B1K/img.png?width=1920&amp;amp;height=540&amp;amp;face=0_0_1920_540&quot;&gt;&lt;a href=&quot;https://github.com/ultralytics/yolov5&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/ultralytics/yolov5&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bUh5fV/dJMb8SXMt3W/wPA1hI57cNWjZsBmDOntkK/img.jpg?width=4381&amp;amp;height=2905&amp;amp;face=0_0_4381_2905,https://scrap.kakaocdn.net/dn/bBegJ3/dJMb8XSktbt/EmWv1Sc1jOVxkw6jMtAzY0/img.jpg?width=4381&amp;amp;height=2905&amp;amp;face=0_0_4381_2905,https://scrap.kakaocdn.net/dn/cb3yOq/dJMb8WMEdAF/KF0R199aE7z8Soyeu59B1K/img.png?width=1920&amp;amp;height=540&amp;amp;face=0_0_1920_540');&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;GitHub - ultralytics/yolov5: Ultralytics YOLOv5 in PyTorch for object detection, instance segmentation, classification, training&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Ultralytics YOLOv5 in PyTorch for object detection, instance segmentation, classification, training, and export. - ultralytics/yolov5&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.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;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Backbone&amp;ndash;Neck&amp;ndash;Head&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-01 오전 6.03.36.png&quot; data-origin-width=&quot;798&quot; data-origin-height=&quot;1230&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bAyooB/dJMcafguKmX/Elbja0KgDLkuiMKiSbSKv1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bAyooB/dJMcafguKmX/Elbja0KgDLkuiMKiSbSKv1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bAyooB/dJMcafguKmX/Elbja0KgDLkuiMKiSbSKv1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbAyooB%2FdJMcafguKmX%2FElbja0KgDLkuiMKiSbSKv1%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;424&quot; height=&quot;654&quot; data-filename=&quot;스크린샷 2026-08-01 오전 6.03.36.png&quot; data-origin-width=&quot;798&quot; data-origin-height=&quot;1230&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;YAML 문법 참고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[from, number, module, args]&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[-1, 6, C3, [256]]&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 data-end=&quot;1946&quot; data-start=&quot;1915&quot;&gt;-1: 바로 이전 layer 출력을 입력으로 사용&lt;/li&gt;
&lt;li data-end=&quot;1962&quot; data-start=&quot;1947&quot;&gt;6: 기준 반복 횟수&lt;/li&gt;
&lt;li data-end=&quot;1981&quot; data-start=&quot;1963&quot;&gt;C3: 사용할 module&lt;/li&gt;
&lt;li data-end=&quot;2004&quot; data-start=&quot;1982&quot;&gt;256: 기준 출력 channel.&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* YOLOv5s의 width_multiple 의 설정 = 0.5, 각 layer의 feature map을 몇 채널로 만들지를 조절&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Backbone&lt;/b&gt; : &lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;입력 이미지를 탐지에 사용할 여러 단계의 feature map으로 바꾸는 부분&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-01 오전 7.22.21.png&quot; data-origin-width=&quot;262&quot; data-origin-height=&quot;238&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FU5Kf/dJMb998lyzY/vHImQpKXhPKGk85TpjLtAK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FU5Kf/dJMb998lyzY/vHImQpKXhPKGk85TpjLtAK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FU5Kf/dJMb998lyzY/vHImQpKXhPKGk85TpjLtAK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFU5Kf%2FdJMb998lyzY%2FvHImQpKXhPKGk85TpjLtAK%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;178&quot; height=&quot;162&quot; data-filename=&quot;스크린샷 2026-08-01 오전 7.22.21.png&quot; data-origin-width=&quot;262&quot; data-origin-height=&quot;238&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Stride-2 Conv : 공간 해상도 줄이고 채널 수 늘림&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- C3: 공간 해상도 유지하고 특징 학습만 진행&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, 1, Conv, [64, 6, 2, 2]]&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해석 : 직전 입력을 받는다. Conv 모듈을 사용한다. 기준 출력 채널은 64다. Kernel은 6&amp;times;6이다. Stride는 2다. Padding은 2다. YOLOv5s width scaling 후 실제 출력은 32채널이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;[-1, 6, C3, [256]]&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;해석 : 직전 layer 출력을 받는다. C3를 사용한다. 기준 Bottleneck 반복은 6회다. depth 0.33 적용 후 실제 반복은 2회다. 기준 출력 채널은 256이다. width 0.5 적용 후 실제 출력은 128채널이다.&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;단계&lt;/td&gt;
&lt;td&gt;연산&amp;nbsp;&lt;/td&gt;
&lt;td&gt;stride&lt;/td&gt;
&lt;td&gt;실제 출력&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Input&lt;/td&gt;
&lt;td&gt;입력&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;([B,3,640,640])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Layer 0&lt;/td&gt;
&lt;td&gt;Conv, s=2&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;([B,32,320,320])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Layer 1&lt;/td&gt;
&lt;td&gt;Conv, s=2&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;([B,64,160,160])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Layer 2&lt;/td&gt;
&lt;td&gt;C3&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;([B,64,160,160])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Layer 3&lt;/td&gt;
&lt;td&gt;Conv, s=2&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;([B,128,80,80])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Layer 4&lt;/td&gt;
&lt;td&gt;C3&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;&lt;b&gt;P3: ([B,128,80,80])&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Layer 5&lt;/td&gt;
&lt;td&gt;Conv, s=2&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;([B,256,40,40])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Layer 6&lt;/td&gt;
&lt;td&gt;C3&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;&lt;b&gt;P4: ([B,256,40,40])&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Layer 7&lt;/td&gt;
&lt;td&gt;Conv, s=2&lt;/td&gt;
&lt;td&gt;32&lt;/td&gt;
&lt;td&gt;([B,512,20,20])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Layer 8&lt;/td&gt;
&lt;td&gt;C3&lt;/td&gt;
&lt;td&gt;32&lt;/td&gt;
&lt;td&gt;([B,512,20,20])&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Layer 9&lt;/td&gt;
&lt;td&gt;SPPF&lt;/td&gt;
&lt;td&gt;32&lt;/td&gt;
&lt;td&gt;&lt;b&gt;P5: ([B,512,20,20])&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div style=&quot;background-color: #fcfcfc; color: #0d0d0d; text-align: start;&quot; data-is-intersecting=&quot;true&quot; data-turn-id-container=&quot;c1a2e4d3-fced-41db-be36-a859072df08b&quot;&gt;
&lt;div&gt;
&lt;div data-conversation-screenshot-content=&quot;&quot;&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: start;&quot; data-message-id=&quot;c1a2e4d3-fced-41db-be36-a859072df08b&quot; data-message-author-role=&quot;user&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div style=&quot;background-color: #f9f9f9; color: #8f8f8f;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&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;Neck&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-01 오전 7.25.54.png&quot; data-origin-width=&quot;358&quot; data-origin-height=&quot;184&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CtQfm/dJMcacqyC1e/u7crV2hrAR7WZwek7HBZu0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CtQfm/dJMcacqyC1e/u7crV2hrAR7WZwek7HBZu0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CtQfm/dJMcacqyC1e/u7crV2hrAR7WZwek7HBZu0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCtQfm%2FdJMcacqyC1e%2Fu7crV2hrAR7WZwek7HBZu0%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;245&quot; height=&quot;126&quot; data-filename=&quot;스크린샷 2026-08-01 오전 7.25.54.png&quot; data-origin-width=&quot;358&quot; data-origin-height=&quot;184&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- FPN :&amp;nbsp; P5를 upsampling하여 P4와 합치고, 다시 P3와 합침. 이를 통해 깊은 층의 강한 의미 정보를 고해상도 특징에 전달&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; P5 &amp;rarr; P4 &amp;rarr; P3로 올라갈수록 공간 크기는 커지고, 채널 수는 줄어드는 방향&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- PAN : 융합된 P3를 stride-2 convolution으로 줄여 P4와 P5에 다시 전달. 이를 통해 세밀한 위치 정보를 깊은 scale에도 전달.&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;Head&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Neck에서 출력한&amp;nbsp; P3,P4,P5 특징맵에서 여러 anchor를 기준으로 bounding box, objectness, class score를 예측&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;C3와 SPPF&lt;/h3&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;C3&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-01 오전 7.05.08.png&quot; data-origin-width=&quot;1426&quot; data-origin-height=&quot;562&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UvaT1/dJMcadiG8ol/3ltibCJOyKkD8ZVrLynBd1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UvaT1/dJMcadiG8ol/3ltibCJOyKkD8ZVrLynBd1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UvaT1/dJMcadiG8ol/3ltibCJOyKkD8ZVrLynBd1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUvaT1%2FdJMcadiG8ol%2F3ltibCJOyKkD8ZVrLynBd1%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;1426&quot; height=&quot;562&quot; data-filename=&quot;스크린샷 2026-08-01 오전 7.05.08.png&quot; data-origin-width=&quot;1426&quot; data-origin-height=&quot;562&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-01 오전 7.28.18.png&quot; data-origin-width=&quot;760&quot; data-origin-height=&quot;116&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bi4iCE/dJMcahFh53W/s3YvcjzkRziOH0lQtqeidK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bi4iCE/dJMcahFh53W/s3YvcjzkRziOH0lQtqeidK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bi4iCE/dJMcahFh53W/s3YvcjzkRziOH0lQtqeidK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbi4iCE%2FdJMcahFh53W%2Fs3YvcjzkRziOH0lQtqeidK%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;655&quot; height=&quot;100&quot; data-filename=&quot;스크린샷 2026-08-01 오전 7.28.18.png&quot; data-origin-width=&quot;760&quot; data-origin-height=&quot;116&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;- 첫 번째 경로는 cv1 이후 여러 Bottleneck을 통과해 특징을 깊게 변환 두 번째 경로는 cv2만 통과하는 짧은 경로&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 마지막으로 두 결과를 channel 방향으로 concatenate하고 cv3로 융합&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- C3는 모든 특징을 동일한 깊은 연산에 통과시키지 않고, 깊게 변환된 특징과 비교적 짧게 전달된 특징을 함께 사용하는 CSP 계열 구조&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;SPPF&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-01 오전 7.05.51.png&quot; data-origin-width=&quot;1404&quot; data-origin-height=&quot;758&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKPuDV/dJMcaiYrSOD/lr2V3Z7SxVdK6AmvhxSEK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKPuDV/dJMcaiYrSOD/lr2V3Z7SxVdK6AmvhxSEK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKPuDV/dJMcaiYrSOD/lr2V3Z7SxVdK6AmvhxSEK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKPuDV%2FdJMcaiYrSOD%2Flr2V3Z7SxVdK6AmvhxSEK1%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;1404&quot; height=&quot;758&quot; data-filename=&quot;스크린샷 2026-08-01 오전 7.05.51.png&quot; data-origin-width=&quot;1404&quot; data-origin-height=&quot;758&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 동일한 5*5 max pooling 을 직렬적으로 세번 적용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 첫번째는 5*5 -&amp;gt; 두번째는 9*9 -&amp;gt; 세번째는 13*13 의 범위를 반영하게 됨 (Stride가 1이기 때문에 pooling 창들이 한 칸씩 겹치며 이동하므로, 범위는 5배로 곱해지는 것이 아니라 한 번마다 양쪽으로 두 칸씩 확장)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 위 결과를 합침 -&amp;gt; 서로 다른 범위의 주변 문맥을 함께 보도록 하는 모듈&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;5021&quot; data-start=&quot;5008&quot; data-section-id=&quot;dkkotp&quot; data-ke-size=&quot;size16&quot;&gt;순차 pooling&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;y1 = MaxPool(x)
   = [B,256,20,20]
   = 원래 x 기준 5&amp;times;5 문맥

y2 = MaxPool(y1)
   = [B,256,20,20]
   = 원래 x 기준 9&amp;times;9 문맥

y3 = MaxPool(y2)
   = [B,256,20,20]
   = 원래 x 기준 13&amp;times;13 문맥&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;5216&quot; data-start=&quot;5207&quot; data-section-id=&quot;yqscb5&quot; data-ke-size=&quot;size16&quot;&gt;Concat&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;torch.cat((x, y1, y2, y3), 1)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;[B,256,20,20] &amp;times; 4
        &amp;darr; 채널 방향 Concat
[B,1024,20,20]&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;5340&quot; data-start=&quot;5332&quot; data-section-id=&quot;jgd28&quot; data-ke-size=&quot;size16&quot;&gt;최종 융합&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;[B,1024,20,20]
&amp;rarr; cv2, 1&amp;times;1 Conv
&amp;rarr; [B,512,20,20]&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;5419&quot; data-start=&quot;5402&quot; data-ke-size=&quot;size16&quot;&gt;최종적으로 공간 크기는 유지되지만, 정보가 달라짐&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;5419&quot; data-start=&quot;5402&quot; 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;스크린샷 2026-08-01 오후 12.03.50.png&quot; data-origin-width=&quot;402&quot; data-origin-height=&quot;104&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yfBB9/dJMcag0EKKZ/1dHnnXyqKBkRF6uZVHmv30/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yfBB9/dJMcag0EKKZ/1dHnnXyqKBkRF6uZVHmv30/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yfBB9/dJMcag0EKKZ/1dHnnXyqKBkRF6uZVHmv30/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyfBB9%2FdJMcag0EKKZ%2F1dHnnXyqKBkRF6uZVHmv30%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;332&quot; height=&quot;86&quot; data-filename=&quot;스크린샷 2026-08-01 오후 12.03.50.png&quot; data-origin-width=&quot;402&quot; data-origin-height=&quot;104&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &lt;span&gt;kernel_size&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;5, &lt;span&gt;padding&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;stride&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 이라 20&amp;times;20 입력이 들어가면 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;20&amp;times;20 출력&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;YOLOv9&lt;/h2&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Ultralytics 계열&lt;/td&gt;
&lt;td&gt;YOLOv5, YOLOv8, YOLO11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WongKinYiu 연구팀 계열&lt;/td&gt;
&lt;td&gt;YOLOv4 일부, YOLOv7, YOLOv9&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Learning What You Want to Learn Using Programmable Gradient Information&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://arxiv.org/pdf/2402.13616&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://arxiv.org/pdf/2402.13616&lt;/a&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;Problem&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;학습이 잘 안되는것은 gradient vanishing 때문인가?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;과거 신경망에서는 gradient vanishing이나 saturation이 중요한 문제였지만, 현대 네트워크에서는 normalization, activation function, residual connection 등의 발전으로 이 문제들이 상당히 완화되었다. 그런데도 여전히 느린 수렴이나 좋지 않은 수렴 결과가 나타난다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;=&amp;gt; 전달되는 gradient가 정말 정답을 배우는 데 필요한 정보를 담고 있고 있을까?&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-01 오전 9.45.53.png&quot; data-origin-width=&quot;528&quot; data-origin-height=&quot;72&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pccyv/dJMcabkS54x/HeJle52FAOvTMUonmTk6sK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pccyv/dJMcabkS54x/HeJle52FAOvTMUonmTk6sK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pccyv/dJMcabkS54x/HeJle52FAOvTMUonmTk6sK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fpccyv%2FdJMcabkS54x%2FHeJle52FAOvTMUonmTk6sK%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;411&quot; height=&quot;56&quot; data-filename=&quot;스크린샷 2026-08-01 오전 9.45.53.png&quot; data-origin-width=&quot;528&quot; data-origin-height=&quot;72&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;information bottleneck&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;층이&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;깊어질수록&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;원본&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;입력에&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;관한&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;정보는&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;새로&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;증가할&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;없고&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;감소할&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;배경의 미세한 무늬나 카메라 노이즈를 버리는 것은&amp;nbsp; 바람직하나, 정답 관련 정보 손실이 문제가 된다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-01 오전 9.47.03.png&quot; data-origin-width=&quot;450&quot; data-origin-height=&quot;28&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b2beY8/dJMcaaTJLgy/a8VS2kLW7Z01I1Tv3ApACK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b2beY8/dJMcaaTJLgy/a8VS2kLW7Z01I1Tv3ApACK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b2beY8/dJMcaaTJLgy/a8VS2kLW7Z01I1Tv3ApACK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb2beY8%2FdJMcaaTJLgy%2Fa8VS2kLW7Z01I1Tv3ApACK%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;28&quot; data-filename=&quot;스크린샷 2026-08-01 오전 9.47.03.png&quot; data-origin-width=&quot;450&quot; data-origin-height=&quot;28&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;최종 feature에 정답 관련 정보가 부족하다면, 그걸로 계산된 gradient 가 입력과 정답의 올바른 관계를 충분히 반영하지 못한다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-01 오전 9.50.36.png&quot; data-origin-width=&quot;1036&quot; data-origin-height=&quot;180&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vQCsM/dJMcah6t1Oq/6Qc5TsuEpcqnbDDp7LOPZK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vQCsM/dJMcah6t1Oq/6Qc5TsuEpcqnbDDp7LOPZK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vQCsM/dJMcah6t1Oq/6Qc5TsuEpcqnbDDp7LOPZK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvQCsM%2FdJMcah6t1Oq%2F6Qc5TsuEpcqnbDDp7LOPZK%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;1036&quot; height=&quot;180&quot; data-filename=&quot;스크린샷 2026-08-01 오전 9.50.36.png&quot; data-origin-width=&quot;1036&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존 해결책들의 trade off&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;접근법&lt;/td&gt;
&lt;td&gt;방식&lt;/td&gt;
&lt;td&gt;문제&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;큰 모델&lt;/td&gt;
&lt;td&gt;더 많은 용량으로 정보 보존&lt;/td&gt;
&lt;td&gt;계산량 증가, 근본 해결 아님&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reversible architecture&lt;/td&gt;
&lt;td&gt;입력 정보를 반복 전달&amp;middot;복원&lt;/td&gt;
&lt;td&gt;inference 비용 증가, 고수준 의미 변환 제한 가능&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Masked modeling&lt;/td&gt;
&lt;td&gt;reconstruction으로 입력 정보 유지&lt;/td&gt;
&lt;td&gt;target loss와 충돌 가능, 작은 모델의 용량 부족&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Deep supervision&lt;/td&gt;
&lt;td&gt;얕은 feature에 직접 target 신호 제공&lt;/td&gt;
&lt;td&gt;error accumulation, broken information, 작은 모델에 불리&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;단순 residual/skip&lt;/td&gt;
&lt;td&gt;정보와 gradient 경로 보존&lt;/td&gt;
&lt;td&gt;깊은 변환에서 target 정보 손실을 완전히 방지하지 못함&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&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;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Method&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;YOLOv9은 GELAN이라는 효율적인 검출 네트워크를 사용하고, 학습할 때만 PGI라는 보조 경로를 추가해 더 신뢰할 수 있는 gradient로 학습시키는 실시간 객체 검출 모델&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 data-end=&quot;311&quot; data-start=&quot;267&quot; data-section-id=&quot;1nunvfb&quot;&gt;&lt;b&gt;GELAN&lt;/b&gt;: 이미지 특징을 효율적으로 추출하고 합치는 실제 모델 구조&lt;/li&gt;
&lt;li data-end=&quot;365&quot; data-start=&quot;312&quot; data-section-id=&quot;1c55u7p&quot;&gt;&lt;b&gt;PGI&lt;/b&gt;: 학습 과정에서 중요한 정보가 사라지지 않도록 gradient를 보강하는 방법&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;PGI&lt;/h3&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Programmable Gradient Information&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;main network에 더 신뢰할 만한 gradient를 전달하는 auxiliary supervision framework&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-filename=&quot;스크린샷 2026-08-01 오전 7.31.45.png&quot; data-origin-width=&quot;1102&quot; data-origin-height=&quot;598&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/omCDo/dJMcabE4JUW/JkIsdRRV8K4dkONKJ0yXW1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/omCDo/dJMcabE4JUW/JkIsdRRV8K4dkONKJ0yXW1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/omCDo/dJMcabE4JUW/JkIsdRRV8K4dkONKJ0yXW1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FomCDo%2FdJMcabE4JUW%2FJkIsdRRV8K4dkONKJ0yXW1%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;1102&quot; height=&quot;598&quot; data-filename=&quot;스크린샷 2026-08-01 오전 7.31.45.png&quot; data-origin-width=&quot;1102&quot; data-origin-height=&quot;598&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. Main branch&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실제 inference에서 사용하는 객체 검출 네트워크,&amp;nbsp; GELAN 기반&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;2. Auxiliary reversible branch&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;Figure 3(b)의 RevCol 구조처럼, main branch를 reversible network로 만들면 정보 보존엔 유리하나 실시간 검출에 너무 무거움&lt;/li&gt;
&lt;li data-end=&quot;1561&quot; data-start=&quot;1508&quot; data-section-id=&quot;wllffn&quot;&gt;deep-to-shallow 추가 연결을 넣으면 inference time이 약 20% 증가&lt;/li&gt;
&lt;li data-end=&quot;1617&quot; data-start=&quot;1562&quot; data-section-id=&quot;1yxgwcp&quot;&gt;입력을 고해상도 계산층에 반복적으로 넣으면 inference time이 두 배를 넘을 수도 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-01 오전 10.17.35.png&quot; data-origin-width=&quot;464&quot; data-origin-height=&quot;300&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bLuneG/dJMcahejwcC/NIi1kZxk7yhkjeSyQcPfLK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bLuneG/dJMcahejwcC/NIi1kZxk7yhkjeSyQcPfLK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bLuneG/dJMcahejwcC/NIi1kZxk7yhkjeSyQcPfLK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbLuneG%2FdJMcahejwcC%2FNIi1kZxk7yhkjeSyQcPfLK%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;319&quot; height=&quot;206&quot; data-filename=&quot;스크린샷 2026-08-01 오전 10.17.35.png&quot; data-origin-width=&quot;464&quot; data-origin-height=&quot;300&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;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. Multi-level Auxiliary Information&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반 deep supervision의 multi-scale 정보 단절 문제를 해결하고자 함&lt;/p&gt;
&lt;pre id=&quot;code_1785547151690&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;P3: 높은 해상도 &amp;rarr; 작은 물체에 상대적으로 유리
P4: 중간 해상도 &amp;rarr; 중간 물체에 상대적으로 유리
P5: 낮은 해상도 &amp;rarr; 큰 물체에 상대적으로 유리

P3 &amp;rarr; Head &amp;rarr; Loss
P4 &amp;rarr; Head &amp;rarr; Loss
P5 &amp;rarr; Head &amp;rarr; Loss&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런 경우에 P3 은 작은 물체는 주요하게 보고 큰 물체는 배경처럼 취급할 수 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 level 의 특징이 특정 크기가 주는 정보에만 지배될 수 있음&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;6752&quot; data-start=&quot;6698&quot; data-section-id=&quot;1g1essi&quot;&gt;&lt;b&gt;Broken information&lt;/b&gt;: level마다 target 정보가 조각나거나 단절됨&lt;/li&gt;
&lt;li data-end=&quot;6817&quot; data-start=&quot;6753&quot; data-section-id=&quot;tz5nd8&quot;&gt;&lt;b&gt;Error accumulation&lt;/b&gt;: 앞 단계에서 생긴 불완전한 supervision이 뒤 단계까지 누적됨&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;=&amp;gt; 다른 크기의 물체 정보를 완전히 배경으로 버리지 않도록 gradient 정보를 공유하자&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;auxiliary supervision의 feature pyramid hierarchy와 main branch 사이에 &lt;b&gt;integration network&lt;/b&gt;를 삽입&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-01 오전 10.22.00.png&quot; data-origin-width=&quot;734&quot; data-origin-height=&quot;242&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/coLJJL/dJMcafALDwB/qcum6k2mh03QEKbn5RVa20/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/coLJJL/dJMcafALDwB/qcum6k2mh03QEKbn5RVa20/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/coLJJL/dJMcafALDwB/qcum6k2mh03QEKbn5RVa20/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcoLJJL%2FdJMcafALDwB%2Fqcum6k2mh03QEKbn5RVa20%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;549&quot; height=&quot;181&quot; data-filename=&quot;스크린샷 2026-08-01 오전 10.22.00.png&quot; data-origin-width=&quot;734&quot; data-origin-height=&quot;242&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;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;GLEAN&lt;/h2&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Generalized Efficient Layer Aggregation Network&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;GELAN=CSPNet의 분할 구조+ELAN의 다중 깊이 집계&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-01 오전 9.32.11.png&quot; data-origin-width=&quot;840&quot; data-origin-height=&quot;348&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brbeIA/dJMcagzDStB/yK0M9MRZlmodvUYj9buNHk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brbeIA/dJMcagzDStB/yK0M9MRZlmodvUYj9buNHk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brbeIA/dJMcagzDStB/yK0M9MRZlmodvUYj9buNHk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbrbeIA%2FdJMcagzDStB%2FyK0M9MRZlmodvUYj9buNHk%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;840&quot; height=&quot;348&quot; data-filename=&quot;스크린샷 2026-08-01 오전 9.32.11.png&quot; data-origin-width=&quot;840&quot; data-origin-height=&quot;348&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-end=&quot;4174&quot; data-start=&quot;4161&quot; data-section-id=&quot;tk47of&quot; data-ke-size=&quot;size16&quot;&gt;1. CSP식 분할&lt;/p&gt;
&lt;p data-end=&quot;4206&quot; data-start=&quot;4176&quot; data-ke-size=&quot;size16&quot;&gt;입력 feature를 여러 partition으로 나눔 -&amp;gt; 효율성&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;maxima&quot;&gt;&lt;code&gt;일부 feature &amp;rarr; 짧은 경로
일부 feature &amp;rarr; 깊은 계산 경로&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;4282&quot; data-start=&quot;4262&quot; data-section-id=&quot;4nstqa&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;4282&quot; data-start=&quot;4262&quot; data-section-id=&quot;4nstqa&quot; data-ke-size=&quot;size16&quot;&gt;2. ELAN식 다중 깊이 집계&lt;/p&gt;
&lt;p data-end=&quot;4337&quot; data-start=&quot;4284&quot; data-ke-size=&quot;size16&quot;&gt;계산 경로의 마지막 출력만 쓰지 않고 중간 단계 출력도 최종 concatenation에 전달&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;markdown&quot;&gt;&lt;code&gt;짧은 특징
+ 한 단계 깊은 특징
+ 더 깊은 특징
&amp;rarr; Concat&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;p data-ke-size=&quot;size16&quot; data-section-id=&quot;4nstqa&quot; data-start=&quot;4262&quot; data-end=&quot;4282&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot; data-section-id=&quot;4nstqa&quot; data-start=&quot;4262&quot; data-end=&quot;4282&quot;&gt;* gradient path planning&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot; data-section-id=&quot;4nstqa&quot; data-start=&quot;4262&quot; data-end=&quot;4282&quot;&gt;일반적 :&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;입력 &amp;rarr; Block 1 &amp;rarr; Block 2 &amp;rarr; Block 3 &amp;rarr; 출력 &amp;rarr; Loss&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-end=&quot;4282&quot; data-start=&quot;4262&quot; data-section-id=&quot;4nstqa&quot; data-ke-size=&quot;size16&quot;&gt;block 1 이 gradient 를 받기 위해서는 앞의 블록을 거쳐야함,&lt;span&gt;&amp;nbsp;&lt;/span&gt;Loss &amp;rarr; Block 3 &amp;rarr; Block 2 &amp;rarr; Block 1&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-end=&quot;4282&quot; data-start=&quot;4262&quot; data-section-id=&quot;4nstqa&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-end=&quot;4282&quot; data-start=&quot;4262&quot; data-section-id=&quot;4nstqa&quot; data-ke-size=&quot;size16&quot;&gt;각 중간 출력이 concatenation에 직접 연결되므로 gradient는 서로 다른 길이의 경로를 통해 전달&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;oxygene&quot; style=&quot;background-color: #f8f8f8; color: #383a42;&quot;&gt;&lt;code&gt;Loss &amp;rarr; Concat &amp;rarr; Block 1 출력
Loss &amp;rarr; Concat &amp;rarr; Block 2 출력
Loss &amp;rarr; Concat &amp;rarr; Block 3 출력&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot; data-section-id=&quot;4nstqa&quot; data-start=&quot;4262&quot; data-end=&quot;4282&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;4420&quot; data-start=&quot;4390&quot; data-section-id=&quot;re495a&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;4420&quot; data-start=&quot;4390&quot; data-section-id=&quot;re495a&quot; data-ke-size=&quot;size16&quot;&gt;3. Conv만 쓰지 않고 임의의 block 사용&lt;/p&gt;
&lt;p data-end=&quot;4467&quot; data-start=&quot;4422&quot; data-ke-size=&quot;size16&quot;&gt;기존 ELAN에서는 연산 경로가 주로 convolution stack으로 구성&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;gauss&quot;&gt;&lt;code&gt;기존 ELAN:
Conv &amp;rarr; Conv &amp;rarr; Conv&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;4554&quot; data-start=&quot;4510&quot; data-ke-size=&quot;size16&quot;&gt;GELAN에서는 이 부분을 일반화해서 다음과 같은 block을 사용 -&amp;gt; Generalized&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;maxima&quot;&gt;&lt;code&gt;Conv block
ResNet block
DarkNet block
CSP block
기타 computational block&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&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;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;실험 결과&amp;nbsp;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ir1r4/dJMcabE4OvW/PIPTKSmKZ0Xj95ssItlWNK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ir1r4/dJMcabE4OvW/PIPTKSmKZ0Xj95ssItlWNK/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1004&quot; data-origin-height=&quot;928&quot; data-filename=&quot;스크린샷 2026-08-01 오전 11.06.48.png&quot; width=&quot;635&quot; style=&quot;width: 47.6799%; margin-right: 10px;&quot; data-widthpercent=&quot;48.24&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ir1r4/dJMcabE4OvW/PIPTKSmKZ0Xj95ssItlWNK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIr1r4%2FdJMcabE4OvW%2FPIPTKSmKZ0Xj95ssItlWNK%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;1004&quot; height=&quot;928&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;YOLOv9-S는&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;3324&quot; data-start=&quot;3273&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;3294&quot; data-start=&quot;3273&quot; data-section-id=&quot;1lvtmbo&quot;&gt;YOLOv8-S보다 파라미터가 적고 FLOPs도 조금 적으며 AP는 1.9 높음&lt;/li&gt;
&lt;li data-end=&quot;3294&quot; data-start=&quot;3273&quot; data-section-id=&quot;1lvtmbo&quot;&gt;YOLO-MS-S보다 파라미터가 적고 FLOPs가 적으며 AP는 0.6 높음&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;PGI의 auxiliary branch가&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;학습할 때만 사용되고 추론에서는 제거되기 때문에 파라미터 증가에 영향을 안줌&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-01 오전 11.20.44.png&quot; data-origin-width=&quot;868&quot; data-origin-height=&quot;386&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dsvkaO/dJMcadJCiTF/VKacgNlh6tVUMRk3z1ENgK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dsvkaO/dJMcadJCiTF/VKacgNlh6tVUMRk3z1ENgK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dsvkaO/dJMcadJCiTF/VKacgNlh6tVUMRk3z1ENgK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdsvkaO%2FdJMcadJCiTF%2FVKacgNlh6tVUMRk3z1ENgK%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;868&quot; height=&quot;386&quot; data-filename=&quot;스크린샷 2026-08-01 오전 11.20.44.png&quot; data-origin-width=&quot;868&quot; data-origin-height=&quot;386&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-filename=&quot;스크린샷 2026-08-01 오전 9.34.53.png&quot; data-origin-width=&quot;1032&quot; data-origin-height=&quot;604&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/y9KY7/dJMcaccWtuZ/1ZIfXkXVSfjlwPkEduCuN1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/y9KY7/dJMcaccWtuZ/1ZIfXkXVSfjlwPkEduCuN1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/y9KY7/dJMcaccWtuZ/1ZIfXkXVSfjlwPkEduCuN1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fy9KY7%2FdJMcaccWtuZ%2F1ZIfXkXVSfjlwPkEduCuN1%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;1032&quot; height=&quot;604&quot; data-filename=&quot;스크린샷 2026-08-01 오전 9.34.53.png&quot; data-origin-width=&quot;1032&quot; data-origin-height=&quot;604&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1374&quot; data-start=&quot;1349&quot; data-section-id=&quot;4na0ck&quot;&gt;PlainNet: 물체 정보가 많이 사라짐&lt;/li&gt;
&lt;li data-end=&quot;1413&quot; data-start=&quot;1375&quot; data-section-id=&quot;1alwi0t&quot;&gt;ResNet: 물체 위치는 어느 정도 남아 있지만 일부 정보 손실&lt;/li&gt;
&lt;li data-end=&quot;1442&quot; data-start=&quot;1414&quot; data-section-id=&quot;10kktmx&quot;&gt;CSPNet: 물체 구조가 상대적으로 잘 유지됨&lt;/li&gt;
&lt;li data-end=&quot;1476&quot; data-start=&quot;1443&quot; data-section-id=&quot;77ezh3&quot;&gt;GELAN: 물체 위치와 경계가 가장 명확하게 남아 있음&lt;/li&gt;
&lt;/ul&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;스크린샷 2026-08-01 오전 11.11.21.png&quot; data-origin-width=&quot;908&quot; data-origin-height=&quot;650&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PyxbT/dJMcahk7cym/pEpq1Rkb6F3yYwJB6kC0cK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PyxbT/dJMcahk7cym/pEpq1Rkb6F3yYwJB6kC0cK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PyxbT/dJMcahk7cym/pEpq1Rkb6F3yYwJB6kC0cK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPyxbT%2FdJMcahk7cym%2FpEpq1Rkb6F3yYwJB6kC0cK%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;529&quot; height=&quot;379&quot; data-filename=&quot;스크린샷 2026-08-01 오전 11.11.21.png&quot; data-origin-width=&quot;908&quot; data-origin-height=&quot;650&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;5673&quot; data-start=&quot;5628&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;5649&quot; data-start=&quot;5628&quot; data-section-id=&quot;ndm3dx&quot;&gt;반응이 실제 물체 영역에 더 집중됨&lt;/li&gt;
&lt;li data-end=&quot;5673&quot; data-start=&quot;5650&quot; data-section-id=&quot;1uvwhgl&quot;&gt;target 위치가 더 명확하게 나타남&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-01 오전 11.17.48.png&quot; data-origin-width=&quot;488&quot; data-origin-height=&quot;168&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QttD3/dJMcafU6FHH/F3IS2qsvN1v4eJXPkfkg60/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QttD3/dJMcafU6FHH/F3IS2qsvN1v4eJXPkfkg60/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QttD3/dJMcafU6FHH/F3IS2qsvN1v4eJXPkfkg60/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQttD3%2FdJMcafU6FHH%2FF3IS2qsvN1v4eJXPkfkg60%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;488&quot; height=&quot;168&quot; data-filename=&quot;스크린샷 2026-08-01 오전 11.17.48.png&quot; data-origin-width=&quot;488&quot; data-origin-height=&quot;168&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zvdYy/dJMcab6chM8/uvIWSxolykT6Euu4dW0gBK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zvdYy/dJMcab6chM8/uvIWSxolykT6Euu4dW0gBK/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;698&quot; data-origin-height=&quot;308&quot; data-filename=&quot;스크린샷 2026-08-01 오전 11.13.28.png&quot; width=&quot;573&quot; height=&quot;253&quot; style=&quot;width: 63.3437%; margin-right: 10px;&quot; data-widthpercent=&quot;64.09&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zvdYy/dJMcab6chM8/uvIWSxolykT6Euu4dW0gBK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzvdYy%2FdJMcab6chM8%2FuvIWSxolykT6Euu4dW0gBK%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;698&quot; height=&quot;308&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/B5Eny/dJMcagNhqy9/JNqLZiIXC8CkzGd6pElDfK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/B5Eny/dJMcagNhqy9/JNqLZiIXC8CkzGd6pElDfK/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;480&quot; data-origin-height=&quot;378&quot; data-filename=&quot;스크린샷 2026-08-01 오전 11.19.08.png&quot; style=&quot;width: 35.4935%;&quot; data-widthpercent=&quot;35.91&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/B5Eny/dJMcagNhqy9/JNqLZiIXC8CkzGd6pElDfK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FB5Eny%2FdJMcagNhqy9%2FJNqLZiIXC8CkzGd6pElDfK%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;480&quot; height=&quot;378&quot;/&gt;&lt;/span&gt;&lt;/div&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;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;CSP 블록이 좋은 성능&lt;/li&gt;
&lt;li&gt;GELAN 이 하나의 block 에 종속되지 않는다&amp;nbsp;&lt;/li&gt;
&lt;li&gt;PGI 의 성능 상승폭이 더 크다.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;YOLOv11&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://arxiv.org/pdf/2410.17725&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://arxiv.org/pdf/2410.17725&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-01 오전 7.54.42.png&quot; data-origin-width=&quot;1030&quot; data-origin-height=&quot;596&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yOwH4/dJMcagzDQvy/qIJBHCeQ2tOklAx7jnJ2X1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yOwH4/dJMcagzDQvy/qIJBHCeQ2tOklAx7jnJ2X1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yOwH4/dJMcagzDQvy/qIJBHCeQ2tOklAx7jnJ2X1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyOwH4%2FdJMcagzDQvy%2FqIJBHCeQ2tOklAx7jnJ2X1%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;1030&quot; height=&quot;596&quot; data-filename=&quot;스크린샷 2026-08-01 오전 7.54.42.png&quot; data-origin-width=&quot;1030&quot; data-origin-height=&quot;596&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;YOLOv1: 단일 단계 탐지 시작&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;YOLOv2&amp;ndash;v3 : Anchor와 multi-scale detection 강화&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;YOLOv4&amp;ndash;v5 : CSP, PAN, 실용적인 학습&amp;middot;구현 발전&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;YOLOv6&amp;ndash;v8 : 효율성과 anchor-free 구조 발전&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;YOLOv9 : PGI + GELAN&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;YOLOv10 : NMS-free end-to-end detection&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;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-01 오전 7.54.50.png&quot; data-origin-width=&quot;734&quot; data-origin-height=&quot;356&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bXAaJQ/dJMcaiqGego/se1yQd3wvccEwdP0MyZCoK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bXAaJQ/dJMcaiqGego/se1yQd3wvccEwdP0MyZCoK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bXAaJQ/dJMcaiqGego/se1yQd3wvccEwdP0MyZCoK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbXAaJQ%2FdJMcaiqGego%2Fse1yQd3wvccEwdP0MyZCoK%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;734&quot; height=&quot;356&quot; data-filename=&quot;스크린샷 2026-08-01 오전 7.54.50.png&quot; data-origin-width=&quot;734&quot; data-origin-height=&quot;356&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;121&quot; data-start=&quot;79&quot; data-section-id=&quot;64ny6z&quot;&gt;&lt;b&gt;C3k2:&lt;/b&gt; YOLO11에서 YOLOv8의 C2f를 대신해 사용&lt;/li&gt;
&lt;li data-end=&quot;160&quot; data-start=&quot;122&quot; data-section-id=&quot;1iqjlma&quot;&gt;&lt;b&gt;C2PSA:&lt;/b&gt; YOLO11에서 새로 추가된 attention&lt;/li&gt;
&lt;li data-end=&quot;205&quot; data-start=&quot;161&quot; data-section-id=&quot;1miuljp&quot;&gt;&lt;b&gt;SPPF:&lt;/b&gt; 이전 YOLOv5&amp;middot;YOLOv8부터 쓰던 모듈을 그대로 유지&lt;/li&gt;
&lt;/ul&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;스크린샷 2026-08-01 오전 8.03.46.png&quot; data-origin-width=&quot;478&quot; data-origin-height=&quot;306&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vop7o/dJMb998lzgF/Z6ZQSZoSOWDvlH8tCKuOt1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vop7o/dJMb998lzgF/Z6ZQSZoSOWDvlH8tCKuOt1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vop7o/dJMb998lzgF/Z6ZQSZoSOWDvlH8tCKuOt1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fvop7o%2FdJMb998lzgF%2FZ6ZQSZoSOWDvlH8tCKuOt1%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;478&quot; height=&quot;306&quot; data-filename=&quot;스크린샷 2026-08-01 오전 8.03.46.png&quot; data-origin-width=&quot;478&quot; data-origin-height=&quot;306&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;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;YOLOv8 대비 세 가지 변화&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 data-end=&quot;772&quot; data-start=&quot;748&quot; data-section-id=&quot;1gbjz40&quot;&gt;C2f를 &lt;b&gt;C3k2&lt;/b&gt;로 교체&lt;/li&gt;
&lt;li data-end=&quot;798&quot; data-start=&quot;773&quot; data-section-id=&quot;pgew4f&quot;&gt;SPPF 뒤에 &lt;b&gt;C2PSA&lt;/b&gt; 추가&lt;/li&gt;
&lt;li data-end=&quot;868&quot; data-start=&quot;799&quot; data-section-id=&quot;x2vymn&quot;&gt;classification branch를 &lt;b&gt;depthwise-separable convolution&lt;/b&gt;으로 경량화&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;CSP&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Cross Stage Partial Network&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;한 stage의 입력 feature를 모두 똑같이 무거운 연산에 통과시키지 않고 일부는 깊게 처리하고, 일부는 비교적 직접 전달한 뒤 마지막에 합치는 것&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 얘가 구현된 모듈이 C3, C2f,,,,&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;396&quot; data-start=&quot;391&quot; data-section-id=&quot;1mnyid&quot; data-ke-size=&quot;size16&quot;&gt;C3&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;540&quot; data-start=&quot;398&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;417&quot; data-start=&quot;398&quot; data-section-id=&quot;a98qxf&quot;&gt;YOLOv5의 대표 CSP 블록&lt;/li&gt;
&lt;li data-end=&quot;432&quot; data-start=&quot;418&quot; data-section-id=&quot;p8ulal&quot;&gt;입력을 두 경로로 나눔&lt;/li&gt;
&lt;li data-end=&quot;460&quot; data-start=&quot;433&quot; data-section-id=&quot;zjfgs6&quot;&gt;한 경로는 Bottleneck을 연속으로 통과&lt;/li&gt;
&lt;li data-end=&quot;484&quot; data-start=&quot;461&quot; data-section-id=&quot;vgc7i6&quot;&gt;다른 경로는 Bottleneck을 우회&lt;/li&gt;
&lt;li data-end=&quot;540&quot; data-start=&quot;485&quot; data-section-id=&quot;17v3u7w&quot;&gt;마지막에는 &lt;b&gt;Bottleneck 경로의 최종 출력 하나와 우회 경로 하나&lt;/b&gt;, 총 2개만 합침&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-01 오전 8.24.40.png&quot; data-origin-width=&quot;730&quot; data-origin-height=&quot;268&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pBzez/dJMcaaTJJx3/ZtoxKWYuknhvScHkizHoSK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pBzez/dJMcaaTJJx3/ZtoxKWYuknhvScHkizHoSK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pBzez/dJMcaaTJJx3/ZtoxKWYuknhvScHkizHoSK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpBzez%2FdJMcaaTJJx3%2FZtoxKWYuknhvScHkizHoSK%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;185&quot; data-filename=&quot;스크린샷 2026-08-01 오전 8.24.40.png&quot; data-origin-width=&quot;730&quot; data-origin-height=&quot;268&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-end=&quot;548&quot; data-start=&quot;542&quot; data-section-id=&quot;1hrymwu&quot; data-ke-size=&quot;size16&quot;&gt;C3k&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;649&quot; data-start=&quot;550&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;570&quot; data-start=&quot;550&quot; data-section-id=&quot;1gmzcmg&quot;&gt;C3와 전체적인 분기 구조는 동일&lt;/li&gt;
&lt;li data-end=&quot;630&quot; data-start=&quot;571&quot; data-section-id=&quot;kustxv&quot;&gt;차이는 내부 Bottleneck의 convolution kernel 크기 k를 지정할 수 있다는 것&lt;/li&gt;
&lt;li data-end=&quot;649&quot; data-start=&quot;631&quot; data-section-id=&quot;10xob24&quot;&gt;경로가 더 많아지는 것은 아님&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-01 오전 8.24.56.png&quot; data-origin-width=&quot;436&quot; data-origin-height=&quot;232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/B5a47/dJMb998lzuN/8Yr2lNifPwNkBe0BXA0kt0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/B5a47/dJMb998lzuN/8Yr2lNifPwNkBe0BXA0kt0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/B5a47/dJMb998lzuN/8Yr2lNifPwNkBe0BXA0kt0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FB5a47%2FdJMb998lzuN%2F8Yr2lNifPwNkBe0BXA0kt0%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;308&quot; height=&quot;164&quot; data-filename=&quot;스크린샷 2026-08-01 오전 8.24.56.png&quot; data-origin-width=&quot;436&quot; data-origin-height=&quot;232&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-end=&quot;657&quot; data-start=&quot;651&quot; data-section-id=&quot;1hrymqa&quot; data-ke-size=&quot;size16&quot;&gt;C2f&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;779&quot; data-start=&quot;659&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;678&quot; data-start=&quot;659&quot; data-section-id=&quot;t4s8zi&quot;&gt;YOLOv8의 대표 CSP 블록&lt;/li&gt;
&lt;li data-end=&quot;702&quot; data-start=&quot;679&quot; data-section-id=&quot;ctn9ki&quot;&gt;Bottleneck은 순차적으로 연결됨&lt;/li&gt;
&lt;li data-end=&quot;754&quot; data-start=&quot;703&quot; data-section-id=&quot;n9qylb&quot;&gt;다만 각 Bottleneck의 &lt;b&gt;모든 중간 출력&lt;/b&gt;을 저장했다가 마지막에 한꺼번에 합침&lt;/li&gt;
&lt;li data-end=&quot;779&quot; data-start=&quot;755&quot; data-section-id=&quot;t8tn1m&quot;&gt;C3보다 feature reuse가 많음&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-01 오전 8.25.20.png&quot; data-origin-width=&quot;814&quot; data-origin-height=&quot;468&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dLYV6d/dJMcajiRYfD/0LzgIhitg4ZjJCaKUnq4Ak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dLYV6d/dJMcajiRYfD/0LzgIhitg4ZjJCaKUnq4Ak/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dLYV6d/dJMcajiRYfD/0LzgIhitg4ZjJCaKUnq4Ak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdLYV6d%2FdJMcajiRYfD%2F0LzgIhitg4ZjJCaKUnq4Ak%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;522&quot; height=&quot;300&quot; data-filename=&quot;스크린샷 2026-08-01 오전 8.25.20.png&quot; data-origin-width=&quot;814&quot; data-origin-height=&quot;468&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-end=&quot;788&quot; data-start=&quot;781&quot; data-section-id=&quot;1xw1ong&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;788&quot; data-start=&quot;781&quot; data-section-id=&quot;1xw1ong&quot; data-ke-size=&quot;size16&quot;&gt;** 중간 출력을 합치는 이유?&lt;/p&gt;
&lt;p data-end=&quot;788&quot; data-start=&quot;781&quot; data-section-id=&quot;1xw1ong&quot; data-ke-size=&quot;size16&quot;&gt;깊이에 따라 feature의 성격이 조금씩 달라질 수 있는데, C3는 가장 깊은 결과와 우회 결과만 합침&lt;/p&gt;
&lt;p data-end=&quot;788&quot; data-start=&quot;781&quot; data-section-id=&quot;1xw1ong&quot; data-ke-size=&quot;size16&quot;&gt;하지만 C2f는 중간 깊이의 feature도 전부 사용할 수 있게 함&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;788&quot; data-start=&quot;781&quot; data-section-id=&quot;1xw1ong&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;788&quot; data-start=&quot;781&quot; data-section-id=&quot;1xw1ong&quot; data-ke-size=&quot;size16&quot;&gt;C3k2&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;919&quot; data-start=&quot;790&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;805&quot; data-start=&quot;790&quot; data-section-id=&quot;ii8i4w&quot;&gt;YOLO11의 대표 블록&lt;/li&gt;
&lt;li data-end=&quot;818&quot; data-start=&quot;806&quot; data-section-id=&quot;5s2k1y&quot;&gt;바깥 구조는 C2f&lt;/li&gt;
&lt;li data-end=&quot;861&quot; data-start=&quot;819&quot; data-section-id=&quot;knzghs&quot;&gt;내부 반복 단위를 일반 Bottleneck 또는 C3k로 선택할 수 있음&lt;/li&gt;
&lt;li data-end=&quot;894&quot; data-start=&quot;862&quot; data-section-id=&quot;1pqdim&quot;&gt;c3k=False: 내부에 일반 Bottleneck&lt;/li&gt;
&lt;li data-end=&quot;919&quot; data-start=&quot;895&quot; data-section-id=&quot;1mp9tso&quot;&gt;c3k=True: 내부에 C3k 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-01 오전 8.27.35.png&quot; data-origin-width=&quot;352&quot; data-origin-height=&quot;296&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Vh2Bc/dJMcagl5FpP/o9Qm9z6IRYAyplDdbkQwc0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Vh2Bc/dJMcagl5FpP/o9Qm9z6IRYAyplDdbkQwc0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Vh2Bc/dJMcagl5FpP/o9Qm9z6IRYAyplDdbkQwc0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVh2Bc%2FdJMcagl5FpP%2Fo9Qm9z6IRYAyplDdbkQwc0%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;275&quot; height=&quot;231&quot; data-filename=&quot;스크린샷 2026-08-01 오전 8.27.35.png&quot; data-origin-width=&quot;352&quot; data-origin-height=&quot;296&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;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;C2PSA&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Backbone 끝에서 공간적 self-attention 수행&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-01 오전 8.32.20.png&quot; data-origin-width=&quot;484&quot; data-origin-height=&quot;270&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/P8R4x/dJMcahFh6Rb/SUuURPcJrXROL7fiFqj2Kk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/P8R4x/dJMcahFh6Rb/SUuURPcJrXROL7fiFqj2Kk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/P8R4x/dJMcahFh6Rb/SUuURPcJrXROL7fiFqj2Kk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FP8R4x%2FdJMcahFh6Rb%2FSUuURPcJrXROL7fiFqj2Kk%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;382&quot; height=&quot;213&quot; data-filename=&quot;스크린샷 2026-08-01 오전 8.32.20.png&quot; data-origin-width=&quot;484&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-filename=&quot;스크린샷 2026-08-01 오전 8.32.31.png&quot; data-origin-width=&quot;550&quot; data-origin-height=&quot;336&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nRYZD/dJMcadv3jfN/kiOuBJknYuncmAK1Az8rXk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nRYZD/dJMcadv3jfN/kiOuBJknYuncmAK1Az8rXk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nRYZD/dJMcadv3jfN/kiOuBJknYuncmAK1Az8rXk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnRYZD%2FdJMcadv3jfN%2FkiOuBJknYuncmAK1Az8rXk%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;428&quot; height=&quot;261&quot; data-filename=&quot;스크린샷 2026-08-01 오전 8.32.31.png&quot; data-origin-width=&quot;550&quot; data-origin-height=&quot;336&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;입력 feature를 두 경로로 분리하고, 한쪽은 그대로 보존하며 다른 쪽에는 multi-head self-attention과 FFN으로 구성된 Transformer-like PSABlock을 적용한 뒤 다시 합치는 모듈&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;스크린샷 2026-08-01 오전 8.53.15.png&quot; data-origin-width=&quot;404&quot; data-origin-height=&quot;626&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/p0egT/dJMcaidgjhb/fih5v4RXtRdAz5RpIpXM60/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/p0egT/dJMcaidgjhb/fih5v4RXtRdAz5RpIpXM60/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/p0egT/dJMcaidgjhb/fih5v4RXtRdAz5RpIpXM60/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fp0egT%2FdJMcaidgjhb%2Ffih5v4RXtRdAz5RpIpXM60%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;337&quot; height=&quot;522&quot; data-filename=&quot;스크린샷 2026-08-01 오전 8.53.15.png&quot; data-origin-width=&quot;404&quot; data-origin-height=&quot;626&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-end=&quot;3625&quot; data-start=&quot;3603&quot; data-section-id=&quot;18l61om&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;multi head Self-Attention&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;입력
 &amp;darr;
1&amp;times;1 Conv로 Q, K, V 생성
 &amp;darr;
Multi-head Self-Attention
 &amp;darr;
Depthwise 3&amp;times;3 positional encoding 추가
 &amp;darr;
1&amp;times;1 projection Conv
 &amp;darr;
Residual Add&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;3814&quot; data-start=&quot;3775&quot; data-ke-size=&quot;size16&quot;&gt;공식 Attention 코드에는 다음 convolution들이 포함&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;3966&quot; data-start=&quot;3816&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;3847&quot; data-start=&quot;3816&quot; data-section-id=&quot;1gfqo99&quot;&gt;qkv: Q&amp;middot;K&amp;middot;V를 생성하는 1&amp;times;1 Conv&lt;/li&gt;
&lt;li data-end=&quot;3888&quot; data-start=&quot;3848&quot; data-section-id=&quot;11ny4fh&quot;&gt;pe: 위치 정보를 보강하는 depthwise 3&amp;times;3 Conv&lt;/li&gt;
&lt;li data-end=&quot;3966&quot; data-start=&quot;3889&quot; data-section-id=&quot;1gz1394&quot;&gt;proj: attention 결과를 정리하는 1&amp;times;1 Conv&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;3979&quot; data-start=&quot;3968&quot; data-section-id=&quot;11cmijy&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;FFN 부분&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;4025&quot; data-start=&quot;3981&quot; data-ke-size=&quot;size16&quot;&gt;Attention 뒤에는 channel feature를 변환하는 FFN, &lt;b&gt;두 개의 Conv&lt;/b&gt;가 Transformer의 MLP/FFN 역할&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;C channels
   &amp;darr; 1&amp;times;1 Conv
2C channels
   &amp;darr; 1&amp;times;1 Conv
C channels&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Depthwise-separable convolution&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;classification head에서 일반 convolution이 동시에 수행하던 공간 처리와 채널 혼합을 각각 Depthwise 3&amp;times;3과 Pointwise 1&amp;times;1 convolution으로 분리 -&amp;gt; 분류에서만 경량화&amp;nbsp;&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 data-end=&quot;189&quot; data-start=&quot;144&quot; data-section-id=&quot;nvtskb&quot;&gt;&lt;b&gt;Box regression branch:&lt;/b&gt; 일반 3&amp;times;3 Conv 유지&lt;/li&gt;
&lt;li data-end=&quot;255&quot; data-start=&quot;190&quot; data-section-id=&quot;1sk99c6&quot;&gt;&lt;b&gt;Classification branch:&lt;/b&gt; Depthwise 3&amp;times;3 + Pointwise 1&amp;times;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;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;2918&quot; data-start=&quot;2901&quot; data-section-id=&quot;sxpiu7&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;일반 convolution&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;2956&quot; data-start=&quot;2920&quot; data-ke-size=&quot;size16&quot;&gt;출력 채널마다 입력 채널별 공간 kernel을 전부 따로 가진다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;출력 채널 1
├─ 입력 채널 1용 2&amp;times;2 kernel
└─ 입력 채널 2용 2&amp;times;2 kernel

출력 채널 2
├─ 입력 채널 1용 또 다른 2&amp;times;2 kernel
└─ 입력 채널 2용 또 다른 2&amp;times;2 kernel&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;3173&quot; data-start=&quot;3139&quot; data-section-id=&quot;skzt4c&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;3173&quot; data-start=&quot;3139&quot; data-section-id=&quot;skzt4c&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Depthwise-separable convolution&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;3201&quot; data-start=&quot;3175&quot; data-ke-size=&quot;size16&quot;&gt;공간 kernel은 입력 채널마다 하나만 둔다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;입력 채널 1 &amp;rarr; 공간 kernel 1 &amp;rarr; Z₁
입력 채널 2 &amp;rarr; 공간 kernel 2 &amp;rarr; Z₂&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;3298&quot; data-start=&quot;3270&quot; data-ke-size=&quot;size16&quot;&gt;그 뒤 Pointwise convolution에서&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;출력 채널 1 = Z₁과 Z₂의 조합 1
출력 채널 2 = Z₁과 Z₂의 조합 2&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;입력 256채널, 출력 256채널, 3&amp;times;3 kernel 이라 하면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반 convolution 은 출력 채널 하나를 위해 256 * 3* 3 이 필요, 전체에 대해 256*256*3*3&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Depthwise-separable convolution은&amp;nbsp; depthwise 에서 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;256 * 3* 3&lt;span&gt;&amp;nbsp; , pointwise 에서 256*256 필요&lt;/span&gt;&lt;/span&gt;&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;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;결과&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-08-01 오전 8.28.23.png&quot; data-origin-width=&quot;968&quot; data-origin-height=&quot;474&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zFnDe/dJMcai5eu2S/ASQ6cKnABz2VSCbm6K1TC0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zFnDe/dJMcai5eu2S/ASQ6cKnABz2VSCbm6K1TC0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zFnDe/dJMcai5eu2S/ASQ6cKnABz2VSCbm6K1TC0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzFnDe%2FdJMcai5eu2S%2FASQ6cKnABz2VSCbm6K1TC0%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;474&quot; data-filename=&quot;스크린샷 2026-08-01 오전 8.28.23.png&quot; data-origin-width=&quot;968&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;가로 :&amp;nbsp; Latency T4 TensorRT10 FP16 (ms/img)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;NVIDIA T4 GPU에서 TensorRT 10과 FP16을 사용했을 때 이미지 한 장을 처리하는 데 걸리는 시간&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;세로 : COCO mAP50&amp;ndash;95
&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 data-end=&quot;675&quot; data-start=&quot;660&quot; data-section-id=&quot;ext2vc&quot;&gt;물체의 클래스가 맞는지&lt;/li&gt;
&lt;li data-end=&quot;703&quot; data-start=&quot;676&quot; data-section-id=&quot;17hmp6x&quot;&gt;예측 박스가 실제 박스와 얼마나 잘 겹치는지&lt;/li&gt;
&lt;/ul&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;&amp;nbsp;&lt;/p&gt;</description>
      <author>whereami72</author>
      <guid isPermaLink="true">https://lambdacourse.tistory.com/75</guid>
      <comments>https://lambdacourse.tistory.com/75#entry75comment</comments>
      <pubDate>Sat, 1 Aug 2026 11:54:47 +0900</pubDate>
    </item>
    <item>
      <title>[서정우] U-Net/U-Net++</title>
      <link>https://lambdacourse.tistory.com/74</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span data-token-index=&quot;0&quot;&gt;U-Net: Convolutional Networks for Biomedical Image Segmentation&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span data-token-index=&quot;0&quot;&gt;저자: Olaf Ronneberger, Philip Fischer, and Thomas Brox&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span data-token-index=&quot;0&quot;&gt;소속: University of Freiburg&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span data-token-index=&quot;0&quot;&gt;학회: MICCAI 2015&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span data-token-index=&quot;0&quot;&gt;&lt;a href=&quot;http://arxiv.org/abs/1505.04597&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;http://arxiv.org/abs/1505.04597&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1785534990829&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;U-Net: Convolutional Networks for Biomedical Image Segmentation&quot; data-og-description=&quot;There is large consent that successful training of deep networks requires many thousand annotated training samples. In this paper, we present a network and training strategy that relies on the strong use of data augmentation to use the available annotated &quot; data-og-host=&quot;arxiv.org&quot; data-og-source-url=&quot;http://arxiv.org/abs/1505.04597&quot; data-og-url=&quot;https://arxiv.org/abs/1505.04597v1&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bjuqgK/dJMb9kUhhXo/LmLz14PstqLD2t6S4dCXdk/img.png?width=1200&amp;amp;height=700&amp;amp;face=0_0_1200_700,https://scrap.kakaocdn.net/dn/blFYi9/dJMb9fZJJIc/FY9D804h1Yqip00aMRutM1/img.png?width=1000&amp;amp;height=1000&amp;amp;face=0_0_1000_1000&quot;&gt;&lt;a href=&quot;http://arxiv.org/abs/1505.04597&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;http://arxiv.org/abs/1505.04597&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bjuqgK/dJMb9kUhhXo/LmLz14PstqLD2t6S4dCXdk/img.png?width=1200&amp;amp;height=700&amp;amp;face=0_0_1200_700,https://scrap.kakaocdn.net/dn/blFYi9/dJMb9fZJJIc/FY9D804h1Yqip00aMRutM1/img.png?width=1000&amp;amp;height=1000&amp;amp;face=0_0_1000_1000');&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;U-Net: Convolutional Networks for Biomedical Image Segmentation&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;There is large consent that successful training of deep networks requires many thousand annotated training samples. In this paper, we present a network and training strategy that relies on the strong use of data augmentation to use the available annotated&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;arxiv.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;MOTIVATION&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;당시 딥러닝은 대규모 데이터셋에서 뛰어난 성능을 보이고 빠르게 발전했지만, 대부분 &lt;b&gt;ImageNet과 같은 대규모 데이터셋&lt;/b&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;/li&gt;
&lt;li&gt;라벨링 비용은 매우 높으며&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이러한 배경에서 저자는 적은 수의 의료 영상만으로 학습할 수 있으면서, 이미지 전체의 문맥과 정확한 위치 정보를 동시에 활용하는 segmentation network를 만들고자 하였습니다.&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;INTRODUCTION&lt;/h3&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;CNN은 Classification 분야에서 뛰어난 성능을 보였지만, 의료 영상처럼 픽셀 단위 예측이 필요한 Segmentation 문제에는 그대로 적용하기 어려웠습니다.&lt;/li&gt;
&lt;li&gt;Sliding Window 방식은 예측하려는 픽셀 주변의 작은 패치를 CNN에 입력하여 해당 픽셀의 클래스를 예측하는 방식으로, 픽셀 단위 분할이 가능하다는 장점이 있었습니다. 하지만 이미지 전체를 처리하려면 수많은 패치를 반복적으로 계산해야 했기 때문에 속도가 매우 느렸고, 넓은 문맥 정보를 활용하면 위치 정확도가 떨어지고, 위치 정확도를 높이면 문맥 정보를 충분히 활용하지 못하는 한계가 있었습니다.&lt;/li&gt;
&lt;li&gt;FCN : 이미지를 한 번에 입력 받아 픽셀 단위 예측을 수행하는 방식을 제시하였고, 이는 U-Net에서 기반으로 삼는 구조입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;U-Net&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span data-token-index=&quot;0&quot;&gt;U-Net은 FCN을 기반으로 합니다. FCN이 이미지 전체를 한 번에 입력받아 픽셀 단위 예측이 가능하다는 가능성을 보여주었기에, U-Net은 여기에 보다 정확한 위치 정보를 복원하는 구조를 추가했습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1568&quot; data-origin-height=&quot;432&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cymV6j/dJMcaa7lWA9/gjKI08hgNkNTadhbWHrO30/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cymV6j/dJMcaa7lWA9/gjKI08hgNkNTadhbWHrO30/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cymV6j/dJMcaa7lWA9/gjKI08hgNkNTadhbWHrO30/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcymV6j%2FdJMcaa7lWA9%2FgjKI08hgNkNTadhbWHrO30%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;1568&quot; height=&quot;432&quot; data-origin-width=&quot;1568&quot; data-origin-height=&quot;432&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;ARCHITECTURE&lt;/h3&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;1198&quot; data-origin-height=&quot;964&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Fo2eO/dJMcahyz3tY/YbjBtq5bQrE3VZkkDrhmPk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Fo2eO/dJMcahyz3tY/YbjBtq5bQrE3VZkkDrhmPk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Fo2eO/dJMcahyz3tY/YbjBtq5bQrE3VZkkDrhmPk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFo2eO%2FdJMcahyz3tY%2FYbjBtq5bQrE3VZkkDrhmPk%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;477&quot; height=&quot;384&quot; data-origin-width=&quot;1198&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;&lt;b&gt;Contraction Path&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저, 입력 이미지를 받아서 3&amp;times;3 합성곱 두 번과 2&amp;times;2 맥스 풀링을 한 묶음으로 네 번 반복하며 이미지를 점점 작게 압축합니다. 이 과정에서 해상도는 절반씩 줄어들지만 채널 수는 두 배씩 늘어납니다. 즉 &quot;정확히 어디인지&quot;는 흐려지는 대신 &quot;이 영역이 대체로 무엇인지&quot;에 대한 정보가 응축된다. 572&amp;times;572로 들어온 이미지는 이 과정을 거쳐 28&amp;times;28까지 줄어듭니다.&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;2250&quot; data-origin-height=&quot;414&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/clCFCI/dJMcaijW1o6/cM7MejYR81aZPFFSG4uR70/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/clCFCI/dJMcaijW1o6/cM7MejYR81aZPFFSG4uR70/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/clCFCI/dJMcaijW1o6/cM7MejYR81aZPFFSG4uR70/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FclCFCI%2FdJMcaijW1o6%2FcM7MejYR81aZPFFSG4uR70%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;2250&quot; height=&quot;414&quot; data-origin-width=&quot;2250&quot; data-origin-height=&quot;414&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 해상도를 계속 줄이면 위치 정보가 점점 손실된다는 문제가 발생합니다. U-Net은 이러한 한계를 해결하기 위해 각 contraction level에서 생성된 고해상도 Feature Map을 저장해 두었다가, Expansive Path에서 업샘플링된 Feature와 결합하는 &lt;b&gt;Skip Connection&lt;/b&gt;을 도입했습니다. 즉, Encoder는 문맥 정보를 학습하고, Skip Connection은 잃어버린 위치 정보를 Decoder로 전달하는 다리 역할을 수행한다.&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;&lt;b&gt;Expansive Path&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;매 단계마다 2&amp;times;2 업 합성곱(up-convolution)으로 해상도를 두 배로 늘리고 채널은 절반으로 줄인 뒤, 여기에 &lt;span data-token-index=&quot;1&quot;&gt;압축 단계에서 미리 복사해둔 feature를 채널 방향으로 이어붙입니다&lt;/span&gt;. 압축 전의 사본에는 흐려지기 전의 세밀한 경계 정보가 그대로 남아 있으므로, 아래에서 올라온 &quot;무엇인지&quot;에 대한 판단과 옆에서 건너온 &quot;어디인지&quot;에 대한 정보가 같은 좌표에서 만나게 됩니다. 다만 합성곱을 padding 없이 쓰기 때문에 두 feature의 크기가 어긋나 있고, 그래서 복사해온 쪽의 가장자리를 잘라내 크기를 맞추는 crop 과정이 함께 들어간다. 이어붙인 뒤에는 다시 3&amp;times;3 합성곱을 두 번 적용하는데, 실제로 두 정보를 &lt;span data-token-index=&quot;3&quot;&gt;어떻게 결합할지를 학습하는 것은 이 합성곱입니다&lt;/span&gt;. 이 왕복을 네 번 반복하고 마지막에 1&amp;times;1 합성곱으로 각 픽셀의 특징 벡터를 클래스 개수만큼의 점수로 바꾸면 최종 분할 결과가 나옵니다.&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;Overlap-Tile Strategy &amp;amp; Mirror-extrapolation&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1368&quot; data-origin-height=&quot;674&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YZnPd/dJMcagflynJ/syecxsnqYFMxLvMHwoWes0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YZnPd/dJMcagflynJ/syecxsnqYFMxLvMHwoWes0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YZnPd/dJMcagflynJ/syecxsnqYFMxLvMHwoWes0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYZnPd%2FdJMcagflynJ%2FsyecxsnqYFMxLvMHwoWes0%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;631&quot; height=&quot;311&quot; data-origin-width=&quot;1368&quot; data-origin-height=&quot;674&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;Unpadded convolution 때문에 572&amp;sup2; 입력이 388&amp;sup2; 출력이 되는데, 이를 뒤집어 말하면 어떤 영역을 예측하려면 그보다 각 변 92픽셀 넓은 입력이 필요하다는 뜻입니다. 이를 해결하기 위해서, Overlap-tile과 mirroring을 사용합니다.&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;Overlap-tile은 있는 데이터를 어떻게 나눌지에 대한 전략이고, mirroring은 모자란 픽셀을 어떻게 지어낼지에 대한 방법입니다. Mirroring extrapolation 기법 사용하여 입력 이미지의 가장자리를 거울 반사된 형태로&lt;span&gt;&amp;nbsp;&lt;/span&gt;확장하고, Overlap-tile은&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;Overlap-tile은 기준을 입력이 아니라 출력에 둡니다. 388&amp;sup2;씩 잘라 격자처럼 배치하면 출력 타일끼리는 겹치지 않고 딱 맞물립니다. 반면 각 타일의 입력은 572&amp;sup2;여야 하므로 이웃 타일과 184픽셀씩 겹칩니다. &lt;b&gt;Mirror extrapolation&lt;/b&gt;은 그 다음 문제를 맡습니다. 맨 가장자리 타일은 필요한 92픽셀이 이미지 바깥이라 아예 존재하지 않습니다. 원본을 경계 너머로 반사시켜 그 간극을 채웁니다.&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-filename=&quot;blob&quot; data-origin-width=&quot;735&quot; data-origin-height=&quot;376&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/caDuTr/dJMcaixvWxr/Bg8Q4QWCkgIRUtHPDplB1K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/caDuTr/dJMcaixvWxr/Bg8Q4QWCkgIRUtHPDplB1K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/caDuTr/dJMcaixvWxr/Bg8Q4QWCkgIRUtHPDplB1K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcaDuTr%2FdJMcaixvWxr%2FBg8Q4QWCkgIRUtHPDplB1K%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;534&quot; height=&quot;273&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;735&quot; data-origin-height=&quot;376&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;TRAINING&lt;/h3&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;1414&quot; data-origin-height=&quot;584&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SHVEi/dJMcabE4JU4/5MKPYqgCRkqc9JkWKsKDi1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SHVEi/dJMcabE4JU4/5MKPYqgCRkqc9JkWKsKDi1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SHVEi/dJMcabE4JU4/5MKPYqgCRkqc9JkWKsKDi1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSHVEi%2FdJMcabE4JU4%2F5MKPYqgCRkqc9JkWKsKDi1%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;1414&quot; height=&quot;584&quot; data-origin-width=&quot;1414&quot; data-origin-height=&quot;584&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;학습은 Caffe의 stochastic gradient descent 구현으로 이루어집니다. 출력이 입력보다 일정한 테두리 폭만큼 작으므로 타일마다 고정된 손실이 발생하고, 이 오버헤드를 줄이려면 타일을 크게 써야 합니다. 그래서 저자들은 한정된 GPU 메모리를 배치가 아니라 &lt;span data-token-index=&quot;1&quot;&gt;타일 크기에 몰아주고&lt;/span&gt;, 대신 배치가 1이어서 요동치는 gradient를 높은 momentum(0.99)으로 보상했습니다.&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;892&quot; data-origin-height=&quot;278&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/baCbpc/dJMcahFh56F/8hIbxvaYjQ4p4jZZazEo91/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/baCbpc/dJMcahFh56F/8hIbxvaYjQ4p4jZZazEo91/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/baCbpc/dJMcahFh56F/8hIbxvaYjQ4p4jZZazEo91/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbaCbpc%2FdJMcahFh56F%2F8hIbxvaYjQ4p4jZZazEo91%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;278&quot; data-origin-width=&quot;892&quot; data-origin-height=&quot;278&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;손실 함수는 최종 feature map에 픽셀 단위 soft-max를 적용하고 cross entropy를 결합해 계산합니다. $E$ 함수를 $\sum w(x)g(x)$이라고 하면, $g(x)$는 확률의 로그 값에 weight를 곱한 값들의 합이라고 볼 수 있습니다. 참고로, 이 식을 살펴 보면, 정답 확률이 높을수록, $E$ 도 커지기 때문에 loss 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;다음으로, 가중치 $w(x)$에 대해 살펴보면,&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$w_c(x)$는 클래스 빈도 불균형을 보정하는 항이고, $d_1$은 가장 가까운 개체까지의 거리, $d_2$는 두 번째로 가까운 개체까지의 거리입니다. 결국은, $d_1(x)+d_2(x)$가 0이 되는 두 개체가 맞닿는 접촉 경계에서 커지는 것을 확인할 수 있습니다.&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;DATA AUGMENTATION&lt;/h3&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;1242&quot; data-origin-height=&quot;690&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cISFCu/dJMcabyi9Wi/R4vfrBYbRN71aL7xkD62Q1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cISFCu/dJMcabyi9Wi/R4vfrBYbRN71aL7xkD62Q1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cISFCu/dJMcabyi9Wi/R4vfrBYbRN71aL7xkD62Q1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcISFCu%2FdJMcabyi9Wi%2FR4vfrBYbRN71aL7xkD62Q1%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;666&quot; height=&quot;370&quot; data-origin-width=&quot;1242&quot; data-origin-height=&quot;690&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;U-Net은 Shift, Rotation, 그리고 Random Elastic Deformation을 활용하여 제한된 학습 데이터를 효과적으로 확장하였습니다. 특히 Random Elastic Deformation은 조직과 세포가 실제 생체 환경에서 다양한 형태로 변형되는 특성을 모사하는 기법으로, 적은 수의 학습 이미지만으로도 다양한 형태의 변형에 대한 강인성을 학습할 수 있도록 합니다. 논문에서 이러한 Data Augmentation이 의료영상 분할에서 매우 중요한 요소이며, 특히 Elastic Deformation이 적은 수의 Annotation만으로도 높은 성능을 달성할 수 있었던 핵심 요인이라고 강조하였습니다.&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;EXPERIMENTS&lt;/h3&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;1402&quot; data-origin-height=&quot;568&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TGZ4z/dJMcafnhENy/M4EeukkQHjTqjyBLbkOTi1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TGZ4z/dJMcafnhENy/M4EeukkQHjTqjyBLbkOTi1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TGZ4z/dJMcafnhENy/M4EeukkQHjTqjyBLbkOTi1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTGZ4z%2FdJMcafnhENy%2FM4EeukkQHjTqjyBLbkOTi1%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;1402&quot; height=&quot;568&quot; data-origin-width=&quot;1402&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;Warping Error는 객체의 연결 구조를 얼마나 정확하게 복원했는지를 평가하는 지표이며, Rand Error는 예측된 분할 결과와 정답 사이의 유사도를 측정합니다. Pixel Error는 전체 픽셀 중 잘못 분류된 비율을 나타내는 가장 직관적인 오차 지표입니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실험 결과, U-Net은 &lt;b&gt;Warping Error에서 가장 낮은 오차를 기록하며 1위를 달성&lt;/b&gt;하였습니다. 또한 Rand Error와 Pixel Error에서도 기존 최고 성능과 비슷하거나 더 우수한 결과를 보이며, 당시 대표적인 Sliding Window 기반 CNN을 포함한 기존 방법들을 뛰어넘었습니다. 이는 U-Net이 정확한 객체 경계와 구조를 효과적으로 복원할 수 있음을 보여주는 결과입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1324&quot; data-origin-height=&quot;432&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/N5jCW/dJMcagsSW02/6p0iDOpQAKMFrauzW2vn1K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/N5jCW/dJMcagsSW02/6p0iDOpQAKMFrauzW2vn1K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/N5jCW/dJMcagsSW02/6p0iDOpQAKMFrauzW2vn1K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FN5jCW%2FdJMcagsSW02%2F6p0iDOpQAKMFrauzW2vn1K%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;1324&quot; height=&quot;432&quot; data-origin-width=&quot;1324&quot; data-origin-height=&quot;432&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Table 2는 &lt;b&gt;ISBI Cell Tracking Challenge&lt;/b&gt;에서 U-Net의 성능을 평가한 결과입니다. &lt;b&gt;PhC-U373&lt;/b&gt;은 Phase Contrast 현미경 영상으로 촬영한 세포 데이터셋이며, &lt;b&gt;DIC-HeLa&lt;/b&gt;는 Differential Interference Contrast(DIC) 현미경으로 촬영한 HeLa 세포 데이터셋입니다. 표의 성능은 &lt;b&gt;평균 Intersection over Union(IoU)&lt;/b&gt; 으로 평가되며, 여기서 U-Net은 두 데이터셋 모두에서 기존 방법보다 높은 성능을 기록하였습니다. 특히 &lt;b&gt;DIC-HeLa 데이터셋에서는 기존 최고 성능인 46%에서 77.56%까지 크게 향상&lt;/b&gt;되었으며, &lt;b&gt;PhC-U373 데이터셋에서도 가장 높은 IoU를 달성&lt;/b&gt;하였습니다.&amp;nbsp;&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;CONCLUSION&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;U-Net은 FCN을 기반으로 Contraction-Expansive Path 구조와 Skip Connection을 결합하여 문맥 정보와 위치 정보를 동시에 활용할 수 있도록 설계하였습니다. 또한 의료영상의 특성을 고려하여 Overlap-Tile, Mirror Padding, Elastic Deformation 기반의 Data Augmentation, 그리고 Weighted Loss를 함께 제안함으로써 정확한 분할 성능과 우수한 일반화 성능을 달성하였습니다.&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;UNet++: A Nested U-Net Architecture for Medical Image Segmentation&lt;/b&gt;&lt;/h3&gt;
&lt;p data-sourcepos=&quot;5:1-5:108;94-201&quot; data-ke-size=&quot;size16&quot;&gt;논문저자: Zongwei Zhou, Md Mahfuzur Rahman Siddiquee, Nima Tajbakhsh, Jianming Liang (Arizona State University)&lt;/p&gt;
&lt;p data-sourcepos=&quot;7:1-7:35;203-237&quot; data-ke-size=&quot;size16&quot;&gt;제출학회: DLMIA 2018 (MICCAI Workshop)&lt;/p&gt;
&lt;p data-sourcepos=&quot;9:1-9:41;239-279&quot; data-ke-size=&quot;size16&quot;&gt;논문링크: &lt;a href=&quot;https://arxiv.org/abs/1807.10165&quot;&gt;https://arxiv.org/abs/1807.10165&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1785538877762&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;UNet++: A Nested U-Net Architecture for Medical Image Segmentation&quot; data-og-description=&quot;In this paper, we present UNet++, a new, more powerful architecture for medical image segmentation. Our architecture is essentially a deeply-supervised encoder-decoder network where the encoder and decoder sub-networks are connected through a series of nes&quot; data-og-host=&quot;arxiv.org&quot; data-og-source-url=&quot;https://arxiv.org/abs/1807.10165&quot; data-og-url=&quot;https://arxiv.org/abs/1807.10165v1&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/u3YW5/dJMb82e1uGx/DkLLW8xVkiIxuhCBakEvn0/img.png?width=1200&amp;amp;height=700&amp;amp;face=0_0_1200_700,https://scrap.kakaocdn.net/dn/suZAB/dJMb8YX0nNR/dJ3ZSiRK2zGpkkXyi5Mka1/img.png?width=1000&amp;amp;height=1000&amp;amp;face=0_0_1000_1000&quot;&gt;&lt;a href=&quot;https://arxiv.org/abs/1807.10165&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://arxiv.org/abs/1807.10165&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/u3YW5/dJMb82e1uGx/DkLLW8xVkiIxuhCBakEvn0/img.png?width=1200&amp;amp;height=700&amp;amp;face=0_0_1200_700,https://scrap.kakaocdn.net/dn/suZAB/dJMb8YX0nNR/dJ3ZSiRK2zGpkkXyi5Mka1/img.png?width=1000&amp;amp;height=1000&amp;amp;face=0_0_1000_1000');&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;UNet++: A Nested U-Net Architecture for Medical Image Segmentation&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;In this paper, we present UNet++, a new, more powerful architecture for medical image segmentation. Our architecture is essentially a deeply-supervised encoder-decoder network where the encoder and decoder sub-networks are connected through a series of nes&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;arxiv.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;h2 data-sourcepos=&quot;13:1-13:50;286-335&quot; data-ke-size=&quot;size26&quot;&gt;Motivation&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;U-Net(2015)과 FCN(2015) 이후 segmentation 모델의 표준형은 encoder-decoder 구조가 되었고, 그 성공의 핵심은 skip connection이었습니다.&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;그런데 저자는 같은 문장을 읽고 다른 결론을 냅니다. 앞서 expansive와&amp;nbsp;contraction feature가 &quot;의미론적으로 다르다&quot;는 것이 곧 문제라는 것입니다.&amp;nbsp;차이 나는 두 표현을 채널 방향으로 그대로 이어붙이는 것이 plain skip connection입니다. 본 논문은 이 상태에서 optimizer가 푸는 문제가 불필요하게 어렵다는 것입니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-sourcepos=&quot;23:1-23:285;1215-1499&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-sourcepos=&quot;23:1-23:285;1215-1499&quot; data-ke-size=&quot;size16&quot;&gt;논문은 이 지점에서 자연영상과 의료영상을 구분합니다. 자연영상 segmentation은 이미 만족스러운 수준에 도달했지만, 의료영상은 요구되는 정확도의 기준이 다르다는 것입니다. 결절(nodule) 주변의 미세한 침상 패턴(spiculation)은 악성 여부를 시사하는 소견인데, 이것이 segmentation mask에서 빠지면 임상적 신뢰도가 떨어집니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-sourcepos=&quot;25:1-25:119;1501-1619&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-sourcepos=&quot;29:1-29:36;1626-1661&quot; data-ke-size=&quot;size26&quot;&gt;UNet++의 아이디어 - 붙이기 전에 격차를 줄인다&lt;/h2&gt;
&lt;p data-sourcepos=&quot;31:1-31:220;1663-1882&quot; data-ke-size=&quot;size16&quot;&gt;핵심 가설은 한 문장으로 요약됩니다. &lt;b&gt;encoder의 고해상도 feature map을 decoder의 의미론적으로 풍부한 feature map과 융합하기 전에 점진적으로 풍부하게(gradually enriched) 만들면, 전경 객체의 세부를 더 잘 포착할 수 있습니다.&lt;/b&gt; U-Net처럼 고해상도 feature를 곧장 decoder로 넘기지 않고, 중간에 처리 단계를 두겠다는 것입니다. 검정이 원래 U-Net, &lt;b&gt;초록은 skip pathway 위의 convolution block, 파랑은 dense skip connection, 빨강은 deep supervision&lt;/b&gt;입니다.&lt;/p&gt;
&lt;p data-sourcepos=&quot;33:1-33:153;1884-2036&quot; 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-filename=&quot;Screenshot 2026-08-01 at 8.30.00 AM.png&quot; data-origin-width=&quot;762&quot; data-origin-height=&quot;508&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bnwKXt/dJMcabdXoTj/eNpQFu13fKllgp6mapvJo0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bnwKXt/dJMcabdXoTj/eNpQFu13fKllgp6mapvJo0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bnwKXt/dJMcabdXoTj/eNpQFu13fKllgp6mapvJo0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbnwKXt%2FdJMcabdXoTj%2FeNpQFu13fKllgp6mapvJo0%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;515&quot; height=&quot;343&quot; data-filename=&quot;Screenshot 2026-08-01 at 8.30.00 AM.png&quot; data-origin-width=&quot;762&quot; data-origin-height=&quot;508&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-sourcepos=&quot;35:1-35:33;2038-2070&quot; data-ke-size=&quot;size23&quot;&gt;1) Re-designed skip pathways&lt;/h3&gt;
&lt;p data-sourcepos=&quot;37:1-37:328;2072-2399&quot; data-ke-size=&quot;size16&quot;&gt;U-Net에서 encoder feature는 decoder로 직행합니다. UNet++에서는 그 사이에 &lt;b&gt;dense convolution block&lt;/b&gt;을 통과하며, 블록 안의 convolution layer 수는 피라미드 레벨에 따라 달라집니다. 논문이 든 예시로, &lt;span&gt;&lt;span&gt;X0,0X^{0,0} &lt;/span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;X&lt;/span&gt;&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;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;/span&gt;&lt;/span&gt;&lt;/span&gt;과 &lt;span&gt;&lt;span&gt;X1,3X^{1,3} &lt;/span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;X&lt;/span&gt;&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;3&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; 사이의 skip pathway에는 &lt;b&gt;convolution layer 세 개&lt;/b&gt;가 놓입니다. 그리고 각 convolution 앞에는 concatenation layer가 있어, 같은 블록 내 이전 convolution의 출력과 아래 블록에서 up-sampling된 출력을 합칩니다.&lt;/p&gt;
&lt;p data-sourcepos=&quot;39:1-39:154;2401-2554&quot; data-ke-size=&quot;size16&quot;&gt;형식적으로는 식 (1)로 정의됩니다. &lt;span&gt;&lt;span&gt;xi,jx^{i,j} &lt;/span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;x&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;i&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt;j&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;는 노드 &lt;span&gt;&lt;span&gt;Xi,jX^{i,j} &lt;/span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;X&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;i&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt;j&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;의 출력이고, &lt;span&gt;&lt;span&gt;ii &lt;/span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;i&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;는 encoder를 따라 내려가는 down-sampling 층의 인덱스, &lt;span&gt;&lt;span&gt;jj &lt;/span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;j&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;는 skip pathway를 따라 오른쪽으로 가는 convolution layer의 인덱스입니다.&lt;/p&gt;
&lt;p data-sourcepos=&quot;39:1-39:154;2401-2554&quot; 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;790&quot; data-origin-height=&quot;214&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c4BSt8/dJMcagl5FpO/7DJmlngNsJMphaEUmTVlz1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c4BSt8/dJMcagl5FpO/7DJmlngNsJMphaEUmTVlz1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c4BSt8/dJMcagl5FpO/7DJmlngNsJMphaEUmTVlz1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc4BSt8%2FdJMcagl5FpO%2F7DJmlngNsJMphaEUmTVlz1%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;572&quot; height=&quot;155&quot; data-origin-width=&quot;790&quot; data-origin-height=&quot;214&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Screenshot 2026-08-01 at 8.48.44 AM.png&quot; data-origin-width=&quot;922&quot; data-origin-height=&quot;318&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/n4VHm/dJMcaf1LJbE/UMAgPrELYKZno2tXYaf7h1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/n4VHm/dJMcaf1LJbE/UMAgPrELYKZno2tXYaf7h1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/n4VHm/dJMcaf1LJbE/UMAgPrELYKZno2tXYaf7h1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fn4VHm%2FdJMcaf1LJbE%2FUMAgPrELYKZno2tXYaf7h1%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;437&quot; height=&quot;151&quot; data-filename=&quot;Screenshot 2026-08-01 at 8.48.44 AM.png&quot; data-origin-width=&quot;922&quot; data-origin-height=&quot;318&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-sourcepos=&quot;50:1-52:124;2852-3117&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-sourcepos=&quot;50:1-50:77;2852-2928&quot;&gt;&lt;span&gt;&lt;span&gt;j=0&lt;/span&gt;&lt;/span&gt;인 노드는 encoder의 이전 층에서 &lt;b&gt;입력 하나&lt;/b&gt;만 받습니다. 이 열이 곧 원래 U-Net의 encoder입니다.&lt;/li&gt;
&lt;li data-sourcepos=&quot;51:1-51:65;2929-2993&quot;&gt;&lt;span&gt;&lt;span&gt;j=1&lt;/span&gt;&lt;/span&gt;인 노드는 &lt;b&gt;입력 둘&lt;/b&gt;을 받습니다. 둘 다 encoder에서 오지만 연속된 두 레벨에서 옵니다.&lt;/li&gt;
&lt;li data-sourcepos=&quot;52:1-52:124;2994-3117&quot;&gt;&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;j&lt;/span&gt;&lt;span&gt;&amp;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;b&gt;입력 &lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;j&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;/b&gt;를 받습니다. 그중 &lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;j&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;개는 같은 skip pathway 위 이전 노드들의 출력이고, 나머지 하나는 아래쪽 skip pathway에서 up-sampling된 출력입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;732&quot; data-origin-height=&quot;342&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/baxPs5/dJMcahFh7cj/OkMP7glL4o5x0SwHUxGzr1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/baxPs5/dJMcahFh7cj/OkMP7glL4o5x0SwHUxGzr1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/baxPs5/dJMcahFh7cj/OkMP7glL4o5x0SwHUxGzr1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbaxPs5%2FdJMcahFh7cj%2FOkMP7glL4o5x0SwHUxGzr1%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;732&quot; height=&quot;342&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;732&quot; data-origin-height=&quot;342&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Screenshot 2026-08-01 at 8.34.01 AM.png&quot; data-origin-width=&quot;756&quot; data-origin-height=&quot;244&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6QgQR/dJMcadv3jmB/e5PdKdBRWI4cC58W8znNdk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6QgQR/dJMcadv3jmB/e5PdKdBRWI4cC58W8znNdk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6QgQR/dJMcadv3jmB/e5PdKdBRWI4cC58W8znNdk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6QgQR%2FdJMcadv3jmB%2Fe5PdKdBRWI4cC58W8znNdk%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;756&quot; height=&quot;244&quot; data-filename=&quot;Screenshot 2026-08-01 at 8.34.01 AM.png&quot; data-origin-width=&quot;756&quot; data-origin-height=&quot;244&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원본 해상도의 가장 세밀한 정보가 네 번 모두 재사용되며, 그때마다 조금씩 더 의미론적인 신호와 섞입니다. DenseNet의 dense connectivity를 skip pathway 위에 옮겨놓은 형태이고, 논문도 이를 dense convolution block이라 부릅니다.&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;그럼, U-Net의 Skip과 뭐가 다른가&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;U-Net의 skip은 encoder에서 복사해 crop한 뒤 곧장 concat하는, 연산이 없는 통로였습니다. UNet++의 skip pathway는 그 자체가 학습되는 서브네트워크입니다. 이 차이가 파라미터 증가로 이어지고, 그래서 저자들이 뒤에서 wide U-Net이라는 별도 baseline을 만들게 됩니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-sourcepos=&quot;69:1-69:24;3815-3838&quot; data-ke-size=&quot;size23&quot;&gt;2) Deep supervision&lt;/h3&gt;
&lt;p data-sourcepos=&quot;71:1-71:244;3840-4083&quot; data-ke-size=&quot;size16&quot;&gt;nested skip pathway 덕분에 UNet++는 &lt;b&gt;여러 의미 수준에서 전체 해상도 feature map&lt;/b&gt; &lt;span&gt;&lt;span&gt;{x0,j,&amp;nbsp;j&amp;isin;{1,2,3,4}}\{x^{0,j},\ j \in \{1,2,3,4\}\} &lt;/span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;{&lt;/span&gt;&lt;span&gt;&lt;span&gt;x&lt;/span&gt;&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;j&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&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;nbsp;&lt;/span&gt;&lt;span&gt;j&lt;/span&gt;&lt;span&gt;&amp;isin;&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;2&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt;3&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;을 만들어냅니다. 최상단 행의 노드 넷이 모두 원본 해상도를 갖는다는 뜻이고, 따라서 각각에 loss를 걸 수 있습니다. 구현상으로는 각 목표 노드에 &lt;b&gt;1&amp;times;1 convolution과 sigmoid&lt;/b&gt;를 붙여 segmentation map 네 장을 얻습니다.&lt;/p&gt;
&lt;p data-sourcepos=&quot;73:1-73:54;4085-4138&quot; data-ke-size=&quot;size16&quot;&gt;손실 함수는 binary cross-entropy와 dice coefficient의 조합입니다.&lt;/p&gt;
&lt;p data-sourcepos=&quot;73:1-73:54;4085-4138&quot; 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-filename=&quot;Screenshot 2026-08-01 at 8.37.06 AM.png&quot; data-origin-width=&quot;810&quot; data-origin-height=&quot;194&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WTqhG/dJMcahSMWnG/t4gmpFEVlkRE7AYTPmt9Bk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WTqhG/dJMcahSMWnG/t4gmpFEVlkRE7AYTPmt9Bk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WTqhG/dJMcahSMWnG/t4gmpFEVlkRE7AYTPmt9Bk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWTqhG%2FdJMcahSMWnG%2Ft4gmpFEVlkRE7AYTPmt9Bk%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;585&quot; height=&quot;140&quot; data-filename=&quot;Screenshot 2026-08-01 at 8.37.06 AM.png&quot; data-origin-width=&quot;810&quot; data-origin-height=&quot;194&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;U-Net이 픽셀별 soft-max와 가중 cross-entropy를 썼던 것과 달리 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;앞항이 cross-entropy, 뒷항이 dice입니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;접촉 개체 분리를 위한 가중치 맵은 사라지고, 클래스 불균형에 강한 dice 항이 그 자리를 대신합니다. deep supervision이 주는 실질적 이득은 두 가지 운용 모드입니다. 출력 네 개를 평균 내는 정확 모드(accurate mode)와, 하나만 골라 쓰는 빠른 모드(fast mode)입니다. 후자에서 어느 분기를 고르느냐가 곧 모델을 어디서 잘라낼지를 결정합니다.&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-filename=&quot;Screenshot 2026-08-01 at 8.54.26 AM.png&quot; data-origin-width=&quot;448&quot; data-origin-height=&quot;756&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brMvKV/dJMcaaGh1Gx/dSrdoUVviS8Ntb6wdvAAlK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brMvKV/dJMcaaGh1Gx/dSrdoUVviS8Ntb6wdvAAlK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brMvKV/dJMcaaGh1Gx/dSrdoUVviS8Ntb6wdvAAlK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbrMvKV%2FdJMcaaGh1Gx%2FdSrdoUVviS8Ntb6wdvAAlK%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;313&quot; height=&quot;528&quot; data-filename=&quot;Screenshot 2026-08-01 at 8.54.26 AM.png&quot; data-origin-width=&quot;448&quot; data-origin-height=&quot;756&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-sourcepos=&quot;95:1-95:34;4938-4971&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-sourcepos=&quot;95:1-95:34;4938-4971&quot; data-ke-size=&quot;size26&quot;&gt;Experiment&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;데이터셋&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;네 개의 의료영상 데이터셋을 씁니다. cell nuclei(670장, 96&amp;times;96, 현미경), colon polyp(7,379장, 224&amp;times;224, RGB 비디오), liver(331장, 512&amp;times;512, CT), lung nodule(1,012장, 64&amp;times;64&amp;times;64, CT)입니다. &lt;b&gt;modality와 크기가 모두 다르고 3D 데이터도 포함&lt;/b&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;wide U-Net이라는 대조군&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Screenshot 2026-08-01 at 8.40.57 AM.png&quot; data-origin-width=&quot;1254&quot; data-origin-height=&quot;192&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dTk5yY/dJMcabrAIlK/F76up0kmIHU4ca5Uok76s0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dTk5yY/dJMcabrAIlK/F76up0kmIHU4ca5Uok76s0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dTk5yY/dJMcabrAIlK/F76up0kmIHU4ca5Uok76s0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdTk5yY%2FdJMcabrAIlK%2FF76up0kmIHU4ca5Uok76s0%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;1254&quot; height=&quot;192&quot; data-filename=&quot;Screenshot 2026-08-01 at 8.40.57 AM.png&quot; data-origin-width=&quot;1254&quot; data-origin-height=&quot;192&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;UNet++는 skip pathway에 convolution을 추가했으므로 파라미터가 늘어납니다. 그러면 성능 향상이 &lt;b&gt;구조 때문인지 파라미터가 많아져서인지&lt;/b&gt; 구분할 수 없습니다. 저자들은 이를 차단하기 위해 채널 수만 늘린 wide 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 alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Screenshot 2026-08-01 at 8.41.45 AM.png&quot; data-origin-width=&quot;1262&quot; data-origin-height=&quot;840&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bprTeA/dJMcaaTJJWU/8vUbukjEyG3IKx8ZtsV9i1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bprTeA/dJMcaaTJJWU/8vUbukjEyG3IKx8ZtsV9i1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bprTeA/dJMcaaTJJWU/8vUbukjEyG3IKx8ZtsV9i1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbprTeA%2FdJMcaaTJJWU%2F8vUbukjEyG3IKx8ZtsV9i1%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;559&quot; height=&quot;372&quot; data-filename=&quot;Screenshot 2026-08-01 at 8.41.45 AM.png&quot; data-origin-width=&quot;1262&quot; data-origin-height=&quot;840&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;wide U-Net은 U-Net보다 일관되게 낫지만 그 폭이 작고(liver에서는 오히려 소폭 하락) 파라미터 증가로 설명됩니다. 반면 &lt;b&gt;UNet++는 deep supervision 없이도 U-Net 대비 평균 2.8점, wide U-Net 대비 3.3점의 IoU 향상&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;1.&lt;b&gt; deep supervision이 항상 이롭지는 않습니다&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;표를 자세히 보면 deep supervision이 &lt;b&gt;cell nuclei에서 92.63 &amp;rarr; 92.52, colon polyp에서 33.45 &amp;rarr; 32.12로 오히려 떨어집니다.&lt;/b&gt; 논문은 이를 인정하고, 폴립과 간은 비디오 프레임과 CT 슬라이스에서 다양한 스케일로 나타나므로 모든 분기를 활용하는 multi-scale 접근이 필요한 반면 다른 두 과제는 그렇지 않다고 설명합니다. 사후 해석에 가깝지만, 결과를 감추지 않고 제시한 점은 평가할 만합니다.&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.&lt;b&gt;Model pruning&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;deep supervision으로 학습해두면 추론 시점에 모델을 잘라 쓸 수 있습니다. &lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;UNet++&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;L&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;i&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;는 레벨 &lt;span&gt;&lt;span&gt;ii &lt;/span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;i&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;에서 가지친 모델을 뜻하며, 파라미터가 &lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;L&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;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; 0.1M부터 &lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;L&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; 9.0M까지 분포합니다. &lt;b&gt;&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;L&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;3&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;은 추론 시간을 평균 32.2% 줄이면서 IoU 손실이 0.6점에 그칩니다.&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 alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Screenshot 2026-08-01 at 8.57.17 AM.png&quot; data-origin-width=&quot;1256&quot; data-origin-height=&quot;936&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhzbCW/dJMcajpval4/1lv2KNtFcLHGnV3wghCHQ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhzbCW/dJMcajpval4/1lv2KNtFcLHGnV3wghCHQ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhzbCW/dJMcajpval4/1lv2KNtFcLHGnV3wghCHQ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhzbCW%2FdJMcajpval4%2F1lv2KNtFcLHGnV3wghCHQ1%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;675&quot; height=&quot;503&quot; data-filename=&quot;Screenshot 2026-08-01 at 8.57.17 AM.png&quot; data-origin-width=&quot;1256&quot; data-origin-height=&quot;936&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Pytorch 코드&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Screenshot 2026-08-01 at 9.08.08 AM.png&quot; data-origin-width=&quot;1598&quot; data-origin-height=&quot;764&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bpKFHb/dJMcabZuwJy/Fkds2kq26zJpVcLOXwAbF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bpKFHb/dJMcabZuwJy/Fkds2kq26zJpVcLOXwAbF1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bpKFHb/dJMcabZuwJy/Fkds2kq26zJpVcLOXwAbF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbpKFHb%2FdJMcabZuwJy%2FFkds2kq26zJpVcLOXwAbF1%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;1598&quot; height=&quot;764&quot; data-filename=&quot;Screenshot 2026-08-01 at 9.08.08 AM.png&quot; data-origin-width=&quot;1598&quot; data-origin-height=&quot;764&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Screenshot 2026-08-01 at 9.09.11 AM.png&quot; data-origin-width=&quot;1196&quot; data-origin-height=&quot;1216&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bq8zk6/dJMcaidgjye/1sHSE2okoCqTdMYhMRyRak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bq8zk6/dJMcaidgjye/1sHSE2okoCqTdMYhMRyRak/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bq8zk6/dJMcaidgjye/1sHSE2okoCqTdMYhMRyRak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbq8zk6%2FdJMcaidgjye%2F1sHSE2okoCqTdMYhMRyRak%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;1196&quot; height=&quot;1216&quot; data-filename=&quot;Screenshot 2026-08-01 at 9.09.11 AM.png&quot; data-origin-width=&quot;1196&quot; data-origin-height=&quot;1216&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Screenshot 2026-08-01 at 9.08.55 AM.png&quot; data-origin-width=&quot;1178&quot; data-origin-height=&quot;1294&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AIGwk/dJMcag7skVn/ydtkwbDM74SyZKJ2d9FDRk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AIGwk/dJMcag7skVn/ydtkwbDM74SyZKJ2d9FDRk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AIGwk/dJMcag7skVn/ydtkwbDM74SyZKJ2d9FDRk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAIGwk%2FdJMcag7skVn%2FydtkwbDM74SyZKJ2d9FDRk%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;1178&quot; height=&quot;1294&quot; data-filename=&quot;Screenshot 2026-08-01 at 9.08.55 AM.png&quot; data-origin-width=&quot;1178&quot; data-origin-height=&quot;1294&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <author>idealam</author>
      <guid isPermaLink="true">https://lambdacourse.tistory.com/74</guid>
      <comments>https://lambdacourse.tistory.com/74#entry74comment</comments>
      <pubDate>Sat, 1 Aug 2026 07:49:24 +0900</pubDate>
    </item>
    <item>
      <title>[조민재] DCGAN, Cycle GAN, LSGAN</title>
      <link>https://lambdacourse.tistory.com/73</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;UNSUPERVISED REPRESENTATION LEARNING WITH DEEP CONVOLUTIONAL GENERATIVE ADVERSARIAL NETWORKS&lt;/h2&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; Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks&lt;/li&gt;
&lt;li&gt;&lt;b&gt;저자:&lt;/b&gt; Alec Radford, Luke Metz, Soumith Chintala&lt;/li&gt;
&lt;li&gt;&lt;b&gt;소속:&lt;/b&gt; Indico Research (Alec Radford, Luke Metz), Facebook AI Research (FAIR) (Soumith Chintala)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;학회:&lt;/b&gt; ICLR 2016 (International Conference on Learning Representations 2016, Poster)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;arXiv:&lt;/b&gt; &lt;a href=&quot;https://arxiv.org/abs/1511.06434&quot;&gt;https://arxiv.org/abs/1511.06434&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. 배경 및 문제제기&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1-1. 선행연구&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Unsupervised Representation Learning&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이미지의 좋은 Feature를 라벨 없이 학습하려는 연구&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Generative Models&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GAN, VAE, LAPGAN 등 여러 생성 모델이 등장&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;CNN Visualization&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CNN 내부 Feature를 해석하고 시각화하는 연구&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1-2. 문제제기&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;GAN은 학습이 너무 불안정하다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GAN 자체는 매우 아이디어가 좋았지만, 학습이 잘 안 되고, 쉽게 발산하고, Mode Collapse가 발생하고, 하이퍼 파라미터에 매우 민감하는 등, 학습이 불안정했다. 이 논문에서는 CNN 구조를 활용하여 GAN을 더 안정적으로 학습시키도록 설계하였다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;GAN이 의미 있는 Representation을 학습하는가?&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;당시에는 GAN의 목적이 그저 랜덤 벡터로 이미지 생성한다 뿐이었다. 그래서 GAN 내부에 정말 의미 있는 특징을 배우는지 몰랐다. 이 논문에서는 GAN도 좋은 Feature와 의미 있는 Latent Space를 학습한다는 것을 처음으로 보여줬다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. 핵심 아이디어&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Pooling 대신 Strided Convolution 사용 (Discriminator)&lt;/li&gt;
&lt;li&gt;Upsampling 대신 Fractionally-strided (Transposed) Convolution 사용 (Generator)&lt;/li&gt;
&lt;li&gt;Batch Normalization 적용&lt;/li&gt;
&lt;li&gt;Fully Connected Hidden Layer 제거&lt;/li&gt;
&lt;li&gt;Generator : ReLU, 마지막은 Tanh&lt;/li&gt;
&lt;li&gt;Discriminator : LeakyReLU&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3. 연구 방법론&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3-1. APPROACH AND MODEL ARCHITECTURE&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존에는 CNN 기반 GAN을 고해상도로 확장하는 데 실패하였고, 이를 해결하기 위해 LAPGAN은 여러 개의 GAN을 순차적으로 사용하는 구조를 제안하였다. 한번에 큰 이미지를 만드는 것이 아니라, 작은 이미지를 먼저 만들고, 여러 개의 GAN을 순차적으로 붙임으로써, 고해상도로 복원하는 구조이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고) LAPGAN 이미지 생성과정&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1166&quot; data-origin-height=&quot;326&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bQHJSS/dJMcaftX3mG/bZPuIlcXkrpu3I4kqpSZQ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bQHJSS/dJMcaftX3mG/bZPuIlcXkrpu3I4kqpSZQ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bQHJSS/dJMcaftX3mG/bZPuIlcXkrpu3I4kqpSZQ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQHJSS%2FdJMcaftX3mG%2FbZPuIlcXkrpu3I4kqpSZQ1%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;667&quot; height=&quot;186&quot; data-origin-width=&quot;1166&quot; data-origin-height=&quot;326&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 DCGAN은 CNN 구조를 재설계하여 하나의 GAN으로도 고해상도 이미지 생성을 가능하게 했다.&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;pooling function을 모두 stride convolutions로 대체&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그저 고정된 규칙만으로 움직이는 pooling이 아닌, 파라미터를 가지고 직접 학습할 수 있는 stride convolution을 활용했다. Discriminator에서는 Pooling 대신 Strided Convolution을 사용하여 Downsampling 과정을 학습하도록 하였고, Generator에서는 Fractionally-strided(Transposed) Convolution을 사용하여 Upsampling 과정 역시 학습하도록 설계하였다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Fully Connected Layer 제거&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;FC layer를 제거하기 위한 방법 중 하나로 제기된 Global Average Pooling(GAP)은 너무 느리다는 단점이 있다. 그래서 이 논문에서는 두 방법의 절충안으로 최종 Feature를 바로 출력에 연결하는 구조를 제안한다. 하지만 FC layer를 완전히 없애는 것은 아니다. generator의 첫 layer에서 입력을 CNN에 맞는 크기의 tensor로 변환하는 것과, discriminator의 마지막 layer에서 flatten 한 후에 sigmoid 출력층으로 연결하는 것은 FC layer가 담당한다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Batch Normalization 적용&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;BN을 활용해서 더 깊은 모델에서도 gradient가 잘 흐르게 만든다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;activation function 변경&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;generator에서는 마지막 층을 tanh로 변경했다. 그 이유는 명시적으로 다루지는 않지만, tanh의 출력이 [-1, 1] 인데, 이미지도 [-1, 1]로 정규화 한다는 점에서 출력 범위가 같아서 정확도가 더 올랐다고 추측할 수 있다. 그리고 discriminator에서는 LeakyReLU를 사용하였다. 이것은 음수 영역에서도 gradient가 흐르게 하기 위함이라고 추측할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1064&quot; data-origin-height=&quot;634&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ytOeF/dJMcahk667g/ktxxyxytRAlChmsmkGlVI0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ytOeF/dJMcahk667g/ktxxyxytRAlChmsmkGlVI0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ytOeF/dJMcahk667g/ktxxyxytRAlChmsmkGlVI0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FytOeF%2FdJMcahk667g%2FktxxyxytRAlChmsmkGlVI0%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;537&quot; height=&quot;320&quot; data-origin-width=&quot;1064&quot; data-origin-height=&quot;634&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3-2. DETAILS OF ADVERSARIAL TRAINING&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Dataset : LSUN, Faces, ImageNet-1K&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Input Normalization : [&amp;minus;1,1]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Batch Size : 128&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Weight Initialization : Normal(0, 0.02)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Activation : LeakyReLU (slope = 0.2)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Optimizer : Adam (LR = 0.0002, &amp;beta;₁ = 0.5)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;LSUN 300만장의 데이터셋로 학습 하였고, 중복 이미지 제거를 통해 암기가 아닌 실제 생성 능력을 검증했다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1104&quot; data-origin-height=&quot;730&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2gKu2/dJMcaa7lU2Y/yNayR4GD8K0W4y3TuKpml0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2gKu2/dJMcaa7lU2Y/yNayR4GD8K0W4y3TuKpml0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2gKu2/dJMcaa7lU2Y/yNayR4GD8K0W4y3TuKpml0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2gKu2%2FdJMcaa7lU2Y%2FyNayR4GD8K0W4y3TuKpml0%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;514&quot; height=&quot;730&quot; data-origin-width=&quot;1104&quot; data-origin-height=&quot;730&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;1102&quot; data-origin-height=&quot;684&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yrgmc/dJMcadCM8I2/rhxiYzgwDwjDkaRZa0s1CK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yrgmc/dJMcadCM8I2/rhxiYzgwDwjDkaRZa0s1CK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yrgmc/dJMcadCM8I2/rhxiYzgwDwjDkaRZa0s1CK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fyrgmc%2FdJMcadCM8I2%2FrhxiYzgwDwjDkaRZa0s1CK%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;513&quot; height=&quot;318&quot; data-origin-width=&quot;1102&quot; data-origin-height=&quot;684&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4. 실험 결과&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4.1 Feature Representation 성능 검증&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;학습된 Discriminator를 Feature Extractor로 활용하여 이미지 분류 성능을 평가하였다. ImageNet으로 비지도학습한 Discriminator의 Feature를 이용해 CIFAR-10과 SVHN에서 Linear SVM을 학습했다. 이를 통해 일반화 능력을 검증 할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1096&quot; data-origin-height=&quot;284&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9bVdP/dJMcaf1LHFU/nG9eWnHT3ikfYS3bKxFNX0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9bVdP/dJMcaf1LHFU/nG9eWnHT3ikfYS3bKxFNX0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9bVdP/dJMcaf1LHFU/nG9eWnHT3ikfYS3bKxFNX0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9bVdP%2FdJMcaf1LHFU%2FnG9eWnHT3ikfYS3bKxFNX0%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;594&quot; height=&quot;154&quot; data-origin-width=&quot;1096&quot; data-origin-height=&quot;284&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한 숫자 데이터셋에서는 지도 학습된 CNN 보다 정확도가 더 높았다는 점에서 CNN 구조 때문만이 아니라 GAN으로 학습한 점의 의의를 알 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;376&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dNJqOp/dJMcaf1LHFX/aeH5kqiVqOh2svR3hPVDj1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dNJqOp/dJMcaf1LHFX/aeH5kqiVqOh2svR3hPVDj1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dNJqOp/dJMcaf1LHFX/aeH5kqiVqOh2svR3hPVDj1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdNJqOp%2FdJMcaf1LHFX%2FaeH5kqiVqOh2svR3hPVDj1%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;460&quot; height=&quot;216&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;376&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4.2 Latent Space 분석&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;잠재벡터(z)를 연속적으로 변화시키며 생성 이미지를 관찰한 결과, 이미지가 급격히 변하지 않고 침대 위치, 조명, 창문 등의 속성이 자연스럽게 변화하였다. 이는 Generator가 단순히 학습 이미지를 암기한 것이 아니라 의미 있는 연속적인 Latent Space를 학습하였음을 보여준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;880&quot; data-origin-height=&quot;880&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ldewA/dJMcadiG7TK/SC1utX25KyjrVxzu73kRAK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ldewA/dJMcadiG7TK/SC1utX25KyjrVxzu73kRAK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ldewA/dJMcadiG7TK/SC1utX25KyjrVxzu73kRAK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FldewA%2FdJMcadiG7TK%2FSC1utX25KyjrVxzu73kRAK%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;515&quot; height=&quot;515&quot; data-origin-width=&quot;880&quot; data-origin-height=&quot;880&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4.3 Discriminator Feature 시각화&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Guided Backpropagation을 이용하여 Discriminator의 Feature를 시각화한 결과, 침대, 창문, 가구 등 의미 있는 객체에 반응하는 Feature를 학습함을 확인하였다. 반면, 랜덤 초기화된 CNN에서는 이러한 의미 있는 Feature가 나타나지 않았다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;890&quot; data-origin-height=&quot;582&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/O5eUM/dJMcafnhD3I/AuSxnWXfW2a6KjpBEvCAk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/O5eUM/dJMcafnhD3I/AuSxnWXfW2a6KjpBEvCAk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/O5eUM/dJMcafnhD3I/AuSxnWXfW2a6KjpBEvCAk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FO5eUM%2FdJMcafnhD3I%2FAuSxnWXfW2a6KjpBEvCAk1%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;543&quot; height=&quot;355&quot; data-origin-width=&quot;890&quot; data-origin-height=&quot;582&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4.4 Generator Representation 분석&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Generator 내부에서 창문과 관련된 Feature Map을 제거한 결과, 생성된 이미지에서 창문이 자연스럽게 사라지고 다른 객체로 대체되었다. 이를 통해 Generator 내부에도 객체 수준의 의미 있는 표현이 학습되어 있음을 확인하였다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;874&quot; data-origin-height=&quot;380&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/s9hpF/dJMcafnhD3N/gPUs9et6N3lvUctH8Ld4Rk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/s9hpF/dJMcafnhD3N/gPUs9et6N3lvUctH8Ld4Rk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/s9hpF/dJMcafnhD3N/gPUs9et6N3lvUctH8Ld4Rk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fs9hpF%2FdJMcafnhD3N%2FgPUs9et6N3lvUctH8Ld4Rk%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;547&quot; height=&quot;238&quot; data-origin-width=&quot;874&quot; data-origin-height=&quot;380&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4.5 Vector Arithmetic&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;잠재공간에서 Word2Vec과 유사한 벡터 연산이 가능함을 확인하였다. 예를 들어, 안경이나 웃음과 같은 속성을 나타내는 벡터를 다른 얼굴의 잠재벡터에 더하면 해당 속성이 자연스럽게 추가되었으며, 얼굴의 자세 역시 선형적으로 조작할 수 있었다. 이는 Latent Space가 의미론적 구조를 형성하고 있음을 보여준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;732&quot; data-origin-height=&quot;970&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qAQ4f/dJMcadv3hYY/G7Zs0JfJubDMy1JX66WYhK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qAQ4f/dJMcadv3hYY/G7Zs0JfJubDMy1JX66WYhK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qAQ4f/dJMcadv3hYY/G7Zs0JfJubDMy1JX66WYhK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqAQ4f%2FdJMcadv3hYY%2FG7Zs0JfJubDMy1JX66WYhK%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;418&quot; height=&quot;554&quot; data-origin-width=&quot;732&quot; data-origin-height=&quot;970&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;752&quot; data-origin-height=&quot;424&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cqLmLA/dJMcaa0u5q4/A9IqxUl8D3XEYsay134U11/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cqLmLA/dJMcaa0u5q4/A9IqxUl8D3XEYsay134U11/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cqLmLA/dJMcaa0u5q4/A9IqxUl8D3XEYsay134U11/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcqLmLA%2FdJMcaa0u5q4%2FA9IqxUl8D3XEYsay134U11%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;488&quot; height=&quot;275&quot; data-origin-width=&quot;752&quot; data-origin-height=&quot;424&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5. 의의 및 한계&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;의의&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;안정적인 CNN 기반 GAN 아키텍처 제안&lt;/li&gt;
&lt;li&gt;GAN의 Feature Representation 학습 능력 입증&lt;/li&gt;
&lt;li&gt;의미 있는 Latent Space 형성 확인&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;한계&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Mode Collapse 등 학습 불안정성은 여전히 존재&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Least Squares Generative Adversarial Networks (LSGAN)&lt;/h2&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; Least Squares Generative Adversarial Networks&lt;/li&gt;
&lt;li&gt;&lt;b&gt;저자:&lt;/b&gt; Xudong Mao, Qing Li, Haoran Xie, Raymond Y. K. Lau, Zhen Wang, Stephen Paul Smolley&lt;/li&gt;
&lt;li&gt;&lt;b&gt;소속:&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;City University of Hong Kong (Xudong Mao, Qing Li, Raymond Y. K. Lau)&lt;/li&gt;
&lt;li&gt;The Education University of Hong Kong (Haoran Xie)&lt;/li&gt;
&lt;li&gt;Northwestern Polytechnical University (Zhen Wang)&lt;/li&gt;
&lt;li&gt;CodeHatch Corp. (Stephen Paul Smolley)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;학회:&lt;/b&gt; ICCV 2017 (IEEE International Conference on Computer Vision 2017)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;arXiv:&lt;/b&gt; &lt;a href=&quot;https://arxiv.org/abs/1611.04076&quot;&gt;https://arxiv.org/abs/1611.04076&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. 배경 및 문제제기&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1-1. 선행 연구&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;초기 생성 모델인 RBM, DBM, VAE 등은 확률 분포를 직접 모델링하기 위해 계산이 매우 복잡하거나 근사 추론이 필요한 문제가 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후 Generative Adversarial Network(GAN) 가 제안되면서 Generator와 Discriminator의 적대적 학습을 통해 복잡한 확률 분포를 효과적으로 학습할 수 있게 되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후 DCGAN은 GAN에 Convolutional Neural Network(CNN)를 적용하여 학습 안정성을 높이고 이미지 생성 품질을 크게 향상시켰으며, GAN의 표준 네트워크 구조를 제시하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러나 기존 GAN은 Binary Cross Entropy(BCE) Loss를 사용하기 때문에 학습이 불안정하며, Gradient Vanishing과 Mode Collapse 문제가 여전히 존재하였다. 또한 WGAN은 Wasserstein Distance를 도입하여 학습 안정성을 개선하였지만, Weight Clipping과 같은 추가적인 제약이 필요하다는 한계가 있었다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1-2. 문제 제기&lt;/h4&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;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존 GAN은 Binary Cross Entropy(BCE) Loss를 사용하여 Generator와 Discriminator를 학습한다. 그러나 BCE Loss는 학습 과정에서 Gradient Vanishing이 발생하기 쉽고, Generator가 충분한 학습 신호를 받지 못해 학습이 불안정해질 수 있다. 또한 Generator가 일부 데이터 모드만 생성하는 Mode Collapse 문제가 자주 발생하여 실제 데이터 분포를 충분히 학습하지 못한다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. 핵심 아이디어&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;LSGAN은 기존 GAN의 Binary Cross Entropy Loss를 Least Squares Loss(MSE)로 대체하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존 GAN은 Discriminator의 출력이 어느 정도 목표에 가까워지면 Gradient가 급격히 감소하는 반면, LSGAN은 목표 출력 값과의 제곱 오차를 끝까지 최소화하므로 지속적으로 Gradient를 제공한다.&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;Gradient Vanishing 완화&lt;/li&gt;
&lt;li&gt;학습 안정성 향상&lt;/li&gt;
&lt;li&gt;Mode Collapse 감소&lt;/li&gt;
&lt;li&gt;더 높은 품질의 이미지 생성&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;을 달성하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한 이론적으로 특정 파라미터 설정에서는 LSGAN이 &lt;b&gt;Pearson &amp;chi;&amp;sup2; Divergence&lt;/b&gt;를 최소화함을 증명하였다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;970&quot; data-origin-height=&quot;604&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/drBw6k/dJMcaa0u5rm/rrmmfpWnp5ZKh77sJgI0H1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/drBw6k/dJMcaa0u5rm/rrmmfpWnp5ZKh77sJgI0H1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/drBw6k/dJMcaa0u5rm/rrmmfpWnp5ZKh77sJgI0H1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdrBw6k%2FdJMcaa0u5rm%2FrrmmfpWnp5ZKh77sJgI0H1%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;543&quot; height=&quot;338&quot; data-origin-width=&quot;970&quot; data-origin-height=&quot;604&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;G가 발전할 수록, p_{data}=p_g 이므로 D가 진짜와 가짜를 구별을 잘 못한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;논문에서는 결정 경계가 반드시 진짜 데이터의 분포를 가로질러야 한다고 말한다. 만약 결정 경계가 매우 명확하다면, D가 너무 잘 맞추기 때문에, G가 학습을 잘 못하는 학습 포화가 일어나게 되기 때문이다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3. 연구 방법론&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3-0. 문자 정리&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;x : 실제 이미지&lt;/li&gt;
&lt;li&gt;z : 랜덤 노이즈&lt;/li&gt;
&lt;li&gt;G(z) : 생성 이미지&lt;/li&gt;
&lt;li&gt;D(x) : Discriminator 출력&lt;/li&gt;
&lt;li&gt;p_{data} : 실제 데이터 분포&lt;/li&gt;
&lt;li&gt;p_g : 생성 데이터 분포&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3-1. GAN 목적 함수&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;932&quot; data-origin-height=&quot;120&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Q4FTa/dJMcabdXnJT/7JdjpbfPbwLXKorT1GOWjk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Q4FTa/dJMcabdXnJT/7JdjpbfPbwLXKorT1GOWjk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Q4FTa/dJMcabdXnJT/7JdjpbfPbwLXKorT1GOWjk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQ4FTa%2FdJMcabdXnJT%2F7JdjpbfPbwLXKorT1GOWjk%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;690&quot; height=&quot;89&quot; data-origin-width=&quot;932&quot; data-origin-height=&quot;120&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;두번째 항: 가짜 이미지를 얼마나 잘 구별하는지&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3-2. LSGAN 목적 함수&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;934&quot; data-origin-height=&quot;180&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjuuXC/dJMcabdXnJU/8HVu6Y45aZYK1AOKX1h0gk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjuuXC/dJMcabdXnJU/8HVu6Y45aZYK1AOKX1h0gk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjuuXC/dJMcabdXnJU/8HVu6Y45aZYK1AOKX1h0gk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjuuXC%2FdJMcabdXnJU%2F8HVu6Y45aZYK1AOKX1h0gk%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;684&quot; height=&quot;132&quot; data-origin-width=&quot;934&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;BCE를 MSE로 대체한 목적함수&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;a: fake label, b: real label, c: Generator가 원하는 출력값&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대표적인 예시: a = 0, b = c = 1&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3-3. LSGAN의 장점&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존 GAN은 정답 영역에 있으면 loss가 거의 0으로 수렴한다. 이 때문에 정답이라고 판별된 이미지에 대해서는 학습을 거의 못한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반면에, LSGAN은 정답 영역에 있더라도 거리를 측정하기 때문에 계속해서 안정적인 학습을 할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;962&quot; data-origin-height=&quot;392&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HVCzL/dJMcab6ccmB/dlxPYHsXFZXqWW1AgU2SUk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HVCzL/dJMcab6ccmB/dlxPYHsXFZXqWW1AgU2SUk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HVCzL/dJMcab6ccmB/dlxPYHsXFZXqWW1AgU2SUk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHVCzL%2FdJMcab6ccmB%2FdlxPYHsXFZXqWW1AgU2SUk%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;575&quot; height=&quot;234&quot; data-origin-width=&quot;962&quot; data-origin-height=&quot;392&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3-4. Pearson &amp;chi;&amp;sup2; Divergence와의 관계&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1930&quot; data-origin-height=&quot;982&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dfnOlZ/dJMcab6ccmJ/EfNwVeoDmNvjlx8bCgkc3k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dfnOlZ/dJMcab6ccmJ/EfNwVeoDmNvjlx8bCgkc3k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dfnOlZ/dJMcab6ccmJ/EfNwVeoDmNvjlx8bCgkc3k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdfnOlZ%2FdJMcab6ccmJ%2FEfNwVeoDmNvjlx8bCgkc3k%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;799&quot; height=&quot;407&quot; data-origin-width=&quot;1930&quot; data-origin-height=&quot;982&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;논문는 먼저 b&amp;minus;c=1, b&amp;minus;a=2 조건에서 LSGAN이 Pearson &amp;chi;&amp;sup2; divergence를 최소화함을 이론적으로 증명한다. 그러나 실제 실험에서는 보다 직관적인 a=0, b=1, c=1 설정을 사용하였으며, 논문에 따르면 두 설정의 성능은 거의 차이가 없었다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3-5. Model Architecture&lt;/h4&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;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;네트워크는 DCGAN 구조를 거의 그대로 사용하였다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;944&quot; data-origin-height=&quot;604&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QlYvT/dJMcacKSfAl/Vg7Iv2cTKqpkC8qThaAiOk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QlYvT/dJMcacKSfAl/Vg7Iv2cTKqpkC8qThaAiOk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QlYvT/dJMcacKSfAl/Vg7Iv2cTKqpkC8qThaAiOk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQlYvT%2FdJMcacKSfAl%2FVg7Iv2cTKqpkC8qThaAiOk%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;512&quot; height=&quot;328&quot; data-origin-width=&quot;944&quot; data-origin-height=&quot;604&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;VGG가 같은 해상도에서 conv를 여러번 사용하는 아이디어를 참고했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;stride = 1인 layer는 upsampling의 역할을 하지는 않지만, 특징을 더 많이 학습할 수 있게 해준다.&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;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3740개의 중국어 문자 생성 문제를 위해 Conditional LSGAN을 제안하였다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;978&quot; data-origin-height=&quot;416&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b41YTv/dJMcacxgJ5D/bzPlPEu1Kq11imtajaK7B0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b41YTv/dJMcacxgJ5D/bzPlPEu1Kq11imtajaK7B0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b41YTv/dJMcacxgJ5D/bzPlPEu1Kq11imtajaK7B0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb41YTv%2FdJMcacxgJ5D%2FbzPlPEu1Kq11imtajaK7B0%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;555&quot; height=&quot;236&quot; data-origin-width=&quot;978&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;기존 One-hot Label(3740차원)을 그대로 사용하면 메모리 사용량이 매우 크므로, &amp;Phi;(y) 라는 Linear Mapping Layer를 이용하여 3740차원 &amp;rarr; 256차원으로 압축한 후 Generator와 Discriminator에 입력하였다. 이를 통해 원하는 문자(Label)를 지정하여 생성할 수 있다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4. 실험 결과&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;LSGAN은 제안한 Loss Function이 실제로 학습 안정성과 이미지 생성 품질을 향상시키는지 검증하기 위해 다양한 데이터셋과 실험 환경에서 기존 GAN과 비교하였다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;590&quot; data-origin-height=&quot;292&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FGZJO/dJMcajiRWQe/xkMFrGdUSkRBfwNRjzLqCK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FGZJO/dJMcajiRWQe/xkMFrGdUSkRBfwNRjzLqCK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FGZJO/dJMcajiRWQe/xkMFrGdUSkRBfwNRjzLqCK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFGZJO%2FdJMcajiRWQe%2FxkMFrGdUSkRBfwNRjzLqCK%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;380&quot; height=&quot;188&quot; data-origin-width=&quot;590&quot; data-origin-height=&quot;292&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4-1. Scene Dataset 생성 성능&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;868&quot; data-origin-height=&quot;592&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pPGZ0/dJMcaaTJIig/pl3nYVo9pG7xRtQ3GO9Sok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pPGZ0/dJMcaaTJIig/pl3nYVo9pG7xRtQ3GO9Sok/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pPGZ0/dJMcaaTJIig/pl3nYVo9pG7xRtQ3GO9Sok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpPGZ0%2FdJMcaaTJIig%2Fpl3nYVo9pG7xRtQ3GO9Sok%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;497&quot; height=&quot;339&quot; data-origin-width=&quot;868&quot; data-origin-height=&quot;592&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;904&quot; data-origin-height=&quot;796&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/duN1J6/dJMcagTY02K/g05tMUTtPvWt50LckvRDk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/duN1J6/dJMcagTY02K/g05tMUTtPvWt50LckvRDk0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/duN1J6/dJMcagTY02K/g05tMUTtPvWt50LckvRDk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FduN1J6%2FdJMcagTY02K%2Fg05tMUTtPvWt50LckvRDk0%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;540&quot; height=&quot;475&quot; data-origin-width=&quot;904&quot; data-origin-height=&quot;796&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기존 GAN도 실제와 비슷한 이미지를 생성하지만 일부 이미지에서는 구조가 무너지거나 노이즈가 발생한다.&lt;/li&gt;
&lt;li&gt;LSGAN은 물체의 형태와 배경을 더 자연스럽게 생성하며 이미지 품질이 전반적으로 향상되었다.&lt;/li&gt;
&lt;li&gt;특히 건물이나 침실처럼 구조가 복잡한 데이터에서도 안정적인 생성 결과를 보였다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4-2. 학습 안정성 비교&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;972&quot; data-origin-height=&quot;522&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/t6Wf7/dJMcacD6Uah/D5RQfzALvWUWiCdISLkv1K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/t6Wf7/dJMcacD6Uah/D5RQfzALvWUWiCdISLkv1K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/t6Wf7/dJMcacD6Uah/D5RQfzALvWUWiCdISLkv1K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Ft6Wf7%2FdJMcacD6Uah%2FD5RQfzALvWUWiCdISLkv1K%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;554&quot; height=&quot;298&quot; data-origin-width=&quot;972&quot; data-origin-height=&quot;522&quot;/&gt;&lt;/span&gt;&lt;/figure&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;/li&gt;
&lt;/ul&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;$BN_G$: Generator의 Batch Normalization 제거&lt;/li&gt;
&lt;li&gt;$BN_{GD}$: Generator와 Discriminator 모두 Batch Normalization 제거&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Optimizer도 Adam, RMSProp 두 가지를 사용하였다.&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;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존 GAN&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;BatchNorm을 제거하면 학습이 쉽게 실패한다.&lt;/li&gt;
&lt;li&gt;Mode Collapse가 자주 발생한다.&lt;/li&gt;
&lt;li&gt;생성 이미지 품질이 크게 떨어진다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;LSGAN&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;BatchNorm이 없어도 안정적으로 학습된다.&lt;/li&gt;
&lt;li&gt;Generator가 지속적으로 개선된다.&lt;/li&gt;
&lt;li&gt;RMSProp 환경에서는 거의 모든 경우에서 안정적인 생성 결과를 보였다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4-3. Gaussian Mixture 실험&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;968&quot; data-origin-height=&quot;400&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zrEfP/dJMcag0EFsh/sqG5RYaoDKJjEVG6ykf5o1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zrEfP/dJMcag0EFsh/sqG5RYaoDKJjEVG6ykf5o1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zrEfP/dJMcag0EFsh/sqG5RYaoDKJjEVG6ykf5o1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzrEfP%2FdJMcag0EFsh%2FsqG5RYaoDKJjEVG6ykf5o1%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;540&quot; height=&quot;223&quot; data-origin-width=&quot;968&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;기존 GAN&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;약 15k iteration 이후 Mode Collapse가 발생한다.&lt;/li&gt;
&lt;li&gt;결국 하나의 Gaussian만 생성한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;LSGAN&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모든 Gaussian 모드를 계속 유지한다.&lt;/li&gt;
&lt;li&gt;실제 데이터 분포와 거의 동일한 형태를 학습한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4-4. Conditional LSGAN&lt;/h4&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;332&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b75VTc/dJMcaasIK7H/yhFNQuBQ4IHTL014V5fyjK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b75VTc/dJMcaasIK7H/yhFNQuBQ4IHTL014V5fyjK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b75VTc/dJMcaasIK7H/yhFNQuBQ4IHTL014V5fyjK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb75VTc%2FdJMcaasIK7H%2FyhFNQuBQ4IHTL014V5fyjK%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;563&quot; height=&quot;188&quot; data-origin-width=&quot;994&quot; data-origin-height=&quot;332&quot;/&gt;&lt;/span&gt;&lt;/figure&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;/li&gt;
&lt;li&gt;같은 Label을 입력하면 해당 문자를 안정적으로 생성하였다.&lt;/li&gt;
&lt;li&gt;3740개의 많은 클래스에서도 정상적으로 동작하였다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5. 의의 및 한계&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;논문에서는 기존 GAN의 Binary Cross Entropy Loss를 &lt;b&gt;Least Squares Loss(MSE)&lt;/b&gt; 로 대체하는 매우 간단한 방법만으로도 GAN의 성능을 크게 향상시킬 수 있음을 보였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이론적으로는 특정 파라미터 설정에서 LSGAN이 &lt;b&gt;Pearson &amp;chi;&amp;sup2; Divergence&lt;/b&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;기존 GAN보다 &lt;b&gt;학습이 안정적&lt;/b&gt;이다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Mode Collapse가 감소&lt;/b&gt;하여 데이터 분포를 더 잘 학습한다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;생성 이미지의 품질이 향상&lt;/b&gt;된다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Conditional GAN 환경에서도 효과적으로 동작&lt;/b&gt;한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h1&gt;Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks&lt;/h1&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; Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks&lt;/li&gt;
&lt;li&gt;&lt;b&gt;저자:&lt;/b&gt; Jun-Yan Zhu, Taesung Park, Phillip Isola, Alexei A. Efros&lt;/li&gt;
&lt;li&gt;&lt;b&gt;소속:&lt;/b&gt; Berkeley AI Research (BAIR), University of California, Berkeley&lt;/li&gt;
&lt;li&gt;&lt;b&gt;학회:&lt;/b&gt; ICCV 2017 (IEEE International Conference on Computer Vision 2017)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;arXiv:&lt;/b&gt; &lt;a href=&quot;https://arxiv.org/abs/1703.10593&quot;&gt;https://arxiv.org/abs/1703.10593&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;프로젝트 페이지:&lt;/b&gt; &lt;a href=&quot;https://junyanz.github.io/CycleGAN/&quot;&gt;https://junyanz.github.io/CycleGAN/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 배경 및 문제제기&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1-1. 기존 연구&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GAN의 발전으로 자연스러운 이미지 생성이 가능해졌으며, 이를 이미지 변환(Image-to-Image Translation)에 적용한 대표적인 모델이 pix2pix이다. pix2pix는 입력 이미지와 정답 이미지가 1:1로 대응되는 Paired Dataset을 이용하여 높은 성능을 보였다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1-2. 문제점&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 실제 환경에서는 Paired Dataset을 구축하기 어렵다.&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;말 &amp;harr; 얼룩말&lt;/li&gt;
&lt;li&gt;여름 &amp;harr; 겨울&lt;/li&gt;
&lt;li&gt;사진 &amp;harr; 모네 그림&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처럼 입력과 정확히 대응되는 정답 이미지를 만드는 것은 거의 불가능하다. 따라서 실제 환경에서는 Unpaired Dataset처럼 도메인별 이미지 집합만 존재한다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1-3. 기존 GAN만 사용할 경우의 문제&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GAN Loss만 사용하면 Generator는 &quot;출력이 목표 도메인처럼만 보이면 된다.&quot; 고 학습한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모든 입력을 같은 출력으로 보내도 Discriminator는 이를 구분하지 못한다.&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;/li&gt;
&lt;li&gt;Mode Collapse가 발생하며&lt;/li&gt;
&lt;li&gt;의미 있는 Image Translation이 어렵다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 핵심 아이디어&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;논문의 핵심 아이디어는 Cycle Consistency이다.&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Generator G : X &amp;rarr; Y&lt;/li&gt;
&lt;li&gt;Generator F : Y &amp;rarr; X&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;를 동시에 학습하며, Cycle Consistency Loss를 추가하여 입력 이미지의 구조와 의미를 유지하도록 한다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 연구 방법론&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;(1) 전체 구조&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CycleGAN은&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Generator 2개&lt;/li&gt;
&lt;li&gt;Discriminator 2개&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;를 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 Generator에는 각각의 Discriminator가 존재한다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Dy : Zebra 판별&lt;/li&gt;
&lt;li&gt;Dx : Horse 판별&lt;/li&gt;
&lt;/ul&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;514&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cgjgBN/dJMcaasIK74/dPMD2rhLUDsXGSEkVfoeKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cgjgBN/dJMcaasIK74/dPMD2rhLUDsXGSEkVfoeKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cgjgBN/dJMcaasIK74/dPMD2rhLUDsXGSEkVfoeKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcgjgBN%2FdJMcaasIK74%2FdPMD2rhLUDsXGSEkVfoeKk%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;631&quot; height=&quot;253&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;514&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;(2) Adversarial Loss&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존 GAN Loss를 그대로 사용한다.&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;G는 D를 속이도록 학습하고&lt;/li&gt;
&lt;li&gt;D는 진짜와 가짜를 구분하도록 학습한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;논문에서는 실제 구현 시 BCE 대신 LSGAN(Least Squares Loss) 를 사용하여 학습 안정성을 향상시켰다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;122&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/44K6F/dJMcabSCpBC/kkKqjJhIqTASzT0qkuioE1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/44K6F/dJMcabSCpBC/kkKqjJhIqTASzT0qkuioE1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/44K6F/dJMcabSCpBC/kkKqjJhIqTASzT0qkuioE1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F44K6F%2FdJMcabSCpBC%2FkkKqjJhIqTASzT0qkuioE1%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;497&quot; height=&quot;101&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;122&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;(3) Cycle Consistency Loss&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존의 GAN으로도 기능은 하지만, 입력과 무관한 출력을 만들 가능성이 있다. 왜냐하면 D는 출력이 진짜 같은지만 확인하고 입력이 무엇인지는 확인하지 않기 때문이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;528&quot; data-origin-height=&quot;100&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/evbfq7/dJMcacxgKcL/oH3nvpRnlRW41MXnNaEyGK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/evbfq7/dJMcacxgKcL/oH3nvpRnlRW41MXnNaEyGK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/evbfq7/dJMcacxgKcL/oH3nvpRnlRW41MXnNaEyGK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fevbfq7%2FdJMcacxgKcL%2FoH3nvpRnlRW41MXnNaEyGK%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;475&quot; height=&quot;90&quot; data-origin-width=&quot;528&quot; data-origin-height=&quot;100&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫번째 항(forward cycle consistency): horse와 horse'이 같은지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;두번째 항(backward cycle consistency): zebra와 zebra'가 같은지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한, L1 norm이 아니라 GAN처럼 또 하나의 D를 생성해보았지만 더 성능이 좋지 않았다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;(4) Full Objective&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최종 Loss는 다음과 같다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;520&quot; data-origin-height=&quot;136&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ccMEwy/dJMcadCM8NO/w6Yd3m5PeZYrzPw1zRGJI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ccMEwy/dJMcadCM8NO/w6Yd3m5PeZYrzPw1zRGJI1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ccMEwy/dJMcadCM8NO/w6Yd3m5PeZYrzPw1zRGJI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FccMEwy%2FdJMcadCM8NO%2Fw6Yd3m5PeZYrzPw1zRGJI1%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;398&quot; height=&quot;104&quot; data-origin-width=&quot;520&quot; data-origin-height=&quot;136&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Generator는 이 전체 Loss를 최소화하고, Discriminator는 GAN Loss를 최대화하도록 학습한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;논문에서는 이 모델이 특별한 autoencoder라고 지칭한다. 그 이유는 입력과 출력이 같고, 중간층의 표현이 우리가 원하는 Y도메인의 사진이기 때문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한 GAN loss와 Cycle loss 중 하나만 쓰게 되면 충분하지 않다는 사실도 밝혔다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;(5) Identity Loss&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Painting &amp;rarr; Photo 실험에서 색감이 불필요하게 변하는 문제를 해결하기 위해 Identity Loss를 추가하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;색감이 변형되는 이유는 GAN과 Cycle은 색감을 신경쓰지 않는다. 예를 들어, 낮 그림을 넣고 노을 사진이 나와도 loss가 크게 증가하지 않는다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1190&quot; data-origin-height=&quot;90&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bo5mQ5/dJMcadXeZ98/iwSopbZLWtC6KKkPTEh9Hk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bo5mQ5/dJMcadXeZ98/iwSopbZLWtC6KKkPTEh9Hk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bo5mQ5/dJMcadXeZ98/iwSopbZLWtC6KKkPTEh9Hk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbo5mQ5%2FdJMcadXeZ98%2FiwSopbZLWtC6KKkPTEh9Hk%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;49&quot; data-origin-width=&quot;1190&quot; data-origin-height=&quot;90&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 손실함수는 목표 도메인 이미지가 들어오면 변형을 하지 않도록 설계 되어있다. 이 손실함수는 G의 습관을 바꿔서 더 정확한 결과를 얻을 수 있게 해준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어, 어떤 G가 horse를 노을 빛나는 zebra로 바꿔주는 특징을 가지고 있다고 하자. 만약 이 G에 zebra를 넣으면 노을 빛나는 zebra가 출력될 것이고, identity loss로 인해서 노을 빛으로 색감을 바꾸는 습관을 없앨 수 있다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. 실험 결과&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;(1) 기존 방법과 비교&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CycleGAN은 CoGAN, SimGAN, BiGAN, Feature Loss + GAN보다 더 자연스러운 결과를 생성하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한 Paired 방식인 pix2pix와도 유사한 수준의 품질을 보였다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1250&quot; data-origin-height=&quot;976&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ch0h5R/dJMcafALzkJ/nGc60KychWiqcqsbBiTiI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ch0h5R/dJMcafALzkJ/nGc60KychWiqcqsbBiTiI1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ch0h5R/dJMcafALzkJ/nGc60KychWiqcqsbBiTiI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fch0h5R%2FdJMcafALzkJ%2FnGc60KychWiqcqsbBiTiI1%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;624&quot; height=&quot;487&quot; data-origin-width=&quot;1250&quot; data-origin-height=&quot;976&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;(2) 정량적 평가&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AMT 평가에서는 사람들이 약 25% 정도의 경우 CycleGAN이 생성한 이미지를 실제 이미지로 착각하였다. 또한 FCN Score와 Semantic Segmentation Metric에서도 기존 방법보다 우수한 성능을 보였다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;630&quot; data-origin-height=&quot;722&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfTN1w/dJMcagGvxOQ/lY2Ob4RzycMN0ahUJKPG50/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfTN1w/dJMcagGvxOQ/lY2Ob4RzycMN0ahUJKPG50/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfTN1w/dJMcagGvxOQ/lY2Ob4RzycMN0ahUJKPG50/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbfTN1w%2FdJMcagGvxOQ%2FlY2Ob4RzycMN0ahUJKPG50%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;423&quot; height=&quot;485&quot; data-origin-width=&quot;630&quot; data-origin-height=&quot;722&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;(3) Ablation Study&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GAN Loss만 사용할 경우&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Mode Collapse 발생&lt;/li&gt;
&lt;li&gt;입력 정보 유지 실패&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Cycle Loss만 사용할 경우&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;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Forward 또는 Backward Cycle만 사용할 경우&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;Mode Collapse 발생&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;616&quot; data-origin-height=&quot;450&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vkMrJ/dJMcaalPXpP/kWZK7enti0UpQojLP75mx1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vkMrJ/dJMcaalPXpP/kWZK7enti0UpQojLP75mx1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vkMrJ/dJMcaalPXpP/kWZK7enti0UpQojLP75mx1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvkMrJ%2FdJMcaalPXpP%2FkWZK7enti0UpQojLP75mx1%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;431&quot; height=&quot;315&quot; data-origin-width=&quot;616&quot; data-origin-height=&quot;450&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;5. 의의 및 한계&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;의의&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;Pair 데이터 없이 Image-to-Image Translation을 성공적으로 수행한 대표적인 연구이다.&lt;/li&gt;
&lt;li&gt;Cycle Consistency Loss를 제안하여 입력 이미지의 구조와 의미를 유지하는 문제를 해결하였다.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;한계&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 색상과 질감 변화에는 강하지만 형태(Geometry) 변화에는 약하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어 Dog &amp;rarr; Cat과 같이 형태 변화가 큰 문제에서는 실패하였다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1262&quot; data-origin-height=&quot;566&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rBBd7/dJMcaa0u5uf/ZVSihxBA0Hj3b8HRtu7fx0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rBBd7/dJMcaa0u5uf/ZVSihxBA0Hj3b8HRtu7fx0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rBBd7/dJMcaa0u5uf/ZVSihxBA0Hj3b8HRtu7fx0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrBBd7%2FdJMcaa0u5uf%2FZVSihxBA0Hj3b8HRtu7fx0%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;291&quot; data-origin-width=&quot;1262&quot; data-origin-height=&quot;566&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;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;3. Paired 방식(pix2pix)과는 여전히 성능 차이가 존재한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특히 의미적인 정보(Label 등)를 정확히 대응시키는 작업에서는 Paired 학습보다 성능이 낮은 경우가 존재한다.&lt;/p&gt;</description>
      <author>whalswo0503</author>
      <guid isPermaLink="true">https://lambdacourse.tistory.com/73</guid>
      <comments>https://lambdacourse.tistory.com/73#entry73comment</comments>
      <pubDate>Sat, 1 Aug 2026 06:43:06 +0900</pubDate>
    </item>
    <item>
      <title>[최윤호] GAN, Conditional GAN</title>
      <link>https://lambdacourse.tistory.com/72</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://satin-warbler-474.notion.site/GAN-Conditional-GAN-3a4eb78d94768015b302c8e0f2eda83d?source=copy_link&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://satin-warbler-474.notion.site/GAN-Conditional-GAN-3a4eb78d94768015b302c8e0f2eda83d?source=copy_link&lt;/a&gt;&lt;/p&gt;</description>
      <author>uno42430</author>
      <guid isPermaLink="true">https://lambdacourse.tistory.com/72</guid>
      <comments>https://lambdacourse.tistory.com/72#entry72comment</comments>
      <pubDate>Sat, 25 Jul 2026 11:53:22 +0900</pubDate>
    </item>
    <item>
      <title>[정광민] CornerNet &amp;amp; CenterNet</title>
      <link>https://lambdacourse.tistory.com/71</link>
      <description>&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js&quot;&gt;
&lt;/script&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;nbsp;&lt;/p&gt;
&lt;h1&gt;&amp;nbsp;&lt;/h1&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; CornerNet: Detecting Objects as Paired Keypoints&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;논문저자: Hei Law, Jia Deng&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제출학회: ECCV 2018&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;논문링크: &lt;a href=&quot;https://arxiv.org/abs/1808.01244&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://arxiv.org/abs/1808.01244&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1784917227741&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;CornerNet: Detecting Objects as Paired Keypoints&quot; data-og-description=&quot;We propose CornerNet, a new approach to object detection where we detect an object bounding box as a pair of keypoints, the top-left corner and the bottom-right corner, using a single convolution neural network. By detecting objects as paired keypoints, we&quot; data-og-host=&quot;arxiv.org&quot; data-og-source-url=&quot;https://arxiv.org/abs/1808.01244&quot; data-og-url=&quot;https://arxiv.org/abs/1808.01244v2&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/b827Kk/dJMb9lMoOdp/riegrnyEZnkndMLkL7U7j1/img.png?width=1200&amp;amp;height=700&amp;amp;face=0_0_1200_700,https://scrap.kakaocdn.net/dn/bekDId/dJMb9jgKM01/IklN1YeM6KbejJwH3PskS0/img.png?width=1000&amp;amp;height=1000&amp;amp;face=0_0_1000_1000&quot;&gt;&lt;a href=&quot;https://arxiv.org/abs/1808.01244&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://arxiv.org/abs/1808.01244&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/b827Kk/dJMb9lMoOdp/riegrnyEZnkndMLkL7U7j1/img.png?width=1200&amp;amp;height=700&amp;amp;face=0_0_1200_700,https://scrap.kakaocdn.net/dn/bekDId/dJMb9jgKM01/IklN1YeM6KbejJwH3PskS0/img.png?width=1000&amp;amp;height=1000&amp;amp;face=0_0_1000_1000');&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;CornerNet: Detecting Objects as Paired Keypoints&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;We propose CornerNet, a new approach to object detection where we detect an object bounding box as a pair of keypoints, the top-left corner and the bottom-right corner, using a single convolution neural network. By detecting objects as paired keypoints, we&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;arxiv.org&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 data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;논문제목: &lt;b&gt;CenterNet: Keypoint Triplets for Object Detection&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;논문저자: Kaiwen Duan, Song Bai, Lingxi Xie, Honggang Qi, Qingming Huang, Qi Tian&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;제출학회: CVPR 2019&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;논문링크:&lt;span&gt; &lt;a href=&quot;https://arxiv.org/abs/1904.08189&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://arxiv.org/abs/1904.08189&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1784917264036&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;CenterNet: Keypoint Triplets for Object Detection&quot; data-og-description=&quot;In object detection, keypoint-based approaches often suffer a large number of incorrect object bounding boxes, arguably due to the lack of an additional look into the cropped regions. This paper presents an efficient solution which explores the visual patt&quot; data-og-host=&quot;arxiv.org&quot; data-og-source-url=&quot;https://arxiv.org/abs/1904.08189&quot; data-og-url=&quot;https://arxiv.org/abs/1904.08189v3&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bE80b9/dJMb8WeNla2/nHTi7sXIYHS1IbnpFKWjb0/img.png?width=1200&amp;amp;height=700&amp;amp;face=0_0_1200_700,https://scrap.kakaocdn.net/dn/bodqKe/dJMb8UadkuY/F3cSEb19OAkOctM0Awp3L0/img.png?width=1000&amp;amp;height=1000&amp;amp;face=0_0_1000_1000&quot;&gt;&lt;a href=&quot;https://arxiv.org/abs/1904.08189&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://arxiv.org/abs/1904.08189&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bE80b9/dJMb8WeNla2/nHTi7sXIYHS1IbnpFKWjb0/img.png?width=1200&amp;amp;height=700&amp;amp;face=0_0_1200_700,https://scrap.kakaocdn.net/dn/bodqKe/dJMb8UadkuY/F3cSEb19OAkOctM0Awp3L0/img.png?width=1000&amp;amp;height=1000&amp;amp;face=0_0_1000_1000');&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;CenterNet: Keypoint Triplets for Object Detection&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;In object detection, keypoint-based approaches often suffer a large number of incorrect object bounding boxes, arguably due to the lack of an additional look into the cropped regions. This paper presents an efficient solution which explores the visual patt&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;arxiv.org&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;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. Motivation - Anchor box의 한계&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2018년까지 object detection의 표준 답안은 anchor box였다. 다양한 크기와 종횡비의 후보 박스를 이미지에 촘촘히 깔고 각각을 분류하고 좌표를 회귀하는 방식이다. SSD, RetinaNet, Faster R-CNN 계열이 전부 이 구조를 공유했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CornerNet 저자들은 여기서 두 가지 문제를 지적한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫째는 &lt;b&gt;극심한 양성/음성 불균형&lt;/b&gt;이다. Ground truth와 충분히 겹치는 anchor를 확보하려면 anchor를 아주 많이 깔아야 한다. DSSD는 4만 개 이상, RetinaNet은 10만 개 이상을 쓴다. 그런데 실제로 GT와 겹치는 anchor는 극소수라서 압도적인 negative가 학습을 비효율적으로 만든다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;둘째는 &lt;b&gt;하이퍼파라미터 폭발&lt;/b&gt;이다. 몇 개를 쓸지, 어떤 크기로 할지, 어떤 종횡비로 할지가 전부 ad-hoc heuristic으로 결정된다. 게다가 multi-scale 구조와 결합되면 스케일마다 별도의 anchor set을 설계해야 해서 복잡도가 더 커진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;핵심은 anchor가 데이터에서 나오는 값이 아니라 사람이 설계해야 하는 값이고, 그것이 성능을 좌우한다는 점이다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. CornerNet의 아이디어 - 박스를 두 개의 점으로&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;박스는 결국 좌상단 좌표와 우하단 좌표로 결정된다. 그렇다면 두 개의 keypoint를 검출하고 짝지으면 되지 않을까. 이것이 CornerNet의 출발점이다.&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;1) Backbone - Hourglass Network&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;논문의 전체적인 구조를 보면, 입력 511&amp;times;511 이미지가 Hourglass-104를 통과하고, 그 출력에 두 개의 prediction module이 붙으며(좌상단 코너용, 하나는 우하단 코너용) 각 모듈은 세 가지를 예측하게 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;885&quot; data-origin-height=&quot;244&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cBU237/dJMcabE0Nog/cZsGEvjPsuEf06RG7pIkS0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cBU237/dJMcabE0Nog/cZsGEvjPsuEf06RG7pIkS0/img.png&quot; data-alt=&quot;Overview of CornerNet&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cBU237/dJMcabE0Nog/cZsGEvjPsuEf06RG7pIkS0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcBU237%2FdJMcabE0Nog%2FcZsGEvjPsuEf06RG7pIkS0%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;885&quot; height=&quot;244&quot; data-origin-width=&quot;885&quot; data-origin-height=&quot;244&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Overview of CornerNet&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저, Bacbone으로 Hourglass Network는 원래 사람의 자세를 추정하는 human pose estimation 과제를 위해 만들어진 구조다. 동작 방식은 먼저, 입력 이미지를 받아서 여러 번의 합성곱과 풀링을 거치며 이미지를 점점 작게 압축한다(다운샘플링). 이 과정에서 이미지는 작아지지만 &quot;이 영역에 대략 뭐가 있는지&quot;에 대한 전반적인 정보는 응축된다. 그다음엔 반대로 이 압축된 결과를 다시 원래 크기로 점점 키워나간다(업샘플링). 압축했다가 다시 펼치는 이 왕복 구조와 함께, 압축 과정에서 손실된 세부 정보를 보완하기 위해, 압축 단계의 feature를 복원 단계로 직접 연결해주는 skip connection(건너뛰기 연결)도 쓴다. 이렇게 하면 &quot;전체적인 맥락&quot;과 &quot;세밀한 디테일&quot;을 하나의 구조 안에서 동시에 다루게 된다. 이런 특성 때문에, Hourglass Network 하나(hourglass module)를 여러 개 쌓아서 반복적으로 처리하면 이미지에 대한 이해가 점점 더 정교해져 human pose estimation뿐 아니라 물체 검출에도 잘 맞는 구조라는 것이 이 논문의 판단이다.&amp;nbsp;&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;2) Detecting Corners&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Heatmap의 구조&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;네트워크는 두 종류의 heatmap을 예측한다. 좌상단 코너용 heatmap과 우하단 코너용 heatmap이다. 각 heatmap은 C개의 채널을 갖는데, C는 검출하려는 클래스 개수다. 크기는 H&amp;times;W이고 background 채널은 따로 두지 않는다. 각 채널은 해당 클래스 코너의 위치를 나타내는 일종의 확률 지도라고 보면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원칙적으로 각 코너마다 정답 위치는 딱 한 픽셀이고, 나머지 모든 픽셀은 오답(negative)으로 취급한다.&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;GT 근처의 페널티 축소&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;467&quot; data-origin-height=&quot;351&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1JvaM/dJMcagGrauY/ZaUsuTuWKOGQboufLdLsi0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1JvaM/dJMcagGrauY/ZaUsuTuWKOGQboufLdLsi0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1JvaM/dJMcagGrauY/ZaUsuTuWKOGQboufLdLsi0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1JvaM%2FdJMcagGrauY%2FZaUsuTuWKOGQboufLdLsi0%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;467&quot; height=&quot;351&quot; data-origin-width=&quot;467&quot; data-origin-height=&quot;351&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;원칙적으로 코너마다 positive는 정확히 한 픽셀이고 나머지는 전부 negative다. 그런데 살짝 빗나간 코너 쌍이라도 GT와 IoU가 충분히 높은 박스를 만들어낼 수 있다. 그런 위치를 똑같이 강하게 벌주는 것은 비합리적이다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;그래서 물체 크기에 따라 반경 r을 정한다. 기준은 &quot;반경 안의 두 점으로 만든 박스가 GT와 IoU 0.7 이상을 보장할 것&quot;이다. 그 반경 안의 negative에는 정규화하지 않은 2D Gaussian만큼 페널티를 깎아준다. Gaussian의 중심은 positive 위치이고 &amp;sigma;는 반경의 1/3이다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이를 반영한 detection loss는 다음과 같다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;\[&lt;br /&gt;L_{det}&amp;nbsp;=&amp;nbsp;\frac{-1}{N}&amp;nbsp;\sum_{c=1}^{C}&amp;nbsp;\sum_{i=1}^{H}&amp;nbsp;\sum_{j=1}^{W}&amp;nbsp;\begin{cases}&amp;nbsp;(1-p_{cij})^{\alpha}&amp;nbsp;\log(p_{cij})&amp;nbsp;&amp;amp;&amp;nbsp;\text{if&amp;nbsp;}&amp;nbsp;y_{cij}&amp;nbsp;=&amp;nbsp;1&amp;nbsp;\\&amp;nbsp;(1-y_{cij})^{\beta}&amp;nbsp;(p_{cij})^{\alpha}&amp;nbsp;\log(1-p_{cij})&amp;nbsp;&amp;amp;&amp;nbsp;\text{otherwise}&amp;nbsp;\end{cases}&lt;br /&gt;\]&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;여기서 \(N\)은 이미지 내 객체의 수이며,&amp;nbsp;\(\alpha\)와 \(\beta\)는 각 지점의 기여도를 제어하는 하이퍼파라미터이다(모든 실험에서&amp;nbsp;&lt;br /&gt;\(\alpha\)는 2,&amp;nbsp;\(\beta\)는 4로 설정) &amp;alpha;=2 항은 원래 focal loss와 동일하게 쉬운 샘플을 다운웨이팅하는 역할이다. 이 논문의 변형점은 &amp;beta;=4인 (1&amp;minus;y) 항이다. GT에 가까울수록, 즉 y가 1에 가까울수록 negative 페널티가 급격히 줄어든다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;즉, RetinaNet에서 쓰던 focal loss를 기본 틀로 가져오되, 정답 근처의 오답 픽셀일수록 벌점을 크게 줄여주는 항을 하나 추가한 것으로 이 아이디어는 이후 CenterNet을 비롯한 여러 후속 연구에서도 그대로 가져다 쓴다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; 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;Offset - 정밀도 보정&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;네트워크는 다운샘플링을 여러 번 거치기 때문에, 최종 출력의 해상도는 원본 이미지보다 작다. 예를 들어 원본이 511&amp;times;511이면 출력 heatmap은 128&amp;times;128 정도로 줄어든다. 문제는 이 줄어든 heatmap 위의 좌표를 다시 원본 이미지 크기로 되돌릴 때 오차가 생긴다는 점이다. 특히 작은 물체일수록 이 오차가 IoU에 미치는 영향이 크다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 네트워크는 heatmap과 별도로 offset(보정값)도 함께 예측한다. 코너의 실제 원본 좌표와, 다운샘플링된 좌표를 다시 원본 크기로 단순 복원했을 때의 좌표 사이의 차이를 학습해서, 최종적으로 위치를 미세 조정하는 역할이다. 이 offset은 클래스별로 따로 두지 않고, 좌상단 코너 전체가 하나를 공유하고 우하단 코너 전체가 또 하나를 공유한다. 학습에는 smooth L1 loss라는, 오차가 작을 때는 부드럽게 크면 좀 더 강하게 벌주는 손실 함수를 쓰고, 정답 코너 위치에서만 이 loss를 적용한다.&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;3) Grouping Corners&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여러 개의 좌상단 코너와 여러 개의 우하단 코너가 검출되면 어떤 쌍이 같은 물체인지 알아야 한다. 저자들은 Newell et al.의 associative embedding을 가져온다. 원래는 사람의 관절 여러 개를 검출한 뒤, 그 관절들이 어느 사람에게 속하는지 묶는 데 쓰이던 방법인데, CornerNet은 이걸 &quot;관절을 사람별로 묶기&quot;에서 &quot;코너를 물체별로 묶기&quot;로 그대로 옮겨왔다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;검출된 코너마다 embedding이라는 1차원 값을 함께 예측한다. 임베딩의 숫자 자체는 의미가 없고 두 코너의 emnbedding 값이 서로 얼마나 가까운지가 중요하다. 같은 물체에 속하는 좌상단-우하단 코너 쌍은 embedding 값이 비슷하게 나오도록, 서로 다른 물체에 속하는 코너들은 embedding 값이 멀어지도록 학습시킨다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;L_{pull} = \frac{1}{N}\sum_k \left[(e_{t_k}-e_k)^2 + (e_{b_k}-e_k)^2\right]&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;L_{push} = \frac{1}{N(N-1)}\sum_{k}\sum_{j\neq k} \max(0,\ \Delta - |e_k - e_j|)&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 위한 loss로, Pull loss는 같은 물체의 두 코너를 당기고, push loss는 다른 물체를 최소 &amp;Delta;(=1)만큼 떨어뜨린다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 방식은 한계점을 가지는데, 숫자하나로 이미지 안의 모든 인스턴스를 구분해야해 객체가 많아지면 임베딩 공간이 포화될 수밖에 없는 구조이다. 실제로 이 지점이 후속 논문인 CenterNet이 정면으로 지적하는 CornerNet의 약점이 된다.&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;4) Corner Pooling&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;554&quot; data-origin-height=&quot;140&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dbGn7t/dJMcabrwFo1/KaYc36hZtqkzDBRgJsARvk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dbGn7t/dJMcabrwFo1/KaYc36hZtqkzDBRgJsARvk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dbGn7t/dJMcabrwFo1/KaYc36hZtqkzDBRgJsARvk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdbGn7t%2FdJMcabrwFo1%2FKaYc36hZtqkzDBRgJsARvk%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;649&quot; height=&quot;164&quot; data-origin-width=&quot;554&quot; data-origin-height=&quot;140&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;위 사진을 보면 스키 타는 사람, 피자, 비행기 박스의 코너는 대개 물체 바깥의 빈 공간에 있다. 그 픽셀만 봐서는 아무 정보가 없다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이런 경우 사람의 판단 과정은 좌상단 코너인지 알기 위해 오른쪽 수평 방향을 훑어서 물체의 최상단 경계를 찾고, 아래쪽 수직 방향을 훑어서 최좌측 경계를 찾을 것이다. 이 사전지식을 아키텍처에 직접 박아넣자는 것이 corner pooling이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bSV3od/dJMb998hAnL/rUdpXNHNK2Ypz1kQQWlkFK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bSV3od/dJMb998hAnL/rUdpXNHNK2Ypz1kQQWlkFK/img.png&quot; data-origin-width=&quot;496&quot; data-origin-height=&quot;327&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;39.95&quot; style=&quot;width: 39.4834%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bSV3od/dJMb998hAnL/rUdpXNHNK2Ypz1kQQWlkFK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbSV3od%2FdJMb998hAnL%2FrUdpXNHNK2Ypz1kQQWlkFK%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;496&quot; height=&quot;327&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfBGfo/dJMcac40DkB/sskK1DIb7SKbdJz5SIFlPK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfBGfo/dJMcac40DkB/sskK1DIb7SKbdJz5SIFlPK/img.png&quot; data-origin-width=&quot;529&quot; data-origin-height=&quot;232&quot; data-is-animation=&quot;false&quot; style=&quot;width: 59.3538%;&quot; data-widthpercent=&quot;60.05&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfBGfo/dJMcac40DkB/sskK1DIb7SKbdJz5SIFlPK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbfBGfo%2FdJMcac40DkB%2FsskK1DIb7SKbdJz5SIFlPK%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;529&quot; height=&quot;232&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;좌상단 코너를 예로 들면, 두 개의 feature map을 입력으로 받는다. 하나는 &quot;아래 방향으로 훑는&quot; 용도, 다른 하나는 &quot;오른쪽 방향으로 훑는&quot; 용도다. 각 픽셀 위치에서, 그 지점부터 아래쪽 끝까지 값들 중 최댓값을 뽑고, 그 지점부터 오른쪽 끝까지 값들 중 최댓값을 뽑은 뒤, 두 최댓값을 더한다. 우하단 코너는 방향만 반대로(위쪽과 왼쪽) 뒤집어서 똑같이 계산한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;이 연산을 각 픽셀마다 매번 &quot;끝까지 훑어서 최댓값 찾기&quot;로 처리하면 느리다. 하지만 실제로는 이 계산이 동적 계획법(dynamic programming) 구조를 갖고 있어서 효율적으로 처리할 수 있다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;t_{ij} = \max\left(f_{t_{ij}},\ t_{(i+1)j}\right), \qquad&lt;br /&gt;l_{ij} = \max\left(f_{l_{ij}},\ l_{i(j+1)}\right)&lt;br /&gt;$$&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이미지의 가장자리부터 반대쪽으로 한 번만 훑으면서, &quot;지금까지 본 값 중 최댓값&quot;을 계속 갱신해 나가면 전체 feature map을 한 번의 선형 스캔으로 처리할 수 있어 훨씬 빠른 연산이 되는 것이다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Corner pooling은 단독 레이어가 아니라 modified residual block 안에 들어간다. 기존 residual block의 첫 3&amp;times;3 conv를 corner pooling 모듈로 갈아끼운 형태다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;즉, &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;Hourglass 네트워크에서 나온 특징을 두 번의 합성곱 연산으로 처리한 뒤 corner pooling을 적용하고, 그 결과를 다시 합성곱 연산에 통과시킨 뒤 원래의 입력(shortcut)과 더한다. 이렇게 만들어진 특징이 이후 heatmap, embedding, offset을 각각 예측하는 세 갈래의 브랜치로 나뉘어 들어간다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. CornerNet의 실험 결과&lt;/h2&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;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Corner pooling ablation&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;805&quot; data-origin-height=&quot;188&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/H6ZTa/dJMcaaMVPhq/tZql5FQkGAvmhjAHp6d4K1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/H6ZTa/dJMcaaMVPhq/tZql5FQkGAvmhjAHp6d4K1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/H6ZTa/dJMcaaMVPhq/tZql5FQkGAvmhjAHp6d4K1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FH6ZTa%2FdJMcaaMVPhq%2FtZql5FQkGAvmhjAHp6d4K1%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;805&quot; height=&quot;188&quot; data-origin-width=&quot;805&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;큰 물체일수록 코너에서 경계까지의 거리가 멀고, 그래서 멀리 훑어보는 연산의 가치가 크다. 작은 물체는 +0.1로 사실상 의미가 없다.&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;Penalty reduction ablation&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;804&quot; data-origin-height=&quot;200&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bezcXA/dJMcagzzK90/SDylVz8jxLxc75ZUvGzyX0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bezcXA/dJMcagzzK90/SDylVz8jxLxc75ZUvGzyX0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bezcXA/dJMcagzzK90/SDylVz8jxLxc75ZUvGzyX0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbezcXA%2FdJMcagzzK90%2FSDylVz8jxLxc75ZUvGzyX0%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;804&quot; height=&quot;200&quot; data-origin-width=&quot;804&quot; data-origin-height=&quot;200&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;베이스라인 대비 +5.6 AP다. Corner pooling(+2.0)보다 기여가 크다. 논문의 핵심 novelty는 corner pooling이지만 실질적으로 성능을 만든 것은 loss 설계임을 시사한다.&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;Error analysis&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;820&quot; data-origin-height=&quot;253&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bRjM2u/dJMcadXaHM4/btkkY6yINFiViooYAfKbHk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bRjM2u/dJMcadXaHM4/btkkY6yINFiViooYAfKbHk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bRjM2u/dJMcadXaHM4/btkkY6yINFiViooYAfKbHk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbRjM2u%2FdJMcadXaHM4%2FbtkkY6yINFiViooYAfKbHk%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;820&quot; height=&quot;253&quot; data-origin-width=&quot;820&quot; data-origin-height=&quot;253&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;heatmap을 정답으로 교체했을 경우 38.5에서 74.0으로 향상되는 것을 통해 grouping은 이미 꽤 잘 작동하고 있고, 진짜 병목은 heatmap 코너를 정확히 검출하는 일임을 알 수 있다. 여기에 GT offset까지 넣으면 87.1까지 오르는데, 남은 12.9가 embedding 그룹핑 오류의 몫이라고 볼 수 있다.&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;SOTA 비교&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;COCO test-dev 결과다.&lt;/p&gt;
&lt;table data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Method&lt;/td&gt;
&lt;td&gt;AP&lt;/td&gt;
&lt;td&gt;AP50&lt;/td&gt;
&lt;td&gt;AP75&lt;/td&gt;
&lt;td&gt;AR100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DSSD513&lt;/td&gt;
&lt;td&gt;33.2&lt;/td&gt;
&lt;td&gt;53.3&lt;/td&gt;
&lt;td&gt;35.2&lt;/td&gt;
&lt;td&gt;46.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RefineDet512 (multi)&lt;/td&gt;
&lt;td&gt;41.8&lt;/td&gt;
&lt;td&gt;62.9&lt;/td&gt;
&lt;td&gt;45.7&lt;/td&gt;
&lt;td&gt;&amp;ndash;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CornerNet511 (multi)&lt;/td&gt;
&lt;td&gt;42.1&lt;/td&gt;
&lt;td&gt;57.8&lt;/td&gt;
&lt;td&gt;45.3&lt;/td&gt;
&lt;td&gt;60.0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AP는 CornerNet이 가장 높다. 42.1로 당시 모든 one-stage detector를 앞섰다. 그러나 AP50은 RefineDet이 62.9인데 CornerNet은 57.8로 오히려 낮은것을 확인할 수 있다. 반면 AR100은 또, 압도적으로 높다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AP50이 낮다는 것은 느슨한 기준에서조차 틀린 박스가 많다는 뜻이며 AR이 높다는 것은 놓치는 물체는 거의 없다는 뜻이다. 즉, CornerNet은 재현율은 최고인데 정밀도가 나쁘다는 얘기다. 박스를 많이 만들어내는데 그중에 쓰레기가 상당히 섞여 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CornerNet 논문은 이 패턴을 분석하지 않았지만 이어지는 CenterNet에서 이 문제를 파고든다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. CenterNet의 문제 정량화&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CenterNet 저자들이 가장 먼저 한 일은 이 문제에 이름과 숫자를 붙이는 것이었다. FD(false discovery) rate라는 지표를 도입한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\text{FD} = 1 - \text{AP}\big|_{\text{IoU}=[0.05:0.05:0.5]}&lt;br /&gt;$$&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;491&quot; data-origin-height=&quot;166&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OTqkS/dJMcadXaHNb/4BgbMYMuQKILKgNTfJQpzK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OTqkS/dJMcadXaHNb/4BgbMYMuQKILKgNTfJQpzK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OTqkS/dJMcadXaHNb/4BgbMYMuQKILKgNTfJQpzK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOTqkS%2FdJMcadXaHNb%2F4BgbMYMuQKILKgNTfJQpzK%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;491&quot; height=&quot;166&quot; data-origin-width=&quot;491&quot; data-origin-height=&quot;166&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 지표를 해석하면 IoU 0.05만 넘으면 맞다고 쳐주는데도 100개 중 32.7개가 오답이고, 작은 물체는 60.3%가 오답이다. 이것은 정밀도가 좀 낮다는 수준이 아니라 구조적 결함에 가까운데 그 원인은 CornerNet이 박스의 경계만 보고 내부를 전혀 보지 않는다는 점에 있다.&lt;br /&gt;코너 쌍을 embedding 거리로만 묶기 때문에, 공교롭게 임베딩이 비슷한 엉뚱한 두 코너가 만나면 말도 안 되는 종횡비의 박스가 생겨도 걸러낼 방법이 없다. 아래의 사진들이 이 문제를 보여준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;470&quot; data-origin-height=&quot;183&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/blUI8A/dJMcaiqCjYs/J7tpoUalhGCvLCDQzUVhK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/blUI8A/dJMcaiqCjYs/J7tpoUalhGCvLCDQzUVhK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/blUI8A/dJMcaiqCjYs/J7tpoUalhGCvLCDQzUVhK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FblUI8A%2FdJMcaiqCjYs%2FJ7tpoUalhGCvLCDQzUVhK0%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;696&quot; height=&quot;271&quot; data-origin-width=&quot;470&quot; data-origin-height=&quot;183&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;5. CenterNet의 핵심 아이디어 - Pair에서 Triplet으로&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Central region exploration : 코너 쌍으로 만든 후보 박스를, 중심점이 있는지 확인해서 검증하는 절차 자체&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저자들의 핵심 아이디어는 &quot;예측된 박스가 GT와 IoU가 높다면 그 박스의 중심 근처에 같은 클래스의 center keypoint가 검출될 확률이 높고, 역도 성립한다.&quot;는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 추론 절차가 이렇게 바뀐다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;CornerNet 방식으로 코너 쌍을 만들어 후보 박스를 생성한다&lt;/li&gt;
&lt;li&gt;top-k center keypoint를 뽑고 offset으로 원본 해상도에 re-mapping한다&lt;/li&gt;
&lt;li&gt;각 후보 박스에 대해 중심 영역(central region)을 정의한다&lt;/li&gt;
&lt;li&gt;그 안에 같은 클래스의 center keypoint가 있으면 유지하고 없으면 제거한다&lt;/li&gt;
&lt;li&gt;유지된 박스의 점수는 세 점(좌상단, 우하단, 중심)의 평균으로 교체한다&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;453&quot; data-origin-height=&quot;168&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TRvvx/dJMcahSI6A9/JwyTKIhN1U9KHDtrELc5D1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TRvvx/dJMcahSI6A9/JwyTKIhN1U9KHDtrELc5D1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TRvvx/dJMcahSI6A9/JwyTKIhN1U9KHDtrELc5D1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTRvvx%2FdJMcahSI6A9%2FJwyTKIhN1U9KHDtrELc5D1%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;585&quot; height=&quot;217&quot; data-origin-width=&quot;453&quot; data-origin-height=&quot;168&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;position: absolute;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;이 방법은 central region을 어떻게 설정할지도 중요한데, cental region이 너무 작으면 작은 박스에서 중심점을 놓쳐 recall이 떨어지고, 너무 크면 큰 박스에 엉뚱한 중심점까지 들어와 precision이 떨어진다. 그래서 작은 박스에는 상대적으로 큰 중심 영역을, 큰 박스에는 상대적으로 작은 중심 영역을 주는 방법을 채택하였다.(box scale이 150 미만이면 n=3, 초과면 n=5)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;470&quot; data-origin-height=&quot;355&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c5G2xb/dJMcad3SvzW/h32jz9wgcHEKNfD57yApf0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c5G2xb/dJMcad3SvzW/h32jz9wgcHEKNfD57yApf0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c5G2xb/dJMcad3SvzW/h32jz9wgcHEKNfD57yApf0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc5G2xb%2FdJMcad3SvzW%2Fh32jz9wgcHEKNfD57yApf0%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;470&quot; height=&quot;355&quot; data-origin-width=&quot;470&quot; data-origin-height=&quot;355&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\text{ctl}_x = \frac{(n+1)\text{tl}_x + (n-1)\text{br}_x}{2n}, \qquad&lt;br /&gt;\text{cbr}_x = \frac{(n-1)\text{tl}_x + (n+1)\text{br}_x}{2n}&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;y 성분도 같은 형태다. 기하학적으로 보면 박스를 n&amp;times;n 격자로 나눴을 때 가운데 한 칸이 중심 영역이 된다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;6. CenterNet의 아키텍처 - Center pooling과 cascade corner pooling&lt;/h2&gt;
&lt;p&gt;&lt;img style=&quot;color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; font-size: 16px; letter-spacing: 0px;&quot; src=&quot;https://blog.kakaocdn.net/dna/xH2MR/dJMcahSI6Bf/AAAAAAAAAAAAAAAAAAAAAMiwyWJaaJ5Tl69Xcx7wjExJ2oXUhhM9tnsAVHBam8jJ/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&amp;amp;expires=1785509999&amp;amp;allow_ip=&amp;amp;allow_referer=&amp;amp;signature=LcElMrTXonjQY0rDel%2BsaEu%2FDBs%3D&quot; data-origin-width=&quot;957&quot; data-origin-height=&quot;252&quot; data-is-animation=&quot;false&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;Center pooling : 중심점을 더 잘 찾기 위한 pooling 연산&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물체의 기하학적 중심에 특징적인 시각 패턴이 있으리라는 보장이 없다. 사람의 경우 얼굴에 강한 패턴이 있지만 박스의 중심은 대개 몸통 한가운데다. 그래서 &lt;b&gt;어떤 픽셀이 중심점인지 판단할 때 그 픽셀의 가로 방향 최댓값과 세로 방향 최댓값을 더해서 쓴다.&lt;/b&gt; 구현은 CornerNet의 corner pooling을 방향만 바꿔 조합하면 된다. 가로 방향 최댓값은 left pooling과 right pooling을 직렬로 연결하고, 세로 방향은 top pooling과 bottom pooling을 직렬로 연결한다.&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;Cascade corner pooling : 코너를 더 잘 찾기 위한 pooling 연산&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존 corner pooling은 경계 방향으로만 최댓값을 찾기 때문에 엣지에 지나치게 민감하다. 배경의 강한 엣지에 반응해버리는 문제가 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 2단으로 바꾼다. 먼저 경계 방향으로 훑어 boundary maximum 위치를 찾고, 그 위치에서 물체 내부 방향으로 다시 훑어 internal maximum을 찾은 뒤, 두 값을 더한다. 구현은 기존 top corner pooling 앞에 left corner pooling을 하나 추가하는 것으로 끝난다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CornerNet의 corner pooling이 경계 정보만 담았다면 cascade 버전은 경계와 내부 시각 패턴을 함께 담는다. &quot;내부를 보자&quot;는 이 논문의 주제가 코너 쪽에도 일관되게 적용된 셈이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;606&quot; data-origin-height=&quot;186&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b0x1oX/dJMcadJx14y/P1bjYUbM8bHEy1yJkuyT40/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b0x1oX/dJMcadJx14y/P1bjYUbM8bHEy1yJkuyT40/img.png&quot; data-alt=&quot;(a) Center pooling (b) Corner pooling (c) Cascade corner pooling&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b0x1oX/dJMcadJx14y/P1bjYUbM8bHEy1yJkuyT40/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb0x1oX%2FdJMcadJx14y%2FP1bjYUbM8bHEy1yJkuyT40%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;606&quot; height=&quot;186&quot; data-origin-width=&quot;606&quot; data-origin-height=&quot;186&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;(a) Center pooling (b) Corner pooling (c) Cascade corner pooling&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;7. CenterNet의 실험 결과&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;COCO test-dev&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;table style=&quot;height: 108px;&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;height: 18px; text-align: center;&quot;&gt;Method&lt;/td&gt;
&lt;td style=&quot;height: 18px; text-align: center;&quot;&gt;Backbone&lt;/td&gt;
&lt;td style=&quot;height: 18px; text-align: center;&quot;&gt;AP&lt;/td&gt;
&lt;td style=&quot;height: 18px; text-align: center;&quot;&gt;AP50&lt;/td&gt;
&lt;td style=&quot;height: 18px; text-align: center;&quot;&gt;AP_S&lt;/td&gt;
&lt;td style=&quot;height: 18px; text-align: center;&quot;&gt;AR100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;height: 18px; text-align: center;&quot;&gt;CornerNet511 (single)&lt;/td&gt;
&lt;td style=&quot;height: 18px; text-align: center;&quot;&gt;HG-104&lt;/td&gt;
&lt;td style=&quot;height: 18px; text-align: center;&quot;&gt;40.5&lt;/td&gt;
&lt;td style=&quot;height: 18px; text-align: center;&quot;&gt;56.5&lt;/td&gt;
&lt;td style=&quot;height: 18px; text-align: center;&quot;&gt;19.4&lt;/td&gt;
&lt;td style=&quot;height: 18px; text-align: center;&quot;&gt;59.1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;height: 18px; text-align: center;&quot;&gt;CenterNet511 (single)&lt;/td&gt;
&lt;td style=&quot;height: 18px; text-align: center;&quot;&gt;HG-104&lt;/td&gt;
&lt;td style=&quot;height: 18px; text-align: center;&quot;&gt;44.9&lt;/td&gt;
&lt;td style=&quot;height: 18px; text-align: center;&quot;&gt;&lt;b&gt;62.4&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 18px; text-align: center;&quot;&gt;25.6&lt;/td&gt;
&lt;td style=&quot;height: 18px; text-align: center;&quot;&gt;63.3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;height: 18px; text-align: center;&quot;&gt;CornerNet511 (multi)&lt;/td&gt;
&lt;td style=&quot;height: 18px; text-align: center;&quot;&gt;HG-104&lt;/td&gt;
&lt;td style=&quot;height: 18px; text-align: center;&quot;&gt;42.1&lt;/td&gt;
&lt;td style=&quot;height: 18px; text-align: center;&quot;&gt;57.8&lt;/td&gt;
&lt;td style=&quot;height: 18px; text-align: center;&quot;&gt;20.8&lt;/td&gt;
&lt;td style=&quot;height: 18px; text-align: center;&quot;&gt;60.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;height: 18px; text-align: center;&quot;&gt;CenterNet511 (multi)&lt;/td&gt;
&lt;td style=&quot;height: 18px; text-align: center;&quot;&gt;HG-104&lt;/td&gt;
&lt;td style=&quot;height: 18px; text-align: center;&quot;&gt;47.0&lt;/td&gt;
&lt;td style=&quot;height: 18px; text-align: center;&quot;&gt;&lt;b&gt;64.5&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 18px; text-align: center;&quot;&gt;28.9&lt;/td&gt;
&lt;td style=&quot;height: 18px; text-align: center;&quot;&gt;64.8&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;동일 backbone에서 +4.4, +4.9 AP으로 앞서 던진 문제가 여기서 해결된다. CornerNet의 약점은 AP50이 유독 낮다는 것(56.5)이었는데 CenterNet은 이를 62.4로 끌어올렸다. AP 상승분(+4.4)보다 AP50 상승분(+5.9)이 더 크다. 또한, AP_S가 20.8에서 28.9로 +8.1 올라 작은 물체에서의 개선이 가장 크게 나타났다. 저자는 이를 틀린 박스가 작을수록 그 중심 영역에서 center keypoint가 검출될 확률이 더 낮으니 작은 오답 박스가 특히 잘 걸러진다는 것이라고 설명하였다.&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;FD rate를 통한 검증&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;529&quot; data-origin-height=&quot;126&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c6P3ei/dJMcahZwT0a/EFO1XAfBRjAAaznltstLc0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c6P3ei/dJMcahZwT0a/EFO1XAfBRjAAaznltstLc0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c6P3ei/dJMcahZwT0a/EFO1XAfBRjAAaznltstLc0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc6P3ei%2FdJMcahZwT0a%2FEFO1XAfBRjAAaznltstLc0%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;529&quot; height=&quot;126&quot; data-origin-width=&quot;529&quot; data-origin-height=&quot;126&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모든 기준에서 FD가 감소했고 작은 물체에서 9.6%p로 가장 크게 줄었다. AP_S 개선과 정확히 같은 방향을 가리킨다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Ablation&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1071&quot; data-origin-height=&quot;162&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjk8ji/dJMcaae7cpS/cNhKyzkiDoMx91HGyQOeA0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjk8ji/dJMcaae7cpS/cNhKyzkiDoMx91HGyQOeA0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjk8ji/dJMcaae7cpS/cNhKyzkiDoMx91HGyQOeA0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbjk8ji%2FdJMcaae7cpS%2FcNhKyzkiDoMx91HGyQOeA0%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;1071&quot; height=&quot;162&quot; data-origin-width=&quot;1071&quot; data-origin-height=&quot;162&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CRE는 central region exploration, CTP는 center pooling, CCP는 cascade corner pooling이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;CRE(+2.3)&lt;/b&gt; 가 세 요소 중 압도적으로 기여가 크다. 특히 AP_S가 18.5에서 23.1로 +4.6 오른 반면 AP_L은 +0.1로 사실상 변화가 없다. 확률적으로 작은 물체의 중심점이 큰 물체보다 위치를 특정하기 쉽기 때문이라는 설명이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;CTP(+0.9)&lt;/b&gt; 는 반대로 AP_L에서 +1.4로 큰 물체에 유리하다. 큰 물체일수록 내부에 활용 가능한 시각 패턴이 많기 때문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;CCP 는&lt;/b&gt; CornerNet 위에 단독으로 얹으면 AP_L은 52.2에서 52.2로 변화가 없는데 AR_L은 74.0에서 75.8로 +1.8 오른다. 저자는 내부 패턴 덕에 물체를 더 많이 &quot;보게&quot; 되었지만 그 풍부한 패턴이 오히려 경계 인식을 방해해서 부정확한 박스가 늘었다는 것이다. 재현율은 올라도 정밀도가 안 따라온 셈이다. 그런데 CenterNet의 중심점 검증이 붙으면 그 부정확한 박스가 제거되면서 AP_L이 53.6에서 55.8로 +2.2 뛴다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;8. 남은 한계&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;같은 클래스의 밀집 상황.&lt;/b&gt; 사람 군집이나 접시 위 broccoli처럼 같은 클래스 객체가 겹쳐 있으면 A의 중심점이 B의 중심 영역에 들어갈 수 있다. 클래스만 확인하므로 이 경우 잘못된 박스가 그대로 살아남는다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;새로 들어온 하이퍼파라미터.&lt;/b&gt; n &amp;isin; {3, 5}, 임계값 150, top-70. Anchor-free의 명분과 어긋나는데 민감도 실험도 없다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;후처리 필터라는 본질.&lt;/b&gt; 이중심점 검증은 학습에 관여하지 않고 추론 시에만 작동한다. 즉 잘못된 코너 쌍이 애초에 생기지 않도록 만드는 것이 아니라 생긴 뒤에 걸러낸다. 앞에서 복선으로 깔았던 1차원 embedding 그룹핑이라는 CornerNet의 근본 약점은 그대로 남아 있고 그 위에 필터를 하나 얹은 구조다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;여전한 무게.&lt;/b&gt; Hourglass-104에 480K iteration, V100 8장, 340ms. 실용성 측면에서는 같은 시기의 Objects as Points나 FCOS가 훨씬 매력적이다.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;9. 계보 속 위치&lt;/h2&gt;
&lt;pre class=&quot;pgsql&quot;&gt;&lt;code&gt;Stacked Hourglass (2016) ─┐
Associative Embedding (2017) ─┼&amp;rarr; CornerNet (2018)
Focal Loss (2017) ────────────┘        │
                                       │
        ┌──────────────────────────────┼──────────────────────────┐
        &amp;darr;                              &amp;darr;                          &amp;darr;
CornerNet-Lite (2019)      CenterNet-Triplets (2019)      ExtremeNet (2019)
   속도 개선                   중심점으로 FP 검증            극점 4개 + 중심

                     ┌─────────────────────────────┐
                     &amp;darr;                             &amp;darr;
        Objects as Points (2019)              FCOS (2019)
        코너&amp;middot;그룹핑 통째로 제거              per-pixel + centerness&lt;/code&gt;&lt;/pre&gt;</description>
      <author>kwangmin8932</author>
      <guid isPermaLink="true">https://lambdacourse.tistory.com/71</guid>
      <comments>https://lambdacourse.tistory.com/71#entry71comment</comments>
      <pubDate>Sat, 25 Jul 2026 01:18:59 +0900</pubDate>
    </item>
    <item>
      <title>[강민혁] Transformer_Attention Is All You Need</title>
      <link>https://lambdacourse.tistory.com/70</link>
      <description>&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;논문정보&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;제목: Attention Is All You Need&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;저자: Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Łukasz Kaiser, Illia Polosukhin&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;학회: NIPS 2017&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Attention Is All You Need는2017년 Google연구진의 논문으로, RNN과 CNN을 없애고 attention만을 사용하여 더 좋은 모델을 만들고자 쓴 논문이다. 이는 구조를 극단적으로 단순화하여 병렬 처리를 가능하게 했고, 이로 인하여 모델의 크기를 엄청나게 키울 수 있는 기반을 마련하였다. 이 기술을 통하여 오늘날의 GPT나 BERT같은 거대한 언어 모델이 탄생했다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 논문 배경&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1.1 기존 모델(RNN, CNN)의 문제점&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;2008&quot; data-origin-height=&quot;823&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bSQMMl/dJMcaalMh33/TeAf6x2URQhybkczpdeQfK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bSQMMl/dJMcaalMh33/TeAf6x2URQhybkczpdeQfK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bSQMMl/dJMcaalMh33/TeAf6x2URQhybkczpdeQfK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbSQMMl%2FdJMcaalMh33%2FTeAf6x2URQhybkczpdeQfK%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;2008&quot; height=&quot;823&quot; data-origin-width=&quot;2008&quot; data-origin-height=&quot;823&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;각 단어 입력마다 hidden state가 갱신되고 입력된 정보가 고정된 크기의 context vecoer로 정리되어 출력으로 연결됨.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- 순차적 연산(Sequential Computation)의 병목: RNN 계열(LSTM, GRU)은 은닉 상태(hidden state)&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span data-math=&quot;h_t&quot; data-index-in-node=&quot;61&quot;&gt;h_t&lt;/span&gt;를 계산하기 위해 이전 상태 h_{t-1}과 현재 입력&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span data-math=&quot;x_t&quot; data-index-in-node=&quot;97&quot;&gt;x_t&lt;/span&gt;를 사용합니다. 이는 문장을 왼쪽에서 오른쪽으로 하나씩 처리해야 함을 의미하며, 훈련 시 병렬 처리를 원천적으로 불가능하게 만든다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- 장기 의존성(Long-range Dependencies) 문제: 문장이 길어질수록, 정보가 전달되는 경로가 길어져 처음 입력된 단어의 의미가 소실되거나 기울기 소실 문제가 발생한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- 합성곱(CNN)의 한계: ByteNet이나 ConvS2S 같은 CNN 기반 모델은 병렬 처리는 가능하지만, 멀리 떨어진 단어 간의 관계를 파악하려면 수많은 층을 쌓아야 하므로 연산 비용이 크다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1.2 해결책 제안&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- 연구진은 순환과 합성곱을 완전히 배제하고, 오로지 어텐션 메커니즘으로만 전역적 의존성을 계산하는 Transformer를 제안했다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이는 기존RNN의 가장 큰 문제인 '앞 단어를 다 읽어야 뒷 단어를 읽을 수 있다.'는 점 때문에 GPU가 아무리 좋아도 순차적으로 연산했어야 하는데 트랜스포머는 문장 내 모든 단어를 '동시에' 펼쳐 놓고 서로의 관계를 한 번에 계산하는 발상의 전환을 이뤄냈다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;660&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TegAy/dJMcajbWhF0/UMxz4qxkkLWWbDYPyD8lo1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TegAy/dJMcajbWhF0/UMxz4qxkkLWWbDYPyD8lo1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TegAy/dJMcajbWhF0/UMxz4qxkkLWWbDYPyD8lo1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTegAy%2FdJMcajbWhF0%2FUMxz4qxkkLWWbDYPyD8lo1%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;1536&quot; height=&quot;660&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;660&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. 모델 아키텍처(인코더-디코더)&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;490&quot; data-origin-height=&quot;576&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/H59G1/dJMcaf1FCqt/9z95Ze9TIM43GyYjhx1uT0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/H59G1/dJMcaf1FCqt/9z95Ze9TIM43GyYjhx1uT0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/H59G1/dJMcaf1FCqt/9z95Ze9TIM43GyYjhx1uT0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FH59G1%2FdJMcaf1FCqt%2F9z95Ze9TIM43GyYjhx1uT0%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;490&quot; height=&quot;576&quot; data-origin-width=&quot;490&quot; data-origin-height=&quot;576&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;트랜스포머는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span data-math=&quot;d_{\text{model}} = 512&quot; data-index-in-node=&quot;7&quot;&gt;d_model = 512&lt;/span&gt;의 고정된 차원을 사용하는 인코더-디코더 스택 구조를 가진다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2.1 인코더 스택 (Encoder Stack)&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;-총&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span data-math=&quot;N = 6&quot; data-index-in-node=&quot;2&quot;&gt;N = 6&lt;/span&gt;개의 동일한 계층으로 구성된다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;-2개의 하위 계층 (Sub-layer)&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;(1) 멀티 헤드 셀프 어텐션 (Multi-Head Self-Attention): 문장 내의 단어들이 서로 어떤 문법적/의미적 연관성을 가지는지 파악한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;(2) 위치별 피드포워드 네트워크 (Position-wise FFN): 어텐션 층에서 모인 정보를 바탕으로 비선형적인 특징을 추가로 가공하고 학습한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;잔차 연결 및 정규화{&lt;span data-math=&quot;\text{LayerNorm}(x + \text{Sublayer}(x))&quot; data-index-in-node=&quot;23&quot;&gt;LayerNorm(x +Sublayer(x))}: 층이 깊어져도 학습이 안정적으로 진행되도록, 하위 계층을 통과하기 전의 원본 데이터(&lt;span data-index-in-node=&quot;103&quot; data-math=&quot;x&quot;&gt;x&lt;/span&gt;)를 통과 후의 데이터에 더해주고(잔차 연결) 스케일을 맞춰주는(정규화) 안전장치이다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2.2 디코더 스택 (Decoder Stack)&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;-&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;총&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;N = 6개의 동일한 계층으로 구성된다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- 3개의 하위 계층&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;(1) 마스크드 멀티 헤드 셀프 어텐션 (Masked Self-Attention): 번역을 할 때는 단어를 순차적으로 생성(Auto-regressive)해야 하므로, 미래에 나올 정답 단어를 미리 훔쳐보는 것을 방지해야 합니다. 이를 위해 아직 생성되지 않은 미래 위치의 어텐션 점수를 마이너스 무한대로 처리하여 확률을 0으로 만들어 버린다.(마스킹).&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;(2) 인코더-디코더 어텐션 (Encoder-Decoder Attention): 디코더가 현재 단어를 만들어낼 때, 인코더가 분석해둔 원본 문장의 요약본 중 어느 부분에 가장 집중(Attention)해서 참고할지를 결정한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;(3) 위치별 피드포워드 네트워크 (Position-wise FFN): 인코더와 마찬가지로 취합된 정보를 최종적으로 가공한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;인코더는 원문을 완벽하게 이해하는 요약본을 만들고 그 요약본을 참고하여 한 단어씩 번역을 수행한다. 디코더에만 있는 '마스크드 어텐션'은 뒤 페이지 정답을 미리 보지 못하게 가리는 역할이다,&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. 핵심 기술:어텐션 (Attention) 메커니즘&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3.1 스케일드 내적 어텐션 (Scaled Dot-Product Attention)&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- Q, K, V 개념&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Query (Q): 현재 해석하고자 하는 기준 단어.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Key (K): 문장 내 모든 단어들이 가진 특성(이름표).&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Value (V): 각 단어가 실제로 가진 의미 값.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;동작과정&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 현재 단어에서 Query를 만들고, 문장 내 다른 단어들에서 Key를 만듭니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. Query와 Key를 비교하여 단어 간의 유사도 점수를 계산합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 이 유사도 점수에 Softmax를 적용하여 가중치로 변환합니다.변환된 가중치 비율만큼 Value 값을 섞어줍니다(가중합).&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 결과: 현재 단어는 문장 내에 있는 다른 단어들의 정보를 가중 평균(Weighted Average) 하여 전달받게 됩니다.&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;softmax를 통한 가중치 산출&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;339&quot; data-origin-height=&quot;130&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJZK4k/dJMb991zQOt/3sXNSQnFQNgnC0qlRMZok0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJZK4k/dJMb991zQOt/3sXNSQnFQNgnC0qlRMZok0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJZK4k/dJMb991zQOt/3sXNSQnFQNgnC0qlRMZok0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJZK4k%2FdJMb991zQOt%2F3sXNSQnFQNgnC0qlRMZok0%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;130&quot; data-origin-width=&quot;339&quot; data-origin-height=&quot;130&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-A_ij의 의미: Attention Weight(어텐션 가중치)를 뜻하며, &lt;span data-index-in-node=&quot;46&quot; data-math=&quot;i&quot;&gt;i&lt;/span&gt;번째 토큰이 &lt;span data-index-in-node=&quot;54&quot; data-math=&quot;j&quot;&gt;j&lt;/span&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;385&quot; data-origin-height=&quot;451&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kJGLc/dJMcajiLnOn/oWKfwJlBLHYMQj5QF3drpk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kJGLc/dJMcajiLnOn/oWKfwJlBLHYMQj5QF3drpk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kJGLc/dJMcajiLnOn/oWKfwJlBLHYMQj5QF3drpk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkJGLc%2FdJMcajiLnOn%2FoWKfwJlBLHYMQj5QF3drpk%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;236&quot; height=&quot;276&quot; data-origin-width=&quot;385&quot; data-origin-height=&quot;451&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; 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;546&quot; data-origin-height=&quot;114&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dFuoDd/dJMcabEYKUp/K8kZaoNZcXcV9tMFamt5fk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dFuoDd/dJMcabEYKUp/K8kZaoNZcXcV9tMFamt5fk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dFuoDd/dJMcabEYKUp/K8kZaoNZcXcV9tMFamt5fk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdFuoDd%2FdJMcabEYKUp%2FK8kZaoNZcXcV9tMFamt5fk%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;68&quot; data-origin-width=&quot;546&quot; data-origin-height=&quot;114&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;d_k는 d_model/head로 벡터의 차원수를 의미한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;스케일링{(d_k)^1/2}로 나누는 이유: d_k값이 클 경우,Q와K의 내적 값이 극단적으로 커진다. 이렇게 되면 소프트맥스 함수의 기울기가 0으로 수렴하는 '포화'현상이 일어나 학습이 멈춘다. 따라서 이를 방지하기 위하여 분산을 줄여주는 역할을 한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3.2 멀티 헤드 어텐션 (Multi-Head Attention)&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;397&quot; data-origin-height=&quot;526&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cG4ihv/dJMcajbTYfD/fz2iX4vhtucFalsFn1cvWK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cG4ihv/dJMcajbTYfD/fz2iX4vhtucFalsFn1cvWK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cG4ihv/dJMcajbTYfD/fz2iX4vhtucFalsFn1cvWK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcG4ihv%2FdJMcajbTYfD%2Ffz2iX4vhtucFalsFn1cvWK%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;209&quot; height=&quot;277&quot; data-origin-width=&quot;397&quot; data-origin-height=&quot;526&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;757&quot; data-origin-height=&quot;148&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MXrLV/dJMcabEYLS3/JuSTukrzHrHZjQzixSBlT0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MXrLV/dJMcabEYLS3/JuSTukrzHrHZjQzixSBlT0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MXrLV/dJMcabEYLS3/JuSTukrzHrHZjQzixSBlT0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMXrLV%2FdJMcabEYLS3%2FJuSTukrzHrHZjQzixSBlT0%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;440&quot; height=&quot;86&quot; data-origin-width=&quot;757&quot; data-origin-height=&quot;148&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;-512차원 하나로 어텐션을 한 번만 수행하면 다양한 문맥적 특징이 뭉개진다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;-전체 차원을&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span data-math=&quot;h = 8&quot; data-index-in-node=&quot;7&quot;&gt;h = 8&lt;/span&gt;개의 헤드로 나누어(&lt;span data-math=&quot;d_k = d_v = 64&quot; data-index-in-node=&quot;24&quot;&gt;d_k = d_v = 64&lt;/span&gt;) 병렬로 어텐션을 수행한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- 각 헤드는 '문법적 관계', '의미적 관계' 등 서로 다른 부분 공간(Representation subspaces)의 정보를 나누어 포착한 후 이 결과들을 다시 병합(Concat)한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이 부분의 핵심은 '나(Query)와 가장 연관성 높은 단어(Key)를 찾아서 그 단어의 정보를 많이 가져온다'는 원리이다. 또한 스케일링에 대하여 정리하자면 '기울기의 소실을 막는 안전장치' 이다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4. 디테일 완성: FFN, 임베딩, 그리고 위치 인코딩&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4.1 위치별 피드포워드 네트워크 (Position-wise FFN)&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; 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;517&quot; data-origin-height=&quot;85&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cO3FQg/dJMcajppbqZ/nMPmKvDRI5BJXVWU4toRK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cO3FQg/dJMcajppbqZ/nMPmKvDRI5BJXVWU4toRK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cO3FQg/dJMcajppbqZ/nMPmKvDRI5BJXVWU4toRK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcO3FQg%2FdJMcajppbqZ%2FnMPmKvDRI5BJXVWU4toRK1%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;353&quot; height=&quot;58&quot; data-origin-width=&quot;517&quot; data-origin-height=&quot;85&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;-어텐션(Attention)이 문장 내 단어들끼리 서로 정보를 교환하며 '문맥적 관계'를 파악하는 역할이라면, FFN은 그렇게 모인 정보를 바탕으로 각 단어(위치)별로 복잡한 '비선형적 특징'을 학습하는 역할을 한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- 내부적으로 차원을 512에서 2048로 크게 확장했다가 다시 512로 압축하는 과정을 거치는데 이 과정을 통해 모델의 표현력이 비약적으로 높아진다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4.2 가중치 공유 (Weight Sharing) 및 임베딩&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- 트랜스포머는 파라미터(가중치)의 낭비를 막기 위해 '가중치 공유'라는 기법을 사용한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;공유하는 3가지 계층:&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;1. 인코더의 입력 토큰을 벡터로 바꾸는 인코더 임베딩&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;2. 디코더의 입력 토큰을 벡터로 바꾸는 디코더 임베딩&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;3. 디코더 최종 출력부에서 다음 단어를 예측하기 위해 사용하는 소프트맥스 이전 선형(Linear) 층&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이 세 곳에서 완전히 동일한 가중치 행렬을 재사용함으로써, 모델이 학습해야 할 파라미터 수를 획기적으로 줄이고 학습 과정을 훨씬 안정적으로 만든다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4.3 위치 인코딩 (Positional Encoding)&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; 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;513&quot; data-origin-height=&quot;136&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YTiKN/dJMcahk0BI9/7GpKrKMksRsRkmlDCNNQj1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YTiKN/dJMcahk0BI9/7GpKrKMksRsRkmlDCNNQj1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YTiKN/dJMcahk0BI9/7GpKrKMksRsRkmlDCNNQj1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYTiKN%2FdJMcahk0BI9%2F7GpKrKMksRsRkmlDCNNQj1%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;336&quot; height=&quot;89&quot; data-origin-width=&quot;513&quot; data-origin-height=&quot;136&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;-어텐션 자체는 단어의 순서를 모른다. 따라서 입력 임베딩에 단어의 위치에 따른 주기 함수 값을 더해준다. 이 방식을 사용하면 모델이 보지 못했던 더 긴 문장이 들어와도 대응하기 쉽다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;단어들을 그냥 모델이 들이 부으면'A가 B를 때렸다' 와 'B가 A를 때렸다'를 구분하지 못한다. 그래서 각 단어에 순서 번호표를 붙여주는 작업이 바로 Positional Encoding이다. 학습 파라미터를 늘리지 않고도 사인/코사인 함수의 주기를 이용하여 해결했다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;5. 학습(Training) 환경 및 기법 (구현 디테일)&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- Batching (배치 처리)는 훈련의 효율성을 극대화하기 위해 배치를 '문장의 개수'가 아닌 '토큰의 개수(약 25,000개)'를 기준으로 유동적으로 묶는 방식이다. 길이가 비슷한 문장들끼리 묶어 불필요한 빈 공간(Padding)을 줄이고 연산 효율을 높였다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- Adam Optimizer (최적화)는 모델이 정답을 찾아가는 방향과 보폭을 결정하는 최적화 알고리즘으로, 논문에서는 구체적인 하이퍼파라미터(&lt;span data-index-in-node=&quot;81&quot; data-math=&quot;\beta_1 = 0.9, \beta_2 = 0.98, \epsilon = 10^{-9}&quot;&gt;beta_1 = 0.9, beta_2 = 0.98, epsilon = 10^{-9}&lt;/span&gt;)를 명시하여 빠르고 안정적인 학습을 도모했다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- Warm-up 스케줄링 (학습률 조절)은 학습 초기(처음 4,000 스텝)에는 학습률을 선형적으로 빠르게 끌어올리고, 그 이후부터는 스텝 수의 역제곱근에 비례하여 서서히 낮추는 독자적인 공식이다. 학습 초기의 불안정성을 잡고 후반부에는 미세한 조정(최적화)이 가능하도록 돕는다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- Label Smoothing (레이블 스무딩)은 모델이 특정 정답에 대해 지나치게 확신(Over-confidence)을 갖는 것을 막아주는 정규화 기법이다. 이를 적용하면 모델의 헷갈림 정도(Perplexity) 지표는 다소 나빠지지만, 정답 외의 주변 단어들도 유연하게 고려하게 되어 결과적으로 최종 번역 품질인 BLEU 점수를 향상시키는 핵심 디테일이다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;트랜스포머는 초반에 학습률을 확 올렸다가 천천히 떨어뜨리는 Warmup 스케줄링을 썼고, 레이블 스무딩을 통해 모델의 과적합을 낮추는 디테일을 가진다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;6. 성과 및 실험 결과 (Results &amp;amp; Ablation)&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;6.1 번역 성능 및 추론(Inference) 디테일&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- SOTA 달성: WMT 14 영어-독일어에서 28.4 BLEU, 영어-프랑스어에서 41.8 BLEU로 기존 앙상블 모델까지 모두 꺾었습니다. 학습 시간은 P100 GPU 8대로 단 3.5일밖에 걸리지 않았다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- 추론(Inference) 세팅: 예측 시 빔 서치(Beam Search)를 사용했으며, 빔 크기는 4, 길이 페널티(Length Penalty)&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span data-math=&quot;\alpha = 0.6&quot; data-index-in-node=&quot;81&quot;&gt;alpha = 0.6&lt;/span&gt;을 주었다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;6.2 모델 변형 실험 (Ablation Study )&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;1234&quot; data-origin-height=&quot;969&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dHfuQS/dJMcadCHjCi/tt4124BcY5jSBwh4nauesk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dHfuQS/dJMcadCHjCi/tt4124BcY5jSBwh4nauesk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dHfuQS/dJMcadCHjCi/tt4124BcY5jSBwh4nauesk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdHfuQS%2FdJMcadCHjCi%2Ftt4124BcY5jSBwh4nauesk%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;487&quot; height=&quot;382&quot; data-origin-width=&quot;1234&quot; data-origin-height=&quot;969&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;연구진은 트랜스포머의 각 부품이 얼마나 중요한지 빼보거나 바꿔보는 실험을 진행했다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- 헤드 수 변화: 헤드가 1개일 때 성능이 크게 하락(-0.9 BLEU)했고, 반대로 32개로 너무 많아져도 성능이 떨어졌다. (8개나 16개가 최적)&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- Key 차원 축소: Key 차원(&lt;span data-math=&quot;d_k&quot; data-index-in-node=&quot;18&quot;&gt;d_k&lt;/span&gt;)을 줄이면 모델 품질이 저하되었다. 어텐션 점수를 매기는 호환성(Compatibility) 과정이 꽤 고차원적인 계산임을 방증한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- 위치 인코딩 변경: 제안한 사인파 인코딩 대신 학습형 임베딩을 썼을 때 결과가 거의 똑같았. (단, 외삽을 위해 사인파를 최종 채택)&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;결론적으로 이 논문이 주는 강력한 메시지는 제목 그대로&quot;Attention Is All You Need&quot;즉 복잡한 구조 필요 없이 어텐션만 있으면 된다는 것이다. 구조를 극단적으로 단순화하여 병렬 처리를 가능하게 했고, 이로 인하여 모델의 크기를 엄청나게 키울 수 있는 기반을 마련하였다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;예시1)하나의 단어가 입력되는 경우&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;하나의 단어:&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;어텐션을 위해 쿼리(Query), 키(Key), 값(Value)이 필요하다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;각 단어의 임베딩(Embedding)을 이용해 생성할 수 있다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;임베딩 차원(d_model)-&amp;gt;Query, Key, Value 차원(d_model/h)&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이 때 d_model=4, h(head)=2라고 가정하면 4X2메트릭스가 만들어진다. (4차원의 데이터르 2차원의 데이터로 매핑해야 되기 때문에)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1179&quot; data-origin-height=&quot;743&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdSQ3K/dJMcahZuO6V/Nb3lIRaK3kv3A0ZLeZdCt0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdSQ3K/dJMcahZuO6V/Nb3lIRaK3kv3A0ZLeZdCt0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdSQ3K/dJMcahZuO6V/Nb3lIRaK3kv3A0ZLeZdCt0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdSQ3K%2FdJMcahZuO6V%2FNb3lIRaK3kv3A0ZLeZdCt0%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;556&quot; height=&quot;350&quot; data-origin-width=&quot;1179&quot; data-origin-height=&quot;743&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;love라는 단어가 4차원으로 구성되어 있으면 Query, Key, Value 모두 2차원 데이터로 표현 될 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;예1-2)&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이런식으로 Query, Key, Value를 다 구했으면 Attention공식을 사용해서 실제 attention value를 구할 수 있다.&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;114&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dFuoDd/dJMcabEYKUp/K8kZaoNZcXcV9tMFamt5fk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dFuoDd/dJMcabEYKUp/K8kZaoNZcXcV9tMFamt5fk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dFuoDd/dJMcabEYKUp/K8kZaoNZcXcV9tMFamt5fk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdFuoDd%2FdJMcabEYKUp%2FK8kZaoNZcXcV9tMFamt5fk%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;302&quot; height=&quot;63&quot; data-origin-width=&quot;546&quot; data-origin-height=&quot;114&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;1179&quot; data-origin-height=&quot;413&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bYi5PU/dJMcagGoW2o/VkawMcvOnP7cfO0DCK8E5k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bYi5PU/dJMcagGoW2o/VkawMcvOnP7cfO0DCK8E5k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bYi5PU/dJMcagGoW2o/VkawMcvOnP7cfO0DCK8E5k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYi5PU%2FdJMcagGoW2o%2FVkawMcvOnP7cfO0DCK8E5k%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;643&quot; height=&quot;225&quot; data-origin-width=&quot;1179&quot; data-origin-height=&quot;413&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;I love you라는 문장이 들어왔다고 하면 I에 해당Query를 I에 해당하는 Key, love에 해당하는 Key, you에 해당하는 Key값과 곱해져서 Attention energy값을 구할 수 있다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이 후에 softmax를 취하여 실제로 각각의 키에 대하여 어떤 가중치를 가지는지를 구할 수 있다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;{그림에서는 I라는 단어는 I라는 단어와 72%, love와는 15%, you와는 13%의 가중치를 가진다.}&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;각각의 가중치 값에 value값을 곱하여 전부 더하면 결과적인 attention value값을 만들어 낼 수 있다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;예2)&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;전체 문장이 한번에 입력되는 경우&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;I love you라는 문장이 입력되고 임베딩 차원이 4차원이라고 했을 때 3*4 매트릭스로 구성된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1179&quot; data-origin-height=&quot;432&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ttz5g/dJMcahZuPKu/tqgAUJkaXInNWAdhKPchcK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ttz5g/dJMcahZuPKu/tqgAUJkaXInNWAdhKPchcK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ttz5g/dJMcahZuPKu/tqgAUJkaXInNWAdhKPchcK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fttz5g%2FdJMcahZuPKu%2FtqgAUJkaXInNWAdhKPchcK%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;617&quot; height=&quot;226&quot; data-origin-width=&quot;1179&quot; data-origin-height=&quot;432&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;각각의 Query값, Key값, Value값이 만들어진다.&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;1179&quot; data-origin-height=&quot;463&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FEbRw/dJMcadJvR7E/45P7eWqNTFuuiDR6Cefvn0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FEbRw/dJMcadJvR7E/45P7eWqNTFuuiDR6Cefvn0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FEbRw/dJMcadJvR7E/45P7eWqNTFuuiDR6Cefvn0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFEbRw%2FdJMcadJvR7E%2F45P7eWqNTFuuiDR6Cefvn0%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;560&quot; height=&quot;220&quot; data-origin-width=&quot;1179&quot; data-origin-height=&quot;463&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;각 Query값을 Key값과 곱해져서 attention value를 구할 수 있다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이 때 attention energies값은 각각의 단어가 각각의 Key값에 대하여 얼마나 높은 연관성을 표현하는 수치를 구할 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이 행렬의 softmax를 취하여 각각의 행마다 각 Key에 대한 값들을 확률값으로 구할 수 있다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;그 후 구한 가중치 값과 value의 값을 곱하여 실제 attention value매트릭스를 구할 수 있다.&lt;/p&gt;</description>
      <author>m0419902</author>
      <guid isPermaLink="true">https://lambdacourse.tistory.com/70</guid>
      <comments>https://lambdacourse.tistory.com/70#entry70comment</comments>
      <pubDate>Fri, 24 Jul 2026 22:37:58 +0900</pubDate>
    </item>
    <item>
      <title>[황인성] Semi-Supervised Classification with Graph Convolutional Networks</title>
      <link>https://lambdacourse.tistory.com/69</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;제목: Semi-Supervised&amp;nbsp;Classification&amp;nbsp;with&amp;nbsp;Graph&amp;nbsp;Convolutional&amp;nbsp;Networks&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저자: Thomas N. Kipf(현재 구글 딥마인드 선임 수석 연구 과학자), Max Welling&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;소속: University of Amsterdam&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;학회지: ICLR 2017&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;0. Abstract&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;본 논문은 그래프 구조의 데이터에서 반지도 학습을 수행할 수 있는 확장성 높은 모델을 제안한다. 해당 모델은 Spectral Graph Convolution을 국소적인 1차 근사를 통해 도출한다. 논문 인용 네트워크와 Knowledge Graph 데이터셋에서 여러 실험을 수행하여 기존의 다른 방법들보다 뛰어난 성능을 보였다.&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.Introduction&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;semi-supervised learning: 반지도 학습-데이터는 많지만 정답 라벨은 일부 데이터에만 있는 학습 방식.&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;1138&quot; data-origin-height=&quot;106&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bisVKn/dJMcac4Vb5n/1wgAdRSfUoqm6108676Ki1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bisVKn/dJMcac4Vb5n/1wgAdRSfUoqm6108676Ki1/img.png&quot; data-alt=&quot;GCN 이전 모델의 loss function. 분류에 대한 예측값뿐만 아니라 그래프의 구조도 loss에 포함시킴.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bisVKn/dJMcac4Vb5n/1wgAdRSfUoqm6108676Ki1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbisVKn%2FdJMcac4Vb5n%2F1wgAdRSfUoqm6108676Ki1%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;1138&quot; height=&quot;106&quot; data-origin-width=&quot;1138&quot; data-origin-height=&quot;106&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;GCN 이전 모델의 loss function. 분류에 대한 예측값뿐만 아니라 그래프의 구조도 loss에 포함시킴.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 수식은 GCN 이전의 모델( Zhu et al., 2003; Zhou et al., 2004; Belkin et al., 2006; Weston et al., 2012 )의 loss function이다. 예측의 정확도뿐만 아니라 그래프에서 서로 연결된 edge 사이에 긴밀한 연관성이 있을 것이라는 가정 하에 그 유사도도 loss에 포함시킨다. 하지만 본 논문에서는 엣지끼리 반드시 유사성을 포함하지는 않으며 모델 성능을 제한할 수 있다고 반박한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이에 본 논문에서는 그래프 구조를 loss 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;2. Fast Approximate Convolutions on Graphs&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;498&quot; data-origin-height=&quot;90&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lcE2F/dJMcacRlJXV/MxvGkXLPueqH6PGhlN2c01/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lcE2F/dJMcacRlJXV/MxvGkXLPueqH6PGhlN2c01/img.png&quot; data-alt=&quot;GCN의 최종 수식&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lcE2F/dJMcacRlJXV/MxvGkXLPueqH6PGhlN2c01/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlcE2F%2FdJMcacRlJXV%2FMxvGkXLPueqH6PGhlN2c01%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;498&quot; height=&quot;90&quot; data-origin-width=&quot;498&quot; data-origin-height=&quot;90&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;GCN의 최종 수식&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GCN의 최종 수식&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;286&quot; data-origin-height=&quot;55&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GhdWV/dJMcaiqw0P9/AejSbpGsEIgsNE7InkrPE0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GhdWV/dJMcaiqw0P9/AejSbpGsEIgsNE7InkrPE0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GhdWV/dJMcaiqw0P9/AejSbpGsEIgsNE7InkrPE0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGhdWV%2FdJMcaiqw0P9%2FAejSbpGsEIgsNE7InkrPE0%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;286&quot; height=&quot;55&quot; data-origin-width=&quot;286&quot; data-origin-height=&quot;55&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;g: 필터&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;x: 인풋 feature&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;U: 그래프 라플라시안의 고유벡터&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;376&quot; data-origin-height=&quot;111&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ebjG6z/dJMcafAB8D3/zsRb7QvUqaDf7uJwocdTcK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ebjG6z/dJMcafAB8D3/zsRb7QvUqaDf7uJwocdTcK/img.png&quot; data-alt=&quot;Hammond et al.(2011)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ebjG6z/dJMcafAB8D3/zsRb7QvUqaDf7uJwocdTcK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FebjG6z%2FdJMcafAB8D3%2FzsRb7QvUqaDf7uJwocdTcK%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;376&quot; height=&quot;111&quot; data-origin-width=&quot;376&quot; data-origin-height=&quot;111&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Hammond et al.(2011)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;222&quot; data-origin-height=&quot;60&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Fd04l/dJMcabrrhP9/aiLurUkZUWDl3nKJDXgBiK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Fd04l/dJMcabrrhP9/aiLurUkZUWDl3nKJDXgBiK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Fd04l/dJMcabrrhP9/aiLurUkZUWDl3nKJDXgBiK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFd04l%2FdJMcabrrhP9%2FaiLurUkZUWDl3nKJDXgBiK%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;222&quot; height=&quot;60&quot; data-origin-width=&quot;222&quot; data-origin-height=&quot;60&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Chebyshev polynomials K차 근사 다항식&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;360&quot; data-origin-height=&quot;111&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lhGgf/dJMcacjwu6b/XD0VuGwxdb6yIfX85uJojk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lhGgf/dJMcacjwu6b/XD0VuGwxdb6yIfX85uJojk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lhGgf/dJMcacjwu6b/XD0VuGwxdb6yIfX85uJojk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlhGgf%2FdJMcacjwu6b%2FXD0VuGwxdb6yIfX85uJojk%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;360&quot; height=&quot;111&quot; data-origin-width=&quot;360&quot; data-origin-height=&quot;111&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;214&quot; data-origin-height=&quot;55&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhQ0xS/dJMcahrHMdi/yYqCLKPr2l109qAfd0Bx00/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhQ0xS/dJMcahrHMdi/yYqCLKPr2l109qAfd0Bx00/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhQ0xS/dJMcahrHMdi/yYqCLKPr2l109qAfd0Bx00/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhQ0xS%2FdJMcahrHMdi%2FyYqCLKPr2l109qAfd0Bx00%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;214&quot; height=&quot;55&quot; data-origin-width=&quot;214&quot; data-origin-height=&quot;55&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;331&quot; data-origin-height=&quot;39&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WxA5d/dJMcaae1Bwm/09KFen5UkznNwitkHCyaz0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WxA5d/dJMcaae1Bwm/09KFen5UkznNwitkHCyaz0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WxA5d/dJMcaae1Bwm/09KFen5UkznNwitkHCyaz0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWxA5d%2FdJMcaae1Bwm%2F09KFen5UkznNwitkHCyaz0%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;331&quot; height=&quot;39&quot; data-origin-width=&quot;331&quot; data-origin-height=&quot;39&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;727&quot; data-origin-height=&quot;73&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/czNda3/dJMcadbCvkG/QN3n8Ue24m3E90BKXZGIi0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/czNda3/dJMcadbCvkG/QN3n8Ue24m3E90BKXZGIi0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/czNda3/dJMcadbCvkG/QN3n8Ue24m3E90BKXZGIi0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FczNda3%2FdJMcadbCvkG%2FQN3n8Ue24m3E90BKXZGIi0%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;727&quot; height=&quot;73&quot; data-origin-width=&quot;727&quot; data-origin-height=&quot;73&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;462&quot; data-origin-height=&quot;85&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dyvcCW/dJMcagGlAgi/z30kIKODa1lyI2r05mLQP1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dyvcCW/dJMcagGlAgi/z30kIKODa1lyI2r05mLQP1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dyvcCW/dJMcagGlAgi/z30kIKODa1lyI2r05mLQP1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdyvcCW%2FdJMcagGlAgi%2Fz30kIKODa1lyI2r05mLQP1%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;462&quot; height=&quot;85&quot; data-origin-width=&quot;462&quot; data-origin-height=&quot;85&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;295&quot; data-origin-height=&quot;45&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/byUkEA/dJMcaf8mKDW/dDmoW5saPYjHlN92RYtEMK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/byUkEA/dJMcaf8mKDW/dDmoW5saPYjHlN92RYtEMK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/byUkEA/dJMcaf8mKDW/dDmoW5saPYjHlN92RYtEMK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbyUkEA%2FdJMcaf8mKDW%2FdDmoW5saPYjHlN92RYtEMK%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;295&quot; height=&quot;45&quot; data-origin-width=&quot;295&quot; data-origin-height=&quot;45&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. Semi-Supervised Node Classification&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;703&quot; data-origin-height=&quot;79&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Bzhdf/dJMcajbQDzH/kzB9XMjfXlI6sa3lHCWKXk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Bzhdf/dJMcajbQDzH/kzB9XMjfXlI6sa3lHCWKXk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Bzhdf/dJMcajbQDzH/kzB9XMjfXlI6sa3lHCWKXk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBzhdf%2FdJMcajbQDzH%2FkzB9XMjfXlI6sa3lHCWKXk%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;79&quot; data-origin-width=&quot;703&quot; data-origin-height=&quot;79&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;1230&quot; data-origin-height=&quot;676&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bxZ9LV/dJMcagsJy6J/r89bFXDuA2bgF1WjHflk1K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bxZ9LV/dJMcagsJy6J/r89bFXDuA2bgF1WjHflk1K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bxZ9LV/dJMcagsJy6J/r89bFXDuA2bgF1WjHflk1K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbxZ9LV%2FdJMcagsJy6J%2Fr89bFXDuA2bgF1WjHflk1K%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;1230&quot; height=&quot;676&quot; data-origin-width=&quot;1230&quot; data-origin-height=&quot;676&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;393&quot; data-origin-height=&quot;115&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nEvwI/dJMcaftOG9a/FjGAL7iKSSeKfBtNucrBYk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nEvwI/dJMcaftOG9a/FjGAL7iKSSeKfBtNucrBYk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nEvwI/dJMcaftOG9a/FjGAL7iKSSeKfBtNucrBYk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnEvwI%2FdJMcaftOG9a%2FFjGAL7iKSSeKfBtNucrBYk%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;393&quot; height=&quot;115&quot; data-origin-width=&quot;393&quot; data-origin-height=&quot;115&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. Experiments &amp;amp; Results&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1147&quot; data-origin-height=&quot;295&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bUiHFu/dJMcaalG17j/xBECnVk3GiixviN1xXU2ek/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bUiHFu/dJMcaalG17j/xBECnVk3GiixviN1xXU2ek/img.png&quot; data-alt=&quot;실험에 사용된 데이터&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bUiHFu/dJMcaalG17j/xBECnVk3GiixviN1xXU2ek/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUiHFu%2FdJMcaalG17j%2FxBECnVk3GiixviN1xXU2ek%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;1147&quot; height=&quot;295&quot; data-origin-width=&quot;1147&quot; data-origin-height=&quot;295&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;실험에 사용된 데이터&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;951&quot; data-origin-height=&quot;399&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cax4GI/dJMcahrHLOa/UFtjhW1nRmmO5vAtLDnfu0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cax4GI/dJMcahrHLOa/UFtjhW1nRmmO5vAtLDnfu0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cax4GI/dJMcahrHLOa/UFtjhW1nRmmO5vAtLDnfu0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcax4GI%2FdJMcahrHLOa%2FUFtjhW1nRmmO5vAtLDnfu0%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;399&quot; data-origin-width=&quot;951&quot; data-origin-height=&quot;399&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;1216&quot; data-origin-height=&quot;438&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OhoU3/dJMcaiRDvbp/gBs4k8TL9o0Qc4fdEbIohk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OhoU3/dJMcaiRDvbp/gBs4k8TL9o0Qc4fdEbIohk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OhoU3/dJMcaiRDvbp/gBs4k8TL9o0Qc4fdEbIohk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOhoU3%2FdJMcaiRDvbp%2FgBs4k8TL9o0Qc4fdEbIohk%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;1216&quot; height=&quot;438&quot; data-origin-width=&quot;1216&quot; data-origin-height=&quot;438&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;630&quot; data-origin-height=&quot;411&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ci96t1/dJMcahSD0T5/g53xguDX6ISElGcnSQIMZK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ci96t1/dJMcahSD0T5/g53xguDX6ISElGcnSQIMZK/img.png&quot; data-alt=&quot;에폭 당 학습 시간. 엣지 수에 대해 선형적으로 증가함.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ci96t1/dJMcahSD0T5/g53xguDX6ISElGcnSQIMZK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fci96t1%2FdJMcahSD0T5%2Fg53xguDX6ISElGcnSQIMZK%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;630&quot; height=&quot;411&quot; data-origin-width=&quot;630&quot; data-origin-height=&quot;411&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;/p&gt;</description>
      <author>myblog33150</author>
      <guid isPermaLink="true">https://lambdacourse.tistory.com/69</guid>
      <comments>https://lambdacourse.tistory.com/69#entry69comment</comments>
      <pubDate>Sat, 18 Jul 2026 12:04:14 +0900</pubDate>
    </item>
  </channel>
</rss>