<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>덕라쿤</title>
    <link>https://duckracoon5z.tistory.com/</link>
    <description>duckracoon5z 님의 블로그 입니다.</description>
    <language>ko</language>
    <pubDate>Sat, 20 Jun 2026 01:05:14 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>duckracoon5z</managingEditor>
    <image>
      <title>덕라쿤</title>
      <url>https://tistory1.daumcdn.net/tistory/8035069/attach/94203ffbd3034fdcb45af9d6c886de6e</url>
      <link>https://duckracoon5z.tistory.com</link>
    </image>
    <item>
      <title>GAN 시리즈 - VQGAN</title>
      <link>https://duckracoon5z.tistory.com/26</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. VAE(Variational Autoencoder)&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;VAE는 확률적 생성 모델의 대표 주자이다. 단순한 Autoencoder는 입력을 압축했다가 복원하는 데 집중하지만, VAE는 잠재 공간(latent space)을 확률 분포로 학습한다는 점이 다르다. &lt;span style=&quot;text-align: start;&quot;&gt;AutoEncoder는 Image를 Encoding 하여 Embedding Vector 즉 latent vector를 만든 후 이를 Decoder의 input으로 넣어 이미지를 reconstruction 한다.&amp;nbsp;&lt;/span&gt; &lt;span style=&quot;text-align: start;&quot;&gt;VAE는 이러한 AutoEncoder 방식을 사용하여 input 데이터의 분포 자체를 학습하여 데이터를 생성한다.&amp;nbsp;&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;1274&quot; data-origin-height=&quot;507&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/H1tyX/btsP6Ky1Nx6/53syfnZYeQhwDqWmN3FpHk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/H1tyX/btsP6Ky1Nx6/53syfnZYeQhwDqWmN3FpHk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/H1tyX/btsP6Ky1Nx6/53syfnZYeQhwDqWmN3FpHk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FH1tyX%2FbtsP6Ky1Nx6%2F53syfnZYeQhwDqWmN3FpHk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;599&quot; height=&quot;238&quot; data-origin-width=&quot;1274&quot; data-origin-height=&quot;507&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;구조&amp;nbsp;&lt;/b&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;469&quot; data-start=&quot;430&quot;&gt;Encoder: 입력 이미지를 평균과 분산(&amp;mu;, &amp;sigma;&amp;sup2;)으로 표현&lt;/li&gt;
&lt;li data-end=&quot;514&quot; data-start=&quot;472&quot;&gt;Decoder: 샘플링된 latent vector로부터 이미지를 복원&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;b&gt;장점&lt;/b&gt; : 압정적인 학습, 잠재 공간의 해석 가능성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;단점&lt;/b&gt; : 생성된 이미지가 상대적으로 블러리하고 디테일 부족&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. VQ-VAE(Vector Quantized VAE)&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;VAE의 한계를 개선하기 위해 나온 것이 VQ-VAE이다. VQ는 벡터 양자화라는 뜻으로 모델이 강력한 autogressice decoder와 짝을 이룰 때 latent들이 무시되는 'Posterior Collapse' 문제를 피할 수 있다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #515151; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;VAE에서 내부적으로 취급하는 분포는 대개 Gaussian 분포를 따른다고 가정한다. 확장 버전은 autoregressive prior, posterior model, normalising flow, inverse autoregressive posterior 등을 포함하기도 한다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #515151; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #515151; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;VQ-VAE는 여기에 이산 표현을 다루도록 한다. VQ른 사용하면서, posterior과 prior distribution은 categorical하며, 이 분포로부터 생성된 sample은 embedding table을 indexing한다. 이 embeddings는 decoder의 입력으로 들어간다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;936&quot; data-origin-height=&quot;447&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wV3uJ/btsP5r1eYPq/QQD1czMSSKEfxYPsr6sLV1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wV3uJ/btsP5r1eYPq/QQD1czMSSKEfxYPsr6sLV1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wV3uJ/btsP5r1eYPq/QQD1czMSSKEfxYPsr6sLV1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwV3uJ%2FbtsP5r1eYPq%2FQQD1czMSSKEfxYPsr6sLV1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;701&quot; height=&quot;335&quot; data-origin-width=&quot;936&quot; data-origin-height=&quot;447&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;VQ-VAE의 구조를 보면, 인코더의 출력을 바로 사용하는 것이 아니라, embedding space(code book)라는 곳에 인코더의 출력 벡터들과 차원이 같은 여러 벡터를 미리 생성해놓고, embedding space에서 인코더의 출력 벡터와 가장 비슷한 벡터를 선택해 교체한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #515151; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;위 그림에서 embedding&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;e&amp;lt;/mi&amp;gt;&amp;lt;mo&amp;gt;&amp;amp;#x2208;&amp;lt;/mo&amp;gt;&amp;lt;msup&amp;gt;&amp;lt;mi&amp;gt;R&amp;lt;/mi&amp;gt;&amp;lt;mrow class=&amp;quot;MJX-TeXAtom-ORD&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;K&amp;lt;/mi&amp;gt;&amp;lt;mo&amp;gt;&amp;amp;#x00D7;&amp;lt;/mo&amp;gt;&amp;lt;mi&amp;gt;D&amp;lt;/mi&amp;gt;&amp;lt;/mrow&amp;gt;&amp;lt;/msup&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;e&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;isin;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;R&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;K&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;times;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;D&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;가 이산표현을 나타낸다. 이를 codebook이라 하며,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;K&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;K&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;는 이산 표현 공간의 크기(&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;K&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;K&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;-way categorical과 같음),&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;D&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;D&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;는 각 embedding vector&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;msub&amp;gt;&amp;lt;mi&amp;gt;e&amp;lt;/mi&amp;gt;&amp;lt;mi&amp;gt;i&amp;lt;/mi&amp;gt;&amp;lt;/msub&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;e&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;i&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;background-color: #ffffff; color: #515151; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #515151; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;즉&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;msub&amp;gt;&amp;lt;mi&amp;gt;e&amp;lt;/mi&amp;gt;&amp;lt;mi&amp;gt;i&amp;lt;/mi&amp;gt;&amp;lt;/msub&amp;gt;&amp;lt;mo&amp;gt;&amp;amp;#x2208;&amp;lt;/mo&amp;gt;&amp;lt;msup&amp;gt;&amp;lt;mi&amp;gt;R&amp;lt;/mi&amp;gt;&amp;lt;mi&amp;gt;D&amp;lt;/mi&amp;gt;&amp;lt;/msup&amp;gt;&amp;lt;mo&amp;gt;,&amp;lt;/mo&amp;gt;&amp;lt;mi&amp;gt;i&amp;lt;/mi&amp;gt;&amp;lt;mo&amp;gt;&amp;amp;#x2208;&amp;lt;/mo&amp;gt;&amp;lt;mn&amp;gt;1&amp;lt;/mn&amp;gt;&amp;lt;mo&amp;gt;,&amp;lt;/mo&amp;gt;&amp;lt;mn&amp;gt;2&amp;lt;/mn&amp;gt;&amp;lt;mo&amp;gt;,&amp;lt;/mo&amp;gt;&amp;lt;mo&amp;gt;&amp;amp;#x2026;&amp;lt;/mo&amp;gt;&amp;lt;mo&amp;gt;,&amp;lt;/mo&amp;gt;&amp;lt;mi&amp;gt;K&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;e&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;i&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;isin;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;R&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;D&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;i&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;isin;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;1&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;2&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;hellip;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;K&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;이며, embedding vector가&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;K&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;K&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;개가 있는 것이다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #515151; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #515151; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;모델의 encoder는 입력&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;x&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;x&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 style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;msub&amp;gt;&amp;lt;mi&amp;gt;z&amp;lt;/mi&amp;gt;&amp;lt;mi&amp;gt;e&amp;lt;/mi&amp;gt;&amp;lt;/msub&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;(&amp;lt;/mo&amp;gt;&amp;lt;mi&amp;gt;x&amp;lt;/mi&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;)&amp;lt;/mo&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;z&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;e&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;x&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&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 style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;z&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;z&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;는 embedding space&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;e&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;e&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;에서 가장 가까운 embedding vector를 찾는다(look-up).&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1641&quot; data-origin-height=&quot;129&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XomUG/btsP4TjdxFJ/9uvpHX3yARkxoszQBjLd90/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XomUG/btsP4TjdxFJ/9uvpHX3yARkxoszQBjLd90/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XomUG/btsP4TjdxFJ/9uvpHX3yARkxoszQBjLd90/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXomUG%2FbtsP4TjdxFJ%2F9uvpHX3yARkxoszQBjLd90%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;56&quot; data-origin-width=&quot;1641&quot; data-origin-height=&quot;129&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #515151; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #515151; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;그래서 이 모델을 VAE라 할 수 있으며(논문 주장),&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;log&amp;lt;/mi&amp;gt;&amp;lt;mo&amp;gt;&amp;amp;#x2061;&amp;lt;/mo&amp;gt;&amp;lt;mi&amp;gt;p&amp;lt;/mi&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;(&amp;lt;/mo&amp;gt;&amp;lt;mi&amp;gt;x&amp;lt;/mi&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;)&amp;lt;/mo&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;log&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;p&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;x&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;를 ELBO로 bound할 수 있다. 제안한 분포&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;q&amp;lt;/mi&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;(&amp;lt;/mo&amp;gt;&amp;lt;mi&amp;gt;z&amp;lt;/mi&amp;gt;&amp;lt;mo&amp;gt;=&amp;lt;/mo&amp;gt;&amp;lt;mi&amp;gt;k&amp;lt;/mi&amp;gt;&amp;lt;mo fence=&amp;quot;false&amp;quot; stretchy=&amp;quot;false&amp;quot;&amp;gt;|&amp;lt;/mo&amp;gt;&amp;lt;mi&amp;gt;x&amp;lt;/mi&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;)&amp;lt;/mo&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;q&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;z&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;k&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;|&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;x&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;는 deterministic하고&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;z&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;z&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;에 대해 단순균등 prior를 정의함으로써 KL divergence를 상수(&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;log&amp;lt;/mi&amp;gt;&amp;lt;mo&amp;gt;&amp;amp;#x2061;&amp;lt;/mo&amp;gt;&amp;lt;mi&amp;gt;K&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;log&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;K&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;)로 얻을 수 있다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #515151; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #515151; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;표현&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;msub&amp;gt;&amp;lt;mi&amp;gt;z&amp;lt;/mi&amp;gt;&amp;lt;mi&amp;gt;e&amp;lt;/mi&amp;gt;&amp;lt;/msub&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;(&amp;lt;/mo&amp;gt;&amp;lt;mi&amp;gt;x&amp;lt;/mi&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;)&amp;lt;/mo&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;z&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;e&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;x&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;는 식 1, 2에 주어진 대로 임베딩&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;e&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;e&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;중 가장 가까운 원소를 찾고 discretisation bottlenect으로 전달된다.&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;597&quot; data-origin-height=&quot;82&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cNOna9/btsP6Sp8MDR/O0rM80TEp8c5FuXZj8tkU1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cNOna9/btsP6Sp8MDR/O0rM80TEp8c5FuXZj8tkU1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cNOna9/btsP6Sp8MDR/O0rM80TEp8c5FuXZj8tkU1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcNOna9%2FbtsP6Sp8MDR%2FO0rM80TEp8c5FuXZj8tkU1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;422&quot; height=&quot;58&quot; data-origin-width=&quot;597&quot; data-origin-height=&quot;82&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #515151; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Forward에서는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;msub&amp;gt;&amp;lt;mi&amp;gt;z&amp;lt;/mi&amp;gt;&amp;lt;mi&amp;gt;q&amp;lt;/mi&amp;gt;&amp;lt;/msub&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;(&amp;lt;/mo&amp;gt;&amp;lt;mi&amp;gt;x&amp;lt;/mi&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;)&amp;lt;/mo&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;z&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;q&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;x&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;가 decoder로 전달된다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #515151; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #515151; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Backward에서는 gradient&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;msub&amp;gt;&amp;lt;mi mathvariant=&amp;quot;normal&amp;quot;&amp;gt;&amp;amp;#x2207;&amp;lt;/mi&amp;gt;&amp;lt;mi&amp;gt;z&amp;lt;/mi&amp;gt;&amp;lt;/msub&amp;gt;&amp;lt;mi&amp;gt;L&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;nabla;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;z&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;L&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;이 encoder로 그대로 전달된다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #515151; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #515151; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Encoder의 출력과 Decoder의 입력은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;D&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;D&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;차원의 같은 공간에 존재하여, gradient가 어떻게 변화해야 하는지 정보를 줄 수 있다. 전체 objective는 다음 식으로 표현된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;894&quot; data-origin-height=&quot;104&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bNEFfJ/btsP5eAHPM9/mulTyCjjGqBAtlGasKfRYk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bNEFfJ/btsP5eAHPM9/mulTyCjjGqBAtlGasKfRYk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bNEFfJ/btsP5eAHPM9/mulTyCjjGqBAtlGasKfRYk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbNEFfJ%2FbtsP5eAHPM9%2FmulTyCjjGqBAtlGasKfRYk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;576&quot; height=&quot;67&quot; data-origin-width=&quot;894&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;첫 번째 항은 reconstruction loss으로 위에서 설명한 estimator를 통해 decoder와 encoder를 모두 최적화한다. &lt;span style=&quot;text-align: start;&quot;&gt;실제 이미지와 생성된 이미지 간의 차이를 구하는 loss로 생성된 이미지가 실제 이미지와의 차이가 없도록 만드는 것을 목적으로 한다.&lt;/span&gt;&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;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;span style=&quot;text-align: start;&quot;&gt;다음으로 VQ loss는 codebook만 update 하는 loss로 codebook vector가 encoder의 출력과 비슷하게 만들도록 하는 목적을 가진다. 여기서 sg&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;는 stop gradient 라는 표기로 encoder ze(x)&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;를 update하지 않는다.&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;background-color: #ffffff; color: #515151; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;span style=&quot;text-align: start;&quot;&gt;마지막으로 commitment loss이다.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;commitment loss&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;는&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;Encoder&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;만&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;update&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;하는&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;loss&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;로&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;Encoder&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;의 출력이&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;codebook vector&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;와 가까운 값을 출력하는 것이 목적인&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;loss이다.&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #515151; 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;&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;latent space 덕분에 보다 선명하고 구조적인 이미지 복원 가능&lt;/li&gt;
&lt;li&gt;이후 Transformer나 Autoregressive 모델과 결합하기 쉬움&lt;/li&gt;
&lt;/ul&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;여전히 이미지의 fine detail을 복원하는 데 부족&lt;/li&gt;
&lt;/ul&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;&lt;b&gt;3. VQ-GAN(Vector Quantized GAN)&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1223&quot; data-origin-height=&quot;573&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IPfU4/btsP6fFUp1Q/9FsFwZ6KJ5kzVzCXEDPEK1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IPfU4/btsP6fFUp1Q/9FsFwZ6KJ5kzVzCXEDPEK1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IPfU4/btsP6fFUp1Q/9FsFwZ6KJ5kzVzCXEDPEK1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIPfU4%2FbtsP6fFUp1Q%2F9FsFwZ6KJ5kzVzCXEDPEK1%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;1223&quot; height=&quot;573&quot; data-origin-width=&quot;1223&quot; data-origin-height=&quot;573&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;color: #000000;&quot;&gt;VQGAN은 VQ-VAE의 구조적 장점을 유지하면서, GAN의 Adversarial loss를 도입하여 더 디테일한 이미지를 생성하는데 목적을 두었다. &lt;span style=&quot;text-align: start;&quot;&gt;VQGAN은&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;CNN&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;으로&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;Locality&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;를 잘 반영하는&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;codebook&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;을 학습하고&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;, Transformer&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;의 풍부한 표현력으로&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;Image Synthesis&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;를 이룬다.&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&amp;nbsp;VQGAN은 2-stage 모델로 첫번째 stage 에선 codebook을 학습하여 Transformer에 사용하기 위한 이미지의 구성요소를 학습하는 것이고, 2번째 stage에선 이러한 codebook을 바탕으로 구성된 구성요소들로 transformer를 이용하여 이미지를 구성하는 것이다.&lt;/span&gt; &lt;/span&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;3-1 stage 1&lt;/b&gt;&lt;/h4&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;637&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ym16o/btsP662XLTu/7ICo57lgt915utH9m585nK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ym16o/btsP662XLTu/7ICo57lgt915utH9m585nK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ym16o/btsP662XLTu/7ICo57lgt915utH9m585nK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fym16o%2FbtsP662XLTu%2F7ICo57lgt915utH9m585nK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;691&quot; height=&quot;344&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;637&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;color: #000000; text-align: start;&quot;&gt;첫번째 stage는 codebook 학습하는 단계로 이미지 구성 요소를 학습하는 과정이다. &lt;span style=&quot;text-align: start;&quot;&gt;VQGAN&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;의 첫번째&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;stage&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;는&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;VQ-VAE&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;와 매우 유사하다.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;그러나&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;VAE&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;와 달리&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;adversarial learning&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;을 사용하여 학습을 진행한다. &lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;VQ-VAE&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;처럼&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;Encoder&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;에서 나온&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;vector&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;값과&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;codebook&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;간의 유클리디안&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;distance&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;를 비교한 후&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;distance&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;가 가장 작은&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;vector zq&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;들의 값으로&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;quantized vector&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;를 구성한다&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;. &lt;span style=&quot;text-align: start;&quot;&gt;이렇게 구성한 zq&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;를&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;decoder&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;에 넣어&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;reconstruction image&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;를 생성한다&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;그리고 이를&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;discriminator&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;에 넣어&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;patch&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;단위로&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;real&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;인지&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;fake&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;인지 판단한다&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&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;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;VQ loss&lt;/span&gt;&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-origin-width=&quot;618&quot; data-origin-height=&quot;102&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NUbAe/btsP4uqzLM8/B429ubMqzsmXSuS46SnBj0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NUbAe/btsP4uqzLM8/B429ubMqzsmXSuS46SnBj0/img.png&quot; data-alt=&quot;VQ loss&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NUbAe/btsP4uqzLM8/B429ubMqzsmXSuS46SnBj0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNUbAe%2FbtsP4uqzLM8%2FB429ubMqzsmXSuS46SnBj0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;618&quot; height=&quot;102&quot; data-origin-width=&quot;618&quot; data-origin-height=&quot;102&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;VQ loss&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;299&quot; data-origin-height=&quot;388&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cm0wx5/btsP6eNMTmr/n22MiXk2bQ25RVBtjzMzE1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cm0wx5/btsP6eNMTmr/n22MiXk2bQ25RVBtjzMzE1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cm0wx5/btsP6eNMTmr/n22MiXk2bQ25RVBtjzMzE1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcm0wx5%2FbtsP6eNMTmr%2Fn22MiXk2bQ25RVBtjzMzE1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;205&quot; height=&quot;266&quot; data-origin-width=&quot;299&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;&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; VQ loss에서 달라진 것은 reconstruciont loss이다. 이는 단순 L2 loss 가 아닌 perceptual loss로 VGG 16 기반으로 real image와 fake image를 넣어서 모델 중간중간의 feature map 간의 loss를 구해서 update하는 것이다.&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;&lt;b&gt;GAN loss&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;573&quot; data-origin-height=&quot;62&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/o7hfC/btsP5nY0cZI/c4yOleCtKR7OtvhChajME1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/o7hfC/btsP5nY0cZI/c4yOleCtKR7OtvhChajME1/img.jpg&quot; data-alt=&quot;GAN loss&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/o7hfC/btsP5nY0cZI/c4yOleCtKR7OtvhChajME1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fo7hfC%2FbtsP5nY0cZI%2Fc4yOleCtKR7OtvhChajME1%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;573&quot; height=&quot;62&quot; data-origin-width=&quot;573&quot; data-origin-height=&quot;62&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;GAN loss&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;다음으로 Discriminator를 학습하는 loss는 Vanilla GAN loss와 동일하다.&amp;nbsp;그래서 이 LVQ와 LGAN을 합쳐 최종적인 loss를 설정한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Total loss&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;592&quot; data-origin-height=&quot;240&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Z7W03/btsP48OtjSP/5fFKronPK1P1pX3V0A0li0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Z7W03/btsP48OtjSP/5fFKronPK1P1pX3V0A0li0/img.jpg&quot; data-alt=&quot;최종 loss&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Z7W03/btsP48OtjSP/5fFKronPK1P1pX3V0A0li0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZ7W03%2FbtsP48OtjSP%2F5fFKronPK1P1pX3V0A0li0%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;240&quot; data-origin-width=&quot;592&quot; data-origin-height=&quot;240&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;최종 loss&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;span style=&quot;background-color: #ffffff; text-align: left;&quot;&gt;위에서&amp;nbsp;&lt;/span&gt;lambda의 경우, adaptive weight&lt;span style=&quot;background-color: #ffffff; text-align: left;&quot;&gt;을 의미하며, 이를 바탕으로&amp;nbsp;&lt;/span&gt;VQLoss와 GANLoss 사이에서 어느 하나에 치우치지 않도록 만들어준다. lambda는 Decoder의 마지막 layer에서의 GANLoss, VQLoss의 변화율을 바탕으로 연산된다. 즉, Gan Loss의 변화율이 커질경우 lambda를 작게 유지하여 최종 loss 계산에서 Gan Loss에 패널티를 주는 방식으로 작동한다. 이로서, VQLoss와 GANLoss의 균형을 유지하도록 한다.&lt;/span&gt;&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;&lt;b&gt;3-2 stage 2&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Transformer는 앞서 언급했듯이 풍부한 표현력을 갖고 있다. 따라서 본 논문에서는 이러한 특성을 이용하여 Transformer를 Image Synthesis 하는데 사용한다. Transformer는 codebook의 index를 전에 나왔던 값을 기반으로 auto-regressive 하게 예측한다.&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;1015&quot; data-origin-height=&quot;807&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cejhBY/btsP6ZQj66K/4bXQeu1h62vJzCY4tHYbs0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cejhBY/btsP6ZQj66K/4bXQeu1h62vJzCY4tHYbs0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cejhBY/btsP6ZQj66K/4bXQeu1h62vJzCY4tHYbs0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcejhBY%2FbtsP6ZQj66K%2F4bXQeu1h62vJzCY4tHYbs0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;515&quot; data-origin-width=&quot;1015&quot; data-origin-height=&quot;807&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;color: #000000;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;위 그림처럼 i 번째 보다 작은 값들을 이용하여 i 번째의 index를 예측하는 것이다. 따라서 이렇게 예측한 i 번째 index 값을 codebook 과 mapping 하여 생성하는 이미지 다음 patch vector를 구성하는 방식이다. 여기서 Transformer는 첫번째 stage 에서 학습한 zq&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;를 label 값으로 삼아 NLL로 학습을 한다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이러한 Transformer는 unconditional한 상태 뿐만 아니라 conditional한 상태에서도 동일하게 진행이 된다.&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;1280&quot; data-origin-height=&quot;424&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cgeUDY/btsP4pDaRbc/texOFdG13Z0svtSwClkSNk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cgeUDY/btsP4pDaRbc/texOFdG13Z0svtSwClkSNk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cgeUDY/btsP4pDaRbc/texOFdG13Z0svtSwClkSNk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcgeUDY%2FbtsP4pDaRbc%2FtexOFdG13Z0svtSwClkSNk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1280&quot; height=&quot;424&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;424&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt; 여기서 condition은 depth map이나 semantic segmentation map, keypoint , image class 등이 될 수 있다. &lt;span style=&quot;text-align: start;&quot;&gt;이러한 condition은 input 과 마찬가지로 1-stage에서 학습을 하여 각각의 codebook Z와 Zc&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;를 생성한다. 그 후 이를 바탕으로&amp;nbsp; codebook Zc&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;를 조건으로 주어 다음의 patch 를 예측하게 된다.&lt;/span&gt; &amp;nbsp; &lt;/span&gt;&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;&lt;b&gt;3-3 Sliding Attention Window&lt;/b&gt;&lt;/h4&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;234&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Y3HnE/btsP4bSkcGU/0YKpuS4Du6Pso5PRzXvKvK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Y3HnE/btsP4bSkcGU/0YKpuS4Du6Pso5PRzXvKvK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Y3HnE/btsP4bSkcGU/0YKpuS4Du6Pso5PRzXvKvK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FY3HnE%2FbtsP4bSkcGU%2F0YKpuS4Du6Pso5PRzXvKvK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1280&quot; height=&quot;234&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;234&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: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;위 그림처럼 검은색 크기의 임의의 window size를 설정한 후 window size 안에 있는 인접한 patch 들과만 attention을 진행해주는 것이다. 이로 인해 모든 관계를 학습 하는 것이 아닌 주변에 있는 patch 들만을 이용하여 attention을 진행하여 computation을 줄일&amp;nbsp; 수 있다. 하지만 이러한 방법은 landscape 이미지에선 잘 동작이 되지만 공간적인 정보가 많이 변하는 이미지에 대해선 잘 동작이 안되는 한계점이 있다. 이러한 방법을 바탕으로 High-Resolution Image를 잘 만들어 낼 수 있다고 한다.&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;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1840&quot; data-start=&quot;1685&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1728&quot; data-start=&quot;1685&quot;&gt;&lt;b&gt;VAE&lt;/b&gt; &amp;rarr; 잠재 공간을 확률 분포로 학습 (안정적이지만 블러리)&lt;/li&gt;
&lt;li data-end=&quot;1787&quot; data-start=&quot;1729&quot;&gt;&lt;b&gt;VQ-VAE&lt;/b&gt; &amp;rarr; 잠재 공간을 &lt;b&gt;이산적 코드북&lt;/b&gt;으로 변환 (더 선명, 구조적 표현 가능)&lt;/li&gt;
&lt;li data-end=&quot;1840&quot; data-start=&quot;1788&quot;&gt;&lt;b&gt;VQGAN&lt;/b&gt; &amp;rarr; VQ-VAE + GAN (디테일 강화, 텍스트 조건부 확장 가능)&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;기존의 모델은Transformer의 많은computation으로 인해low-resolution image generation에서만 적용을 하였는데, VQGAN은Transformer를High Resolution생성에 적용할 수 있는 방법론을 제시하였다. 또한 Adversarial learning을 통해서 이미지의 중요한&amp;nbsp;local structure를 담은&amp;nbsp;codebook을 생성하는 방식을 제안하였다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;참조&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://blog.naver.com/gypsi12/222977571589&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://blog.naver.com/gypsi12/222977571589&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1756104441706&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;VQ-VAE 간단 정리(+시각화)&quot; data-og-description=&quot;목차 1. VAE의 문제점 2. VQ-VAE 아이디어 요약 3. 실제 처리 과정 시각화 4. 학습 방법 5. 이미지...&quot; data-og-host=&quot;blog.naver.com&quot; data-og-source-url=&quot;https://blog.naver.com/gypsi12/222977571589&quot; data-og-url=&quot;https://blog.naver.com/gypsi12/222977571589&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/byt1JE/hyZDaaKjZO/Ypwt6ABapuOkK1GIlbIVHk/img.png?width=743&amp;amp;height=353&amp;amp;face=0_0_743_353&quot;&gt;&lt;a href=&quot;https://blog.naver.com/gypsi12/222977571589&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://blog.naver.com/gypsi12/222977571589&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/byt1JE/hyZDaaKjZO/Ypwt6ABapuOkK1GIlbIVHk/img.png?width=743&amp;amp;height=353&amp;amp;face=0_0_743_353');&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;VQ-VAE 간단 정리(+시각화)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;목차 1. VAE의 문제점 2. VQ-VAE 아이디어 요약 3. 실제 처리 과정 시각화 4. 학습 방법 5. 이미지...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;blog.naver.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://greeksharifa.github.io/discrete%20representation/2021/11/07/VQVAE/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://greeksharifa.github.io/discrete%20representation/2021/11/07/VQVAE/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1756104448239&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;Python, Machine &amp;amp; Deep Learning&quot; data-og-description=&quot;Python, Machine Learning &amp;amp; Deep Learning&quot; data-og-host=&quot;greeksharifa.github.io&quot; data-og-source-url=&quot;https://greeksharifa.github.io/discrete%20representation/2021/11/07/VQVAE/&quot; data-og-url=&quot;https://greeksharifa.github.io/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/sEG67/hyZC4awV9J/lgqvKbTNCaIw8vd8qMahj1/img.png?width=1680&amp;amp;height=1680&amp;amp;face=0_0_1680_1680,https://scrap.kakaocdn.net/dn/cOC2DA/hyZC9Qq6v7/ziLkP8laFlnV3noS1ssquk/img.png?width=1680&amp;amp;height=1680&amp;amp;face=0_0_1680_1680,https://scrap.kakaocdn.net/dn/hOV76/hyZC5UNCLf/aHaHIHivOrJr1tmw3p7aNk/img.jpg?width=1024&amp;amp;height=830&amp;amp;face=0_0_1024_830&quot;&gt;&lt;a href=&quot;https://greeksharifa.github.io/discrete%20representation/2021/11/07/VQVAE/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://greeksharifa.github.io/discrete%20representation/2021/11/07/VQVAE/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/sEG67/hyZC4awV9J/lgqvKbTNCaIw8vd8qMahj1/img.png?width=1680&amp;amp;height=1680&amp;amp;face=0_0_1680_1680,https://scrap.kakaocdn.net/dn/cOC2DA/hyZC9Qq6v7/ziLkP8laFlnV3noS1ssquk/img.png?width=1680&amp;amp;height=1680&amp;amp;face=0_0_1680_1680,https://scrap.kakaocdn.net/dn/hOV76/hyZC5UNCLf/aHaHIHivOrJr1tmw3p7aNk/img.jpg?width=1024&amp;amp;height=830&amp;amp;face=0_0_1024_830');&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;Python, Machine &amp;amp; Deep Learning&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Python, Machine Learning &amp;amp; Deep Learning&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;greeksharifa.github.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://jjonhwa.github.io/booststudy/2021/12/24/booststudy-paper-VQGAN/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://jjonhwa.github.io/booststudy/2021/12/24/booststudy-paper-VQGAN/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1756104453884&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[논문리뷰] VQGAN: Taming Transformers for High-Resolution Image Synthesis&quot; data-og-description=&quot;VQGAN: Taming Transformers for High-Resolution Image Synthesis를 읽고 이에 대하여 논의한다.&quot; data-og-host=&quot;jjonhwa.github.io&quot; data-og-source-url=&quot;https://jjonhwa.github.io/booststudy/2021/12/24/booststudy-paper-VQGAN/&quot; data-og-url=&quot;https://jjonhwa.github.io/booststudy/2021/12/24/booststudy-paper-VQGAN/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cJgy8R/hyZDcsR5HH/bbREGTyF6LP5w50tNiJd70/img.png?width=678&amp;amp;height=563&amp;amp;face=0_0_678_563,https://scrap.kakaocdn.net/dn/bpGz4o/hyZC1ZaexA/dCfyWaRpnZKifKtwm4Kvd1/img.jpg?width=1205&amp;amp;height=623&amp;amp;face=0_0_1205_623,https://scrap.kakaocdn.net/dn/bdyxn2/hyZC8cV2EN/utVKHnKTacIJRwKzBDz9p0/img.jpg?width=1255&amp;amp;height=588&amp;amp;face=0_0_1255_588&quot;&gt;&lt;a href=&quot;https://jjonhwa.github.io/booststudy/2021/12/24/booststudy-paper-VQGAN/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://jjonhwa.github.io/booststudy/2021/12/24/booststudy-paper-VQGAN/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cJgy8R/hyZDcsR5HH/bbREGTyF6LP5w50tNiJd70/img.png?width=678&amp;amp;height=563&amp;amp;face=0_0_678_563,https://scrap.kakaocdn.net/dn/bpGz4o/hyZC1ZaexA/dCfyWaRpnZKifKtwm4Kvd1/img.jpg?width=1205&amp;amp;height=623&amp;amp;face=0_0_1205_623,https://scrap.kakaocdn.net/dn/bdyxn2/hyZC8cV2EN/utVKHnKTacIJRwKzBDz9p0/img.jpg?width=1255&amp;amp;height=588&amp;amp;face=0_0_1255_588');&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;[논문리뷰] VQGAN: Taming Transformers for High-Resolution Image Synthesis&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;VQGAN: Taming Transformers for High-Resolution Image Synthesis를 읽고 이에 대하여 논의한다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;jjonhwa.github.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://bigdata-analyst.tistory.com/349&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://bigdata-analyst.tistory.com/349&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1756104456530&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;Taming Transformers for High Resolution Image Synthesis (VQGAN)&quot; data-og-description=&quot;https://arxiv.org/abs/2012.09841 Taming Transformers for High-Resolution Image Synthesis Designed to learn long-range interactions on sequential data, transformers continue to show state-of-the-art results on a wide variety of tasks. In contrast to CNNs, t&quot; data-og-host=&quot;bigdata-analyst.tistory.com&quot; data-og-source-url=&quot;https://bigdata-analyst.tistory.com/349&quot; data-og-url=&quot;https://bigdata-analyst.tistory.com/349&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/riBCz/hyZDdrLWeM/xETLnBWPt38uBDMRGr2sKk/img.png?width=800&amp;amp;height=316&amp;amp;face=0_0_800_316,https://scrap.kakaocdn.net/dn/c14t3s/hyZCXvHsJF/ItFDOwVZKRJ5VgnRkxR2Lk/img.png?width=800&amp;amp;height=316&amp;amp;face=0_0_800_316,https://scrap.kakaocdn.net/dn/mWloe/hyZzyKw2U2/8oefCV7h0zLsd7K4OBZsD1/img.png?width=812&amp;amp;height=546&amp;amp;face=0_0_812_546&quot;&gt;&lt;a href=&quot;https://bigdata-analyst.tistory.com/349&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://bigdata-analyst.tistory.com/349&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/riBCz/hyZDdrLWeM/xETLnBWPt38uBDMRGr2sKk/img.png?width=800&amp;amp;height=316&amp;amp;face=0_0_800_316,https://scrap.kakaocdn.net/dn/c14t3s/hyZCXvHsJF/ItFDOwVZKRJ5VgnRkxR2Lk/img.png?width=800&amp;amp;height=316&amp;amp;face=0_0_800_316,https://scrap.kakaocdn.net/dn/mWloe/hyZzyKw2U2/8oefCV7h0zLsd7K4OBZsD1/img.png?width=812&amp;amp;height=546&amp;amp;face=0_0_812_546');&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;Taming Transformers for High Resolution Image Synthesis (VQGAN)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;https://arxiv.org/abs/2012.09841 Taming Transformers for High-Resolution Image Synthesis Designed to learn long-range interactions on sequential data, transformers continue to show state-of-the-art results on a wide variety of tasks. In contrast to CNNs, t&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;bigdata-analyst.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://arxiv.org/abs/2012.09841&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://arxiv.org/abs/2012.09841&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1756104465437&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;Taming Transformers for High-Resolution Image Synthesis&quot; data-og-description=&quot;Designed to learn long-range interactions on sequential data, transformers continue to show state-of-the-art results on a wide variety of tasks. In contrast to CNNs, they contain no inductive bias that prioritizes local interactions. This makes them expres&quot; data-og-host=&quot;arxiv.org&quot; data-og-source-url=&quot;https://arxiv.org/abs/2012.09841&quot; data-og-url=&quot;https://arxiv.org/abs/2012.09841v3&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cXTOrB/hyZzxEOnWx/FKwu0R7jHTSkKVT3iusSP1/img.png?width=1200&amp;amp;height=700&amp;amp;face=0_0_1200_700,https://scrap.kakaocdn.net/dn/dmt452/hyZDdyz0Dz/mje1q5AoTUmOaP8s0CivS1/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/2012.09841&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://arxiv.org/abs/2012.09841&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cXTOrB/hyZzxEOnWx/FKwu0R7jHTSkKVT3iusSP1/img.png?width=1200&amp;amp;height=700&amp;amp;face=0_0_1200_700,https://scrap.kakaocdn.net/dn/dmt452/hyZDdyz0Dz/mje1q5AoTUmOaP8s0CivS1/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;Taming Transformers for High-Resolution Image Synthesis&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Designed to learn long-range interactions on sequential data, transformers continue to show state-of-the-art results on a wide variety of tasks. In contrast to CNNs, they contain no inductive bias that prioritizes local interactions. This makes them expres&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;</description>
      <category>용어 정리</category>
      <author>duckracoon5z</author>
      <guid isPermaLink="true">https://duckracoon5z.tistory.com/26</guid>
      <comments>https://duckracoon5z.tistory.com/26#entry26comment</comments>
      <pubDate>Mon, 25 Aug 2025 16:51:02 +0900</pubDate>
    </item>
    <item>
      <title>GAN 시리즈 - StyleGAN</title>
      <link>https://duckracoon5z.tistory.com/25</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;&lt;b&gt;1. StyleGAN&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;StyleGAN(&lt;a style=&quot;color: #000000;&quot; href=&quot;https://arxiv.org/abs/1812.04948&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;A Style-Based Generator Architecture for Generative Adversarial Networks&lt;/a&gt;), CVPR 2019에 소개되었으며 추후 다양한 후속 연구 및 생성 모델 연구에 큰 기여를 한 논문이다. &lt;a style=&quot;color: #000000;&quot; href=&quot;https://duckracoon5z.tistory.com/23&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;PGGAN&lt;/a&gt;의 논문의 저자들이 progressive growing의 아이디어와 함게 style transfer의 architecture로부터 영감을 받아 혁신적인 generator를 고안해냈다.&amp;nbsp;&lt;/span&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;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;&lt;b&gt;1-1 PGGAN&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000; text-align: start;&quot;&gt; GAN을 이용해 고해상도 이미지를 생성하는 것은 쉽지 않다. 따라서 latent vector에서 한번에 고해상도의 이미지를 생성하기보다는, 낮은 해상도의 이미지(4x4)를 생성하는 것부터 학습해서 점진적으로(progressive) 레이어를 추가하며 고해상도 이미지(1024x1024)를 만드는 방법을 학습한다. &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;1169&quot; data-origin-height=&quot;681&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cRjfq5/btsPZbDJtSN/C3v9uX0PkSEEvqKIQEO3LK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cRjfq5/btsPZbDJtSN/C3v9uX0PkSEEvqKIQEO3LK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cRjfq5/btsPZbDJtSN/C3v9uX0PkSEEvqKIQEO3LK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcRjfq5%2FbtsPZbDJtSN%2FC3v9uX0PkSEEvqKIQEO3LK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;764&quot; height=&quot;445&quot; data-origin-width=&quot;1169&quot; data-origin-height=&quot;681&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: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000; text-align: start;&quot;&gt; 레이어를 추가할 때는 fade in 방식으로 부드럽게 끼워 넣는다. 아래 그림의 (a) -&amp;gt; (b) -&amp;gt; (c) 순서로 레이어 추가가 진행된다. &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;594&quot; data-origin-height=&quot;299&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/m2S7p/btsPVA52N8C/yh8oyO90TMd5RX4UBSEnr1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/m2S7p/btsPVA52N8C/yh8oyO90TMd5RX4UBSEnr1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/m2S7p/btsPVA52N8C/yh8oyO90TMd5RX4UBSEnr1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fm2S7p%2FbtsPVA52N8C%2Fyh8oyO90TMd5RX4UBSEnr1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;299&quot; data-origin-width=&quot;594&quot; data-origin-height=&quot;299&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;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;(b) 그림이 레이어 추가 과정을 보여준다. 이전 레이어의 output과, 새로운 레이어의 output을 적절하게 더해서 최종 output으로써 discriminator에 전달하는 것이다.&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;list-style-type: disc; color: #000000;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;weight&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;&amp;amp;#x03B1;&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;alpha;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;는 0부터 1로 linear하게 증가한다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;toRGB operation은 feature을 RGB(num_channel=3)로 만드는 1x1 conv이다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;이러한 구조는 StyleGAN2 부터는 사용하지 않는다.&lt;/span&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;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;문제점&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;928&quot; data-origin-height=&quot;527&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qEdVq/btsPXS5EKA6/Gjz2lhjv57q781QVBALPDK/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qEdVq/btsPXS5EKA6/Gjz2lhjv57q781QVBALPDK/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qEdVq/btsPXS5EKA6/Gjz2lhjv57q781QVBALPDK/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/qEdVq/btsPXS5EKA6/Gjz2lhjv57q781QVBALPDK/img.gif&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;784&quot; height=&quot;445&quot; data-origin-width=&quot;928&quot; data-origin-height=&quot;527&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;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;ProGAN의 경우 latent vector가 generator에 바로 입력으로 들어간다. 이 경우 GAN은 latent space를 학습 데이터의 분포에 맞춰 학습하게 되고,&amp;nbsp;entangle한 latent space를 갖게 된다.&lt;/span&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;759&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dl4AO0/btsPX1PaL5c/3dFiz9COjF2eohkkk1KV0K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dl4AO0/btsPX1PaL5c/3dFiz9COjF2eohkkk1KV0K/img.png&quot; data-alt=&quot;https://blog.promedius.ai/stylegan_1/&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dl4AO0/btsPX1PaL5c/3dFiz9COjF2eohkkk1KV0K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdl4AO0%2FbtsPX1PaL5c%2F3dFiz9COjF2eohkkk1KV0K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;632&quot; height=&quot;375&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;759&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;https://blog.promedius.ai/stylegan_1/&lt;/figcaption&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;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;학습 데이터셋의 분포가 전체 데이터의 분포를 다 담지 못하고 비어있는 공간이 있는 경우, latent space가 학습 데이터셋의 분포에 맞춰지려 하다 보니 curved한 mapping을 학습하게 되는 것이다 (warping). Warping이 발생하게 되면 각 style이 급진적으로 변화하게 되어, 생성된 이미지 역시 급격하게 변하게 되는 특성이 존재한다. &lt;/span&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;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;풀어 말하자면, 하나의 유전자를 바꿔도 여러 특성에 영향을 주는 것처럼, 인풋을 조금이라도 조정하게 되면 동시에 여러 특징에 영향을 미치게되어 구체적인 특징을 컨트롤하는 능력은 매우 제한적이다.&lt;/span&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;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;&lt;b&gt;1-2 StyleGAN&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;948&quot; data-origin-height=&quot;618&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bl3eSL/btsPWrHTXuz/lJ9QZsFjnHFiKzd8AKTtkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bl3eSL/btsPWrHTXuz/lJ9QZsFjnHFiKzd8AKTtkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bl3eSL/btsPWrHTXuz/lJ9QZsFjnHFiKzd8AKTtkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbl3eSL%2FbtsPWrHTXuz%2FlJ9QZsFjnHFiKzd8AKTtkk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;618&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;948&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;&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;841&quot; data-origin-height=&quot;737&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cV9IRv/btsPXSYWXsv/37kBekCQ6JjPJ4GUoYf2Y1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cV9IRv/btsPXSYWXsv/37kBekCQ6JjPJ4GUoYf2Y1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cV9IRv/btsPXSYWXsv/37kBekCQ6JjPJ4GUoYf2Y1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcV9IRv%2FbtsPXSYWXsv%2F37kBekCQ6JjPJ4GUoYf2Y1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;664&quot; height=&quot;582&quot; data-origin-width=&quot;841&quot; data-origin-height=&quot;737&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: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;StyleGAN은 Generator의 구조에 초점이 맞추어진 논문이다. 이 Generator architecture에서 주목할만한 부분이 여러 개 있다.&lt;/span&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;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;1. Mapping Network&lt;/span&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;# Disentanglement&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;Mapping Network에 대해 정리하기 앞서, 이 mapping network를 이용하는 이유인 entanglement에 대해 먼저 정리하려고 한다. Entanglement란 '꼬여있는 것'을 의미하며 그 반대인 Disentanglement는 '풀려있는 것'을 의미한다. 즉, 주로 생성모델에서의 Entangle과 Distangle은 다양한 특징들이 서로 얽혀있는 것과 풀려있는 것을 말한다.&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: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;이미지 생성에 있어 예를 들자면, 남성 이미지를 생성할 때 대부분 짧은 머리를 가지고 수염이 있는 데이터가 많기에 머리가 짧고 수염이 있는 이미지가 생성되는 것이다. 다시 말해, 성별들이라는 특징과 수염, 머리카락 길이 등의 특징이 얽혀있는 상황이다. 이는 feature간의 correlation을 가지고 있는 것이다.&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;794&quot; data-origin-height=&quot;401&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cJZwDv/btsPZfGazke/3mLVaK5MYamTlkVT9Gr6C1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cJZwDv/btsPZfGazke/3mLVaK5MYamTlkVT9Gr6C1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cJZwDv/btsPZfGazke/3mLVaK5MYamTlkVT9Gr6C1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcJZwDv%2FbtsPZfGazke%2F3mLVaK5MYamTlkVT9Gr6C1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;735&quot; height=&quot;371&quot; data-origin-width=&quot;794&quot; data-origin-height=&quot;401&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: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;만일 여성의 사진이 있을 때, 해당 여성이 수염을 기른 모습의 이미지를 생성해내고 싶은 상황에서, 만약 feature들이 얽혀있지 않는(Disentanglement) 상황이라면 위의 이미지처럼 여성에서 수염만 추가된 이미지가 나와야 한다. 하지만 얽혀있다면(Entanglement) 아래와 같이 수염을 추가했지만 남성의 사진을 만들어 내는 것이다. 이는 수염이라는 특징이 성별, 머리카락 등의 특징과 얽혀있기 때문이다.&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: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;&amp;nbsp;기존의 GAN은 학습 데이터의 분포를 따르도록 학습이 된다. 따라서, 학습 데이터에서 보기 힘든 데이터들을 잘 생성해내지 못하고, 그러다 보니 전형적인 데이터셋 및 입력 잠재 분포로부터 feature가 완전히 disentangled하게 학습할 수 없는 것이다.&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;729&quot; data-origin-height=&quot;472&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/k1KgA/btsP0vIswty/qZD8Ng0AmSioPdIIrk3tqK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/k1KgA/btsP0vIswty/qZD8Ng0AmSioPdIIrk3tqK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/k1KgA/btsP0vIswty/qZD8Ng0AmSioPdIIrk3tqK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk1KgA%2FbtsP0vIswty%2FqZD8Ng0AmSioPdIIrk3tqK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;602&quot; height=&quot;390&quot; data-origin-width=&quot;729&quot; data-origin-height=&quot;472&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;여기서 (a)는 training set의 feature 분포를 시각화한 것이고, 그 두 개의 축이 머리카락의 길이와 성별이라고 가정했다. 이때 (a)의 시각화된 모습에서 실제 데이터셋에서는 머리카락이 긴 남성은 존재하지 않기 때문에 좌상단 부분은 비어있다. 즉 학습 데이터셋에서 확인하기 어려운 데이터의 밀도가 적은 부분인 것이다. 이러한 학습 데이터 분포를 학습해서 Z latent space에서의 2 factor variation 분포를 시각화한다면 (b)와 같은 원형의 모습을 보일 것이다. 그 이유는 학습에 사용하는 latent vector z가 normal distribution에서 샘플링되기 때문이다. 학습 데이터 분포를 동그란 분포에 맞추려고 하다 보니 그림과 같이 왜곡이 일어나게 된다. 즉, 특정한 분포를 가진 Z-space에서의 각 factor들의 조합의 확률은 학습 데이터에서 해당하는 density와 일치하도록 학습하기 때문에, 위와 같이 왜곡이 발생하고 각각의 factor이 완전히 분리되지 않는 entangled 상태가 발생하는 것이다.&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;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;따라서 저자들은 기존의 방식으로는 distanglement를 만들어낼 수 없다고 생각하였다. 저자들이 Disentanglement의 목적성을 고려해 정의한 바는 'latent space가 하나의 variation factor를 컨트롤할 수 있는 linear subspace들로 구성된 상태'이다. 즉, latent space 상에서 하나의 variation factor가 linear하게 움직이고 이 때 다른 factor들은 컨트롤되면 안된다는 것이다. (a)의 학습 데이터셋처럼 두 개의 factor가 각각 linear하게 움직이고 있는 상황이 distangle한 상황이고, 왜곡된 (b)와 같은 latent space는 각각의 factor가 곡선으로 왜곡되어서 움직이는 것을 확인할 수 있으며, 이는 entanglement한 상황이라는 것이다.&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;832&quot; data-origin-height=&quot;396&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tvCAO/btsPZQ7ht1i/Ywsw28YPBZvYIKwaHYe2u0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tvCAO/btsPZQ7ht1i/Ywsw28YPBZvYIKwaHYe2u0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tvCAO/btsPZQ7ht1i/Ywsw28YPBZvYIKwaHYe2u0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtvCAO%2FbtsPZQ7ht1i%2FYwsw28YPBZvYIKwaHYe2u0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;679&quot; height=&quot;323&quot; data-origin-width=&quot;832&quot; data-origin-height=&quot;396&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: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;이에 저자들은 기존의 Z-space를 non-linear mapping을 학습하는 Mapping Network를 통해서 기존의 학습 데이터 분포의 density를 더 잘 반영하고 variation factor가 더 linear하게 움직일 수 있는 W-space로 mapping 해주게 된다. 즉, 이미지를 더 잘 생성하기 위해서 학습을 하면서 이러한 Z-space를 disentanglement한 latent space로 mapping을 해주는 방식을 mapping network가 학습하도록 하는 것이다. 이렇게 함으로써 Generator는 disentangled representation에 기반해 더 사실적인 이미지를 잘 만들도록 학습이 되는 것이다.&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;450&quot; data-origin-height=&quot;510&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bGq4mB/btsPYCB0OOO/6hjydLqq8ibN4EafoA5iz0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bGq4mB/btsPYCB0OOO/6hjydLqq8ibN4EafoA5iz0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bGq4mB/btsPYCB0OOO/6hjydLqq8ibN4EafoA5iz0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbGq4mB%2FbtsPYCB0OOO%2F6hjydLqq8ibN4EafoA5iz0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;510&quot; data-origin-width=&quot;450&quot; data-origin-height=&quot;510&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: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;Style based Generator의 구조를 보면 기존의 Generator의 구조와는 다르게 latent code로부터 이미지가 생성되지 않고 constant input으로부터 이미지가 생성되면서 latent code로부터 스타일을 만들어 이러한 스타일을 이미지 생성 과정에 주입시켜줌으로써 새로운 이미지를 생성해낸다.&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: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt; latent code z를 곧바로 쓰는 대신, 먼저 mapping network를 거쳐 intermediate latent code w로 변환한다. 이렇게 하면 원래의 &lt;span aria-hidden=&quot;true&quot;&gt;z&lt;/span&gt; 공간처럼 얽혀 있는(entangled) 표현이 아니라, 데이터 분포에 더 잘 맞고 서로 다른 요인들이 더 분리(disentangled)된 w 공간을 얻을 수 있다. 그 결과, 생성되는 이미지 품질이 좋아지고, 얼굴의 나이&amp;middot;표정 같은 고수준 속성들도 더 쉽게 분리해서 제어할 수 있게 된다. &lt;/span&gt;&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;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;2. AdalN&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;794&quot; data-origin-height=&quot;344&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uUD9E/btsPY79FRTM/4PMyhYGmxHqm3nSOecjp70/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uUD9E/btsPY79FRTM/4PMyhYGmxHqm3nSOecjp70/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uUD9E/btsPY79FRTM/4PMyhYGmxHqm3nSOecjp70/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuUD9E%2FbtsPY79FRTM%2F4PMyhYGmxHqm3nSOecjp70%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;759&quot; height=&quot;329&quot; data-origin-width=&quot;794&quot; data-origin-height=&quot;344&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: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;일반적으로 딥러닝에서 네트워크를통해 데이터로부터 feature를 학습한다. AdalN은 style-transfer를 위한 Normalization Method로 위의 풍경과 같은 입력 영상에서 딥러닝 인코더 네트워크로부터 추출된 high-level feature map가 아래의 화풍과 같은 style이 입혀진 style-transfer된 이미지를 얻을 수 있다.&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;576&quot; data-origin-height=&quot;194&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RG8LV/btsPZXk6SOz/C8GwgEVcbLDk95CESucIKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RG8LV/btsPZXk6SOz/C8GwgEVcbLDk95CESucIKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RG8LV/btsPZXk6SOz/C8GwgEVcbLDk95CESucIKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRG8LV%2FbtsPZXk6SOz%2FC8GwgEVcbLDk95CESucIKK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;576&quot; height=&quot;194&quot; data-origin-width=&quot;576&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;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;이러한 방식을 Image Generation에 도입한 것이다. 생성모델이 만들어내는 영상은 우리가 아는 다양한 스타일들의 조합으로 생각할 수 있다. 여기서 스타일은 w를 fc layer을 거쳐 input channel과 동일한 크기의 ys, yb라는 scaling factor, bias factor로 들어가게 될 것이다.&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;793&quot; data-origin-height=&quot;469&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bv1R4Q/btsP0sLWvNq/kFfL2iWHzkfXB3ntRg9GD1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bv1R4Q/btsP0sLWvNq/kFfL2iWHzkfXB3ntRg9GD1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bv1R4Q/btsP0sLWvNq/kFfL2iWHzkfXB3ntRg9GD1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbv1R4Q%2FbtsP0sLWvNq%2FkFfL2iWHzkfXB3ntRg9GD1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;717&quot; height=&quot;424&quot; data-origin-width=&quot;793&quot; data-origin-height=&quot;469&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;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;AdaIN에서 정규화를 할 때마다 한 번에 하나씩만 w가 기여하므로 하나의 style이 각각의 scale에서만 영향을 미칠 수 있도록 분리를 해주는 효과를 갖는다. 따라서 style을 분리하는 방법으로 AdaIN이 효과적으로 사용될 수 있다.&lt;/span&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;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;또한, generator의 매 layer마다 AdaIN을 통해 새로운 style을 입히게 되므로, 특정 layer에서 입혀진 style은 바로 다음 conv layer에만 영향을 끼친다. 따라서 각 layer의 style이 특정한 시각적 특성만 담당하는 것이 용이해진다.&lt;/span&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;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;3. Constant Input&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;368&quot; data-origin-height=&quot;338&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lTgTl/btsPYIoI7mo/1hb2EhJfpn3318knucSOF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lTgTl/btsPYIoI7mo/1hb2EhJfpn3318knucSOF1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lTgTl/btsPYIoI7mo/1hb2EhJfpn3318knucSOF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlTgTl%2FbtsPYIoI7mo%2F1hb2EhJfpn3318knucSOF1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;271&quot; data-origin-width=&quot;368&quot; data-origin-height=&quot;338&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: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;기존처럼 random noise를 사용안하는 이유는 바로 네트워크를 통해서 이미지를 생성한는 것은 비교적으로 학습하기 어렵기 때문이다. StyleGAN에서 style들을 받아서 이미지를 생성해낼 때 초기의 4X4 영상 데이터의 전체적인 identity 혹은 특성을 배우면 네트워크가 더 쉽게 학습할 수 있을 것이다. 예를 들어 고양이 데이터셋을 학습한다고 생각해보면 constant가 배울 것은 전체적인 고양의 형태와 같은 것을 배울 것이다. 만약 기존처럼 random noise를 사용한다면 이러한 노이즈를 바탕으로 그냥 이미지를 생성해내는 법을 네트워크가 배워야 하므로 네트워크의 부담이 커질 것이다. 따라서 learnable input을 넣어줌으로써 네트워크가 학습하면서 이미지를 생성함에 있어 좋은 초기 모델을 학습해 constant c를 구축하고 이를 생성 과정에서 고정해서 사용하는 것이다.&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;820&quot; data-origin-height=&quot;459&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/t2BEf/btsPXZEmd3t/QjKEI7hmcA9XazO6UhzWe0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/t2BEf/btsPXZEmd3t/QjKEI7hmcA9XazO6UhzWe0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/t2BEf/btsPXZEmd3t/QjKEI7hmcA9XazO6UhzWe0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Ft2BEf%2FbtsPXZEmd3t%2FQjKEI7hmcA9XazO6UhzWe0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;650&quot; height=&quot;364&quot; data-origin-width=&quot;820&quot; data-origin-height=&quot;459&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;4. Noise Ingection(Stochastic variation)&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;368&quot; data-origin-height=&quot;338&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lTgTl/btsPYIoI7mo/1hb2EhJfpn3318knucSOF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lTgTl/btsPYIoI7mo/1hb2EhJfpn3318knucSOF1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lTgTl/btsPYIoI7mo/1hb2EhJfpn3318knucSOF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlTgTl%2FbtsPYIoI7mo%2F1hb2EhJfpn3318knucSOF1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;271&quot; data-origin-width=&quot;368&quot; data-origin-height=&quot;338&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: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;이미지를 생성함에 있어서 중요한 부분 중 하나는 randomness이다. 이미지는 사실적이면서도 다채로움을 가져야 한다. noise injection을 통해서 생성모델은 사람 얼굴에서 머리카락이나 수염, 주근깨, 모공과 같은 stochastic(확률적인)한 특성을 가지는 부분들이 생성된 fake image의 identity나 인지적인 특성에 영향을 주지 않고 randomness를 가지고 바뀌게 함으로써 생성되는 이미지의 사실성과 다양성을 증대시키는데 도움이 된다. 실제로는 노이즈 g의 각 convolution layer 뒤에서 주입시켜주면서 이미지를 만들게 된다.&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: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;일반적인 generator에서는 이러한 stochastic variation을 네트워크가 학습하도록 했다. 즉, 수염과 같은 생성되는 이미지의 randomized aspects들의 randomness를 generator network가 구조적으로 이미지를 만드는 것을 학습함과 동시에 사실성과 다양성을 위한 randomness 또한 학습해야 하는 것이다. 따라서 어차피 random한 부분이라면 네트워크 학습할 필요 없이 외부에서 줌으로써 이러한 문제를 피하려고 하였다.&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: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;어떻게 이러한 noise가 identity나 인지적인 특성에 영향을 주지 않고 randomness를 가지고 세세한 부분을 바꿀 수 있을까? StyleGAN에서 style 정도(latent w)는 AdaIN을 통해 feature map 전체에 scaling, biasing을 적용한다. 이것은 feature map 전체에 똑같이 적용되기 때문에, 얼굴 모양, 성별, 머리 스타일 같은 global effect를 조절한다. 이런 효과는 채널 단위 평균 분산 같은 통계값으로 표현되는 style 정보와 연결돼 있다. 즉, 공간적으로 어디든 동일하게 적용된다는 뜻이다. 반면 noise의 경우는 다르게 동작한다. noise는 각 픽셀 위치마다 독립적으로 주입되기 때문에, 특정 위치에서만 랜덤한 변화를 줄 수 있다. 그래서 머리카락 한 올 한 올, 피부에 있는 점 그리고 주름 같은 세세하고 우연적인 디테일(stochastic variation)을 만들어낸다. 다시 말하자면, global structure는 낮은 해상도 feature map에서 이미 결정되었고, noise는 높은 해상도 층에서 들어오기 때문에 큰 구조를 건들 수 없으므로 위치 차원 그리고 역할이 분리되어 있다는 것이다.&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;1280&quot; data-origin-height=&quot;809&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dE4tVM/btsPXzsk5PB/CTcVDZtaQnsnexhoVYOPs1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dE4tVM/btsPXzsk5PB/CTcVDZtaQnsnexhoVYOPs1/img.png&quot; data-alt=&quot;Figure 4(c). 100장의 사진을 그대로 두고 노이즈 값을 다르게 했을 때 표준편차의 모습 / Figure 5. (a): noise를 모든 layer에 줌. (b) noise를 안줌. (c) noise를 fine layer에만 줌 (d) noise를 coarse layer에만 줌&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dE4tVM/btsPXzsk5PB/CTcVDZtaQnsnexhoVYOPs1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdE4tVM%2FbtsPXzsk5PB%2FCTcVDZtaQnsnexhoVYOPs1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1280&quot; height=&quot;809&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;809&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Figure 4(c). 100장의 사진을 그대로 두고 노이즈 값을 다르게 했을 때 표준편차의 모습 / Figure 5. (a): noise를 모든 layer에 줌. (b) noise를 안줌. (c) noise를 fine layer에만 줌 (d) noise를 coarse layer에만 줌&lt;/figcaption&gt;
&lt;/figure&gt;
&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;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;5. Progressive Growing&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;460&quot; data-origin-height=&quot;219&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brCjLN/btsP0gdRMcV/5DVl089qKWShczpod5E6tK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brCjLN/btsP0gdRMcV/5DVl089qKWShczpod5E6tK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brCjLN/btsP0gdRMcV/5DVl089qKWShczpod5E6tK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbrCjLN%2FbtsP0gdRMcV%2F5DVl089qKWShczpod5E6tK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;219&quot; data-origin-width=&quot;460&quot; data-origin-height=&quot;219&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;467&quot; data-origin-height=&quot;245&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/djf8EI/btsP0OH3rJV/lgK5L4NugMkGFKKjKaK791/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/djf8EI/btsP0OH3rJV/lgK5L4NugMkGFKKjKaK791/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/djf8EI/btsP0OH3rJV/lgK5L4NugMkGFKKjKaK791/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdjf8EI%2FbtsP0OH3rJV%2FlgK5L4NugMkGFKKjKaK791%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;245&quot; data-origin-width=&quot;467&quot; data-origin-height=&quot;245&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: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;PGGAN에서 확인한 것처럼, low resolution image(4X4)부터 학습을 시작하여 점진적으로 layer를 추가해가면서 resolutionㅇ르 올려가며 학습을 해나감으로써 GAN이 처음에는 상대적으로 단순한 문제를 풀고 점진적으로 상태적으로 어려운 문제를 풀어나가기에 학습이 안정적이고, 고해상도 이미지를 잘 만들어내게 된다. 결국 StyleGAN은 PGGAN의 progressice growing 구조를 바탕으로 만들어진 것이다.&lt;/span&gt;&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;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;6. Style Mixing&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;두 style들을 조합하여 사용한다고 할 때, 하나의 w만으로 학습하다보면 붙어 있는 레벨의 style들 간의 correlation이 생길 수 있다. 이는 저차원의 feature에서 얼굴의 모양과 같은 attribute를 받고, 고차원에서 얼굴의 포즈와 같은 attribute를 받는데, 이 둘의 상관관계가 생기면 두 특징이 독립적이지 못하고 localization을 잘 못하게 되어 모양이 바뀌면서 pose가 바뀔 수 있는 것이다.&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: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;이런 상황을 줄이기 위해 Mixing Regularization을 진행한다. Mixing Regularization은 서로 다른 이미지를 생성해내는 intermediate latent vector w1과 w2의 특정 level을 기준으로 이전까지는 w1의 style 정보를 이후부터는 w2의 style 정보를 넣어 이미지를 생성하도록 학습시키는 것이다. 즉 w1의 style에는 상대적으로 coarse한 정보가 w2의 style은 fine한 정보가 반영되었다는 것이다. 이로써 인접한 두 level의 style 간의 correlation이 생기는 것을 막도록 하는 일종의 Regularization을 해줌으로써 localization이 개선된다.&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;1280&quot; data-origin-height=&quot;795&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WGnCH/btsPZm6UsAh/UnJUlpHxqJzOqXBX7kHVQ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WGnCH/btsPZm6UsAh/UnJUlpHxqJzOqXBX7kHVQ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WGnCH/btsPZm6UsAh/UnJUlpHxqJzOqXBX7kHVQ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWGnCH%2FbtsPZm6UsAh%2FUnJUlpHxqJzOqXBX7kHVQ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;644&quot; height=&quot;400&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;795&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;&lt;b&gt;참조&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;&lt;a style=&quot;color: #000000;&quot; href=&quot;https://airsbigdata.tistory.com/217&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://airsbigdata.tistory.com/217&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1755589304543&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[논문 리뷰] StyleGAN: A Style-Based Generator Architecture for GANs&quot; data-og-description=&quot;이번에 소개해 드릴 논문은 A Style-Based Generator Architecture for Generative Adversarial Networks으로 StyleGAN으로 자연스러운 고해상도 이미지를 만들면서 많이 알려지게 된 논문입니다. 해당 논문은 NVDIA 팀이&quot; data-og-host=&quot;airsbigdata.tistory.com&quot; data-og-source-url=&quot;https://airsbigdata.tistory.com/217&quot; data-og-url=&quot;https://airsbigdata.tistory.com/217&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bTCCw6/hyZzybL54j/zHnSBGVWk8QAqyAFWqify1/img.png?width=800&amp;amp;height=1006&amp;amp;face=73_80_719_864,https://scrap.kakaocdn.net/dn/J9UZm/hyZyswj9UG/StiTPUhrFnWK8ugF1qyoI0/img.png?width=800&amp;amp;height=1006&amp;amp;face=73_80_719_864,https://scrap.kakaocdn.net/dn/eEEIp/hyZC8v9rDt/9XGWIVxGhQbspHHJ6r3RNK/img.png?width=1964&amp;amp;height=206&amp;amp;face=0_0_1964_206&quot;&gt;&lt;a href=&quot;https://airsbigdata.tistory.com/217&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://airsbigdata.tistory.com/217&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bTCCw6/hyZzybL54j/zHnSBGVWk8QAqyAFWqify1/img.png?width=800&amp;amp;height=1006&amp;amp;face=73_80_719_864,https://scrap.kakaocdn.net/dn/J9UZm/hyZyswj9UG/StiTPUhrFnWK8ugF1qyoI0/img.png?width=800&amp;amp;height=1006&amp;amp;face=73_80_719_864,https://scrap.kakaocdn.net/dn/eEEIp/hyZC8v9rDt/9XGWIVxGhQbspHHJ6r3RNK/img.png?width=1964&amp;amp;height=206&amp;amp;face=0_0_1964_206');&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;[논문 리뷰] StyleGAN: A Style-Based Generator Architecture for GANs&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;이번에 소개해 드릴 논문은 A Style-Based Generator Architecture for Generative Adversarial Networks으로 StyleGAN으로 자연스러운 고해상도 이미지를 만들면서 많이 알려지게 된 논문입니다. 해당 논문은 NVDIA 팀이&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;airsbigdata.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;&lt;a style=&quot;color: #000000;&quot; href=&quot;https://comlini8-8.tistory.com/11&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://comlini8-8.tistory.com/11&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1755589350294&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;진짜 같은 고화질 가짜 이미지 생성하기, StyleGAN&quot; data-og-description=&quot;https://towardsdatascience.com/explained-a-style-based-generator-architecture-for-gans-generating-and-tuning-realistic-6cb2be0f431 Explained: A Style-Based Generator Architecture for GANs - Generating and Tuning Realistic&amp;hellip; NVIDIA&amp;rsquo;s novel architecture f&quot; data-og-host=&quot;comlini8-8.tistory.com&quot; data-og-source-url=&quot;https://comlini8-8.tistory.com/11&quot; data-og-url=&quot;https://comlini8-8.tistory.com/11&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cmK1NQ/hyZyqkXFn8/Svo4Fn5crlVwTd0lpHgwbK/img.png?width=800&amp;amp;height=501&amp;amp;face=591_48_760_324,https://scrap.kakaocdn.net/dn/j09RS/hyZzKwvGXa/N5Z5HkQMG9k7Rl2ZSjXPxk/img.png?width=800&amp;amp;height=501&amp;amp;face=591_48_760_324,https://scrap.kakaocdn.net/dn/clGL8V/hyZC6ylgR7/UIwB45qpBNCEQbrj3AT3QK/img.png?width=1120&amp;amp;height=702&amp;amp;face=827_61_1065_455&quot;&gt;&lt;a href=&quot;https://comlini8-8.tistory.com/11&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://comlini8-8.tistory.com/11&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cmK1NQ/hyZyqkXFn8/Svo4Fn5crlVwTd0lpHgwbK/img.png?width=800&amp;amp;height=501&amp;amp;face=591_48_760_324,https://scrap.kakaocdn.net/dn/j09RS/hyZzKwvGXa/N5Z5HkQMG9k7Rl2ZSjXPxk/img.png?width=800&amp;amp;height=501&amp;amp;face=591_48_760_324,https://scrap.kakaocdn.net/dn/clGL8V/hyZC6ylgR7/UIwB45qpBNCEQbrj3AT3QK/img.png?width=1120&amp;amp;height=702&amp;amp;face=827_61_1065_455');&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;진짜 같은 고화질 가짜 이미지 생성하기, StyleGAN&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;https://towardsdatascience.com/explained-a-style-based-generator-architecture-for-gans-generating-and-tuning-realistic-6cb2be0f431 Explained: A Style-Based Generator Architecture for GANs - Generating and Tuning Realistic&amp;hellip; NVIDIA&amp;rsquo;s novel architecture f&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;comlini8-8.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;&lt;a style=&quot;color: #000000;&quot; href=&quot;https://bo-10000.tistory.com/158&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://bo-10000.tistory.com/158&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1755589570129&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[StyleGAN 시리즈] ProGAN/PGGAN, StyleGAN, StyleGAN2&quot; data-og-description=&quot;ProGAN부터 StyleGAN2까지, style transfer에서 가장 유명한 모델인 StyleGAN의 변천사와 각 모델의 특징을 간단히 정리해 보고자 한다. 1. ProGAN/PGGAN (ICLR 2018) Paper: Progressive Growing of GANs for Improved Quality, Stabil&quot; data-og-host=&quot;bo-10000.tistory.com&quot; data-og-source-url=&quot;https://bo-10000.tistory.com/158&quot; data-og-url=&quot;https://bo-10000.tistory.com/158&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/wgMjS/hyZC4mZj9Y/96vDs4faMYuy84XCiboDNK/img.png?width=708&amp;amp;height=815&amp;amp;face=0_0_708_815,https://scrap.kakaocdn.net/dn/bBJ3Tc/hyZyjMVrYo/g29D8iQayHdkFk4XzV39t0/img.png?width=708&amp;amp;height=815&amp;amp;face=0_0_708_815,https://scrap.kakaocdn.net/dn/yDuPA/hyZyi8g4Rc/ZtU4BEO2r7BMy1Ve7HhlTk/img.png?width=1169&amp;amp;height=681&amp;amp;face=957_310_997_353&quot;&gt;&lt;a href=&quot;https://bo-10000.tistory.com/158&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://bo-10000.tistory.com/158&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/wgMjS/hyZC4mZj9Y/96vDs4faMYuy84XCiboDNK/img.png?width=708&amp;amp;height=815&amp;amp;face=0_0_708_815,https://scrap.kakaocdn.net/dn/bBJ3Tc/hyZyjMVrYo/g29D8iQayHdkFk4XzV39t0/img.png?width=708&amp;amp;height=815&amp;amp;face=0_0_708_815,https://scrap.kakaocdn.net/dn/yDuPA/hyZyi8g4Rc/ZtU4BEO2r7BMy1Ve7HhlTk/img.png?width=1169&amp;amp;height=681&amp;amp;face=957_310_997_353');&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;[StyleGAN 시리즈] ProGAN/PGGAN, StyleGAN, StyleGAN2&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;ProGAN부터 StyleGAN2까지, style transfer에서 가장 유명한 모델인 StyleGAN의 변천사와 각 모델의 특징을 간단히 정리해 보고자 한다. 1. ProGAN/PGGAN (ICLR 2018) Paper: Progressive Growing of GANs for Improved Quality, Stabil&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;bo-10000.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;&lt;a style=&quot;color: #000000;&quot; href=&quot;https://hyoseok-personality.tistory.com/entry/StyleGAN-A-Style-Based-Generator-Architecture-for-Generative-Adversarial-Networks-%EB%A6%AC%EB%B7%B0-1%EC%84%B8%EC%84%B8%ED%95%9C-%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://hyoseok-personality.tistory.com/entry/StyleGAN-A-Style-Based-Generator-Architecture-for-Generative-Adversarial-Networks-%EB%A6%AC%EB%B7%B0-1%EC%84%B8%EC%84%B8%ED%95%9C-%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1755590457904&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[Paper Review] StyleGAN : A Style-Based Generator Architecture for Generative Adversarial Networks (1)&quot; data-og-description=&quot;StyleGAN ( A Style-Based Generator Architecture for Generative Adversarial Networks ), CVPR 2019에 소개되었으며 추후 다양한 후속 연구 및 생성 모델 연구에 큰 기여를 한 논문입니다. ProGAN 혹은 PGGAN으로 불리는 논문&quot; data-og-host=&quot;hyoseok-personality.tistory.com&quot; data-og-source-url=&quot;https://hyoseok-personality.tistory.com/entry/StyleGAN-A-Style-Based-Generator-Architecture-for-Generative-Adversarial-Networks-%EB%A6%AC%EB%B7%B0-1%EC%84%B8%EC%84%B8%ED%95%9C-%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0&quot; data-og-url=&quot;https://hyoseok-personality.tistory.com/entry/StyleGAN-A-Style-Based-Generator-Architecture-for-Generative-Adversarial-Networks-%EB%A6%AC%EB%B7%B0-1%EC%84%B8%EC%84%B8%ED%95%9C-%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/gpelK/hyZymv51eq/Ws5BSmektwB3OK5aCkroRK/img.png?width=800&amp;amp;height=383&amp;amp;face=0_0_800_383,https://scrap.kakaocdn.net/dn/1zTLL/hyZC92T5gM/yYw3SqL2IslLFuyM8jcKGK/img.png?width=800&amp;amp;height=383&amp;amp;face=0_0_800_383,https://scrap.kakaocdn.net/dn/kKoz2/hyZylYfoWm/Fk4stF5McydO2P4C4P06YK/img.jpg?width=1300&amp;amp;height=768&amp;amp;face=0_0_1300_768&quot;&gt;&lt;a href=&quot;https://hyoseok-personality.tistory.com/entry/StyleGAN-A-Style-Based-Generator-Architecture-for-Generative-Adversarial-Networks-%EB%A6%AC%EB%B7%B0-1%EC%84%B8%EC%84%B8%ED%95%9C-%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://hyoseok-personality.tistory.com/entry/StyleGAN-A-Style-Based-Generator-Architecture-for-Generative-Adversarial-Networks-%EB%A6%AC%EB%B7%B0-1%EC%84%B8%EC%84%B8%ED%95%9C-%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/gpelK/hyZymv51eq/Ws5BSmektwB3OK5aCkroRK/img.png?width=800&amp;amp;height=383&amp;amp;face=0_0_800_383,https://scrap.kakaocdn.net/dn/1zTLL/hyZC92T5gM/yYw3SqL2IslLFuyM8jcKGK/img.png?width=800&amp;amp;height=383&amp;amp;face=0_0_800_383,https://scrap.kakaocdn.net/dn/kKoz2/hyZylYfoWm/Fk4stF5McydO2P4C4P06YK/img.jpg?width=1300&amp;amp;height=768&amp;amp;face=0_0_1300_768');&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;[Paper Review] StyleGAN : A Style-Based Generator Architecture for Generative Adversarial Networks (1)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;StyleGAN ( A Style-Based Generator Architecture for Generative Adversarial Networks ), CVPR 2019에 소개되었으며 추후 다양한 후속 연구 및 생성 모델 연구에 큰 기여를 한 논문입니다. ProGAN 혹은 PGGAN으로 불리는 논문&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;hyoseok-personality.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>용어 정리</category>
      <author>duckracoon5z</author>
      <guid isPermaLink="true">https://duckracoon5z.tistory.com/25</guid>
      <comments>https://duckracoon5z.tistory.com/25#entry25comment</comments>
      <pubDate>Wed, 20 Aug 2025 17:17:55 +0900</pubDate>
    </item>
    <item>
      <title>GAN 시리즈 - BigGAN</title>
      <link>https://duckracoon5z.tistory.com/24</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;conditional GAN은 많은 발전을 해왔지만 SOTA 모델(SAGAN)조차 아직 실제 이미지(ImageNet)와 차이가 크며,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;실제 이미지의 Inception Score인 233에 비교해 SAGAN은 52.5의 Inception Score에 그친다.&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;&lt;span style=&quot;color: #000000;&quot;&gt;우선 BigGAN의 구조가 되는 SAGAN에 대해 설명한다.&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;1. SAGAN(Self-Attention GAN)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;SAGAN은 convolution을 self-attention으로 대체해 long-range dependency 모델링이 가능하도록 제안된 모델이다. 전통적인 GAN들은 낮은 해상도 feature map들 안 공간적인 지역 포인트만을 함수로 쓰는 고해상도 디테일을 생성한다. 그러나 SAGAN을 통해 모든 feature 지역들로부터 단서들을 사용해 디테일들이 생성된다. 따라서, Discriminator은 영상의 먼 부분에서 매우 자세한 feature들이 서로 일치하는지 확인할 수 있다.&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;&lt;span style=&quot;color: #000000;&quot;&gt;이전 대부분의 모델들은 다른 이미지 영역들에 걸쳐 의존성을 모델링하기 위해 convolution에 크게 의존한다. conv operator은 local receptive field를 가지고 있기 때문에 장기 의존성은 여러 conv layer들을 통과한 후에만 처리할 수 있다. 이는 다양한 이유로 장기 의존성에 대한 학습을 막을 수 있다. 작은 모델은 그것들을 표현하지 못할 수 있고, 최적화 알고리즘은 의존성을 포착하기 위해 여러 layer들을 조심스럽게 조정하는 파라미터 값들을 발견하는데 어려움을 겪을 수 있고, 이 파라미터화들은 통계적으로 불안정하고 이전에 보지못한 입력에 대해서 적용할 때 실패하는 경향이 있다. conv kernal 크기를 증가시키는 것은 네트워크 표현 용량을 증가시킬 수 있지만 그렇게 함으로써 지역적 conv 구조를 사용함으로써 얻은 계산 및 통계적 효율성을 잃을 수 있다. 그에 반해 Self-attention은 장기의존성 모델의 능력과 계산 및 통계 효율 사이에서 더 나은 균형을 보여준다. Self-attention 모듈은 weight 또는 attention 벡터들이 작은 계산 비용으로 계산되는 모든 위치에서 feature들의 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;881&quot; data-origin-height=&quot;322&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CwK1n/btsPUSSFL1v/kILrfkgWJgrYhzERCqOXlK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CwK1n/btsPUSSFL1v/kILrfkgWJgrYhzERCqOXlK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CwK1n/btsPUSSFL1v/kILrfkgWJgrYhzERCqOXlK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCwK1n%2FbtsPUSSFL1v%2FkILrfkgWJgrYhzERCqOXlK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;748&quot; height=&quot;273&quot; data-origin-width=&quot;881&quot; data-origin-height=&quot;322&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;color: #000000;&quot;&gt; &lt;span style=&quot;text-align: start;&quot;&gt;convolution layer를 통과한 feature map(&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;x&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;x&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;)를 입력으로 받아 key에 해당하는&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;f&amp;lt;/mi&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;(&amp;lt;/mo&amp;gt;&amp;lt;mi&amp;gt;x&amp;lt;/mi&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;)&amp;lt;/mo&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;f&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;x&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;, query에 해당하는&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;g&amp;lt;/mi&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;(&amp;lt;/mo&amp;gt;&amp;lt;mi&amp;gt;x&amp;lt;/mi&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;)&amp;lt;/mo&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;g&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;x&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;와 value에 해당하는&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;h&amp;lt;/mi&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;(&amp;lt;/mo&amp;gt;&amp;lt;mi&amp;gt;x&amp;lt;/mi&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;)&amp;lt;/mo&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;h&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;x&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;를 각각 입력 값&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;x&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;x&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;에 kernel_size=1인 1x1 convolution으로 계산한다. &lt;span style=&quot;text-align: start;&quot;&gt;attention map은 픽셀 간의 관계를 나타내는데, 수식의&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;msub&amp;gt;&amp;lt;mi&amp;gt;&amp;amp;#x03B2;&amp;lt;/mi&amp;gt;&amp;lt;mrow class=&amp;quot;MJX-TeXAtom-ORD&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;j&amp;lt;/mi&amp;gt;&amp;lt;mo&amp;gt;,&amp;lt;/mo&amp;gt;&amp;lt;mi&amp;gt;i&amp;lt;/mi&amp;gt;&amp;lt;/mrow&amp;gt;&amp;lt;/msub&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;beta;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;j&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&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 style=&quot;text-align: start;&quot;&gt;는&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;j&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;j&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;번째 영역을 합성 할 때 모델이&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;i&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;i&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&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;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;477&quot; data-origin-height=&quot;617&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgdNaI/btsPWXMtfgc/s6kr4gdUiVaaqzJQevU4nk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgdNaI/btsPWXMtfgc/s6kr4gdUiVaaqzJQevU4nk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgdNaI/btsPWXMtfgc/s6kr4gdUiVaaqzJQevU4nk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgdNaI%2FbtsPWXMtfgc%2Fs6kr4gdUiVaaqzJQevU4nk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;617&quot; data-origin-width=&quot;477&quot; data-origin-height=&quot;617&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;&quot;&gt;Image feature들은 두 개의 feature space f와 g로 attention이 계산된다. 그 후 beta를 통해 softmax로 값을 구함으로써 attention map을 구성한다. 그 후 또 다른 feature space h간의 곱을 통해 self-attention feature map을 구성한다. attention layer의 결과를 scale parameter와 곱하고 input feature map을 더하였다.&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;369&quot; data-origin-height=&quot;47&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cPjg3q/btsPUP2MqxU/q4OkGUyLP7RnCL3rBYJha0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cPjg3q/btsPUP2MqxU/q4OkGUyLP7RnCL3rBYJha0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cPjg3q/btsPUP2MqxU/q4OkGUyLP7RnCL3rBYJha0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcPjg3q%2FbtsPUP2MqxU%2Fq4OkGUyLP7RnCL3rBYJha0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;369&quot; height=&quot;47&quot; data-origin-width=&quot;369&quot; data-origin-height=&quot;47&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;color: #000000;&quot;&gt; &lt;span style=&quot;text-align: start;&quot;&gt;최종 결과는 계산한 self-attention feature map인&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;o&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;o&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;와 입력 값&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;x&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;x&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;를 더해 출력한다. 이때 학습 가능한 스칼라 값으로 0으로 초기화된&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;&amp;amp;#x03B3;&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;gamma;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;를&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;o&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;o&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;에 곱해 self-attention feature map의 크기를 계산하는데, 논문에서는 학습 가능한&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;&amp;amp;#x03B3;&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;gamma;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;를 사용함으로써 네트워크가 처음에는 local 주변의 신호에 의존하다 점차 학습이 진행되며 non-local 신호에 더 많은 가중치를 부여하는 방법을 학습할 수 있다고 한다. 논문에서&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;&amp;amp;#x03B3;&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;gamma;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;를 0으로 초기화한 것에 대해서는 직관으로 쉬운 일을 먼저 학습하고 복잡성을 점진적으로 증가시켜 학습하기를 원했기 때문이라고 설명한다.&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;size18&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;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;870&quot; data-origin-height=&quot;731&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kESKr/btsPXZjaMI4/1fkohy7sKF65k9dea4K4g1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kESKr/btsPXZjaMI4/1fkohy7sKF65k9dea4K4g1/img.png&quot; data-alt=&quot;SVM hyperplane을 사용한 Geometric GAN. 판별 모델 : 빨간 화살표의 방향 / 생성 모델 : 파란 화살표의 방향 업데이트&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kESKr/btsPXZjaMI4/1fkohy7sKF65k9dea4K4g1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkESKr%2FbtsPXZjaMI4%2F1fkohy7sKF65k9dea4K4g1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;560&quot; data-origin-width=&quot;870&quot; data-origin-height=&quot;731&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SVM hyperplane을 사용한 Geometric 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;620&quot; data-origin-height=&quot;122&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oGyjz/btsPWrNCuTf/WlKUEEg8LBmsoA5pya2g91/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oGyjz/btsPWrNCuTf/WlKUEEg8LBmsoA5pya2g91/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oGyjz/btsPWrNCuTf/WlKUEEg8LBmsoA5pya2g91/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoGyjz%2FbtsPWrNCuTf%2FWlKUEEg8LBmsoA5pya2g91%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;620&quot; height=&quot;122&quot; data-origin-width=&quot;620&quot; data-origin-height=&quot;122&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;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;위의 수식이 SAGAN에서 사용하는 adversarial hinge loss다. 판별 모델 &lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;D&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;D&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;의 경우&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;(&amp;lt;/mo&amp;gt;&amp;lt;mi&amp;gt;x&amp;lt;/mi&amp;gt;&amp;lt;mo&amp;gt;,&amp;lt;/mo&amp;gt;&amp;lt;mi&amp;gt;y&amp;lt;/mi&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;)&amp;lt;/mo&amp;gt;&amp;lt;mtext&amp;gt;&amp;amp;#xA0;&amp;lt;/mtext&amp;gt;&amp;lt;msub&amp;gt;&amp;lt;mi&amp;gt;p&amp;lt;/mi&amp;gt;&amp;lt;mrow class=&amp;quot;MJX-TeXAtom-ORD&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;d&amp;lt;/mi&amp;gt;&amp;lt;mi&amp;gt;a&amp;lt;/mi&amp;gt;&amp;lt;mi&amp;gt;t&amp;lt;/mi&amp;gt;&amp;lt;mi&amp;gt;a&amp;lt;/mi&amp;gt;&amp;lt;/mrow&amp;gt;&amp;lt;/msub&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;x&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;y&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;p&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;d&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;a&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;t&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;a&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;인 실제 데이터&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;(&amp;lt;/mo&amp;gt;&amp;lt;mi&amp;gt;x&amp;lt;/mi&amp;gt;&amp;lt;mo&amp;gt;,&amp;lt;/mo&amp;gt;&amp;lt;mi&amp;gt;y&amp;lt;/mi&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;)&amp;lt;/mo&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;x&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;y&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;를 입력으로 받는다면&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;D&amp;lt;/mi&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;(&amp;lt;/mo&amp;gt;&amp;lt;mi&amp;gt;x&amp;lt;/mi&amp;gt;&amp;lt;mo&amp;gt;,&amp;lt;/mo&amp;gt;&amp;lt;mi&amp;gt;y&amp;lt;/mi&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;)&amp;lt;/mo&amp;gt;&amp;lt;mo&amp;gt;&amp;amp;lt;&amp;lt;/mo&amp;gt;&amp;lt;mn&amp;gt;1&amp;lt;/mn&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;D&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;x&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;y&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;인 경우 1 이상의 값을, 생성 모델이 생성한&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;G&amp;lt;/mi&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;(&amp;lt;/mo&amp;gt;&amp;lt;mi&amp;gt;z&amp;lt;/mi&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;)&amp;lt;/mo&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;G&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;z&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;를 입력으로 받는다면&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;D&amp;lt;/mi&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;(&amp;lt;/mo&amp;gt;&amp;lt;mi&amp;gt;G&amp;lt;/mi&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;(&amp;lt;/mo&amp;gt;&amp;lt;mi&amp;gt;z&amp;lt;/mi&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;)&amp;lt;/mo&amp;gt;&amp;lt;mo&amp;gt;,&amp;lt;/mo&amp;gt;&amp;lt;mi&amp;gt;y&amp;lt;/mi&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;)&amp;lt;/mo&amp;gt;&amp;lt;mo&amp;gt;&amp;amp;gt;&amp;lt;/mo&amp;gt;&amp;lt;mo&amp;gt;&amp;amp;#x2212;&amp;lt;/mo&amp;gt;&amp;lt;mn&amp;gt;1&amp;lt;/mn&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;D&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;G&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;z&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;y&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;minus;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;인 경우 출력으로 -1 이하의 값을 만들어 판별값의 절대값이 커지도록(hyperplane에서 멀어지도록) 업데이트하는 것이 목표다. 반대로 생성 모델 &lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;G&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;G&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;는&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;G&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;G&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;가 생성한 이미지&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;G&amp;lt;/mi&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;(&amp;lt;/mo&amp;gt;&amp;lt;mi&amp;gt;z&amp;lt;/mi&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;)&amp;lt;/mo&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;G&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;z&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;를&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;D&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;D&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;에게 입력으로 준 결과가 hyperplane에 가까워지도록 만드는 것이 이상적이다.&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;size18&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Stabilize&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;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;- Spectral Normalization&lt;/b&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;각 layer의 spectral norm을을 특정 상수로 제한하는 것으로 판별 모델의 Lipschitz 상수를 제한하는 방법으로 모든 가중치 레이어의 spectral norm은 1로 설정하는 것이 지속적으로 잘 수행되기 때문에 다른 normalization 방법과 비교해 추가적인 hyperparameter 튜닝을 필요로 하지 않는다 한다. 또한 계산 비용이 적은 것이 장점이다.&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; SAGAN은 생성 모델에도 Spectral normalization을 적용하는 것으로 생성 모델의 파라미터 크기의 상승을 방지하고 비정상적인 gradient를 피할 수 있어 Spectral normalization을 생성 모델과 판별 모델 모두에 적용한다. 이후 생성 모델과 판별 모델 모두의 Spectral normalization이 안정적인 학습을 보여줄 뿐만 아니라 생성 모델 업데이트 당 판별 모델 업데이트 수를 더 적게 만드는 것이 가능해 학습에 대한 계산 비용을 크게 감소시킨다는 것을 발견했다. SAGAN은 판별모델의 learning rate는 0.0004로, 생성 모델의 learning rate는 0.0001을 사용해 판별 모델과 생성 모델 업데이트 비율을 1: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;&lt;span style=&quot;text-align: start;&quot;&gt;-TTUR&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;color: #000000;&quot;&gt; &lt;span style=&quot;text-align: start;&quot;&gt;Two Time-Scale Update Rule(TTUR)은&lt;/span&gt; &lt;span style=&quot;text-align: start;&quot;&gt;생성 모델과 판별 모델에 별도의 learning rate를 사용하는 방법이다. 판별 모델 학습 : 생성 모델 학습 = 5 : 1과 같이 판별 모델의 느린 학습 문제를 보완하기 위해 SAGAN에서는 TTUR을 사용했다. TTUR을 사용해 판별 모델 학습 : 생성 모델 학습 = 1 : 1로 학습이 가능하며 판별 모델의 학습 step 수를 더 적게 사용하므로 동일한 시간에서 더 나은 결과를 얻고자 했다.&lt;/span&gt; &lt;/span&gt;&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;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;2. BigGAN&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;BigGAN이란 이름에서도 Big을 쓰는만큼 나타내는 것처럼 BigGAN은 기존 GAN의 파라미터의 2~4배의 파라미터를 가지고 있으며 batchsize를 8배 이상 키운 것이 특징이다. BigGAN은 GAN에서 생성된 이미지들과 실제 이미지인 ImageNet 간의 fidelity(품질), variety(다양성) 격차를 줄인다는 목표를 가진다. 다음은 BigGAN이 사용한 구조와 결정들이다.&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;- hinge loss를 adversarial loss로 사용한 SAGAN 구조 사용&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;- class 정도 conditioning을 위해 Shared embedding을 사용&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;- Exponential Weight Average를 G에 적용&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;- orthogonal Initialization/Regularization을 사용&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;text-align: start;&quot;&gt;SAGAN과 마찬가지로 adversarial loss로 hinge loss를 사용하며&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;G&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;G&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;와&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;D&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;D&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&amp;nbsp;모두에 Spectral Normalization을 사용한다. SAGAN에서는 G와 D의 학습 step 수를 1:1로 설정해 동일한 시간에서 더 나은 결과를 얻고자 한 것이 특징이지만 BigGAN에서는&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;G&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;G&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;와&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;D&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;D&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&amp;nbsp;학습 step 수를 1:2로 수정한 것을 사용한다.&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-origin-width=&quot;1166&quot; data-origin-height=&quot;548&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NvHZj/btsPWo4HnYV/VmVKV4vLHQQFteCdcl6t7K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NvHZj/btsPWo4HnYV/VmVKV4vLHQQFteCdcl6t7K/img.png&quot; data-alt=&quot;(a) BigGAN의&amp;amp;nbsp; G 의 대표적인 구조 (b) BigGAN의&amp;amp;nbsp; G 에 사용되는 Residual Block (c) BigGAN의&amp;amp;nbsp; D 에 사용되는 Residual Block&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NvHZj/btsPWo4HnYV/VmVKV4vLHQQFteCdcl6t7K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNvHZj%2FbtsPWo4HnYV%2FVmVKV4vLHQQFteCdcl6t7K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1166&quot; height=&quot;548&quot; data-origin-width=&quot;1166&quot; data-origin-height=&quot;548&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;(a) BigGAN의&amp;nbsp; G 의 대표적인 구조 (b) BigGAN의&amp;nbsp; G 에 사용되는 Residual Block (c) BigGAN의&amp;nbsp; D 에 사용되는 Residual Block&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 style=&quot;background-color: #ffffff; color: #454545; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;BigGAN은 class 정보를&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;G&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;G&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;와&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;D&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;D&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;에 제공하기 위해&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;G&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;G&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;에는 Shared embedding, hierarchical latent space를 사용하고&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;D&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;D&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;에는 Projection Discriminator를 사용한다. &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #454545; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #454545; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;G&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;G&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;에는 single shared class embedding으로 Conditional Batch Normliazation(CBN)과 skip connection(skip-z)를 사용한다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #454545; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #454545; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;z&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;z&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;는 모델 입력에서 한번만 쓰이는게 일반적이지만 BigGAN은 Residual Block마다 class 정보와 함께 입력되며 (a)와 (b)에서 구조를 확인할 수 있다. latent vector&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;z&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;z&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;가 channel 차원에 따라 동일한 크기로 분할되고 각 분할된&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;z&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;z&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;는 shared class embedding인 CBN과 연결되어 residual block에 conditioning vector로 전달된다. 이&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;z&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;z&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;가 여러 층에 전달되기에 이를 hierarchical latent space라 하고 skip connection처럼 layer를 뛰어넘어 concat되는&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;z&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;z&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;를 skip-z라고 한다. skip-z 사용으로 약 4% 성능 향상과 함께 학습 속도 또한 18% 향상시켰다고 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #454545; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #454545; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;D&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;D&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;는 Projection Discriminator 방식을 사용한다. Residual Block과 Scalar function을 사용해 class 정보를 사용하는 것이 특징이다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #454545; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #454545; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Shared embedding &amp;amp; CBN - G&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;1774&quot; data-origin-height=&quot;710&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oc68J/btsPW1uJVyF/8tOsNTjnE6Y2d4PKpNb1pk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oc68J/btsPW1uJVyF/8tOsNTjnE6Y2d4PKpNb1pk/img.png&quot; data-alt=&quot;왼 : batch normalization / 오 : conditioanl batch normalization&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oc68J/btsPW1uJVyF/8tOsNTjnE6Y2d4PKpNb1pk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Foc68J%2FbtsPW1uJVyF%2F8tOsNTjnE6Y2d4PKpNb1pk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;548&quot; height=&quot;219&quot; data-origin-width=&quot;1774&quot; data-origin-height=&quot;710&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;왼 : batch normalization / 오 : conditioanl batch normalization&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;CBN은 기존의 Batch Normalization의 learnable parameter인&lt;span style=&quot;text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;&amp;amp;#x03B3;&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;gamma;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;&amp;amp;#x03B2;&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;beta;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;에 class 정보가 영향을 미칠 수 있도록 해 conditional 정보를 BN에 주는 방법이다. 주고자 하는 condition에 해당하는&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;msub&amp;gt;&amp;lt;mi&amp;gt;e&amp;lt;/mi&amp;gt;&amp;lt;mi&amp;gt;q&amp;lt;/mi&amp;gt;&amp;lt;/msub&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;e&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;q&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;text-align: start;&quot;&gt;를 MLP layer에 통과시켜 channel 수 마다 2개의 값&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi mathvariant=&amp;quot;normal&amp;quot;&amp;gt;&amp;amp;#x0394;&amp;lt;/mi&amp;gt;&amp;lt;mi&amp;gt;&amp;amp;#x03B2;&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;Delta;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;beta;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;와&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi mathvariant=&amp;quot;normal&amp;quot;&amp;gt;&amp;amp;#x0394;&amp;lt;/mi&amp;gt;&amp;lt;mi&amp;gt;&amp;amp;#x03B3;&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;Delta;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;gamma;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;를 계산한다. &lt;span style=&quot;text-align: start;&quot;&gt;이후 Batch Normalization의&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;&amp;amp;#x03B2;&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;beta;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;&amp;amp;#x03B3;&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;gamma;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;에 계산된 값을 더한&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mrow class=&amp;quot;MJX-TeXAtom-ORD&amp;quot;&amp;gt;&amp;lt;mover&amp;gt;&amp;lt;msub&amp;gt;&amp;lt;mi&amp;gt;&amp;amp;#x03B2;&amp;lt;/mi&amp;gt;&amp;lt;mi&amp;gt;c&amp;lt;/mi&amp;gt;&amp;lt;/msub&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;&amp;amp;#x005E;&amp;lt;/mo&amp;gt;&amp;lt;/mover&amp;gt;&amp;lt;/mrow&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;^&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;beta;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;c&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;와&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mrow class=&amp;quot;MJX-TeXAtom-ORD&amp;quot;&amp;gt;&amp;lt;mover&amp;gt;&amp;lt;msub&amp;gt;&amp;lt;mi&amp;gt;&amp;amp;#x03B3;&amp;lt;/mi&amp;gt;&amp;lt;mi&amp;gt;c&amp;lt;/mi&amp;gt;&amp;lt;/msub&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;&amp;amp;#x005E;&amp;lt;/mo&amp;gt;&amp;lt;/mover&amp;gt;&amp;lt;/mrow&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;^&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;gamma;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;c&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;를 Conditional Batch Normalization으로 사용한다.&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;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;b&gt;Projection - D&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1838&quot; data-origin-height=&quot;826&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/C28ig/btsPWX7gPnX/GvqefBnEuPEJkPieY3fWFk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/C28ig/btsPWX7gPnX/GvqefBnEuPEJkPieY3fWFk/img.png&quot; data-alt=&quot;(d) BigGAN Projection Discriminator&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/C28ig/btsPWX7gPnX/GvqefBnEuPEJkPieY3fWFk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FC28ig%2FbtsPWX7gPnX%2FGvqefBnEuPEJkPieY3fWFk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;762&quot; height=&quot;342&quot; data-origin-width=&quot;1838&quot; data-origin-height=&quot;826&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;(d) BigGAN Projection Discriminator&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;796&quot; data-origin-height=&quot;65&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pSSWx/btsPXUaQYCo/kB8AuFtp2aw1UbY1uVfWO1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pSSWx/btsPXUaQYCo/kB8AuFtp2aw1UbY1uVfWO1/img.png&quot; data-alt=&quot;(d) 수식&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pSSWx/btsPXUaQYCo/kB8AuFtp2aw1UbY1uVfWO1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpSSWx%2FbtsPXUaQYCo%2FkB8AuFtp2aw1UbY1uVfWO1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;57&quot; data-origin-width=&quot;796&quot; data-origin-height=&quot;65&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;(d) 수식&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #454545; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #454545; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;&amp;amp;#x03D5;&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;ϕ&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;는 BigGAN에서 Residual network를 사용하며&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;&amp;amp;#x03C8;&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;psi;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;은&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;&amp;amp;#x03D5;&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;ϕ&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;와 연결되는 scalar function으로 입력된 이미지가 진짜인지 가짜인지 판별하는 함수로 이미지 판별 결과 값 하나를 출력하기 때문에 scalar function이다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #454545; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #454545; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;수식으로는 복잡해 보이지만&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;&amp;amp;#x03C8;&amp;lt;/mi&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;(&amp;lt;/mo&amp;gt;&amp;lt;mi&amp;gt;&amp;amp;#x03D5;&amp;lt;/mi&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;(&amp;lt;/mo&amp;gt;&amp;lt;mi&amp;gt;x&amp;lt;/mi&amp;gt;&amp;lt;mo&amp;gt;;&amp;lt;/mo&amp;gt;&amp;lt;msub&amp;gt;&amp;lt;mi&amp;gt;&amp;amp;#x03B8;&amp;lt;/mi&amp;gt;&amp;lt;mrow class=&amp;quot;MJX-TeXAtom-ORD&amp;quot;&amp;gt;&amp;lt;mi mathvariant=&amp;quot;normal&amp;quot;&amp;gt;&amp;amp;#x03A6;&amp;lt;/mi&amp;gt;&amp;lt;/mrow&amp;gt;&amp;lt;/msub&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;)&amp;lt;/mo&amp;gt;&amp;lt;mo&amp;gt;;&amp;lt;/mo&amp;gt;&amp;lt;msub&amp;gt;&amp;lt;mi&amp;gt;&amp;amp;#x03B8;&amp;lt;/mi&amp;gt;&amp;lt;mrow class=&amp;quot;MJX-TeXAtom-ORD&amp;quot;&amp;gt;&amp;lt;mi mathvariant=&amp;quot;normal&amp;quot;&amp;gt;&amp;amp;#x03A8;&amp;lt;/mi&amp;gt;&amp;lt;/mrow&amp;gt;&amp;lt;/msub&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;)&amp;lt;/mo&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;psi;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;ϕ&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;x&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;theta;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;Phi;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;theta;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;Psi;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;는 Residual network&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;&amp;amp;#x03D5;&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;ϕ&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;에 이미지&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;x&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;x&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;를 입력하고 결과 값을 activation(scalar function)&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;&amp;amp;#x03C8;&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;psi;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;에 연결해 이미지가 진짜인지 가짜인지 판별하는 구조이다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #454545; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #454545; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;V&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;V&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;는&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;y&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;y&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;의 embedding matrix로&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;msup&amp;gt;&amp;lt;mi&amp;gt;y&amp;lt;/mi&amp;gt;&amp;lt;mi&amp;gt;T&amp;lt;/mi&amp;gt;&amp;lt;/msup&amp;gt;&amp;lt;mi&amp;gt;V&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;y&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;T&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;V&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;가 Figure의 (d)에서&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;y&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;y&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;가 입력되는 부분을 의미한다. Residual network&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;&amp;amp;#x03D5;&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;ϕ&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;에&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;x&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;x&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;가 입력되었을 때의 feature map이 두 갈래로 나뉘어 하나는 activation(scalar function)인&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;&amp;amp;#x03C8;&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;psi;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;로 입력되고 다른 한 갈래는 condition에 해당하는&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;y&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;y&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;의 embedding과 계산되어 이후 두 갈래로 나눠져 계산된 값들이 합쳐져 결과로 출력된다.&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;&quot;&gt;&lt;b&gt;EMA&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; &lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;G&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;G&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;의 weight에 moving average를 사용하는데,&lt;span style=&quot;text-align: start;&quot;&gt;&amp;nbsp;learning rate를 decay하도록 따로 설정하지는 않지만&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;G&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;G&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;의 출력을 시각화하기 위해 Exponential Weight Average(Exponential Moving Average)를 사용한다고 한다. &lt;span style=&quot;text-align: start;&quot;&gt;Exponential Weight Average는 지금까지 계산된 weight를 모두 사용해 weight를 업데이트하는 방법으로 가장 최신의 weight의 가중치를 더 크게 반영하고 오래된 weight의 영향을 감소시키기 위해 이전의 weight들은 iteration이 반복될 때마다 decay이 곱해져 축적된다. BigGAN에서는 decay 값으로 0.999가 사용되며 축적된 weight의 average 값이 가중치로 사용된다.&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;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt; &lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;Orthogonal&lt;span&gt; &lt;/span&gt;&lt;/span&gt;Initialization&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&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;color: #000000;&quot;&gt;신경망은 학습 초기에 가중치 분포가 잘 잡혀 있어야 gradient가 폭주/소실하지 않고 안정적으로 흐른다. 특히 BigGAN처럼 채널 수가 수천 단위인 대규모 네트워크에서는 작은 불안정이 쉽게 증폭된다. Orthogonal initinalized matrix의 고윳값은 하나이기 때문에 vanishing gradient를 방지하는데 도움을 준다. 따라서 가중치 행렬을 직교 행렬로 초기화 함으로서 입력을 변형하더라고 벡터의 norm(길이)을 크게 왜곡하지 않는다. 이로써 안정된 forward/backward 전달이 가능하다.&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;&quot;&gt;&lt;b&gt; &lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;Orthogonal&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;Regularization&lt;/span&gt;&lt;/span&gt;&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;color: #000000;&quot;&gt;초기에는 직교더라도, 학습하면서 W가 점점 비직교로 되며, 이는 중복된 feature 방향과 상관성을 증가시켜 표현력이 떨어지고 불안정함을 야기한다. 특히 GAN에서는 mode collapse로 이어질 위험이 있다. 따라서 Orthogonal Regularization을 통해 학습 중에도 가중치가 거의 직교를 유지하도록 term을 추가한다. Orthogonal Regularization이란 overfitting에 의해 모델의 성능 저하를 예방하는 정규화 방법의 하나이다. BigGAN에서 직교 정규화 외에도, CNN의 학습효율을 향상시키는 방법 중 하나인 Skip connection도 사용된다.&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;668&quot; data-origin-height=&quot;172&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bvuRwI/btsPZemwaW2/1FaSIVD4SIYktI3j4Qivm0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bvuRwI/btsPZemwaW2/1FaSIVD4SIYktI3j4Qivm0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bvuRwI/btsPZemwaW2/1FaSIVD4SIYktI3j4Qivm0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbvuRwI%2FbtsPZemwaW2%2F1FaSIVD4SIYktI3j4Qivm0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;536&quot; height=&quot;138&quot; data-origin-width=&quot;668&quot; data-origin-height=&quot;172&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;color: #000000;&quot;&gt;W는 weight matrix이고 람다는 하이퍼파라미터로 weight를 orthogonal하게 제한하도록 orthogonal regularization이 제안되었으나, 직교 정규화는 singular valur에 상관 없이 모든 singular value를 1로 설정하기 때문에 spectrum 정보를 파괴하는 문제가 있다고 하여 BigGAN에서는 변형된 버전을 사용하였다.&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;404&quot; data-origin-height=&quot;79&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/z0Wj2/btsPYAQTv80/CVfSX6W2OLoEqhDpXGlgnk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/z0Wj2/btsPYAQTv80/CVfSX6W2OLoEqhDpXGlgnk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/z0Wj2/btsPYAQTv80/CVfSX6W2OLoEqhDpXGlgnk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fz0Wj2%2FbtsPYAQTv80%2FCVfSX6W2OLoEqhDpXGlgnk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;79&quot; data-origin-width=&quot;404&quot; data-origin-height=&quot;79&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;1은 모든 요소가 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;size18&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Truncated Trick&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; cGAN에서뿐아니라 GAN에서는 입력 노이즈는 N(0,1)부터 샘플링하지만, 이 샘플링한 값 중 Threshold를 넘는 것은 재샘플링하여 Threshold 안에 포함되도록한다. 즉, 정규분포에서 멀리 떨어진 극단적인 값을 가지는 z의 분포를 잘라 안정적인영역의 z만 쓰도록 제한하는 것을 Truncated Trick이라고한다. 따라서, Threshold가 작으면 작을수록(0에 근접) 노이즈의 분산은 좁게 된다. 그럼 이 Threshold의 값을 변경시켜가며 FID나 IS를 구하는 것이 될까? 그것에 대한 그림은 아래와 같다. 이것은 Threshold의 값을 변화시켜가면서 Generator의 출력을 보여주는 것이다. Threshold의 값은 2.0에서 0.004 사이로 변화하여, 오른쪽으로 갈수록 Threshold의 값이 작아지고 있다. Threshold의 값이 최고 작아질 때는 다양성이 손실되고, 최대화 될 때는 질이 떨어진다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;figure data-ke-mobilestyle=&quot;widthContent&quot; data-origin-height=&quot;279&quot; data-origin-width=&quot;1099&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dna/dv2QKI/btqDNmxdF6u/AAAAAAAAAAAAAAAAAAAAACzredqPELG8XAgxcsNGfXUwvOCvWpQ-6v7U3O9M0hvg/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&amp;amp;expires=1756652399&amp;amp;allow_ip=&amp;amp;allow_referer=&amp;amp;signature=2nuGwfkY7IKdVOgqHabMQDAVdkI%3D&quot; width=&quot;1008&quot; height=&quot;256&quot; data-phocus-index=&quot;2&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-origin-height=&quot;279&quot; data-origin-width=&quot;1099&quot; /&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;Threshold를 작게하면 IS와 FID가 크게 된다. 즉, 적당한 Threshold를 찾을 필요가 있다.(Thruncated Trick에서 Orthogonal Regularization을 할 필요가 있음)&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;1254&quot; data-origin-height=&quot;1156&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6Q9j8/btsPXxtxtyo/UDvLAdUZ8UBlcluHP6VNCK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6Q9j8/btsPXxtxtyo/UDvLAdUZ8UBlcluHP6VNCK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6Q9j8/btsPXxtxtyo/UDvLAdUZ8UBlcluHP6VNCK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6Q9j8%2FbtsPXxtxtyo%2FUDvLAdUZ8UBlcluHP6VNCK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;737&quot; height=&quot;679&quot; data-origin-width=&quot;1254&quot; data-origin-height=&quot;1156&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;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;참조&lt;/b&gt;&lt;/span&gt;&lt;/h3&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://engineer-mole.tistory.com/44&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://engineer-mole.tistory.com/44&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1755086425300&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[논문] GAN ; BigGAN (Large Scale GAN Training for High Fidelity Natural Image Synthesis)&quot; data-og-description=&quot;1. 도입 BigGAN는 512x512의 고해상도 조건이 있는 이미지 생성(예를 들어 ImageNet을 학습하여 ImageNet의 라벨을 입력 노이즈에 부수적으로 부여하여 그 라벨에 상당하는 이미지를 생성하는 작업)을 실&quot; data-og-host=&quot;engineer-mole.tistory.com&quot; data-og-source-url=&quot;https://engineer-mole.tistory.com/44&quot; data-og-url=&quot;https://engineer-mole.tistory.com/44&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/tdxBI/hyZuCsyvLW/9cvzwd8zLmPrUrpcGKy5gK/img.png?width=800&amp;amp;height=330&amp;amp;face=0_0_800_330,https://scrap.kakaocdn.net/dn/uzTMQ/hyZuBAqVv2/gLcMpuMrFLjLI7IeKyfSL0/img.png?width=800&amp;amp;height=330&amp;amp;face=0_0_800_330,https://scrap.kakaocdn.net/dn/ep8eYD/hyZuxSjntb/SEM4wlwRvtwlYPQTSynUb1/img.png?width=1254&amp;amp;height=1156&amp;amp;face=0_0_1254_1156&quot;&gt;&lt;a href=&quot;https://engineer-mole.tistory.com/44&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://engineer-mole.tistory.com/44&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/tdxBI/hyZuCsyvLW/9cvzwd8zLmPrUrpcGKy5gK/img.png?width=800&amp;amp;height=330&amp;amp;face=0_0_800_330,https://scrap.kakaocdn.net/dn/uzTMQ/hyZuBAqVv2/gLcMpuMrFLjLI7IeKyfSL0/img.png?width=800&amp;amp;height=330&amp;amp;face=0_0_800_330,https://scrap.kakaocdn.net/dn/ep8eYD/hyZuxSjntb/SEM4wlwRvtwlYPQTSynUb1/img.png?width=1254&amp;amp;height=1156&amp;amp;face=0_0_1254_1156');&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;[논문] GAN ; BigGAN (Large Scale GAN Training for High Fidelity Natural Image Synthesis)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;1. 도입 BigGAN는 512x512의 고해상도 조건이 있는 이미지 생성(예를 들어 ImageNet을 학습하여 ImageNet의 라벨을 입력 노이즈에 부수적으로 부여하여 그 라벨에 상당하는 이미지를 생성하는 작업)을 실&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;engineer-mole.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&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://solee328.github.io/gan/2023/09/27/sagan_paper.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://solee328.github.io/gan/2023/09/27/sagan_paper.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1755483016174&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;SAGAN - 논문 리뷰&quot; data-og-description=&quot;이번 논문은 self-attention을 Generative model에 적용한 SAGAN(Self-Attention Generative Adversarial Network)입니다. 사실 BIGGAN 논문을 보다 해당 논문이 SAGAN 모델을 바탕으로 한 걸 알게 되어서 SAGAN를 먼저 하게 되&quot; data-og-host=&quot;solee328.github.io&quot; data-og-source-url=&quot;https://solee328.github.io/gan/2023/09/27/sagan_paper.html&quot; data-og-url=&quot;https://solee328.github.io/gan/2023/09/27/sagan_paper.html&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/eWQmI/hyZymo3BMw/UKKbhHcpCcHrY7mBLg3EUK/img.png?width=1102&amp;amp;height=1073&amp;amp;face=0_0_1102_1073,https://scrap.kakaocdn.net/dn/bHAwuv/hyZyd6MWmx/VSbY17Y9OSf6KWLHjsVso1/img.png?width=1470&amp;amp;height=892&amp;amp;face=0_0_1470_892,https://scrap.kakaocdn.net/dn/iNrJM/hyZyspi1rq/DVLuWzKqEowQkWu4uKY6hk/img.png?width=3848&amp;amp;height=2312&amp;amp;face=0_0_3848_2312&quot;&gt;&lt;a href=&quot;https://solee328.github.io/gan/2023/09/27/sagan_paper.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://solee328.github.io/gan/2023/09/27/sagan_paper.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/eWQmI/hyZymo3BMw/UKKbhHcpCcHrY7mBLg3EUK/img.png?width=1102&amp;amp;height=1073&amp;amp;face=0_0_1102_1073,https://scrap.kakaocdn.net/dn/bHAwuv/hyZyd6MWmx/VSbY17Y9OSf6KWLHjsVso1/img.png?width=1470&amp;amp;height=892&amp;amp;face=0_0_1470_892,https://scrap.kakaocdn.net/dn/iNrJM/hyZyspi1rq/DVLuWzKqEowQkWu4uKY6hk/img.png?width=3848&amp;amp;height=2312&amp;amp;face=0_0_3848_2312');&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;SAGAN - 논문 리뷰&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;이번 논문은 self-attention을 Generative model에 적용한 SAGAN(Self-Attention Generative Adversarial Network)입니다. 사실 BIGGAN 논문을 보다 해당 논문이 SAGAN 모델을 바탕으로 한 걸 알게 되어서 SAGAN를 먼저 하게 되&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;solee328.github.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&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://aigong.tistory.com/150&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://aigong.tistory.com/150&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1755523694999&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;SAGAN 논문 Full Reading - Self-Attention Generative Adversarial Networks&quot; data-og-description=&quot;SAGAN 논문 Full Reading - Self-Attention Generative Adversarial Networks 저자 : Han Zhang, Ian Goodfellow, Dimitris Metaxas, and Augustus Odena. Self-attention generative adversarial networks. https://arxiv.org/abs/1805.08318 2020.12.20일 기준 citat&quot; data-og-host=&quot;aigong.tistory.com&quot; data-og-source-url=&quot;https://aigong.tistory.com/150&quot; data-og-url=&quot;https://aigong.tistory.com/150&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/e0slH/hyZyedEWod/a8aJHeJgomjq3cJuYPUxk0/img.png?width=800&amp;amp;height=293&amp;amp;face=0_0_800_293,https://scrap.kakaocdn.net/dn/BXvSb/hyZzJc6ACf/ru0V6Wre99tuveIISJ6iWk/img.png?width=800&amp;amp;height=293&amp;amp;face=0_0_800_293,https://scrap.kakaocdn.net/dn/bifu5c/hyZyd6U9O1/vlOFzdkG9ic9ZW7sBXbWe1/img.png?width=860&amp;amp;height=896&amp;amp;face=0_0_860_896&quot;&gt;&lt;a href=&quot;https://aigong.tistory.com/150&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://aigong.tistory.com/150&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/e0slH/hyZyedEWod/a8aJHeJgomjq3cJuYPUxk0/img.png?width=800&amp;amp;height=293&amp;amp;face=0_0_800_293,https://scrap.kakaocdn.net/dn/BXvSb/hyZzJc6ACf/ru0V6Wre99tuveIISJ6iWk/img.png?width=800&amp;amp;height=293&amp;amp;face=0_0_800_293,https://scrap.kakaocdn.net/dn/bifu5c/hyZyd6U9O1/vlOFzdkG9ic9ZW7sBXbWe1/img.png?width=860&amp;amp;height=896&amp;amp;face=0_0_860_896');&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;SAGAN 논문 Full Reading - Self-Attention Generative Adversarial Networks&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;SAGAN 논문 Full Reading - Self-Attention Generative Adversarial Networks 저자 : Han Zhang, Ian Goodfellow, Dimitris Metaxas, and Augustus Odena. Self-attention generative adversarial networks. https://arxiv.org/abs/1805.08318 2020.12.20일 기준 citat&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;aigong.tistory.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;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://solee328.github.io/gan/2023/11/03/biggan_paper.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://solee328.github.io/gan/2023/11/03/biggan_paper.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1755525472282&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;BigGAN - 논문 리뷰&quot; data-og-description=&quot;이번 논문은 Large Scale GAN Training for High Fidelity Natural Image Synthesis로 BigGAN이라 불리는 논문입니다.&quot; data-og-host=&quot;solee328.github.io&quot; data-og-source-url=&quot;https://solee328.github.io/gan/2023/11/03/biggan_paper.html&quot; data-og-url=&quot;https://solee328.github.io/gan/2023/11/03/biggan_paper.html&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/MX4sH/hyZC3VOWQ5/DhJkKs2V4pnWZJrTpR51IK/img.png?width=1166&amp;amp;height=548&amp;amp;face=0_0_1166_548,https://scrap.kakaocdn.net/dn/jzG7b/hyZysCYowC/PptWWOjNk4oRGIIYCD74R1/img.png?width=1838&amp;amp;height=826&amp;amp;face=0_0_1838_826,https://scrap.kakaocdn.net/dn/sQYvo/hyZymJu8kE/gjoKMqXQGJguMUdxC0KEYk/img.png?width=1601&amp;amp;height=412&amp;amp;face=0_0_1601_412&quot;&gt;&lt;a href=&quot;https://solee328.github.io/gan/2023/11/03/biggan_paper.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://solee328.github.io/gan/2023/11/03/biggan_paper.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/MX4sH/hyZC3VOWQ5/DhJkKs2V4pnWZJrTpR51IK/img.png?width=1166&amp;amp;height=548&amp;amp;face=0_0_1166_548,https://scrap.kakaocdn.net/dn/jzG7b/hyZysCYowC/PptWWOjNk4oRGIIYCD74R1/img.png?width=1838&amp;amp;height=826&amp;amp;face=0_0_1838_826,https://scrap.kakaocdn.net/dn/sQYvo/hyZymJu8kE/gjoKMqXQGJguMUdxC0KEYk/img.png?width=1601&amp;amp;height=412&amp;amp;face=0_0_1601_412');&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;BigGAN - 논문 리뷰&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;이번 논문은 Large Scale GAN Training for High Fidelity Natural Image Synthesis로 BigGAN이라 불리는 논문입니다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;solee328.github.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>용어 정리</category>
      <author>duckracoon5z</author>
      <guid isPermaLink="true">https://duckracoon5z.tistory.com/24</guid>
      <comments>https://duckracoon5z.tistory.com/24#entry24comment</comments>
      <pubDate>Tue, 19 Aug 2025 16:03:55 +0900</pubDate>
    </item>
    <item>
      <title>GAN 시리즈 - PGGAN</title>
      <link>https://duckracoon5z.tistory.com/23</link>
      <description>&lt;h3 style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;1. PGGAN(Progressive Growing of GAN)&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PGGAN은 고해상도의 이미지를 생성하기 위해 제안된 획기적인 기술이다. 이미지를 해상도 별로 학습시켜 비교적 고해상도에서도 안정적인 학습이 가능하다. 왜 Progressive하게 학습시킬까? 일반 GAN을 곧장 고해상도로 학습하면 Discriminator은 초반부터 세밀한 픽셀 잡음까지 구분하려고 해서 학습이 불안정 해지며, Generator은 전역 구조를 배우기도 전에 세부 노이즈에 과적합이 된다. 따라서 PGGAN를 통해 먼저 큰 모양부터 질감의 순서로 배우게 하여 안정화와 성능을 동시에 얻는다.&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;1280&quot; data-origin-height=&quot;808&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/59DS1/btsPQtlgQfZ/bZMBp9QRxZ2VECziG3hsuk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/59DS1/btsPQtlgQfZ/bZMBp9QRxZ2VECziG3hsuk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/59DS1/btsPQtlgQfZ/bZMBp9QRxZ2VECziG3hsuk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F59DS1%2FbtsPQtlgQfZ%2FbZMBp9QRxZ2VECziG3hsuk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;744&quot; height=&quot;470&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;808&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;PGGAN에는 크게 4가지 아이디어가 있다,&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;1. Progressive Growing :&lt;/b&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;b&gt;2. Pixel Norm :&lt;/b&gt; 기존에 많이 쓰이는 BatchNorm과는 달리 픽셀 별로 정규화 작업을 수행&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;b&gt;3. Equalized Learning Rate :&lt;/b&gt; 가중치를 2/입력개수 로 나누어 모든 가중치가 동일한 속도로 학습될 수 있도록 함&lt;/span&gt;&lt;span style=&quot;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;b&gt;4. Minibatch Std :&lt;/b&gt; Discriminator의 마지막 블록에 해당 레이어를 추가하여 모드 붕괴 현상을 완화&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;1271&quot; data-origin-height=&quot;835&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ws3Zx/btsPSphQxXX/ZPmZzsLPMwiRKcxKK9zMDK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ws3Zx/btsPSphQxXX/ZPmZzsLPMwiRKcxKK9zMDK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ws3Zx/btsPSphQxXX/ZPmZzsLPMwiRKcxKK9zMDK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fws3Zx%2FbtsPSphQxXX%2FZPmZzsLPMwiRKcxKK9zMDK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;776&quot; height=&quot;510&quot; data-origin-width=&quot;1271&quot; data-origin-height=&quot;835&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;- toRGB : 특징 벡터를 RGB 색상으로 투영하는 레이어(1X1 컨볼루션 레이어)&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;- fromRGB : toRGB의 반대&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333; text-align: start;&quot;&gt;(1X1 컨볼루션 레이어)&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;저해상도에서 시작하여 새로운 layer을 조금씩 추가하고 고해상도의 이미지를 생성해 나가는 것이 PGGAN의 핵심이다.&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;&lt;span style=&quot;&quot;&gt;a)&amp;rarr;b)&lt;/span&gt;&lt;/b&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;16X16 해상도를 학습 후 32X32 레이어를 끼어넣을 때, 생성망이 만들어낸 16X16 이미지를 2배 업스케일링한 이미지와, 32X32 컨볼루션 레이어에서 새롭게 만들어낸 이미지와 합치게 된다. 해상도 전환 중에 두 해상도 사이를 보간하여 결합하게 되는데, 전이 구간에서는 0~1 사이의 값을 가지는 alpha값에 따라 (1-a) : a의 비율로 합쳐지게 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;&quot;&gt;판별망에서는 가장 가까운 이웃 필터링과 평균 풀링을 각각 사용하여 이미지 해상도를 절반으로 줄여서 실제 이미지와 비교하여 판별하게 된다. 점진적으로 학습이 진행됨에 따라 alpha 값은 선형적으로 0에서 1까지 도달하게 되고, c)처럼 되면서 32X32 레이어에서 생성하는 이미지를가지고 판별하게 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;&quot;&gt;이처럼&lt;b&gt; a &amp;rarr; b &amp;rarr; c &amp;rarr; b &amp;rarr; c ...&amp;nbsp;&lt;/b&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;896&quot; data-origin-height=&quot;506&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cTv8vy/btsPP2nSatu/iRz7SA3rWDfMrxrsqFyrIK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cTv8vy/btsPP2nSatu/iRz7SA3rWDfMrxrsqFyrIK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cTv8vy/btsPP2nSatu/iRz7SA3rWDfMrxrsqFyrIK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcTv8vy%2FbtsPP2nSatu%2FiRz7SA3rWDfMrxrsqFyrIK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;896&quot; height=&quot;506&quot; data-origin-width=&quot;896&quot; data-origin-height=&quot;506&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;877&quot; data-origin-height=&quot;636&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PeIWz/btsPR5cRvlt/AyrdgdRmPjKE8SKRkFY5k0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PeIWz/btsPR5cRvlt/AyrdgdRmPjKE8SKRkFY5k0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PeIWz/btsPR5cRvlt/AyrdgdRmPjKE8SKRkFY5k0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPeIWz%2FbtsPR5cRvlt%2FAyrdgdRmPjKE8SKRkFY5k0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;636&quot; data-origin-width=&quot;877&quot; data-origin-height=&quot;636&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 style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;참조&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://rgbitcode.com/blog/senspond/70&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://rgbitcode.com/blog/senspond/70&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1755083899463&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;GAN의 문제점과 PGGAN 논문 리뷰&quot; data-og-description=&quot;PGGAN이라는 논문을 읽고 공부한 내용을 정리해 본 글입니다.&quot; data-og-host=&quot;rgbitcode.com&quot; data-og-source-url=&quot;https://rgbitcode.com/blog/senspond/70&quot; data-og-url=&quot;https://rgbitcode.com/blog/senspond/70&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bh1qhU/hyZuBf61vc/rkN4IWieHkW919O3ffzik0/img.png?width=1271&amp;amp;height=835&amp;amp;face=0_0_1271_835&quot;&gt;&lt;a href=&quot;https://rgbitcode.com/blog/senspond/70&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://rgbitcode.com/blog/senspond/70&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bh1qhU/hyZuBf61vc/rkN4IWieHkW919O3ffzik0/img.png?width=1271&amp;amp;height=835&amp;amp;face=0_0_1271_835');&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;GAN의 문제점과 PGGAN 논문 리뷰&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;PGGAN이라는 논문을 읽고 공부한 내용을 정리해 본 글입니다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;rgbitcode.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;</description>
      <category>용어 정리</category>
      <author>duckracoon5z</author>
      <guid isPermaLink="true">https://duckracoon5z.tistory.com/23</guid>
      <comments>https://duckracoon5z.tistory.com/23#entry23comment</comments>
      <pubDate>Wed, 13 Aug 2025 20:18:46 +0900</pubDate>
    </item>
    <item>
      <title>GAN 시리즈 - CycleGAN</title>
      <link>https://duckracoon5z.tistory.com/22</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. CycleGAN&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;image to image translation이란&lt;span style=&quot;background-color: #ffffff; color: #24292f; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;이미지 데이터셋을 사용하여 input 이미지와 output 이미지를 mapping하는 것을 목표로 하는 생성 모델의 한 분야다. &lt;span style=&quot;background-color: #ffffff; color: #24292f; text-align: start;&quot;&gt;대표적 모델로 Pix-2-Pix, Cycle GAN, Style GAN 등이 있다. Pix-2-Pix가 처음 등장하였고 이후 Pix-2-Pix의 단점을 해결하기 위해 Cycle GAN이 등장하였다. 또한 &lt;span style=&quot;background-color: #ffffff; color: #24292f; text-align: start;&quot;&gt;Style GAN은 Cycle GAN을 베이스로 하여 개발되었다.&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;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #24292f; text-align: start;&quot;&gt;이해를 돕기 위해 간단하게 Pix-2-Pix에 대해 먼저 알아본다.&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #24292f; 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;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #24292f; text-align: start;&quot;&gt;1-1 &lt;/span&gt;Pix-2-Pix&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;583&quot; data-origin-height=&quot;200&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d3ArAl/btsPRqn0mHz/hD2NB8AMCSbQwhC1uBdCVK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d3ArAl/btsPRqn0mHz/hD2NB8AMCSbQwhC1uBdCVK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d3ArAl/btsPRqn0mHz/hD2NB8AMCSbQwhC1uBdCVK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd3ArAl%2FbtsPRqn0mHz%2FhD2NB8AMCSbQwhC1uBdCVK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;583&quot; height=&quot;200&quot; data-origin-width=&quot;583&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #555555; text-align: start;&quot;&gt;&amp;nbsp;Pix2Pix는 image를 image로 변환하도록 generator을 학습한다. 예를 들어, generator의 입력값으로 스케치 그림을 입력하면 완성된 그림이 나오도록 학습할 수 있다. 기존 GAN과 비교하여 설명하자면,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;Pix2Pix는 기존 GAN의 noise 대신에 스케치 그림을 입력하여 학습을 하는 것이다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Image-to-Image Translation은 보통 GAN의 변형 중 CGAN(Conditional GAN)을 기반으로 한다. 가령, 위 그림에서는 edge를 조건으로 받아 실제 이미지를 생성하고,&lt;span&gt;&amp;nbsp;&lt;/span&gt;판별자&lt;span&gt;&amp;nbsp;&lt;/span&gt;또한 이 edge와 생성 이미지를 받아 판별하면서 모델을 발전시키게 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;718&quot; data-origin-height=&quot;353&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cNUfif/btsPRlHlTfN/OnfluoK1ROvZjr6CyamAbK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cNUfif/btsPRlHlTfN/OnfluoK1ROvZjr6CyamAbK/img.png&quot; data-alt=&quot;CGAN&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cNUfif/btsPRlHlTfN/OnfluoK1ROvZjr6CyamAbK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcNUfif%2FbtsPRlHlTfN%2FOnfluoK1ROvZjr6CyamAbK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;482&quot; height=&quot;237&quot; data-origin-width=&quot;718&quot; data-origin-height=&quot;353&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;CGAN&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;CGAN의 손실 함수는 위와 같다. 최적의 Generator를 얻기 위해서는 L(G,D)를 최소화하는 방향으로, Discriminator은 최대화하는 방향으로 학습을 진행한다. 그러나 이 Loss를 단순히 사용하기 보다 L1, L2 Norm과 같은 traditional Loss를 추가해 사용한다면 조금 더 나은 이미지를 생성할 수 있다.&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;85&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NZH4x/btsPS6WdBqR/pNrxQbfZwXuD1FlHGz8xpK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NZH4x/btsPS6WdBqR/pNrxQbfZwXuD1FlHGz8xpK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NZH4x/btsPS6WdBqR/pNrxQbfZwXuD1FlHGz8xpK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNZH4x%2FbtsPS6WdBqR%2FpNrxQbfZwXuD1FlHGz8xpK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;85&quot; data-origin-width=&quot;344&quot; data-origin-height=&quot;85&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;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;위 식은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;G&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;에 관한 식이다. &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;즉, 판별자&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;D&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;에 대해서 사용하지는 않고, 단지 생성자&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;G&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;가 생성 이미지를 타겟 이미지와 가까워지게끔 추가한 LOSS이라 할 수 있다. L1 loss가 더 좋다고 판단하여 최종적인 loss를 아래와 같이 정의한다.&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;473&quot; data-origin-height=&quot;38&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ckSn1q/btsPP555XnW/oQksOFHqyCbAzzDsqhUGxk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ckSn1q/btsPP555XnW/oQksOFHqyCbAzzDsqhUGxk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ckSn1q/btsPP555XnW/oQksOFHqyCbAzzDsqhUGxk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FckSn1q%2FbtsPP555XnW%2FoQksOFHqyCbAzzDsqhUGxk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;473&quot; height=&quot;38&quot; data-origin-width=&quot;473&quot; data-origin-height=&quot;38&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;b&gt; &lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;pix2pix-&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;Generator&lt;/span&gt; &lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;pix2pix 연구에서&lt;span&gt;&amp;nbsp;&lt;/span&gt;Generator로는&lt;span&gt;&amp;nbsp;&lt;/span&gt;인코더-디코더 구조에&lt;span&gt;&amp;nbsp;&lt;/span&gt;스킵커넥션이 추가된&lt;span&gt;&amp;nbsp;&lt;/span&gt;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;587&quot; data-origin-height=&quot;318&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4utSW/btsPQtSOIhw/FKK0BKnRpyHeEL63W67uy0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4utSW/btsPQtSOIhw/FKK0BKnRpyHeEL63W67uy0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4utSW/btsPQtSOIhw/FKK0BKnRpyHeEL63W67uy0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4utSW%2FbtsPQtSOIhw%2FFKK0BKnRpyHeEL63W67uy0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;587&quot; height=&quot;318&quot; data-origin-width=&quot;587&quot; data-origin-height=&quot;318&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;즉, 인코더와 디코더가 대칭적으로 연결되어 있다. &lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;그래서 U-Net은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;skip connection&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;을 (대칭적으로) 추가해 이 경로를 통해 &lt;b&gt;얕은 layer&lt;/b&gt;&lt;span style=&quot;background-color: #f8f9fa; color: #212529; text-align: start;&quot;&gt;의 경우 조금 fine(local)한 정보를 담고 있고,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;깊은 layer&lt;/b&gt;&lt;span style=&quot;background-color: #f8f9fa; color: #212529; text-align: start;&quot;&gt;의 경우 corase(global)한 정보를 담게 된다&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;875&quot; data-origin-height=&quot;654&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/be7zzH/btsPSMKnXar/AKcSGVX1ao7m6qDifPBKL1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/be7zzH/btsPSMKnXar/AKcSGVX1ao7m6qDifPBKL1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/be7zzH/btsPSMKnXar/AKcSGVX1ao7m6qDifPBKL1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbe7zzH%2FbtsPSMKnXar%2FAKcSGVX1ao7m6qDifPBKL1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;372&quot; data-origin-width=&quot;875&quot; data-origin-height=&quot;654&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: #212529; text-align: start;&quot;&gt;이러한 구조를 통해 정보 손실을 낮추고, 기존의&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;Localization(details, fine)과 Context(semantic, global)&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;의&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;trade-off&lt;span style=&quot;background-color: #ffffff; color: #212529; 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 data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;pix2pix-Discriminator&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt; &lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;pix2pix2의 판별자로는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;PatchGAN&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&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;568&quot; data-origin-height=&quot;202&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzxvS6/btsPSSjxPje/juDkUg2krugGDH4kH7fa01/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzxvS6/btsPSSjxPje/juDkUg2krugGDH4kH7fa01/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzxvS6/btsPSSjxPje/juDkUg2krugGDH4kH7fa01/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzxvS6%2FbtsPSSjxPje%2FjuDkUg2krugGDH4kH7fa01%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;568&quot; height=&quot;202&quot; data-origin-width=&quot;568&quot; data-origin-height=&quot;202&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;ImageGAN&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;: 일반적인 GAN은&lt;span&gt;&amp;nbsp;&lt;/span&gt;이미지 전체에 대한 진위 여부를 판단한다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;PatchGAN&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;cGAN에서는 종종 PatchGAN을 사용하게 되는데, 이 때는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;N&lt;/span&gt;&lt;span&gt;&amp;times;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;N&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;&amp;nbsp;&lt;/span&gt;이미지 패치&lt;span&gt;&amp;nbsp;&lt;/span&gt;단위에 대한 진위 여부를 판단하게 된다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;PixelGAN :&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;이미지 픽셀&lt;span&gt;&amp;nbsp;&lt;/span&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;996&quot; data-origin-height=&quot;612&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmqyzE/btsPSpu9FS5/pyacz0Vo6aBzKkHvft26U1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmqyzE/btsPSpu9FS5/pyacz0Vo6aBzKkHvft26U1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmqyzE/btsPSpu9FS5/pyacz0Vo6aBzKkHvft26U1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmqyzE%2FbtsPSpu9FS5%2Fpyacz0Vo6aBzKkHvft26U1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;595&quot; height=&quot;366&quot; data-origin-width=&quot;996&quot; data-origin-height=&quot;612&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;L1 loss만을 사용할 경우 이미지의 Low-frequency(픽셀의 변화 정도) 성분들을 잘 검출해내는 특징을 지닌다. 따라서 Discriminator에서 high-frequency의 검출을 진행한다. 또한 이를 위해서는 이미지 전체가 필요 없고 local image patch를 사용해 판별을 진행해도 무방하다(디테일한 부분을 파악하는 데 전체 이미지는 필요 없음).&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;587&quot; data-origin-height=&quot;519&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bM0NM8/btsPTbC9FHU/NwZNwMLAzO7Gl7o6ttpwAK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bM0NM8/btsPTbC9FHU/NwZNwMLAzO7Gl7o6ttpwAK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bM0NM8/btsPTbC9FHU/NwZNwMLAzO7Gl7o6ttpwAK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbM0NM8%2FbtsPTbC9FHU%2FNwZNwMLAzO7Gl7o6ttpwAK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;320&quot; data-origin-width=&quot;587&quot; data-origin-height=&quot;519&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;background-color: #ffffff; color: #24292f; text-align: start;&quot;&gt;문제는 Pix-2-Pix를 학습시키기 위해&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;paired image 데이셋이 필요&lt;span style=&quot;background-color: #ffffff; color: #24292f; text-align: start;&quot;&gt;하다는 것이다. 아래 그림처럼 말 사진에 얼룩말이 가진 특징을 씌워서 얼룩말로 변환하려면 말 사진과 동일한 포즈와 크기의 얼룩말 사진, 즉 paired image를 가지고 학습을 시켜야 다.&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;763&quot; data-origin-height=&quot;388&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dluJOk/btsPSLkyJ33/wNNdbyYoNJjITZKdya3TH0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dluJOk/btsPSLkyJ33/wNNdbyYoNJjITZKdya3TH0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dluJOk/btsPSLkyJ33/wNNdbyYoNJjITZKdya3TH0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdluJOk%2FbtsPSLkyJ33%2FwNNdbyYoNJjITZKdya3TH0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;307&quot; data-origin-width=&quot;763&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;background-color: #ffffff; color: #24292f; text-align: start;&quot;&gt;이런 단점을 해결하기 위해 등장한 모델이 Cycle GAN이다.&lt;/span&gt;&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;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #24292f; text-align: start;&quot;&gt;1-2&lt;span&gt; Cycle GAN&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;Image-To-Image Translation은 pair 형태의 train 이미지를 활용해 input과 output을 매핑하는 것이 목표다. 하지만, pair 형태의 학습 이미지를 구하는 일은 쉽지 않기 때문에 CycleGAN은 X라는 도메인으로부터 얻은 이미지를 타깃 도메인 Y로 변환하는 방법을 활용하였다. 즉, 한 이미지 집합에서 고유한 특징들을 포착하고 이 특징을 다른 이미지 집합으로 전이시키는 것이다. 이러한 방법을 통해 CycleGAN을 활용하였을 때, 다음과 같은 결과물을 얻을 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;724&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Hoz4b/btsPRBQn4Sv/NsRqWVKKYmgIik5KnfUuEK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Hoz4b/btsPRBQn4Sv/NsRqWVKKYmgIik5KnfUuEK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Hoz4b/btsPRBQn4Sv/NsRqWVKKYmgIik5KnfUuEK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHoz4b%2FbtsPRBQn4Sv%2FNsRqWVKKYmgIik5KnfUuEK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1280&quot; height=&quot;724&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;724&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;size18&quot;&gt;&lt;b&gt;Cycle GAN의 구조&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #24292f; text-align: start;&quot;&gt;unpaired image 데이터를 가지고 image to image translation를 하는 것이 cycle GAN의 목적이다. &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #24292f; text-align: start;&quot;&gt;이때 모델의 loss function을 GAN의 Loss function으로 사용하는 경우&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;Mode collapse&lt;span style=&quot;background-color: #ffffff; color: #24292f; text-align: start;&quot;&gt;라는 문제가 발생한다. &lt;span style=&quot;background-color: #ffffff; color: #24292f; text-align: start;&quot;&gt;이를 해결하기 위해 기존의 Generator G 외에 Generator F를 추가한 순환구조가 등장한다.&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-origin-width=&quot;316&quot; data-origin-height=&quot;273&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/baUPIe/btsPSTpe92P/0YC4MdjYQFxaPuMeU7x0bK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/baUPIe/btsPSTpe92P/0YC4MdjYQFxaPuMeU7x0bK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/baUPIe/btsPSTpe92P/0YC4MdjYQFxaPuMeU7x0bK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbaUPIe%2FbtsPSTpe92P%2F0YC4MdjYQFxaPuMeU7x0bK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;316&quot; height=&quot;273&quot; data-origin-width=&quot;316&quot; data-origin-height=&quot;273&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;X에서 Y의 이미지를 만들어주는 Generator와 이 이미지가 진짜인지 판단하는 Discriminator, 그리고 역방향 학습까지 고려하기 때문에 2개의 GAN을 필요로 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;파이프라인을 구축하기 위한 Component는 다음과 같다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- Generator G : X &amp;rarr; Y mapping&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- Generator F : Y &amp;rarr; X mapping&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- Discriminator Dy : 실제 도메인 Y의 이미지 y와 G가 생성한 y_hat=G(x)을 구분&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- Discriminator Dx : 실제 도메인 X의 이미지 x와 F가 생성한 x_hat=F(y)을 구분&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;함수 G : X &amp;rarr; Y와 Dy에 대해서는 아래와 같은 목적함수를 적용한다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&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;557&quot; data-origin-height=&quot;125&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zkOgO/btsPRpCGHnY/2gPtrDcCGbELQ5NPifC1b0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zkOgO/btsPRpCGHnY/2gPtrDcCGbELQ5NPifC1b0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zkOgO/btsPRpCGHnY/2gPtrDcCGbELQ5NPifC1b0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzkOgO%2FbtsPRpCGHnY%2F2gPtrDcCGbELQ5NPifC1b0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;557&quot; height=&quot;125&quot; data-origin-width=&quot;557&quot; data-origin-height=&quot;125&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;여기서, G는 위의 함수를 최소화 D는 위의 함수를 최대화시키고자 하며 이는 다음과 같이 나타낼 수 있다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&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;248&quot; data-origin-height=&quot;23&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dldcKI/btsPTkGK9sY/j4TUk12wL2xdU84ZTnA48k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dldcKI/btsPTkGK9sY/j4TUk12wL2xdU84ZTnA48k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dldcKI/btsPTkGK9sY/j4TUk12wL2xdU84ZTnA48k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdldcKI%2FbtsPTkGK9sY%2Fj4TUk12wL2xdU84ZTnA48k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;392&quot; height=&quot;23&quot; data-origin-width=&quot;248&quot; data-origin-height=&quot;23&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;마찬가지로, 함수 F : Y &amp;rarr; X와 Dx에 대해서도 다음과 같이 나타낼 수 있다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&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;254&quot; data-origin-height=&quot;30&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bj9g3Y/btsPQuYySNn/RYDu4qPz0dc2Puxhdj74Vk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bj9g3Y/btsPQuYySNn/RYDu4qPz0dc2Puxhdj74Vk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bj9g3Y/btsPQuYySNn/RYDu4qPz0dc2Puxhdj74Vk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbj9g3Y%2FbtsPQuYySNn%2FRYDu4qPz0dc2Puxhdj74Vk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;383&quot; height=&quot;30&quot; data-origin-width=&quot;254&quot; data-origin-height=&quot;30&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 style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;Unpaired data는 이미지 간의 대응 관계가 너무 많기 때문에 만들어진 이미지가 실제 이미지와 한 쌍이라고 확정지을 수 없다. 오히려 mapping의 제약이 적기 때문에 mode-collapse를 초래할 수 있다. 이러한 문제를 해결하기 위해 cycle consistency loss를 도입하였다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&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;825&quot; data-origin-height=&quot;309&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uGWEV/btsPStYGCkk/dESrVQZ5Zwi5bnUjKT6Bj1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uGWEV/btsPStYGCkk/dESrVQZ5Zwi5bnUjKT6Bj1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uGWEV/btsPStYGCkk/dESrVQZ5Zwi5bnUjKT6Bj1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuGWEV%2FbtsPStYGCkk%2FdESrVQZ5Zwi5bnUjKT6Bj1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;718&quot; height=&quot;309&quot; data-origin-width=&quot;825&quot; data-origin-height=&quot;309&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;cycle consistency loss는 각각 생성한 이미지를 다시 원본으로 복구할때 원본과 복구 값 간의 거리를 구하는 것으로,&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;생성된 이미지가 다시 원본으로 대응될 수 있게끔 학습하면서 다양성을 최대한 제공하도록 한다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&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;429&quot; data-origin-height=&quot;86&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b2A4Ms/btsPSRybfqd/atbeOR5xyCpNBhkbmiuApK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b2A4Ms/btsPSRybfqd/atbeOR5xyCpNBhkbmiuApK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b2A4Ms/btsPSRybfqd/atbeOR5xyCpNBhkbmiuApK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb2A4Ms%2FbtsPSRybfqd%2FatbeOR5xyCpNBhkbmiuApK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;86&quot; data-origin-width=&quot;429&quot; data-origin-height=&quot;86&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;cycle consistency loss가 유도한 결과는 다음과 같으며, 재건된 이미지 F(G(X))가 input 이미지 x와 유사함을 확인할 수 있다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&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;562&quot; data-origin-height=&quot;713&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ecIwYj/btsPSMKra9E/btV11WdAQmpAvUPK620nw0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ecIwYj/btsPSMKra9E/btV11WdAQmpAvUPK620nw0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ecIwYj/btsPSMKra9E/btV11WdAQmpAvUPK620nw0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FecIwYj%2FbtsPSMKra9E%2FbtV11WdAQmpAvUPK620nw0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;713&quot; data-origin-width=&quot;562&quot; data-origin-height=&quot;713&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; 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;412&quot; data-origin-height=&quot;127&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ogpOZ/btsPQy00Fah/K9SBGHZMAGms9Kbg4Y1Px0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ogpOZ/btsPQy00Fah/K9SBGHZMAGms9Kbg4Y1Px0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ogpOZ/btsPQy00Fah/K9SBGHZMAGms9Kbg4Y1Px0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FogpOZ%2FbtsPQy00Fah%2FK9SBGHZMAGms9Kbg4Y1Px0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;412&quot; height=&quot;127&quot; data-origin-width=&quot;412&quot; data-origin-height=&quot;127&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;lambda;는 두 함수(= 위 식에서의 첫 번째 항과 두 번째 항)의 상대적인 중요도에 따라 결정되며, 풀고자 하는 목표는 다음과 같다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&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;437&quot; data-origin-height=&quot;56&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SGOcR/btsPRnx73Ft/S6nP493TcktaVseIBAFb90/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SGOcR/btsPRnx73Ft/S6nP493TcktaVseIBAFb90/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SGOcR/btsPRnx73Ft/S6nP493TcktaVseIBAFb90/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSGOcR%2FbtsPRnx73Ft%2FS6nP493TcktaVseIBAFb90%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;481&quot; height=&quot;56&quot; data-origin-width=&quot;437&quot; data-origin-height=&quot;56&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;즉, X &amp;rarr; Y GAN의 Adversarial Loss와 Y &amp;rarr; X GAN의 Adversarial Loss를 더하고 각각 다시 원본으로 복구하는 cycle consistency loss 값을 더해준 값이 최종 Loss값이며, 이를 최소화하는 방향으로 G와 F를 학습하는 것이다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;br /&gt;Cycle GAN의 한계&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;CycleGAN은 획기적인 방식으로 부족한 데이터 문제를 해결했지만, 당연히 한계도 존재한다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;CycleGAN은 주로 분위기나 색상을 바꾸는 것으로 스타일을 학습하여 다른 이미지를 생성한다. 따라서, 기하학적인 모양을 변경하는 데는 어려움이 있다. 또한, 데이터셋의 분포가 불안정하면 이미지를 제대로 생성할 수 없다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&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;1167&quot; data-origin-height=&quot;530&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eOLtOx/btsPQs0LLj9/yDAPFLf7XipJEpuEIkU9mk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eOLtOx/btsPQs0LLj9/yDAPFLf7XipJEpuEIkU9mk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eOLtOx/btsPQs0LLj9/yDAPFLf7XipJEpuEIkU9mk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeOLtOx%2FbtsPQs0LLj9%2FyDAPFLf7XipJEpuEIkU9mk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;806&quot; height=&quot;530&quot; data-origin-width=&quot;1167&quot; data-origin-height=&quot;530&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 style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;참조&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;a href=&quot;https://bo-10000.tistory.com/116&quot;&gt;https://bo-10000.tistory.com/116&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1755065922839&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[GAN Overview] GAN 주요 모델 정리 (GAN survey 논문 리뷰)&quot; data-og-description=&quot;Generative Adversarial Networks in Computer Vision: A Survey and Taxonomy (CSUR 2021) 을 바탕으로, 중요한 GAN 모델들을 정리해 보고자 합니다. 논문에는 더 다양한 모델들이 소개되어 있으나, 그 중 일부만 정리하였&quot; data-og-host=&quot;bo-10000.tistory.com&quot; data-og-source-url=&quot;https://bo-10000.tistory.com/116&quot; data-og-url=&quot;https://bo-10000.tistory.com/116&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/mrfqO/hyZuzP54ji/qGk435oQKwUX3r0sTXZEjK/img.png?width=800&amp;amp;height=584&amp;amp;face=0_0_800_584,https://scrap.kakaocdn.net/dn/cy9x0T/hyZyeDxQbw/TqfPCbLXprcckYrSTXUQz1/img.png?width=800&amp;amp;height=584&amp;amp;face=0_0_800_584,https://scrap.kakaocdn.net/dn/ThVT9/hyZyq41Sdr/raqfuZhPOKnZNvWsjPP4a1/img.png?width=982&amp;amp;height=718&amp;amp;face=0_0_982_718&quot;&gt;&lt;a href=&quot;https://bo-10000.tistory.com/116&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://bo-10000.tistory.com/116&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/mrfqO/hyZuzP54ji/qGk435oQKwUX3r0sTXZEjK/img.png?width=800&amp;amp;height=584&amp;amp;face=0_0_800_584,https://scrap.kakaocdn.net/dn/cy9x0T/hyZyeDxQbw/TqfPCbLXprcckYrSTXUQz1/img.png?width=800&amp;amp;height=584&amp;amp;face=0_0_800_584,https://scrap.kakaocdn.net/dn/ThVT9/hyZyq41Sdr/raqfuZhPOKnZNvWsjPP4a1/img.png?width=982&amp;amp;height=718&amp;amp;face=0_0_982_718');&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;[GAN Overview] GAN 주요 모델 정리 (GAN survey 논문 리뷰)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Generative Adversarial Networks in Computer Vision: A Survey and Taxonomy (CSUR 2021) 을 바탕으로, 중요한 GAN 모델들을 정리해 보고자 합니다. 논문에는 더 다양한 모델들이 소개되어 있으나, 그 중 일부만 정리하였&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;bo-10000.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://baobao.tistory.com/66&quot;&gt;https://baobao.tistory.com/66&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1755065938097&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;GAN 겉햙기 (GAN 종류)&quot; data-og-description=&quot;GAN 은 그 종류가 엄청 많고 또 종류마다 그 쓰임새가 다르다고 말할수 있습니다. 그렇다면 그 GAN 들의 종류는 무엇이며 또 어떤 역할을 하는걸까요? Deep Convolution (DCGAN) 머신러닝과 딥러닝은 생성&quot; data-og-host=&quot;baobao.tistory.com&quot; data-og-source-url=&quot;https://baobao.tistory.com/66&quot; data-og-url=&quot;https://baobao.tistory.com/66&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dmHjqT/hyZynNZZI9/oA2eLjL9D4KOelnLK4i7e0/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/euduR9/hyZuyjmR6r/EUmSuGOahLQkUm2SR8UlKK/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/bMNloF/hyZuH1EhXP/BUNTYk8ebrr0sZHCvNR9MK/img.png?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot;&gt;&lt;a href=&quot;https://baobao.tistory.com/66&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://baobao.tistory.com/66&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dmHjqT/hyZynNZZI9/oA2eLjL9D4KOelnLK4i7e0/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/euduR9/hyZuyjmR6r/EUmSuGOahLQkUm2SR8UlKK/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/bMNloF/hyZuH1EhXP/BUNTYk8ebrr0sZHCvNR9MK/img.png?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720');&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;GAN 겉햙기 (GAN 종류)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;GAN 은 그 종류가 엄청 많고 또 종류마다 그 쓰임새가 다르다고 말할수 있습니다. 그렇다면 그 GAN 들의 종류는 무엇이며 또 어떤 역할을 하는걸까요? Deep Convolution (DCGAN) 머신러닝과 딥러닝은 생성&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;baobao.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://wikidocs.net/146366&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://wikidocs.net/146366&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1755066999202&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;5) Cycle GAN&quot; data-og-description=&quot;**image to image translation이란** 이미지 데이터셋을 사용하여 input 이미지와 output 이미지를 mapping하는 것을 목표로 하는 생성 모델의 한&amp;hellip;&quot; data-og-host=&quot;wikidocs.net&quot; data-og-source-url=&quot;https://wikidocs.net/146366&quot; data-og-url=&quot;https://wikidocs.net/146366&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/etPUUR/hyZuIM08i5/RA0evZR1ckFY1csNzRvdFk/img.jpg?width=100&amp;amp;height=99&amp;amp;face=0_0_100_99,https://scrap.kakaocdn.net/dn/dLcwyZ/hyZyqjEKdM/7Ef7MqOqcgp90dT3pUOJD1/img.png?width=1138&amp;amp;height=986&amp;amp;face=0_0_1138_986,https://scrap.kakaocdn.net/dn/drhKCy/hyZuHUSZLz/ZeWbhJsNevI3iLi6jsKEoK/img.png?width=1280&amp;amp;height=545&amp;amp;face=0_0_1280_545&quot;&gt;&lt;a href=&quot;https://wikidocs.net/146366&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://wikidocs.net/146366&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/etPUUR/hyZuIM08i5/RA0evZR1ckFY1csNzRvdFk/img.jpg?width=100&amp;amp;height=99&amp;amp;face=0_0_100_99,https://scrap.kakaocdn.net/dn/dLcwyZ/hyZyqjEKdM/7Ef7MqOqcgp90dT3pUOJD1/img.png?width=1138&amp;amp;height=986&amp;amp;face=0_0_1138_986,https://scrap.kakaocdn.net/dn/drhKCy/hyZuHUSZLz/ZeWbhJsNevI3iLi6jsKEoK/img.png?width=1280&amp;amp;height=545&amp;amp;face=0_0_1280_545');&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;5) Cycle GAN&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;**image to image translation이란** 이미지 데이터셋을 사용하여 input 이미지와 output 이미지를 mapping하는 것을 목표로 하는 생성 모델의 한&amp;hellip;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;wikidocs.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dacon.io/forum/405902&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://dacon.io/forum/405902&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1755071222826&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;[GAN] CycleGAN 논문 리뷰&quot; data-og-description=&quot; &quot; data-og-host=&quot;dacon.io&quot; data-og-source-url=&quot;https://dacon.io/forum/405902&quot; data-og-url=&quot;https://dacon.io/forum/405902&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bxyGG4/hyZuHgj71c/qaNwYlvKog92P67bLAIvt0/img.png?width=1600&amp;amp;height=900&amp;amp;face=0_0_1600_900,https://scrap.kakaocdn.net/dn/qVdvQ/hyZynHeF4o/8tPZJeTsN5Y0ScyYO1GoS1/img.png?width=1794&amp;amp;height=1016&amp;amp;face=0_0_1794_1016,https://scrap.kakaocdn.net/dn/c4HU0l/hyZuxELJab/sBHUIoKK9VngkzIsujS1Hk/img.png?width=700&amp;amp;height=431&amp;amp;face=0_0_700_431&quot;&gt;&lt;a href=&quot;https://dacon.io/forum/405902&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dacon.io/forum/405902&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bxyGG4/hyZuHgj71c/qaNwYlvKog92P67bLAIvt0/img.png?width=1600&amp;amp;height=900&amp;amp;face=0_0_1600_900,https://scrap.kakaocdn.net/dn/qVdvQ/hyZynHeF4o/8tPZJeTsN5Y0ScyYO1GoS1/img.png?width=1794&amp;amp;height=1016&amp;amp;face=0_0_1794_1016,https://scrap.kakaocdn.net/dn/c4HU0l/hyZuxELJab/sBHUIoKK9VngkzIsujS1Hk/img.png?width=700&amp;amp;height=431&amp;amp;face=0_0_700_431');&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;[GAN] CycleGAN 논문 리뷰&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dacon.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>용어 정리</category>
      <author>duckracoon5z</author>
      <guid isPermaLink="true">https://duckracoon5z.tistory.com/22</guid>
      <comments>https://duckracoon5z.tistory.com/22#entry22comment</comments>
      <pubDate>Wed, 13 Aug 2025 16:47:52 +0900</pubDate>
    </item>
    <item>
      <title>GAN 시리즈 - WGAN</title>
      <link>https://duckracoon5z.tistory.com/21</link>
      <description>&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;1. WGAN(&lt;span style=&quot;background-color: #ffffff; color: #34343c; text-align: start;&quot;&gt;Wasserstein GAN&lt;/span&gt;)&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #34343c; text-align: start; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;WGAN, 즉 Wasserstein GAN은 전통적인 GAN(Generative Adversarial Network)의 학습 안정성 문제를 해결하기 위해 제안된 모델이다. WGAN의 가장 중요한 특징은 목적 함수와 판별자(discriminator)를 수정하여, 생성자(generator)와 판별자 사이의 경쟁이 더 안정적으로 이루어지도록 한 점에 있다.&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;602&quot; data-origin-height=&quot;338&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dvMthy/btsPPRmi1rT/01sunnsGYR3plPFr8wGCq1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dvMthy/btsPPRmi1rT/01sunnsGYR3plPFr8wGCq1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dvMthy/btsPPRmi1rT/01sunnsGYR3plPFr8wGCq1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdvMthy%2FbtsPPRmi1rT%2F01sunnsGYR3plPFr8wGCq1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;297&quot; data-origin-width=&quot;602&quot; data-origin-height=&quot;338&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;span style=&quot;background-color: #ffffff; color: #34343c; text-align: start; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;WGAN의 핵심 개념은 세 가지가 있다,&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;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;1. Wasserstein 거리 사용&amp;nbsp;&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;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;2. Discriminator의 마지막 층에서 시그모이드 활성화 함수 제거, critic으로 기능(&amp;nbsp;&lt;span style=&quot;background-color: #ffffff; color: #34343c; text-align: left;&quot;&gt;크리틱의 목적은 실제 이미지에 대해서는 높은 값을, 생성된 이미지에 대해서는 낮은 값을 출력한다. 즉, critic은 단순히 '진짜/가짜'를 분류하는 것이 아니라,&amp;nbsp;&lt;b&gt;데이터의 'realness score'를 출력&lt;/b&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;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;3. Weight Clipping&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;h4 id=&quot;wasserstein-거리-earth-movers-거리&quot; style=&quot;background-color: #ffffff; color: #2a2a2a; text-align: start;&quot; 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;1-1 Wasserstein 거리 (Earth Mover&amp;rsquo;s 거리)&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;GAN의 학습 과정에서는 실제 데이터 분포와 generator의 샘플 분포 사이의 거리를 측정해야 한다.&amp;nbsp;&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;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #000000;&quot;&gt;&lt;b&gt;1)&amp;nbsp;Total Variation (TV) distance&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;266&quot; data-origin-height=&quot;42&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DPkxl/btsPP46JG6J/l9oOUpoCrOqGH7k2eh5CFK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DPkxl/btsPP46JG6J/l9oOUpoCrOqGH7k2eh5CFK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DPkxl/btsPP46JG6J/l9oOUpoCrOqGH7k2eh5CFK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDPkxl%2FbtsPP46JG6J%2Fl9oOUpoCrOqGH7k2eh5CFK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;266&quot; height=&quot;42&quot; data-origin-width=&quot;266&quot; data-origin-height=&quot;42&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #555555; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #000000;&quot;&gt;&lt;b&gt;두 확률 분포 간의 최대 차이&lt;/b&gt;를 측정하는 거리이다. 즉, 가능한 측정 값들 중 차이가 가장 큰 값으로 정의된다.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #000000;&quot;&gt;두 분포가 완전히 겹치면 0, 겹치지 않으면 1이 된다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #000000;&quot;&gt;불연속적인 변화가 발생하여 gradient descent 기반의 학습이 어렵다.&amp;nbsp;&lt;/span&gt;&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;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #000000;&quot;&gt;&lt;b&gt;2)&amp;nbsp;The Kullback-Leibler (KL) divergence&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;326&quot; data-origin-height=&quot;51&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wSyO8/btsPPM6mqjw/i5rNRd9L83WjQK4CPhKLW0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wSyO8/btsPPM6mqjw/i5rNRd9L83WjQK4CPhKLW0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wSyO8/btsPPM6mqjw/i5rNRd9L83WjQK4CPhKLW0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwSyO8%2FbtsPPM6mqjw%2Fi5rNRd9L83WjQK4CPhKLW0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;51&quot; data-origin-width=&quot;326&quot; data-origin-height=&quot;51&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #555555; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #000000;&quot;&gt;두 확률 분포&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;P&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;P&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;와&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;Q&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;Q&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;간의 상대 엔트로피를 측정한다.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #000000;&quot;&gt;한 분포가 다른 분포를 얼마나 잘 설명하는지를 나타내는 지표이다.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #000000;&quot;&gt;&lt;b&gt;분포가 겹치지 않으면 KL divergence는 무한대&lt;/b&gt;가 된다.&amp;nbsp;&lt;/span&gt;&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;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #000000;&quot;&gt;&lt;b&gt;3)&amp;nbsp;The Jensen-Shannon (JS) divergence&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;325&quot; data-origin-height=&quot;38&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vXqrx/btsPQEG257L/ZsVNxdARtcI3Q1wzjSKBL1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vXqrx/btsPQEG257L/ZsVNxdARtcI3Q1wzjSKBL1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vXqrx/btsPQEG257L/ZsVNxdARtcI3Q1wzjSKBL1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvXqrx%2FbtsPQEG257L%2FZsVNxdARtcI3Q1wzjSKBL1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;325&quot; height=&quot;38&quot; data-origin-width=&quot;325&quot; data-origin-height=&quot;38&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #555555; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #000000;&quot;&gt;KL divergence를 대칭적으로 변형한 거리이다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #000000;&quot;&gt;두 분포가 완전히 동일하면 0, 겹치지 않으면 1이 된다.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #000000;&quot;&gt;&lt;b&gt;분포가 조금만 차이가 나도 gradient가 거의 0이 되어 학습에 어려움&lt;/b&gt;이 있다.&amp;nbsp;&lt;/span&gt;&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;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #000000;&quot;&gt;&lt;b&gt;4)&amp;nbsp;The Earth-Mover (EM) distance or Wasserstein-1&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;585&quot; data-origin-height=&quot;338&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mgQYN/btsPO4szl2G/tHC6FWCV6sfBi0LH7OP6U1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mgQYN/btsPO4szl2G/tHC6FWCV6sfBi0LH7OP6U1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mgQYN/btsPO4szl2G/tHC6FWCV6sfBi0LH7OP6U1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmgQYN%2FbtsPO4szl2G%2FtHC6FWCV6sfBi0LH7OP6U1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;486&quot; height=&quot;281&quot; data-origin-width=&quot;585&quot; data-origin-height=&quot;338&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;&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;315&quot; data-origin-height=&quot;46&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bC6CbY/btsPQs7jIXR/lAbVcaKK5bMifTUoyaPl10/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bC6CbY/btsPQs7jIXR/lAbVcaKK5bMifTUoyaPl10/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bC6CbY/btsPQs7jIXR/lAbVcaKK5bMifTUoyaPl10/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbC6CbY%2FbtsPQs7jIXR%2FlAbVcaKK5bMifTUoyaPl10%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;315&quot; height=&quot;46&quot; data-origin-width=&quot;315&quot; data-origin-height=&quot;46&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;ul style=&quot;list-style-type: disc; color: #555555; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #000000;&quot;&gt;두 확률 분포 간의 차이를 측정하는 방식으로,&amp;nbsp;&lt;b&gt;한 확률 분포에서 다른 확률 분포로 이동하는 최소 비용&lt;/b&gt;을 의미한다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #000000;&quot;&gt;&lt;b&gt;한 확률 분포를 다른 확률 분포로 변환하는 데 필요한 최소한의 작업량&lt;/b&gt;을 기반으로 거리 계산이 이루어진다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #000000;&quot;&gt;Gradient가 연속적인 값을 가지므로 gradient descent를 통한 학습이 가능하다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #000000;&quot;&gt;기존 JS/KL divergence보다&amp;nbsp;&lt;b&gt;더 부드러운 거리를 제공하여 학습 안정성을 향상&lt;/b&gt;시켜 분포 간의 차이를 보다 정확하게 반영한다.&lt;/span&gt;&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;&lt;span style=&quot;color: #000000; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Wasserstein GAN은&amp;nbsp;Wasserstein distance를 최적화하는 것이 목표이며 기존 GAN의 학습 문제를 해결한다.&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;362&quot; data-origin-height=&quot;52&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zflq1/btsPQIW0ufU/D0CnJr6spdok0OP0r1LMVk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zflq1/btsPQIW0ufU/D0CnJr6spdok0OP0r1LMVk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zflq1/btsPQIW0ufU/D0CnJr6spdok0OP0r1LMVk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fzflq1%2FbtsPQIW0ufU%2FD0CnJr6spdok0OP0r1LMVk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;52&quot; data-origin-width=&quot;362&quot; data-origin-height=&quot;52&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;span style=&quot;color: #000000; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Kantorovich-Rubinstein duality를 이용하여&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;W&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;W&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;를 위와 같이 설정한다. 여기서&amp;nbsp;sup 아래의 의미는&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;f&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;f&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;가&lt;b&gt;&amp;nbsp;1-Lipschitz 함수&lt;/b&gt;(두 점 사이의 거리를 일정 비 이상으로 증가시키지 않는 함수)라는 것을 나타낸다. 만약&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;f&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;f&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;가 1-Lipschitz가 아니라 어떤 상수&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;k&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;k&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;에 대해 K-Lipschitz 조건을 만족하는 경우 아래와 같이 변형된다. 즉,&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;f&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;f&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;가 엄격한 1-Lipschitz가 아니더라도,&amp;nbsp;적절한 K-Lipschitz 조건을 만족하면 Wasserstein distance를 최적화할 수 있다.&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;285&quot; data-origin-height=&quot;38&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bQPoA6/btsPRwg6mpa/pgyz7OzI0d70liKXPOGRmk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bQPoA6/btsPRwg6mpa/pgyz7OzI0d70liKXPOGRmk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bQPoA6/btsPRwg6mpa/pgyz7OzI0d70liKXPOGRmk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQPoA6%2FbtsPRwg6mpa%2Fpgyz7OzI0d70liKXPOGRmk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;38&quot; data-origin-width=&quot;285&quot; data-origin-height=&quot;38&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;span style=&quot;color: #000000; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;WGAN에서는 최대화 문제를 푸는 함수를 신경망을 이용해 근사하는데&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;f&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;f&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;를 학습하는&amp;nbsp;&lt;b&gt;c&lt;/b&gt;ritic network를 정의하고, 이&amp;nbsp;critic의 weight&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;w&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;w&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;를 최적화하여 Wasserstein distance를 최대화한다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #555555; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;&lt;span style=&quot;color: #000000; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;신경망의 가중치&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;w&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;w&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;가 compact space&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;W&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;W&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;에 놓여 있다고 가정한다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;&lt;span style=&quot;color: #000000; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;최적화 과정에서&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;msub&amp;gt;&amp;lt;mi&amp;gt;E&amp;lt;/mi&amp;gt;&amp;lt;mrow class=&amp;quot;MJX-TeXAtom-ORD&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;z&amp;lt;/mi&amp;gt;&amp;lt;mtext&amp;gt;&amp;amp;#xA0;&amp;lt;/mtext&amp;gt;&amp;lt;mi&amp;gt;p&amp;lt;/mi&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;(&amp;lt;/mo&amp;gt;&amp;lt;mi&amp;gt;z&amp;lt;/mi&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;)&amp;lt;/mo&amp;gt;&amp;lt;/mrow&amp;gt;&amp;lt;/msub&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;[&amp;lt;/mo&amp;gt;&amp;lt;msub&amp;gt;&amp;lt;mo&amp;gt;&amp;amp;#x25BD;&amp;lt;/mo&amp;gt;&amp;lt;mrow class=&amp;quot;MJX-TeXAtom-ORD&amp;quot;&amp;gt;&amp;lt;mo&amp;gt;&amp;amp;#x3B8;&amp;lt;/mo&amp;gt;&amp;lt;/mrow&amp;gt;&amp;lt;/msub&amp;gt;&amp;lt;msub&amp;gt;&amp;lt;mi&amp;gt;f&amp;lt;/mi&amp;gt;&amp;lt;mi&amp;gt;w&amp;lt;/mi&amp;gt;&amp;lt;/msub&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;(&amp;lt;/mo&amp;gt;&amp;lt;msub&amp;gt;&amp;lt;mi&amp;gt;g&amp;lt;/mi&amp;gt;&amp;lt;mrow class=&amp;quot;MJX-TeXAtom-ORD&amp;quot;&amp;gt;&amp;lt;mo&amp;gt;&amp;amp;#x3B8;&amp;lt;/mo&amp;gt;&amp;lt;/mrow&amp;gt;&amp;lt;/msub&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;(&amp;lt;/mo&amp;gt;&amp;lt;mi&amp;gt;z&amp;lt;/mi&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;)&amp;lt;/mo&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;)&amp;lt;/mo&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;]&amp;lt;/mo&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;E&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;z&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;p&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;z&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;[&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;▽&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;theta;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;f&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;w&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;g&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;theta;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;z&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;를 이용해 backpropagation을 수행한다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;이 과정에서 기존 GAN의 훈련 과정과 유사하지만 차이점이 있는데, WGAN에서는&amp;nbsp;critic이 제한 없는 scalar 값을 출력하여 Wasserstein distance를 근사한다. Lipschitz 조건을 만족시키기 위해,&amp;nbsp;weight clipping 또는 gradient penalty를 사용한다.&amp;nbsp;&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;h4 style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;1-2 WGAN의 학습 과정&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h4&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; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;1) Critic 학습 단계&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/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;ul style=&quot;list-style-type: disc; color: #555555; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot; data-start=&quot;246&quot; data-end=&quot;326&quot;&gt;&lt;span style=&quot;color: #000000; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;목표 분포&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;msub&amp;gt;&amp;lt;mi&amp;gt;P&amp;lt;/mi&amp;gt;&amp;lt;mi&amp;gt;r&amp;lt;/mi&amp;gt;&amp;lt;/msub&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;P&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;r&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;와 latent 분포&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;P&amp;lt;/mi&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;(&amp;lt;/mo&amp;gt;&amp;lt;mi&amp;gt;z&amp;lt;/mi&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;)&amp;lt;/mo&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;P&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;z&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;를 각각 미니배치 크기만큼 샘플링.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot; data-start=&quot;330&quot; data-end=&quot;384&quot;&gt;&lt;span style=&quot;color: #000000; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Critic의 loss function을 이용하여 weight&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;w&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;w&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;를 업데이트.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot; data-start=&quot;388&quot; data-end=&quot;467&quot;&gt;&lt;span style=&quot;color: #000000; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;Weight clipping 수행&lt;/b&gt;: Lipschitz 조건을 강제하기 위해&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;w&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;w&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;를&amp;nbsp;[&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mo&amp;gt;&amp;amp;#x2212;&amp;lt;/mo&amp;gt;&amp;lt;mi&amp;gt;c&amp;lt;/mi&amp;gt;&amp;lt;mo&amp;gt;,&amp;lt;/mo&amp;gt;&amp;lt;mi&amp;gt;c&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;minus;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;c&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;c&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;]&amp;nbsp;범위로 제한.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;2) Generator 학습 단계&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #555555; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;&lt;span style=&quot;color: #000000; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Generator는 critic이 제공하는 Wasserstein distance를 줄이는 방향으로 업데이트&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;&lt;span style=&quot;color: #000000; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Critic이 최적화될수록 더 안정적인 gradient 정보를 제공하여 generator 학습을 지원&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;1-3 Weight Clipping의 한계점 및 문제점&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;1)&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;c&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;c&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;가 너무 큰 경우&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #555555; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;&lt;span style=&quot;color: #000000; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;clipping 범위가 넓은 경우&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot; data-start=&quot;783&quot; data-end=&quot;847&quot;&gt;&lt;span style=&quot;color: #000000; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Lipschitz constraint가 약해지면서&amp;nbsp;최적의 critic을 찾는 데 오랜 시간이 걸린다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot; data-start=&quot;851&quot; data-end=&quot;881&quot;&gt;&lt;span style=&quot;color: #000000; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;즉, training이 비효율적이 될 수 있다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;2)&amp;nbsp;&lt;span style=&quot;text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;c&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;c&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;가 너무 작은 경우&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #555555; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;&lt;span style=&quot;color: #000000; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;clipping 범위가 좁은 경우&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot; data-start=&quot;931&quot; data-end=&quot;993&quot;&gt;&lt;span style=&quot;color: #000000; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Critic의 weight들이 작은 값에 제한되어&amp;nbsp;gradient vanishing&amp;nbsp;현상이 발생.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot; data-start=&quot;997&quot; data-end=&quot;1041&quot;&gt;&lt;span style=&quot;color: #000000; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;즉,&amp;nbsp;gradient가 너무 작아져 학습이 제대로 진행되지 않는다.&amp;nbsp;&lt;/span&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;875&quot; data-origin-height=&quot;297&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cBsaJu/btsPRq9s3rH/e7amfu2XW0fS5U0fKJXhYk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cBsaJu/btsPRq9s3rH/e7amfu2XW0fS5U0fKJXhYk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cBsaJu/btsPRq9s3rH/e7amfu2XW0fS5U0fKJXhYk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcBsaJu%2FbtsPRq9s3rH%2Fe7amfu2XW0fS5U0fKJXhYk%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;651&quot; height=&quot;221&quot; data-origin-width=&quot;875&quot; data-origin-height=&quot;297&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;span style=&quot;color: #000000; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;WGAN의&amp;nbsp;&lt;/span&gt;weight clipping은 Lipschitz 조건을 강제하는 방식이지만, 한계가 존재한다. 이 문제를 해결하기 위해 WGAN-GP가 제안되는데 weight clipping 대신 gradient penalty를 추가하여 Lipschitz 조건을 만족하도록 개선한다.&amp;nbsp;&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;&lt;b&gt;&lt;span style=&quot;color: #ee2323; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;(아직 이해가 안가서 추후 수정 예정)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;참조&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;a href=&quot;https://bo-10000.tistory.com/116&quot;&gt;https://bo-10000.tistory.com/116&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1755065204556&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[GAN Overview] GAN 주요 모델 정리 (GAN survey 논문 리뷰)&quot; data-og-description=&quot;Generative Adversarial Networks in Computer Vision: A Survey and Taxonomy (CSUR 2021) 을 바탕으로, 중요한 GAN 모델들을 정리해 보고자 합니다. 논문에는 더 다양한 모델들이 소개되어 있으나, 그 중 일부만 정리하였&quot; data-og-host=&quot;bo-10000.tistory.com&quot; data-og-source-url=&quot;https://bo-10000.tistory.com/116&quot; data-og-url=&quot;https://bo-10000.tistory.com/116&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/mrfqO/hyZuzP54ji/qGk435oQKwUX3r0sTXZEjK/img.png?width=800&amp;amp;height=584&amp;amp;face=0_0_800_584,https://scrap.kakaocdn.net/dn/cy9x0T/hyZyeDxQbw/TqfPCbLXprcckYrSTXUQz1/img.png?width=800&amp;amp;height=584&amp;amp;face=0_0_800_584,https://scrap.kakaocdn.net/dn/ThVT9/hyZyq41Sdr/raqfuZhPOKnZNvWsjPP4a1/img.png?width=982&amp;amp;height=718&amp;amp;face=0_0_982_718&quot;&gt;&lt;a href=&quot;https://bo-10000.tistory.com/116&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://bo-10000.tistory.com/116&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/mrfqO/hyZuzP54ji/qGk435oQKwUX3r0sTXZEjK/img.png?width=800&amp;amp;height=584&amp;amp;face=0_0_800_584,https://scrap.kakaocdn.net/dn/cy9x0T/hyZyeDxQbw/TqfPCbLXprcckYrSTXUQz1/img.png?width=800&amp;amp;height=584&amp;amp;face=0_0_800_584,https://scrap.kakaocdn.net/dn/ThVT9/hyZyq41Sdr/raqfuZhPOKnZNvWsjPP4a1/img.png?width=982&amp;amp;height=718&amp;amp;face=0_0_982_718');&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;[GAN Overview] GAN 주요 모델 정리 (GAN survey 논문 리뷰)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Generative Adversarial Networks in Computer Vision: A Survey and Taxonomy (CSUR 2021) 을 바탕으로, 중요한 GAN 모델들을 정리해 보고자 합니다. 논문에는 더 다양한 모델들이 소개되어 있으나, 그 중 일부만 정리하였&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;bo-10000.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&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;a href=&quot;https://baobao.tistory.com/66&quot;&gt;https://baobao.tistory.com/66&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1755065211162&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;GAN 겉햙기 (GAN 종류)&quot; data-og-description=&quot;GAN 은 그 종류가 엄청 많고 또 종류마다 그 쓰임새가 다르다고 말할수 있습니다. 그렇다면 그 GAN 들의 종류는 무엇이며 또 어떤 역할을 하는걸까요? Deep Convolution (DCGAN) 머신러닝과 딥러닝은 생성&quot; data-og-host=&quot;baobao.tistory.com&quot; data-og-source-url=&quot;https://baobao.tistory.com/66&quot; data-og-url=&quot;https://baobao.tistory.com/66&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dmHjqT/hyZynNZZI9/oA2eLjL9D4KOelnLK4i7e0/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/euduR9/hyZuyjmR6r/EUmSuGOahLQkUm2SR8UlKK/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/bMNloF/hyZuH1EhXP/BUNTYk8ebrr0sZHCvNR9MK/img.png?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot;&gt;&lt;a href=&quot;https://baobao.tistory.com/66&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://baobao.tistory.com/66&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dmHjqT/hyZynNZZI9/oA2eLjL9D4KOelnLK4i7e0/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/euduR9/hyZuyjmR6r/EUmSuGOahLQkUm2SR8UlKK/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/bMNloF/hyZuH1EhXP/BUNTYk8ebrr0sZHCvNR9MK/img.png?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720');&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;GAN 겉햙기 (GAN 종류)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;GAN 은 그 종류가 엄청 많고 또 종류마다 그 쓰임새가 다르다고 말할수 있습니다. 그렇다면 그 GAN 들의 종류는 무엇이며 또 어떤 역할을 하는걸까요? Deep Convolution (DCGAN) 머신러닝과 딥러닝은 생성&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;baobao.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&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;a href=&quot;https://blog.outta.ai/221&quot;&gt;https://blog.outta.ai/221&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1755065235934&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[2025-1] 김유현 - Wasserstein GAN&quot; data-og-description=&quot;https://arxiv.org/abs/1701.07875&amp;nbsp;Wasserstein GANWe introduce a new algorithm named WGAN, an alternative to traditional GAN training. In this new model, we show that we can improve the stability of learning, get rid of problems like mode collapse, and prov&quot; data-og-host=&quot;blog.outta.ai&quot; data-og-source-url=&quot;https://blog.outta.ai/221&quot; data-og-url=&quot;https://blog.outta.ai/221&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/lajkM/hyZuK5a15z/nUPevKkzLqRGrqkS2zEeb1/img.png?width=195&amp;amp;height=61&amp;amp;face=0_0_195_61,https://scrap.kakaocdn.net/dn/KyB27/hyZvwS6ysW/5rTxCXceTmtdIoCbcnNxk1/img.png?width=195&amp;amp;height=61&amp;amp;face=0_0_195_61,https://scrap.kakaocdn.net/dn/bfsoBN/hyZuA2wQnn/7p338J5d7vsylTf4njKVw1/img.png?width=617&amp;amp;height=490&amp;amp;face=0_0_617_490&quot;&gt;&lt;a href=&quot;https://blog.outta.ai/221&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://blog.outta.ai/221&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/lajkM/hyZuK5a15z/nUPevKkzLqRGrqkS2zEeb1/img.png?width=195&amp;amp;height=61&amp;amp;face=0_0_195_61,https://scrap.kakaocdn.net/dn/KyB27/hyZvwS6ysW/5rTxCXceTmtdIoCbcnNxk1/img.png?width=195&amp;amp;height=61&amp;amp;face=0_0_195_61,https://scrap.kakaocdn.net/dn/bfsoBN/hyZuA2wQnn/7p338J5d7vsylTf4njKVw1/img.png?width=617&amp;amp;height=490&amp;amp;face=0_0_617_490');&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;[2025-1] 김유현 - Wasserstein GAN&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;https://arxiv.org/abs/1701.07875&amp;nbsp;Wasserstein GANWe introduce a new algorithm named WGAN, an alternative to traditional GAN training. In this new model, we show that we can improve the stability of learning, get rid of problems like mode collapse, and prov&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;blog.outta.ai&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>용어 정리</category>
      <author>duckracoon5z</author>
      <guid isPermaLink="true">https://duckracoon5z.tistory.com/21</guid>
      <comments>https://duckracoon5z.tistory.com/21#entry21comment</comments>
      <pubDate>Wed, 13 Aug 2025 15:16:15 +0900</pubDate>
    </item>
    <item>
      <title>GAN 시리즈 - CGAN</title>
      <link>https://duckracoon5z.tistory.com/20</link>
      <description>&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. Conditional GAN (cGAN)&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;720&quot; data-origin-height=&quot;758&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dBRlaU/btsPNj9HzAE/IPbazJljZsRsj7MkPcB52K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dBRlaU/btsPNj9HzAE/IPbazJljZsRsj7MkPcB52K/img.png&quot; data-alt=&quot;CGAN 도식화&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dBRlaU/btsPNj9HzAE/IPbazJljZsRsj7MkPcB52K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdBRlaU%2FbtsPNj9HzAE%2FIPbazJljZsRsj7MkPcB52K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;530&quot; height=&quot;558&quot; data-origin-width=&quot;720&quot; data-origin-height=&quot;758&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;CGAN 도식화&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;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Conditional GAN(CGAN)은 GAN의 확장 모델로, 데이터 생성 시 조건을 입력으로 추가해 보다 제어 가능한 생성 결과를 만들어낸다.&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;747&quot; data-origin-height=&quot;63&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lvu9b/btsPNlfmo1r/N5cUHN4c02mu01dZCNug7K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lvu9b/btsPNlfmo1r/N5cUHN4c02mu01dZCNug7K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lvu9b/btsPNlfmo1r/N5cUHN4c02mu01dZCNug7K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Flvu9b%2FbtsPNlfmo1r%2FN5cUHN4c02mu01dZCNug7K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;688&quot; height=&quot;58&quot; data-origin-width=&quot;747&quot; data-origin-height=&quot;63&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;위 수식은 기존 GAN의 수식이다. 반면 CGAN의 경우,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #515151; text-align: start;&quot;&gt;G와 D가 추가 정보&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #515151; text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;y&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;y&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #515151; text-align: start;&quot;&gt;라는 조건이 붙는다면 조건부 생성모델을 만들 수 있다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #515151; text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;y&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;y&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #515151; text-align: start;&quot;&gt;는 어떤 보조 정보라도 될 수 있는데, class label이나 다른 modality의 데이터 등이다. 우리는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #515151; text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;y&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;y&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #515151; text-align: start;&quot;&gt;를 G와 D의 input layer에 추가로 같이 집어넣음으로써 이를 수행할 수 있다.&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;background-color: #ffffff; color: #515151; text-align: start;&quot;&gt;G에서는 input noise&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #515151; text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;msub&amp;gt;&amp;lt;mi&amp;gt;p&amp;lt;/mi&amp;gt;&amp;lt;mi&amp;gt;z&amp;lt;/mi&amp;gt;&amp;lt;/msub&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;(&amp;lt;/mo&amp;gt;&amp;lt;mi&amp;gt;z&amp;lt;/mi&amp;gt;&amp;lt;mo stretchy=&amp;quot;false&amp;quot;&amp;gt;)&amp;lt;/mo&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;p&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;z&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;z&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #515151; text-align: start;&quot;&gt;와&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #515151; text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;y&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;y&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #515151; text-align: start;&quot;&gt;가 합쳐진 형태가 된다. 이 적대적 학습 framework는 이 hidden representation이 어떻게 생겼는지에 별 영향을 받지 않는다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #515151; text-align: start;&quot;&gt;D에서는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #515151; text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;x&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;x&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #515151; text-align: start;&quot;&gt;와&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #515151; text-align: left;&quot; data-mathml=&quot;&amp;lt;math xmlns=&amp;quot;http://www.w3.org/1998/Math/MathML&amp;quot;&amp;gt;&amp;lt;mi&amp;gt;y&amp;lt;/mi&amp;gt;&amp;lt;/math&amp;gt;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;y&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #515151; text-align: start;&quot;&gt;가 input으로써 들어가게 된다. 따라서 위 수식을 Conditional 버전으로 변경해보면 아래와 같이 된다.&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;759&quot; data-origin-height=&quot;52&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GGOte/btsPOC1TtYC/TtmB91dlzKko4KOT0XroP1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GGOte/btsPOC1TtYC/TtmB91dlzKko4KOT0XroP1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GGOte/btsPOC1TtYC/TtmB91dlzKko4KOT0XroP1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGGOte%2FbtsPOC1TtYC%2FTtmB91dlzKko4KOT0XroP1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;715&quot; height=&quot;49&quot; data-origin-width=&quot;759&quot; data-origin-height=&quot;52&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1138&quot; data-origin-height=&quot;986&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/buthZz/btsPNpaYYSJ/lZhOoDV97wl9lm0K520GiK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/buthZz/btsPNpaYYSJ/lZhOoDV97wl9lm0K520GiK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/buthZz/btsPNpaYYSJ/lZhOoDV97wl9lm0K520GiK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbuthZz%2FbtsPNpaYYSJ%2FlZhOoDV97wl9lm0K520GiK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;641&quot; height=&quot;555&quot; data-origin-width=&quot;1138&quot; data-origin-height=&quot;986&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;background-color: #ffffff; color: #515151; text-align: start;&quot;&gt;CGAN은 원하는 속성의 데이터가 생성 가능하다는 점, 라벨이 있는 데이터셋을 활용하여 제어 가능한 생성이 가능하다는 점 그리고 이미지 뿐만 아니라 텍스트 음성 등 다양한 모달리티에도 적용 가능하다는 장점이 있다.&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;background-color: #ffffff; color: #515151; text-align: start;&quot;&gt;다만 한계점으로는 무라벨 데이터에서는 적용이 어렵다는 점, 학습이 부족하면 생성물이 조건을 반영하지 못할 수 있다는 점 그리도 단순 GAN 보다 학습이 어렵다는 점을 꼽을 수 있다.&amp;nbsp;&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;h3 style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;참조&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://bo-10000.tistory.com/116&quot;&gt;https://bo-10000.tistory.com/116&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1755065081408&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[GAN Overview] GAN 주요 모델 정리 (GAN survey 논문 리뷰)&quot; data-og-description=&quot;Generative Adversarial Networks in Computer Vision: A Survey and Taxonomy (CSUR 2021) 을 바탕으로, 중요한 GAN 모델들을 정리해 보고자 합니다. 논문에는 더 다양한 모델들이 소개되어 있으나, 그 중 일부만 정리하였&quot; data-og-host=&quot;bo-10000.tistory.com&quot; data-og-source-url=&quot;https://bo-10000.tistory.com/116&quot; data-og-url=&quot;https://bo-10000.tistory.com/116&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/mrfqO/hyZuzP54ji/qGk435oQKwUX3r0sTXZEjK/img.png?width=800&amp;amp;height=584&amp;amp;face=0_0_800_584,https://scrap.kakaocdn.net/dn/cy9x0T/hyZyeDxQbw/TqfPCbLXprcckYrSTXUQz1/img.png?width=800&amp;amp;height=584&amp;amp;face=0_0_800_584,https://scrap.kakaocdn.net/dn/ThVT9/hyZyq41Sdr/raqfuZhPOKnZNvWsjPP4a1/img.png?width=982&amp;amp;height=718&amp;amp;face=0_0_982_718&quot;&gt;&lt;a href=&quot;https://bo-10000.tistory.com/116&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://bo-10000.tistory.com/116&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/mrfqO/hyZuzP54ji/qGk435oQKwUX3r0sTXZEjK/img.png?width=800&amp;amp;height=584&amp;amp;face=0_0_800_584,https://scrap.kakaocdn.net/dn/cy9x0T/hyZyeDxQbw/TqfPCbLXprcckYrSTXUQz1/img.png?width=800&amp;amp;height=584&amp;amp;face=0_0_800_584,https://scrap.kakaocdn.net/dn/ThVT9/hyZyq41Sdr/raqfuZhPOKnZNvWsjPP4a1/img.png?width=982&amp;amp;height=718&amp;amp;face=0_0_982_718');&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;[GAN Overview] GAN 주요 모델 정리 (GAN survey 논문 리뷰)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Generative Adversarial Networks in Computer Vision: A Survey and Taxonomy (CSUR 2021) 을 바탕으로, 중요한 GAN 모델들을 정리해 보고자 합니다. 논문에는 더 다양한 모델들이 소개되어 있으나, 그 중 일부만 정리하였&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;bo-10000.tistory.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;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://baobao.tistory.com/66&quot;&gt;https://baobao.tistory.com/66&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1755065083998&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;GAN 겉햙기 (GAN 종류)&quot; data-og-description=&quot;GAN 은 그 종류가 엄청 많고 또 종류마다 그 쓰임새가 다르다고 말할수 있습니다. 그렇다면 그 GAN 들의 종류는 무엇이며 또 어떤 역할을 하는걸까요? Deep Convolution (DCGAN) 머신러닝과 딥러닝은 생성&quot; data-og-host=&quot;baobao.tistory.com&quot; data-og-source-url=&quot;https://baobao.tistory.com/66&quot; data-og-url=&quot;https://baobao.tistory.com/66&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dmHjqT/hyZynNZZI9/oA2eLjL9D4KOelnLK4i7e0/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/euduR9/hyZuyjmR6r/EUmSuGOahLQkUm2SR8UlKK/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/bMNloF/hyZuH1EhXP/BUNTYk8ebrr0sZHCvNR9MK/img.png?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot;&gt;&lt;a href=&quot;https://baobao.tistory.com/66&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://baobao.tistory.com/66&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dmHjqT/hyZynNZZI9/oA2eLjL9D4KOelnLK4i7e0/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/euduR9/hyZuyjmR6r/EUmSuGOahLQkUm2SR8UlKK/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/bMNloF/hyZuH1EhXP/BUNTYk8ebrr0sZHCvNR9MK/img.png?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720');&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;GAN 겉햙기 (GAN 종류)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;GAN 은 그 종류가 엄청 많고 또 종류마다 그 쓰임새가 다르다고 말할수 있습니다. 그렇다면 그 GAN 들의 종류는 무엇이며 또 어떤 역할을 하는걸까요? Deep Convolution (DCGAN) 머신러닝과 딥러닝은 생성&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;baobao.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&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;</description>
      <category>용어 정리</category>
      <author>duckracoon5z</author>
      <guid isPermaLink="true">https://duckracoon5z.tistory.com/20</guid>
      <comments>https://duckracoon5z.tistory.com/20#entry20comment</comments>
      <pubDate>Wed, 13 Aug 2025 15:09:23 +0900</pubDate>
    </item>
    <item>
      <title>GAN 시리즈 - DCGAN</title>
      <link>https://duckracoon5z.tistory.com/19</link>
      <description>&lt;h3 style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. DCGAN(Deep Convolution GAN)&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #262626; text-align: left;&quot;&gt;DCGAN은 위 GAN에서 직접적으로 파생된 모델로, 생성자와 구분자에서 합성곱 신경망(convolution)과 전치 합성곱 신경망(convolution-transpose)을 사용했다는 것이 차이점이다. 이 모델을 사용한 후 화질이 개선되었고, 간단하면서도 잘 작동한다.&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: #262626;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;CNN을 사용해서 Discriminator를 구현하고, deconvolutional network(fearure map 크기 증가)를 통해 Generator를 만든 모델이다.&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #24292f; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Fully connected layer와 Pooling layer를 최대한 배제하고 Strided Convolution과 Transposed Convolution으로 네트워크 구조를 만들었다. Fully connected layer와 Max-pooling layer는 매개변수의 수를 줄일 수 있지만 이미지의 위치 정보를 잃어 버릴 수 있다는 단점이 있다.&lt;/li&gt;
&lt;li&gt;Generator와 Discriminator에 배치 정규화(Batch Nomalization)을 사용하였다. 이는 입력 데이터가 치우쳐져 있을 경우의 평균과 분산을 조정해주는 역할을 한다. 따라서 back propagation을 시행했을 때 각 레이어에 제대로 전달되도록해 학습이 안정적으로 이루어지는데 중요한 역할을 하였다.&lt;/li&gt;
&lt;li&gt;마지막 layer를 제외하고 생성자의 모든 layer에 ReLU activation를 사용하였다. 마지막 layer에는 Tanh를 사용하였다.&lt;/li&gt;
&lt;li&gt;Discriminator의 모든 레이어에 LeakyReLU를 사용하였다.&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 alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;946&quot; data-origin-height=&quot;498&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WXHU8/btsPMpvBYsb/GhjNNvVPfojlUdAC6oSJLK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WXHU8/btsPMpvBYsb/GhjNNvVPfojlUdAC6oSJLK/img.png&quot; data-alt=&quot;출처: UNSUPERVISED REPRESENTATION LEARNING WITH DEEP CONVOLUTIONAL GENERATIVE ADVERSARIAL NETWORKS&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WXHU8/btsPMpvBYsb/GhjNNvVPfojlUdAC6oSJLK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWXHU8%2FbtsPMpvBYsb%2FGhjNNvVPfojlUdAC6oSJLK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;283&quot; data-origin-width=&quot;946&quot; data-origin-height=&quot;498&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;출처: UNSUPERVISED REPRESENTATION LEARNING WITH DEEP CONVOLUTIONAL GENERATIVE ADVERSARIAL NETWORKS&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;background-color: #ffffff; color: #262626; text-align: left;&quot;&gt;위의 이미지는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;안경 낀 남자 - 안경 안 낀 남자 + 안경 안 낀 여자 = 안경 낀 여자&amp;nbsp;&lt;span style=&quot;color: #000000;&quot;&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;p data-ke-size=&quot;size16&quot;&gt;잠재 공간에서 산술연산을 했을 때 그 결과가 이미지 공간에 반영된다. 위의 예시처럼, 산술연산에서 사용한 latent vector이라는 것은 모델에서 생성된 이미지 중 안경 낀 안자, 안경 안 낀 남자, 안경 안 낀 여자 그룹을 만들고 각 그룹에서 latent vactor의 평균을 구한 값을 의미한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1764&quot; data-origin-height=&quot;806&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bvmZTc/btsPM3yY09m/b7zkLf5PNvCUWX9DLjnVYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bvmZTc/btsPM3yY09m/b7zkLf5PNvCUWX9DLjnVYK/img.png&quot; data-alt=&quot;DCGAN의 Generator 구조&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bvmZTc/btsPM3yY09m/b7zkLf5PNvCUWX9DLjnVYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbvmZTc%2FbtsPM3yY09m%2Fb7zkLf5PNvCUWX9DLjnVYK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;639&quot; height=&quot;292&quot; data-origin-width=&quot;1764&quot; data-origin-height=&quot;806&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;DCGAN의 Generator 구조&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;508&quot; data-origin-height=&quot;678&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d1UsvQ/btsPLkPg5mS/EszxpWvdIkoYAQH6eHHodk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d1UsvQ/btsPLkPg5mS/EszxpWvdIkoYAQH6eHHodk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d1UsvQ/btsPLkPg5mS/EszxpWvdIkoYAQH6eHHodk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd1UsvQ%2FbtsPLkPg5mS%2FEszxpWvdIkoYAQH6eHHodk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;508&quot; height=&quot;678&quot; data-origin-width=&quot;508&quot; data-origin-height=&quot;678&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&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;DCGAN에서 왜&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Generator&lt;/b&gt;와&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Discriminator&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;(이 이하는 ChatGPT를 통한 답변입니다)&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;1. Generator: ReLU + 마지막 Tanh&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot; data-start=&quot;172&quot; data-end=&quot;191&quot;&gt;(1) ReLU를 쓰는 이유&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;192&quot; data-end=&quot;340&quot;&gt;
&lt;li data-start=&quot;192&quot; data-end=&quot;239&quot;&gt;&lt;b&gt;양의 출력&lt;/b&gt;에서만 활성화되므로 gradient vanishing 위험이 적음&lt;/li&gt;
&lt;li data-start=&quot;240&quot; data-end=&quot;297&quot;&gt;생성 단계에서 점점 해상도가 높아질수록(업샘플링)&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;밝은 영역을 적극적으로 만들어내는 데 유리&lt;/b&gt;&lt;/li&gt;
&lt;li data-start=&quot;298&quot; data-end=&quot;340&quot;&gt;ReLU는 계산이 단순하고, 깊은 네트워크에서&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; data-start=&quot;421&quot; data-end=&quot;449&quot;&gt;(2) 마지막 레이어에 Tanh를 쓰는 이유&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;450&quot; data-end=&quot;565&quot;&gt;
&lt;li data-start=&quot;450&quot; data-end=&quot;489&quot;&gt;&lt;b&gt;픽셀 값을 -1 ~ 1 범위&lt;/b&gt;로 제한 &amp;rarr; 이미지 정규화에 맞춤&lt;/li&gt;
&lt;li data-start=&quot;490&quot; data-end=&quot;527&quot;&gt;출력 범위가 고정되므로 Discriminator가 학습하기 쉬움&lt;/li&gt;
&lt;li data-start=&quot;528&quot; data-end=&quot;565&quot;&gt;Sigmoid보다 gradient saturation이 덜 심함&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot; data-start=&quot;634&quot; data-end=&quot;669&quot;&gt;&lt;b&gt;2. Discriminator: Leaky ReLU&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot; data-start=&quot;670&quot; data-end=&quot;695&quot;&gt;(1) Leaky ReLU를 쓰는 이유&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;696&quot; data-end=&quot;871&quot;&gt;
&lt;li data-start=&quot;696&quot; data-end=&quot;748&quot;&gt;일반 ReLU는 음수 입력에서 gradient가 0 &amp;rarr; &quot;Dead Neuron&quot; 문제 발생&lt;/li&gt;
&lt;li data-start=&quot;749&quot; data-end=&quot;801&quot;&gt;Leaky ReLU는 음수에서도 작은 기울기를 남겨&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;gradient flow를 유지&lt;/b&gt;&lt;/li&gt;
&lt;li data-start=&quot;802&quot; data-end=&quot;871&quot;&gt;Discriminator는&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; data-start=&quot;878&quot; data-end=&quot;924&quot;&gt;(2) 왜 Generator에는 안 쓰고 Discriminator에만 쓰나?&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;925&quot; data-end=&quot;1104&quot;&gt;
&lt;li data-start=&quot;925&quot; data-end=&quot;1031&quot;&gt;Generator는 latent vector를 점점 복잡하게 변형해서 이미지를 만들어야 하므로, 중간 단계에서&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;음수 값은 굳이 살릴 필요 없음&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(ReLU로 양수만 적극적으로 사용)&lt;/li&gt;
&lt;li data-start=&quot;1032&quot; data-end=&quot;1104&quot;&gt;반면 Discriminator는 입력 이미지에서 나오는 모든 특징(양수/음수 모두)을 살려야 하므로 Leaky ReLU가 유리&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;DCGAN은 당시 GAN 학습 안정성을 크게 개선했지만, 여전히 몇 가지 한계가 존재하였다:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- 모드 붕괴(Mode Collapse)&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Generator가 데이터 분포의 일부 모드만 학습하여 비슷한 이미지만 반복 생성하는 현상이 발생한다. DCGAN의 구조적 개선에도 불구하고 근복적인 GAN 손실 구조 문제는 해결 못하였다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- 훈련 불안정성&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;학습 도중 loss가 발산하거나, Generator와 Discriminator가 균형을 잃는다. 이는 Generator가 너무 강하면 Disciminator 또한 무의미해지기 때문이며 그 반대 또한 그러하다. 다음은 Tanh 출력 범위 제한과 배치 정규화를 통해 안정화하였으나 여전히 하이퍼파라미터에 민감하다는 문제점이 있다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;-고해상도 이미지 생성 한계&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;64*64 같은 저해상도에서는 잘 작동하지만, 고해상도로 갈수록 품질 저하의 문제가 있다. 이는 Upsampling에서 이미지에 바둑판 무늬 같은 패턴이 생기는 Checkerboard Artifact가 발생하기 때문이며 깊은 네트워크로 확장하면 학습 불안정성이 심해지는 이유도 있다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;참조&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://bo-10000.tistory.com/116&quot;&gt;https://bo-10000.tistory.com/116&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1755064970290&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[GAN Overview] GAN 주요 모델 정리 (GAN survey 논문 리뷰)&quot; data-og-description=&quot;Generative Adversarial Networks in Computer Vision: A Survey and Taxonomy (CSUR 2021) 을 바탕으로, 중요한 GAN 모델들을 정리해 보고자 합니다. 논문에는 더 다양한 모델들이 소개되어 있으나, 그 중 일부만 정리하였&quot; data-og-host=&quot;bo-10000.tistory.com&quot; data-og-source-url=&quot;https://bo-10000.tistory.com/116&quot; data-og-url=&quot;https://bo-10000.tistory.com/116&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/mrfqO/hyZuzP54ji/qGk435oQKwUX3r0sTXZEjK/img.png?width=800&amp;amp;height=584&amp;amp;face=0_0_800_584,https://scrap.kakaocdn.net/dn/cy9x0T/hyZyeDxQbw/TqfPCbLXprcckYrSTXUQz1/img.png?width=800&amp;amp;height=584&amp;amp;face=0_0_800_584,https://scrap.kakaocdn.net/dn/ThVT9/hyZyq41Sdr/raqfuZhPOKnZNvWsjPP4a1/img.png?width=982&amp;amp;height=718&amp;amp;face=0_0_982_718&quot;&gt;&lt;a href=&quot;https://bo-10000.tistory.com/116&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://bo-10000.tistory.com/116&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/mrfqO/hyZuzP54ji/qGk435oQKwUX3r0sTXZEjK/img.png?width=800&amp;amp;height=584&amp;amp;face=0_0_800_584,https://scrap.kakaocdn.net/dn/cy9x0T/hyZyeDxQbw/TqfPCbLXprcckYrSTXUQz1/img.png?width=800&amp;amp;height=584&amp;amp;face=0_0_800_584,https://scrap.kakaocdn.net/dn/ThVT9/hyZyq41Sdr/raqfuZhPOKnZNvWsjPP4a1/img.png?width=982&amp;amp;height=718&amp;amp;face=0_0_982_718');&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;[GAN Overview] GAN 주요 모델 정리 (GAN survey 논문 리뷰)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Generative Adversarial Networks in Computer Vision: A Survey and Taxonomy (CSUR 2021) 을 바탕으로, 중요한 GAN 모델들을 정리해 보고자 합니다. 논문에는 더 다양한 모델들이 소개되어 있으나, 그 중 일부만 정리하였&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;bo-10000.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://baobao.tistory.com/66&quot;&gt;https://baobao.tistory.com/66&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1755064979211&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;GAN 겉햙기 (GAN 종류)&quot; data-og-description=&quot;GAN 은 그 종류가 엄청 많고 또 종류마다 그 쓰임새가 다르다고 말할수 있습니다. 그렇다면 그 GAN 들의 종류는 무엇이며 또 어떤 역할을 하는걸까요? Deep Convolution (DCGAN) 머신러닝과 딥러닝은 생성&quot; data-og-host=&quot;baobao.tistory.com&quot; data-og-source-url=&quot;https://baobao.tistory.com/66&quot; data-og-url=&quot;https://baobao.tistory.com/66&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dmHjqT/hyZynNZZI9/oA2eLjL9D4KOelnLK4i7e0/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/euduR9/hyZuyjmR6r/EUmSuGOahLQkUm2SR8UlKK/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/bMNloF/hyZuH1EhXP/BUNTYk8ebrr0sZHCvNR9MK/img.png?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot;&gt;&lt;a href=&quot;https://baobao.tistory.com/66&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://baobao.tistory.com/66&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dmHjqT/hyZynNZZI9/oA2eLjL9D4KOelnLK4i7e0/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/euduR9/hyZuyjmR6r/EUmSuGOahLQkUm2SR8UlKK/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/bMNloF/hyZuH1EhXP/BUNTYk8ebrr0sZHCvNR9MK/img.png?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720');&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;GAN 겉햙기 (GAN 종류)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;GAN 은 그 종류가 엄청 많고 또 종류마다 그 쓰임새가 다르다고 말할수 있습니다. 그렇다면 그 GAN 들의 종류는 무엇이며 또 어떤 역할을 하는걸까요? Deep Convolution (DCGAN) 머신러닝과 딥러닝은 생성&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;baobao.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://jaejunyoo.blogspot.com/2017/02/deep-convolutional-gan-dcgan-1.html&quot;&gt;https://jaejunyoo.blogspot.com/2017/02/deep-convolutional-gan-dcgan-1.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1755064990907&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;초짜 대학원생의 입장에서 이해하는 Deep Convolutional Generative Adversarial Network (DCGAN) (1)&quot; data-og-description=&quot;Deep Convolutional GAN (DCGAN)에 대한 쉬운 설명 및 소개 / Easy introduction to Deep Convolutional Generative Adversarial Network (DCGAN)&quot; data-og-host=&quot;jaejunyoo.blogspot.com&quot; data-og-source-url=&quot;https://jaejunyoo.blogspot.com/2017/02/deep-convolutional-gan-dcgan-1.html&quot; data-og-url=&quot;https://jaejunyoo.blogspot.com/2017/02/deep-convolutional-gan-dcgan-1.html&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/33ZYS/hyZzEaStPG/m09ESEEe3scVFg3Aav09YK/img.png?width=946&amp;amp;height=497&amp;amp;face=22_31_923_427&quot;&gt;&lt;a href=&quot;https://jaejunyoo.blogspot.com/2017/02/deep-convolutional-gan-dcgan-1.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://jaejunyoo.blogspot.com/2017/02/deep-convolutional-gan-dcgan-1.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/33ZYS/hyZzEaStPG/m09ESEEe3scVFg3Aav09YK/img.png?width=946&amp;amp;height=497&amp;amp;face=22_31_923_427');&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;초짜 대학원생의 입장에서 이해하는 Deep Convolutional Generative Adversarial Network (DCGAN) (1)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Deep Convolutional GAN (DCGAN)에 대한 쉬운 설명 및 소개 / Easy introduction to Deep Convolutional Generative Adversarial Network (DCGAN)&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;jaejunyoo.blogspot.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;</description>
      <category>용어 정리</category>
      <author>duckracoon5z</author>
      <guid isPermaLink="true">https://duckracoon5z.tistory.com/19</guid>
      <comments>https://duckracoon5z.tistory.com/19#entry19comment</comments>
      <pubDate>Wed, 13 Aug 2025 15:09:14 +0900</pubDate>
    </item>
    <item>
      <title>GAN 시리즈 - GAN</title>
      <link>https://duckracoon5z.tistory.com/18</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. GAN(Generative Adversarial Networks)&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;707&quot; data-origin-height=&quot;272&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tgpoM/btsPJjC7pjo/Ax2cjmLaKWYWvI2q5jf2gK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tgpoM/btsPJjC7pjo/Ax2cjmLaKWYWvI2q5jf2gK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tgpoM/btsPJjC7pjo/Ax2cjmLaKWYWvI2q5jf2gK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtgpoM%2FbtsPJjC7pjo%2FAx2cjmLaKWYWvI2q5jf2gK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;244&quot; data-origin-width=&quot;707&quot; data-origin-height=&quot;272&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot;&gt;GAN(생성적 적대 신경망)은 2014년 Ian Goodfellow에 의해 발표된 기술로, 딥러닝 분야에서 매우 중요한 위치를 차지하고 있다. &lt;span style=&quot;background-color: #ffffff; color: #24292f; text-align: start;&quot;&gt;GAN은 구조 자체의 이해가 어렵지 않기 때문에, 다양한 분야에서 많은 연구자들에 의해 연구가 되어왔다. 아래 이미지는 GAN이 제시된 2014년부터 2020년까지 GAN을 주제로 한 논문 수를 나타내는 차트로, 상당히 빠른 속도로 많은 사람들에게 연구가 되어오고 있음을 확인할 수 있다.&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;850&quot; data-origin-height=&quot;416&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Jthp8/btsPKgllYOo/lwS4f6Dbi0NJN6K35F3SXK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Jthp8/btsPKgllYOo/lwS4f6Dbi0NJN6K35F3SXK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Jthp8/btsPKgllYOo/lwS4f6Dbi0NJN6K35F3SXK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJthp8%2FbtsPKgllYOo%2FlwS4f6Dbi0NJN6K35F3SXK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;633&quot; height=&quot;310&quot; data-origin-width=&quot;850&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;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1-1 GAN 기본 개념&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;335&quot; data-origin-height=&quot;150&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c6TWez/btsPLj2IZwF/hoS1uQ3VkjcyXkUwhql581/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c6TWez/btsPLj2IZwF/hoS1uQ3VkjcyXkUwhql581/img.png&quot; data-alt=&quot;위조지폐범과 경찰&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c6TWez/btsPLj2IZwF/hoS1uQ3VkjcyXkUwhql581/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc6TWez%2FbtsPLj2IZwF%2FhoS1uQ3VkjcyXkUwhql581%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;599&quot; height=&quot;268&quot; data-origin-width=&quot;335&quot; data-origin-height=&quot;150&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;위에 그림은 GAN을 설명할 때 자주 등장하는 그림이다. &lt;span style=&quot;text-align: start;&quot;&gt;지폐 &lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;위조&lt;/span&gt;범은 최대한 진짜같은 지폐를 만들어 경찰을 속이고, 경찰은 위조지폐범이 만들어낸 지폐와 진짜 지폐를 대조하면서 둘을 구분할 수 있는 차이점을 계속해서 찾아내게 된다. 이 과정에서 위조지폐범은 점점 더 정교한 지폐를 만들어 경찰을&amp;nbsp;&lt;/span&gt;속이기&lt;span style=&quot;text-align: start;&quot;&gt;&amp;nbsp;위해 노력하고 경찰은 완벽히&amp;nbsp;&lt;/span&gt;판별하기&lt;span style=&quot;text-align: start;&quot;&gt;&amp;nbsp;&lt;span style=&quot;color: #24292f;&quot;&gt;위해 더 노력하게 된다. 서로 경쟁적인 학습이 계속되다보면, 어느순간 경찰이 진짜 지폐와 구분할 수 없을 정도로 비슷한 지폐를 만들 수 있게 될 것이다. 이처럼 GAN에서도 &lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;생성모델(generator)은 최대한 진짜 같은 데이터를 만들기 위한 학습을 진행하고, 분류모델(discriminator)은 진짜와 가짜를 판별하기 위한 학습을 진행한다.&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;span style=&quot;color: #24292f;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;이 적대적인 관계는 두 모델이 동시에 발전하도록 자극하며, 결과적으로 더 정교하고 현실적인 데이터를 생성할 수 있게 만든다. 이러한 적대적 학습 방식은 GAN의 독창성과 성능의 핵심이다.&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;875&quot; data-origin-height=&quot;454&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ujdJX/btsPLGDpndA/d0WFDF0NVoIC1dKpGgW1NK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ujdJX/btsPLGDpndA/d0WFDF0NVoIC1dKpGgW1NK/img.png&quot; data-alt=&quot;Generator &amp;amp;amp; Discriminator&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ujdJX/btsPLGDpndA/d0WFDF0NVoIC1dKpGgW1NK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FujdJX%2FbtsPLGDpndA%2Fd0WFDF0NVoIC1dKpGgW1NK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;702&quot; height=&quot;364&quot; data-origin-width=&quot;875&quot; data-origin-height=&quot;454&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Generator &amp;amp; Discriminator&lt;/figcaption&gt;
&lt;/figure&gt;
&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;&lt;b&gt;1-2 GAN 원리&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;384&quot; data-origin-height=&quot;160&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bZjfMr/btsPIDhC5Wv/K71gyK3Syn22LoxZeUeJK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bZjfMr/btsPIDhC5Wv/K71gyK3Syn22LoxZeUeJK0/img.png&quot; data-alt=&quot;확률밀도함수(PDF, Probability Density Function)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bZjfMr/btsPIDhC5Wv/K71gyK3Syn22LoxZeUeJK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZjfMr%2FbtsPIDhC5Wv%2FK71gyK3Syn22LoxZeUeJK0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;204&quot; data-origin-width=&quot;384&quot; data-origin-height=&quot;160&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;확률밀도함수(PDF, Probability Density Function)&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;먼저 위에 확률밀도함수에 대해 알아보자. 확률밀도함수는 확률변수의 분포를 나타내느 것으로 연속확률변수 x에 대한 f(x)를 의미하는 것이라고 볼 수 있다. 데이터셋들을 학습시킬 때마다 각기 다른 벡터를 가지게 된다.&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;640&quot; data-origin-height=&quot;291&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bpweoW/btsPL1UPU5l/iSPhWwoxiNZKeJz8OEn540/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bpweoW/btsPL1UPU5l/iSPhWwoxiNZKeJz8OEn540/img.png&quot; data-alt=&quot;실데이터 학습을 통한 확률 변수의 분포와 모델이 생성한 이미지가 가지는 확률 변수&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bpweoW/btsPL1UPU5l/iSPhWwoxiNZKeJz8OEn540/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbpweoW%2FbtsPL1UPU5l%2FiSPhWwoxiNZKeJz8OEn540%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;596&quot; height=&quot;271&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;291&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 확률밀도함수가 있을 때, GAN 모델이 생성한 이미지가 가지는 확률밀도함수와 둘 사이의 차이가 줄어들면 줄어들 수록 원래의 실제 이미지와 같아지는 원리라고 할 수 있다. &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;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&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;범이 지폐를 만들 때 임의의 종이가 필요한 것처럼, 실제 GAN의 구현에서도 종이의 역할을 하는 noise가 필요하다. 즉 generator가 하는 가짜 데이터를 만드는 일은 noise로부터 진짜 이미지로 맵핑하는 것이라고 볼 수 있다.&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;766&quot; data-origin-height=&quot;246&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7qZ5p/btsPKHJPPdF/rNbcTxUIiDvxOfl31G2w90/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7qZ5p/btsPKHJPPdF/rNbcTxUIiDvxOfl31G2w90/img.png&quot; data-alt=&quot;GAN 학습 과정&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7qZ5p/btsPKHJPPdF/rNbcTxUIiDvxOfl31G2w90/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7qZ5p%2FbtsPKHJPPdF%2FrNbcTxUIiDvxOfl31G2w90%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;766&quot; height=&quot;246&quot; data-origin-width=&quot;766&quot; data-origin-height=&quot;246&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;GAN 학습 과정&lt;/figcaption&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;검은 점선:&amp;nbsp;원 데이터의 확률분포&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;녹색 점선&lt;/span&gt;:&amp;nbsp;생성자가 만들어 내는 확률분포&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;파란 점선&lt;/span&gt;:&amp;nbsp;판별자의 확률분포&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;파란 점선인 판별자(Discriminator)는 학습이 진행됨에 따라 GAN이 만들어내는 녹색 점선(Generator)와 분포가 동일해지는 것을 확인할 수 있다. 따라서 (d)의 단계에서는 판별자가 진위를 분류하게 되어도 확률이 같기 때문에 분류를 해도 소용 없게 되며 생성자는 실제 데이터와 매우 흡사하게 이미지를 생성할 수 있게 된다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; 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;&lt;b&gt;1-3 GAN 학습 과정&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;GAN은 생성자와 판별자의 경쟁구도이며, 경쟁을 통해 균형점(nash equilibrium)을 찾는 것이 목표라 할 수 있다. GAN에서 사용되는 수식은 아래와 같이 간단한 형태이다. &lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot;&gt;G(Generator)를 minimize하고 D(Discriminator)를 maximize한다고 생각하면 된다.&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;851&quot; data-origin-height=&quot;73&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b9k01p/btsPIstt8YN/eICELqaWYKeTDJZjE3LEe1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b9k01p/btsPIstt8YN/eICELqaWYKeTDJZjE3LEe1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b9k01p/btsPIstt8YN/eICELqaWYKeTDJZjE3LEe1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb9k01p%2FbtsPIstt8YN%2FeICELqaWYKeTDJZjE3LEe1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;63&quot; data-origin-width=&quot;851&quot; data-origin-height=&quot;73&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li id=&quot;f0d9&quot; style=&quot;list-style-type: disc; color: #242424;&quot; data-selectable-paragraph=&quot;&quot;&gt;&lt;b&gt;x&lt;span&gt;&amp;nbsp;&lt;/span&gt;:&lt;/b&gt; 실제 데이터 포인트&lt;/li&gt;
&lt;li id=&quot;6d24&quot; style=&quot;list-style-type: disc; color: #242424;&quot; data-selectable-paragraph=&quot;&quot;&gt;&lt;b&gt;z&lt;span&gt;&amp;nbsp;&lt;/span&gt;:&lt;/b&gt; 잠재 공간(latent space)에서 샘플링된 랜덤 노이즈 벡터&lt;/li&gt;
&lt;li id=&quot;94a8&quot; style=&quot;list-style-type: disc; color: #242424;&quot; data-selectable-paragraph=&quot;&quot;&gt;&lt;b&gt;G(z):&lt;/b&gt; 생성자&lt;span&gt;&amp;nbsp;&lt;/span&gt;G가 랜덤 노이즈&lt;span&gt;&amp;nbsp;&lt;/span&gt;z를 입력받아 생성한 가짜 데이터(이미지)&lt;/li&gt;
&lt;li id=&quot;d1d8&quot; style=&quot;list-style-type: disc; color: #242424;&quot; data-selectable-paragraph=&quot;&quot;&gt;&lt;b&gt;D(x):&lt;/b&gt; 판별자&lt;span&gt;&amp;nbsp;&lt;/span&gt;D가 입력 데이터&lt;span&gt;&amp;nbsp;&lt;/span&gt;x에 대해 출력하는 해당 데이터가 진짜일 확률&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; 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;875&quot; data-origin-height=&quot;137&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5b8Uq/btsPJ128Bq8/XS2zn4fb7BMkK79fRKQFTk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5b8Uq/btsPJ128Bq8/XS2zn4fb7BMkK79fRKQFTk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5b8Uq/btsPJ128Bq8/XS2zn4fb7BMkK79fRKQFTk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5b8Uq%2FbtsPJ128Bq8%2FXS2zn4fb7BMkK79fRKQFTk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;414&quot; height=&quot;65&quot; data-origin-width=&quot;875&quot; data-origin-height=&quot;137&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&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li id=&quot;4502&quot; style=&quot;list-style-type: disc; color: #242424;&quot; data-selectable-paragraph=&quot;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;D(x) = 0.9 (실제 이미지&amp;nbsp;x에 대해 판별자가 0.9의 값을 출력)&lt;/span&gt;&lt;/li&gt;
&lt;li id=&quot;b610&quot; style=&quot;list-style-type: disc; color: #242424;&quot; data-selectable-paragraph=&quot;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;손실 값: -log(0.9)&amp;asymp;&amp;nbsp;0.105&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;994f&quot; style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;진짜 이미지를 가짜로 판단한 경우(높은 Loss이어야 함)&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li id=&quot;890a&quot; style=&quot;list-style-type: disc; color: #242424;&quot; data-selectable-paragraph=&quot;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;D(x) = 0.1&lt;/span&gt;&lt;/li&gt;
&lt;li id=&quot;94f2&quot; style=&quot;list-style-type: disc; color: #242424;&quot; data-selectable-paragraph=&quot;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;손실 값: -log(0.1) = 1.0&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;b&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;875&quot; data-origin-height=&quot;91&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZBwCq/btsPLApJMZK/zuUNC7jnzg18FmSjFQ0FLk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZBwCq/btsPLApJMZK/zuUNC7jnzg18FmSjFQ0FLk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZBwCq/btsPLApJMZK/zuUNC7jnzg18FmSjFQ0FLk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZBwCq%2FbtsPLApJMZK%2FzuUNC7jnzg18FmSjFQ0FLk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;454&quot; height=&quot;47&quot; data-origin-width=&quot;875&quot; data-origin-height=&quot;91&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p id=&quot;866d&quot; style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;가짜 이미지를 가짜로 판단한 경우&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li id=&quot;ff04&quot; style=&quot;list-style-type: disc; color: #242424;&quot; data-selectable-paragraph=&quot;&quot;&gt;D(G(z)) = 0.2&lt;/li&gt;
&lt;li id=&quot;47be&quot; style=&quot;list-style-type: disc; color: #242424;&quot; data-selectable-paragraph=&quot;&quot;&gt;손실 값: -log(1&amp;ndash;0.2) = -log(0.8)&lt;span&gt;&amp;nbsp;&lt;/span&gt;&amp;asymp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;0.223&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;f791&quot; style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;가짜 이미지를 진짜로 판단한 경우(높은 Loss이어야 함)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li id=&quot;218d&quot; style=&quot;list-style-type: disc; color: #242424;&quot; data-selectable-paragraph=&quot;&quot;&gt;D(G(z)) = 0.8&lt;/li&gt;
&lt;li id=&quot;78d0&quot; style=&quot;list-style-type: disc; color: #242424;&quot; data-selectable-paragraph=&quot;&quot;&gt;손실 값: -log(1&amp;ndash;0.8) = -log(0.2) = 1.609&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 판별자의 최종 손실은 진짜 이미지와 가까 이미지에 대한 손실 값을 모두 합하여 계산된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;875&quot; data-origin-height=&quot;127&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ct4mA3/btsPIwCDC3x/uk1joeoYUkIU0npkzbOEt1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ct4mA3/btsPIwCDC3x/uk1joeoYUkIU0npkzbOEt1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ct4mA3/btsPIwCDC3x/uk1joeoYUkIU0npkzbOEt1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fct4mA3%2FbtsPIwCDC3x%2Fuk1joeoYUkIU0npkzbOEt1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;557&quot; height=&quot;81&quot; data-origin-width=&quot;875&quot; data-origin-height=&quot;127&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;color: #006dd7;&quot;&gt;첫 번째 항&lt;/span&gt;은 실제 데이터 x에 대해 판별자가 1에 가까운 값을 출력하도록 한다(최대화)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;두 번째 항&lt;/span&gt;은 생성된 가짜 데이터 G(z)에 대해 판별자가 0에 가까운 값을 출력하도록 한다(최소화)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Case 1: D(x)를 1로 만드는 경우 (판별자가 모든 것을 분류 가능한 경우)&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;D(x)=1인 상황은 logD(x)를 0으로 만드려는 것과 같다. D(x)=1이라는 의미는 판별자가 모든 것을 다 올바르게 Real/Fake 분류를 할 수 있음을 의미한다. 이렇게 되면 동시에 D(G(z))=1이 된다. 그 이유는 G가 아무리 진짜와 같은 이미지를 생성하더라도 D가 100%의 확률로 전부 잡아낼 수 있기 때문이다. 결과적으로 수식의 앞 부분은 logD(x)는 0이 되어 사라지고, 뒷 부분은 log(1-1)이 되어 무한에 수렴하게 된다. (log 함수 그래프 참조)&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; 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-origin-width=&quot;232&quot; data-origin-height=&quot;232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kS9vo/btsPLBWs0Sy/1YLF5zYGzgEg7iQvDMmYJ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kS9vo/btsPLBWs0Sy/1YLF5zYGzgEg7iQvDMmYJ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kS9vo/btsPLBWs0Sy/1YLF5zYGzgEg7iQvDMmYJ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkS9vo%2FbtsPLBWs0Sy%2F1YLF5zYGzgEg7iQvDMmYJ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;232&quot; height=&quot;232&quot; data-origin-width=&quot;232&quot; data-origin-height=&quot;232&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Case 2: G(z)를 1로 만드는 경우 (판별자가 모든 것을 분류하지 못하는 경우)&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;G(z)=1인 상황은 생성자 G가 실제와 구분하지 못할 정도로 흡사하게 만들어 판별자 D가 하나도 구분하지 못하는 상황과 같다. 이렇게 되면 수식의 앞 부분인 logD(x)는 log0이 되어 무한에 수렴하게 되고, 뒷 부분인 log(1-D(G(z))는 0이 되어 사라지게 된다. (이 상황의 경우 minmax요소가 바뀜. min&amp;rarr;D, max&amp;rarr;G)&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; 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;&lt;b&gt;1-3 GAN의 장단점&lt;/b&gt;&lt;/h4&gt;
&lt;p id=&quot;ce6e&quot; style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;장점&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- 고품질의 이미지 생성&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;GAN은 매우 정교하고 현실적인 이미지를 생성할 수 있다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- 다양한 응용 가능성 &lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이미지 생성, 데이터 증강, 스타일 변환 등 다양한 분야에 활용할 수 있다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p id=&quot;c973&quot; style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;단점&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; 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;1366&quot; data-origin-height=&quot;682&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bM4Mcg/btsPJeBWtcM/KLsKpU8Gshxak75EUtJYPK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bM4Mcg/btsPJeBWtcM/KLsKpU8Gshxak75EUtJYPK/img.png&quot; data-alt=&quot;GAN epoch에 따른 loss&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bM4Mcg/btsPJeBWtcM/KLsKpU8Gshxak75EUtJYPK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbM4Mcg%2FbtsPJeBWtcM%2FKLsKpU8Gshxak75EUtJYPK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;593&quot; height=&quot;296&quot; data-origin-width=&quot;1366&quot; data-origin-height=&quot;682&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;GAN epoch에 따른 loss&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #24292f; text-align: start;&quot;&gt;GAN은 generator와 discriminator가 서로가 서로를 속이는 과정에서 generator가 data distribution에 근사하는것을 목적으로 한다. 하지만, 번갈아가면서 업데이트를 진행하는 특성상 generator가 좋아지면 discriminator도 좋아지고, discriminator가 좋아지면 generator도 좋아지고, 서로가 서로의 분포에 근사해가면서 끝나지않는 숨바꼭질을 무한히 반복하게 된다. 이로인해 discriminator, generator 모두 서로 자리를 바꾸어가며 쫓아다니게 되고, global optimum에 수렴하지 못하게 된다. 이런 현상을 oscilation이라고 한다.&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- 모드 붕괴&lt;/b&gt;&lt;span&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;400&quot; data-origin-height=&quot;211&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TGgTj/btsPLOnLFAV/zhrT5IwUKq7yrJTQy2TP7K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TGgTj/btsPLOnLFAV/zhrT5IwUKq7yrJTQy2TP7K/img.png&quot; data-alt=&quot;상 : unrolledGAN, 하 : vanilla GAN&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TGgTj/btsPLOnLFAV/zhrT5IwUKq7yrJTQy2TP7K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTGgTj%2FbtsPLOnLFAV%2FzhrT5IwUKq7yrJTQy2TP7K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;211&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;211&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;상 : unrolledGAN, 하 : vanilla GAN&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #24292f; text-align: start;&quot;&gt;GAN을 training 할 때 보여주는 많은 수의 training set 중에서 우연히 딱 하나의 training image 와 비슷한 image 를 generation 했다고 가정해본다. 그렇게되면, 그 이미지와 비슷한 결과물을 냈으니 그 이미지와 최대한 비슷하게 만드는 쪽으로 gradient update가 일어나게 되고 , 상당히 많은 수의 training set을 보여줬음에도 불구하고 몇 가지 이미지에 대해서만 비슷한 결과물을 생성하게 된다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- 손실값 모니터링의 어려움&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;GAN의 손실 함수를 모니터링하기 어려워 학습 과정을 추적하는 데 어려움이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p 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;&lt;b&gt;1-4 GAN 실습 코드&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://colab.research.google.com/drive/12CqGv89Z14jXR5RHLFI9XAEXQ4YhlK5R?source=post_page-----a073a5425ef2---------------------------------------#scrollTo=GwIcTTcmRejK&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://colab.research.google.com/drive/12CqGv89Z14jXR5RHLFI9XAEXQ4YhlK5R?source=post_page-----a073a5425ef2---------------------------------------#scrollTo=GwIcTTcmRejK&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1754553626102&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[Hands-On] Understanding GAN and Implementation.ipynb&quot; data-og-description=&quot;Colab notebook&quot; data-og-host=&quot;colab.research.google.com&quot; data-og-source-url=&quot;https://colab.research.google.com/drive/12CqGv89Z14jXR5RHLFI9XAEXQ4YhlK5R?source=post_page-----a073a5425ef2---------------------------------------#scrollTo=GwIcTTcmRejK&quot; data-og-url=&quot;https://colab.research.google.com/drive/12CqGv89Z14jXR5RHLFI9XAEXQ4YhlK5R&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Dlxhs/hyZuA8esgs/QeCSUoEDgRxpuW9rmCc5F0/img.png?width=220&amp;amp;height=220&amp;amp;face=0_0_220_220&quot;&gt;&lt;a href=&quot;https://colab.research.google.com/drive/12CqGv89Z14jXR5RHLFI9XAEXQ4YhlK5R?source=post_page-----a073a5425ef2---------------------------------------#scrollTo=GwIcTTcmRejK&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://colab.research.google.com/drive/12CqGv89Z14jXR5RHLFI9XAEXQ4YhlK5R?source=post_page-----a073a5425ef2---------------------------------------#scrollTo=GwIcTTcmRejK&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Dlxhs/hyZuA8esgs/QeCSUoEDgRxpuW9rmCc5F0/img.png?width=220&amp;amp;height=220&amp;amp;face=0_0_220_220');&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;[Hands-On] Understanding GAN and Implementation.ipynb&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Colab notebook&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;colab.research.google.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;&lt;b&gt;2. GAN 시리즈&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Klk0K/btsPKHiNwJN/q0Hv1LvWRTvMn1y4u1xKu1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Klk0K/btsPKHiNwJN/q0Hv1LvWRTvMn1y4u1xKu1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Klk0K/btsPKHiNwJN/q0Hv1LvWRTvMn1y4u1xKu1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKlk0K%2FbtsPKHiNwJN%2Fq0Hv1LvWRTvMn1y4u1xKu1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;362&quot; data-origin-width=&quot;1280&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;GAN의 종류는 많고 또 그 종류마다 쓰임새 또한 다르다고 말할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;참조&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://medium.com/@hugmanskj/gan%EC%97%90-%EB%8C%80%ED%95%9C-%EC%9D%B4%ED%95%B4-a073a5425ef2&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://medium.com/@hugmanskj/gan%EC%97%90-%EB%8C%80%ED%95%9C-%EC%9D%B4%ED%95%B4-a073a5425ef2&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1754552653525&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;GAN에 대한 이해&quot; data-og-description=&quot;생성적 적대 신경망(GAN)의 기본 개념, 훈련 방법, 응용 사례를 실용적인 예제와 구현 팁과 함께 살펴보세요.&quot; data-og-host=&quot;medium.com&quot; data-og-source-url=&quot;https://medium.com/@hugmanskj/gan%EC%97%90-%EB%8C%80%ED%95%9C-%EC%9D%B4%ED%95%B4-a073a5425ef2&quot; data-og-url=&quot;https://medium.com/@hugmanskj/gan%EC%97%90-%EB%8C%80%ED%95%9C-%EC%9D%B4%ED%95%B4-a073a5425ef2&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/d0sUxu/hyZuJqz8LM/kJQyGlVAYNh8xmivjUgtNK/img.png?width=1200&amp;amp;height=901&amp;amp;face=0_0_1200_901&quot;&gt;&lt;a href=&quot;https://medium.com/@hugmanskj/gan%EC%97%90-%EB%8C%80%ED%95%9C-%EC%9D%B4%ED%95%B4-a073a5425ef2&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://medium.com/@hugmanskj/gan%EC%97%90-%EB%8C%80%ED%95%9C-%EC%9D%B4%ED%95%B4-a073a5425ef2&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/d0sUxu/hyZuJqz8LM/kJQyGlVAYNh8xmivjUgtNK/img.png?width=1200&amp;amp;height=901&amp;amp;face=0_0_1200_901');&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;GAN에 대한 이해&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;생성적 적대 신경망(GAN)의 기본 개념, 훈련 방법, 응용 사례를 실용적인 예제와 구현 팁과 함께 살펴보세요.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;medium.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://roytravel.tistory.com/109&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://roytravel.tistory.com/109&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1754552657071&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[컴퓨터 비전] All About GAN (Generative Adversarial Nets)&quot; data-og-description=&quot;1. GAN 모델 개요 GAN이란 무엇인가? GAN은 Generative Adversarial Nets이라는 논문을 통해 나온 모델로 위와 같이 진짜와 동일해 보이는 이미지를 생성하는 모델이다. 그렇다면 우선 GAN은 언제 만들어졌고&quot; data-og-host=&quot;roytravel.tistory.com&quot; data-og-source-url=&quot;https://roytravel.tistory.com/109&quot; data-og-url=&quot;https://roytravel.tistory.com/109&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dznyLE/hyZrpz9LbR/abm4AmFUTYKBsG2B2Z9NWk/img.png?width=242&amp;amp;height=128&amp;amp;face=21_14_212_42,https://scrap.kakaocdn.net/dn/cQjHUv/hyZuKwhZOy/Q2BthEaHwQl2K0QmQuo4d0/img.png?width=242&amp;amp;height=128&amp;amp;face=21_14_212_42,https://scrap.kakaocdn.net/dn/ovvxW/hyZrm4woOj/GUwOJzhY1ZDvIrH1RpVBT1/img.png?width=1280&amp;amp;height=768&amp;amp;face=50_74_1224_744&quot;&gt;&lt;a href=&quot;https://roytravel.tistory.com/109&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://roytravel.tistory.com/109&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dznyLE/hyZrpz9LbR/abm4AmFUTYKBsG2B2Z9NWk/img.png?width=242&amp;amp;height=128&amp;amp;face=21_14_212_42,https://scrap.kakaocdn.net/dn/cQjHUv/hyZuKwhZOy/Q2BthEaHwQl2K0QmQuo4d0/img.png?width=242&amp;amp;height=128&amp;amp;face=21_14_212_42,https://scrap.kakaocdn.net/dn/ovvxW/hyZrm4woOj/GUwOJzhY1ZDvIrH1RpVBT1/img.png?width=1280&amp;amp;height=768&amp;amp;face=50_74_1224_744');&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;[컴퓨터 비전] All About GAN (Generative Adversarial Nets)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;1. GAN 모델 개요 GAN이란 무엇인가? GAN은 Generative Adversarial Nets이라는 논문을 통해 나온 모델로 위와 같이 진짜와 동일해 보이는 이미지를 생성하는 모델이다. 그렇다면 우선 GAN은 언제 만들어졌고&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;roytravel.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://woochan-autobiography.tistory.com/935&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://woochan-autobiography.tistory.com/935&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1754552759000&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;GAN (Generative Adversarial Network)&quot; data-og-description=&quot;GAN (Generative Adversarial Network) GAN은 Data를 만들어내는 Generator와 만들어진 Data를 평가하는 Discriminator가 서로 대립(Adversarial)적으로 학습해가며 성능을 점차 개선해 나가자는 개념이다. 여기서 GAN의 &quot; data-og-host=&quot;woochan-autobiography.tistory.com&quot; data-og-source-url=&quot;https://woochan-autobiography.tistory.com/935&quot; data-og-url=&quot;https://woochan-autobiography.tistory.com/935&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Q7j7P/hyZuJRE8GA/9yPO1nNz8bLKii6kiXzfK1/img.png?width=800&amp;amp;height=315&amp;amp;face=0_0_800_315,https://scrap.kakaocdn.net/dn/EHB96/hyZuDjy8mw/LzeFKVU6xwEvJyBPkktrNk/img.png?width=800&amp;amp;height=315&amp;amp;face=0_0_800_315,https://scrap.kakaocdn.net/dn/gLSb9/hyZrzJxDWK/ODPt8B8YaVaWNx6WhN4kB0/img.png?width=1610&amp;amp;height=974&amp;amp;face=0_0_1610_974&quot;&gt;&lt;a href=&quot;https://woochan-autobiography.tistory.com/935&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://woochan-autobiography.tistory.com/935&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Q7j7P/hyZuJRE8GA/9yPO1nNz8bLKii6kiXzfK1/img.png?width=800&amp;amp;height=315&amp;amp;face=0_0_800_315,https://scrap.kakaocdn.net/dn/EHB96/hyZuDjy8mw/LzeFKVU6xwEvJyBPkktrNk/img.png?width=800&amp;amp;height=315&amp;amp;face=0_0_800_315,https://scrap.kakaocdn.net/dn/gLSb9/hyZrzJxDWK/ODPt8B8YaVaWNx6WhN4kB0/img.png?width=1610&amp;amp;height=974&amp;amp;face=0_0_1610_974');&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;GAN (Generative Adversarial Network)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;GAN (Generative Adversarial Network) GAN은 Data를 만들어내는 Generator와 만들어진 Data를 평가하는 Discriminator가 서로 대립(Adversarial)적으로 학습해가며 성능을 점차 개선해 나가자는 개념이다. 여기서 GAN의&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;woochan-autobiography.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://bo-10000.tistory.com/116&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://bo-10000.tistory.com/116&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1754552776754&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[GAN Overview] GAN 주요 모델 정리 (GAN survey 논문 리뷰)&quot; data-og-description=&quot;Generative Adversarial Networks in Computer Vision: A Survey and Taxonomy (CSUR 2021) 을 바탕으로, 중요한 GAN 모델들을 정리해 보고자 합니다. 논문에는 더 다양한 모델들이 소개되어 있으나, 그 중 일부만 정리하였&quot; data-og-host=&quot;bo-10000.tistory.com&quot; data-og-source-url=&quot;https://bo-10000.tistory.com/116&quot; data-og-url=&quot;https://bo-10000.tistory.com/116&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/JYU2I/hyZrvG7HqS/C364l8nvepbbKvC7FKJ6k1/img.png?width=800&amp;amp;height=584&amp;amp;face=0_0_800_584,https://scrap.kakaocdn.net/dn/miTA5/hyZuBMQ4SS/MNl8GvoWu5wRMthkMgzSE0/img.png?width=800&amp;amp;height=584&amp;amp;face=0_0_800_584,https://scrap.kakaocdn.net/dn/cOZaRm/hyZuILXm20/8yOemMdxHX9rGpsCzcnHo0/img.png?width=982&amp;amp;height=718&amp;amp;face=0_0_982_718&quot;&gt;&lt;a href=&quot;https://bo-10000.tistory.com/116&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://bo-10000.tistory.com/116&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/JYU2I/hyZrvG7HqS/C364l8nvepbbKvC7FKJ6k1/img.png?width=800&amp;amp;height=584&amp;amp;face=0_0_800_584,https://scrap.kakaocdn.net/dn/miTA5/hyZuBMQ4SS/MNl8GvoWu5wRMthkMgzSE0/img.png?width=800&amp;amp;height=584&amp;amp;face=0_0_800_584,https://scrap.kakaocdn.net/dn/cOZaRm/hyZuILXm20/8yOemMdxHX9rGpsCzcnHo0/img.png?width=982&amp;amp;height=718&amp;amp;face=0_0_982_718');&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;[GAN Overview] GAN 주요 모델 정리 (GAN survey 논문 리뷰)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Generative Adversarial Networks in Computer Vision: A Survey and Taxonomy (CSUR 2021) 을 바탕으로, 중요한 GAN 모델들을 정리해 보고자 합니다. 논문에는 더 다양한 모델들이 소개되어 있으나, 그 중 일부만 정리하였&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;bo-10000.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://wikidocs.net/146217&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://wikidocs.net/146217&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1754553350289&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;2) Generative Adversarial Networks (GANs)&quot; data-og-description=&quot;## Background GAN은 2014년, Ian Goodfellow의 &amp;quot;Generative Adversarial Network&amp;quot;라는 논문에서 처음 제시되었습니다. CNN의 &amp;hellip;&quot; data-og-host=&quot;wikidocs.net&quot; data-og-source-url=&quot;https://wikidocs.net/146217&quot; data-og-url=&quot;https://wikidocs.net/146217&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bEAeVn/hyZuJ5co5N/NdxYEV3sr04M9MTTu3Q411/img.jpg?width=100&amp;amp;height=99&amp;amp;face=0_0_100_99,https://scrap.kakaocdn.net/dn/ddQ55r/hyZrpfSq6j/FqnzlDKdOyikKADcx4C6lk/img.png?width=2300&amp;amp;height=1494&amp;amp;face=0_0_2300_1494,https://scrap.kakaocdn.net/dn/b2tEBo/hyZuyo2MUG/irCOJAfrzQD6MXfSQIuYpk/img.png?width=1498&amp;amp;height=692&amp;amp;face=0_0_1498_692&quot;&gt;&lt;a href=&quot;https://wikidocs.net/146217&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://wikidocs.net/146217&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bEAeVn/hyZuJ5co5N/NdxYEV3sr04M9MTTu3Q411/img.jpg?width=100&amp;amp;height=99&amp;amp;face=0_0_100_99,https://scrap.kakaocdn.net/dn/ddQ55r/hyZrpfSq6j/FqnzlDKdOyikKADcx4C6lk/img.png?width=2300&amp;amp;height=1494&amp;amp;face=0_0_2300_1494,https://scrap.kakaocdn.net/dn/b2tEBo/hyZuyo2MUG/irCOJAfrzQD6MXfSQIuYpk/img.png?width=1498&amp;amp;height=692&amp;amp;face=0_0_1498_692');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;2) Generative Adversarial Networks (GANs)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;## Background GAN은 2014년, Ian Goodfellow의 &quot;Generative Adversarial Network&quot;라는 논문에서 처음 제시되었습니다. CNN의 &amp;hellip;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;wikidocs.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://baobao.tistory.com/66&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://baobao.tistory.com/66&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1754553994054&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;GAN 겉햙기 (GAN 종류)&quot; data-og-description=&quot;GAN 은 그 종류가 엄청 많고 또 종류마다 그 쓰임새가 다르다고 말할수 있습니다. 그렇다면 그 GAN 들의 종류는 무엇이며 또 어떤 역할을 하는걸까요? Deep Convolution (DCGAN) 머신러닝과 딥러닝은 생성&quot; data-og-host=&quot;baobao.tistory.com&quot; data-og-source-url=&quot;https://baobao.tistory.com/66&quot; data-og-url=&quot;https://baobao.tistory.com/66&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dHJG5m/hyZuJ5cwvf/7ppvY6HynTR8VMXr7xv7N1/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/JIZa5/hyZuILXySp/Bg6KUAkNMmdodGQwIlDG81/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/fZU7t/hyZuBTC4rT/52Zm7GpIRWHbAyGs41byE1/img.png?width=1280&amp;amp;height=600&amp;amp;face=0_0_1280_600&quot;&gt;&lt;a href=&quot;https://baobao.tistory.com/66&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://baobao.tistory.com/66&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dHJG5m/hyZuJ5cwvf/7ppvY6HynTR8VMXr7xv7N1/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/JIZa5/hyZuILXySp/Bg6KUAkNMmdodGQwIlDG81/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/fZU7t/hyZuBTC4rT/52Zm7GpIRWHbAyGs41byE1/img.png?width=1280&amp;amp;height=600&amp;amp;face=0_0_1280_600');&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;GAN 겉햙기 (GAN 종류)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;GAN 은 그 종류가 엄청 많고 또 종류마다 그 쓰임새가 다르다고 말할수 있습니다. 그렇다면 그 GAN 들의 종류는 무엇이며 또 어떤 역할을 하는걸까요? Deep Convolution (DCGAN) 머신러닝과 딥러닝은 생성&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;baobao.tistory.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;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>용어 정리</category>
      <author>duckracoon5z</author>
      <guid isPermaLink="true">https://duckracoon5z.tistory.com/18</guid>
      <comments>https://duckracoon5z.tistory.com/18#entry18comment</comments>
      <pubDate>Wed, 13 Aug 2025 15:09:00 +0900</pubDate>
    </item>
    <item>
      <title>OCR</title>
      <link>https://duckracoon5z.tistory.com/17</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. OCR(Optical Character Recognition)&lt;/b&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1-1 OCR이란?&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;OCR(광학 문자 인식)은 자동화된 데이터 추출을 사용하여 텍스트 이미지를 기계가 읽을 수 있는 형식으로 빠르게 변환하는 기술이다. OCR 모델의 구조는 text detection(글자 위치 찾기)와 text recognition(어떤 글자 인지를 인식) 이렇게 두 개로 구성되어있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;612&quot; data-origin-height=&quot;283&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bBSYID/btsPDnZvG4t/KZKQYxKkgFmumkau8DuEo1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bBSYID/btsPDnZvG4t/KZKQYxKkgFmumkau8DuEo1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bBSYID/btsPDnZvG4t/KZKQYxKkgFmumkau8DuEo1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbBSYID%2FbtsPDnZvG4t%2FKZKQYxKkgFmumkau8DuEo1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;571&quot; height=&quot;264&quot; data-origin-width=&quot;612&quot; data-origin-height=&quot;283&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;OCR은 스캐너를 사용하여 문서의 물리적 형태를 편집 가능한 디지털 텍스트로 재처리한다. 그 순서는 아래와 같다 :&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;nbsp;&lt;/b&gt;모든 문서 페이지를 복사한 다음 OCR 엔진이 디지털 문서를 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;&lt;b&gt;전처리 :&amp;nbsp;&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;b&gt;텍스트 인식 :&amp;nbsp;&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;- 패턴 인식 : OCR 프로그램은 스캔한 문서 또는 이미지 파일의 템플릿과 비교하여 문자를 인식할 수 있도록 다양한 글꼴과 형식의 텍스트 예시에 대해 학습되었다. 이 기능이 작동하기 위해서는 OCR 프로그램에서 이미 학습된 글꼴로 되어 있어야 한다. 다양한 문자를 사용하는 언어를 고려할 때 모든 글꼴과 언어 조합에 대한 학습은 엄청난 시스템 소모가 된다.&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;- 기능 인식 : OCR 프로그램이 학습되지 않은 글꼴을 분석할 때 사용한다. OCR은 스캔한 문서의 문자를 인식하기 위해 특정 문자 도는 숫자의 기능에 관한 규칙을 적용한다. 기능에는 문자의 사선, 교차선, 루프 도는 곡선의 수가 포함된다. 문자가 식별되면 컴퓨터 시스템에서 추가 조작을 처리하는 데 사용하는 ASCII코드로 변환된다.&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;nbsp;&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;b&gt;후처리 :&amp;nbsp;&lt;/b&gt;수집된 정보는 편집 가능한 형식 또는 PDF인 디지털 파일로 저장된다. 일부 시스템은 보다 완벽한 문서 관리를 위해 입력 이미지와 OCR 이후 버전을 모두 유지한다.&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;&lt;b&gt;1-2 OCR 알고리즘 유형&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1) Two stage algorithm : OCR Text Dectetion과 Text Recognition을 분리해서 학습 Pipeline 구성&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;563&quot; data-origin-height=&quot;296&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cHd2nO/btsPFhQ3yO2/Z34xkwpiQvwFIdWSMomV71/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cHd2nO/btsPFhQ3yO2/Z34xkwpiQvwFIdWSMomV71/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cHd2nO/btsPFhQ3yO2/Z34xkwpiQvwFIdWSMomV71/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcHd2nO%2FbtsPFhQ3yO2%2FZ34xkwpiQvwFIdWSMomV71%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;296&quot; data-origin-width=&quot;563&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;우선 글자를 검출하는 Text Detection은 Object Detection 테스크를 문자 찾기로 확장한 영역이다. Input에는 전체 이미지를 넣고, Output으로는 텍스트가 있는 Bounding Box를 뽑아낸다. 이 때 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;다음 글자를 인식하는 Text Recognition은 검출된 문자가 텍스트로 무엇인지 가려내는 단계이다. Input으로는 텍스트만 있는 이미지가 들어가고, Output으로는 텍스트가 출력된다. 이 때 활용되는 모델로는 attention을 활용한 RNN 계열 모델, Transformer 그리고 CRNN이 있다.&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;이 알고리즘에서 발생할 수 있는 문제점으로는 글자 검출에서 Bounding Box가 잘못된 경우 글자 인식도 잘못될 경우가 있다. 그 다음은 두 단계가 각자 다른 backbone(특징 추출기)을 쓸 수 있다. 예를 들자면 Detection은 CNN 기반의 ResNet으로 특징을 뽑고, Recognition은 또 다른 CNN+RNN 기반의 구조에서 다시 이미지를 처리한다는 말이다. 이는 즉 같은 이미지를 두 번 다르게 처리하는 구조가 되는 것이다. 이 둘을 하나로 합치는 접근 방식이 &lt;b&gt;E2E OCR 방법론&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;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;2) &amp;nbsp;End-to-End Scene Text Detection &amp;amp; Recognition :&amp;nbsp;Detection과 Recognition 한번에 E2E OCR 방법론&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;582&quot; data-origin-height=&quot;568&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ccdxMk/btsPCqvKLlG/sRYJpYu8I9UguzU5oduae1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ccdxMk/btsPCqvKLlG/sRYJpYu8I9UguzU5oduae1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ccdxMk/btsPCqvKLlG/sRYJpYu8I9UguzU5oduae1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FccdxMk%2FbtsPCqvKLlG%2FsRYJpYu8I9UguzU5oduae1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;534&quot; data-origin-width=&quot;582&quot; data-origin-height=&quot;568&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이 방식의 특징으로는 Input으로 전체 이미지를 넣고 Output으로 텍스트가 있는 Bounding Box와 텍스트를 같이 추출한다. 검출과 인식을 한번에 진행함으로서 모델 학습 업데이트 측면에서 편리하게 된다. Image Backbone을 공유함으로서 두 번의 Image Backbone Forward를 거칠 필요가 없어진다. 예시 알고리즘으로는 FOTS&lt;span style=&quot;text-align: left;&quot;&gt;(Fast Oriented Text Spotting with a Unified Network) 그리고 &lt;span style=&quot;text-align: left;&quot;&gt;DEER (Detection agnostic End to End Recognizer)이 있다.&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;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;(FOTS와 DEER 아래 참조)&lt;/span&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;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;https://cat-uni.tistory.com/37&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://cat-uni.tistory.com/37&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1753947112894&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;FOTS : Fast Oriented Text Spotting with a Unified Network&quot; data-og-description=&quot;-개요 / 차별점- 기존에는 Text Detection -&amp;gt; Text Recognition 의 2 stage 모델이 많이 발전했다면, 이 논문에서 말하는 Text Spotting 은 두 stage 를 한번에 하는 것이다. 이렇게 Text Spotting 을 하게 되면, 1. cost 를&quot; data-og-host=&quot;cat-uni.tistory.com&quot; data-og-source-url=&quot;https://cat-uni.tistory.com/37&quot; data-og-url=&quot;https://cat-uni.tistory.com/37&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bPJBHl/hyZrtg9APL/CKotHaDzBkP5lUCYBWbizk/img.jpg?width=800&amp;amp;height=1142&amp;amp;face=0_0_800_1142,https://scrap.kakaocdn.net/dn/D2RGA/hyZqYIBVlI/9DBvdBGKoqsATKHt4rrqAK/img.jpg?width=800&amp;amp;height=1142&amp;amp;face=0_0_800_1142,https://scrap.kakaocdn.net/dn/ceuDqQ/hyZqRin5ty/WHH9ukf2KZxzYVtG9qMYbK/img.jpg?width=828&amp;amp;height=1182&amp;amp;face=0_0_828_1182&quot;&gt;&lt;a href=&quot;https://cat-uni.tistory.com/37&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://cat-uni.tistory.com/37&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bPJBHl/hyZrtg9APL/CKotHaDzBkP5lUCYBWbizk/img.jpg?width=800&amp;amp;height=1142&amp;amp;face=0_0_800_1142,https://scrap.kakaocdn.net/dn/D2RGA/hyZqYIBVlI/9DBvdBGKoqsATKHt4rrqAK/img.jpg?width=800&amp;amp;height=1142&amp;amp;face=0_0_800_1142,https://scrap.kakaocdn.net/dn/ceuDqQ/hyZqRin5ty/WHH9ukf2KZxzYVtG9qMYbK/img.jpg?width=828&amp;amp;height=1182&amp;amp;face=0_0_828_1182');&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;FOTS : Fast Oriented Text Spotting with a Unified Network&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;-개요 / 차별점- 기존에는 Text Detection -&amp;gt; Text Recognition 의 2 stage 모델이 많이 발전했다면, 이 논문에서 말하는 Text Spotting 은 두 stage 를 한번에 하는 것이다. 이렇게 Text Spotting 을 하게 되면, 1. cost 를&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;cat-uni.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://ainotes.tistory.com/22&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://ainotes.tistory.com/22&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1753947183485&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;DEER: Detection-agnostic End-to-End Recognizer for Scene Text Spotting&quot; data-og-description=&quot;&amp;quot; data-ke-type=&amp;quot;html&amp;quot;&amp;gt;HTML 삽입미리보기할 수 없는 소스&amp;nbsp;&amp;nbsp;이번글에는 NAVER Clova 팀에서 발표한 DEER: Detection-agnostic End-to-End Recognizer for Scene Text Spotting 라는 모델에 대해 정리해봤습니다.DETR을 기반으로&quot; data-og-host=&quot;ainotes.tistory.com&quot; data-og-source-url=&quot;https://ainotes.tistory.com/22&quot; data-og-url=&quot;https://ainotes.tistory.com/22&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bcUpQ2/hyZrzVXX3q/3Eh5QCNERwXJiI3WjWnz2k/img.png?width=800&amp;amp;height=798&amp;amp;face=0_0_800_798,https://scrap.kakaocdn.net/dn/VjSRN/hyZqOeSfBv/VVeAfXH2dy4zfhfCQJasLK/img.png?width=800&amp;amp;height=798&amp;amp;face=0_0_800_798,https://scrap.kakaocdn.net/dn/cGuvAY/hyZru1p16b/lnKSOyIHB8sgnhNIKgaen0/img.png?width=1063&amp;amp;height=1061&amp;amp;face=0_0_1063_1061&quot;&gt;&lt;a href=&quot;https://ainotes.tistory.com/22&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://ainotes.tistory.com/22&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bcUpQ2/hyZrzVXX3q/3Eh5QCNERwXJiI3WjWnz2k/img.png?width=800&amp;amp;height=798&amp;amp;face=0_0_800_798,https://scrap.kakaocdn.net/dn/VjSRN/hyZqOeSfBv/VVeAfXH2dy4zfhfCQJasLK/img.png?width=800&amp;amp;height=798&amp;amp;face=0_0_800_798,https://scrap.kakaocdn.net/dn/cGuvAY/hyZru1p16b/lnKSOyIHB8sgnhNIKgaen0/img.png?width=1063&amp;amp;height=1061&amp;amp;face=0_0_1063_1061');&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;DEER: Detection-agnostic End-to-End Recognizer for Scene Text Spotting&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&quot; data-ke-type=&quot;html&quot;&amp;gt;HTML 삽입미리보기할 수 없는 소스&amp;nbsp;&amp;nbsp;이번글에는 NAVER Clova 팀에서 발표한 DEER: Detection-agnostic End-to-End Recognizer for Scene Text Spotting 라는 모델에 대해 정리해봤습니다.DETR을 기반으로&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;ainotes.tistory.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 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. OCR-VQA&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;813&quot; data-origin-height=&quot;342&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cpWK7h/btsPCR0ZvyD/IohOHdE3LRpLmjzlgqROtk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cpWK7h/btsPCR0ZvyD/IohOHdE3LRpLmjzlgqROtk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cpWK7h/btsPCR0ZvyD/IohOHdE3LRpLmjzlgqROtk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcpWK7h%2FbtsPCR0ZvyD%2FIohOHdE3LRpLmjzlgqROtk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;813&quot; height=&quot;342&quot; data-origin-width=&quot;813&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;&lt;span style=&quot;color: #000000;&quot;&gt;OCR-VQA는 OCR 기술을 기반으로, 이미지 내의 텍스트 정보를 이해하고 해당 정보를 바탕으로 질문에 응답하는 시각 질문응답 과제이다. &lt;span style=&quot;text-align: start;&quot;&gt;이를 위해 OCR-VQA 모델은 이미지 입력을 받아 텍스트 추출 알고리즘을 적용하고, 추출된 텍스트를 자연어 처리 기술을 이용하여 의미 분석을 수행한다. 그리고 질문과 이미지 속 텍스트를 비교하여 정확한 답변을 도출한다.&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;background-color: #ffffff; color: #1a1a1a; text-align: start;&quot;&gt;OCR-VQA 모델은 주로 딥러닝과 자연어 처리 기법을 사용하여 구축되며, 이미지 처리와 텍스트 처리를 결합한 형태다. OCR-VQA 모델은 미리 학습된 신경망을 구성하여 이미지 속 텍스트를 추출하고, 추출된 텍스트와 질문의 의미를 분석하여 답변을 생성한다. &lt;span style=&quot;background-color: #ffffff; color: #1a1a1a; text-align: start;&quot;&gt;OCR-VQA 모델의 훈련 방법은 크게 이미지 속 텍스트 추출 및 분석, 질문과 텍스트의 비교, 답변 생성 과정으로 나뉜다. 훈련 데이터로는 이미지와 그에 대한 질문, 그리고 정답으로 구성된 데이터셋이 사용된다. 이 데이터셋을 이용하여 OCR VQA 모델을 학습시키고, 정확한 답변을 생성할 수 있도록 한다.&lt;/span&gt; &lt;/span&gt;&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;&lt;b&gt;3. OCR-VQA와 TextVQA와의 상관관계&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 320px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px; text-align: center;&quot;&gt;&lt;b&gt;구분&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px; text-align: center;&quot;&gt;&lt;b&gt;설명&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 66px;&quot;&gt;
&lt;td style=&quot;height: 66px; text-align: center;&quot;&gt;&lt;b&gt;공통점&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 66px;&quot;&gt;- 둘 다 이미지 내 텍스트 인식(OCR)이 필수다&lt;br /&gt;- 시각 정보와 문자를 결합해 이해하는 능력을 요구된다&lt;br /&gt;- 대부분 scene-text 기반 VQA 모델로 해결된다&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 69px;&quot;&gt;
&lt;td style=&quot;height: 69px; text-align: center;&quot;&gt;&lt;b&gt;기술 공유&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 69px;&quot;&gt;- OCR 인식기 + VQA 모델이라는 파이프라인을 유사하게 사용된다&lt;br /&gt;- 문자를 추출한 후 텍스트 reasoning 수행하는 구조가 동일하다&lt;br /&gt;- TrOCR, M4C, Donut 같은 모델은 양쪽에 모두 적용 가능하다&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 81px;&quot;&gt;
&lt;td style=&quot;height: 81px; text-align: center;&quot;&gt;&lt;b&gt;차이점으로 인한 보완성&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 81px;&quot;&gt;- OCR-VQA는 문서에 가까운 이미지이기 때문에, 정형 텍스트 기반 reasoning&lt;br /&gt;- TextVQA는 자연 이미지이므로 비정형 텍스트 + 장면 이해가 필요하다. 따라서 하나만으로는 전체 scene-text 이해가 부족하다&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 83px;&quot;&gt;
&lt;td style=&quot;height: 83px; text-align: center;&quot;&gt;&lt;b&gt;공통 목표&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 83px;&quot;&gt;- &quot;이미지 속 문자와 문맥을 모두 활용한 질문 응답&quot;이라는 목표 공유하고 있다&lt;br /&gt;- 결국 둘 다 텍스트 인식 + 시각적 맥락 reasoning의 문제로 귀결된다&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;p data-ke-size=&quot;size16&quot;&gt;예를 들자면 TextVQA의 경우,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[가게 사진]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Q : 이 가게의 이름은 무엇인가요?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;= 이미지 속 간판에 있는 글자를 OCR로 읽고, 맥락과 함께 해석이 필요하다&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;반면에 OCR-VQA의 경우,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[책 표지 이미지]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Q : 이 책의 저저는 누구인가요?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;= OCR로 텍스트를 읽은 뒤, 제목/저자/출판사 등을 구분하여 reasoning이 필요하다&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;결국 둘 다 OCR기반이며 문맥적 reasoning이 필요하지만, 적용 장면과 데이터 도메인이 다르다. 다만&amp;nbsp; OCR-VQA와 TextVQA는&amp;nbsp; 모두 이미지 내 텍스트를 기반으로 질문에 답하는 테스크이며, 기술적 구조와 목표가 유사하여 서로 높은 상관관계를 가진다.&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;&lt;b&gt;참조&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.ibm.com/kr-ko/think/topics/optical-character-recognition&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.ibm.com/kr-ko/think/topics/optical-character-recognition&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1753947228238&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;광학 문자 인식(OCR)이란 무엇인가요? | IBM&quot; data-og-description=&quot;광학 문자 인식은 자동화된 데이터 추출과 스토리지 기능을 활용하여 시간, 비용 및 기타 리소스를 절약합니다.&quot; data-og-host=&quot;www.ibm.com&quot; data-og-source-url=&quot;https://www.ibm.com/kr-ko/think/topics/optical-character-recognition&quot; data-og-url=&quot;https://www.ibm.com/kr-ko/think/topics/optical-character-recognition&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Txm2Z/hyZqShiz7f/GZKUw5XRfnnavBqKaU2xdk/img.jpg?width=1280&amp;amp;height=854&amp;amp;face=436_202_856_348,https://scrap.kakaocdn.net/dn/JQ6AY/hyZqOeSgrz/7oDlKRxK9bhSrKapabSGqK/img.jpg?width=352&amp;amp;height=352&amp;amp;face=0_0_352_352&quot;&gt;&lt;a href=&quot;https://www.ibm.com/kr-ko/think/topics/optical-character-recognition&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.ibm.com/kr-ko/think/topics/optical-character-recognition&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Txm2Z/hyZqShiz7f/GZKUw5XRfnnavBqKaU2xdk/img.jpg?width=1280&amp;amp;height=854&amp;amp;face=436_202_856_348,https://scrap.kakaocdn.net/dn/JQ6AY/hyZqOeSgrz/7oDlKRxK9bhSrKapabSGqK/img.jpg?width=352&amp;amp;height=352&amp;amp;face=0_0_352_352');&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;광학 문자 인식(OCR)이란 무엇인가요? | IBM&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;광학 문자 인식은 자동화된 데이터 추출과 스토리지 기능을 활용하여 시간, 비용 및 기타 리소스를 절약합니다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.ibm.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;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://huidea.tistory.com/312&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://huidea.tistory.com/312&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1753947208266&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[1] OCR(Optical Character Recognition) 의 모델 구조, 평가 방법, 사용가능한 API&quot; data-og-description=&quot;이번 게시물에서는 OCR(Optical Character Recognition) 의 모델 구조, 평가 방법, 사용가능한 API 종류에 대해 설명하고&amp;nbsp; 다음 게시물에서 각 API 별 장단점과 실제 데이터로 성능을 비교한 결과를 공유하&quot; data-og-host=&quot;huidea.tistory.com&quot; data-og-source-url=&quot;https://huidea.tistory.com/312&quot; data-og-url=&quot;https://huidea.tistory.com/312&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dp25od/hyZq2KXUBt/ka1YBRfNE6SnKWpKhhef9K/img.png?width=612&amp;amp;height=283&amp;amp;face=0_0_612_283,https://scrap.kakaocdn.net/dn/taL4T/hyZqPkywRk/riSAaXxb3Lj2laL3QJJE0k/img.png?width=612&amp;amp;height=283&amp;amp;face=0_0_612_283,https://scrap.kakaocdn.net/dn/b3fQBR/hyZqOMKSlI/NK6UEMJAsbE5rDjD35nvo0/img.png?width=582&amp;amp;height=568&amp;amp;face=0_0_582_568&quot;&gt;&lt;a href=&quot;https://huidea.tistory.com/312&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://huidea.tistory.com/312&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dp25od/hyZq2KXUBt/ka1YBRfNE6SnKWpKhhef9K/img.png?width=612&amp;amp;height=283&amp;amp;face=0_0_612_283,https://scrap.kakaocdn.net/dn/taL4T/hyZqPkywRk/riSAaXxb3Lj2laL3QJJE0k/img.png?width=612&amp;amp;height=283&amp;amp;face=0_0_612_283,https://scrap.kakaocdn.net/dn/b3fQBR/hyZqOMKSlI/NK6UEMJAsbE5rDjD35nvo0/img.png?width=582&amp;amp;height=568&amp;amp;face=0_0_582_568');&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;[1] OCR(Optical Character Recognition) 의 모델 구조, 평가 방법, 사용가능한 API&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;이번 게시물에서는 OCR(Optical Character Recognition) 의 모델 구조, 평가 방법, 사용가능한 API 종류에 대해 설명하고&amp;nbsp; 다음 게시물에서 각 API 별 장단점과 실제 데이터로 성능을 비교한 결과를 공유하&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;huidea.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.themoonlight.io/ko/review/viocrvqa-novel-benchmark-dataset-and-vision-reader-for-visual-question-answering-by-understanding-vietnamese-text-in-images&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.themoonlight.io/ko/review/viocrvqa-novel-benchmark-dataset-and-vision-reader-for-visual-question-answering-by-understanding-vietnamese-text-in-images&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1753947378153&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[논문 리뷰] ViOCRVQA: Novel Benchmark Dataset and Vision Reader for Visual Question
  Answering by Understanding Vietnamese &quot; data-og-description=&quot;## ViOCRVQA 논문 상세 분석 (한국어) 안녕하세요! ViOCRVQA 논문에 대한 깊이 있는 분석을 요청하셨습니다. 자세한 설명과 함께 핵심 방법론을 기술적인 용어로 풀어 설명드리겠습니다. **1. 논문 개요&quot; data-og-host=&quot;www.themoonlight.io&quot; data-og-source-url=&quot;https://www.themoonlight.io/ko/review/viocrvqa-novel-benchmark-dataset-and-vision-reader-for-visual-question-answering-by-understanding-vietnamese-text-in-images&quot; data-og-url=&quot;https://www.themoonlight.io/ko/review/viocrvqa-novel-benchmark-dataset-and-vision-reader-for-visual-question-answering-by-understanding-vietnamese-text-in-images&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bL1sbV/hyZrmoOGLf/LFhKF8CXF7wueI6kEsfdmK/img.png?width=1429&amp;amp;height=566&amp;amp;face=0_0_1429_566,https://scrap.kakaocdn.net/dn/bw8Lgi/hyZrsvNNmM/VARAq8D5FmDmWZ5wFbSfR0/img.png?width=1429&amp;amp;height=566&amp;amp;face=0_0_1429_566,https://scrap.kakaocdn.net/dn/dOtXGJ/hyZrsvNNB3/Kq8FeOMHrjinR26P64KeKK/img.png?width=1280&amp;amp;height=800&amp;amp;face=0_0_1280_800&quot;&gt;&lt;a href=&quot;https://www.themoonlight.io/ko/review/viocrvqa-novel-benchmark-dataset-and-vision-reader-for-visual-question-answering-by-understanding-vietnamese-text-in-images&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.themoonlight.io/ko/review/viocrvqa-novel-benchmark-dataset-and-vision-reader-for-visual-question-answering-by-understanding-vietnamese-text-in-images&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bL1sbV/hyZrmoOGLf/LFhKF8CXF7wueI6kEsfdmK/img.png?width=1429&amp;amp;height=566&amp;amp;face=0_0_1429_566,https://scrap.kakaocdn.net/dn/bw8Lgi/hyZrsvNNmM/VARAq8D5FmDmWZ5wFbSfR0/img.png?width=1429&amp;amp;height=566&amp;amp;face=0_0_1429_566,https://scrap.kakaocdn.net/dn/dOtXGJ/hyZrsvNNB3/Kq8FeOMHrjinR26P64KeKK/img.png?width=1280&amp;amp;height=800&amp;amp;face=0_0_1280_800');&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;[논문 리뷰] ViOCRVQA: Novel Benchmark Dataset and Vision Reader for Visual Question Answering by Understanding Vietnamese&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;## ViOCRVQA 논문 상세 분석 (한국어) 안녕하세요! ViOCRVQA 논문에 대한 깊이 있는 분석을 요청하셨습니다. 자세한 설명과 함께 핵심 방법론을 기술적인 용어로 풀어 설명드리겠습니다. **1. 논문 개요&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.themoonlight.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.toolify.ai/ko/ai-news-kr/m3u7ls5gmgcgyqarr7wxczlmgprtdjvg-435241&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.toolify.ai/ko/ai-news-kr/m3u7ls5gmgcgyqarr7wxczlmgprtdjvg-435241&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1753947409968&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;이미지 내 텍스트 읽기에 의한 시각적 질문 답변 (연구 논문 요약)&quot; data-og-description=&quot;이미지 내 텍스트 읽기에 의한 시각적 질문 답변 (연구 논문 요약) var pageOptions = { &amp;quot;pubId&amp;quot;: &amp;quot;partner-pub-6153228957310599&amp;quot;, &amp;quot;styleId&amp;quot;: &amp;quot;1388998650&amp;quot;, &amp;quot;relatedSearchTargeting&amp;quot;: &amp;quot;content&amp;quot;, &amp;quot;resultsPageBaseUrl&amp;quot;: &amp;quot;https://www.toolify.ai&quot; data-og-host=&quot;www.toolify.ai&quot; data-og-source-url=&quot;https://www.toolify.ai/ko/ai-news-kr/m3u7ls5gmgcgyqarr7wxczlmgprtdjvg-435241&quot; data-og-url=&quot;https://www.toolify.ai/ko/ai-news-kr/m3u7ls5gmgcgyqarr7wxczlmgprtdjvg-435241&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/ecyqC4/hyZqOTtlPY/QG1gofnj7uPFjLYyPojpG0/img.png?width=910&amp;amp;height=200&amp;amp;face=0_0_910_200&quot;&gt;&lt;a href=&quot;https://www.toolify.ai/ko/ai-news-kr/m3u7ls5gmgcgyqarr7wxczlmgprtdjvg-435241&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.toolify.ai/ko/ai-news-kr/m3u7ls5gmgcgyqarr7wxczlmgprtdjvg-435241&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ecyqC4/hyZqOTtlPY/QG1gofnj7uPFjLYyPojpG0/img.png?width=910&amp;amp;height=200&amp;amp;face=0_0_910_200');&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;이미지 내 텍스트 읽기에 의한 시각적 질문 답변 (연구 논문 요약)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;이미지 내 텍스트 읽기에 의한 시각적 질문 답변 (연구 논문 요약) var pageOptions = { &quot;pubId&quot;: &quot;partner-pub-6153228957310599&quot;, &quot;styleId&quot;: &quot;1388998650&quot;, &quot;relatedSearchTargeting&quot;: &quot;content&quot;, &quot;resultsPageBaseUrl&quot;: &quot;https://www.toolify.ai&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.toolify.ai&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://ocr-vqa.github.io/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://ocr-vqa.github.io/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1753947828726&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;OCR-VQA&quot; data-og-description=&quot;Bibtex If you use this dataset, please cite: @InProceedings{mishraICDAR19, author = &amp;quot;Anand Mishra and Shashank Shekhar and Ajeet Kumar Singh and Anirban Chakraborty&amp;quot;, title = &amp;quot;OCR-VQA: Visual Question Answering by Reading Text in Images&amp;quot;, booktitle = &amp;quot;ICDA&quot; data-og-host=&quot;ocr-vqa.github.io&quot; data-og-source-url=&quot;https://ocr-vqa.github.io/&quot; data-og-url=&quot;https://ocr-vqa.github.io/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://ocr-vqa.github.io/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://ocr-vqa.github.io/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&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;OCR-VQA&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Bibtex If you use this dataset, please cite: @InProceedings{mishraICDAR19, author = &quot;Anand Mishra and Shashank Shekhar and Ajeet Kumar Singh and Anirban Chakraborty&quot;, title = &quot;OCR-VQA: Visual Question Answering by Reading Text in Images&quot;, booktitle = &quot;ICDA&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;ocr-vqa.github.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;</description>
      <category>용어 정리</category>
      <author>duckracoon5z</author>
      <guid isPermaLink="true">https://duckracoon5z.tistory.com/17</guid>
      <comments>https://duckracoon5z.tistory.com/17#entry17comment</comments>
      <pubDate>Thu, 31 Jul 2025 17:00:53 +0900</pubDate>
    </item>
  </channel>
</rss>