<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>수빈's Farm</title>
    <link>https://kycu-sb.tistory.com/</link>
    <description>나의 속도로</description>
    <language>ko</language>
    <pubDate>Fri, 21 Aug 2026 03:13:50 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>빈그레</managingEditor>
    <image>
      <title>수빈's Farm</title>
      <url>https://tistory1.daumcdn.net/tistory/5478211/attach/71240a75dc6a4eaca3b42c345a60ca7f</url>
      <link>https://kycu-sb.tistory.com</link>
    </image>
    <item>
      <title>Display - OLED</title>
      <link>https://kycu-sb.tistory.com/262</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;# 활용도&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Rollable, Foldable, Stretchable 등 flexibility를 가진 display는 backlight가 있는 LCD같은 디스플레이로는 구현할 수 없고, backlight 없이 유기물을 통해 자발광하는 OLED에서 가능하다.&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;또한, backlight가 없으므로 transparent(투명한) 디스플레이도 만들 수 있다.&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;#OLED ( Organic Light Emitting Diode )&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;양극에 정공을 주입하고, 음극에 전자를 주입 했을 때, 유기물로 이루어진 Emission layer에서 전자와 정공이 만나 photon을 방출하며 빛을 만드는 디스플레이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#photon방출&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;EML의 band gap energy만큼에 해당하는 energy가 빛의 형태로 방출된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;( photon이 같는 에너지는 photon의 주파수에 비례하고, 빛의 파장에 반비례한다. )&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 red와 같은 장파장의 빛을 내기 위해서는 energy gap이 작은 물질을 사용해야하고,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;blue와 같이 단파장의 빛을 내기 위해서는 energy gap이 큰 물질을 사용해야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#Electro-luminescenece&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: 전자의 위치에너지를 전류로 높여서 EML까지 가게 만들&lt;/p&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;LCD는 액정에 가해지는 전압에 의해 픽셀의 색상이나 밝기값이 조정되지만, OLED는 흘려준 전류에 비례하여 photon이 방출된다. 문턱 전압 이상일 때는 빛의 밝기가 흘려주는 전류에 비례한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;( 이상적인 경우에 전자 혹은 정공이 100개 있을 때, photon이 100개 방출 )&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;V=IR이니까 전압만 전류와 저항에 의해 V값크기만 일정 수준이상으로 넘어가면 전류에 비례&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#OLED,LCD 전극 차이&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;LCD는 그냥 전극 (어차피 바뀌니까 계속) //이온 불순물이 치우쳐져서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;OLED는 양극 음극 구분&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#PASSIVE VS ACTIVE&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;OLED 18P&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제조비용은 passive가 더 쌈 / active는 소비전력 낮고 정확하게 제어 가능&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;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>Quality control (2)/Display Engineering</category>
      <author>빈그레</author>
      <guid isPermaLink="true">https://kycu-sb.tistory.com/262</guid>
      <comments>https://kycu-sb.tistory.com/262#entry262comment</comments>
      <pubDate>Sun, 5 May 2024 01:07:10 +0900</pubDate>
    </item>
    <item>
      <title>Display - LCD ( Source Driver IC ) / tcon / LVDS / converter / Vcom  / gamma curve / Regulator</title>
      <link>https://kycu-sb.tistory.com/261</link>
      <description>&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;1245&quot; data-origin-height=&quot;693&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cxEElt/btsHa14LYkz/4PqSzvHzwKgNK6xnUGxOt1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cxEElt/btsHa14LYkz/4PqSzvHzwKgNK6xnUGxOt1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cxEElt/btsHa14LYkz/4PqSzvHzwKgNK6xnUGxOt1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcxEElt%2FbtsHa14LYkz%2F4PqSzvHzwKgNK6xnUGxOt1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1245&quot; height=&quot;693&quot; data-origin-width=&quot;1245&quot; data-origin-height=&quot;693&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Source driver IC는 디스플레이 패널의 각 픽셀에 색상 정보를 제공하는 역할을 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Source driver IC는 binary로 표현된 RGB데이터를 받아 이를 각 픽셀에 맞는 전압 신호로 변환한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 1. 데이터 입력 및 Shift Register&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;디스플레이 Controller로부터 RGB 데이터가 소스 드라이버 IC 에 전송되면, 입력된 rgb데이터는 shift register를 통해 clk에 맞추어 순차적으로 이동시키면서 데이터를 임시로 저장하는 역할을 한다.&amp;nbsp;&lt;br /&gt;( Shift register 사용 이유 : 각 픽셀에 대한 정보를 순차적으로 처리하기 위해서 )&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-2. latch&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;latch를 통해 새로운 데이터가 들어오는 동안 현재 output으로 나가고 있는 데이터는 그대로 유지하여, 새로운 데이터를 받는 과정에서 처리되고 있는 픽셀의 색상정보가 변하지 않고 유지될 수 있도록 한다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 3. Color Controller&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;각 색상에 강도를 조정하거나, gamma correction을 진행하여, 사용자가 보기에 밝기 변화가 어둡고 밝은 영역에 대해서 선형적으로 나타나도록&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-4. DAC&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;입력된 데이터들에 대하여 디지털 신호에서 아날로그 신호로 변환하기 위해 DAC를 사용한다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;8bit일 때 2의 8승 즉 256개의 reference voltages를 가져,&lt;br /&gt;256개의 level중 하나를 on하여 analog값으로 사용한다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-5. 출력&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;변환된 아날로그 신호는 최종적으로 소스 드라이버 IC의 출력단을 통해 해당 픽셀로 전송된다. 이 전압을 통해 액정의 배열을 조절하여 원하는 색상과 밝기를 표현한다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;Timing Controller (T-con) Logic&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컴퓨터 , 비디오 플레이어 등에서 오는 디지털 신호를 받는다. ( hdmi,display port와 같은 인터페이스를 통해)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 신호 조정 및 변환&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;tcon은 이 신호에 대한 타임이과 형식을 패널이 요구하는 특성에 맞게 변환한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어 입력된 신호의 해상도를 디스플레이의 해상도로 맞추어준다. (ex. bit수)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 타이밍 신호 생성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;소스 드라이버와 게이트 드라이버에 정확한 타이밍 신호를 제공하여, 픽셀의 게이트와 데이터 라인이 정확한 순간에 활성화되도록 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 패널의 전력 관리&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;디스플레이의 밝기등을 조절하여 전력 소비를 최적화한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;LVDS (Low voltage differential signaling)&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;HDMI가 외부 인터페이스라면 lvds는 내부 인터페이스로&lt;/p&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;LVDS는 낮은 전력 소모를 목표로 하는 어플리케이션에 적합한 방식으로 특히, 대량의 비디오 데이터를 전송해야하는 고해상도 디스플레이 패널에 자주 사용됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;디스플레이에서는 패널과 메인 컨트롤러 보드 간의 통신에 LVDS가 사용된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- LVDS Tx&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: Low voltage differential signaling transmitter의 약어로 lvds의 송신 역할을 하는 컴포넌트이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- LVDS Rx&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: low voltage differential signaling receiver의 약어로 lvds 수신기를 의미한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;lvds 전송 시스템에서 데이터를 수신하는 역할을 하는 컴포넌트이다.&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;LVDS 기술은 340mV정도의 낮은 전압 스윙을 가지므로 전력 소비가 상대적으로 낮고, 이는 특히 배터리로 작동하는 휴대용 장치에서 중요한 이점이다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;구동회로 PCB&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;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;DC/DC Converter&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;:&amp;nbsp; TFT switching을 위해 필요한 Von voltage와 Voff voltage를 생성한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DC/DC converter는 기본적으로 한 전압 레벨을 다른 전압 레벨로 변환하는 장치이다. 효율적으로 변환을 하며 전력을 최소화하기 위한 스위칭 기술을 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DC/DC converter의 종류로 linear regulator와 switchig regulator가 있으나, 스위칭 방식이 선형 reulator보다 훨씬 효과적이다. linear regulator는 초과 전압을 열로 소산시키지만, swiching regulator는 전압을 자르고 붙이는 방식으로 작동하여 훨씬 더 적은 에너지를 열로 변환하고 대부분은 유용하게 사용한다.&lt;/p&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;948&quot; data-origin-height=&quot;1104&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c1go49/btsHbhTWnJZ/RDW1va5FutGYfNWGVBuAUk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c1go49/btsHbhTWnJZ/RDW1va5FutGYfNWGVBuAUk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c1go49/btsHbhTWnJZ/RDW1va5FutGYfNWGVBuAUk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc1go49%2FbtsHbhTWnJZ%2FRDW1va5FutGYfNWGVBuAUk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;1104&quot; data-origin-width=&quot;948&quot; data-origin-height=&quot;1104&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;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;#번외 (레귤레이터 따로 정리하기 ) // ai 면접 질문에도 나왔던 것!!!&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;#####스위칭 레귤레이터&lt;br /&gt;&lt;br /&gt;#####선형 레귤레이터&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;Gamma&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;gray level 별 analog data로서 표현되는 전압을 표현하기 위한 저항이 놓여있는 형태로서 gamma가 존재한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저항을 직렬로 연결한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저항 값에 따라서 중간 중간의 전압들이 결정되는데 이걸 감마 전압으로 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;똑같은 gray level의 값에 대해서도 gamma구조가 바뀌면 액정에 인가되는 전압도 바뀌므로&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전압에 대한 최종 휘도에 대한 그래프가 변화하게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;panel이 가진 VT curve에 맞춰 저항을 바꿔가면서 gamma전압을 조절한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>빈그레</author>
      <guid isPermaLink="true">https://kycu-sb.tistory.com/261</guid>
      <comments>https://kycu-sb.tistory.com/261#entry261comment</comments>
      <pubDate>Sat, 4 May 2024 01:35:00 +0900</pubDate>
    </item>
    <item>
      <title>Display - LCD ( Liquid Crystal Display )</title>
      <link>https://kycu-sb.tistory.com/260</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#LCD란?&lt;/p&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: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;백라이트로부터 나온 빛에 대하여, &lt;/span&gt;liqud crystal을 사용하여 빛의 투과도를 제어하고, 편광판을 통해 빛의 뱡향을 제어하여 이미지를 생성하는 디스플레이이다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;# Temperature&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;liquid crystal 배열 구조가 흐트러지기 시작하는 melting point부터 liquid crystal 분자가 방향성을 아예 갖지 않게 되는 claring point 사이에서 디스플레이가 동작할 수 있는 operating temperature range를 갖는다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#Polarization (편광)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;편광판(polarizer)을 두어 특정 방향으로만 진동하는 과을 선택적으로 통과시켜 편광을 만든다.&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;#Normally Black mode / Normally White mode ( 내부가 Twisted 액정 )&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;NB : 편광판이 서로 평행&amp;nbsp; //액정에 전압 없을 때 black&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;NW : 편광판이 서로 수직&amp;nbsp; //액정에 전압 없을 때 white&amp;nbsp; &amp;nbsp;( default가 white라서 CR값이 저하된다. )&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CR = Lw/Lbc //Contrast Ratio&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;//TN LC구조에 전압을 가해서 액정 분자에 변화를 줌으로써 통과하는 빛의 밝기 정도를 제어한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#Active matrix&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;pixel 별로 TFT switch로 제어하는 구동 방식&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;#LCD Module&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;br /&gt;DC/DC converter&lt;br /&gt;: 전원 공급&lt;br /&gt;&lt;br /&gt;Control ASIC&lt;br /&gt;: 디스플레이의 전체적인 동작을 제어 / 디스플레이의 이미지 처리, 신호 처리, 픽셀 업데이트 등등등,,,,&lt;br /&gt;&lt;br /&gt;Inverter&lt;br /&gt;: 백라이트를 켜고 끄거나 밝기를 제어&lt;br /&gt;&lt;br /&gt;Driver IC&lt;br /&gt;: 픽셀 주소 지정하여 디스플레이에 이미지를 표시 ( 색상과 밝기 제어 )&lt;br /&gt;&lt;br /&gt;LCD panel&lt;br /&gt;&lt;br /&gt;Backlight&lt;br /&gt;: LCD의 backlight는 보통 white led를 쓴다&lt;br /&gt;backlight의 스펙트럼이 좁을수록 color filter에서 더 독립적으로 살려낼 수 있어, r,g,b의 조합으로 더 넓은 color영역을 표현할 수 있다.&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#LCD의 PCB&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컨트롤러, 드라이버 IC, 백라이트 제어 회로 등이 포함된다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;디스플레이의 패널과 컨트롤러 사이의 통신을 위한 인터페이스 역할을 한다.&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;#Contoller&lt;br /&gt;&amp;nbsp;디스플레이 장치에서 중앙 처리 장치로서 작동하며, 입력 신호를 처리하고, 디스플레이에 표시될 픽셀을 제어한다.&lt;br /&gt;refresh rate, resolution (해상도) 등을 제어하는 역할을 한다.&amp;nbsp;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;#Driving circui Unit //강의노트 14page&lt;/span&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;1.LDI ( LCD Driver IC ) chips&amp;nbsp; //픽셀 활성화&amp;nbsp;&lt;br /&gt;디스플레이의 각 픽셀을 제어하기 위해 사용되는 반도체 칩이다.&amp;nbsp;&lt;br /&gt;픽셀 활성화를 위한 반도체 칩!!!!!!!!!!&lt;br /&gt;&amp;nbsp; -&amp;nbsp; Gate Driver IC&amp;nbsp; &amp;nbsp;: 행 선택&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//scan electrode&lt;br /&gt;&amp;nbsp; -&amp;nbsp; Source Driver IC : 데이터 전달&amp;nbsp; //data electorde&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2.Control ASIC&lt;br /&gt;(1) 신호 처리&lt;br /&gt;&amp;nbsp;외부로부터 받은 비디오 신호를 lcd 패널이 이해할 수 있는 형태로 변환한다.&lt;br /&gt;&amp;nbsp; &amp;nbsp; ( 색공간 변환 / 해상도 조정 / 신호의 보간 ex) interpolation / 신호의 확장 ex) 증폭 )&lt;br /&gt;&amp;nbsp; -&amp;gt; 이러한 처리를 왜 해야하는지 아니까! 이 점 어필해보기!!!!!!!!!!!!!!&lt;br /&gt;(2) 타이밍 제어&lt;br /&gt;&amp;nbsp;각 픽셀이 적시에 활성화 되게 하기 위해 정확한 타이밍 신호를 생성한다.&lt;br /&gt;(3)전력 관리&lt;br /&gt;&amp;nbsp;전력 소비를 최적화하고, 각 부품이 적절한 전력을 받도록 관리한다.&amp;nbsp;&lt;br /&gt;(4) 인터페이스 관리&lt;br /&gt;&amp;nbsp;다양한 입력 소스 ( hdmi,vga,displayport)와의 인터페이스를 관리한다.&lt;br /&gt;&amp;nbsp;사용자가 다양한 장치를 디스플레이에 연결할 수 있도록 지원한다.&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;823&quot; data-origin-height=&quot;456&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9KvOH/btsG6eRaPkV/uZirvQGuVKieH8qojNBujk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9KvOH/btsG6eRaPkV/uZirvQGuVKieH8qojNBujk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9KvOH/btsG6eRaPkV/uZirvQGuVKieH8qojNBujk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9KvOH%2FbtsG6eRaPkV%2FuZirvQGuVKieH8qojNBujk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;823&quot; height=&quot;456&quot; data-origin-width=&quot;823&quot; data-origin-height=&quot;456&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;3. TCP (Thin Film Transistor Circuit) //TFT 회로&lt;br /&gt;: 전폭 전계 트랜지스터 회로&lt;br /&gt;TFT는 LCD 패널에 주로 사용되는 전자 소자로서, 픽셀의 컬러와 밝기를 제어하는데 필요한 전압을 제어한다.&lt;br /&gt;&lt;br /&gt;##TFT와 MOSFET의 차이는?&lt;br /&gt;TFT는 비디오 디스플레이를 위한 전압 조절 소자로서 쓰이나, 전력 전자 애플리케이션으로는 사용되지 않는다.&lt;br /&gt;TFT가 제공하는 전류 용량이 전력 전자에서 요구하는 것보다 낮기 때문이다. 따라서 신호처리 및 디스플레이 제어에 더욱 적합하다.&lt;br /&gt;&lt;br /&gt;MOSFET이나 IGBT는 고전압 고전류를 다루는 전력 조절 어플리케이션으로서 인버터,컨버터, 전력 공급장치 등에 쓰인다. // 높은 전기를 요구하는&lt;br /&gt;&lt;br /&gt;즉!! TFT는 픽셀제어를 위해! MOSFET은 전체 디스플레이 시스템의 전원 관리에 쓰인다.&lt;br /&gt;PCB 전원관리는 MOSFET이 ! 디스플레이의 각 픽셀 ON/OFF는 TFT가!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4. interface connector&lt;br /&gt;외부에서 오는 비디오에 대한 데이터를 source driver ic로 전달하는 역할을 한다.&lt;br /&gt;&lt;br /&gt;5. PCB&amp;nbsp;&lt;br /&gt;////Gate PCB&amp;nbsp; ( gate driver ic )&lt;br /&gt;gate driver ic 에서 신호를 전달하면 이를 transistor에 물리적으로 연결하는 역할을 한다.&lt;br /&gt;gate driver ic에서 받은 신호를 정확하고 빠르게 transistor에 전달하기 위해서 전자적 간섭인 emi를 최소화해야한다.&lt;br /&gt;&lt;br /&gt;////Source PCB ( source driver ic, contorl asic, interface connector 등이 올라가 있음 )&lt;br /&gt;source driver ic에서 나온 신호를 transistor에 물리적으로 연결하는 역할을 한다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;Multi-layer PCBs&lt;br /&gt;다층으로 pcb를 이루어 ldi칩, 컨트롤러,백라이트 제어 회로 등의 다양한 회로를 가질 수 있다.&amp;nbsp;&lt;br /&gt;다층으로 pcb를 설계하면 회로의 복잡성을 줄이고, 신호 간의 간섭을 줄일 수 있다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#Backlight 제어&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;backlight는 주로 LED가 사용되며, inverter로 밝기를 조정하거나 백라이트를 켜거나 끈다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;backlight는 pannel 뒤에 위치한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DC power를 공급받아 inverter를 거쳐 backlight lamp에 전해진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#Inverter / Converter&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;inverter : DC -&amp;gt; AC&lt;br /&gt;converter :&amp;nbsp; AC -&amp;gt; DC&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#unit pixel&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 이전 pixel의 gate line과 현재 pixel의 pixel elctrode 사이에 storage capacitor(Cs)가 생긴다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- pixel electrode와 common electrode는 backlight 빛을 통과시켜야 하므로&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 투명해야해서 금속 물질이 아닌 투명한 전극인 ITO를 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#TFT 연결&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;TFT의 gate단자는 행 활성화를 위해 gate line과 연결되고,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;source단자는 데이터를 받기 위해 source line에 연결되고,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;drain 단자는 받은 데이터를 pixel electrode에 전달한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 TFT에서 전류는 source에서 drain쪽으로 흘러 source로부터 받은 data값을 pixel electorde에 전달한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#TFT 동작 원리&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;gate에 전압이 가해지면 source와 drain사이에 채널이 생겨 전류가 흐를 경로가 만들어집니다.&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;이 전류는 드레인에 연결된 pixel electrode(전극)에 전압을 인가하게되어, pixel electrode와 common electorde 사이에 존재하는 liquid crystal의 구조를 변형시켜 해당 픽셀의 빛의 투과율을 조절하여 최종적으로 이미지의 한 픽셀로서 디스플레이에 표현되게 됩니다.&lt;/p&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;빛의 투과도는 액정에 가해지는 전압에 의해서 결정되며, inversion 대칭 구동을 하므로 액정에 가해지는 전압의 절댓값을 기준으로 투과도가 결정된다. )&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#inversion method&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: LCD에서는 AC구동을 하여 방향을 바꿔가며 액정에 전압을 가해, 이온 불순물이 치우쳐지는 현상을 방지한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#TN LC&lt;br /&gt;twisted nematic 구조에서 일반적으로 normally white mode를 활용하므로 전압이 가해지지 않았을 때, white를 유지하고, 전압이 가해지면 twisted 구조가 변형되면서 빛이 조금씩 막히게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;NW쓰는 이유 : NB는 default가 검정이라 화면이 전체적으로 너무 어두워!&lt;/p&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;#unit pixel의 capacitance&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;capacitor구조는 도체와 도체 사이에 부도체가 존재할 때 형성됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 unit pixel에서는 두 개의 capacitor구조를 확인할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫째는 pixel electord와 gate electrode 구조로서 생성되는 storage capacitor가 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;pixel electrode를 이전 sub pixel의 gate line과 overlap되게 하여 capacitance가 생기도록 하여 storage capacitor 구조를 형성할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;gate 전압이 사라져 transistor가 off의 상태가 된 이후에도, pixel electorde에 가해졌던 전압을 유지하며, 픽셀의 액정 상태가 안정적으로 유지되도록 합니다. 이를 통해 transistor가 off가 되더라도 해당 픽셀이 꺼지지 않도록 함으로써 이미지가 깜빡이는 현상을 방지하고, 전체적인 이미지 품질을 향상시킬 수 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한, 전압을 유지함으로써, 해당 픽셀을 표현하는데에 동일한 전압을 계속해서 가해주지 않아도 되기때문에 전력 소비를 줄이는 데에도 큰 도움이 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;둘째는 pixel electorde와 common electrode 구조로서 생성되는 LC capacitance가 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;액정은 전기장에 반응하여 배열이 변하는 유기 화합물이나, 그 자체로는 전기를 잘 전도하지 않는 부도체이기에 capacitance를 형성하게 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;LC capacitance는 픽셀이 받는 전압이 제거된 이후에도 액정의 상태가 일정 시간 동안 유지되도록 하여 전체 디스플레이의 품질과 안정성을 보장할 수 있도록 해줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#gamma value&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;:디스플레이가 표현하는 밝기 변화의 선형도&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;감마가 1이면 빛이 선형적으로 증가하여, 어두운 곳에서는 빛을 민감하게 인지하고 밝은 곳에서는 빛을 민감히 받아들이지 못하는 사람의 눈에서는 빛이 선형적으로 증가하는 것으로 보이기 어렵습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 감마값을 키워 어두운 곳에서는 투과율이 서서히 높아지도록 하고, 밝은 곳에서는 더 확연하게 투과율이 높아지도록 해야 사람의 눈으로 밝기의 변화를 잘 인지할 수 있게 된다.&lt;/p&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;#color filter&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결국 backlight에서 온 빛에 대하여 각 color filter를 통과한 부분만 쓰게 되므로 빛의 2/3을 버리는 꼴이 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 backlight를 활용하는 효율이 좋지 않다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#color 표현수&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;nbit로 color를 표현한다면 각 sub pixel마다 nbit로 표현되고 r,g,b subpixel의 조합으로 해당 픽셀의 color가 결정되므로 2의 3n승의 color 가지수를 가진다고 볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;( sub pixel의 수를 늘리면 표현할 수 있는 색의 영역이 더욱 넓어진다. )&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#display의 색재현율&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;( 만들 수 있는 색의 영역 / display에서 만들 수 있는 색의 영역&amp;nbsp; ) x 100&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#Direct 구동&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: pixel 하나하나마다 전극을 따로 연결하는 구동 방식&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;#Matrix 구동 ( passive matrix / active matrix )&lt;br /&gt;passive matrix (PM)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: 가로 전극과 세로 전극이 교차하는 부분이 pixel이 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;active matrix&amp;nbsp; (AM)&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: 가로,세로 전극은 스위치 ON 및 데이터 전달로만 활용하고 액정에 가하는 전압은 pixel electorde가 받은 전압에 의해 결정된다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;TFT를 사용함&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#LCD 전력 감소시키는 방법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-active matrix를 써서 1frame동안 값이 Cs에 유지되게 해서 전력 감소&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- inversion method를 frame inversion이나 column inversion만 써야함 ( data 전달 line에 스윙 폭이 크지 않도록 )&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#LCD refresh rate높이는 방법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;충전이 빠르게 되도록 해서 1H만 짧게 해주면 됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;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>Quality control (2)/Display Engineering</category>
      <author>빈그레</author>
      <guid isPermaLink="true">https://kycu-sb.tistory.com/260</guid>
      <comments>https://kycu-sb.tistory.com/260#entry260comment</comments>
      <pubDate>Fri, 3 May 2024 03:10:37 +0900</pubDate>
    </item>
    <item>
      <title>Display - introduction / 디스플레이 기본 개념 정리</title>
      <link>https://kycu-sb.tistory.com/259</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;# Spatial Frequency&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1도의 공간에서 발록 어두움을 얼만큼 구분할 수 있느냐를 말하며&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단위는 cycles/degree(cpd)이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사람의 눈인 30cycles per degree를 가지고 있으므로, 1도에서 밝고 어두운 것에 대해 60개까지 구분이 가능하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;( 30 cycles per degree =&amp;nbsp; 60 piexle per degree )&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사람의 눈의 해상도를 의미하는 30cpd를 1arcmin이라고도 하며&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#cone세포 반응정도&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;광원과 반응곡선의 곱을 적분하면 각 cone의 반응 정도를 알 수 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;display는 L,M,S의 cone을 자극할 subpixel로 이루어짐 (R,G,B sub pixel 로 이루어짐 )&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;subpixel이 내는 빛의 spectrum width가 좁을수록 유리하다&lt;/p&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;#PDP AC &lt;/span&gt;&lt;span&gt;사용 이유&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Matrix &lt;/span&gt;&lt;span&gt;구조를 갖되 직접적으로 전류를 가하는 &lt;/span&gt;&lt;span&gt;passive matrix &lt;/span&gt;&lt;span&gt;구조로 전극을 &lt;/span&gt;&lt;span&gt;AC&lt;/span&gt;&lt;span&gt;로 가하면 전극에서 잔자가 나오면서 형광체를 때려 가시광선이 방출되게 된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;AC&lt;/span&gt;&lt;span&gt;를 씀으로서 방향을 주기적으로 반대로 바꾸어주어 &lt;/span&gt;&lt;span&gt;pixel&lt;/span&gt;&lt;span&gt;의 값 변경을 돕는다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;#refresh rate&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;refresh rate이 높을수록 움직임이 끊이지 않고 부드럽게 연결되어 영상이 부드럽게 표현된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반적으로 60hz에서 75hz 사이의 refresh rate를 가져야 사람의 눈으로 봤을 때, 이미지가 부드럽게 보입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 시스템을 만들 때 처리 속도가 1/60초가 넘지 않도록 해야 real time service를 사용자에게 끊김없이 제공할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#emissive OR non-emissive&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PDP&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: 전면 기판과 후면 기판 사이에 차있는 가스에 전극에서 방출된 전자가 나와 uv가 방출되어 형광체로부터 가시광선이 직접 나와서 빛이 나는 것이므로 emissive이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;LCD ( Liquid Crystal Display )&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: photon이 직접 방출되어 영상으로서 표현되는 것이 아니라 backlight에서 나온 빛이 liquid crystal구조에 의해 편광된 대로 보여지는 것이므로 non-emissive이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;OLED ( Organic Light Emiting Diode )&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;#LED ( light emitting diode ) //발광 다이오드&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;: 전기가 흐를 때 발광하는 반도체 소자이다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;//PN junction이 발광하는 현상을 활용한 반도체 소자이다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;pn junction 즉 p type 반도체와 n type 반도체가 서로 만나고, 전기가 흘러 전자와 정공이 재결합하여 에너지를 방출하며 빛의 형태로 나간다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;전자가 정공이 있는 에너지 레벨로 내려가면서 그 에너지 차이 만큼의 에너지가 빛의 형태로 방출된다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;n type 반도체 쪽에 음극을 걸어주어 n type에 있는 전자들이 도망가서 p type쪽으로 가도록// 반대도 마찬가지&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;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>Quality control (2)/Display Engineering</category>
      <author>빈그레</author>
      <guid isPermaLink="true">https://kycu-sb.tistory.com/259</guid>
      <comments>https://kycu-sb.tistory.com/259#entry259comment</comments>
      <pubDate>Thu, 2 May 2024 17:28:52 +0900</pubDate>
    </item>
    <item>
      <title>Paper Review - EMA-VFI(2) / Proposed Rchitecture / Hybrid / Low-level  / motion-appearance feature extractor</title>
      <link>https://kycu-sb.tistory.com/255</link>
      <description>&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Extracting&amp;nbsp;Motion&amp;nbsp;and&amp;nbsp;Appearance&amp;nbsp;via&amp;nbsp;Inter-Frame&amp;nbsp;Attention &lt;/b&gt;&lt;br /&gt;&lt;b&gt;for&amp;nbsp;Efficient&amp;nbsp;Video&amp;nbsp;Frame&amp;nbsp;Interpolation&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;Methods&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;790&quot; data-origin-height=&quot;334&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rHloG/btsGYTzEzgC/DRPMNvKIggCC0juwWmVS11/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rHloG/btsGYTzEzgC/DRPMNvKIggCC0juwWmVS11/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rHloG/btsGYTzEzgC/DRPMNvKIggCC0juwWmVS11/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrHloG%2FbtsGYTzEzgC%2FDRPMNvKIggCC0juwWmVS11%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;790&quot; height=&quot;334&quot; data-origin-width=&quot;790&quot; data-origin-height=&quot;334&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;EMA의 전체 아키텍처 구조는 위와 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;165&quot; data-origin-height=&quot;37&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/czUgmJ/btsG10p0VsU/Q3SZH5GR2ZHkeHwMBtJNK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/czUgmJ/btsG10p0VsU/Q3SZH5GR2ZHkeHwMBtJNK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/czUgmJ/btsG10p0VsU/Q3SZH5GR2ZHkeHwMBtJNK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FczUgmJ%2FbtsG10p0VsU%2FQ3SZH5GR2ZHkeHwMBtJNK0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;165&quot; height=&quot;37&quot; data-origin-width=&quot;165&quot; data-origin-height=&quot;37&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;time 0과 1 사이 t에서의 frame을 생성하는 것이 목적이다. 위 식에서 It hat이 generated frame이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;*** O: proposed model&lt;/p&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;blockquote data-ke-style=&quot;style2&quot;&gt;low-level Feature Extractor&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;입력 프레임의 해상도가 높을 경우, inter frame attention에서 attention map을 생성하는 데에 큰 메모리 사용이 필요하고, 계산 부하가 생길 수 있으므로, 이러한 문제를 해결하기 위해, CNN으로 이루어진 low level feature extractor를 활용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;low level featuer extractor는 여러 CNN layer로 이루어져 있으며, 단일 Frame의 Appearance 외관 특징을 다양한 scale로 추출하는데 사용된다.&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;196&quot; data-origin-height=&quot;38&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bMfgiu/btsGZXucLAb/p8DjHyD4Ts9C4CjHLNKr8K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bMfgiu/btsGZXucLAb/p8DjHyD4Ts9C4CjHLNKr8K/img.png&quot; data-alt=&quot;convolution 할때마다 나온 appearnace feature들&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bMfgiu/btsGZXucLAb/p8DjHyD4Ts9C4CjHLNKr8K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMfgiu%2FbtsGZXucLAb%2Fp8DjHyD4Ts9C4CjHLNKr8K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;196&quot; height=&quot;38&quot; data-origin-width=&quot;196&quot; data-origin-height=&quot;38&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;convolution 할때마다 나온 appearnace feature들&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;위 식은 i번째 프레임을 low level feature extractor에 넣으면 3가지 scale에서의 feature가 생성된다는 것을 표현한다.&lt;/p&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;( 여기서 구해진 appearance 를 바탕으로 이후에 나오는 VIT에서 attention 연산이 이루어진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고, 그렇게 구해진 attention map으로 enhanced appearance와 motion vector를 구해낸다. )&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;127&quot; data-origin-height=&quot;30&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cYf0J0/btsGZ0doC9a/LlfHKLKMwVKywKE1Dirmrk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cYf0J0/btsGZ0doC9a/LlfHKLKMwVKywKE1Dirmrk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cYf0J0/btsGZ0doC9a/LlfHKLKMwVKywKE1Dirmrk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcYf0J0%2FbtsGZ0doC9a%2FLlfHKLKMwVKywKE1Dirmrk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;127&quot; height=&quot;30&quot; data-origin-width=&quot;127&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;down sampling 될수록 channel의 수는 2배가 된다. 따라서 위와 같은 shape이 만들어진다.&lt;/p&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;[ hybrid 구조의 한계 ]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 CNN을 먼저 처리함으로써, 연산 부담을 줄였으나, 이로인해 transformer가 받을 input에 대한 세밀한 정보가 부족해지는 문제가 발생한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 해결하기 위해 Cross-scale patch embedding을 추가하여, CNN에서 나온 feature들을 재사용하여 cross-scale 정보를 보완한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[56]에언급된 multi scale dilated convolution을 사용하여 feature들의 정보를 혼합하는 것을 제안한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt; &lt;span style=&quot;color: #666666; text-align: left;&quot;&gt;3.1 Extract&amp;nbsp; Motion and appearance information&lt;/span&gt; &lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;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;blockquote data-ke-style=&quot;style2&quot;&gt;Attention Map&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[Figure2]&lt;/p&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;755&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cHZFzM/btsGZ0RW1hQ/1gepFvkQmmsgeKQSeM8H60/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cHZFzM/btsGZ0RW1hQ/1gepFvkQmmsgeKQSeM8H60/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cHZFzM/btsGZ0RW1hQ/1gepFvkQmmsgeKQSeM8H60/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcHZFzM%2FbtsGZ0RW1hQ%2F1gepFvkQmmsgeKQSeM8H60%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;661&quot; height=&quot;538&quot; data-origin-width=&quot;928&quot; data-origin-height=&quot;755&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;I0 프레임의 임의의 영역 i,j를 A0(i,j)라 하고, I1프레임의 i,j에 대한 이웃 영역들을 A1(ni,j)라 하자.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;I0의 임의 영역을 query로 사용하고, 이에 대한 공간적 이웃 거리에 있는 임의 영역 A1(Appearance)들을 query와 value로 사용한다.&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;395&quot; data-origin-height=&quot;117&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cfAWja/btsGZLHxh68/ZRkC8FolJ5LbhVLBnhU8b1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cfAWja/btsGZLHxh68/ZRkC8FolJ5LbhVLBnhU8b1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cfAWja/btsGZLHxh68/ZRkC8FolJ5LbhVLBnhU8b1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcfAWja%2FbtsGZLHxh68%2FZRkC8FolJ5LbhVLBnhU8b1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;395&quot; height=&quot;117&quot; data-origin-width=&quot;395&quot; data-origin-height=&quot;117&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;214&quot; data-origin-height=&quot;30&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/o81tU/btsGY8pDlI8/TjOe8ZDTzTdISCjae3jDG0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/o81tU/btsGY8pDlI8/TjOe8ZDTzTdISCjae3jDG0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/o81tU/btsGY8pDlI8/TjOe8ZDTzTdISCjae3jDG0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fo81tU%2FbtsGY8pDlI8%2FTjOe8ZDTzTdISCjae3jDG0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;214&quot; height=&quot;30&quot; data-origin-width=&quot;214&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 data-ke-size=&quot;size16&quot;&gt;단, A0,A1(Appearance)를 query,key,value로 사용하려면 multi head attention에 들어가기 전에 input을 통일시켜줘야하기 때문에 위와 같이 matrix와의 곱으로 값들의 차원을 맞춰주어 Q0,K1,V1의 형태로 만들어준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Q0와 K1과의 dot product 연산을 통해 유사도를 구하고,&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;370&quot; data-origin-height=&quot;57&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCcpnU/btsGYLPjYeO/pEu8W6ZgEmKE45z4LqxysK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCcpnU/btsGYLPjYeO/pEu8W6ZgEmKE45z4LqxysK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCcpnU/btsGYLPjYeO/pEu8W6ZgEmKE45z4LqxysK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCcpnU%2FbtsGYLPjYeO%2FpEu8W6ZgEmKE45z4LqxysK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;370&quot; height=&quot;57&quot; data-origin-width=&quot;370&quot; data-origin-height=&quot;57&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;softmax를 취해 가중치르 구한 다음 이를 value값에 곱하여 모두 합하면&amp;nbsp; attention map(S0-&amp;gt;1)이 생성된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;attention map은 본래 transformer 구조대로 query와 key의 유사도를 기반으로 생성된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉 현재 바라보고 있는 i,j위치에 대한 I0에서의 일부 영역과 I1프레임에서의 그 주변 영역들에 대해 유사도(상관 관계)를 분석하는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 만든 attention map을 통해, I0과 I1의 appearance 정보를 통합하고, I0에서의 I1으로의 대략적인 motion vector(M0-&amp;gt;1)를 추정할 수 있다.&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;위 예시를 보니, 자동차가 나온 I0 프레임에 대해 I1에서의 이웃한 영역들 9개에 대해 바라보는 것이다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;I1에서 자동차가 있는 부분에서는 attention 값의 높게 나온 것을 확인할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;345&quot; data-origin-height=&quot;468&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/teQLL/btsGY9IR1mR/DQZNQ1KIZK2nskpXKYd5ok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/teQLL/btsGY9IR1mR/DQZNQ1KIZK2nskpXKYd5ok/img.png&quot; data-alt=&quot;Transformer 구&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/teQLL/btsGY9IR1mR/DQZNQ1KIZK2nskpXKYd5ok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FteQLL%2FbtsGY9IR1mR%2FDQZNQ1KIZK2nskpXKYd5ok%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;345&quot; height=&quot;468&quot; data-origin-width=&quot;345&quot; data-origin-height=&quot;468&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Transformer 구&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;Inter frame attention에서 (a)에서 설명한 연산을 통해 attention map이 형성된다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;***&amp;nbsp; attention map : query와 key의 유사도 확률값&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 생성된 attention map은 appearance 정보를 전송하고, motion 정보를 얻는데에 동시에 활용된다.&lt;/p&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;blockquote data-ke-style=&quot;style2&quot;&gt;Appearnce 정보&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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;243&quot; data-origin-height=&quot;44&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbCm1R/btsG1f15eVN/UQFZn6fezFmbxWNjXSSElK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbCm1R/btsG1f15eVN/UQFZn6fezFmbxWNjXSSElK/img.png&quot; data-alt=&quot;enhanced appearance&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbCm1R/btsG1f15eVN/UQFZn6fezFmbxWNjXSSElK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbCm1R%2FbtsG1f15eVN%2FUQFZn6fezFmbxWNjXSSElK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;243&quot; height=&quot;44&quot; data-origin-width=&quot;243&quot; data-origin-height=&quot;44&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;enhanced appearance&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;유사도 확률값과 value를 곱한 값을 I0 의 i,j영역의 appearance에 더하여 두 프레임 간의 상관관계를 반영하여 다음 프레임에도 나오는 영역에 대한 값을 더욱 강조하는 효과를 주어 I0 프레임을 더욱 enhance한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉 연속되는 프레임 사이의 시각적 일관성을 높이는 데 사용된다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한, Frame Interpolation에서 I0과 I1 사이의 frame의 appearance를 예측할 때, 두 프레임의 appearance를 혼합한 정보를 사용함으로서 더 정밀한 appearnace를 생성할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;Motion 정보&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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;297&quot; data-origin-height=&quot;57&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sJarJ/btsGZvLIPXn/7kKnzXoKyHyQn4rfb6Tt51/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sJarJ/btsGZvLIPXn/7kKnzXoKyHyQn4rfb6Tt51/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sJarJ/btsGZvLIPXn/7kKnzXoKyHyQn4rfb6Tt51/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsJarJ%2FbtsGZvLIPXn%2F7kKnzXoKyHyQn4rfb6Tt51%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;297&quot; height=&quot;57&quot; data-origin-width=&quot;297&quot; data-origin-height=&quot;57&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;s가 1이라 가정 ,, (가정) // 디지털 영상 처리 좌표계 기준으로 생각하기&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;(3,0) -(0,3)= (3,-3)&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;482&quot; data-origin-height=&quot;355&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cGvMrt/btsGZyO5BWr/K1eCxo0N7eKctVilcCReH1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cGvMrt/btsGZyO5BWr/K1eCxo0N7eKctVilcCReH1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cGvMrt/btsGZyO5BWr/K1eCxo0N7eKctVilcCReH1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcGvMrt%2FbtsGZyO5BWr%2FK1eCxo0N7eKctVilcCReH1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;355&quot; data-origin-width=&quot;482&quot; data-origin-height=&quot;355&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Motion vector는 좌표를 바탕으로 정해진다. attention map을 통해 얻은 유사도 확률만큼만 I1프레임의 좌표값을 반영하여 Motion vector를 얻을 수 있다.&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;Motion feature는 이러한 Motion vector와의 Linear 연산으로 아래와 같이 구해질 수 있다.&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;234&quot; data-origin-height=&quot;56&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/W3uxK/btsGYQXgIFa/IZ4pDuBaoui49XVIkligdK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/W3uxK/btsGYQXgIFa/IZ4pDuBaoui49XVIkligdK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/W3uxK/btsGYQXgIFa/IZ4pDuBaoui49XVIkligdK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FW3uxK%2FbtsGYQXgIFa%2FIZ4pDuBaoui49XVIkligdK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;234&quot; height=&quot;56&quot; data-origin-width=&quot;234&quot; data-origin-height=&quot;56&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;trained model에 의해 estimated optical flow와 motion vector를 비교하면, 두 프레임의 동일 영역에 대해 유사성을 파악할 수 있다.&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;476&quot; data-origin-height=&quot;195&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qFL5Y/btsGZw4WlRi/hJS4JINFqLfnI4GDaDRom1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qFL5Y/btsGZw4WlRi/hJS4JINFqLfnI4GDaDRom1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qFL5Y/btsGZw4WlRi/hJS4JINFqLfnI4GDaDRom1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqFL5Y%2FbtsGZw4WlRi%2FhJS4JINFqLfnI4GDaDRom1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;476&quot; height=&quot;195&quot; data-origin-width=&quot;476&quot; data-origin-height=&quot;195&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>SYDLAB/Paper Reviews</category>
      <author>빈그레</author>
      <guid isPermaLink="true">https://kycu-sb.tistory.com/255</guid>
      <comments>https://kycu-sb.tistory.com/255#entry255comment</comments>
      <pubDate>Sun, 28 Apr 2024 17:57:29 +0900</pubDate>
    </item>
    <item>
      <title>Paper Review - EMA-VFI(1) / Introduction / Related Work</title>
      <link>https://kycu-sb.tistory.com/247</link>
      <description>&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&amp;nbsp;Extracting Motion and&amp;nbsp; Appearance via Inter-Frame Attention &lt;/b&gt;&lt;/h2&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;for Efficient Video Frame Interpolation&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;Introduction&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;VFI( Video Frame Interpolation) 은 두 프레임 사이 중간 프레임을 생성하는&amp;nbsp; fundamental한 low-level vision taks이다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(low level은 영상 처리의 영역, high level은 컴퓨터 비전의 영역)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;VFI 접근 방식은 크게 두 가지로 나뉜다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) Appearance 정보와 motion 정보를 혼합하여 추출 ( mixed feature )&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) Appearance 정보와 motion 정보를 sequeital하게 별도 추출 ( motion featrue )&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1)도 2)도 아닌 feature 정보 동시! 별도! 추출!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 논문에서는 inter frame attention을 통해 appearance와 motion정보를 동시 추출하는 새로운 모듈을 제안한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;476&quot; data-origin-height=&quot;383&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/baZcg6/btsG0dXT2Ak/VQ9ekoI7fzPuz3xhnFWRhk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/baZcg6/btsG0dXT2Ak/VQ9ekoI7fzPuz3xhnFWRhk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/baZcg6/btsG0dXT2Ak/VQ9ekoI7fzPuz3xhnFWRhk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbaZcg6%2FbtsG0dXT2Ak%2FVQ9ekoI7fzPuz3xhnFWRhk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;476&quot; height=&quot;383&quot; data-origin-width=&quot;476&quot; data-origin-height=&quot;383&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(a),(b)가 본래 존재하던 VFI 접근 방식이고, 이 논문에서 제안하는 것은 (c)이다. 혼합되지도 sequential하게 따로 처리되지도 않으며, parallel하게 attention map을 활용하여 동시에 추출된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Parallel extraction을 통해 아래와 같은 이점을 얻을 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) 프레임의 appearance 정보 강화&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;motion 정보와 혼합되지 않아 appearance의 정적인 구조를 보존&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) motion feature 확장&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;extraction한 motion feature는 시간에 따라 확장이 가능하여 입력 프레임 사이 모든 시점에서 프레임을 생성할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3) 성능 및 속도 향상&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;parallel하게 처리하므로 전반적은 속도가 빠르고, 모듈 수 제어 가능&lt;/p&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;[Hybrid&amp;nbsp; pipeline]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;효율적 VFI를 위해 CNN과 Trnasformer architecture를 결합한 hybrid pipeline을 통해 feature를 효과적으로 추출한다.&lt;/p&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;blockquote data-ke-style=&quot;style2&quot;&gt;Related Work&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;2.1 Video Frame Interpolation&lt;br /&gt;&amp;nbsp;&lt;br /&gt;- Motion aware methods&lt;br /&gt;: 초기 연구에서는 appearance 정보를 활용하지 않고 픽셀 수준에서 프레임 간의 motion만 예측했으나, Niklaus 등의 연구에서 contextual features를 활용한 synthesis network를 거친 aligned intermediate frames를 제안했다.&lt;br /&gt;*** contextual features : 프레임 간의 연속적인 관계를 파악한 특징&lt;br /&gt;&lt;br /&gt;이후 연구들에서도 motion modeling과 appearance synthesis를 위한 모듈을 설계하는 방향으로 발전했다. 하지만 연구에서 성능을 보였음에도 불구하고, 시스템의 복잡성이 너무 커서 실제 적용하기에는 어려움이 있었다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;-&amp;gt; 이 논문에서는 motion과 appearance 정보를 통합하여 효율적으로 추출하면서도, 각각의 정보는 명시적으로 modeling하는 방법을 제안한다. 이를 통해 기존 방식들의 복잡성을 줄이면서도, 효과적은 성능을 유지할 수 있도록 한다.&lt;br /&gt;&lt;br /&gt;2.2 Extracting Motion and Appearance&lt;br /&gt;이 논문에서는 attention map을 사용하여 motion 과 appearance 정보를 직접적으로 추출한다.&lt;br /&gt;&lt;br /&gt;2.3 Transformer&lt;br /&gt;Trnasformer느는 최근 컴퓨터 비전의 다양한 작업에서 널리 사용되고있다. 하지만, 고해상도 비디오 프레임을 interpolation할 때, Trnasformer는 CNN보다 더 많은 계산과 메모리 overhead를 요구한다.&lt;br /&gt;&lt;br /&gt;최근 몇 연구에서 CNN과 Transformer를 결합하면 모델의 성능이 향상된다는 것을 확인하였다.&lt;br /&gt;&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;666&quot; data-origin-height=&quot;165&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmZoaF/btsG1vRdSYB/w6wdG5SB8U8DREstElKpiK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmZoaF/btsG1vRdSYB/w6wdG5SB8U8DREstElKpiK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmZoaF/btsG1vRdSYB/w6wdG5SB8U8DREstElKpiK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmZoaF%2FbtsG1vRdSYB%2Fw6wdG5SB8U8DREstElKpiK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;165&quot; data-origin-width=&quot;666&quot; data-origin-height=&quot;165&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;br /&gt;따라서, 위와 같이 CNN을 사용하여 고해상도 특징을 먼저 추출한 다음, Transformer를 사용하여 motion feature와 appearance feature를 extraction한다.&lt;br /&gt;&lt;br /&gt;이를 통해 Frame interpolation의 정확도를 높이면서도, 계산 비용을 최적화한다.&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;Inter-Frame Attention&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: 연속되는 프레임 간의 관계를 모델링하기 위해 attention 메커니즘을 활용하는 방법이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프레임의 특정 부분이 다음 프레임에서 어떻게 변화하는지를 보다 정밀하게 이해하고 예측할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. Query, Key, Value&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;Query :&amp;nbsp; 현재 분석하고 있는 대상 프레임의 특정 부분&lt;br /&gt;Key :&amp;nbsp; 비교 대상이 되는 인접 프레임들의 특성&lt;br /&gt;Value :&amp;nbsp; key에 대응하는 값으로, 프레임의 특성&lt;br /&gt;&lt;br /&gt;-&amp;gt;Query frame이 key frame과 어떤 관계를 가지고 있는지 분석하고, 이를 통해 Value 값을 가중 평균하여 새로운 특성을 생성하게 된다.&amp;nbsp;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. Attention 계산&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Query와 각 Key 사이의 유사성을 계산하고, 이를 바탕으로 Value를 가중 평균하여 새로운 특성을 생성한다. 이 과정에서 프레임 간의 동적인 변화를 포착할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 응용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 얻어진 정보는 비디오 프레임 사이의 움직임이나 변화를 더 잘 이해하고, 새로운 프레임을 생성할 때 이 정보를 사용하여 더 자연스러운 결과를 얻을 수 있게 도와준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;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://www.youtube.com/watch?v=bfqPkj8JkSo&amp;amp;t=288s&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.youtube.com/watch?v=bfqPkj8JkSo&amp;amp;t=288s&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=bfqPkj8JkSo&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/cZzt3G/hyVMPHWOdH/ZP0NPHxe8mR5jH7Onc0zpK/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-original-url=&quot;&quot; data-video-title=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/bfqPkj8JkSo&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;Overview&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이전 연구들에서도 분리된 모듈에서 motion이랑 appearance 정보를 사용하기도 했는데,&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;표현이 명확하지 않고 (representation ambiguity ) 낮은 효율성 문제가 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 논문에서는 unfiying operation(통합된 동작)으로 motion 정보와 appearance 정보를 명확하게 추출한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;appearance feature를 향상 시키고, 필수적인 motion 정보를 추출하면서 메커니즘을 만들었다.&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 floatLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;511&quot; data-origin-height=&quot;303&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ehj9DV/btsGwiZVChl/YwLF4TEc9ZVpc7mIU5iIbK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ehj9DV/btsGwiZVChl/YwLF4TEc9ZVpc7mIU5iIbK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ehj9DV/btsGwiZVChl/YwLF4TEc9ZVpc7mIU5iIbK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fehj9DV%2FbtsGwiZVChl%2FYwLF4TEc9ZVpc7mIU5iIbK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;428&quot; height=&quot;254&quot; data-origin-width=&quot;511&quot; data-origin-height=&quot;303&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;연속적인 프레임들의 attention map을 재사용하여 apperance 와 motion정보를 추출한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* attention map&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Hybrid CNN and transformer architecture&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;( 효율과 퍼포먼스에 밸런스를 맞추기 위해서 )&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;//patch가 query가 됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;//key 와 value는 다른 프레임에서의 patch (꼭 동일 위치가 아닐 수 있음 )&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;query,key,value가 절대적 위치가 아니라 오브젝트가 존재하는 위치를 따라감으로써 움직임 정보를 모델링&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;Motivation&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- (1)&amp;nbsp; handling both types of information in a mixed way ( mixed extraction )&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;-&amp;gt; this approach entails concatenating two adjacent frames and feeding them into a backbone consisting of similar modules in succession which generates features with mixed motion and appearance information although this is simple method&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;it necessaitates a well-designed and high capacity extractor module as it must handle both motion and appearance information simultaneously&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Additionaly the lack of explicit motion information can lead to constraints in arbitray timestep interpolation&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;632&quot; data-origin-height=&quot;130&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cvQGjn/btsGwz76PPn/KH5VOKctQxzNv14hkYKLx0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cvQGjn/btsGwz76PPn/KH5VOKctQxzNv14hkYKLx0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cvQGjn/btsGwz76PPn/KH5VOKctQxzNv14hkYKLx0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcvQGjn%2FbtsGwz76PPn%2FKH5VOKctQxzNv14hkYKLx0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;130&quot; data-origin-width=&quot;632&quot; data-origin-height=&quot;130&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- (2)Design separate modules for motion and appearance information extraction (sequential extraction )&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;-&amp;gt; The second approach involves designing distinct modules for extracting motion and appearance information&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;This method entails incorporating additional modules such as cost volume to effectively extract motion information which frequently results in a significant computational burden&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Furthermore simply extracting appearance features from a single frame ignores the capturing of the correpondence of appearance informaiton between frame for the same regions which is a valuable cue for the VFI task&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;617&quot; data-origin-height=&quot;127&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cP40Ps/btsGvvkRQ7A/LFpeZgr5QDkcpBAPrKK09k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cP40Ps/btsGvvkRQ7A/LFpeZgr5QDkcpBAPrKK09k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cP40Ps/btsGvvkRQ7A/LFpeZgr5QDkcpBAPrKK09k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcP40Ps%2FbtsGvvkRQ7A%2FLFpeZgr5QDkcpBAPrKK09k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;617&quot; height=&quot;127&quot; data-origin-width=&quot;617&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- (3)prarallel extraction&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;634&quot; data-origin-height=&quot;196&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dpUTWJ/btsGwv5IYLi/ir0KM2w7ULsPECkReF5o51/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dpUTWJ/btsGwv5IYLi/ir0KM2w7ULsPECkReF5o51/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dpUTWJ/btsGwv5IYLi/ir0KM2w7ULsPECkReF5o51/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdpUTWJ%2FbtsGwv5IYLi%2Fir0KM2w7ULsPECkReF5o51%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;196&quot; data-origin-width=&quot;634&quot; data-origin-height=&quot;196&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;857&quot; data-origin-height=&quot;444&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/banJRz/btsGt9XuTyo/dWUfn6iqWEwhvKvNTzpvRK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/banJRz/btsGt9XuTyo/dWUfn6iqWEwhvKvNTzpvRK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/banJRz/btsGt9XuTyo/dWUfn6iqWEwhvKvNTzpvRK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbanJRz%2FbtsGt9XuTyo%2FdWUfn6iqWEwhvKvNTzpvRK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;857&quot; height=&quot;444&quot; data-origin-width=&quot;857&quot; data-origin-height=&quot;444&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;We propose to utilize a novel module inter-frame attention to extract distinguishable motion and appearance informatino uniformly.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Our motivation for using&amp;nbsp; inter-frame lies in its a.bility to naturally model interframe motino and transfer appearance information at the same time.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;An example of how inter-frame attention acquires motion and inter-frame appearances shown below for the sake of brevity here we only take the example of obatining the motion and enhacing appearance information of i0 for any region in i0&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;we use it as a query in the spatial neighbors and i1 as keys values to generate an attention map&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; attention map을 만들기 위해 i0영역의 patch는 query로, i1의 patch는 key나 value로 사용됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;As for appearance we first aggregate the similar appearance information for my one and then fuse it with i0 to enhace the appearance informaiton in i0.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;For motino, our approach involves creating&amp;nbsp; a coordinate map and then leveraging the coordinates of neighboring points to estimate their corresponding positions from this we can generate a motion vector by subtracting the original position&amp;nbsp; from the approximated one&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; motion의 경우, 이웃 프레임들의 점으로 추정하여 original 위치에서 보간을 위해 예측되는 위치로의 차를 통해 motion vector를 얻는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;By reusing the attention map in this way, we are able to extract both types of information using a single module&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt;&amp;nbsp; attention map을 재사용해서 single module로부터 두가지 정보를 추출&lt;/p&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;- position encoding&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;-&amp;gt;원래 vision transformer에서의&amp;nbsp; position encoding 없애고, depth-wise convolution in the MLP로 대체함&lt;/p&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;blockquote data-ke-style=&quot;style2&quot;&gt;Overall Pipeline&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Directly using interframe attention on original resolution ㅊ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 메모리 많이 필요 , computational overhead 생김&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CNN과 tranformer 모두 사용 -&amp;gt; 학습 잘되고 견고하게&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CNN은 high-resolutional level feature를 추출하기 위함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;interframe attention을 가진 transformer 는 low-resolution motion feqtures and inter-frame apperance features를 추출하기 위함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;without fine-grained information&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;865&quot; data-origin-height=&quot;376&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/opa0x/btsGwBZgp8j/MSudE6KJRFRDFQvNtxG3e0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/opa0x/btsGwBZgp8j/MSudE6KJRFRDFQvNtxG3e0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/opa0x/btsGwBZgp8j/MSudE6KJRFRDFQvNtxG3e0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fopa0x%2FbtsGwBZgp8j%2FMSudE6KJRFRDFQvNtxG3e0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;865&quot; height=&quot;376&quot; data-origin-width=&quot;865&quot; data-origin-height=&quot;376&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>SYDLAB/Paper Reviews</category>
      <author>빈그레</author>
      <guid isPermaLink="true">https://kycu-sb.tistory.com/247</guid>
      <comments>https://kycu-sb.tistory.com/247#entry247comment</comments>
      <pubDate>Sun, 28 Apr 2024 17:55:42 +0900</pubDate>
    </item>
    <item>
      <title>Paper Review - An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale (Vision Transformer)</title>
      <link>https://kycu-sb.tistory.com/248</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://gaussian37.github.io/dl-concept-vit/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://gaussian37.github.io/dl-concept-vit/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1712512174435&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;Vision Transformer (AN IMAGE IS WORTH 16X16 WORDS, TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE)&quot; data-og-description=&quot;gaussian37's blog&quot; data-og-host=&quot;gaussian37.github.io&quot; data-og-source-url=&quot;https://gaussian37.github.io/dl-concept-vit/&quot; data-og-url=&quot;https://gaussian37.github.io/dl-concept-vit/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dFxsLk/hyVJSeGPy6/EyMcsdLSukek4ZOergZbok/img.png?width=1032&amp;amp;height=561&amp;amp;face=0_0_1032_561,https://scrap.kakaocdn.net/dn/ui3x2/hyVJTkoLIo/TmonS58PEC83qZj1rOa0mK/img.png?width=1506&amp;amp;height=801&amp;amp;face=0_0_1506_801,https://scrap.kakaocdn.net/dn/cAKIwT/hyVJZrmf61/Vnr8tHQ8k2Ki1PEAoOKink/img.png?width=1015&amp;amp;height=855&amp;amp;face=0_0_1015_855&quot;&gt;&lt;a href=&quot;https://gaussian37.github.io/dl-concept-vit/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://gaussian37.github.io/dl-concept-vit/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dFxsLk/hyVJSeGPy6/EyMcsdLSukek4ZOergZbok/img.png?width=1032&amp;amp;height=561&amp;amp;face=0_0_1032_561,https://scrap.kakaocdn.net/dn/ui3x2/hyVJTkoLIo/TmonS58PEC83qZj1rOa0mK/img.png?width=1506&amp;amp;height=801&amp;amp;face=0_0_1506_801,https://scrap.kakaocdn.net/dn/cAKIwT/hyVJZrmf61/Vnr8tHQ8k2Ki1PEAoOKink/img.png?width=1015&amp;amp;height=855&amp;amp;face=0_0_1015_855');&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;Vision Transformer (AN IMAGE IS WORTH 16X16 WORDS, TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;gaussian37's blog&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;gaussian37.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;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[그냥 transformer 간단 정리! ]&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;[ input ]&lt;br /&gt;input에서 열의 개수는 문장에서의 단어의 개수&lt;br /&gt;즉 &lt;b&gt;세로로 단어 한개씩&lt;/b&gt;&lt;br /&gt;그러면 행의 개수는 단어의 크기..?&lt;br /&gt;차례대로 x&lt;br /&gt;&lt;br /&gt;[ output ]&amp;nbsp;&lt;br /&gt;target이 번역이었으므로 출력도 단어를 표시하는 matrix는 맞으나 입력과 사이즈가 다를 수 있음&lt;br /&gt;&lt;br /&gt;( 엘 '벡터'의 크기 = 행의 개수 )&lt;br /&gt;&lt;br /&gt;[ word embedding ]&lt;br /&gt;원래 one-hot encoding 이라서 단어 하나는 한 차원에서만 1을 갖는걸로 표현되는데&amp;nbsp;&lt;br /&gt;(즉 단어 수만큼 벡터가 존재해야함 )&lt;br /&gt;이렇게하면 너무 벡터가 너무 많이 필요하니까 embedding을 통해서 한 축에 여러 단어가 표현될 수 있도록&lt;br /&gt;&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;660&quot; data-origin-height=&quot;809&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/beAXvm/btsGtWbxnur/JdkgH6bPHnsLnMAVNyHtWK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/beAXvm/btsGtWbxnur/JdkgH6bPHnsLnMAVNyHtWK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/beAXvm/btsGtWbxnur/JdkgH6bPHnsLnMAVNyHtWK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbeAXvm%2FbtsGtWbxnur%2FJdkgH6bPHnsLnMAVNyHtWK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;284&quot; data-origin-width=&quot;660&quot; data-origin-height=&quot;809&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
Query vs key 비교 -&amp;gt; dot_product , scale&lt;br /&gt;&lt;br /&gt;MatMul : dot product (inner product)&lt;br /&gt;mask : illegal connection 의 attention 금지&lt;br /&gt;&lt;br /&gt;self attention : 문장에서 각 단어 사이 연관성&lt;br /&gt;&lt;br /&gt;Q와 K의 차원은 동일해야함 -&amp;gt; matrix multi[lication으로 차원 통일&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;343&quot; data-origin-height=&quot;144&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LNOAf/btsGspyw3J1/5At2kYLkgUfhI94ku9lKC0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LNOAf/btsGspyw3J1/5At2kYLkgUfhI94ku9lKC0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LNOAf/btsGspyw3J1/5At2kYLkgUfhI94ku9lKC0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLNOAf%2FbtsGspyw3J1%2F5At2kYLkgUfhI94ku9lKC0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;343&quot; height=&quot;144&quot; data-origin-width=&quot;343&quot; data-origin-height=&quot;144&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;br /&gt;dmodel 차원으로 통일&lt;br /&gt;V,K,Q 모두 차원 통일&lt;br /&gt;병렬적 연산 후 concat하기 전에 차원 또 줄이려고 linear 연산함&lt;br /&gt;&lt;br /&gt;self attention은 그냥 단어벡터에 가중치 행렬 곱해서 key,query,value로 사용해서 multi head attention&lt;br /&gt;따라서 self attention은 key,query,value가 모두 같다~! 그냥 문장의 단어별 연관도 얻어내는 정도&lt;br /&gt;-&amp;gt; attention이 강조되어있는 feature를 추출&lt;br /&gt;&lt;br /&gt;[ 초기 연산 처리 ]&lt;br /&gt;디코더가 처리를 시작할 때에는 아직 'shifted output'이 없다. Transformer 모델에서의 디코딩 과정은 다음과 같이 진행된다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;초기 입력&lt;br /&gt;: 디코딩은 특별한 시작 심볼, 종종 &quot;&amp;lt;start&amp;gt;&quot; 토큰이라 불리는 것으로 시작된다. 이 토큰은 디코더에게 문장 생성을 시작하라는 신호를 준다.&lt;br /&gt;&lt;br /&gt;Shifted Output의 생성&lt;br /&gt;: 디코더에 들어가는 'shifted output'은 사실 입력 시퀀스의 각 단어 다음에 오는 단어를 예측하도록 학습된 모델의 출력입니다. 학습 과정에서는 실제 시퀀스를 알고 있으므로, &quot;&amp;lt;start&amp;gt;&quot; 토큰 다음에 올바른 시퀀스를 디코더에 입력으로 줄 수 있다.이는 'teacher forcing'이라는 기법에 해당한다.&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Vision Transformer&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;CNN&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;inductive bias가 부족해서 cnn보다 데이터가 많이 요구된다.&lt;br /&gt;*** inductive bias : 모델이 처음보는 입력에 대한 출력을 예측하기 위해 사용하는 것&lt;br /&gt;&lt;br /&gt;cnn의 inductive bias&lt;br /&gt;&lt;br /&gt;( bias 1)translation equivariance &lt;br /&gt;// 입력의 위치가 변하면 출력의 위치도 변화함으로써 추출되는 feature는 동일하게 유지&lt;br /&gt;MLp에서는 위치가 달라지면 값도 달라져버린다&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;804&quot; data-origin-height=&quot;620&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Vmslv/btsGspyzgoP/sCKZtuKJ2wFUZJpKwx3lB1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Vmslv/btsGspyzgoP/sCKZtuKJ2wFUZJpKwx3lB1/img.png&quot; data-alt=&quot;요러케 위치 달라도 값 똑같&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Vmslv/btsGspyzgoP/sCKZtuKJ2wFUZJpKwx3lB1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVmslv%2FbtsGspyzgoP%2FsCKZtuKJ2wFUZJpKwx3lB1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;246&quot; height=&quot;190&quot; data-origin-width=&quot;804&quot; data-origin-height=&quot;620&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;요러케 위치 달라도 값 똑같&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;br /&gt;( bias 2 )locality&lt;br /&gt;특정 영역만 보고 convolution filter가 feature를 추출할 수 있다고 가정&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;656&quot; data-origin-height=&quot;473&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MM1Em/btsGvtztyEO/AOhcSKWo49l9RZtOOTmIHk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MM1Em/btsGvtztyEO/AOhcSKWo49l9RZtOOTmIHk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MM1Em/btsGvtztyEO/AOhcSKWo49l9RZtOOTmIHk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMM1Em%2FbtsGvtztyEO%2FAOhcSKWo49l9RZtOOTmIHk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;338&quot; height=&quot;244&quot; data-origin-width=&quot;656&quot; data-origin-height=&quot;473&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;br /&gt;위 두가지 가정 (bias)를 통해 CNN이 단순 MLP보다 더 좋은 성능을 낼 수 있다고 해석할 수 있다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;*** MLP : Multi Layer Perceptron의 약자로 기본적인 형태의 인공 신경망이다&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;input layer, hidden layer, output layer로 구성되어 있다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;flatten&lt;br /&gt;: 이미지는 보통 w,h,channle 로 3차원으로 이루어져 있는데 fully conneted layer 쓰려면 1차원으로 만들어야해서 이미지를 벡터로 변환해야한다.&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;Transformer ( Large scale data )&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 CNN은 local receptive field를 보는 것이나, transformer는 데이터 전체를 보고 attention할 위치를 정하는 메커니즘이기 때문에 , 이러한 패턴을 익히기 위해 CNN보다 더 많은 데이터를 필요로 한다.&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;본 논문에서는 large scale 데이터셋인 imagenet 21k 등으로 사전 학습을 하고, CIFAR-10으로 Tranfer learning을 하였을 때 높은 정확도를 가짐을 보여줬다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;*** Transfer learning ( 전이 학습 ) 아래 게시글 참고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://kycu-sb.tistory.com/254&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://kycu-sb.tistory.com/254&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1714237193629&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;AI - Transfer Learning&quot; data-og-description=&quot;Transfer Learning&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Transfer Learning ( 전이 학습 )&amp;nbsp;&amp;nbsp;전이 학습(Transfer Learning)은 머신러닝에서 특정 문제에 대해 학습한 모델을 다른 관련 문제에 적용하는 기법이다.&amp;nbsp;이 접근 방식의 핵심은 한 &quot; data-og-host=&quot;kycu-sb.tistory.com&quot; data-og-source-url=&quot;https://kycu-sb.tistory.com/254&quot; data-og-url=&quot;https://kycu-sb.tistory.com/254&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/ba2RgH/hyVVBpqasV/DTmEnuR7pMDXigyRLkF5e0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/RCqRI/hyVVyTLh4I/Hp4TdwvIczHm5WPgvB2XXK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/tRjbC/hyVVC2XyTY/i1yFqFJvOLvJI3HvtFfNy0/img.jpg?width=500&amp;amp;height=496&amp;amp;face=0_0_500_496&quot;&gt;&lt;a href=&quot;https://kycu-sb.tistory.com/254&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://kycu-sb.tistory.com/254&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ba2RgH/hyVVBpqasV/DTmEnuR7pMDXigyRLkF5e0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/RCqRI/hyVVyTLh4I/Hp4TdwvIczHm5WPgvB2XXK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/tRjbC/hyVVC2XyTY/i1yFqFJvOLvJI3HvtFfNy0/img.jpg?width=500&amp;amp;height=496&amp;amp;face=0_0_500_496');&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;AI - Transfer Learning&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Transfer Learning&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Transfer Learning ( 전이 학습 )&amp;nbsp;&amp;nbsp;전이 학습(Transfer Learning)은 머신러닝에서 특정 문제에 대해 학습한 모델을 다른 관련 문제에 적용하는 기법이다.&amp;nbsp;이 접근 방식의 핵심은 한&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;kycu-sb.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;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;Vision Transformer Architecture&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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;624&quot; data-origin-height=&quot;356&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pRcCB/btsGZvxW7uN/KUMFJhdH8ztq30IR2eXYBk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pRcCB/btsGZvxW7uN/KUMFJhdH8ztq30IR2eXYBk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pRcCB/btsGZvxW7uN/KUMFJhdH8ztq30IR2eXYBk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpRcCB%2FbtsGZvxW7uN%2FKUMFJhdH8ztq30IR2eXYBk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;624&quot; height=&quot;356&quot; data-origin-width=&quot;624&quot; data-origin-height=&quot;356&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- input 만들기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Vision Transformer는 기본 Transformer의 encoder 구조를 그대로 사용하기 때문에, Tranformer에 맞는 입력값으로 변경해주어야 한다. 우측 그림에서 Embedded patches module에 대한 설명한 아래와 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;[ Embedded Patches / Encoder 입력 만드는 과정 ]&lt;br /&gt;&lt;br /&gt;1. patch로 쪼개기&lt;br /&gt;: Transformer와 동일한 구조의 입력 데이터를 만들기 위하여 이미지를 patch 단위로 쪼개고 각 패치를 왼쪽 상단에서 오른쪽 하단 순서로 나열하여 sequence data처럼 만든다. ( 즉 patch가 하나의 단어처럼 동작하는 것 )&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;906&quot; data-origin-height=&quot;403&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3e61S/btsGYRaG2S9/PHe5JVoT1GVou3cskHAlwk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3e61S/btsGYRaG2S9/PHe5JVoT1GVou3cskHAlwk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3e61S/btsGYRaG2S9/PHe5JVoT1GVou3cskHAlwk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3e61S%2FbtsGYRaG2S9%2FPHe5JVoT1GVou3cskHAlwk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;906&quot; height=&quot;403&quot; data-origin-width=&quot;906&quot; data-origin-height=&quot;403&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;br /&gt;P는 patch의 크기를 의미한다. patch에서 PxP차원을 가지고 그만큼을 color에 대한 C채널수만큼을 가진 것의 N개의 patch로서 존재하므로 위와 같이 전체 이미지에 대한 벡터가 존재한다.&lt;br /&gt;&lt;br /&gt;patch의 개수는 본래 높이와 너비인 H와 W의 곱을 patch size인 P제곱으로 나누면 전체 이미지가 patch size에 따라 몇개의 patch로 나누어질지 알 수 있다.&lt;br /&gt;&lt;br /&gt;2.Flatten&lt;br /&gt;: 3D데이터인 각 patch를 flatten하여 벡터로 변환해준다.&lt;br /&gt;&lt;br /&gt;각 patch를 flatten하여 벡터로 만들면 벡터의 크기는 P^2C가 되고, 이러한 벡터가 N개 생긴다.&lt;br /&gt;flatten한 벡터를 모두 합친 것 Xp이다.&lt;br /&gt;&lt;br /&gt;3. Embedding&lt;br /&gt;: 위에서 만들어진 각 patch에 해당하는 각 vector에 linear 연산을 거쳐 embedding 작업을 한다.&lt;br /&gt;E라는 embedding 행렬과 곱하여 target dimension인 D로 모든 벡터의 차원을 조정한다.&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;829&quot; data-origin-height=&quot;424&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/crqP54/btsG0uSKdmK/cXkSZxB24fRlZBrYRP9V10/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/crqP54/btsG0uSKdmK/cXkSZxB24fRlZBrYRP9V10/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/crqP54/btsG0uSKdmK/cXkSZxB24fRlZBrYRP9V10/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcrqP54%2FbtsG0uSKdmK%2FcXkSZxB24fRlZBrYRP9V10%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;829&quot; height=&quot;424&quot; data-origin-width=&quot;829&quot; data-origin-height=&quot;424&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4. 클래스 토큰 추가&lt;br /&gt;: embedding 결과에, 클래스를 예측하는 토큰을 추가한다. 클래스 토큰을 추가하는 이유는 전체 이미지를 대표하는 정보를 모델이 학습할 수 있게 하기 위함이다. 클래스 토큰은 Vision Transformer에서 이미지 전체를 대표하는 데 필요한 정보를 학습하고, 최종적으로 이미지 분류를 위한 결정적인 정보를 제공하기 위해 사용된다.&lt;br /&gt;&lt;br /&gt;토큰을 추가하면 본래 (N,D)행렬이었던 것이 (N+1,D) 의 크기가 된다.&amp;nbsp;&lt;br /&gt;(클래스 토큰은 학습 가능한 파라미터를 입력해주어야 한다. )&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;920&quot; data-origin-height=&quot;398&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BhNKd/btsGZs2tXIX/jBWoyhjHqPb7yAmanNXUo0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BhNKd/btsGZs2tXIX/jBWoyhjHqPb7yAmanNXUo0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BhNKd/btsGZs2tXIX/jBWoyhjHqPb7yAmanNXUo0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBhNKd%2FbtsGZs2tXIX%2FjBWoyhjHqPb7yAmanNXUo0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;920&quot; height=&quot;398&quot; data-origin-width=&quot;920&quot; data-origin-height=&quot;398&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;br /&gt;&lt;br /&gt;5. Positional Embedding&lt;br /&gt;:&amp;nbsp; 마지막으로 z0의 크기와 동일한 (N+1,D) 크기의 위치 행렬을 더해주면&amp;nbsp; vision trnasformer의 입력이 완성된다.&lt;br /&gt;( 분홍 : patch / 보라 : position )&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;535&quot; data-origin-height=&quot;54&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/be7Uht/btsGZa8Ms8z/IFHWLUDxK8mc9JTbHliI6k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/be7Uht/btsGZa8Ms8z/IFHWLUDxK8mc9JTbHliI6k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/be7Uht/btsGZa8Ms8z/IFHWLUDxK8mc9JTbHliI6k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbe7Uht%2FbtsGZa8Ms8z%2FIFHWLUDxK8mc9JTbHliI6k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;535&quot; height=&quot;54&quot; data-origin-width=&quot;535&quot; data-origin-height=&quot;54&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;br /&gt;&lt;br /&gt;(입력 처리 예시)&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;910&quot; data-origin-height=&quot;213&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XU0PD/btsGY9IQkt5/HLArN14rH7Yb3BnRVPmLA0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XU0PD/btsGY9IQkt5/HLArN14rH7Yb3BnRVPmLA0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XU0PD/btsGY9IQkt5/HLArN14rH7Yb3BnRVPmLA0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXU0PD%2FbtsGY9IQkt5%2FHLArN14rH7Yb3BnRVPmLA0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;910&quot; height=&quot;213&quot; data-origin-width=&quot;910&quot; data-origin-height=&quot;213&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Encoder&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;[ Output ; Class 토큰 ]&lt;br /&gt;: 위에서 만든 input값에 대해 Trnasformer encoder를 L번 반복하면 입력값과 동일한 크기의 출력값을 마지막에 얻을 수 있다. 그렇게 얻은 출력 역시 input과 동일하게 클래스 토큰과 벡터로 이루어져 있다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;205&quot; data-origin-height=&quot;126&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/byEPPt/btsGZMGkVjJ/8lQvDFmlBd8J8Gdk5AumRK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/byEPPt/btsGZMGkVjJ/8lQvDFmlBd8J8Gdk5AumRK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/byEPPt/btsGZMGkVjJ/8lQvDFmlBd8J8Gdk5AumRK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbyEPPt%2FbtsGZMGkVjJ%2F8lQvDFmlBd8J8Gdk5AumRK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;126&quot; data-origin-width=&quot;205&quot; data-origin-height=&quot;126&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;br /&gt;출력에 있는 클래스 토큰으로&amp;nbsp; MLP Head를 구성하고, 이를 이용하여 MLP를 하면 최종적으로 class를 분류할 수 있다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[ 입출력 크기 유지 ]&lt;br /&gt;Transformer의 encoder를 L번 반복하기 위해서는 입력과 출력의 크기가 같도록 유지해야한다.&lt;br /&gt;&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;934&quot; data-origin-height=&quot;460&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c7b5tA/btsGY57AOGH/xVOJCsCpxkL1Fv5pMx10g1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c7b5tA/btsGY57AOGH/xVOJCsCpxkL1Fv5pMx10g1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c7b5tA/btsGY57AOGH/xVOJCsCpxkL1Fv5pMx10g1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc7b5tA%2FbtsGY57AOGH%2FxVOJCsCpxkL1Fv5pMx10g1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;934&quot; height=&quot;460&quot; data-origin-width=&quot;934&quot; data-origin-height=&quot;460&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;br /&gt;위에서 만든 z0이 input으로 들어가면 Zl이 output으로 나와 encoder의 출력이 된다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;[Architecuture]&lt;br /&gt;&lt;br /&gt;위 구조에서 Multi Head attention은 현재 input을 바탕으로 Q,V,K를 동일하게 넣고 있으므로, self attention이다.&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;861&quot; data-origin-height=&quot;392&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Pmofs/btsG0VP8Dkj/8XKg0CAaOFMhWtqMyL9zX1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Pmofs/btsG0VP8Dkj/8XKg0CAaOFMhWtqMyL9zX1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Pmofs/btsG0VP8Dkj/8XKg0CAaOFMhWtqMyL9zX1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPmofs%2FbtsG0VP8Dkj%2F8XKg0CAaOFMhWtqMyL9zX1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;861&quot; height=&quot;392&quot; data-origin-width=&quot;861&quot; data-origin-height=&quot;392&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
encoder에서의 연산 순서를 식으로 표현해본 것이다. MSA는 multi head attention이고, LN는 Layer Normalization이다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;1. Norm ( Layer Nomalization )&lt;br /&gt;: 입력값에 대한 embedding을 통해 D차원으로 모두 맞춰준 입력 벡터들에 대해 정규화를 진행한다.&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;250&quot; data-origin-height=&quot;50&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dPmn5A/btsGYPc1FOU/KqpPyaPFGf76oedjs6n5Jk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dPmn5A/btsGYPc1FOU/KqpPyaPFGf76oedjs6n5Jk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dPmn5A/btsGYPc1FOU/KqpPyaPFGf76oedjs6n5Jk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdPmn5A%2FbtsGYPc1FOU%2FKqpPyaPFGf76oedjs6n5Jk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;250&quot; height=&quot;50&quot; data-origin-width=&quot;250&quot; data-origin-height=&quot;50&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
위와 같이 D차원을 가진 입력 벡터들이 N+1개 존재한다.&lt;br /&gt;&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;275&quot; data-origin-height=&quot;179&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yhYk3/btsGY2JOaGP/kC2SrxnwIpiJHSwslh03Z0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yhYk3/btsGY2JOaGP/kC2SrxnwIpiJHSwslh03Z0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yhYk3/btsGY2JOaGP/kC2SrxnwIpiJHSwslh03Z0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyhYk3%2FbtsGY2JOaGP%2FkC2SrxnwIpiJHSwslh03Z0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;275&quot; height=&quot;179&quot; data-origin-width=&quot;275&quot; data-origin-height=&quot;179&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;br /&gt;각 입력벡터들에 대하여 위와 같은 식으로 정규화를 진행한다. 람다와 베타는 학습 가능한 파라미터이며, 아래쪽에 나타난 식은 분산이 0에 가까워졌을 때, 분모가 0이 되는 것을 방지하기 위해 넣은 것이다.&lt;br /&gt;&lt;br /&gt;2. Mutli Head Attention&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;489&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nMt9c/btsGYA76Fkw/NNSkpyDIw0EkBRbkGsxGLK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nMt9c/btsGYA76Fkw/NNSkpyDIw0EkBRbkGsxGLK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nMt9c/btsGYA76Fkw/NNSkpyDIw0EkBRbkGsxGLK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnMt9c%2FbtsGYA76Fkw%2FNNSkpyDIw0EkBRbkGsxGLK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;828&quot; height=&quot;489&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;489&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;481&quot; data-origin-height=&quot;173&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HLIAv/btsGYQXbM9l/d8rCApZJ3ejp5JUrxnKEQk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HLIAv/btsGYQXbM9l/d8rCApZJ3ejp5JUrxnKEQk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HLIAv/btsGYQXbM9l/d8rCApZJ3ejp5JUrxnKEQk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHLIAv%2FbtsGYQXbM9l%2Fd8rCApZJ3ejp5JUrxnKEQk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;173&quot; data-origin-width=&quot;481&quot; data-origin-height=&quot;173&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;br /&gt;3. MLP&lt;br /&gt;마지막으로 MLP과정을 거치고 이때, GeLU activation을 사용한다.&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;848&quot; data-origin-height=&quot;297&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xFrWX/btsGYPRvZmO/dwXLjDBgdXKees28c6aMhk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xFrWX/btsGYPRvZmO/dwXLjDBgdXKees28c6aMhk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xFrWX/btsGYPRvZmO/dwXLjDBgdXKees28c6aMhk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxFrWX%2FbtsGYPRvZmO%2FdwXLjDBgdXKees28c6aMhk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;848&quot; height=&quot;297&quot; data-origin-width=&quot;848&quot; data-origin-height=&quot;297&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;br /&gt;L번 반복한 Transformer Encoder의 마지막 출력에서 클래스 토큰 부분만 분류 문제에 사용하여,&lt;br /&gt;마지막으로 MLP를 이용하여 클래스를 분류한다.&lt;br /&gt;( 위에 클래스 토큰은 학습 가능한 파라미터로 설정 )&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;학습&lt;/blockquote&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;985&quot; data-origin-height=&quot;642&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pzNIh/btsGYBMLKvv/5oMwJ24LWIeq5F8Zguybsk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pzNIh/btsGYBMLKvv/5oMwJ24LWIeq5F8Zguybsk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pzNIh/btsGYBMLKvv/5oMwJ24LWIeq5F8Zguybsk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpzNIh%2FbtsGYBMLKvv%2F5oMwJ24LWIeq5F8Zguybsk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;985&quot; height=&quot;642&quot; data-origin-width=&quot;985&quot; data-origin-height=&quot;642&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&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;717&quot; data-origin-height=&quot;358&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cMqkR2/btsGq3BeB5g/WB830GnLsb0aKyh5TM88c0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cMqkR2/btsGq3BeB5g/WB830GnLsb0aKyh5TM88c0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cMqkR2/btsGq3BeB5g/WB830GnLsb0aKyh5TM88c0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcMqkR2%2FbtsGq3BeB5g%2FWB830GnLsb0aKyh5TM88c0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;358&quot; data-origin-width=&quot;717&quot; data-origin-height=&quot;358&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;introduction&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;- inductive bias&lt;br /&gt;모델이 학습할 수 있는 공간을 제한함으로써 학습 과정을 가이드한다.&amp;nbsp;&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;697&quot; data-origin-height=&quot;368&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BlkdB/btsGoTf5rcb/qvKfimI3t9fFD8T9H0ibG0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BlkdB/btsGoTf5rcb/qvKfimI3t9fFD8T9H0ibG0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BlkdB/btsGoTf5rcb/qvKfimI3t9fFD8T9H0ibG0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBlkdB%2FbtsGoTf5rcb%2FqvKfimI3t9fFD8T9H0ibG0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;697&quot; height=&quot;368&quot; data-origin-width=&quot;697&quot; data-origin-height=&quot;368&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;br /&gt;&lt;br /&gt;Fully connected는 inductive bias가 존재하지 않지만, convolutional과 recurrent 모델에서는 inductive bias가 존재한다.&lt;br /&gt;&lt;br /&gt;Transformer는 self-attention을 하기 때문에, CNN과 RNN보다는 상대적으로 inductive bias가 낮다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;- Vision Transformer (ViT) 개요&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;693&quot; data-origin-height=&quot;419&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bZFK0C/btsGpqdInqk/Pj136nqqSjN0yJtKiHKCw1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bZFK0C/btsGpqdInqk/Pj136nqqSjN0yJtKiHKCw1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bZFK0C/btsGpqdInqk/Pj136nqqSjN0yJtKiHKCw1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZFK0C%2FbtsGpqdInqk%2FPj136nqqSjN0yJtKiHKCw1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;693&quot; height=&quot;419&quot; data-origin-width=&quot;693&quot; data-origin-height=&quot;419&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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;700&quot; data-origin-height=&quot;509&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b1WmSf/btsGp2J4bgT/a8Hqkx0Ii7gTaKSbwobIiK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b1WmSf/btsGp2J4bgT/a8Hqkx0Ii7gTaKSbwobIiK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b1WmSf/btsGp2J4bgT/a8Hqkx0Ii7gTaKSbwobIiK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb1WmSf%2FbtsGp2J4bgT%2Fa8Hqkx0Ii7gTaKSbwobIiK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;509&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;509&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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;698&quot; data-origin-height=&quot;203&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/o65UQ/btsGqZr5PnE/1zMGII10NINb11A8tIZzX1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/o65UQ/btsGqZr5PnE/1zMGII10NINb11A8tIZzX1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/o65UQ/btsGqZr5PnE/1zMGII10NINb11A8tIZzX1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fo65UQ%2FbtsGqZr5PnE%2F1zMGII10NINb11A8tIZzX1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;203&quot; data-origin-width=&quot;698&quot; data-origin-height=&quot;203&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;step1&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;분할해서 patch sequence 구축&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;step2&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;patch들을 trainable linear projection을 적용해서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각각의 patch(flattend vector)를 뒷차원으로 변환&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;9개의 patch를 쭉 펴서 뒷차원..?으로 변환..?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;step2를 거치면 각각의 patch가 저 분홍색 벡터로 나온다&lt;/p&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;step3&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앞쪽 별표 : learnable class embedding&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나머지 핑크 : patche embedding&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보라색 : positional embedding&lt;/p&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;step4&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: 마지막 레이어세ㅓ class embedding에 대한 output인 image representation을 도출&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;class token을 넣고, class token의 위치에 해당하는 representation을&amp;nbsp; 사용하게 되는 것&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;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;blockquote data-ke-style=&quot;style2&quot;&gt;Positional Embedding&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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;709&quot; data-origin-height=&quot;471&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TPriq/btsGo9DbU7T/If1l6g8IVqDKuUnegM9mak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TPriq/btsGo9DbU7T/If1l6g8IVqDKuUnegM9mak/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TPriq/btsGo9DbU7T/If1l6g8IVqDKuUnegM9mak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTPriq%2FbtsGo9DbU7T%2FIf1l6g8IVqDKuUnegM9mak%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;709&quot; height=&quot;471&quot; data-origin-width=&quot;709&quot; data-origin-height=&quot;471&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;No&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그냥 patch embedding만을 transformer encoder의 input으로 사용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1 (가장 good)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;patch를 raster order로 2차원의 3차원의 이미지가 존재할 때 가로,세로를 기준으로 왼쪽 위부터 오른쪽 오래까지 봄&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3차원의 이미지에 대해서 가로,세로 2D grid를 만들어서 x,y축 좌표가 있는 positionla embedding&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;relative&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;patch들 사이의 positional embedding&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최종적으로 learninable positional embeddign에 1D를 positional embeddign을 넣&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;708&quot; data-origin-height=&quot;481&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LvUoG/btsGpqY425U/JqkE4rYlS3D0XaP4lVrdFK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LvUoG/btsGpqY425U/JqkE4rYlS3D0XaP4lVrdFK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LvUoG/btsGpqY425U/JqkE4rYlS3D0XaP4lVrdFK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLvUoG%2FbtsGpqY425U%2FJqkE4rYlS3D0XaP4lVrdFK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;481&quot; data-origin-width=&quot;708&quot; data-origin-height=&quot;481&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;765&quot; data-origin-height=&quot;85&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cwxLY1/btsGp2pQkxv/mZZFKWeAh1mMvWVfglnwZ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cwxLY1/btsGp2pQkxv/mZZFKWeAh1mMvWVfglnwZ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cwxLY1/btsGp2pQkxv/mZZFKWeAh1mMvWVfglnwZ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcwxLY1%2FbtsGp2pQkxv%2FmZZFKWeAh1mMvWVfglnwZ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;765&quot; height=&quot;85&quot; data-origin-width=&quot;765&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;standard에서는 MLP뒷단에 normalization과 residual있었는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앞쪽에 layer normalization을 적용한 부분이&amp;nbsp; standrard와 좀 다르다&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;+: residual conenction&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;multi head attention 과 MLP로 크게 구성이 되어있고,&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;이러한 구조가 step4 구조이다.&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;532&quot; data-origin-height=&quot;71&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dcGTGA/btsGpRWoIM6/U2xYUe6DUfH64klA53P8k0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dcGTGA/btsGpRWoIM6/U2xYUe6DUfH64klA53P8k0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dcGTGA/btsGpRWoIM6/U2xYUe6DUfH64klA53P8k0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdcGTGA%2FbtsGpRWoIM6%2FU2xYUe6DUfH64klA53P8k0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;532&quot; height=&quot;71&quot; data-origin-width=&quot;532&quot; data-origin-height=&quot;71&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;patch 구조 때문에&lt;/p&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;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;717&quot; data-origin-height=&quot;358&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qaSay/btsGqt1w1Mi/tK3FHIksRs2qNFbWGOkVdK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qaSay/btsGqt1w1Mi/tK3FHIksRs2qNFbWGOkVdK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qaSay/btsGqt1w1Mi/tK3FHIksRs2qNFbWGOkVdK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqaSay%2FbtsGqt1w1Mi%2FtK3FHIksRs2qNFbWGOkVdK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;358&quot; data-origin-width=&quot;717&quot; data-origin-height=&quot;358&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MSA: multi head self attention&lt;br /&gt;ㅇ여러개의 patch로 분할해서 순서가 있는 이미지로 넣는 것이 bias를 넣는 방법이었음&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Resolution adjustment&amp;nbsp; &amp;nbsp;( Fine tunning)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: patch는 동일하지만 이미지에 따라 patch의 개수는 달라지게 됨 이미지 크기가 다르니까&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 때, position embeddign을 조정하는 부분이 있는데 이 부분이 bias가 됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;763&quot; data-origin-height=&quot;499&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bAQF5n/btsGpG1RSGQ/lvFoIWw92YdTYaxclXmze0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bAQF5n/btsGpG1RSGQ/lvFoIWw92YdTYaxclXmze0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bAQF5n/btsGpG1RSGQ/lvFoIWw92YdTYaxclXmze0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbAQF5n%2FbtsGpG1RSGQ%2FlvFoIWw92YdTYaxclXmze0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;763&quot; height=&quot;499&quot; data-origin-width=&quot;763&quot; data-origin-height=&quot;499&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;764&quot; data-origin-height=&quot;406&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dcpoo2/btsGp4HSgSs/PrAn3vUQzAwgOI7zOppbn1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dcpoo2/btsGp4HSgSs/PrAn3vUQzAwgOI7zOppbn1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dcpoo2/btsGp4HSgSs/PrAn3vUQzAwgOI7zOppbn1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdcpoo2%2FbtsGp4HSgSs%2FPrAn3vUQzAwgOI7zOppbn1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;406&quot; data-origin-width=&quot;764&quot; data-origin-height=&quot;406&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;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>SYDLAB/Paper Reviews</category>
      <author>빈그레</author>
      <guid isPermaLink="true">https://kycu-sb.tistory.com/248</guid>
      <comments>https://kycu-sb.tistory.com/248#entry248comment</comments>
      <pubDate>Sun, 28 Apr 2024 02:11:39 +0900</pubDate>
    </item>
    <item>
      <title>AI - Transfer Learning</title>
      <link>https://kycu-sb.tistory.com/254</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&amp;nbsp;Transfer Learning&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;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;blockquote data-ke-style=&quot;style2&quot;&gt;Transfer Learning ( 전이 학습 )&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전이 학습(Transfer Learning)은 머신러닝에서 특정 문제에 대해 학습한 모델을 다른 관련 문제에 적용하는 기법이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 접근 방식의 핵심은 한 영역에서 학습한 지식을 다른 영역에 전달하여, 새로운 작업의 학습에 필요한 데이터의 양을 줄이고, 학습 속도를 가속화하며, 일반적으로 성능을 향상시키는 데 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사전 학습(Pre-training)은 전이 학습의 첫 번째 단계로, 대규모 데이터셋에서 모델을 학습시킨다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 과정에서 모델은 다양한 특징과 패턴을 학습하게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어, 이미지 인식 작업에서는 ImageNet과 같은 큰 데이터셋에서 모델을 학습시킨다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자연어 처리에서는, 대규모 텍스트 코퍼스를 사용해 언어 모델을 사전 학습시킨다.(예: BERT, GPT).&lt;/p&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;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;br /&gt;1. 특징 추출기(Feature Extractor) //가중치 업데이트 x&lt;br /&gt;: 모델의 사전 학습된 부분을 고정시키고, 출력층만 새로운 작업에 맞게 변경하여 학습합니다. 이 경우, 사전 학습된 모델의 가중치는 고정되어 있으며, 데이터의 고차원 특징을 추출하는 역할을 합니다.&lt;br /&gt;&lt;br /&gt;2.미세 조정(Fine-tuning) //가중치 업데이트 o&lt;br /&gt;: 사전 학습된 모델의 일부 또는 전체를 새로운 작업에 대해 추가적으로 학습시키는 과정입니다. 이를 통해, 모델은 새로운 작업의 특징에 더 적합하도록 조정됩니다. 이 과정에서 사전 학습된 가중치는 출발점으로 사용되고, 새로운 데이터에 기반하여 가중치가 업데이트됩니다.&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전이 학습은 특히 새로운 작업에 대한 레이블이 지정된 데이터가 충분하지 않을 때 유용하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사전 학습된 모델을 사용함으로써, 적은 양의 데이터로도 효과적인 학습이 가능해진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 방법은 다양한 분야에서 성공적으로 적용되고 있으며, 현대의 많은 딥러닝 응용에서 표준적인 접근법으로 자리 잡았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Quality control (2)/AI</category>
      <author>빈그레</author>
      <guid isPermaLink="true">https://kycu-sb.tistory.com/254</guid>
      <comments>https://kycu-sb.tistory.com/254#entry254comment</comments>
      <pubDate>Sun, 28 Apr 2024 01:59:40 +0900</pubDate>
    </item>
    <item>
      <title>FI - Attention(Query,Key,Value) / Transformer / Scaled dot-product / Multi head attention</title>
      <link>https://kycu-sb.tistory.com/253</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Attention&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;Attention 구조 간략히 정리&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Attnetion은 Q,K,V를 입력으로 갖는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;querying&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;: query에 해당하는 값이 입력되었을 때, query에 해당하는 key 값을 찾아서 그 key값에 해당하는 value를 출력하는 작업을 말한다. 이때, query와 똑같은 key값을 선택할지, 가장 유사한 key 값을 선택할 지는 문제에 따라 달라지게 된다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Attention에서는 query에 대해 어떤 key와 유사한지 보고 유사도를 반영하여 key에 대응하는 value를 합성(Aggregation)한 것이 Attention value가 된다.&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;471&quot; data-origin-height=&quot;336&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rlld1/btsGZtfOiQT/wKGsRZZqNcYUhkXRzLHeEk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rlld1/btsGZtfOiQT/wKGsRZZqNcYUhkXRzLHeEk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rlld1/btsGZtfOiQT/wKGsRZZqNcYUhkXRzLHeEk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Frlld1%2FbtsGZtfOiQT%2FwKGsRZZqNcYUhkXRzLHeEk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;471&quot; height=&quot;336&quot; data-origin-width=&quot;471&quot; data-origin-height=&quot;336&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;281&quot; data-origin-height=&quot;100&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/o0AQ6/btsG1gGsj7y/BPsJBXS2oE8E6AfKBzJhCk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/o0AQ6/btsG1gGsj7y/BPsJBXS2oE8E6AfKBzJhCk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/o0AQ6/btsG1gGsj7y/BPsJBXS2oE8E6AfKBzJhCk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fo0AQ6%2FbtsG1gGsj7y%2FBPsJBXS2oE8E6AfKBzJhCk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;281&quot; height=&quot;100&quot; data-origin-width=&quot;281&quot; data-origin-height=&quot;100&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하나의 query에 대해 여러 key값들과 유사도를 계산한다. 여기서 유사도는 내적을 통해 구할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 그림에서 빨간 값이 유사도의 값이고 해당 값에 파란 원인 value를 곱한 후 모두 더하면 attention value가 되는 것이다.&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;[query,key 역할]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;RNN 구조에서 하나 앞선 time-step의 hidden state가 해당 transformer 구조에서는 query이다. query가 deocder의 hidden state 역할을 한다.&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;그리고, encoder의 hidden state를 key와 value로 사용한다. 즉, 이 구조에서 key와 value는 갖고 단어의 개수만큼 key 값을 갖는다. 대부분의 attention network에서 key와 value는 같은 값을 갖도록 하며, key는 유사도 측정해 쓰이고, value는 해당 값을 유지하다가 최종 attention map을 합성할 때의 각각의 '값'으로서 곱하여 쓰인다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;740&quot; data-origin-height=&quot;334&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cO4Hw8/btsGZtmDwbA/CGNTs8rtcy01gX6yrS3rMk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cO4Hw8/btsGZtmDwbA/CGNTs8rtcy01gX6yrS3rMk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cO4Hw8/btsGZtmDwbA/CGNTs8rtcy01gX6yrS3rMk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcO4Hw8%2FbtsGZtmDwbA%2FCGNTs8rtcy01gX6yrS3rMk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;740&quot; height=&quot;334&quot; data-origin-width=&quot;740&quot; data-origin-height=&quot;334&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;위 RNN 구조에서 si들이 decoder로 들어갈 hidden state 역할을 한다.&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;752&quot; data-origin-height=&quot;467&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cHNqF9/btsGZnz2iZj/Wmx9tKEAx6gWYDTEkzJXwK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cHNqF9/btsGZnz2iZj/Wmx9tKEAx6gWYDTEkzJXwK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cHNqF9/btsGZnz2iZj/Wmx9tKEAx6gWYDTEkzJXwK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcHNqF9%2FbtsGZnz2iZj%2FWmx9tKEAx6gWYDTEkzJXwK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;752&quot; height=&quot;467&quot; data-origin-width=&quot;752&quot; data-origin-height=&quot;467&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;attention&amp;nbsp; 연산은 위 메커니즘을 따른다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Decoder에 si라는 query가 입력되면 모든 key값인 hi와 내적 ( comparison ) 을 통해 유사도를 구한다. 이 유사도 값을 softmax 함수를 거쳐서 확률로서 만들어 그 총 합이 1이 되도록 한다.&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;softmax 함수를 거친 유사도 확률값을 가중치처럼 사용하여 각 value들을 곱하고 합하여 최종적으로 ai라는 attention value를 만들게 된다.&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;200&quot; data-origin-height=&quot;108&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yf7Hh/btsGYLIlNTB/ZGLHC9yqt7oQCP3cRO1Cg1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yf7Hh/btsGYLIlNTB/ZGLHC9yqt7oQCP3cRO1Cg1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yf7Hh/btsGYLIlNTB/ZGLHC9yqt7oQCP3cRO1Cg1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fyf7Hh%2FbtsGYLIlNTB%2FZGLHC9yqt7oQCP3cRO1Cg1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;200&quot; height=&quot;108&quot; data-origin-width=&quot;200&quot; data-origin-height=&quot;108&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;수식은 위와 같다. 내적 결과를 softmax를 취하고 value값과 곱하고 총합을 구한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;convolution 연산의 한계&lt;/blockquote&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;785&quot; data-origin-height=&quot;641&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/babBmp/btsGZWaSsfz/LsDc2el85EhbuB8WgyRt9k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/babBmp/btsGZWaSsfz/LsDc2el85EhbuB8WgyRt9k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/babBmp/btsGZWaSsfz/LsDc2el85EhbuB8WgyRt9k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbabBmp%2FbtsGZWaSsfz%2FLsDc2el85EhbuB8WgyRt9k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;785&quot; height=&quot;641&quot; data-origin-width=&quot;785&quot; data-origin-height=&quot;641&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;convolution 연산은 필터 크기만큼의 영역을 순차적으로 이동하면서 각 영역의 정보를 읽는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 필터가 local한 정보를 읽고 이해하며 layer가 쌓임에 따라 더 층층이 쌓인 더 넓은 영역으 정보(feature)를 읽을 수 있게 되는 것이 convolution layer의 동작 원리이다.&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;이 특성이 convolution layer의 장점이자 단점이 된다. 얕은 layer에서는 local 영역을 자세히 볼 수 있고, 깊은 layer에서는 더 넓은 영역을 볼 수 있는 장점이 있으나,&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;395&quot; data-origin-height=&quot;391&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XJsTT/btsGYLO9cht/lGcwwLOAK0yAgAMRNfurS0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XJsTT/btsGYLO9cht/lGcwwLOAK0yAgAMRNfurS0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XJsTT/btsGYLO9cht/lGcwwLOAK0yAgAMRNfurS0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXJsTT%2FbtsGYLO9cht%2FlGcwwLOAK0yAgAMRNfurS0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;290&quot; height=&quot;287&quot; data-origin-width=&quot;395&quot; data-origin-height=&quot;391&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;위와 같이 두 영역을 한 번에 볼 수는 없다. layer가 깊어져서 전체 이미지에 대한 정보를 한 번에 볼 수는 있어도, 지엽적으로 특정 두 부분만을 인식할 수 없다는 것이 convolution layer의 단점이다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이미지를 도는 동안 모든 부분에 대하여 동일한 가중치로 연산을 한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;809&quot; data-origin-height=&quot;377&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4Pxfy/btsG0bMolkT/RvWw2m0P50eYWhS9uPsij1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4Pxfy/btsG0bMolkT/RvWw2m0P50eYWhS9uPsij1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4Pxfy/btsG0bMolkT/RvWw2m0P50eYWhS9uPsij1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4Pxfy%2FbtsG0bMolkT%2FRvWw2m0P50eYWhS9uPsij1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;809&quot; height=&quot;377&quot; data-origin-width=&quot;809&quot; data-origin-height=&quot;377&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;위 attention 메커니즘을 보면 layer 초반부터 background와 같으 부분에 대한 중요도를 줄인다. 즉, low-level feature에 대한 영향을 줄이는 것이다. 대신 high level feature에 대한 영향은 키워 실제 객체에 집중하도록 만들어둔다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Transformer&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;Transformer에 관하여&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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;759&quot; data-origin-height=&quot;426&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eDc9Ti/btsGYO585n5/EdCj33J6x85YyLTXJG4lqk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eDc9Ti/btsGYO585n5/EdCj33J6x85YyLTXJG4lqk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eDc9Ti/btsGYO585n5/EdCj33J6x85YyLTXJG4lqk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeDc9Ti%2FbtsGYO585n5%2FEdCj33J6x85YyLTXJG4lqk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;426&quot; data-origin-width=&quot;759&quot; data-origin-height=&quot;426&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;Transformer는 다음과 같이 encoder,decoder 구조로 되어있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CNN에서의 feature extraction과 달리, Transformer에서는 sequence간의 관계를 학습하는 데에 초점을 맞춘다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인코더에서는 input sequence를 고차원적인 표현으로 변환하고, 디코더는 이 표현을 사용하여 새로운 sequence를 생성한다. Transformer 모델에서 인코더와 디코더는 입력 내의 모든 요소 간의 복잡한 관계를 학습한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인코더 : input sequence 내의 각 요소들 간의 관계를 모델링&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;디코더 : 인코더 정보 사용하여 output sequence를 하나씩 생성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Transformer 모델은 인코더 디코더 구조를 통해 병렬철가 가능&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; RNN 기반 모델의 순차 처리 한계 뛰어넘는다. seq2seq에서는 encoder에 입력되어야할 모든 input이 처리된 후에 decoder 연산이 시작되지만, transformer는 encoder의 계산과 deocder의 계산이 동시에 일어난다는 차이가 있다.&lt;/p&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;[자연어 번역을 위한 Transformer]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;740&quot; data-origin-height=&quot;428&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mASPn/btsGZ1b4TJK/JKIFDknBnfzyEXRo1Ngac1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mASPn/btsGZ1b4TJK/JKIFDknBnfzyEXRo1Ngac1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mASPn/btsGZ1b4TJK/JKIFDknBnfzyEXRo1Ngac1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmASPn%2FbtsGZ1b4TJK%2FJKIFDknBnfzyEXRo1Ngac1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;740&quot; height=&quot;428&quot; data-origin-width=&quot;740&quot; data-origin-height=&quot;428&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Transformer의 전체 입출력은 행렬로 되어있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;input&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: one-hot encoding 형태의 벡터로 나타내어있다. 즉 열벡터(세로)가 한 단어에 해당하며, 열 벡터의 길이 즉, 행의 개수는 단어의 개수와 관련이 있다.&amp;nbsp; ( 새로 열벡터에서 한 단어만 표현 / 단어 개수만큼 행 존재 )&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문장에 단어가 10개 있으면 열벡터의 크기는 10이 된다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;( 열벡터의 크기 = 행의 개수 = 단어의 개수 )&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;output&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;555&quot; data-origin-height=&quot;168&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/q2bx8/btsG1hSSMn8/7f9cj5InsmX6qkakpFY1C1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/q2bx8/btsG1hSSMn8/7f9cj5InsmX6qkakpFY1C1/img.png&quot; data-alt=&quot;RNN&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/q2bx8/btsG1hSSMn8/7f9cj5InsmX6qkakpFY1C1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fq2bx8%2FbtsG1hSSMn8%2F7f9cj5InsmX6qkakpFY1C1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;555&quot; height=&quot;168&quot; data-origin-width=&quot;555&quot; data-origin-height=&quot;168&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;RNN&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;RNN구조에서 decoder의 첫 번째 rnn에서의 output은 다음 rnn의 input으로 들어간다. 이와 같이 transformer에서도 deocder의 output을 다시 decoder의 input으로 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Transformer에서 decoder위쪽에서 나오는 output은 transformer 모델을 통해 출력되는 실제 출력이고, 아래쪽 decoder의 입력으로 들어가고 있는 output은 transformer에서 만들어낸 output을 다시 입력으로 사용하는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다시 입력으로 사용되는 output의 첫 열벡터는 sos(start of sequence)rk ehlrh, X표시가 되어있는 마지막 열벡터는 EOS(End of Sequence)가 된다. output의 첫 열벡터와 마지막 열벡터로 output의 한 묶음에 대한 처음과 끝을 알려준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;word embedding&lt;/blockquote&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;973&quot; data-origin-height=&quot;600&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/or5Wc/btsGZ0EfWOE/N5qLhRxR6S9jPzOo63BDJ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/or5Wc/btsGZ0EfWOE/N5qLhRxR6S9jPzOo63BDJ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/or5Wc/btsGZ0EfWOE/N5qLhRxR6S9jPzOo63BDJ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2For5Wc%2FbtsGZ0EfWOE%2FN5qLhRxR6S9jPzOo63BDJ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;973&quot; height=&quot;600&quot; data-origin-width=&quot;973&quot; data-origin-height=&quot;600&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;one-hot encoding 타입의 벡터를 실수 형태로 변경하면서 차원의 수를 줄일 수 있다.&lt;/p&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;blockquote data-ke-style=&quot;style2&quot;&gt;Positional Encoding&lt;/blockquote&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;524&quot; data-origin-height=&quot;235&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cZhH1z/btsGYoNoYPl/ksfuqBOJulSIZRGBegBcBk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cZhH1z/btsGYoNoYPl/ksfuqBOJulSIZRGBegBcBk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cZhH1z/btsGYoNoYPl/ksfuqBOJulSIZRGBegBcBk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcZhH1z%2FbtsGYoNoYPl%2FksfuqBOJulSIZRGBegBcBk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;524&quot; height=&quot;235&quot; data-origin-width=&quot;524&quot; data-origin-height=&quot;235&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;word embeding을 통해 차원의 수를 줄인 이후에는 해당 embedding된 값과&amp;nbsp; positional encoding을 통해 얻은 값이 더해지게 된다.&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;RNN처럼 순차적으로 들어가지 않으므로 positional encoding을 통해 시간적 위치 정보를 추가해줘야한다. 즉, 시간적 위치별로 고유한 code를 생성하여 더하는 방식이다.&lt;/p&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;blockquote data-ke-style=&quot;style2&quot;&gt;scaled dot-product attention&lt;/blockquote&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;538&quot; data-origin-height=&quot;654&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eI7AkK/btsG0U4B8yn/MQKyc9kElovNEVKqxTFLi1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eI7AkK/btsG0U4B8yn/MQKyc9kElovNEVKqxTFLi1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eI7AkK/btsG0U4B8yn/MQKyc9kElovNEVKqxTFLi1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeI7AkK%2FbtsG0U4B8yn%2FMQKyc9kElovNEVKqxTFLi1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;538&quot; height=&quot;654&quot; data-origin-width=&quot;538&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Q와 K의 비교 함수는 Dot-product와 scale로 이루어진다.&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;Matmul&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: dot product에 해당하고 inner product(내적)과 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Scale&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: 아래 식처럼 dk값을 조정하여 Matmul에서 내적된 결과값이 너무 커지거나 너무 작아지지 않도록 해준다.&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;42&quot; data-origin-height=&quot;57&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhXfUM/btsG1gsWSpW/b1JxG8KSPT2egK9epCsKSk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhXfUM/btsG1gsWSpW/b1JxG8KSPT2egK9epCsKSk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhXfUM/btsG1gsWSpW/b1JxG8KSPT2egK9epCsKSk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhXfUM%2FbtsG1gsWSpW%2Fb1JxG8KSPT2egK9epCsKSk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;42&quot; height=&quot;57&quot; data-origin-width=&quot;42&quot; data-origin-height=&quot;57&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;Mask&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: mask를 이용해 illegal connection의 attnetion을 금지한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;illegal attention은 self attention의 개념과 연관되어 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Softmax&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: 가중치의 전체 합을 1로 만들어주기 위한 normalization 과정이다.&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;*** Self atttention : 각각의 입력이 서로 다른 입력에게 어떤 연관성을 가지고 있는 지를 구하기 위해 사용된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, self attention에서는 query,key,value가 모두 같다! 지금 들어오는 input에 대해 서로간의 관계를 파악하는 것이기 때문이다. self attention 을 통해 attention이 강조되어있는 feature를 추출할 수 있다.&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;725&quot; data-origin-height=&quot;398&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brmb6S/btsGZATqroM/UoK7BAdBZgEXwS5qo3NEe0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brmb6S/btsGZATqroM/UoK7BAdBZgEXwS5qo3NEe0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brmb6S/btsGZATqroM/UoK7BAdBZgEXwS5qo3NEe0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbrmb6S%2FbtsGZATqroM%2FUoK7BAdBZgEXwS5qo3NEe0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;725&quot; height=&quot;398&quot; data-origin-width=&quot;725&quot; data-origin-height=&quot;398&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;Self attention은 입력 문장에 대해 문맥에 대한 정보 학습할 수 있도록 만들어준다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;I am a teacher&quot;에서의 각 단어가 서로 어떤 연관을 가지고 있는지를 학습할 수 있다.&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;779&quot; data-origin-height=&quot;420&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cmDzQQ/btsGY4gqSDi/sRId2PV5XIoJs14p0fFa3K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cmDzQQ/btsGY4gqSDi/sRId2PV5XIoJs14p0fFa3K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cmDzQQ/btsGY4gqSDi/sRId2PV5XIoJs14p0fFa3K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcmDzQQ%2FbtsGY4gqSDi%2FsRId2PV5XIoJs14p0fFa3K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;779&quot; height=&quot;420&quot; data-origin-width=&quot;779&quot; data-origin-height=&quot;420&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;self attention에서는 decoder가 똑같은 decoder 자기 자신과 연산을 할 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단, 특정 layer보다 앞선 layer들만을 가지고만 attention 연산을 할 수 있다.&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-filename=&quot;blob&quot; data-origin-width=&quot;344&quot; data-origin-height=&quot;282&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PzCAL/btsG0sAvQic/MHlFRFKdp0E8gR0lYlXyx0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PzCAL/btsG0sAvQic/MHlFRFKdp0E8gR0lYlXyx0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PzCAL/btsG0sAvQic/MHlFRFKdp0E8gR0lYlXyx0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPzCAL%2FbtsG0sAvQic%2FMHlFRFKdp0E8gR0lYlXyx0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;282&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;344&quot; data-origin-height=&quot;282&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[1]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 그림에서와 같이 디코더는 이전 디코더 layer의&amp;nbsp; output을 입력으로 받아 그것에 대한 self-attention을 진행한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 그림에서 decoder 가장 아래에 처음으로 수행되는 attention 구조가 self-attention으로서 입력으로 들어온 sequence에 대해 관계를 학습하는 것이다. 마스킹 기법이 사용되며, 과거의 decoder layer에 대한 정보만 활용할 뿐, 미래에 대해서는 참조해서는 안된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[2]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 이후, 위쪽 attention구조는 인코더-디코더 어텐션이다. 여기서 디코더는 인코더의 출력을 참조하여 각 토큰이 입력 sequence 내의 모든 토큰에 주의를 기울인다. 이 메커니즘을 통해 디코더는 과거 정보들을 이용하여 인코더에서 받은 값[3]을 참조하여 다음 토큰을 정확하게 예측하도록 한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;Mask ( illegal connection 방지 )&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;decoder는 이전 layer의 output을 참조하되, 이후 layer에 대한 value값은 참조해서는 안 된다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;281&quot; data-origin-height=&quot;401&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bGBX7q/btsG0HEjl5O/R9dTPjkB9YW6lKPoXX61EK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bGBX7q/btsG0HEjl5O/R9dTPjkB9YW6lKPoXX61EK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bGBX7q/btsG0HEjl5O/R9dTPjkB9YW6lKPoXX61EK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbGBX7q%2FbtsG0HEjl5O%2FR9dTPjkB9YW6lKPoXX61EK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;281&quot; height=&quot;401&quot; data-origin-width=&quot;281&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서, 자기 자신을 포함한 미래의 값과는 attention을 구하지 않기 위하여 mask를 씀으로서 illegal connection을 막는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;sequence를 생성하는 작업에서 디코더 output으로 현재 나와야할 단어를 생성할 때, 아직 생성되지 않은 미래의 단어들에 대한 정보는 사용하지 않도록 해야한다. 이것이 마스킹의 주된 목적이다.&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;예를 들어 The quick brown fox를 번역하는 중에 quick을 생성할 때는 The의 정보만 사용하고, brown이나 fox의 정보는 사용하지 않아야 한다. 미래의 단어는 계산에서 제외되며, softmax 단계에서 이들에 대한 attention 가중치는 0이 된다.&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;이러한 마스킹 과정은 디코더가 학습 중에 미래의 정보를 불필요하게 이용하는 것을 방지함으로써, 실제 추론(inference) 단계에서도 각 시점에서 사용할 수 있는 정보에만 기반하여 단어를 순차적으로 생성할 수 있도록한다.&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;321&quot; data-origin-height=&quot;168&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/coftmu/btsGZUxm3ds/PgtCieAeR9GnlrkIWBbu30/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/coftmu/btsGZUxm3ds/PgtCieAeR9GnlrkIWBbu30/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/coftmu/btsGZUxm3ds/PgtCieAeR9GnlrkIWBbu30/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcoftmu%2FbtsGZUxm3ds%2FPgtCieAeR9GnlrkIWBbu30%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;321&quot; height=&quot;168&quot; data-origin-width=&quot;321&quot; data-origin-height=&quot;168&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;258&quot; data-origin-height=&quot;114&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qTgWN/btsGY0kY8rv/T8wo6jcget8PiINKQKutCK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qTgWN/btsGY0kY8rv/T8wo6jcget8PiINKQKutCK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qTgWN/btsGY0kY8rv/T8wo6jcget8PiINKQKutCK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqTgWN%2FbtsGY0kY8rv%2FT8wo6jcget8PiINKQKutCK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;258&quot; height=&quot;114&quot; data-origin-width=&quot;258&quot; data-origin-height=&quot;114&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Q,K,V는 다음과 같이 행렬 형태로 변환 후에&amp;nbsp; 연산된다.&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;224&quot; data-origin-height=&quot;75&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bUbWCU/btsGYTlZzvK/rJPsAuWBjTn2xn111t21qk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bUbWCU/btsGYTlZzvK/rJPsAuWBjTn2xn111t21qk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bUbWCU/btsGYTlZzvK/rJPsAuWBjTn2xn111t21qk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUbWCU%2FbtsGYTlZzvK%2FrJPsAuWBjTn2xn111t21qk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;224&quot; height=&quot;75&quot; data-origin-width=&quot;224&quot; data-origin-height=&quot;75&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;C는 softmax까지의 결과값이므로 확률값으로서, 가중치의 역할을 하여 value와 곱해지면 attention value가 된다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;Multi-Head attention&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;502&quot; data-origin-height=&quot;585&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oF0ui/btsG0bMoWQu/akTBNGS0USX64TUzTGGqAK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oF0ui/btsG0bMoWQu/akTBNGS0USX64TUzTGGqAK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oF0ui/btsG0bMoWQu/akTBNGS0USX64TUzTGGqAK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoF0ui%2FbtsG0bMoWQu%2FakTBNGS0USX64TUzTGGqAK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;502&quot; height=&quot;585&quot; data-origin-width=&quot;502&quot; data-origin-height=&quot;585&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;위에서 설명한 scale dot product attention을 h개 모아서 attention layer를 병렬적으로 사용하는 것을 말한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;한번에 scaled dot product attention을 연산하지 않고, 여러 개의 작은 scaled dot product attention으로 분할하고 병렬적으로 연산한 다음에 concat하여 합치는 drive &amp;amp; conquer 전략이라고 할 수 있다.&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;여기서 h를 몇으로 하느냐, 즉 몇개로 분할하느냐에 따라 각 scaled dot product attention의 입력 크기가 달라지게 된다.&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;h개의 scaled dot product attention은 병렬적이며, 독립적이다. 병렬 연산을 마친 뒤에 concat을 하는데, concat을 하면 차원이 커지므로, 출력 진전에 linear 연산을 한 번 더 거쳐, attention value의 차원을 필요에 따라 변경한다.&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;[Linear]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 그림에 있는 linear module은 linear 연산 ( matrix multiplication ) 을 이용해 query,key,value의 차원을 맞춰주는 것이다.&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;363&quot; data-origin-height=&quot;170&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VWfY3/btsGZvEJo23/ee0C1JuGwekqzwSORp0SFk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VWfY3/btsGZvEJo23/ee0C1JuGwekqzwSORp0SFk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VWfY3/btsGZvEJo23/ee0C1JuGwekqzwSORp0SFk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVWfY3%2FbtsGZvEJo23%2Fee0C1JuGwekqzwSORp0SFk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;363&quot; height=&quot;170&quot; data-origin-width=&quot;363&quot; data-origin-height=&quot;170&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;차원을 바꿔주기 위한 W 행렬과의 곱을 통해 model이 target으로 하는 크기로 query,key,value의 차원을 모두 감소 및 변경한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;dmodel은 multi head attention에서 scaled dot product attention에 사용되는 dimension을 뜻한다.&lt;/p&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Multi attention의 핵심 목표는 input sequence를 h번 변환하여, 다양한 방식으로 포착하여 sequence의 전체적인 문맥을 더 더 잘 이해하는 것이다. 즉, 같은 입력에 대해 다양한 방식으로 정보를 처리하고 관계를 학습하는 것을 목표로 한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;정리&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;651&quot; data-origin-height=&quot;388&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/V2WTM/btsGZkwx6w2/WXMWPmLEbRoooj7gXK8Bb0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/V2WTM/btsGZkwx6w2/WXMWPmLEbRoooj7gXK8Bb0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/V2WTM/btsGZkwx6w2/WXMWPmLEbRoooj7gXK8Bb0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FV2WTM%2FbtsGZkwx6w2%2FWXMWPmLEbRoooj7gXK8Bb0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;388&quot; data-origin-width=&quot;651&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;self attention 구조는 query,key,value가 모두 동일하며, 서로 간의 관계를 파악하는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;encoder의 self attention은 현재 input에 대해 관계를 파악하는 것이므로 mask가 없으나,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;decoder의 self attention은 과거 값들만을 가지고 정보를 분석하는 것이므로 mask가 필요하다.&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;붉은 박스인 encoder-decoder attention은 encoder로부터 key와 value를 받고, decoder의 self attention으로부터 query값을 받는다. 이를 통해 seq2seq의 attention과 동일한 구조를 갖게 된다.&amp;nbsp;&lt;/p&gt;</description>
      <category>SYDLAB/Frame Interpolation</category>
      <author>빈그레</author>
      <guid isPermaLink="true">https://kycu-sb.tistory.com/253</guid>
      <comments>https://kycu-sb.tistory.com/253#entry253comment</comments>
      <pubDate>Sun, 28 Apr 2024 01:23:48 +0900</pubDate>
    </item>
    <item>
      <title>AI - Midterm exam</title>
      <link>https://kycu-sb.tistory.com/252</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;1.&amp;nbsp;Tensor는&amp;nbsp;무엇인지&amp;nbsp;설명하라&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;데이터를&amp;nbsp;표현하는&amp;nbsp;방법으로서,&amp;nbsp;&amp;nbsp;Multidimensional&amp;nbsp;array(다차원&amp;nbsp;배열)을&amp;nbsp;나타낸다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;vector와 matrix 개념의 일반화라고 할 수 있다.&lt;br /&gt;&lt;br /&gt;vector,matrix을 모두 포함하는 구조이나, 일반적으로 3차원 이상의 array를 가질 때에, tensor라 칭한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;2. Curse of dimensionality에 대해 설명하라&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;고차원의&amp;nbsp;데이터를&amp;nbsp;다룰&amp;nbsp;때에&amp;nbsp;나타나는&amp;nbsp;문제에&amp;nbsp;대해&amp;nbsp;지칭하는&amp;nbsp;용어이다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실제로 가까웠던 값들이 차원이 올라감에 따라 변수가 많아지면서 멀어지게 되는 문제이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;차원의 저주에 치명적인 알고리즘인 KNN은 근접한 점들을 이용해서 label을 예측하는 알고리즘이나, 차원이 늘어나고 변수의 개수가 많아지면, 가장 근접한 점들이라 해도 그 거리가 멀어지기 때문에, KNN은 고차원 데이터셋에서 잘 작동하지 않는다. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;3.&amp;nbsp;SVM&amp;nbsp;Classifier와&amp;nbsp;Softmax&amp;nbsp;Classfier의&amp;nbsp;공통점과&amp;nbsp;차이점을&amp;nbsp;설명하라&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;[공통점] &lt;br /&gt;&lt;br /&gt;SVM classfier와 softmax classfier 모두 supervised learnign&amp;nbsp;&amp;nbsp;모델이며, class를 분류하는 classficaition에 해당한다.그리고 두 classifier모두 정답 score의 값이 가장 높아지게 하는 것을 목표로 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;[차이점] &lt;br /&gt;&lt;br /&gt;SVM&amp;nbsp;classfier의&amp;nbsp;경우,&amp;nbsp;hinge&amp;nbsp;loss를&amp;nbsp;이용하여&amp;nbsp;데이터에&amp;nbsp;대한&amp;nbsp;score의&amp;nbsp;차이를&amp;nbsp;loss값으로서&amp;nbsp;활용하고,&amp;nbsp;Softmax&amp;nbsp;classifer는&amp;nbsp;각&amp;nbsp;score값에&amp;nbsp;대해&amp;nbsp;확률값으로&amp;nbsp;표현하여&amp;nbsp;target&amp;nbsp;score의&amp;nbsp;확률적&amp;nbsp;표현에&amp;nbsp;대해&amp;nbsp;&amp;nbsp;cross-entropy를&amp;nbsp;활용해&amp;nbsp;확률&amp;nbsp;사이의&amp;nbsp;거리를&amp;nbsp;loss로서&amp;nbsp;training을&amp;nbsp;이어나간다. &lt;br /&gt;&lt;br /&gt;즉,&amp;nbsp;SVM은&amp;nbsp;score&amp;nbsp;값&amp;nbsp;자체에&amp;nbsp;대한&amp;nbsp;차이를&amp;nbsp;loss로서&amp;nbsp;활용하고,&amp;nbsp;softmax는&amp;nbsp;score값을&amp;nbsp;확률로서&amp;nbsp;표현하여&amp;nbsp;확률적&amp;nbsp;거리를&amp;nbsp;loss로서&amp;nbsp;사용한다. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;4. Lasso와 Ridge의 차이를 설명하라&amp;nbsp; ( update 필요 )&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;linear Regression 모델에 overfitting을 방지하는 regularization 기법을 추가한 모델로 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;Lasso와 Ridge가 있다.&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;Lasso는 계수의 절댓값을 기준으로 규제를 적용하고, Ridge는 계수의 제곱한 값을 기준으로 규제를 적용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;두 모델 모두 계수의 크기를 줄이지만,&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;780&quot; data-origin-height=&quot;577&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/N9rOU/btsGTcq3blD/YxLIsbPlrwb9A7igdo81K1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/N9rOU/btsGTcq3blD/YxLIsbPlrwb9A7igdo81K1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/N9rOU/btsGTcq3blD/YxLIsbPlrwb9A7igdo81K1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FN9rOU%2FbtsGTcq3blD%2FYxLIsbPlrwb9A7igdo81K1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;780&quot; height=&quot;577&quot; data-origin-width=&quot;780&quot; data-origin-height=&quot;577&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;5.&amp;nbsp;KNN의&amp;nbsp;알고리즘을&amp;nbsp;설명하라&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;[train]&lt;br /&gt;data set을 train data와 test data를 나누고 train data의 데이터와 라벨을 모두 저장한다.&lt;br /&gt;&lt;br /&gt;[predict]&lt;br /&gt;이후, 분류하고자 하는 데이터에 대해, L1,L2등의 distance metric을 활용하여 기존에 저장해두었던 data와의 차이를 구해, 거리가 가까운 것들을 K개 선별한다. 여기서 k는 hyperparameter이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;[분류]&lt;br /&gt;&amp;nbsp;K개의 데이터 중 중 다수결을 통해 가장 많이 포함되어있는 class로 label을&amp;nbsp; prediction한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;[한계]&lt;br /&gt;저장만&amp;nbsp;하면&amp;nbsp;돼서&amp;nbsp;training시간은&amp;nbsp;따로&amp;nbsp;걸리지&amp;nbsp;않으나,&amp;nbsp;testdata를&amp;nbsp;traindata와&amp;nbsp;하나하나&amp;nbsp;비교하며&amp;nbsp;거리값을&amp;nbsp;측정해야해서&amp;nbsp;&amp;nbsp;data가&amp;nbsp;많아질수록&amp;nbsp;prediction&amp;nbsp;과정이&amp;nbsp;매우&amp;nbsp;오래걸린다. &lt;br /&gt;&lt;br /&gt;(&amp;nbsp;또한,&amp;nbsp;KNN에서&amp;nbsp;K값이&amp;nbsp;너무&amp;nbsp;작으면&amp;nbsp;너무&amp;nbsp;적은&amp;nbsp;수의&amp;nbsp;이웃에만&amp;nbsp;맞춰져서&amp;nbsp;overfitting이&amp;nbsp;일어날&amp;nbsp;수&amp;nbsp;있고,&amp;nbsp;K값이&amp;nbsp;너무&amp;nbsp;크면&amp;nbsp;underfitting이&amp;nbsp;일어날&amp;nbsp;수&amp;nbsp;있다.&amp;nbsp;) &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;6.&amp;nbsp;Gradient&amp;nbsp;descent에서&amp;nbsp;loss를&amp;nbsp;감소시키는&amp;nbsp;원리를&amp;nbsp;설명하라&lt;/span&gt; &lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저, 초기 weight값을 random하게 선정하여 loss function에서의 gradient값을 계산한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;loss functino에서 현재 지점의 gradient 값이 음수이면 양의 방향으로 진행하고, 현재 지점의 gradient 값이 양수이면 음의 방향으로 learning rate에 따라 weight를 update하며&amp;nbsp; loss function의 최소값을 찾아간다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;gradient 값은 backpropagation과정에서 chain rule에 의해 연산되어 weight를 update시킨다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;weight가 update되는 값이 아주 작은 값으로 수렴할때까지 iteration을 반복하며 loss를 줄여나간다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;7.&amp;nbsp;Neural&amp;nbsp;Network란&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;인간의 뇌의 뉴런 구조에서 아이디어를 얻은 딥러닝 모델로, input layer, hidden layer, output layer로 구성되어있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Neural Network는 보통 여러 hidden layer를 가질 수 있으며, 각 계층은 여러 뉴런들로 이루어져있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;입력과 weigh를 곱하는 linear한 함수에 activation function을 거쳐&amp;nbsp; 다음 뉴런에 전달되고, 이렇게 여러 layer를 가질 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 layer에 대한 weight를 곱하기 전에 activation function을 곱해서 비선형성을 갖게 해주며 model의 표현력을 높여줄 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;뇌에서 다음 뉴런으로 신호를 전달할지 여부에 대한 판단을 해주는 역할을 NN에서는 activation function이 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;8.&amp;nbsp;Gradient&amp;nbsp;Descent를&amp;nbsp;이용하여&amp;nbsp;학습할&amp;nbsp;때,&amp;nbsp;local&amp;nbsp;minima를&amp;nbsp;피하여&amp;nbsp;효율적으로&amp;nbsp;학습할&amp;nbsp;수&amp;nbsp;있는&amp;nbsp;방법을&amp;nbsp;제시하라&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Momentum&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;weight를 update할 때에 loss function의 현재 지점의 미분값의 반대방향으로 가는 것에 추가적으로, 원래 가던 방향에 대한 관성을 더해주는 것이다. 원래 가던 방향으로 관성을 가졌을 때, local minima에서 빠져나올 가능성이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;NAG (Nesterov Accelerated Gradient)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;weight를 update할 때에, 원래 가던 방향으로의 관성을 추가해주고, 본래 현재 위치에서의 미분값의 반대방향으로 더 진행하였으나, 현재 위치가 아닌, 한수 뒤에서의 미분값을 반영하여 극점 주변에서 진동을 덜 하게 한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 통해 관성을 유지하면서 local minimum에서 빠져오되, 극점 주위에서의 진동은 줄일 수 있게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Adagrad&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;weight가 update된 양을 제곱해서 계속 더하고, 이를 weight updtae에 반영하여 지금까지 update가 많이 된 것에 대해서는 변화를 적게 주고, update가 많이 되지 않은 것에 대해서는 변화를 크게 준다. sadle point에서 빠져나오게 해준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;RMSprob&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Adagrad를 통해 update가 많이 된 것에 대해 변화율을 줄이다보면 변화율이 0에 수렴해버릴 수 있으므로, 전체 update에 대해 동일한 가중치로 더하는 것이 아니라, 최근의 step을 더 많이 반영하며 weight를 update시키는 방법이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ADAM&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Momentum과 RMSprop을 합친 것으로, 관성을 반영하고, update된 weight들의 값을 누적하여 반영하되, 최근의 step에해 더 큰 비중을 두도록 하였다. 따라서 sadle point를 빠져나가고 local minimum을 빠져나갈 수 있도록 하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;// momentum으로 local minimum 빠져나가고, RMSprob으로 sadle point 빠져나가구,, 물론 두개다 작용가능~~암튼,,&lt;/p&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: #006dd7;&quot;&gt;9.&amp;nbsp;Dropout의&amp;nbsp;역할을&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;overfitting이 방지하기 위해, 학습 과정에서 랜덤하게 일부 뉴런을 학습에 참여하지 못하도록 하여, 특정 뉴런에 과하게 의존하는 것을 막는다.&amp;nbsp;dropout을 통해 뉴런들의 다양한 조합으로 학습을 하게 되어 더 좋은 성능을 낼 수 있도록 한다.&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;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;10.&amp;nbsp;편미분&amp;nbsp;하는&amp;nbsp;법..?&amp;nbsp;이걸&amp;nbsp;왜&amp;nbsp;물어봄&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;Gradient는 거꾸로 세모로 연산하고, 그 결과값을 각 변수에 대한 편미분값으로 이루어진 vector로 표현된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;11. 아래 코드를 사용해야하는 이유를 설명하라&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;전체&amp;nbsp;dataset에&amp;nbsp;대해서&amp;nbsp;training&amp;nbsp;set과&amp;nbsp;test&amp;nbsp;set으로&amp;nbsp;나누기&amp;nbsp;위해서&amp;nbsp;split함수를&amp;nbsp;사용한다.&amp;nbsp;매개변수로&amp;nbsp;추가된&amp;nbsp;stratify는&amp;nbsp;분할된&amp;nbsp;데이터가&amp;nbsp;원본&amp;nbsp;데이터셋의&amp;nbsp;비율을&amp;nbsp;유지하도록&amp;nbsp;하는&amp;nbsp;것이다.&amp;nbsp;데이터를&amp;nbsp;분할할&amp;nbsp;때,&amp;nbsp;샘플링편향이&amp;nbsp;일어나지&amp;nbsp;않도록&amp;nbsp;해당&amp;nbsp;매개변수를&amp;nbsp;추가해주는&amp;nbsp;것이&amp;nbsp;중요하다. &lt;br /&gt;&lt;br /&gt;전체&amp;nbsp;데이터셋을&amp;nbsp;모두&amp;nbsp;training&amp;nbsp;에&amp;nbsp;사용하게&amp;nbsp;되면&amp;nbsp;overfitting이&amp;nbsp;일어날&amp;nbsp;수&amp;nbsp;있으므로&amp;nbsp;&amp;nbsp;데이터를&amp;nbsp;분할하여&amp;nbsp;training단계에서는&amp;nbsp;train&amp;nbsp;data만&amp;nbsp;사용하여&amp;nbsp;weight를&amp;nbsp;update하고,&amp;nbsp;test&amp;nbsp;단계에서&amp;nbsp;test&amp;nbsp;data를&amp;nbsp;사용하여&amp;nbsp;training된&amp;nbsp;model의&amp;nbsp;evaluation을&amp;nbsp;진행하며&amp;nbsp;hyperparameter을&amp;nbsp;조정하는&amp;nbsp;단계를&amp;nbsp;가진다. &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;641&quot; data-origin-height=&quot;80&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YirEA/btsGTCwfJzj/n97lkJIxHe02kkzNG5QcV1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YirEA/btsGTCwfJzj/n97lkJIxHe02kkzNG5QcV1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YirEA/btsGTCwfJzj/n97lkJIxHe02kkzNG5QcV1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYirEA%2FbtsGTCwfJzj%2Fn97lkJIxHe02kkzNG5QcV1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;80&quot; data-origin-width=&quot;641&quot; data-origin-height=&quot;80&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;12.&amp;nbsp;아래&amp;nbsp;코드를&amp;nbsp;통해&amp;nbsp;knn을&amp;nbsp;만들었더니&amp;nbsp;성능이&amp;nbsp;좋지&amp;nbsp;않았다.&amp;nbsp;개선&amp;nbsp;방법을&amp;nbsp;제시하고&amp;nbsp;설명하라.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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;642&quot; data-origin-height=&quot;184&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ciKtTk/btsGTZkthQo/CpL0jtKGOkg36xmTLEVyG1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ciKtTk/btsGTZkthQo/CpL0jtKGOkg36xmTLEVyG1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ciKtTk/btsGTZkthQo/CpL0jtKGOkg36xmTLEVyG1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FciKtTk%2FbtsGTZkthQo%2FCpL0jtKGOkg36xmTLEVyG1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;642&quot; height=&quot;184&quot; data-origin-width=&quot;642&quot; data-origin-height=&quot;184&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;split에서&amp;nbsp;train과&amp;nbsp;test로&amp;nbsp;데이터를&amp;nbsp;나눌&amp;nbsp;때,&amp;nbsp;class의&amp;nbsp;비율을&amp;nbsp;균등히&amp;nbsp;나누지&amp;nbsp;못하는&amp;nbsp;샘플링&amp;nbsp;편향이&amp;nbsp;발생했을&amp;nbsp;수&amp;nbsp;있으므로,,엥&amp;nbsp;이게&amp;nbsp;아니네.,?&amp;nbsp;stratify는&amp;nbsp;분할된&amp;nbsp;데이터가&amp;nbsp;원본&amp;nbsp;데이터셋의&amp;nbsp;비율을&amp;nbsp;유지하도록&amp;nbsp;하는&amp;nbsp;것이다. &lt;br /&gt;&lt;br /&gt;KNeigobresClassfier함수로 객체를 만들어서 training 시켰을 때, K값은 default로 5의 값이 들어가나, model에 따라 최적의 K값이 5가 아닐 수 있다. 따라서 여러 K값으로 학습시켜보며 accuracy를 비교해보고 최적의 k값으로 선정해주어야한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;5-fold&amp;nbsp;cross&amp;nbsp;validation과&amp;nbsp;같은&amp;nbsp;방식을&amp;nbsp;사용하여&amp;nbsp;여러&amp;nbsp;k값에&amp;nbsp;대해&amp;nbsp;accuracy를&amp;nbsp;비교해보고&amp;nbsp;최적의&amp;nbsp;k값을&amp;nbsp;찾을&amp;nbsp;수&amp;nbsp;있다. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;13.&amp;nbsp;Regression과&amp;nbsp;Classification의&amp;nbsp;loss&amp;nbsp;function&amp;nbsp;차이&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;[Linear Regression]&lt;br /&gt;linear Regression의 경우,&amp;nbsp;&amp;nbsp;ground truth값과 estimation한 값의 차이의 제곱의 평균을 cost funciton으로 사용한다. 이 cost function 값을 가장 최소로 만들어주는 weight값을 찾도록 한다. 제곱에 대한 2차식이기 때문에 convex형태로 존재하여 미분이 0이 되는 값에서 언제나 최소값을 가진다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;313&quot; data-origin-height=&quot;72&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmDjws/btsGQ8WGvLR/VDKdh6Ljz2BRutYCQK64HK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmDjws/btsGQ8WGvLR/VDKdh6Ljz2BRutYCQK64HK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmDjws/btsGQ8WGvLR/VDKdh6Ljz2BRutYCQK64HK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmDjws%2FbtsGQ8WGvLR%2FVDKdh6Ljz2BRutYCQK64HK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;313&quot; height=&quot;72&quot; data-origin-width=&quot;313&quot; data-origin-height=&quot;72&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;[Binary Classification / Logistic Regression ]&lt;br /&gt;** Logistic Regression : classification 모델을 확률적 관점에서 접근하여&amp;nbsp;&amp;nbsp;training하는 모델이다.&lt;br /&gt;sigmoid함수를 사용하여 예측값에 대해 0과 1사이의 확률값으로서 바꾸어주어 binary classification으로서 변환해주고, sigmoid를 거쳐 나온 확률로서의 예측값과, 확률로서의 참값에 대해&amp;nbsp;&amp;nbsp;cross entropy를 loss function으로 사용한다.&lt;br /&gt;L(yi',yi) = yi * log(yi') + (1-yi)log(1-yi')&lt;br /&gt;**cross entorpy : 서로 다른 확률을 가진 것 사이의 거리&lt;br /&gt;-&amp;gt;&amp;nbsp;확률로서의&amp;nbsp;예측값이&amp;nbsp;확률로서의&amp;nbsp;참값과&amp;nbsp;가까울수록&amp;nbsp;함수값이&amp;nbsp;작아지므로&amp;nbsp;loss&amp;nbsp;function으로&amp;nbsp;사용될&amp;nbsp;수&amp;nbsp;있음 &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;14. hyperparameter 종류&lt;/span&gt;&lt;br /&gt;:&amp;nbsp;Distance&amp;nbsp;Metric&amp;nbsp;(L1&amp;nbsp;or&amp;nbsp;L2)&amp;nbsp;,&amp;nbsp;KNN에서의&amp;nbsp;K값&amp;nbsp;,&amp;nbsp;Optimizer,&amp;nbsp;Learning&amp;nbsp;rate &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;15. Validation의 역할 (ex. 5-fold cross-validation -&amp;gt; hyperparameter update )&amp;nbsp;&lt;/span&gt;&lt;br /&gt;: 모델의 성능을 평가하고, hyperparameter를 조정하는 등, 모델 학습에 간접적으로 관여한다.&lt;br /&gt;(&amp;nbsp;weight&amp;nbsp;update는&amp;nbsp;train&amp;nbsp;단계에서만&amp;nbsp;직접적으로&amp;nbsp;이루어짐.&amp;nbsp;)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5-fold cross validation&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: training과 validation에 쓸 데이터에 대해서 5개로 나누어 1개씩 validation set으로 지정한 경우에 대해 accuracy를 측정한다. 이러한 방식으로 각 k값의 경우에 대해 5fold cross validation을 진행하고, accuray의 평균값을 비교하여, 가장 높은 accuracy 평균값을 가진 최적의 hyperparameter를 찾는다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;16 Binary Classification이 Linear Regression으로 구해지는 과정&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;*** Linear Regression : 데이터들의 상관관계로 값을 예측하는 것&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;:&amp;nbsp;weighted&amp;nbsp;sum으로&amp;nbsp;나온&amp;nbsp;score에&amp;nbsp;대해&amp;nbsp;&amp;nbsp;sigmoid&amp;nbsp;함수를&amp;nbsp;거치게&amp;nbsp;하여&amp;nbsp;결과값이&amp;nbsp;0에서&amp;nbsp;1사이&amp;nbsp;값으로&amp;nbsp;나오게&amp;nbsp;함으로써,&amp;nbsp;예측값을&amp;nbsp;확률로&amp;nbsp;만들어주면서&amp;nbsp;binary&amp;nbsp;classification으로&amp;nbsp;전환될&amp;nbsp;수&amp;nbsp;있다. &lt;br /&gt;&lt;br /&gt;sigmoid&amp;nbsp;:&amp;nbsp;linear&amp;nbsp;regression&amp;nbsp;결과값을&amp;nbsp;확률로서&amp;nbsp;변환시켜주는&amp;nbsp;함수 &lt;br /&gt;&lt;br /&gt;logistic&amp;nbsp;regression&amp;nbsp;model로서&amp;nbsp;binary&amp;nbsp;classfication에&amp;nbsp;대해&amp;nbsp;score를&amp;nbsp;확률로서&amp;nbsp;나타내고,&amp;nbsp;cross-entropy를&amp;nbsp;통해&amp;nbsp;확률간의&amp;nbsp;거리를&amp;nbsp;측정하는&amp;nbsp;loss&amp;nbsp;function을&amp;nbsp;정의할&amp;nbsp;수&amp;nbsp;있다. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;17.&amp;nbsp;softmax&amp;nbsp;classifier에&amp;nbsp;대해&amp;nbsp;설명하세요 &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;score에&amp;nbsp;대해&amp;nbsp;지수함수를&amp;nbsp;취해&amp;nbsp;모든&amp;nbsp;값에&amp;nbsp;대해&amp;nbsp;양수로&amp;nbsp;만들어&amp;nbsp;준&amp;nbsp;뒤,&amp;nbsp;모든&amp;nbsp;값의&amp;nbsp;합으로&amp;nbsp;나누어주어&amp;nbsp;normalization을&amp;nbsp;해줌으로써&amp;nbsp;각&amp;nbsp;값을&amp;nbsp;총&amp;nbsp;합이&amp;nbsp;1이&amp;nbsp;되는&amp;nbsp;확률값으로&amp;nbsp;나타낸다.이후&amp;nbsp;정답인&amp;nbsp;확률분포&amp;nbsp;ex&amp;nbsp;[1,0.0]과의&amp;nbsp;cross-entropy&amp;nbsp;연산을&amp;nbsp;통해&amp;nbsp;확률&amp;nbsp;간의&amp;nbsp;차이를&amp;nbsp;loss로&amp;nbsp;표현하여&amp;nbsp;loss값을&amp;nbsp;최소화하는&amp;nbsp;방향으로&amp;nbsp;학습을&amp;nbsp;해나간다. &lt;br /&gt;&lt;br /&gt;(logistic&amp;nbsp;regression을&amp;nbsp;일반화한&amp;nbsp;것)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;18.KNN과 비교하여&amp;nbsp;&amp;nbsp;SVM,SOFTMAX가 가지는 장점을 말해보슈.. ( 교수님이 언급한건데,,,, general 하지 못한듯,, pass)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;KNN은&amp;nbsp;test&amp;nbsp;data에&amp;nbsp;대해서&amp;nbsp;모든&amp;nbsp;training&amp;nbsp;set과&amp;nbsp;값을&amp;nbsp;비교하여&amp;nbsp;그&amp;nbsp;차이를&amp;nbsp;계산해보아야&amp;nbsp;하므로,&amp;nbsp;data가&amp;nbsp;많아질수록&amp;nbsp;매&amp;nbsp;test머마다&amp;nbsp;&amp;nbsp;걸리는&amp;nbsp;시간이&amp;nbsp;아주&amp;nbsp;오래&amp;nbsp;걸리는데,&amp;nbsp;svm과&amp;nbsp;softmax의&amp;nbsp;경우&amp;nbsp;training을&amp;nbsp;통해&amp;nbsp;weight를&amp;nbsp;구해놓으면,&amp;nbsp;이후부터는&amp;nbsp;test에&amp;nbsp;knn만큼&amp;nbsp;오랜&amp;nbsp;시간을&amp;nbsp;소비하지&amp;nbsp;않아도&amp;nbsp;된다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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: #006dd7;&quot;&gt;19. data의 preprocessing&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;zero centered -&amp;gt; normalization (표준편차로 나누기)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;20.Learnign rate가 너무 클 때와 너무 작을 때의 특징&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;Learning rate가 너무 크면 loss function에서 값이 발산하여 학습이 되지 않을 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Learning rate가 너무 작으면 학습이 너무 오래걸리고, local minima에 빠질 수 있다.&lt;/p&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: #006dd7;&quot;&gt;21. Stocahstic Gradient Descent 중 Minibatch를 이용하는 알고리즘을 설명하세요&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(batch size=minibatch size)&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;NN에서는 전체 데이터셋에 대해 한번에 처리하는 것이 매우 어렵다. 따라서 dataset을 subset으로 나누어&amp;nbsp; weight를 update한다. 이 때의 subset의 size가 minibatch size이다.&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;전체 data set에서 batch size만큼의 데이터를 가져와서 forward로 예측값을 구하고, loss를 구한다. 이후 backpropagation에서 loss 함수에서 gradient값을 구해 weight를 update 시킨다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;minibatch size만큼의 다음 subset들에 대해서 동일한 과정으로 weight 를 update 시키며 한 epoch에 대한 training 과정을 거친다. 1epoch동안 iteration은 전체 dataset의 개수를 batch size로 나눈 것 만큼 존재한다. 즉, weight가 update되는 횟수와 동일하다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;22. batch size가 너무 클 때와 너무 작을 때&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;batch size가 크면 전체를 대변할 가능성이 생겨 좋으나, memory에 한계가 존재한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만, batch size가 너무 작으면 너무 국소적인 범위에 대한 정보로 update가 진행된다는 단점이 있다.&lt;/p&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: #006dd7;&quot;&gt;23. activation 의 역할&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;Activation function을 넣어줌으로써 모델에 비선형성을 추가하여 모델의 표현력을 향상시켜준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 activation function이 없다면, 그저 linear한 weight들의 곱이 되어 layer를 여러개 쌓는 것이 무의미해진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Quality control (2)/AI</category>
      <author>빈그레</author>
      <guid isPermaLink="true">https://kycu-sb.tistory.com/252</guid>
      <comments>https://kycu-sb.tistory.com/252#entry252comment</comments>
      <pubDate>Sun, 21 Apr 2024 22:02:00 +0900</pubDate>
    </item>
  </channel>
</rss>