<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Dsaint31's blog</title>
    <link>https://dsaint31.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Wed, 26 Aug 2026 20:22:20 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>dsaint31x</managingEditor>
    <image>
      <title>Dsaint31's blog</title>
      <url>https://t1.daumcdn.net/cfile/tistory/132B40114A31F35E0F</url>
      <link>https://dsaint31.tistory.com</link>
    </image>
    <item>
      <title>Turing Machine</title>
      <link>https://dsaint31.tistory.com/970</link>
      <description>&lt;figure data-ke-type=&quot;image&quot; data-ke-style=&quot;alignCenter&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; data-link=&quot;https://study.com/academy/lesson/the-turing-machine-input-output-and-examples.html&quot; data-link-islinknewwindow=&quot;true&quot;&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;889&quot; data-origin-height=&quot;499&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8Hf5h/dJMcab6tFFL/gnGEfU06XOkxZ8KtgzUyB0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8Hf5h/dJMcab6tFFL/gnGEfU06XOkxZ8KtgzUyB0/img.png&quot; data-alt=&quot;https://youtu.be/E3keLeMwfHY?si=xfBwvHh_L6XnVX8a&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8Hf5h/dJMcab6tFFL/gnGEfU06XOkxZ8KtgzUyB0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8Hf5h%2FdJMcab6tFFL%2FgnGEfU06XOkxZ8KtgzUyB0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;889&quot; height=&quot;499&quot; data-origin-width=&quot;889&quot; data-origin-height=&quot;499&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;https://youtu.be/E3keLeMwfHY?si=xfBwvHh_L6XnVX8a&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&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;이글을 보기전에 다음 동영상을 보길 권함:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://youtu.be/-ZS_zFg4w5k?si=_WvPsGJlw_LUm2_j&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://youtu.be/-ZS_zFg4w5k?si=_WvPsGJlw_LUm2_j&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=-ZS_zFg4w5k&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/MHvIM/dJMb9lMsWWW/FBpq0NmjS0KDYEMRYmn2b1/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720,https://scrap.kakaocdn.net/dn/bYkHM3/dJMb9g5ssA9/GQahJUJxJuPv7iMlW9pBNk/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;How Turing Machines Work&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/-ZS_zFg4w5k&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;0. Turing Machine과 계산 가능성 (computability)&amp;nbsp;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Turing Machine (튜링 기계)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Alan Turing 이 1936년에 제안한&lt;/li&gt;
&lt;li&gt;&lt;b&gt;추상적인 계산 모델 (abstract model of computation)&lt;/b&gt; 임.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실제 computer 의 물리적 구조를 묘사하기 위한 장치가 아니라,&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt; 다음과 같은 질문을 수학적으로 다루기 위해 제안&lt;/span&gt;&lt;/b&gt;됨.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;어떤 문제를 &lt;br /&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;algorithm 으로 계산&lt;/span&gt;할 수 있는가?&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Algorithm (알고리즘)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;어떤 문제를 해결하기 위해 수행해야 할 &lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;유한한 단계&lt;/span&gt;의 &lt;span style=&quot;color: #ee2323;&quot;&gt;명확한 절차&lt;/span&gt;&lt;/b&gt;임.&lt;/li&gt;
&lt;li&gt;각 단계에서 무엇을 해야 하는지가 명확하게 정해져 있어야 함.&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;같은 입력에 대해 정해진 규칙에 따라 계산을 진행&lt;/b&gt;&lt;/span&gt;함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;좀 더 쉽게 말하면,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;algorithm&lt;/b&gt; 은 문제를 해결하기 위한 명확한 계산 절차임.&lt;/li&gt;
&lt;li&gt;어떤 계산이 &lt;b&gt;algorithm 으로 수행 가능하다&lt;/b&gt;는 것은, 그 절차를 수행하는 &lt;b&gt;Turing Machine 을 만들 수 있다&lt;/b&gt;는 것과 같은 의미로 봄.&lt;/li&gt;
&lt;li&gt;따라서 어떤 문제가 &lt;b&gt;computable (계산 가능)&lt;/b&gt; 하다는 것은, 그 문제를 해결하는 algorithm 을 Turing Machine 으로 표현하여 실행할 수 있다는 의미임.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결국 알고리즘은 오늘날 컴퓨터에선 프로그램으로 구현되는게 일반적임.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;참고로,&lt;br /&gt;&lt;/b&gt;여기서 &lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;Computation (계산)&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;정해진 rule 에 따라 input 과 state 를 단계적으로 변환하여 결과를 만들어내는 과정&lt;/b&gt;임.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Turing Machine 은 매우 단순한 구조를 가지지만,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;algorithm 으로 수행할 수 있다고 생각되는 일반적인 계산을 표현 (=실행)&lt;/b&gt;&lt;/span&gt;할 수 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(어떤 문제가 algorithm으로 풀 수 있다면, Turing machine은 해당 문제를 풀 수 있음)&lt;/p&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: #ee2323;&quot;&gt;&lt;b&gt;computability theory (계산 가능성 이론)&lt;/b&gt; 의 가장 기본적인 계산 모델로 사용&lt;/span&gt;됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;좀 더 쉽게 애기하면&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;어떤 계산이 algorithm 으로 수행 가능하다는 것은, &lt;br /&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;그 계산을 수행하는 Turing Machine 을 만들 수 있다&lt;/span&gt;는 것과 같은 의미로 봄.&lt;/li&gt;
&lt;li&gt;어떤 문제가 계산 가능(computable)하다는 것은 &lt;br /&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;그 문제를 해결하는 algorithm을 Turing Machine으로 표현하여 실행할 수 있다&lt;/span&gt;는 의미임.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://academic.oup.com/plms/article-abstract/s2-42/1/230/1491926&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;참고: Turing, A. M. (1936). &amp;ldquo;On Computable Numbers, with an Application to the Entscheidungsproblem.&amp;rdquo; Proceedings of the London Mathematical Society, Series 2, 42, 230&amp;ndash;265. &lt;/a&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;1928년&lt;/b&gt;: David Hilbert와 Wilhelm Ackermann이 Grundz&amp;uuml;ge der Theoretischen Logik에서 &lt;b&gt;Entscheidungsproblem (결정 문제, Decision Problem)&lt;/b&gt; 을 제시
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;형식 논리의 임의의 명제가 주어졌을 때, 그것이 논리적으로 참인지 여부를 기계적인 절차(algorithm)만으로 항상 판정할 수 있는가?&lt;/li&gt;
&lt;li&gt;&lt;b&gt;즉, 임의의 논리 명제의 validity를 항상 판정할 수 있는 일반적인 decision procedure가 존재하는가? : 수학자가 하던 일.&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;1936년&lt;/b&gt;: Alan Turing이 이 문제를 다루기 위해 Turing Machine 개념을 제안하고, &lt;u&gt;&lt;b&gt;일반적인 결정 절차가 존재하지 않음&lt;/b&gt;&lt;/u&gt;을 보임.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모든 논리적 문제의 참&amp;middot;거짓을 유한한 계산 절차로 항상 판정해 주는 범용 algorithm 은 존재하지 않음.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;1937년&lt;/b&gt;: Turing의 논문 On Computable Numbers, with an Application to the Entscheidungsproblem 이 정식 출판됨&lt;/li&gt;
&lt;/ul&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1936년 Turing이 증명한 것은 다음과 같음:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;어떤 특정 문제는 algorithm 으로 해결할 수 있음.&lt;/li&gt;
&lt;li&gt;하지만 &lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;모든 문제&lt;/span&gt;를 대상으로&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;input 을 넣으면&lt;/li&gt;
&lt;li&gt;유한한 시간 안에&lt;/li&gt;
&lt;li&gt;반드시 정답을 내는&lt;/li&gt;
&lt;li&gt;하나의 universal decision algorithm&lt;br /&gt;은 만들 수 없음.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;참고: Turing Machine과 Imitation Game&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;Turing 은 다음과 같은 당시 어려운 두 문제 에 대해 비슷한 접근을 취하여 정의함:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;무엇이 계산 가능한가? = 어떤 문제를 algorithm으로 해결할 수 있는가?&lt;/li&gt;
&lt;li&gt;기계가 생각할 수 있는가? = machine intelligence를 어떻게 판정할 수 있는가?&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;추상적이고 정의하기 어려운 개념을 직접 정의하기보다, &lt;b&gt;관찰 가능하고 판정 가능한 절차&lt;/b&gt;로 바꿈.&lt;/p&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;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;ldquo;&lt;b&gt;algorithm 으로 계산 가능&lt;/b&gt;하다&amp;rdquo;&lt;br /&gt;=&amp;gt; &amp;ldquo;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Turing Machine 으로 계산&lt;/b&gt;&lt;/span&gt;할 수 있는가?&amp;rdquo;&lt;/p&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;Imitation Game 에서는:&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;ldquo;machine 이 생각하는가? (machine이 지능을 가지고 있는가?)&lt;/b&gt;&amp;rdquo;&lt;br /&gt;=&amp;gt;&amp;ldquo;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;대화만으로 인간과 machine 을 신뢰성 있게 구별&lt;/b&gt;&lt;/span&gt;할 수 있는가?&amp;rdquo;&lt;/p&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;따라서 Imitation Game 은&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;intelligence 자체의 정의라기보다,&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;intelligence 를 행동을 통해 평가하려는 operational test&lt;/b&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;로 보는 것이 정확함.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;Imitation Game은 Turing의 1950년 논문&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt; Computing Machinery and Intelligence&lt;/b&gt;&lt;/span&gt; 에서 제시된 실험 설정임:&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;심사자가 text-based conversation 만으로&lt;/li&gt;
&lt;li&gt;상대가 human 인지 machine 인지 구별하려고 함.&lt;/li&gt;
&lt;li&gt;machine 이 인간과 충분히 구별되지 않는다면 intelligent behavior 를 보인 것으로 간주함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이는 오늘날 Turing Test로 불리며, 이는 Imitation Game의 개념을 일반화하여 부르는 이름임.&lt;/p&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://academic.oup.com/mind/article/LIX/236/433/986238&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;참고: &lt;b&gt;Alan M. Turing (1950), &amp;ldquo;Computing Machinery and Intelligence.&amp;rdquo; &lt;/b&gt;Mind, Volume LIX, Issue 236, October 1950, pp. 433&amp;ndash;460. &lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.me/mkdocs_site/ML/ch00/ch00_00_intro/?h=turing#turing-test&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://dsaint31.me/mkdocs_site/ML/ch00/ch00_00_intro/?h=turing#turing-test&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1787666097965&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;BME&quot; data-og-description=&quot;ai dl ml representation representative Learning AI, ML and DL. AI 란 John McCarthy (AI 용어 창안자. 미국의 인지심리학자.1927-2011) 에 따르면 Artificial Intelligence (AI)의 정의는 다음과 같음. ref. : Basic Questions Q. What is ar&quot; data-og-host=&quot;dsaint31.me&quot; data-og-source-url=&quot;https://dsaint31.me/mkdocs_site/ML/ch00/ch00_00_intro/?h=turing#turing-test&quot; data-og-url=&quot;https://dsaint31.me/mkdocs_site/ML/ch00/ch00_00_intro/?h=turing#turing-test&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/g3ysZ/dJMb9g5ssUE/6Fn1xqf5gt9eeUfjobJnN1/img.png?width=448&amp;amp;height=241&amp;amp;face=0_0_448_241&quot;&gt;&lt;a href=&quot;https://dsaint31.me/mkdocs_site/ML/ch00/ch00_00_intro/?h=turing#turing-test&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.me/mkdocs_site/ML/ch00/ch00_00_intro/?h=turing#turing-test&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/g3ysZ/dJMb9g5ssUE/6Fn1xqf5gt9eeUfjobJnN1/img.png?width=448&amp;amp;height=241&amp;amp;face=0_0_448_241');&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;BME&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;ai dl ml representation representative Learning AI, ML and DL. AI 란 John McCarthy (AI 용어 창안자. 미국의 인지심리학자.1927-2011) 에 따르면 Artificial Intelligence (AI)의 정의는 다음과 같음. ref. : Basic Questions Q. What is ar&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.me&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. Automaton 관점에서의 Turing Machine&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;automaton (오토마톤)&lt;/b&gt; 은&lt;br /&gt;입력을 읽고 &lt;br /&gt;현재 state 와 정해진 transition rule 에 따라 &lt;br /&gt;동작하는 추상적인 machine 임.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반적으로 다음 요소를 가짐.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;입력을 읽음.&lt;/li&gt;
&lt;li&gt;유한한 수의 내부 &lt;b&gt;state (상태)&lt;/b&gt; 를 가짐.&lt;/li&gt;
&lt;li&gt;정의된 &lt;b&gt;transition rule (전이 규칙)&lt;/b&gt; 에 따라 state 를 변경함.&lt;/li&gt;
&lt;li&gt;특정 state 에 도달하면 계산을 종료하거나 결과를 결정함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://ds31x.tistory.com/626#2.-%EA%B3%84%EC%82%B0-%EC%9D%B4%EB%A1%A0%EC%97%90%EC%84%9C%EC%9D%98-machine&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://ds31x.tistory.com/626#2.-%EA%B3%84%EC%82%B0-%EC%9D%B4%EB%A1%A0%EC%97%90%EC%84%9C%EC%9D%98-machine&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1787638661315&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;Machine 이란?&quot; data-og-description=&quot;Machine이란 무엇인가?컴퓨터를 정의할 때 다음과 같이 말한다.컴퓨터는 program(= set of instructions)을 실행하는 electronic machine 임. 이 문서는 machine이라는 용어를 좀 더 자세히 소개한다.1. 공학적 의미&quot; data-og-host=&quot;ds31x.tistory.com&quot; data-og-source-url=&quot;https://ds31x.tistory.com/626#2.-%EA%B3%84%EC%82%B0-%EC%9D%B4%EB%A1%A0%EC%97%90%EC%84%9C%EC%9D%98-machine&quot; data-og-url=&quot;https://ds31x.tistory.com/626&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bECgJa/dJMb83kKNfY/aDPkOQKoY2CRNnGF6sTk9k/img.png?width=800&amp;amp;height=446&amp;amp;face=0_0_800_446,https://scrap.kakaocdn.net/dn/BJcDB/dJMb86ofjnC/D16JKjfigbncmjrRg5eO60/img.png?width=800&amp;amp;height=446&amp;amp;face=0_0_800_446,https://scrap.kakaocdn.net/dn/Thchf/dJMb9aKWxhz/aJSdjfUMKvw0PyfTC5zit1/img.png?width=2752&amp;amp;height=1536&amp;amp;face=0_0_2752_1536&quot;&gt;&lt;a href=&quot;https://ds31x.tistory.com/626#2.-%EA%B3%84%EC%82%B0-%EC%9D%B4%EB%A1%A0%EC%97%90%EC%84%9C%EC%9D%98-machine&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://ds31x.tistory.com/626#2.-%EA%B3%84%EC%82%B0-%EC%9D%B4%EB%A1%A0%EC%97%90%EC%84%9C%EC%9D%98-machine&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bECgJa/dJMb83kKNfY/aDPkOQKoY2CRNnGF6sTk9k/img.png?width=800&amp;amp;height=446&amp;amp;face=0_0_800_446,https://scrap.kakaocdn.net/dn/BJcDB/dJMb86ofjnC/D16JKjfigbncmjrRg5eO60/img.png?width=800&amp;amp;height=446&amp;amp;face=0_0_800_446,https://scrap.kakaocdn.net/dn/Thchf/dJMb9aKWxhz/aJSdjfUMKvw0PyfTC5zit1/img.png?width=2752&amp;amp;height=1536&amp;amp;face=0_0_2752_1536');&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;Machine 이란?&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Machine이란 무엇인가?컴퓨터를 정의할 때 다음과 같이 말한다.컴퓨터는 program(= set of instructions)을 실행하는 electronic machine 임. 이 문서는 machine이라는 용어를 좀 더 자세히 소개한다.1. 공학적 의미&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;ds31x.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Finite Automaton vs. Turing Machine&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Finite Automaton (유한 오토마톤)&lt;/b&gt; 과 Turing Machine 의 핵심적인 차이는 &lt;b&gt;사용할 수 있는 memory&lt;/b&gt; 에 있음.&lt;/p&gt;
&lt;table style=&quot;color: #333333; text-align: start; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Finite Automaton&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Turing Machine&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;control state&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;유한&lt;/td&gt;
&lt;td&gt;유한&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;memory&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;현재 state 에 사실상 제한됨&lt;/td&gt;
&lt;td&gt;무한히 확장 가능한 tape&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;read/write&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;입력을 읽음&lt;/td&gt;
&lt;td&gt;tape 를 읽고 쓸 수 있음&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;이동&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;일반적으로 입력을 한 방향으로 처리&lt;/td&gt;
&lt;td&gt;head 가 좌우로 이동 가능&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;계산 능력&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;제한적&lt;/td&gt;
&lt;td&gt;일반적인 algorithm 표현 가능&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Finite Automaton&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;입력 길이에 따라 증가하는 별도의 memory 를 사용할 수 없음.&lt;/li&gt;
&lt;li&gt;따라서 이미 읽은 입력 전체를 저장하거나 임의의 위치로 돌아가 수정하는 작업을 수행할 수 없음.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반면 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Turing Machine&lt;/b&gt;&lt;/span&gt; 은 &lt;u&gt;읽고 쓸 수 있는 &lt;b&gt;tape (테이프)&lt;/b&gt; 를 memory 로 사용&lt;/u&gt;함.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;tape 는 이론적으로 무한히 확장 가능함.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;head&lt;/b&gt; 는 tape 의 symbol 을 읽을 수 있음.&lt;/li&gt;
&lt;li&gt;새로운 symbol 을 기록할 수 있음.&lt;/li&gt;
&lt;li&gt;왼쪽 또는 오른쪽으로 이동할 수 있음.&lt;/li&gt;
&lt;li&gt;이미 지나간 위치로 돌아가 다시 읽거나 수정할 수 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주의할 점은 Turing Machine 의 &lt;b&gt;state 수가 무한한 것이 아니라는 것&lt;/b&gt;임.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Turing Machine &lt;br /&gt;= finite control state + unbounded tape memory&lt;/b&gt;&lt;/p&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;br /&gt;유한한 state 를 가진 automaton 에 &lt;br /&gt;읽고 쓸 수 있는 무한히 확장 가능한 memory 를 결합한 계산 모델이&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Turing Machine임.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. Turing Machine의 기본 구성&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Turing Machine 은 엄밀하게 다음과 같은 7-tuple 로 정의할 수 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;M=(Q,\Sigma,\Gamma,\delta,q_0,q_{\mathrm{accept}},q_{\mathrm{reject}})&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;where&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$Q$: 유한한 state 집합&lt;/li&gt;
&lt;li&gt;$\Sigma$: input alphabet (input 에 사용가능한 symbol의 집합)&lt;/li&gt;
&lt;li&gt;$\Gamma$: tape alphabet (tape에 기록가능한 symbol의 집합), input symbol도 tape에 기록되어야 하므로, $\Sigma \subseteq \Gamma$임.&lt;/li&gt;
&lt;li&gt;$\delta$: transition function&lt;/li&gt;
&lt;li&gt;$q_0$: initial state&lt;/li&gt;
&lt;li&gt;$q_{\mathrm{accept}}$: accept state&lt;/li&gt;
&lt;li&gt;$q_{\mathrm{reject}}$: reject state&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 개별 symbol (보통 0,1만 사용하는 예가 대다수) 과 alphabet 을 구별하면 다음과 같음:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$a \in \Sigma$: 하나의 input symbol&lt;/li&gt;
&lt;li&gt;$b \in \Gamma$: 하나의 tape symbol&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개념적으로는 다음 네 가지가 핵심임:&lt;/p&gt;
&lt;table style=&quot;color: #333333; text-align: start; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px; text-align: center;&quot;&gt;구성 요소&lt;/td&gt;
&lt;td style=&quot;height: 21px; text-align: center;&quot;&gt;설명&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;b&gt;Tape&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;symbol 을 저장하는 memory. &lt;br /&gt;cell 단위로 구성되며 이론적으로 무한히 확장 가능함.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;b&gt;Head&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;현재 tape cell 의 symbol 을 읽거나 쓰거나 지울 수 있고,&lt;br /&gt;왼쪽 또는 오른쪽으로 이동함.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;b&gt;State&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;machine 의 현재 내부 상태를 나타냄.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;b&gt;Transition Function&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;현재 state 와 읽은 symbol 에 따라 &lt;br /&gt;다음 state, 기록할 symbol, head 이동 방향을 결정함.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;transition function 은 일반적으로 다음 형태를 가짐.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\delta(q,a)=(p,b,D)&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;where&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$q$: 현재 state&lt;/li&gt;
&lt;li&gt;$a$: 현재 head 가 읽은 symbol&lt;/li&gt;
&lt;li&gt;$p$: 다음 state&lt;/li&gt;
&lt;li&gt;$b$: tape 에 새로 기록할 symbol&lt;/li&gt;
&lt;li&gt;$D \in {L,R}$: head 의 이동 방향&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 하나의 transition 은 다음 동작을 의미함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\text{현재 state}+\text{읽은 symbol}&lt;br /&gt;\longrightarrow&lt;br /&gt;\text{새 state}+\text{기록할 symbol}+\text{head 이동}&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Turing Machine 의 computation 은&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;초기 input 이 기록된 tape 에서 시작하여&lt;/li&gt;
&lt;li&gt;이 transition 을 반복적으로 수행하는 과정임.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. Program으로서의 Machine Description&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반적인 Turing Machine $M$에서는 &lt;b&gt;transition function $\delta$가 machine 자체에 고정되어 있음&lt;/b&gt;.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 다음 두 요소를 구분할 수 있음:&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Machine Description : $\langle M \rangle$&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;&lt;b&gt;machine 자체를 정의한 description 임.&lt;/b&gt;&lt;/u&gt;&lt;/p&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;state 집합&lt;/li&gt;
&lt;li&gt;input alphabet&lt;/li&gt;
&lt;li&gt;tape alphabet&lt;/li&gt;
&lt;li&gt;transition function&lt;/li&gt;
&lt;li&gt;initial state&lt;/li&gt;
&lt;li&gt;accept / reject state&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, &lt;b&gt;어떤 automaton 인가를 정의하는 정보&lt;/b&gt;임.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Input : $x$&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정의된 machine $M$에 실제로 주어지는 input data 임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 일반적인 Turing Machine 의 계산은 개념적으로 다음 구조임.&lt;/p&gt;
&lt;pre class=&quot;sas&quot;&gt;&lt;code&gt;고정된 Machine M + Input x
              &amp;darr;
             M(x)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 transition function 은 일종의 &lt;b&gt;program (or S/W)&lt;/b&gt; 역할을 함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 일반적인 Turing Machine 에서는 &lt;b&gt;program 은 machine 에 고정되어 있고 input 만 변경됨&lt;/b&gt;.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. Universal Turing Machine (UMT)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Universal Turing Machine, UTM (보편 튜링 기계)&lt;/b&gt; 은&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;임의의 다른 Turing Machine 을&lt;/li&gt;
&lt;li&gt;simulation 할 수 있도록 구성된 Turing Machine 임.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반 Turing Machine 과 가장 중요한 차이는 &lt;b&gt;다른 machine 의 description 자체를 input 으로 받는다는 점&lt;/b&gt;임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;입력은 개념적으로 다음과 같이 구성됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\langle M\rangle, x&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;where&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$\langle M\rangle$: simulation 할 Turing Machine $M$의 encoded description&lt;/li&gt;
&lt;li&gt;$x$: 해당 machine $M$에 제공할 실제 input&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$\langle M\rangle$은 &lt;b&gt;어떤 automaton 을 실행할 것인가&lt;/b&gt;를 알려줌.&lt;/li&gt;
&lt;li&gt;$x$는 &lt;b&gt;그 automaton 에 어떤 input 을 줄 것인가&lt;/b&gt;를 알려줌.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Universal Turing Machine $U$는 $\langle M\rangle$에 기록된 transition rule 을 해석하면서 $M$의 computation 을 단계별로 simulation 함.&lt;/p&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;U(\langle M\rangle,x)=M(x)&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Automaton 관점에서는 다음과 같이 이해할 수 있음.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Universal Turing Machine 은&lt;br /&gt;다른 Turing Machine 의 transition system 을 data 로 받아&lt;br /&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;해당 automaton 의 동작을 simulation 하는 automaton 임&lt;/span&gt;.&lt;/b&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;5. Program을 Data로 다룬다는 의미&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Universal Turing Machine 의 중요한 점은 &lt;br /&gt;&lt;b&gt;machine description 자체를 symbol 로 encoding 할 수 있다는 것&lt;/b&gt;임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉,&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;transition rule, &lt;br /&gt;즉 program 자체를 data 로 표현할 수 있음.&lt;/b&gt;&lt;/p&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;일반적인 Turing Machine 에서는 transition rule 이 machine 에 고정되어 있음.&lt;/p&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: #ee2323;&quot;&gt;&lt;b&gt;Universal Turing Machine 에서는 실행할 machine 의 transition rule 이 input 의 일부가 됨.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;css&quot;&gt;&lt;code&gt;[ Machine Description &amp;lt;M&amp;gt; ] ┐
                            ├──&amp;gt; [ Universal Turing Machine ] ──&amp;gt; Result
[ Input x ]                 ┘&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 구조는 현대 computer (Stored Program Computer or 폰노이만 구조)의 다음 개념과 매우 유사함.&lt;/p&gt;
&lt;pre class=&quot;css&quot;&gt;&lt;code&gt;[ Program ] ┐
            ├──&amp;gt; [ Memory ] ──&amp;gt; [ Processor ] ──&amp;gt; Result
[ Data    ] ┘&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉 동일한 hardware 에 서로 다른 program 을 memory 에 적재함으로써 완전히 다른 계산을 수행할 수 있음.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;word processor&lt;/li&gt;
&lt;li&gt;web browser&lt;/li&gt;
&lt;li&gt;compiler&lt;/li&gt;
&lt;li&gt;database&lt;/li&gt;
&lt;li&gt;neural network program&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;등이 동일한 general-purpose computer 에서 실행될 수 있는 것도 이러한 &lt;b&gt;program-as-data&lt;/b&gt; 관점과 연결됨.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Universal Turing Machine 과 현대의 &lt;b&gt;stored-program computer&lt;/b&gt; 는 동일한 개념은 아니지만,&lt;/li&gt;
&lt;li&gt;&lt;b&gt;program 을 encoding 된 data 로 저장하고 범용 machine 이 이를 실행한다는 점에서 중요한 이론적 연결 관계&lt;/b&gt;를 가짐.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://ds31x.tistory.com/384#%EC%B0%B8%EA%B3%A0-stored-program-computer&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://ds31x.tistory.com/384#%EC%B0%B8%EA%B3%A0-stored-program-computer&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1787639192312&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;[CE] EDSAC과 EDVAC, 그리고 Stored Program Computer&quot; data-og-description=&quot;EDSAC (Electronic Delay Storage Automatic Calculator)1949년 개발된 (실용적인) 최초의 Stored Program Computer.영국 케임브리지 대학에서 모리스 윌킨스(Maurice Wilkes) 그룹이 von Neumann의 von Neumann Architecture를 채택하&quot; data-og-host=&quot;ds31x.tistory.com&quot; data-og-source-url=&quot;https://ds31x.tistory.com/384#%EC%B0%B8%EA%B3%A0-stored-program-computer&quot; data-og-url=&quot;https://ds31x.tistory.com/384&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bI8P9h/dJMb8Yqc5Vr/AyBMkCOKubVTEvt4B5Njq1/img.png?width=375&amp;amp;height=455&amp;amp;face=0_0_375_455,https://scrap.kakaocdn.net/dn/bw6BL9/dJMb82e4CRf/DWPEqk4UMHNvC2ouBUTORk/img.png?width=375&amp;amp;height=455&amp;amp;face=0_0_375_455,https://scrap.kakaocdn.net/dn/caVEKy/dJMb8Yqc5Vs/rrRIWRQ42ahk1hqzXlqtAk/img.png?width=857&amp;amp;height=646&amp;amp;face=135_170_189_230&quot;&gt;&lt;a href=&quot;https://ds31x.tistory.com/384#%EC%B0%B8%EA%B3%A0-stored-program-computer&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://ds31x.tistory.com/384#%EC%B0%B8%EA%B3%A0-stored-program-computer&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bI8P9h/dJMb8Yqc5Vr/AyBMkCOKubVTEvt4B5Njq1/img.png?width=375&amp;amp;height=455&amp;amp;face=0_0_375_455,https://scrap.kakaocdn.net/dn/bw6BL9/dJMb82e4CRf/DWPEqk4UMHNvC2ouBUTORk/img.png?width=375&amp;amp;height=455&amp;amp;face=0_0_375_455,https://scrap.kakaocdn.net/dn/caVEKy/dJMb8Yqc5Vs/rrRIWRQ42ahk1hqzXlqtAk/img.png?width=857&amp;amp;height=646&amp;amp;face=135_170_189_230');&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;[CE] EDSAC과 EDVAC, 그리고 Stored Program Computer&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;EDSAC (Electronic Delay Storage Automatic Calculator)1949년 개발된 (실용적인) 최초의 Stored Program Computer.영국 케임브리지 대학에서 모리스 윌킨스(Maurice Wilkes) 그룹이 von Neumann의 von Neumann Architecture를 채택하&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;ds31x.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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;6. Turing Completeness&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Turing Completeness (튜링 완전성)&lt;/b&gt; 는&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;어떤 computational system 이&lt;/li&gt;
&lt;li&gt;&lt;u&gt;&lt;b&gt;&lt;i&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;Turing Machine 으로 계산 가능한 모든 계산 &lt;/span&gt;&lt;/i&gt;을 표현하고 수행할 수 있는 계산 능력&lt;/b&gt;&lt;/u&gt;을&lt;/li&gt;
&lt;li&gt;가지고 있음을 의미함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;어떤 system 이 임의의 Turing Machine 의 computation 을 simulation 할 수 있다면&lt;/li&gt;
&lt;li&gt;해당 system 을 &lt;b&gt;Turing-complete&lt;/b&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt; 하다고 함.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 Universal Turing Machine 과 구분하면 다음과 같음.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Universal Turing Machine&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;다른 Turing Machine 을 simulation 하도록 구성된 특정 machine&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Turing-complete system&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;그러한 simulation 을 수행할 수 있는 수준의 computational power 를 가진 system&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;현대의 &lt;br /&gt;대부분의 general-purpose programming language&lt;/b&gt; 는 &lt;br /&gt;이론적으로 &lt;b&gt;Turing-complete 함&lt;/b&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;C&lt;/li&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;Java&lt;/li&gt;
&lt;li&gt;Rust&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://ds31x.tistory.com/427#%EC%B0%B8%EA%B3%A0-turing-completeness-%EC%99%80-control-structure&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://ds31x.tistory.com/427#%EC%B0%B8%EA%B3%A0-turing-completeness-%EC%99%80-control-structure&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1787639059404&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;[Programming] Control Flow 와 Control Structure&quot; data-og-description=&quot;Abstraction(추상화)을 통한 이해프로그래밍 언어에서 Abstraction은 복잡한 세부 사항을 숨기고 핵심 개념만 드러내는 프로그래밍의 기본 원칙임. Control Flow와 Control Structure는프로그램의 Execution Path를&quot; data-og-host=&quot;ds31x.tistory.com&quot; data-og-source-url=&quot;https://ds31x.tistory.com/427#%EC%B0%B8%EA%B3%A0-turing-completeness-%EC%99%80-control-structure&quot; data-og-url=&quot;https://ds31x.tistory.com/427&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/HMqRZ/dJMb887qo1F/K6o23AkkT0Ckdl2k4WpbI0/img.png?width=800&amp;amp;height=423&amp;amp;face=0_0_800_423,https://scrap.kakaocdn.net/dn/b2TMX1/dJMb81gakCz/BQy2GcEQH01mxSKTv7A7A0/img.png?width=800&amp;amp;height=423&amp;amp;face=0_0_800_423,https://scrap.kakaocdn.net/dn/bc86Zz/dJMb88GmOfy/afFOb1Pr3v1NsLLXqChR00/img.png?width=1928&amp;amp;height=1021&amp;amp;face=0_0_1928_1021&quot;&gt;&lt;a href=&quot;https://ds31x.tistory.com/427#%EC%B0%B8%EA%B3%A0-turing-completeness-%EC%99%80-control-structure&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://ds31x.tistory.com/427#%EC%B0%B8%EA%B3%A0-turing-completeness-%EC%99%80-control-structure&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/HMqRZ/dJMb887qo1F/K6o23AkkT0Ckdl2k4WpbI0/img.png?width=800&amp;amp;height=423&amp;amp;face=0_0_800_423,https://scrap.kakaocdn.net/dn/b2TMX1/dJMb81gakCz/BQy2GcEQH01mxSKTv7A7A0/img.png?width=800&amp;amp;height=423&amp;amp;face=0_0_800_423,https://scrap.kakaocdn.net/dn/bc86Zz/dJMb88GmOfy/afFOb1Pr3v1NsLLXqChR00/img.png?width=1928&amp;amp;height=1021&amp;amp;face=0_0_1928_1021');&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;[Programming] Control Flow 와 Control Structure&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Abstraction(추상화)을 통한 이해프로그래밍 언어에서 Abstraction은 복잡한 세부 사항을 숨기고 핵심 개념만 드러내는 프로그래밍의 기본 원칙임. Control Flow와 Control Structure는프로그램의 Execution Path를&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;ds31x.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단, &lt;u&gt;&lt;b&gt;실제 computer 는 memory 가 유한&lt;/b&gt;&lt;/u&gt;하므로&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt; 문자 그대로 무한한 tape 를 가지는 Turing Machine 과 동일하지 않음&lt;/b&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;때문에, Turing completeness 를 논할 때에는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반적으로 &lt;b&gt;필요에 따라 memory 를 임의로 확장할 수 있다는 이상화된 조건&lt;/b&gt;을 가정함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한 Turing completeness 는 &lt;b&gt;performance&lt;/b&gt; 를 의미하지 않음에 주의할 것.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Turing-complete 하다는 것은&lt;br /&gt;계산을 얼마나 빠르게 수행하는지가 아니라,&lt;br /&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;어떤 종류의 계산을 원리적으로 표현할 수 있는가&lt;/span&gt;를 의미함.&lt;/b&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;7. Computability와 Decidability&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Turing Machine 이 중요한 이유는 단순히 강력한 계산 모델이기 때문만이 아님.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 이용하면&lt;br /&gt;&lt;b&gt;계산 가능한 것과 계산 불가능한 것의 경계&lt;/b&gt;를&lt;br /&gt;수학적으로 정의할 수 있음.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Turing-computable&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어떤 function 을 계산하는 Turing Machine 이 존재한다면 &lt;br /&gt;해당 function 을 &lt;b&gt;Turing-computable (튜링 계산 가능)&lt;/b&gt; 하다고 함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉,&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;어떤 algorithm 으로 계산할 수 있다&lt;/span&gt;는 개념을 &lt;br /&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;Turing Machine 의 존재&lt;/span&gt; 여부로 형식화한 것임.&lt;/b&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Decidable&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어떤 decision problem 에 대해&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;모든 input 에서 반드시 정지하여 올바른 Yes/No 답을 반환하는 Turing Machine 이 존재&lt;/span&gt;하면 (Hibert의 질문에 기인)&lt;/li&gt;
&lt;li&gt;해당 문제를 &lt;b&gt;decidable (결정 가능)&lt;/b&gt; 하다고 함.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반대로 &lt;span style=&quot;color: #ee2323;&quot;&gt;그러한 machine 이 존재하지 않는 문제&lt;/span&gt;를 &lt;br /&gt;&lt;b&gt;undecidable (결정 불가능)&lt;/b&gt; 하다고 함.&lt;/p&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;따라서 Turing Machine은&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;computation 의 가능성을 설명하는 동시에&lt;/li&gt;
&lt;li&gt;&lt;b&gt;algorithm 이 원리적으로 해결할 수 없는 문제도 존재함&lt;/b&gt;을 보여주는 도구가 됨.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;8. Halting Problem&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대표적인 &lt;b&gt;&lt;i&gt;undecidable problem&lt;/i&gt;&lt;/b&gt; 이 &lt;b&gt;Halting Problem (정지 문제)&lt;/b&gt; 임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(Hilbert에 대한 Turing의 답은 No!)&lt;/p&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;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;임의의 program $M$과 input $x$가&lt;/u&gt; 주어졌을 때,&lt;br /&gt;$M(x)$가 언젠가 정지하는지 아니면 영원히 실행되는지를&lt;br /&gt;&lt;u&gt;모든 경우에 정확하게 판별하는 algorithm 이 존재&lt;/u&gt;하는가?&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러한 판별 machine 을 $H$라고 가정해 봄.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;H(\langle M\rangle,x)=&lt;br /&gt;\begin{cases}&lt;br /&gt;\mathrm{True}, &amp;amp; M(x)\text{가 정지하는 경우} \\&lt;br /&gt;\mathrm{False}, &amp;amp; M(x)\text{가 정지하지 않는 경우}&lt;br /&gt;\end{cases}&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 $H$를 이용하여 새로운 machine $D$를 구성함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(이 $D$는 &quot;같이보면 좋은 자료&quot; 의 youtube 동영상에선 Bizarro 로 이름이 붙여짐= &quot;정반대의, 왜곡된, 기괴한&quot;)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;796&quot; data-origin-height=&quot;421&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2qof7/dJMcaf12yvn/nxyxq5LoUufK8utIA7Xz31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2qof7/dJMcaf12yvn/nxyxq5LoUufK8utIA7Xz31/img.png&quot; data-alt=&quot;https://youtu.be/7TycxwFmdB0?si=Ap89opYYfE1k_FVo&amp;amp;amp;t=395&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2qof7/dJMcaf12yvn/nxyxq5LoUufK8utIA7Xz31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2qof7%2FdJMcaf12yvn%2Fnxyxq5LoUufK8utIA7Xz31%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;317&quot; data-origin-width=&quot;796&quot; data-origin-height=&quot;421&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;https://youtu.be/7TycxwFmdB0?si=Ap89opYYfE1k_FVo&amp;amp;t=395&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;$D$는 machine description $\langle M\rangle$을 입력받고 다음과 같이 동작함.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;$H(\langle M\rangle,\langle M\rangle)$을 실행함.&lt;/li&gt;
&lt;li&gt;$H$가 &quot;정지함&quot;이라고 판정하면 무한히 실행함.&lt;/li&gt;
&lt;li&gt;$H$가 &quot;정지하지 않음&quot;이라고 판정하면 즉시 정지함.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉 $H$의 예측과 반대로 행동하도록 $D$를 정의함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 $D$ 자신의 description 을 $D$에 입력함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;D(\langle D\rangle)&lt;br /&gt;$$&lt;/p&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$D(\langle D\rangle)$가 &lt;b&gt;정지한다고 가정&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$H$는 정지한다고 판정해야 함.&lt;/li&gt;
&lt;li&gt;그러나 $D$의 정의에 따라 $D$는 무한히 실행함.&lt;/li&gt;
&lt;li&gt;모순임.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;$D(\langle D\rangle)$가 &lt;b&gt;정지하지 않는다고 가정&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$H$는 정지하지 않는다고 판정해야 함.&lt;/li&gt;
&lt;li&gt;그러나 $D$의 정의에 따라 $D$는 즉시 정지함.&lt;/li&gt;
&lt;li&gt;역시 모순임.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;처음에 가정한 범용 판별 machine $H$는 존재할 수 없음.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Halting Problem 은 &lt;br /&gt;undecidable 함.&lt;/b&gt;&lt;/p&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;위의 내용은 Turing Machine 의 &lt;u&gt;&lt;b&gt;계산 능력이 부족해서 발생하는 문제가 아님.&lt;/b&gt;&lt;/u&gt;&lt;/p&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: #ee2323;&quot;&gt;&lt;b&gt;Halting Problem이 undecidable 이라는 것&lt;/b&gt;&lt;/span&gt;은&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Turing-complete 한 계산 모델 자체에도&lt;/li&gt;
&lt;li&gt;&lt;b&gt;모든 입력에 대해 항상 정답을 내는 algorithm 을 만들 수 없는 문제가 존재함&lt;/b&gt;을 의미함.&lt;/li&gt;
&lt;li&gt;이는 단순히 계산 시간이나 memory 가 부족해서가 아니라, &lt;b&gt;무한한 계산 resource 를 허용하더라도 그런 범용 algorithm 자체가 존재하지 않음 (computability에 대한 문제)&lt;/b&gt;을 의미함&lt;/li&gt;
&lt;li&gt;&lt;u&gt;&lt;b&gt;모든 경우에 유한한 단계 안에 halt 여부를 판정하는 algorithm 자체가 존재하지 않는다&lt;/b&gt;&lt;/u&gt;는 의미임.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;9. Church&amp;ndash;Turing Thesis&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Turing Machine 과 computability 를 이해할 때 함께 등장하는 개념이 &lt;b&gt;Church&amp;ndash;Turing Thesis (처치&amp;ndash;튜링 명제)&lt;/b&gt; 임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;핵심 주장은 다음과 같음.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;직관적인 의미에서 algorithm 으로 계산 가능한 모든 것은&lt;br /&gt;Turing Machine 으로 계산 가능함.&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이는 수학적 theorem 이라기보다는&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;algorithm 이라는 비형식적인 개념과&lt;/li&gt;
&lt;li&gt;Turing-computable 이라는 형식적인 개념을 동일시하는 thesis 임.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;당시 서로 독립적으로 제안된 여러 계산 모델들이 동일한 계산 가능성의 범위를 나타낸다는 사실이 이를 강하게 뒷받침함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대표적으로 다음 모델들이 동일한 computability 를 가지는 것으로 여겨도 됨:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Turing Machine&lt;/li&gt;
&lt;li&gt;lambda calculus (먼저 발표되었으나 수학 논문이라 복잡한 편임)&lt;/li&gt;
&lt;li&gt;recursive function&lt;/li&gt;
&lt;li&gt;register machine&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘날 Turing Machine 은&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;단순히 여러 계산 모델 중 하나라기보다,&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;algorithmic computation 의 범위를 정의&lt;/span&gt;하는 표준적인 기준 모델&lt;/b&gt;로 사용됨.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;10. 전체 관계&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전체적인 관계를 정리하면 다음과 같음.&lt;/p&gt;
&lt;pre class=&quot;pgsql&quot;&gt;&lt;code&gt;Finite Automaton
      │
      │ + read/write tape memory
      ▼
Turing Machine
      │
      │ machine description을 data로 encoding
      ▼
Universal Turing Machine
      │
      ├───────&amp;gt; Turing Completeness
      │                 계산 가능한 범위의 기준
      │
      └───────&amp;gt; Computability Theory
                              │
                              ├── Decidable Problems
                              │
                              └── Undecidable Problems
                                      │
                                      └── Halting Problem&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;11. 핵심 정리&lt;/h2&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;Turing Machine&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;finite state와 읽고 쓸 수 있는 unbounded tape 를 가진 automaton 임.&lt;/li&gt;
&lt;li&gt;transition function 을 반복하여 computation 을 수행함.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Machine Description&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;state, alphabet, transition function 등 machine 자체를 정의한 정보임.&lt;/li&gt;
&lt;li&gt;transition function 은 해당 machine 의 program 역할을 함.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Universal Turing Machine&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;machine description $\langle M\rangle$과 input $x$를 함께 입력받음.&lt;/li&gt;
&lt;li&gt;$\langle M\rangle$에 기술된 transition 을 해석하여 $M(x)$를 simulation 함.&lt;/li&gt;
&lt;li&gt;즉 &lt;b&gt;program 자체를 data 로 다룰 수 있음을 보여줌&lt;/b&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Turing Completeness&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Turing Machine 으로 계산 가능한 모든 computation 을 수행할 수 있는 computational power 를 의미함.&lt;/li&gt;
&lt;li&gt;계산 속도나 효율성이 아니라 &lt;b&gt;계산 가능한 범위&lt;/b&gt;에 관한 개념임.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Computability와 Undecidability&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Turing Machine 을 이용하여 algorithm 으로 해결할 수 있는 문제의 범위를 형식적으로 정의할 수 있음.&lt;/li&gt;
&lt;li&gt;동시에 Halting Problem 과 같이 어떠한 algorithm 으로도 모든 경우를 해결할 수 없는 문제도 존재함.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Turing Machine 의 가장 중요한 의미는 단순히 하나의 가상 machine 을 제안했다는 데 있지 않음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Turing Machine&lt;/b&gt; 은&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;algorithm 과 computation 을 수학적으로 정의하고,&lt;/li&gt;
&lt;li&gt;무엇이 계산 가능하며 무엇이 원리적으로 계산 불가능한지를 구분할 수 있게 만든&lt;/li&gt;
&lt;li&gt;계산 가능성 이론의 기준 모델임.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;같이보면 좋은 자료들&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://ds31x.tistory.com/626&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://ds31x.tistory.com/626&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1787639336318&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;Machine 이란?&quot; data-og-description=&quot;Machine이란 무엇인가?컴퓨터를 정의할 때 다음과 같이 말한다.컴퓨터는 program(= set of instructions)을 실행하는 electronic machine 임. 이 문서는 machine이라는 용어를 좀 더 자세히 소개한다.1. 공학적 의미&quot; data-og-host=&quot;ds31x.tistory.com&quot; data-og-source-url=&quot;https://ds31x.tistory.com/626&quot; data-og-url=&quot;https://ds31x.tistory.com/626&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/iFIUp/dJMb9aKWxpJ/MDP9TEjJx7ybdQQmAgNhSK/img.png?width=800&amp;amp;height=446&amp;amp;face=0_0_800_446,https://scrap.kakaocdn.net/dn/bnZ2OD/dJMb9b39ubD/xEWCmxrLLE91hcmu8lW9Zk/img.png?width=800&amp;amp;height=446&amp;amp;face=0_0_800_446,https://scrap.kakaocdn.net/dn/brrqXC/dJMb87gofKt/MRyCdF4w5FcOVQykZ1NuoK/img.png?width=2752&amp;amp;height=1536&amp;amp;face=0_0_2752_1536&quot;&gt;&lt;a href=&quot;https://ds31x.tistory.com/626&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://ds31x.tistory.com/626&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/iFIUp/dJMb9aKWxpJ/MDP9TEjJx7ybdQQmAgNhSK/img.png?width=800&amp;amp;height=446&amp;amp;face=0_0_800_446,https://scrap.kakaocdn.net/dn/bnZ2OD/dJMb9b39ubD/xEWCmxrLLE91hcmu8lW9Zk/img.png?width=800&amp;amp;height=446&amp;amp;face=0_0_800_446,https://scrap.kakaocdn.net/dn/brrqXC/dJMb87gofKt/MRyCdF4w5FcOVQykZ1NuoK/img.png?width=2752&amp;amp;height=1536&amp;amp;face=0_0_2752_1536');&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;Machine 이란?&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Machine이란 무엇인가?컴퓨터를 정의할 때 다음과 같이 말한다.컴퓨터는 program(= set of instructions)을 실행하는 electronic machine 임. 이 문서는 machine이라는 용어를 좀 더 자세히 소개한다.1. 공학적 의미&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;ds31x.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.me/mkdocs_site/CE/ch08/ce08_programming_language/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://dsaint31.me/mkdocs_site/CE/ch08/ce08_programming_language/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1787639387856&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;BME&quot; data-og-description=&quot;abstraction control structure high-level language low-level language programming Programming Language 어떤 주어진 문제를 해결하기 위해, 인간과 컴퓨터 사이에서 의사 소통을 가능케 하는 인공적인 언어 Natural Language(&quot; data-og-host=&quot;dsaint31.me&quot; data-og-source-url=&quot;https://dsaint31.me/mkdocs_site/CE/ch08/ce08_programming_language/&quot; data-og-url=&quot;https://dsaint31.me/mkdocs_site/CE/ch08/ce08_programming_language/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dy01Ae/dJMb9jOEkRC/9MFI5VDdxLB06CNskE7NM0/img.jpg?width=1087&amp;amp;height=936&amp;amp;face=0_0_1087_936&quot;&gt;&lt;a href=&quot;https://dsaint31.me/mkdocs_site/CE/ch08/ce08_programming_language/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.me/mkdocs_site/CE/ch08/ce08_programming_language/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dy01Ae/dJMb9jOEkRC/9MFI5VDdxLB06CNskE7NM0/img.jpg?width=1087&amp;amp;height=936&amp;amp;face=0_0_1087_936');&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;BME&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;abstraction control structure high-level language low-level language programming Programming Language 어떤 주어진 문제를 해결하기 위해, 인간과 컴퓨터 사이에서 의사 소통을 가능케 하는 인공적인 언어 Natural Language(&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.me&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://youtu.be/7TycxwFmdB0?si=MffTuIRvumR-SHla&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://youtu.be/7TycxwFmdB0?si=MffTuIRvumR-SHla&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=7TycxwFmdB0&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/oYu4m/dJMb85Xa7X4/dHaB2SKhag1PPtrTgYfcY1/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720,https://scrap.kakaocdn.net/dn/jK1fx/dJMb87goi4k/9tCgtjkcVegaFvjDFv3LD0/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;Alan Turing: Crash Course Computer Science #15&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/7TycxwFmdB0&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;</description>
      <category>Computer/CE</category>
      <category>computability</category>
      <category>Machine</category>
      <category>Turing</category>
      <category>Turing-Completeness</category>
      <category>undecidability</category>
      <author>dsaint31x</author>
      <guid isPermaLink="true">https://dsaint31.tistory.com/970</guid>
      <comments>https://dsaint31.tistory.com/970#entry970comment</comments>
      <pubDate>Tue, 25 Aug 2026 15:28:12 +0900</pubDate>
    </item>
    <item>
      <title>Empirical risk</title>
      <link>https://dsaint31.tistory.com/969</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1693&quot; data-origin-height=&quot;929&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjsvop/dJMcabrLo3p/9XsmhnOKeMrZBgbbp8zMC0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjsvop/dJMcabrLo3p/9XsmhnOKeMrZBgbbp8zMC0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjsvop/dJMcabrLo3p/9XsmhnOKeMrZBgbbp8zMC0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbjsvop%2FdJMcabrLo3p%2F9XsmhnOKeMrZBgbbp8zMC0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1693&quot; height=&quot;929&quot; data-origin-width=&quot;1693&quot; data-origin-height=&quot;929&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Population risk&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Population risk&lt;/b&gt;&lt;/span&gt;는 &lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;실제 데이터 생성 분포 전체에서 모델이 평균적으로 얼마나 큰 loss를 발생시키는지&lt;/span&gt;&lt;/b&gt;를 가리킴.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;입력 $X$와 정답 $Y$가 어떤 확률분포에서 발생하고,&lt;/li&gt;
&lt;li&gt;모델 $f$의 예측 오류를 loss function $L(Y,f(X))$로 나타낸다면&lt;/li&gt;
&lt;li&gt;population risk는 다음과 같이 정의됨:&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;R(f)=E[L(Y,f(X))]&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;Population risk는 &lt;b&gt;loss의 expectation으로 정의&lt;/b&gt;&lt;/u&gt; 되기 때문에 &lt;b&gt;expected risk&lt;/b&gt;라고도 흔히 불림.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;여기서 expectation은 관측된 sample에 대한 평균이 아니라,&lt;/li&gt;
&lt;li&gt;실제 데이터가 생성되는 &lt;b&gt;population distribution에 대한 평균&lt;/b&gt; 을 의미한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 population risk는 특정 training set에 종속된 값이 아니라,&lt;br /&gt;모델이 새로운 데이터에 적용될 때 평균적으로 발생시킬 loss를 나타내는 이론적 quantity이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이러한 점에서 empirical quantity와 대비되는 &lt;b&gt;theoretical quantity&lt;/b&gt;로 볼 수 있다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;expected risk&lt;/b&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;population distribution에 대해 loss의 expectation을 계산한 값&lt;/li&gt;
&lt;li&gt;가능한 (X,Y)에 대한 평균적인 loss를 의미&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;theoretical quantity&lt;/b&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;실제 관측된 sample 자체가 아니라 population distribution을 기준으로 정의됨&lt;/li&gt;
&lt;li&gt;모집단 분포를 알고 있다는 이론적 조건에서 정의되는 quantity&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Population risk의 단점은 실제로 구하기가 너무 어렵다&lt;/b&gt;&lt;/span&gt;는 점임.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;실제 데이터 생성 분포를 일반적으로 알 수 없음.&lt;/li&gt;
&lt;li&gt;따라서 $R(f)$는 이론적으로 정의할 수 있지만, 실제 학습에서는 직접 계산하기 어렵다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;estimation과 prediction 에 대하여&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt; Estimatio&lt;/b&gt;&lt;b&gt;n&lt;/b&gt;&lt;/span&gt;은&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; 데이터로부터 알 수 없는 parameter나 quantity를 추정&lt;/span&gt;하는 것이며,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; estimated value는 그 추정된 값임.&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;Prediction&lt;/b&gt;&lt;/span&gt;은&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&amp;nbsp; 학습된 model을 이용하여 새로운 observation의 outcome을 예측&lt;/span&gt;하는 것이며,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; predicted value는 그 예측된 값임.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Empirical risk&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Empirical risk는 &lt;span style=&quot;color: #ee2323;&quot;&gt;population risk를 &lt;b&gt;관측된 sample을 이용하여 추정한 값&lt;/b&gt;&lt;/span&gt;&amp;nbsp;임.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;여기서 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;empirical&lt;/b&gt;&lt;/span&gt;은 theoretical과 대비되는 표현으로,&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;실제 관측된 데이터에 근거하여 계산&lt;/b&gt;&lt;/span&gt;한다는 의미이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Training sample이 다음과 같을 경우:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;(x_1,y_1),\ldots,(x_n,y_n)&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;empirical risk는 다음과 같이 정의됨:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\hat R(f) = \frac{1}{n}&lt;br /&gt;\sum_{i=1}^{n}&lt;br /&gt;L(y_i,f(x_i))&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;population risk&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;population distribution 전체에서의 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;expected loss&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;theoretical quantity&lt;/li&gt;
&lt;li&gt;일반적으로 직접 관측 불가&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;empirical risk&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;u&gt;실제로 관측된 sample에서의 average loss&lt;/u&gt;&lt;/li&gt;
&lt;li&gt;empirical quantity&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;training data로 직접 계산 가능&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Empirical risk는 population risk 그 자체가 아니라, &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;유한한 sample을 이용한 estimate&lt;/b&gt; &lt;/span&gt;라는 점이 중요하다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Sample이 달라지면 empirical risk도 달라질 수 있으며,&lt;/li&gt;
&lt;li&gt;empirical risk가 작다고 해서 population risk가 반드시 동일하게 작다고 생각해선 안 됨.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Empirical risk minimization&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Empirical risk minimization, ERM&lt;/b&gt;&lt;/span&gt;은 &lt;br /&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;관측된 training sample에서 empirical risk가 가장 작아지도록 모델을 선택&lt;/b&gt;&lt;/span&gt;하는 방식을 가리킴.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\hat f = \arg\min_f \hat R(f)&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;u&gt;실제 목표는 population risk가 작은 모델을 얻는 것&lt;/u&gt;&lt;/b&gt;이지만,&lt;br /&gt;population risk를 직접 계산할 수 없기 때문에 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;empirical risk를 대신 최소화&lt;/b&gt;&lt;/span&gt;한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, ERM의 기본 논리는 다음과 같다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;궁극적 관심: population risk의 최소화&lt;/li&gt;
&lt;li&gt;현실적 제약: population distribution을 알 수 없음&lt;/li&gt;
&lt;li&gt;사용 가능한 정보: finite training sample&lt;/li&gt;
&lt;li&gt;실제 optimization target: empirical risk&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;machine learning에서 training loss를 최소화한다는 것은&lt;/li&gt;
&lt;li&gt;관측된 sample에서 계산한 empirical risk를 최소화함으로써,&lt;/li&gt;
&lt;li&gt;알 수 없는 population risk도 작아질 것으로 기대하는 학습 원리로 이해할 수 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;사례: Class imbalance와 empirical risk&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Class imbalance에서 중요한 것은&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;각 observation의 loss가 다르게 계산된다는 것이 아니라,&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;i&gt;class별 observation 수가 다르다&lt;/i&gt;&lt;/b&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt; 는 점이다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어, 다음과 같은 class imbalance가 있다고 하자:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;majority class: 전체 sample의 90%&lt;/li&gt;
&lt;li&gt;minority class: 전체 sample의 10%&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 경우 empirical risk는 단순화하여 다음과 같음:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\hat R(f) = 0.9\bar L_{\mathrm{major}} + 0.1\bar L_{\mathrm{minor}}&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 observation은 동일한 weight로 loss에 포함되지만,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;majority class의&lt;/b&gt;&lt;/span&gt; observation이 더 많기 때문에&lt;/li&gt;
&lt;li&gt;해당 class에서 발생하는 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;loss가 전체 empirical risk에 더 많이 포함&lt;/b&gt;&lt;/span&gt;된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;majority class의 오류 감소가 전체 empirical risk 감소에 더 크게 기여&lt;/b&gt;&lt;/span&gt;할 수 있음&lt;/li&gt;
&lt;li&gt;minority class의 오류는 전체 objective에서 상대적으로 작은 비중을 가질 수 있음&lt;/li&gt;
&lt;li&gt;ERM이 frequently observed class에 더 민감하게 반응할 가능성이 생김&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이러한 구조가 class imbalance correction의 기본적인 출발점임:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Re-sampling
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;class별 training sample의 구성을 조정&lt;/li&gt;
&lt;li&gt;minority class를 oversampling하거나 majority class를 undersampling&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Loss weighting 또는 cost-sensitive learning
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;class별 loss가 empirical risk에 기여하는 크기를 조정&lt;/li&gt;
&lt;li&gt;소수 클래스에서 발생하는 오류에 더 큰 비용이나 가중치를 주는 방식&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Decision-rule adjustment
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;학습 이후 최종 prediction 단계에서 class frequency의 영향을 조정&lt;/li&gt;
&lt;li&gt;class probability에 보정을 적용하거나 decision threshold를 바꾸는 방식&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개입(intervention) 단계는 서로 다르지만, 공통적으로 원래의 class frequency가 학습 또는 prediction에 미치는 영향을 수정함.&lt;/p&gt;</description>
      <category>Programming/ML</category>
      <author>dsaint31x</author>
      <guid isPermaLink="true">https://dsaint31.tistory.com/969</guid>
      <comments>https://dsaint31.tistory.com/969#entry969comment</comments>
      <pubDate>Wed, 12 Aug 2026 09:37:09 +0900</pubDate>
    </item>
    <item>
      <title>Fundamental Photon Attenuation Law</title>
      <link>https://dsaint31.tistory.com/968</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;Linear Attenuation Coefficient&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Linear Attenuation Coefficient의 정의는 다음과 같음:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\mu=\frac{n/N_{\mathrm{in}}}{\Delta x}$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$N_{\mathrm{in}}은$ 두께 $\Delta x$인 얇은 물질층에 입사하는 광자 수이고,&lt;/li&gt;
&lt;li&gt;$n$은 해당 층에서 소실되는 광자 수임.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Fundamental Photon Attenuation Law&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉 다음이 성립:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$n=\mu N_{\mathrm{in}}\Delta x$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;얇은 층을 통과한 후의 광자 수를 N'이라 하면 다음과 같음:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$N'=N_{\mathrm{in}}-n$$&lt;/p&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;$$\begin{aligned}\Delta N&amp;amp;=N'-N_{\mathrm{in}} \\ &amp;amp;=-\mu N_{\mathrm{in}}\Delta x\end{aligned}$$&lt;/p&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;$$dN(x)=-\mu N(x) dx$$&lt;/p&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;$$\frac{dN(x)}{N(x)}=-\mu dx$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;경계조건과 $N'(x)$은 같음:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$N(0)=N_0$&lt;/li&gt;
&lt;li&gt;$N(\Delta x)=N$&lt;/li&gt;
&lt;li&gt;$N'(x) = \dfrac{dN(x)}{dx} \leftrightarrow dN(x)= N'(x)dx$&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;적분하면 다음을 얻음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\int_0^{\Delta x}\frac{1}{N(x)} dN(x) = -\mu\int_0^{\Delta x}dx \\ \ln\left(\frac{N}{N_0}\right) = -\mu\Delta x$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 fundamental photon attenuation law는 다음과 같음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$N=N_0e^{-\mu\Delta x}$$&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Heterogeneous Medium and Polyenergetic Photons&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주의할 점은&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Polyenergetic photon의 경우, 각 에너지 성분에 대해 다른 linear attenuation coefficient를 가짐.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;때문에 같은 매질에서도 각 에너지 성분에 대해 다른 고려를 해야함.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;667&quot; data-origin-height=&quot;519&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqmmgU/dJMcagT1YTw/Nni0kMRsE30UNRvJt8XSFk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqmmgU/dJMcagT1YTw/Nni0kMRsE30UNRvJt8XSFk/img.png&quot; data-alt=&quot;https://www.eecis.udel.edu/~arce/files/Courses/DigImgProc/Chapter8-Imaging.pdf&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqmmgU/dJMcagT1YTw/Nni0kMRsE30UNRvJt8XSFk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqmmgU%2FdJMcagT1YTw%2FNni0kMRsE30UNRvJt8XSFk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;531&quot; height=&quot;413&quot; data-origin-width=&quot;667&quot; data-origin-height=&quot;519&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;https://www.eecis.udel.edu/~arce/files/Courses/DigImgProc/Chapter8-Imaging.pdf&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한 photon이 지나는 매질의 성분이 다를 경우, linear attenuation coef.도 다를 수 있음:&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;694&quot; data-origin-height=&quot;85&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ihb4f/dJMcacD9YTr/bL8IRktLlBKR0x0bKsK2LK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ihb4f/dJMcacD9YTr/bL8IRktLlBKR0x0bKsK2LK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ihb4f/dJMcacD9YTr/bL8IRktLlBKR0x0bKsK2LK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIhb4f%2FdJMcacD9YTr%2FbL8IRktLlBKR0x0bKsK2LK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;86&quot; data-origin-width=&quot;694&quot; data-origin-height=&quot;85&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$I$: 투과된 X-ray Itensity(강도)&lt;/li&gt;
&lt;li&gt;$E'$: photon 에너지&lt;/li&gt;
&lt;li&gt;$S_0(E')$: 입사 X-ray photon number spectrum&lt;/li&gt;
&lt;li&gt;$E'S_0(E')$: 입사 X-ray energy spectrum&lt;/li&gt;
&lt;li&gt;$\mu(x';E')$: 위치와 photon 에너지에 따른 선형감쇠계수&lt;/li&gt;
&lt;li&gt;$x'$: X-ray 진행 경로상의 위치&lt;/li&gt;
&lt;li&gt;$x$: 물질 내 X-ray 진행 거리&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;같이 보면 좋은 자료들&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/926&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2025.09.03 - [정리필요./PET, MRI and so on.] - Radiation Intensity&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1786983045669&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;Radiation Intensity&quot; data-og-description=&quot;기본 용어 (값)다음 값들은 방사선의 intensity(강도)를 표시하는데 자주 사용됨:값기호정의수식단위Photon Fluence (Fluence = 선속)($\Phi$)단위 면적을 통과한 총 광자 수 (누적)$\left(\Phi = \dfrac{N}{A}\right)$$&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/926&quot; data-og-url=&quot;https://dsaint31.tistory.com/926&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/x6MJG/dJMb83SzNce/Ah7sgBKU7x6kwwePp6aH41/img.png?width=576&amp;amp;height=588&amp;amp;face=0_0_576_588,https://scrap.kakaocdn.net/dn/qyOac/dJMb8RkiT2A/prYZiE8ExgkLXKkgvRLKw0/img.png?width=576&amp;amp;height=588&amp;amp;face=0_0_576_588,https://scrap.kakaocdn.net/dn/z9uxb/dJMb8QMsX1R/zx6cCwhrZr2IgvDPjGAkHk/img.png?width=576&amp;amp;height=588&amp;amp;face=0_0_576_588&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/926&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/926&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/x6MJG/dJMb83SzNce/Ah7sgBKU7x6kwwePp6aH41/img.png?width=576&amp;amp;height=588&amp;amp;face=0_0_576_588,https://scrap.kakaocdn.net/dn/qyOac/dJMb8RkiT2A/prYZiE8ExgkLXKkgvRLKw0/img.png?width=576&amp;amp;height=588&amp;amp;face=0_0_576_588,https://scrap.kakaocdn.net/dn/z9uxb/dJMb8QMsX1R/zx6cCwhrZr2IgvDPjGAkHk/img.png?width=576&amp;amp;height=588&amp;amp;face=0_0_576_588');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Radiation Intensity&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;기본 용어 (값)다음 값들은 방사선의 intensity(강도)를 표시하는데 자주 사용됨:값기호정의수식단위Photon Fluence (Fluence = 선속)($\Phi$)단위 면적을 통과한 총 광자 수 (누적)$\left(\Phi = \dfrac{N}{A}\right)$$&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>정리필요./방사선 계측</category>
      <category>attenuation</category>
      <category>X-ray</category>
      <author>dsaint31x</author>
      <guid isPermaLink="true">https://dsaint31.tistory.com/968</guid>
      <comments>https://dsaint31.tistory.com/968#entry968comment</comments>
      <pubDate>Wed, 5 Aug 2026 20:43:31 +0900</pubDate>
    </item>
    <item>
      <title>Electric Potential vs. Voltage vs. Electron-volts</title>
      <link>https://dsaint31.tistory.com/967</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Electric Potential(전위):&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전하량 q인 전하가 위치 r에서 가지는 electric potential energy가 U일 때, 그 위치의 electric potential은 다음과 같음:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;V=\frac{U}{q}&lt;br /&gt;$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$V$: 위치 $r$의 electric potential&lt;/li&gt;
&lt;li&gt;$U$: 전하 $q$가 위치 $r$에서 가지는 electric potential energy&lt;/li&gt;
&lt;li&gt;$q$: 위치 $r$에 놓인 전하의 전하량&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt; electric potential: &lt;br /&gt;어떤 위치에 charge(전하)를 놓았을 때 &lt;br /&gt;electric poetnetial energy(전위에너지)를 가질 수 있는 정도&lt;/span&gt;&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Electric Potential Difference(전위차):&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;두 위치 A와 B의 electric potential 차이&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\Delta V=V_B-V_A&lt;br /&gt;$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$\Delta V$: 위치 A에서 위치 B까지의 electric potential difference&lt;/li&gt;
&lt;li&gt;$V_A$: 위치 A의 electric potential&lt;/li&gt;
&lt;li&gt;$V_B$: 위치 B의 electric potential&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;voltage(전압)라고도 부름. (volt는 단위명으로 물리량인 voltage랑 다름)&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;전위에너지 변화와의 관계:&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\Delta U=q\Delta V&lt;br /&gt;$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$\Delta U$: 위치 A에서 위치 B로 이동할 때 electric potential energy의 변화량&lt;/li&gt;
&lt;li&gt;$q$: 이동하는 전하의 전하량&lt;/li&gt;
&lt;li&gt;$\Delta V$: 두 위치 사이의 electric potential difference&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$V$는 electric potential의 물리량 기호이고, $\mathrm{V}$는 volt라는 단위임.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Volt(볼트):&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Electric potential과 electric potential difference의 단위.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;1\ \mathrm{V}=1\ \mathrm{J/C}&lt;br /&gt;$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$\mathrm{V}$: volt의 단위 기호&lt;/li&gt;
&lt;li&gt;$\mathrm{J}$: joule의 단위 기호&lt;/li&gt;
&lt;li&gt;$\mathrm{C}$:coulomb의 단위 기호&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, $\ \mathrm{V}$ 전하 $1\ \mathrm{C}$당 에너지 $1\ \mathrm{J}$에 해당함.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;eV(Electron Volt, 전자볼트):&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;에너지의 단위.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전하량의 크기가 e인 입자가 $1\ \mathrm{V}$의 electric potential difference를 통과할 때 변화하는 에너지의 크기를 $1\ \mathrm{eV}$라고 함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;1\ \mathrm{eV}=e\times 1\ \mathrm{V} \\&lt;br /&gt;1\ \mathrm{eV}=1.602\times10^{-19}\ \mathrm{J}&lt;br /&gt;$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$e$: elementary charge의 크기 $\left(1.602\times10^{-19}\ \mathrm{C}\right)$&lt;/li&gt;
&lt;li&gt;$\mathrm{eV}$: electron volt의 단위 기호&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 전자 하나가 $1\ \mathrm{V}$의 전위차에 의해 가속될 때 얻는 운동에너지의 크기가 $1\ \mathrm{eV}$임.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;808&quot; data-origin-height=&quot;387&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cpGSFj/dJMcaiEiSyw/UE6qCHQ9lviZ66NKkVJqm1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cpGSFj/dJMcaiEiSyw/UE6qCHQ9lviZ66NKkVJqm1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cpGSFj/dJMcaiEiSyw/UE6qCHQ9lviZ66NKkVJqm1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcpGSFj%2FdJMcaiEiSyw%2FUE6qCHQ9lviZ66NKkVJqm1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;441&quot; height=&quot;211&quot; data-origin-width=&quot;808&quot; data-origin-height=&quot;387&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://youtu.be/uqAVjdg0LQA?si=e93bi-BMi-JX1gpJ&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://youtu.be/uqAVjdg0LQA?si=e93bi-BMi-JX1gpJ&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=uqAVjdg0LQA&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/cjiTN1/dJMb87glApj/hdbEbpT5r09lL6uldc7uj1/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720,https://scrap.kakaocdn.net/dn/bZmyIG/dJMb887nOPy/Odw7fl3b2jE1MqKFIQkJDK/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;5.06 What is an electron volt?&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/uqAVjdg0LQA&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;</description>
      <category>.../Physics</category>
      <category>electron volts</category>
      <category>EV</category>
      <category>Potential</category>
      <category>Voltage</category>
      <author>dsaint31x</author>
      <guid isPermaLink="true">https://dsaint31.tistory.com/967</guid>
      <comments>https://dsaint31.tistory.com/967#entry967comment</comments>
      <pubDate>Wed, 5 Aug 2026 13:12:24 +0900</pubDate>
    </item>
    <item>
      <title>Monte Carlo와 MCMC</title>
      <link>https://dsaint31.tistory.com/966</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1189&quot; data-origin-height=&quot;290&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Q2DN8/dJMcaiYsCUo/moOayTcbaOiytpRs8K4WK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Q2DN8/dJMcaiYsCUo/moOayTcbaOiytpRs8K4WK0/img.png&quot; data-alt=&quot;Single-chain Metropolis-Hastings sampling. chains=1 에서 각 iteration마다 scalar state 하나를 기록하고, draws=100 , 1000 , 10000 으로 얻은 posterior sample을 red density histogram으로 나타냄. PyMC에서 draws 는 각 chain에서 tuning 이후 저장하는 sample 수이고, chains 는 독립적으로 실행하는 Markov chain 수이므로 전체 retained sample 수는 draws x chains 임. Blue curve는 target distribution이며, draw 수가 증가할수록 empirical distribution이 이에 가까워짐. Red histogram의 y-axis는 sample count가 아니라 probability density이므로 narrow bin에 sample이 집중되면 높이가 1을 초과할 수 있으며, 전체 histogram의 area는 1로 normalized됨.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Q2DN8/dJMcaiYsCUo/moOayTcbaOiytpRs8K4WK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQ2DN8%2FdJMcaiYsCUo%2FmoOayTcbaOiytpRs8K4WK0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1189&quot; height=&quot;290&quot; data-origin-width=&quot;1189&quot; data-origin-height=&quot;290&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Single-chain Metropolis-Hastings sampling. chains=1 에서 각 iteration마다 scalar state 하나를 기록하고, draws=100 , 1000 , 10000 으로 얻은 posterior sample을 red density histogram으로 나타냄. PyMC에서 draws 는 각 chain에서 tuning 이후 저장하는 sample 수이고, chains 는 독립적으로 실행하는 Markov chain 수이므로 전체 retained sample 수는 draws x chains 임. Blue curve는 target distribution이며, draw 수가 증가할수록 empirical distribution이 이에 가까워짐. Red histogram의 y-axis는 sample count가 아니라 probability density이므로 narrow bin에 sample이 집중되면 높이가 1을 초과할 수 있으며, 전체 histogram의 area는 1로 normalized됨.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Monte Carlo&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Monte Carlo는&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;random sample을 반복 생성하여&lt;/li&gt;
&lt;li&gt;expectation, probability, integral 등을&lt;/li&gt;
&lt;li&gt;numerical approximation하는 방법의 총칭.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음과 같이 목표분포 $\pi$에서 직접 sampling이 가능한 경우:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;X_1, X_2, \ldots, X_N&lt;br /&gt;\overset{\mathrm{IID}}{\sim}&lt;br /&gt;\pi&lt;br /&gt;$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$X_i$: $i$번째 sample&lt;/li&gt;
&lt;li&gt;$i$: sampling index&lt;/li&gt;
&lt;li&gt;$N$: 전체 sample 수&lt;/li&gt;
&lt;li&gt;$\pi$: target distribution&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;IID(independent and identically distributed) 이므로 다음을 만족:&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 $X_i$는&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;동일한 target distribution에서 생성되며&lt;/li&gt;
&lt;li&gt;서로 independent함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IID 관련&amp;nbsp; 자료: &lt;a href=&quot;https://dsaint31.tistory.com/671#%EC%B0%B8%EA%B3%A0%3A%20independent%20and%20identically%20distributed%20(i.i.d.)%20%EC%99%80%EC%9D%98%20%EA%B4%80%EA%B3%84-1-1&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://dsaint31.tistory.com/671#%EC%B0%B8%EA%B3%A0%3A%20independent%20and%20identically%20distributed%20(i.i.d.)%20%EC%99%80%EC%9D%98%20%EA%B4%80%EA%B3%84-1-1&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1785672159905&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;[Math] Random Sampling&quot; data-og-description=&quot;Random Sampling Random Sampling은 다음을 가르킴.Population(모집단)에서 element를 각각 무작위(random)로 선택하여 얻는sampling method(샘플링, 표본추출)을 가르킴. Statstics에서일반적으로 &amp;quot;제한된 수의 sample들&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/671#%EC%B0%B8%EA%B3%A0%3A%20independent%20and%20identically%20distributed%20(i.i.d.)%20%EC%99%80%EC%9D%98%20%EA%B4%80%EA%B3%84-1-1&quot; data-og-url=&quot;https://dsaint31.tistory.com/671&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/O6IwY/dJMb8UH3ZIy/8gpw4HNrE6bJG5PER7iK4K/img.jpg?width=800&amp;amp;height=387&amp;amp;face=0_0_800_387,https://scrap.kakaocdn.net/dn/bj2Mc6/dJMb8UaeyP4/TUHhPMhE1ODnnlcaQY84F0/img.jpg?width=800&amp;amp;height=387&amp;amp;face=0_0_800_387&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/671#%EC%B0%B8%EA%B3%A0%3A%20independent%20and%20identically%20distributed%20(i.i.d.)%20%EC%99%80%EC%9D%98%20%EA%B4%80%EA%B3%84-1-1&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/671#%EC%B0%B8%EA%B3%A0%3A%20independent%20and%20identically%20distributed%20(i.i.d.)%20%EC%99%80%EC%9D%98%20%EA%B4%80%EA%B3%84-1-1&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/O6IwY/dJMb8UH3ZIy/8gpw4HNrE6bJG5PER7iK4K/img.jpg?width=800&amp;amp;height=387&amp;amp;face=0_0_800_387,https://scrap.kakaocdn.net/dn/bj2Mc6/dJMb8UaeyP4/TUHhPMhE1ODnnlcaQY84F0/img.jpg?width=800&amp;amp;height=387&amp;amp;face=0_0_800_387');&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;[Math] Random Sampling&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Random Sampling Random Sampling은 다음을 가르킴.Population(모집단)에서 element를 각각 무작위(random)로 선택하여 얻는sampling method(샘플링, 표본추출)을 가르킴. Statstics에서일반적으로 &quot;제한된 수의 sample들&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.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;따라서, Monte Carlo에선&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;sampling index는 생성 순서만 표시&lt;/span&gt;&lt;/b&gt;함.&lt;/li&gt;
&lt;li&gt;MC에서는 순서(index) 자체에 특별한 statistical meaning이 없음.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;생성된 sample을 이용하여 expectation을 다음과 같이 approximation함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;E_{\pi}[f(X)]&lt;br /&gt;\approx&lt;br /&gt;\frac{1}{N}&lt;br /&gt;\sum_{i=1}^{N} f(X_i)&lt;br /&gt;$$&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;예: Dataset을 반복 생성하는 Monte Carlo simulation&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;한 번의 Monte Carlo iteration에서 100개 instance로 구성된 dataset 하나를 생성한다고 가정.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\mathcal{D}_r = \{X_{r,1},X_{r,2},\ldots,X_{r,100}\}&lt;br /&gt;$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$r$: Monte Carlo iteration index&lt;/li&gt;
&lt;li&gt;$i$: dataset 내부의 instance index&lt;/li&gt;
&lt;li&gt;$X_{r,i}$: $r$번째 iteration에서 생성된 $i$번째 instance&lt;/li&gt;
&lt;li&gt;$\mathcal{D}_r$: $r$번째 iteration에서 생성된 dataset&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1000회 반복한 경우:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\mathcal{D}_1,\mathcal{D}_2,\ldots,\mathcal{D}_{1000}&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1000번째 dataset:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\mathcal{D}_{1000} = {X_{1000,1},X_{1000,2},\ldots,X_{1000,100}}&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반적인 Monte Carlo simulation에서는 각 dataset이 서로 다음과 같이 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;independently&lt;/b&gt;&lt;/span&gt; generated됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\mathcal{D}_r \perp \mathcal{D}_{r+1}&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;같은 dataset 내부의 $X_{r,n}$ instance 와 $X_{r,n+1}$가 independent한지는 data-generating 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;즉,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Repeated measurement, cluster, longitudinal data 등을 simulation한다면&lt;/li&gt;
&lt;li&gt;같은 dataset 내부의 instance가 correlated될 수 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;이는 Monte Carlo iteration 사이의 &lt;br /&gt;dependence와는 별개의 문제.&lt;/span&gt;&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h1&gt;MCMC&lt;/h1&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MCMC는 Markov Chain Monte Carlo의 약자.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Target distribution에서 직접 sampling하기 어려운 경우&lt;/b&gt;&lt;/span&gt;,&lt;/li&gt;
&lt;li&gt;해당 distribution을 stationary distribution으로 가지는 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Markov chain&lt;/b&gt;&lt;/span&gt;을 구성하여&lt;/li&gt;
&lt;li&gt;sample을 생성하는 Monte Carlo method.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Markov chain:&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;S_0,S_1,S_2,\ldots&lt;br /&gt;$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$t$: MCMC iteration index&lt;/li&gt;
&lt;li&gt;$S_t$: $t$번째 iteration의 chain state&lt;/li&gt;
&lt;li&gt;$S_0$: initial state&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/378&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2022.10.14 - [.../Math] - [LA] Markov Chain&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1785672332879&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;[LA] Markov Chain&quot; data-og-description=&quot;Markov Chain: 1907년 Markov가 제안한 확률모델. 강화학습과 베이지안 확률모델에서 많이 사용됨.Markov Chain은 Markov Property를 가지고 있는 Discrete-Time Stochastic Process (또는 Discrete-Time Random Process)를 의미함&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/378&quot; data-og-url=&quot;https://dsaint31.tistory.com/378&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bvcHva/dJMb83SxLuK/jQybTp5Ujo0fYULjP8OMUK/img.jpg?width=800&amp;amp;height=267&amp;amp;face=0_0_800_267,https://scrap.kakaocdn.net/dn/YvNyr/dJMb82e1E8P/ynqmhK9D2saWI0rD0J8eP0/img.jpg?width=800&amp;amp;height=267&amp;amp;face=0_0_800_267,https://scrap.kakaocdn.net/dn/daKPhO/dJMb9bwgMqg/tTlFJMIPGUZGM628HeW6K1/img.jpg?width=1942&amp;amp;height=649&amp;amp;face=0_0_1942_649&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/378&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/378&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bvcHva/dJMb83SxLuK/jQybTp5Ujo0fYULjP8OMUK/img.jpg?width=800&amp;amp;height=267&amp;amp;face=0_0_800_267,https://scrap.kakaocdn.net/dn/YvNyr/dJMb82e1E8P/ynqmhK9D2saWI0rD0J8eP0/img.jpg?width=800&amp;amp;height=267&amp;amp;face=0_0_800_267,https://scrap.kakaocdn.net/dn/daKPhO/dJMb9bwgMqg/tTlFJMIPGUZGM628HeW6K1/img.jpg?width=1942&amp;amp;height=649&amp;amp;face=0_0_1942_649');&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;[LA] Markov Chain&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Markov Chain: 1907년 Markov가 제안한 확률모델. 강화학습과 베이지안 확률모델에서 많이 사용됨.Markov Chain은 Markov Property를 가지고 있는 Discrete-Time Stochastic Process (또는 Discrete-Time Random Process)를 의미함&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Markov chain에서 다음 state는 현재 state를 기반으로 생성&lt;/b&gt;&lt;/span&gt;됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;S_{t+1} \sim P(S_{t+1}\mid S_t)&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 MCMC sample $S_t$와 $S_{t+1}$은 일반적으로 independent하지 않음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(MC와의 차이점).&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;이처럼 iteration index를 따라 가까운 sample들이 correlated되는 현상을&lt;/span&gt; &lt;br /&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;serial correlation&lt;/b&gt;&lt;/span&gt; 또는 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;autocorrelation&lt;/b&gt;&lt;/span&gt;이라 함.&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Parameter vector를 sampling하는 경우&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Bayesian model에서 하나의 chain state는 여러 parameter로 구성될 수 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;S_t = (\mu_t,\sigma_t,\beta_t)&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Autocorrelation은 동일한 parameter를 iteration 방향으로 비교한 관계에서 성립:&lt;/p&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$\mu_t$ 와 $\mu_{t+1}$ 은 serial correlation 관계임.&lt;/li&gt;
&lt;li&gt;$\sigma_t$ 와 $\sigma_{t+1}$도 serial correlation 관계임.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반면 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;&quot;같은 iteration&quot;&lt;/b&gt;&lt;/span&gt;의 $\mu_{t}$와 $\sigma_t$의 관계는 autocorrelation이 아니라 posterior correlation 임.&lt;/p&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://dsaint31.tistory.com/911&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2025.05.27 - [.../Math] - Bayes' Theorem (Update Your Beliefs with Evidence): Bayesian&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1785672978608&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;Bayes' Theorem (Update Your Beliefs with Evidence): Bayesian&quot; data-og-description=&quot;1. 정리$N$개의 event (사상,사건)인 $H_0, H_1, ... , H_{N-1}$ 들이sample space $S$의 partition(전부 모이면 $S$를 이룸)이면서,$P(H_i) &amp;gt;0$ 을 만족하고,Event $E$가 sample space $S$의 임의의 Event이며 $P(E)&amp;gt;0$이면 다음이 &quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/911&quot; data-og-url=&quot;https://dsaint31.tistory.com/911&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bp7SfY/dJMb8ZvP9Te/as4uNDRFSlsvEHStbK3Db1/img.png?width=800&amp;amp;height=353&amp;amp;face=0_0_800_353,https://scrap.kakaocdn.net/dn/gVEwI/dJMb896irS4/MqMQl5iuT0o4lOupAxRLt1/img.png?width=800&amp;amp;height=353&amp;amp;face=0_0_800_353,https://scrap.kakaocdn.net/dn/sASQ7/dJMb9frTVmD/IdsDHZfP8XbYU6LKTecQOk/img.png?width=1708&amp;amp;height=1260&amp;amp;face=0_0_1708_1260&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/911&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/911&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bp7SfY/dJMb8ZvP9Te/as4uNDRFSlsvEHStbK3Db1/img.png?width=800&amp;amp;height=353&amp;amp;face=0_0_800_353,https://scrap.kakaocdn.net/dn/gVEwI/dJMb896irS4/MqMQl5iuT0o4lOupAxRLt1/img.png?width=800&amp;amp;height=353&amp;amp;face=0_0_800_353,https://scrap.kakaocdn.net/dn/sASQ7/dJMb9frTVmD/IdsDHZfP8XbYU6LKTecQOk/img.png?width=1708&amp;amp;height=1260&amp;amp;face=0_0_1708_1260');&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;Bayes' Theorem (Update Your Beliefs with Evidence): Bayesian&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;1. 정리$N$개의 event (사상,사건)인 $H_0, H_1, ... , H_{N-1}$ 들이sample space $S$의 partition(전부 모이면 $S$를 이룸)이면서,$P(H_i) &amp;gt;0$ 을 만족하고,Event $E$가 sample space $S$의 임의의 Event이며 $P(E)&amp;gt;0$이면 다음이&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;예: Dataset 전체가 chain state인 경우&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하나의 chain state가 100개 instance로 구성된 dataset이라고 가정.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;S_t = \mathcal{D}_t = \{X_{t,1},X_{t,2},\ldots,X_{t,100}\}&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MCMC autocorrelation은 다음에서 성립:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$\mathcal{D}_t$ 와 $\mathcal{D}_{t+1}$&lt;/li&gt;
&lt;li&gt;$X_{t,n}$ 과 $X_{t+1,n}$ (같은 component 기준)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반면, $X_{t,n}$ 과 $X_{x,n+1}은 같은 iteration 내부의 서로 다른 instance 이므로 MCMC autocorrelation과 관계없음.&lt;/p&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;두 instance 사이의 correlation은 data-generating model에 의해 결정되며,&lt;/li&gt;
&lt;li&gt;MCMC autocorrelation을 의미하지 않음.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Burn-in과 convergence&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앞서 살펴본 MCMC의 속성상&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;초기 iteration에서는 chain이 initial state의 영향을 크게 받을 수 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 &lt;b&gt;초기 sample 일부를 burn-in 또는 warm-up으로 제외함&lt;/b&gt;.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;적절한 조건이 만족되면 $t$가 증가할수록 $S_t$의 distribution은 target distribution에 수렴함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;다만 burn-in 이후의 &lt;br /&gt;sample도 &lt;br /&gt;일반적으로 IID가 아님.&lt;/span&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;확인해야 할 주요 diagnostic:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Convergence&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Autocorrelation&lt;/li&gt;
&lt;li&gt;Effective sample size&lt;/li&gt;
&lt;li&gt;Chain mixing&lt;/li&gt;
&lt;li&gt;Divergence&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;대표적인 MCMC algorithm&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Metropolis algorithm&lt;/li&gt;
&lt;li&gt;Metropolis-Hastings algorithm&lt;/li&gt;
&lt;li&gt;Gibbs sampling&lt;/li&gt;
&lt;li&gt;Hamiltonian Monte Carlo, HMC&lt;/li&gt;
&lt;li&gt;No-U-Turn Sampler, NUTS&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MCMC를 가능케 해주는 PyMC의 기본 알고리즘인 NUTS는 HMC를 확장한 algorithm임:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;HMC는 gradient와 Hamiltonian dynamics를 이용하여 posterior space를 탐색하는 trajectory lenght가 hyper-parameter임.&lt;/li&gt;
&lt;li&gt;NUTS는 trajectory가 되돌아오기 시작하는 시점을 감지하여 trajectory length를 자동으로 결정해줘서 더 실용적임.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PyMC에서는 &lt;br /&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;continuous paramete&lt;/span&gt;r를 포함한 &lt;br /&gt;일반적인 &lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;Bayesian model&lt;/span&gt;&lt;/b&gt;에 &lt;br /&gt;주로 NUTS가 사용됨.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Monte Carlo와 MCMC의 차이&lt;/h2&gt;
&lt;table style=&quot;height: 206px;&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 21px;&quot;&gt;&lt;b&gt;구분&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; height: 21px;&quot;&gt;&lt;b&gt;Monte Carlo&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center; height: 21px;&quot;&gt;&lt;b&gt;MCMC&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 42px;&quot;&gt;
&lt;td style=&quot;height: 42px;&quot;&gt;Sampling&lt;/td&gt;
&lt;td style=&quot;height: 42px;&quot;&gt;Target distribution에서 &lt;br /&gt;직접 sampling&lt;/td&gt;
&lt;td style=&quot;height: 42px;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;Markov chain을 통해 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;간접 sampling&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 38px;&quot;&gt;
&lt;td style=&quot;height: 38px;&quot;&gt;Sample 관계&lt;/td&gt;
&lt;td style=&quot;height: 38px;&quot;&gt;일반적으로 &lt;br /&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;IID&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 38px;&quot;&gt;일반적으로 &lt;br /&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;autocorrelated&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;이전 sample 사용&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;사용하지 않음&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;다음 sample 생성에 사용&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;Index 의미&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;생성 순서만 표시&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Chain iteration을 표시&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;Index 순서&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;일반적으로 중요하지 않음&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;중요함&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;주요 사용 조건&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;Direct sampling이 가능함&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;u&gt;&lt;b&gt;Direct sampling이 어려움&lt;/b&gt;&lt;/u&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;추가 고려사항&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;Monte Carlo error&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;Burn-in, &lt;br /&gt;convergence, &lt;br /&gt;autocorrelation, &lt;br /&gt;ESS&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Monte Carlo는 random sample을 이용한 numerical approximation의 전체 범주.&lt;/li&gt;
&lt;li&gt;MCMC는 Markov chain을 이용하여 target distribution으로부터 correlated sample을 생성하는 Monte Carlo method.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;같이보면 좋은 자료들&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://gist.github.com/dsaint31x/ddade891d7ee5a5646d83e2745971569&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://gist.github.com/dsaint31x/ddade891d7ee5a5646d83e2745971569&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1785676235386&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;pymc_mcmc.ipynb&quot; data-og-description=&quot;pymc_mcmc.ipynb. GitHub Gist: instantly share code, notes, and snippets.&quot; data-og-host=&quot;gist.github.com&quot; data-og-source-url=&quot;https://gist.github.com/dsaint31x/ddade891d7ee5a5646d83e2745971569&quot; data-og-url=&quot;https://gist.github.com/dsaint31x/ddade891d7ee5a5646d83e2745971569&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bD4aJd/dJMb8U88q8m/4eEIMXEAymVFjTYKK2bD1K/img.png?width=1280&amp;amp;height=640&amp;amp;face=0_0_1280_640,https://scrap.kakaocdn.net/dn/jkKRm/dJMb8WMEpm8/wG2kVYstSyaQ1ZHrXDlsf1/img.png?width=1280&amp;amp;height=640&amp;amp;face=0_0_1280_640&quot;&gt;&lt;a href=&quot;https://gist.github.com/dsaint31x/ddade891d7ee5a5646d83e2745971569&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://gist.github.com/dsaint31x/ddade891d7ee5a5646d83e2745971569&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bD4aJd/dJMb8U88q8m/4eEIMXEAymVFjTYKK2bD1K/img.png?width=1280&amp;amp;height=640&amp;amp;face=0_0_1280_640,https://scrap.kakaocdn.net/dn/jkKRm/dJMb8WMEpm8/wG2kVYstSyaQ1ZHrXDlsf1/img.png?width=1280&amp;amp;height=640&amp;amp;face=0_0_1280_640');&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;pymc_mcmc.ipynb&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;pymc_mcmc.ipynb. GitHub Gist: instantly share code, notes, and snippets.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;gist.github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://liveyourit.tistory.com/147&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://liveyourit.tistory.com/147&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1785676288283&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;MCMC (Markov Chain Monte Carlo) 샘플링&quot; data-og-description=&quot;MCMC는 진짜... 해도해도 이해가 안가고 할수록 더 이해가 안가는 모델인 것 같다.... 원래 논문 실험을 할 때 샘플링을 할 일이 있어서 (결국 안쓰게 됐지만) 그때 MCMC를 정리해놨던게 있는데 여기&quot; data-og-host=&quot;liveyourit.tistory.com&quot; data-og-source-url=&quot;https://liveyourit.tistory.com/147&quot; data-og-url=&quot;https://liveyourit.tistory.com/147&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bT3ykh/dJMb9eT31x5/azzTYzUfV5e0NhibfBIqB1/img.png?width=690&amp;amp;height=528&amp;amp;face=0_0_690_528,https://scrap.kakaocdn.net/dn/0zcix/dJMb8TCoCTp/oxF1sOn9ZmHmcByb7IBuH0/img.png?width=690&amp;amp;height=528&amp;amp;face=0_0_690_528,https://scrap.kakaocdn.net/dn/ba4zLe/dJMb8WMEpnj/8vmXSNKuZ80KqPwjMwnMSK/img.jpg?width=675&amp;amp;height=670&amp;amp;face=0_0_675_670&quot;&gt;&lt;a href=&quot;https://liveyourit.tistory.com/147&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://liveyourit.tistory.com/147&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bT3ykh/dJMb9eT31x5/azzTYzUfV5e0NhibfBIqB1/img.png?width=690&amp;amp;height=528&amp;amp;face=0_0_690_528,https://scrap.kakaocdn.net/dn/0zcix/dJMb8TCoCTp/oxF1sOn9ZmHmcByb7IBuH0/img.png?width=690&amp;amp;height=528&amp;amp;face=0_0_690_528,https://scrap.kakaocdn.net/dn/ba4zLe/dJMb8WMEpnj/8vmXSNKuZ80KqPwjMwnMSK/img.jpg?width=675&amp;amp;height=670&amp;amp;face=0_0_675_670');&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;MCMC (Markov Chain Monte Carlo) 샘플링&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;MCMC는 진짜... 해도해도 이해가 안가고 할수록 더 이해가 안가는 모델인 것 같다.... 원래 논문 실험을 할 때 샘플링을 할 일이 있어서 (결국 안쓰게 됐지만) 그때 MCMC를 정리해놨던게 있는데 여기&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;liveyourit.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/ML</category>
      <category>Bayesian</category>
      <category>markov-chain</category>
      <category>monte-carlo</category>
      <author>dsaint31x</author>
      <guid isPermaLink="true">https://dsaint31.tistory.com/966</guid>
      <comments>https://dsaint31.tistory.com/966#entry966comment</comments>
      <pubDate>Sun, 2 Aug 2026 21:17:26 +0900</pubDate>
    </item>
    <item>
      <title>HalfNormal Distribution</title>
      <link>https://dsaint31.tistory.com/965</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;HalfNormal distribution(반정규분포)은&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;평균이 0인 Normal distribution에서 음수 값을 제거한 뒤,&lt;/li&gt;
&lt;li&gt;남은 확률밀도를 다시 정규화하여 만든 확률분포.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가능한 값은 항상 0 이상이며,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;standard deviation(표준편차)와 같이 음수가 될 수 없는 parameter(모수)를 표현하는 데 널리 사용됨.&lt;br /&gt;(PyMC 등의 MCMC 기반 Bayesian framework 에서 prior distribution으로 자주 사용됨.)&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;정규분포에서 HalfNormal 분포로&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;mean, $\mu=0$ 이고 standard deviation 이 $\sigma$인 normal distirbution 은 다음과 같이 표기됨:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;Z \sim \mathcal{N}(0,\sigma^2)&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Normal distribution(정규분포)는&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;0을 중심으로 좌우가 대칭이며,&lt;/li&gt;
&lt;li&gt;전체 면적은 1이다.&lt;/li&gt;
&lt;li&gt;따라서 양수 영역과 음수 영역의 면적은 각각 0.5를 차지.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;690&quot; data-origin-height=&quot;390&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NMt92/dJMcaaTDo1E/Kh3K6oKNPGuEBnSR8j95L0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NMt92/dJMcaaTDo1E/Kh3K6oKNPGuEBnSR8j95L0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NMt92/dJMcaaTDo1E/Kh3K6oKNPGuEBnSR8j95L0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNMt92%2FdJMcaaTDo1E%2FKh3K6oKNPGuEBnSR8j95L0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;650&quot; height=&quot;367&quot; data-origin-width=&quot;690&quot; data-origin-height=&quot;390&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;code:&lt;/p&gt;
&lt;pre class=&quot;lsl&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;import numpy as np
import matplotlib.pyplot as plt

sigma = 1

x = np.linspace(-4, 4, 1000)

pdf = (
    1/(sigma*np.sqrt(2*np.pi))
    * np.exp(-x**2/(2*sigma**2))
)

plt.figure(figsize=(7,4))
plt.plot(x, pdf, lw=2)
plt.fill_between(x, pdf, where=(x&amp;gt;=0), alpha=0.3)
plt.fill_between(x, pdf, where=(x&amp;lt;0), alpha=0.3)
plt.axvline(0, ls=&quot;--&quot;, color=&quot;k&quot;)
plt.xlabel(&quot;x&quot;)
plt.ylabel(&quot;Density&quot;)
plt.tight_layout()
plt.show()&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;HalfNormal distribution은 Normal distribution에서 절댓값을 취한 분포와 동일:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ X=|Z| $$&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;Z\sim\mathcal N(0,\sigma^2) \\&lt;br /&gt;X\sim\operatorname{HalfNormal}(\sigma)&lt;br /&gt;$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;음수 영역의 확률이 모두 양수 영역으로 접히므로,&lt;/li&gt;
&lt;li&gt;양수 영역의 확률밀도는 기존 Normal distribution 보다 두 배 커진다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;f_{\text{HalfNormal}}(x) = 2f_{\text{Normal}}(x), \qquad x\ge0&lt;br /&gt;$$&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;HalfNormal의 확률밀도함수 (PDF)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;HalfNormal distribution의 확률밀도함수는 다음과 같음:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;f(x) =&lt;br /&gt;\sqrt{\frac{2}{\pi}}&lt;br /&gt;\frac1{\sigma}&lt;br /&gt;\exp\left(&lt;br /&gt;-\frac{x^2}{2\sigma^2}&lt;br /&gt;\right),&lt;br /&gt;\qquad x\ge0&lt;br /&gt;\\&lt;br /&gt;\text{where, } \\&lt;br /&gt;f(x)=0,\qquad x&amp;lt;0&lt;br /&gt;$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;곡선 아래의 전체 면적은 1이며,&lt;/li&gt;
&lt;li&gt;확률밀도는 $x=0$에서 가장 크고 이후 계속 감소.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;690&quot; data-origin-height=&quot;390&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqk3sy/dJMcafgonAO/iUl3scxorter1eFqV4aH10/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqk3sy/dJMcafgonAO/iUl3scxorter1eFqV4aH10/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqk3sy/dJMcafgonAO/iUl3scxorter1eFqV4aH10/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbqk3sy%2FdJMcafgonAO%2FiUl3scxorter1eFqV4aH10%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;650&quot; height=&quot;367&quot; data-origin-width=&quot;690&quot; data-origin-height=&quot;390&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;pre class=&quot;python&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;import numpy as np
import matplotlib.pyplot as plt

sigma = 1

x = np.linspace(0,4,1000)

pdf = (
    np.sqrt(2/np.pi)/sigma
    * np.exp(-x**2/(2*sigma**2))
)

plt.figure(figsize=(7,4))
plt.plot(x,pdf,lw=2)
plt.fill_between(x,pdf,alpha=0.3)
plt.scatter([0],[pdf[0]],color=&quot;red&quot;)
plt.xlabel(&quot;x&quot;)
plt.ylabel(&quot;Density&quot;)
plt.tight_layout()
plt.show()&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;$\sigma$ 의 의미&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$\sigma$는 분포가 얼마나 넓게 퍼질지를 결정하는 scale parameter 임:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;작은 $\sigma$: 대부분의 값이 0 근처에 집중된다.&lt;/li&gt;
&lt;li&gt;큰 $\sigma$: 큰 값도 비교적 자주 허용된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 그림은 서로 다른 $\sigma$의 HalfNormal 의 예를 보여줌:&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;630&quot; data-origin-height=&quot;470&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/phGks/dJMcaaznyGB/cV0drOYUAz0RMrao3MRCnk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/phGks/dJMcaaznyGB/cV0drOYUAz0RMrao3MRCnk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/phGks/dJMcaaznyGB/cV0drOYUAz0RMrao3MRCnk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FphGks%2FdJMcaaznyGB%2FcV0drOYUAz0RMrao3MRCnk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;650&quot; height=&quot;485&quot; data-origin-width=&quot;630&quot; data-origin-height=&quot;470&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;pre class=&quot;python&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0,8,1000)

for sigma in [0.5,1,2]:
    pdf = (
        np.sqrt(2/np.pi)/sigma
        * np.exp(-x**2/(2*sigma**2))
    )
    plt.plot(x,pdf,label=f&quot;&amp;sigma;={sigma}&quot;)

plt.xlabel(&quot;x&quot;)
plt.ylabel(&quot;Density&quot;)
plt.legend()
plt.tight_layout()
plt.show()&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Bayesian 분석에서의 활용&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;HalfNormal distribution은 항상 양수만 가지므로 음수가 될 수 없는 parameter 의 prior(사전분포)로 자주 사용됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대표적인 예는 다음과 같다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;랜덤효과의 표준편차&lt;/li&gt;
&lt;li&gt;측정오차의 표준편차&lt;/li&gt;
&lt;li&gt;그룹 간 변동성&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어 PyMC에서는 다음과 같이 정의할 수 있다.&lt;/p&gt;
&lt;pre class=&quot;python&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;sigma_patient = pm.HalfNormal(
    &quot;sigma_patient&quot;,
    sigma=1.0
)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 코드에서 sigma_patient(환자 간 변동의 표준편차)는&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;반드시 0 이상이며,&lt;/li&gt;
&lt;li&gt;작은 값을 더 선호하지만&lt;/li&gt;
&lt;li&gt;데이터가 충분하면 더 큰 값도 허용한다는 사전의 믿음(?)을 의미 = prior.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;같이보면 좋은 자료&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;a href=&quot;https://distribution-explorer.github.io/continuous/halfnormal.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://distribution-explorer.github.io/continuous/halfnormal.html&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1784707540203&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Half-Normal distribution &amp;mdash; Probability Distribution Explorer  documentation&quot; data-og-description=&quot;Story The Half-Normal distribution is a Normal distribution truncated to only have nonzero probability density for values greater than or equal to the location of the peak.&quot; data-og-host=&quot;distribution-explorer.github.io&quot; data-og-source-url=&quot;https://distribution-explorer.github.io/continuous/halfnormal.html&quot; data-og-url=&quot;https://distribution-explorer.github.io/continuous/halfnormal.html&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/jNp0V/dJMb82eZ7Cs/CSoDUeK5xKhU1M8pEvyKJK/img.png?width=1834&amp;amp;height=430&amp;amp;face=0_0_1834_430&quot;&gt;&lt;a href=&quot;https://distribution-explorer.github.io/continuous/halfnormal.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://distribution-explorer.github.io/continuous/halfnormal.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/jNp0V/dJMb82eZ7Cs/CSoDUeK5xKhU1M8pEvyKJK/img.png?width=1834&amp;amp;height=430&amp;amp;face=0_0_1834_430');&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;Half-Normal distribution &amp;mdash; Probability Distribution Explorer documentation&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Story The Half-Normal distribution is a Normal distribution truncated to only have nonzero probability density for values greater than or equal to the location of the peak.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;distribution-explorer.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;&lt;a href=&quot;https://dsaint31.tistory.com/638&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2023.10.25 - [.../Math] - [Math] Normal Distribution (정규분포, Gaussian Distribution)&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1784706998996&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;[Math] Normal Distribution (정규분포, Gaussian Distribution)&quot; data-og-description=&quot;Normal DistirbutionGaussian Distribution, Laplace-Gaussian Distribution 라고도 불림. 특히, mean=0이고, std=1인 경우, Standard Normal Distribution이라고 불림.1. 정의Normal Distribution의 pdf (probability density function)는 다음과 &quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/638&quot; data-og-url=&quot;https://dsaint31.tistory.com/638&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/byUuhv/dJMb9eT2wAj/CWNBCjHZSMEthP1gNIVO0K/img.jpg?width=800&amp;amp;height=523&amp;amp;face=0_0_800_523,https://scrap.kakaocdn.net/dn/NYiya/dJMb9dHBgIU/u3A6clB1q8i0oOmC9fxbb1/img.jpg?width=800&amp;amp;height=523&amp;amp;face=0_0_800_523,https://scrap.kakaocdn.net/dn/JFhSd/dJMb9c9KT6V/if0aZdSjDujvJTWuHCyzO1/img.jpg?width=1134&amp;amp;height=742&amp;amp;face=0_0_1134_742&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/638&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/638&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/byUuhv/dJMb9eT2wAj/CWNBCjHZSMEthP1gNIVO0K/img.jpg?width=800&amp;amp;height=523&amp;amp;face=0_0_800_523,https://scrap.kakaocdn.net/dn/NYiya/dJMb9dHBgIU/u3A6clB1q8i0oOmC9fxbb1/img.jpg?width=800&amp;amp;height=523&amp;amp;face=0_0_800_523,https://scrap.kakaocdn.net/dn/JFhSd/dJMb9c9KT6V/if0aZdSjDujvJTWuHCyzO1/img.jpg?width=1134&amp;amp;height=742&amp;amp;face=0_0_1134_742');&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;[Math] Normal Distribution (정규분포, Gaussian Distribution)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Normal DistirbutionGaussian Distribution, Laplace-Gaussian Distribution 라고도 불림. 특히, mean=0이고, std=1인 경우, Standard Normal Distribution이라고 불림.1. 정의Normal Distribution의 pdf (probability density function)는 다음과&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/911&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2025.05.27 - [.../Math] - Bayes' Theorem (Update Your Beliefs with Evidence)&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1784707017887&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;Bayes' Theorem (Update Your Beliefs with Evidence)&quot; data-og-description=&quot;1. 정리$N$개의 event (사상,사건)인 $H_0, H_1, ... , H_{N-1}$ 들이sample space $S$의 partition(전부 모이면 $S$를 이룸)이면서,$P(H_i) &amp;gt;0$ 을 만족하고,Event $E$가 sample space $S$의 임의의 Event이며 $P(E)&amp;gt;0$이면 다음이 &quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/911&quot; data-og-url=&quot;https://dsaint31.tistory.com/911&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bLN1Gn/dJMb85v2caJ/463H8YuAkzfE0pQz4wM8MK/img.png?width=800&amp;amp;height=353&amp;amp;face=0_0_800_353,https://scrap.kakaocdn.net/dn/LRyp0/dJMb9aKR5Fc/JDCIEHEYku8nriNHpw7MjK/img.png?width=800&amp;amp;height=353&amp;amp;face=0_0_800_353,https://scrap.kakaocdn.net/dn/jCGoG/dJMb85v2caM/rus4WWfIavwqh4ylGyYjoK/img.png?width=1708&amp;amp;height=1260&amp;amp;face=0_0_1708_1260&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/911&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/911&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bLN1Gn/dJMb85v2caJ/463H8YuAkzfE0pQz4wM8MK/img.png?width=800&amp;amp;height=353&amp;amp;face=0_0_800_353,https://scrap.kakaocdn.net/dn/LRyp0/dJMb9aKR5Fc/JDCIEHEYku8nriNHpw7MjK/img.png?width=800&amp;amp;height=353&amp;amp;face=0_0_800_353,https://scrap.kakaocdn.net/dn/jCGoG/dJMb85v2caM/rus4WWfIavwqh4ylGyYjoK/img.png?width=1708&amp;amp;height=1260&amp;amp;face=0_0_1708_1260');&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;Bayes' Theorem (Update Your Beliefs with Evidence)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;1. 정리$N$개의 event (사상,사건)인 $H_0, H_1, ... , H_{N-1}$ 들이sample space $S$의 partition(전부 모이면 $S$를 이룸)이면서,$P(H_i) &amp;gt;0$ 을 만족하고,Event $E$가 sample space $S$의 임의의 Event이며 $P(E)&amp;gt;0$이면 다음이&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/707&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2024.04.18 - [.../Math] - [Math] Probability Distribution&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1784707399467&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;[Math] Probability Distribution&quot; data-og-description=&quot;Probability Distribution : Probability Distribution은 특정 random variable(확률 변수)이 취할 수 있는 각각의 값에 대한 확률을 나타내는 분포임.Probability Distribution Function (PDF)으로 기술되며,random variable이 어떤 &quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/707&quot; data-og-url=&quot;https://dsaint31.tistory.com/707&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/BQhoW/dJMb84YbS6B/DSY9qAHmi9XscN6t6YGil1/img.png?width=800&amp;amp;height=448&amp;amp;face=0_0_800_448,https://scrap.kakaocdn.net/dn/oDd6I/dJMb84YbS6C/OiF8fZ4snQX2xirE6mkEr0/img.png?width=800&amp;amp;height=448&amp;amp;face=0_0_800_448,https://scrap.kakaocdn.net/dn/LlQ4d/dJMb8QMpn4H/2MeGEGqiUFlBKwKAK2UhUK/img.png?width=1673&amp;amp;height=938&amp;amp;face=0_0_1673_938&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/707&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/707&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/BQhoW/dJMb84YbS6B/DSY9qAHmi9XscN6t6YGil1/img.png?width=800&amp;amp;height=448&amp;amp;face=0_0_800_448,https://scrap.kakaocdn.net/dn/oDd6I/dJMb84YbS6C/OiF8fZ4snQX2xirE6mkEr0/img.png?width=800&amp;amp;height=448&amp;amp;face=0_0_800_448,https://scrap.kakaocdn.net/dn/LlQ4d/dJMb8QMpn4H/2MeGEGqiUFlBKwKAK2UhUK/img.png?width=1673&amp;amp;height=938&amp;amp;face=0_0_1673_938');&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;[Math] Probability Distribution&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Probability Distribution : Probability Distribution은 특정 random variable(확률 변수)이 취할 수 있는 각각의 값에 대한 확률을 나타내는 분포임.Probability Distribution Function (PDF)으로 기술되며,random variable이 어떤&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>.../Math</category>
      <category>byaes</category>
      <category>distribution</category>
      <category>half-normal</category>
      <category>Probability</category>
      <author>dsaint31x</author>
      <guid isPermaLink="true">https://dsaint31.tistory.com/965</guid>
      <comments>https://dsaint31.tistory.com/965#entry965comment</comments>
      <pubDate>Wed, 22 Jul 2026 16:57:43 +0900</pubDate>
    </item>
    <item>
      <title>DropPath 와 Stochastic Depth</title>
      <link>https://dsaint31.tistory.com/964</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;DropPath와 Stochastic Depth는&lt;br /&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;학습 중 residual branch 또는 계산 경로 전체를 확률적으로 제거&lt;/b&gt;&lt;/span&gt;하여 &lt;br /&gt;&lt;u&gt;&lt;b&gt;특정 경로에 대한 의존성을 줄이는 regularization 기법&lt;/b&gt;&lt;/u&gt;임.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;172&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bU52SL/dJMcaf1xib3/aSm63KJGndaecsBPFV3Ua0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bU52SL/dJMcaf1xib3/aSm63KJGndaecsBPFV3Ua0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bU52SL/dJMcaf1xib3/aSm63KJGndaecsBPFV3Ua0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbU52SL%2FdJMcaf1xib3%2FaSm63KJGndaecsBPFV3Ua0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;139&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;172&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 timm, Hugging Face Transformers 및 여러 vision model 구현에서는&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;DropPath&lt;/b&gt;&lt;/span&gt;를 per-sample Stochastic Depth와 거의 같은 의미로 사용함.&lt;/li&gt;
&lt;li&gt;timm의 DropPath 구현도 코드 주석에서 이를 명시적으로 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;per-sample stochastic depth&lt;/b&gt;&lt;/span&gt;라고 설명&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/848&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2024.10.27 - [Programming/ML] - [ML] Regularization&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1783667680907&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;[ML] Regularization&quot; data-og-description=&quot;Regularization 이란?기계 학습과 딥러닝에서 Regularization은 모델이 overfitting(과적합)되지 않도록 도와주는 기법을 의미함.Overfitting(과적합)은 모델이 훈련 데이터에 너무 잘 맞아 새로운 데이터에 대&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/848&quot; data-og-url=&quot;https://dsaint31.tistory.com/848&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/c5Fu9u/dJMb9kmojMe/S68FtWcNRQkFCvJKEJkGy1/img.png?width=423&amp;amp;height=248&amp;amp;face=0_0_423_248,https://scrap.kakaocdn.net/dn/jJo7g/dJMb88fcDK3/FtjyrYtu2rwNwyQGklfeP1/img.png?width=423&amp;amp;height=248&amp;amp;face=0_0_423_248,https://scrap.kakaocdn.net/dn/dLqZ8d/dJMb9lliRll/zkRAoGYeKfugSsgKSzDnYK/img.png?width=423&amp;amp;height=248&amp;amp;face=0_0_423_248&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/848&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/848&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/c5Fu9u/dJMb9kmojMe/S68FtWcNRQkFCvJKEJkGy1/img.png?width=423&amp;amp;height=248&amp;amp;face=0_0_423_248,https://scrap.kakaocdn.net/dn/jJo7g/dJMb88fcDK3/FtjyrYtu2rwNwyQGklfeP1/img.png?width=423&amp;amp;height=248&amp;amp;face=0_0_423_248,https://scrap.kakaocdn.net/dn/dLqZ8d/dJMb9lliRll/zkRAoGYeKfugSsgKSzDnYK/img.png?width=423&amp;amp;height=248&amp;amp;face=0_0_423_248');&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;[ML] Regularization&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Regularization 이란?기계 학습과 딥러닝에서 Regularization은 모델이 overfitting(과적합)되지 않도록 도와주는 기법을 의미함.Overfitting(과적합)은 모델이 훈련 데이터에 너무 잘 맞아 새로운 데이터에 대&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 개념과 역사&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1.1 Stochastic Depth&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Stochastic Depth는&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Gao Huang, Yu Sun, Zhuang Liu, Daniel Sedra, Kilian Weinberger가&lt;/li&gt;
&lt;li&gt;2016년 발표한 &lt;i&gt;Deep Networks with Stochastic Depth&lt;/i&gt;에서 제안된 기술임.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://arxiv.org/abs/1603.09382&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://arxiv.org/abs/1603.09382&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1783668523486&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Deep Networks with Stochastic Depth&quot; data-og-description=&quot;Very deep convolutional networks with hundreds of layers have led to significant reductions in error on competitive benchmarks. Although the unmatched expressiveness of the many layers can be highly desirable at test time, training very deep networks comes&quot; data-og-host=&quot;arxiv.org&quot; data-og-source-url=&quot;https://arxiv.org/abs/1603.09382&quot; data-og-url=&quot;https://arxiv.org/abs/1603.09382v3&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dpOAs3/dJMb8SXJOWn/xAfuHGMCdj05pWnyQKDfA1/img.png?width=1200&amp;amp;height=700&amp;amp;face=0_0_1200_700,https://scrap.kakaocdn.net/dn/wQ6OW/dJMb9c9JE9o/rmRC2oYZAsw8AuAQr1A471/img.png?width=1000&amp;amp;height=1000&amp;amp;face=0_0_1000_1000&quot;&gt;&lt;a href=&quot;https://arxiv.org/abs/1603.09382&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://arxiv.org/abs/1603.09382&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dpOAs3/dJMb8SXJOWn/xAfuHGMCdj05pWnyQKDfA1/img.png?width=1200&amp;amp;height=700&amp;amp;face=0_0_1200_700,https://scrap.kakaocdn.net/dn/wQ6OW/dJMb9c9JE9o/rmRC2oYZAsw8AuAQr1A471/img.png?width=1000&amp;amp;height=1000&amp;amp;face=0_0_1000_1000');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Deep Networks with Stochastic Depth&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Very deep convolutional networks with hundreds of layers have led to significant reductions in error on competitive benchmarks. Although the unmatched expressiveness of the many layers can be highly desirable at test time, training very deep networks comes&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;arxiv.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원 논문의 핵심 아이디어는 다음과 같음.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;매우 깊은 ResNet을 구성함.&lt;/li&gt;
&lt;li&gt;학습 중에는 일부 residual block을 무작위로 제거하고 제거된 residual block은 skip connection을 통해 우회함.&lt;/li&gt;
&lt;li&gt;평가 시에는 전체 residual block을 사용함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 통해&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;학습 중에는 원래 network보다 얕은 subnetwork를 무작위로 사용하고,&lt;/li&gt;
&lt;li&gt;평가 시에는 원래의 깊은 network 전체를 사용하게 함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주의할 점은 원 논문의 경우 residual block의 활성화 여부를 &lt;b&gt;mini-batch 단위&lt;/b&gt;로 결정했음.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;따라서 하나의 mini-batch에 포함된 모든 sample은 동일한 residual block 구성을 사용함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한 residual block을 실행하기 전에 활성화 여부를 결정하도록 구현함&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;제거된 residual block의 forward와 backward 계산을 실제로 생략할 수 있도록 설계됨.&lt;/li&gt;
&lt;li&gt;이를 통한 훈련 중 계산량 이득이 있었고 훈련 속도가 빨라지는 장점도 누림.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;stochastic 의 뜻에 대한 자세한 자료: &lt;a href=&quot;https://dsaint31.tistory.com/672&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2024.02.23 - [.../Math] - [Math] Random이란?&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1783667724052&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;[Math] Random이란?&quot; data-og-description=&quot;Random: Random은주로 non-determinstic 인 &amp;quot;정해진 패턴 또는 순서없이&amp;quot; 결과가 발생하는 것을 개별 사건이나 값등을 의미하는 경우가 많다. Deterministc인 경우,function (or differential equation) 등을 이용한 모&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/672&quot; data-og-url=&quot;https://dsaint31.tistory.com/672&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/mMCWd/dJMb9kUeHFN/yKqDv7cZFszah5Etdlc3e0/img.png?width=609&amp;amp;height=200&amp;amp;face=0_0_609_200,https://scrap.kakaocdn.net/dn/pvkjc/dJMb9jOyGqU/yNYW8Xd3CCHc2Rhq43ajuK/img.png?width=609&amp;amp;height=200&amp;amp;face=0_0_609_200,https://scrap.kakaocdn.net/dn/1v9HQ/dJMb8TClLH8/qpX39txgGQBLQq4K7kTaJ0/img.png?width=609&amp;amp;height=200&amp;amp;face=0_0_609_200&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/672&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/672&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/mMCWd/dJMb9kUeHFN/yKqDv7cZFszah5Etdlc3e0/img.png?width=609&amp;amp;height=200&amp;amp;face=0_0_609_200,https://scrap.kakaocdn.net/dn/pvkjc/dJMb9jOyGqU/yNYW8Xd3CCHc2Rhq43ajuK/img.png?width=609&amp;amp;height=200&amp;amp;face=0_0_609_200,https://scrap.kakaocdn.net/dn/1v9HQ/dJMb8TClLH8/qpX39txgGQBLQq4K7kTaJ0/img.png?width=609&amp;amp;height=200&amp;amp;face=0_0_609_200');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[Math] Random이란?&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Random: Random은주로 non-determinstic 인 &quot;정해진 패턴 또는 순서없이&quot; 결과가 발생하는 것을 개별 사건이나 값등을 의미하는 경우가 많다. Deterministc인 경우,function (or differential equation) 등을 이용한 모&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;residual block에 대한 참고자료: &lt;a href=&quot;https://dsaint31.me/mkdocs_site/ML/ch14_cnn/resnet/#residual-block&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://dsaint31.me/mkdocs_site/ML/ch14_cnn/resnet/#residual-block&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1783667876193&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;BME&quot; data-og-description=&quot;computer vision image classification residual learning resnet shortcut connection skip connection ResNet: Deep Residual Learning for Image Recognition (2015) ref.: original paper, Deep Residual Learning for Image Recognition ILSVRC 2015 우승 모델이며&quot; data-og-host=&quot;dsaint31.me&quot; data-og-source-url=&quot;https://dsaint31.me/mkdocs_site/ML/ch14_cnn/resnet/#residual-block&quot; data-og-url=&quot;https://dsaint31.me/mkdocs_site/ML/ch14_cnn/resnet/#residual-block&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/b4F0kZ/dJMb8SXJOP7/CyUj1ibgKvbt8P5Y85Kku0/img.png?width=2145&amp;amp;height=931&amp;amp;face=0_0_2145_931,https://scrap.kakaocdn.net/dn/bajDEc/dJMb9lMneMG/YCW19Q7s1nZQk23CShnwRK/img.png?width=548&amp;amp;height=400&amp;amp;face=0_0_548_400,https://scrap.kakaocdn.net/dn/i14ux/dJMb8VNHE1l/Rnwib3kspSJSGvMBH8E2Uk/img.png?width=571&amp;amp;height=287&amp;amp;face=0_0_571_287&quot;&gt;&lt;a href=&quot;https://dsaint31.me/mkdocs_site/ML/ch14_cnn/resnet/#residual-block&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.me/mkdocs_site/ML/ch14_cnn/resnet/#residual-block&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/b4F0kZ/dJMb8SXJOP7/CyUj1ibgKvbt8P5Y85Kku0/img.png?width=2145&amp;amp;height=931&amp;amp;face=0_0_2145_931,https://scrap.kakaocdn.net/dn/bajDEc/dJMb9lMneMG/YCW19Q7s1nZQk23CShnwRK/img.png?width=548&amp;amp;height=400&amp;amp;face=0_0_548_400,https://scrap.kakaocdn.net/dn/i14ux/dJMb8VNHE1l/Rnwib3kspSJSGvMBH8E2Uk/img.png?width=571&amp;amp;height=287&amp;amp;face=0_0_571_287');&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;BME&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;computer vision image classification residual learning resnet shortcut connection skip connection ResNet: Deep Residual Learning for Image Recognition (2015) ref.: original paper, Deep Residual Learning for Image Recognition ILSVRC 2015 우승 모델이며&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.me&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1.2 Drop-path&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;drop-path&lt;/code&gt;라는 용어는&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;2016년 Gustav Larsson, Michael Maire, Gregory Shakhnarovich의&lt;/li&gt;
&lt;li&gt;&lt;i&gt;FractalNet: Ultra-Deep Neural Networks without Residuals&lt;/i&gt;에서 제시됨.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;FractalNet은 입력에서 출력까지 여러 개의 병렬적인 계산 경로를 가지는 network 였음.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Dropout이 개별 activation을 제거하여 neuron 사이의 co-adaptation을 줄이는 것처럼,&lt;/li&gt;
&lt;li&gt;drop-path는 &lt;b&gt;계산 경로 전체를 제거하여 path 사이의 co-adaptation을 줄이는 방법&lt;/b&gt; 으로 제안.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, FractalNet에서의 drop-path는 다음과 같은 방법임.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;개별 activation이 아니라 subpath 전체를 제거함.&lt;/li&gt;
&lt;li&gt;하나의 path가 제거되어도 다른 계산 경로가 남도록 함.&lt;/li&gt;
&lt;li&gt;여러 path가 서로 지나치게 의존하는 현상을 억제함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실 논문의 FractalNet은 residual 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;즉, drop-path가 반드시 ResNet의 identity skip connection을 요구하는 것은 아님.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;핵심 조건은 다음과 같음.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Drop-path를 사용하려면 &lt;br /&gt;하나의 path가 제거되더라도 &lt;br /&gt;입력에서 출력까지 다른 유효한 계산 경로가 남아 있어야 함.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1.3 현대적인 용어 사용&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;역사적으로 두 용어의 출발점은 다음과 같이 구분됨.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Stochastic Depth : ResNet의 residual block을 무작위로 우회하는 방법&lt;/li&gt;
&lt;li&gt;Drop-path : FractalNet의 계산 subpath를 무작위로 제거하는 방법&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러나 오늘날에는 두 용어가 거의 같은 의미로 사용되고 있음:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;code&gt;timm&lt;/code&gt;의 &lt;code&gt;DropPath&lt;/code&gt;는 코드에서 per-sample Stochastic Depth로 설명되어 있음.&lt;/li&gt;
&lt;li&gt;Hugging Face Transformers의 여러 vision model도 유사한 방식으로 구현함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 실무에서는 다음과 같이 구분하여 이해할 수 있음.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Stochastic Depth&lt;/b&gt;&lt;/span&gt; : regularization 기법의 일반적인 이름&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DropPath&lt;/code&gt; : 해당 기법을 구현한 module 또는 layer의 이름&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. DropPath의 효과&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2.1 Regularization 효과&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DropPath는 학습 중 residual branch 일부(학습패스)를 무작위로 제거함.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;따라서 뒤쪽 block이 특정 앞쪽 block의 출력에 지나치게 의존하는 현상을 줄일 수 있음.&lt;/li&gt;
&lt;li&gt;매 iteration마다 다른 residual path 조합이 사용되므로,&lt;/li&gt;
&lt;li&gt;하나의 고정된 깊은 network만 학습하는 것이 아니라&lt;/li&gt;
&lt;li&gt;여러 깊이와 여러 path 조합을 공유 parameter로 학습하는 효과가 발생함.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;넓은 의미에서&lt;br /&gt;여러 subnetworks를 함께 학습하는 &lt;br /&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;implicit ensemble&lt;/b&gt;&lt;/span&gt;과 유사하게 해석할 수 있음.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주요 목적은 다음과 같음.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;특정 residual branch에 대한 과도한 의존성 억제&lt;/li&gt;
&lt;li&gt;path 또는 block 사이의 co-adaptation 감소&lt;/li&gt;
&lt;li&gt;overfitting 완화&lt;/li&gt;
&lt;li&gt;generalization 성능 개선&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2.2 실제 계산량과 학습 시간&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원래 Stochastic Depth 논문 방식&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;residual block의 활성 여부를 먼저 결정함.&lt;/li&gt;
&lt;li&gt;이 확률에 따라 제거된 residual block은 forward와 backward 계산 자체를 수행하지 않았음.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 원 논문의 방식은 다음과 같은 효과를 가질 수 있었음.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;학습 중 기대 network depth 감소&lt;/li&gt;
&lt;li&gt;forward 계산량 감소&lt;/li&gt;
&lt;li&gt;backward 계산량 감소&lt;/li&gt;
&lt;li&gt;학습 시간 감소&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러나 현대적인 &lt;code&gt;timm&lt;/code&gt; 또는 Hugging Face 구현은 일반적으로 다음 순서로 동작함.&lt;/p&gt;
&lt;pre class=&quot;python&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;residual = block(x)
residual = drop_path(residual)
output = x + residual&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;이 경우&lt;/span&gt; &lt;code&gt;block(x)&lt;/code&gt;를 이미 계산한 뒤에 DropPath mask를 적용&lt;/b&gt;함.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;residual branch가 최종적으로 0이 되더라도 이미 residual block의 연산은 이미 수행된 상태임.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결과적으로 현대적인 DropPath layer는 regularization 효과는 제공하지만, 실제 FLOPs나 학습 시간을 거의 줄이지 못함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고로 per-sample 방식을 사용할 경우,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;같은 mini-batch 안에서도 유지되는 sample과 제거되는 sample이 섞여 있으므로,&lt;/li&gt;
&lt;li&gt;일반적인 dense GPU 연산에서 일부 sample의 branch 계산만 효율적으로 생략하기 어려움.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정리하면 다음과 같음.&lt;/p&gt;
&lt;table style=&quot;height: 64px;&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #781b33;&quot;&gt;&lt;b&gt;구현방식&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #781b33;&quot;&gt;&lt;b&gt;Residual branch 계산&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #781b33;&quot;&gt;&lt;b&gt;실제 계산량 감소&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;원 논문의 conditional block 실행&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;mask를 먼저 결정하고 필요한 block만 계산&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot; align=&quot;right&quot;&gt;가능&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;일반적인 현대 DropPath layer&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;branch를 계산한 뒤 mask 적용&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot; align=&quot;right&quot;&gt;거의 없음&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. DropPath의 동작 원리&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3.1 Residual block의 기본 구조&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반적인 residual block은 다음과 같이 표현:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ \textbf{y} = \textbf{x} + F(\textbf{x}) $$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$\textbf{x}$ : identity path를 통해 전달되는 입력&lt;/li&gt;
&lt;li&gt;$F(\textbf{x})$ : convolution, attention 또는 MLP 등의 변환을 수행하는 residual branch&lt;/li&gt;
&lt;li&gt;$\textbf{y}$ : identity path와 residual branch를 더한 출력&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Identity path는 입력 tensor를 그대로 전달하며&lt;br /&gt;Residual branch는 입력 tensor에 특정 변환을 수행함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DropPath는 일반적으로 다음 코드처럼&lt;br /&gt;identity path가 아니라 &lt;b&gt;residual branch의 출력&lt;/b&gt;에 적용됨.&lt;/p&gt;
&lt;pre class=&quot;python&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;residual = block(x)
residual = drop_path(residual)
output = x + residual&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수학적으로는 다음 구조에 해당함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ \textbf{y} = \textbf{x} + \operatorname{DropPath} \left( F(\textbf{x}) \right) $$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;DropPath에 의해 residual branch가 제거되더라도&lt;/li&gt;
&lt;li&gt;identity path를 통해 입력 $\textbf{x}$는 계속 전달됨.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3.2 원래 Stochastic Depth의 동작&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$\ell$번째 residual block의 survival probability를 $q_\ell$이라고 하면,&lt;br /&gt;Residual branch의 활성 여부를 결정하는 Bernoulli 변수 $b_\ell$은 다음과 같음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ b_\ell \sim \operatorname{Bernoulli}(q_\ell) $$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 $b_\ell$은 다음 두 값 중 하나를 가짐:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;b_\ell = \begin{cases} 1, &amp;amp; \text{residual branch를 사용하는 경우} \\ 0, &amp;amp; \text{residual branch를 제거하는 경우} \end{cases}&lt;br /&gt;$$&lt;/p&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://dsaint31.tistory.com/582&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2023.08.17 - [.../Math] - [Math] Bernoulli Distribution (베르누이 분포)&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1783667245299&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;[Math] Bernoulli Distribution (베르누이 분포)&quot; data-og-description=&quot;Bernoulli distribution (베르누이 분포)은 Probability Distribution에서 가장 단순한 분포 중 하나 임. 주로 binary classification task에서 많이 사용됨.1. Bernoulli Trial결과가 2가지 중 하나로만 나오는 trial(시행, 시&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/582&quot; data-og-url=&quot;https://dsaint31.tistory.com/582&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/14QwW/dJMb887kDQE/gXkDk4hf18fJDZRN2BKtJK/img.png?width=673&amp;amp;height=189&amp;amp;face=0_0_673_189,https://scrap.kakaocdn.net/dn/cXsfps/dJMb83SuUpY/lk2kkkMZjNPrZGVVdZFHjK/img.png?width=673&amp;amp;height=189&amp;amp;face=0_0_673_189&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/582&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/582&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/14QwW/dJMb887kDQE/gXkDk4hf18fJDZRN2BKtJK/img.png?width=673&amp;amp;height=189&amp;amp;face=0_0_673_189,https://scrap.kakaocdn.net/dn/cXsfps/dJMb83SuUpY/lk2kkkMZjNPrZGVVdZFHjK/img.png?width=673&amp;amp;height=189&amp;amp;face=0_0_673_189');&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;[Math] Bernoulli Distribution (베르누이 분포)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Bernoulli distribution (베르누이 분포)은 Probability Distribution에서 가장 단순한 분포 중 하나 임. 주로 binary classification task에서 많이 사용됨.1. Bernoulli Trial결과가 2가지 중 하나로만 나오는 trial(시행, 시&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.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;원래 Stochastic Depth 논문의 학습 과정은 다음과 같이 표현할 수 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ \textbf{y}_\ell = \textbf{x}_\ell + b_\ell F_\ell(\textbf{x}_\ell) $$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$b_\ell=1$ : residual branch를 사용함.&lt;/li&gt;
&lt;li&gt;$b_\ell=0$ : residual branch를 제거함.&lt;/li&gt;
&lt;li&gt;$q_\ell$ : residual branch가 유지될 확률임.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고로, 원 논문에서는 학습 시 유지된 residual branch를 $q_\ell$로 나누지 않았음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대신 평가 시에는 모든 residual branch를 활성화하고, 각 residual branch의 출력에 survival probability를 곱함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\textbf{y}_\ell^{\mathrm{eval}} = \textbf{x}_\ell^{\mathrm{eval}} + q_\ell F_\ell \left( \textbf{x}_\ell^{\mathrm{eval}} \right)&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이는 학습 중 residual branch 출력의 기댓값이 다음과 같기 때문임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\mathbb{E} \left[ b_\ell F_\ell(\textbf{x}) \right] = q_\ell F_\ell(\textbf{x})&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 원래 Stochastic Depth는 &lt;b&gt;평가 시 scaling을 적용하는 방식&lt;/b&gt;을 사용함.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3.3 현대적인 inverted DropPath&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 Torchvision, &lt;code&gt;timm&lt;/code&gt;, Hugging Face Transformers 등의 구현에서는 &lt;br /&gt;일반적으로 inverted Dropout과 같은 방식을 사용함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;학습 시 유지된 residual branch를 survival probability $q_\ell$로 나눔.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\textbf{y}_\ell = \textbf{x}_\ell + \frac{b_\ell}{q_\ell} F_\ell(\textbf{x}_\ell)$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Residual branch 출력의 기댓값은 다음과 같음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ \mathbb{E} \left[ \frac{b_\ell}{q_\ell} F_\ell(\textbf{x}) \right] = F_\ell(\textbf{x}) $$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 평가 시에는 별도의 scaling이 필요하지 않음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\textbf{y}_\ell^{\mathrm{eval}} = \textbf{x}_\ell^{\mathrm{eval}} + F_\ell \left( \textbf{x}_\ell^{\mathrm{eval}} \right) $$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Drop probability를 $p_\ell$이라고 하면 survival probability는 다음과 같음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ q_\ell = 1-p_\ell $$&lt;/p&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;table data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;방식&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot; align=&quot;right&quot;&gt;&lt;b&gt;학습 시 유지된 residual branch&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot; align=&quot;right&quot;&gt;&lt;b&gt;평가 시 residual branch&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;원래 Stochastic Depth&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;$F(\textbf{x})$&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;$qF(\textbf{x})$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;현대적인 inverted DropPath&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;$\dfrac{1}{q}F(\textbf{x})$&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;$F(\textbf{x})$&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 Torchvision과 &lt;code&gt;timm&lt;/code&gt;의 기본 구현은 inverted DropPath 방식에 해당함.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3.4 Mini-batch 단위와 sample 단위&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3.4.1 Mini-batch 단위 Stochastic Depth&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원래 Stochastic Depth 논문에서는 residual block의 활성화 여부를 mini-batch 단위로 결정함.&lt;/p&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 map이라고 가정한다면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ \textbf{x} \in \mathbb{R}^{B\times C\times H\times W} $$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$B$ : batch size&lt;/li&gt;
&lt;li&gt;$C$ : channel 수&lt;/li&gt;
&lt;li&gt;$H$ : feature map의 높이&lt;/li&gt;
&lt;li&gt;$W$ : feature map의 너비&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Mini-batch 전체에 동일한 결정을 적용하는 mask는 다음과 같은 shape을 가짐:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ \textbf{m} \in \mathbb{R}^{1\times1\times1\times1} $$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실질적으로는 하나의 Bernoulli scalar 값임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 해당 residual branch는 다음 두 상태 중 하나가 됨.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;mini-batch의 모든 sample에서 활성화됨.&lt;/li&gt;
&lt;li&gt;mini-batch의 모든 sample에서 제거됨.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3.4.2 Per-sample Stochastic Depth&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 &lt;code&gt;timm&lt;/code&gt;과 Hugging Face Transformers의 일반적인 DropPath 구현은 sample마다 독립적인 Bernoulli 값을 생성함.&lt;/p&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 map의 입력이 다음과 같다고 가정하면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ \textbf{x} \in \mathbb{R}^{B\times C\times H\times W} $$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DropPath mask의 shape은 다음과 같음:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ \textbf{m} \in \mathbb{R}^{B\times1\times1\times1} $$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Mini-batch의 $i$번째 sample에 적용되는 mask 값을 $m_i$라고 하면 다음과 같이 동작함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ \widetilde{\textbf{x}}_i = \frac{m_i}{q} \textbf{x}_i $$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$m_i$는 하나의 scalar 값이지만 broadcasting을 통해 $i$번째 sample의 모든 channel과 모든 spatial position에 적용됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 한 sample 안에서 일부 pixel이나 일부 channel만 제거되는 것이 아님.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$m_i=0$ : 해당 sample의 residual branch 출력 전체가 0이 됨.&lt;/li&gt;
&lt;li&gt;$m_i=1$ : 해당 sample의 residual branch 출력 전체가 (1/q)배로 유지됨.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/359&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2022.09.27 - [Programming/DIP] - [NumPy] Broadcasting&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1783667774758&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;[NumPy] Broadcasting&quot; data-og-description=&quot;0. Broadcasting이란?tensor와 scalar를 연산시킬 때&amp;nbsp;scalar를 상대 tensor와 같은 shape이면서 해당 scalar의 값을 가진 tensor로 변경시키고나서 이 scalar로부터 만들어진 tensor와 상대 tensor를 동작시키는 방식&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/359&quot; data-og-url=&quot;https://dsaint31.tistory.com/359&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/rH2bX/dJMb81G9oOv/1fXyiOITdSRkIroBkx6t1K/img.png?width=310&amp;amp;height=237&amp;amp;face=0_0_310_237,https://scrap.kakaocdn.net/dn/opOkg/dJMb9aKQRxs/gjirsN8QhmYquzNONz9fz0/img.png?width=310&amp;amp;height=237&amp;amp;face=0_0_310_237,https://scrap.kakaocdn.net/dn/cK3w29/dJMb82MO3n1/wrjBbRXMllPrms2VNDVTL0/img.png?width=310&amp;amp;height=237&amp;amp;face=0_0_310_237&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/359&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/359&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/rH2bX/dJMb81G9oOv/1fXyiOITdSRkIroBkx6t1K/img.png?width=310&amp;amp;height=237&amp;amp;face=0_0_310_237,https://scrap.kakaocdn.net/dn/opOkg/dJMb9aKQRxs/gjirsN8QhmYquzNONz9fz0/img.png?width=310&amp;amp;height=237&amp;amp;face=0_0_310_237,https://scrap.kakaocdn.net/dn/cK3w29/dJMb82MO3n1/wrjBbRXMllPrms2VNDVTL0/img.png?width=310&amp;amp;height=237&amp;amp;face=0_0_310_237');&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;[NumPy] Broadcasting&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;0. Broadcasting이란?tensor와 scalar를 연산시킬 때&amp;nbsp;scalar를 상대 tensor와 같은 shape이면서 해당 scalar의 값을 가진 tensor로 변경시키고나서 이 scalar로부터 만들어진 tensor와 상대 tensor를 동작시키는 방식&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3.5 CNN과 Transformer의 mask shape&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3.5.1 CNN feature map&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CNN feature map이 다음 shape을 가진다고 가정하면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ \textbf{x} \in \mathbb{R}^{B\times C\times H\times W} $$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반적인 per-sample DropPath mask는 다음 shape을 가짐.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\textbf{m} \in \mathbb{R}^{B\times1\times1\times1}$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 하나의 sample에서는 다음 요소에 동일한 mask 값이 적용됨.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모든 channel&lt;/li&gt;
&lt;li&gt;모든 높이 위치&lt;/li&gt;
&lt;li&gt;모든 너비 위치&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, sample 단위로 residual branch 출력 전체가 유지되거나 제거됨.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3.5.2 Transformer hidden state&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Transformer의 hidden state는 일반적으로 다음 shape을 가짐.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ \textbf{x} \in \mathbb{R}^{B\times N\times C} $$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$B$ : batch size&lt;/li&gt;
&lt;li&gt;$N$ :&amp;nbsp; token 수&lt;/li&gt;
&lt;li&gt;$C$ : embedding dimension&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DropPath mask의 shape은 다음과 같음:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\textbf{m} \in \mathbb{R}^{B\times1\times1}$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 하나의 sample에서는 모든 token과 모든 embedding dimension에 동일한 mask 값이 적용됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ \widetilde{\textbf{x}}_i = \frac{m_i}{q} \textbf{x}_i $$&lt;/p&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의 DropPath는 다음과 같은 동작이 아님.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;특정 token만 제거하는 방법이 아님.&lt;/li&gt;
&lt;li&gt;특정 embedding element만 제거하는 방법이 아님.&lt;/li&gt;
&lt;li&gt;attention probability 일부만 제거하는 방법이 아님.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;한 sample의 residual branch 출력 전체를 유지하거나 제거하는 방법임.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3.6 제거되는 residual branch의 범위&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DropPath를 단순히 &quot;block 전체를 제거한다&quot;고 이해하는 경우가 많지만,&lt;br /&gt;실제로는 &lt;b&gt;DropPath가 삽입된 residual branch의 출력&lt;/b&gt;이 제거되는 것임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음과 같은 residual block에서는 전체 변환 branch가 제거됨.&lt;/p&gt;
&lt;pre class=&quot;python&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;x = x + drop_path(block(x))&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러나 Transformer block은 다음과 같이 attention과 MLP에 각각 residual addition을 가짐.&lt;/p&gt;
&lt;pre class=&quot;python&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;x = x + drop_path(attention(norm1(x)))
x = x + drop_path(mlp(norm2(x)))&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 경우 DropPath는 다음 두 residual branch에 각각 적용될 수 있음.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;attention residual branch&lt;/li&gt;
&lt;li&gt;MLP residual branch&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 Transformer에서 DropPath가 항상 block 전체를 한 번에 제거하는 것은 아님.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보다 정확한 설명은 다음과 같음.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DropPath는 &lt;br /&gt;DropPath module이 삽입된 &lt;br /&gt;residual branch의 출력을 제거함.&lt;/p&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;실제 제거 범위는 model의 block 구현에 따라 달라질 수 있음.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3.7 Skip connection과 대체 경로&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DropPath를 적용하려면 &lt;br /&gt;하나의 path가 제거되더라도 &lt;br /&gt;입력에서 출력까지 다른 유효한 계산 경로가 남아 있어야 함.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;현대적인 residual network에서는 identity 또는 projection skip connection이 대체 경로를 제공함.&lt;/li&gt;
&lt;li&gt;실제로 FractalNet처럼 여러 병렬 path를 가진 구조에서 identity skip connection이 없어도 drop-path를 적용할 수 있었음.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 skip connection 자체가 필수 조건은 아니며, &lt;b&gt;제거된 path를 대신할 다른 계산 경로가 존재하는지&lt;/b&gt;가 핵심임.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. 깊이에 따른 DropPath probability&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4.1 Survival probability와 drop probability&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Residual branch가 유지될 확률을 survival probability라고 함.&lt;/li&gt;
&lt;li&gt;Residual branch가 제거될 확률을 drop probability라고 함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 둘의 관게는 다음과 같음:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ q_\ell = 1-p_\ell$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 survival probability가 감소하면 drop probability는 증가함.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4.2 Linear decay of survival probability with depth&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현대적인 vision model에서는 모든 block에 동일한 DropPath probability를 적용하지 않는 경우가 많음.&lt;/p&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;입력에 가까운 block : 낮은 drop probability&lt;/li&gt;
&lt;li&gt;출력에 가까운 block : 높은 drop probability&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원래 Stochastic Depth 논문에서는 survival probability가 network depth에 따라 선형적으로 감소하도록 설정함.&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;1280&quot; data-origin-height=&quot;468&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqseuD/dJMcaccHONZ/Hauehill5thmWN0OtattkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqseuD/dJMcaccHONZ/Hauehill5thmWN0OtattkK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqseuD/dJMcaccHONZ/Hauehill5thmWN0OtattkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqseuD%2FdJMcaccHONZ%2FHauehill5thmWN0OtattkK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;233&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;468&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;$\ell$번째 residual block의 survival probability는 다음과 같이 나타낼 수 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ q_\ell = 1 - \frac{\ell}{L} \left( 1-q_L \right) $$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$L$ : 전체 residual block 수&lt;/li&gt;
&lt;li&gt;$q_L$ : 마지막 residual block의 survival probability&lt;/li&gt;
&lt;li&gt;$\ell$ : residual block의 깊이&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Drop probability는 다음과 같음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ p_\ell = 1-q_\ell $$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 survival probability는 깊이에 따라 선형적으로 감소하고, drop probability는 깊이에 따라 선형적으로 증가함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 때문에 다음 두 표현이 모두 사용될 수 있음.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;linear decay of survival probability&lt;/li&gt;
&lt;li&gt;linear increase of drop probability&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4.3 앞쪽 block의 probability가 낮은 이유&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반적인 linear schedule에서는 입력에 가까운 block을 더 높은 확률로 유지함.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;앞쪽 block에서 생성된 representation은 뒤쪽의 여러 block이 공통적으로 사용함.&lt;/li&gt;
&lt;li&gt;따라서 앞쪽 block이 자주 제거되면 이후 block에 전달되는 기본 representation이 지나치게 불안정해질 수 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앞쪽 block은 일반적으로 다음과 같은 비교적 기초적인 특징을 형성함.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;edge&lt;/li&gt;
&lt;li&gt;texture&lt;/li&gt;
&lt;li&gt;local pattern&lt;/li&gt;
&lt;li&gt;기본적인 spatial structure&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;뒤쪽 block은 일반적으로 다음과 같은 보다 추상적인 특징을 형성함.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;object part&lt;/li&gt;
&lt;li&gt;semantic pattern&lt;/li&gt;
&lt;li&gt;class-specific representation&lt;/li&gt;
&lt;li&gt;task-specific feature&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이는 일반적인 deep vision model에서 적용되는 것으로 모든 model과 dataset에서 반드시 동일하게 성립하는 규칙은 아님.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4.4 Block별 probability 계산 예&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현대적인 구현에서는 전체 block 수가 $L$일 때 입력에 가까운 첫 block의 drop probability를 $0$, 마지막 block의 drop probability를 $p_{\max}$로 설정하는 경우가 많음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Block index를 $i=0,\ldots,L-1$이라고 하면 다음과 같이 계산할 수 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ p_i = \frac{i}{L-1} p_{\max} $$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어 block이 4개이고 최대 DropPath probability가 다음과 같다고 가정함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ L=4, \qquad p_{\max}=0.2 $$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 block의 drop probability는 다음과 같음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ \left[ p_0, p_1, p_2, p_3 \right] = \left[ 0, 0.0667, 0.1333, 0.2 \right]$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이에 대응하는 survival probability는 다음과 같음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\left[ q_0, q_1, q_2, q_3 \right] = \left[ 1, 0.9333, 0.8667, 0.8 \right] $$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 앞쪽 block일수록 높은 확률로 유지되고, 뒤쪽 block일수록 높은 확률로 제거됨.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;5. Framework별 구현&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5.1 Torchvision의 &lt;code&gt;StochasticDepth&lt;/code&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Torchvision은 &lt;code&gt;torchvision.ops.StochasticDepth&lt;/code&gt;를 제공함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 두 mode를 지원:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;code&gt;mode=&quot;row&quot;&lt;/code&gt; : batch의 sample별로 독립적인 mask를 적용함.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;mode=&quot;batch&quot;&lt;/code&gt; : 입력 tensor 전체에 하나의 mask를 적용함.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;5.1.1 &lt;code&gt;mode=&quot;row&quot;&lt;/code&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;mode=&quot;row&quot;&lt;/code&gt;는 per-sample Stochastic Depth에 해당함.&lt;/p&gt;
&lt;pre class=&quot;python&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;from torch import nn
from torchvision.ops import StochasticDepth


class ResidualBlock(nn.Module):
    def __init__(self, dim, drop_path_prob=0.1):
        super().__init__()

        self.block = nn.Sequential(
            nn.Linear(dim, dim),
            nn.GELU(),
            nn.Linear(dim, dim),
        )

        self.drop_path = StochasticDepth(
            p=drop_path_prob,
            mode=&quot;row&quot;,
        )

    def forward(self, x):
        residual = self.block(x)
        residual = self.drop_path(residual)

        return x + residual&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수학적으로는 다음 구조에 해당함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ \textbf{y} = \textbf{x} + \operatorname{DropPath} \left( F(\textbf{x}) \right)$$&lt;/p&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 hidden state라면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ \textbf{x} \in \mathbb{R}^{B\times N\times C} $$&lt;/p&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는 다음과 같은 broadcast 가능한 shape을 가짐.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ \textbf{m} \in \mathbb{R}^{B\times1\times1} $$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 batch의 sample마다 residual branch를 독립적으로 유지하거나 제거함.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;5.1.2 &lt;code&gt;mode=&quot;batch&quot;&lt;/code&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원래 Stochastic Depth 논문과 유사하게 mini-batch 전체에 같은 결정을 적용하려면 다음과 같이 설정함.&lt;/p&gt;
&lt;pre class=&quot;python&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;self.drop_path = StochasticDepth(
    p=drop_path_prob,
    mode=&quot;batch&quot;,
)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;입력이 다음과 같다면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\textbf{x} \in \mathbb{R}^{B\times N\times C}$$&lt;/p&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의 shape은 다음과 같음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ \textbf{m} \in \mathbb{R}^{1\times1\times1}$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실질적으로 하나의 Bernoulli 값이 batch 전체에 적용됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;m \sim \operatorname{Bernoulli}(q) \\&lt;br /&gt;\widetilde{\textbf{x}} = \frac{m}{q} \textbf{x}&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 batch의 모든 sample이 함께 유지되거나 함께 제거됨.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5.2 timm의 &lt;code&gt;DropPath&lt;/code&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;timm.layers.DropPath&lt;/code&gt;는 기본적으로 per-sample Bernoulli mask를 생성함.&lt;/p&gt;
&lt;pre class=&quot;python&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;from torch import nn
from timm.layers import DropPath


class ResidualBlock(nn.Module):
    def __init__(self, dim, drop_path_prob=0.1):
        super().__init__()

        self.block = nn.Sequential(
            nn.Linear(dim, dim),
            nn.GELU(),
            nn.Linear(dim, dim),
        )

        self.drop_path = DropPath(
            drop_prob=drop_path_prob,
        )

    def forward(self, x):
        return x + self.drop_path(self.block(x))&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;timm&lt;/code&gt;의 mask shape 생성 방식은 다음과 같음.&lt;/p&gt;
&lt;pre class=&quot;lisp&quot;&gt;&lt;code&gt;shape = (x.shape[0],) + (1,) * (x.ndim - 1)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫 번째 dimension인 &lt;code&gt;x.shape[0]&lt;/code&gt;은 batch size에 해당함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나머지 dimension은 모두 (1)로 설정하여 하나의 sample 전체에 같은 mask 값이 broadcast되도록 함.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;5.2.1 CNN feature map&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;입력이 다음과 같은 CNN feature map이라면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ \textbf{x} \in \mathbb{R}^{B\times C\times H\times W} $$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;mask의 shape은 다음과 같음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ \textbf{m} \in \mathbb{R}^{B\times1\times1\times1} $$&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;5.2.2 Transformer hidden state&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;입력이 다음과 같은 Transformer hidden state라면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ \textbf{x} \in \mathbb{R}^{B\times N\times C} $$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;mask의 shape은 다음과 같음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ \textbf{m} \in \mathbb{R}^{B\times1\times1} $$&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;5.2.3 &lt;code&gt;scale_by_keep&lt;/code&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;timm.layers.DropPath&lt;/code&gt;는 기본적으로 &lt;code&gt;scale_by_keep=True&lt;/code&gt;를 사용함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 유지된 residual branch는 keep probability인 $q$로 나누어짐.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ \widetilde{\textbf{x}}_i = \frac{m_i}{q} \textbf{x}_i $$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;이는 inverted Dropout과 &lt;br /&gt;같은 방식임.&lt;/span&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;다음 조건에서는 입력 tensor를 그대로 반환함.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;evaluation mode인 경우&lt;/li&gt;
&lt;li&gt;&lt;code&gt;drop_prob=0&lt;/code&gt;인 경우&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5.3 timm model의 &lt;code&gt;drop_path_rate&lt;/code&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;timm&lt;/code&gt; model은 생성 시 &lt;code&gt;drop_path_rate&lt;/code&gt;를 인자로 받는 경우가 많음.&lt;/p&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;import timm

model = timm.create_model(
    &quot;swin_base_patch4_window7_224&quot;,
    pretrained=True,
    num_classes=4,
    drop_rate=0.1,
    drop_path_rate=0.05,
)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반적으로 다음과 같이 해석함.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;code&gt;drop_rate&lt;/code&gt; - 일반 Dropout의 probability&lt;/li&gt;
&lt;li&gt;&lt;code&gt;drop_path_rate&lt;/code&gt; - 마지막 block에 적용되는 최대 DropPath probability&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;drop_path_rate=0.05&lt;/code&gt;는 모든 block에 (0.05)가 동일하게 적용된다는 의미가 아님.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반적으로 전체 block에 다음과 같이 선형적으로 배정됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ 0 \longrightarrow 0.05 $$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;입력에 가까운 block에는 $0$에 가까운 drop probability가 적용되고,&lt;/li&gt;
&lt;li&gt;출력에 가까운 마지막 block에는 최대값인 $0.05$에 가까운 drop probability가 적용됨.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다만 모든 &lt;code&gt;timm&lt;/code&gt; model이 동일한 인자와 동일한 배정 방식을 사용하는 것은 아님.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Model에 따라 다음 항목이 달라질 수 있음.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;code&gt;drop_rate&lt;/code&gt;의 적용 위치&lt;/li&gt;
&lt;li&gt;classifier Dropout 지원 여부&lt;/li&gt;
&lt;li&gt;attention Dropout 인자 이름&lt;/li&gt;
&lt;li&gt;projection Dropout 인자 이름&lt;/li&gt;
&lt;li&gt;&lt;code&gt;drop_path_rate&lt;/code&gt; 지원 여부&lt;/li&gt;
&lt;li&gt;block별 DropPath schedule&lt;/li&gt;
&lt;li&gt;stage별 또는 block별 probability 배정 방식&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 정확한 동작은 사용하는 model의 constructor와 source에서 확인해야 함.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5.4 Hugging Face Transformers의 DropPath&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Hugging Face Transformers의 여러 vision model은 model별 DropPath class를 내부적으로 구현함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대표적인 구현은 다음과 같은 형태임.&lt;/p&gt;
&lt;pre class=&quot;python&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;def forward(self, hidden_states):
    if self.drop_prob == 0.0 or not self.training:
        return hidden_states

    keep_prob = 1.0 - self.drop_prob

    shape = (
        hidden_states.shape[0],
    ) + (1,) * (hidden_states.ndim - 1)

    random_tensor = torch.rand(
        shape,
        dtype=hidden_states.dtype,
        device=hidden_states.device,
    )

    random_tensor = torch.floor(
        random_tensor + keep_prob
    )

    return hidden_states.div(keep_prob) * random_tensor&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 구현은 다음과 같은 특징을 가짐.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;첫 번째 dimension을 batch dimension으로 사용함.&lt;/li&gt;
&lt;li&gt;sample별 Bernoulli mask를 생성함.&lt;/li&gt;
&lt;li&gt;유지된 residual branch를 keep probability로 나눔.&lt;/li&gt;
&lt;li&gt;evaluation mode에서는 입력을 그대로 반환함.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;drop_prob=0&lt;/code&gt;이면 입력을 그대로 반환함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Swin, SwinV2, BEiT, ConvNeXt 등의 여러 vision model에서 &lt;code&gt;drop_path_rate&lt;/code&gt;가 configuration field로 사용됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단, 실제 지원 여부와 적용 위치는 model class마다 다를 수 있으므로 source를 확인해야 함.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;참고: Dropout과 DropPath 비교&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 표에서 DropPath는 현대적인 vision model에서 일반적으로 사용하는 per-sample Stochastic Depth를 의미함.&lt;/p&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://dsaint31.me/mkdocs_site/ML/ch09/dl_dropout/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://dsaint31.me/mkdocs_site/ML/ch09/dl_dropout/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1783667820236&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;BME&quot; data-og-description=&quot;alpha-dropout dropout mc-dropout pytorch regularization Dropout and MC Dropout Dropout은 학습 중 일부 neuron의 출력(=activation) 을 임시로 0으로 만들어 co-adaptation을 줄이고 generalization을 높이는 neural network regularization(&quot; data-og-host=&quot;dsaint31.me&quot; data-og-source-url=&quot;https://dsaint31.me/mkdocs_site/ML/ch09/dl_dropout/&quot; data-og-url=&quot;https://dsaint31.me/mkdocs_site/ML/ch09/dl_dropout/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/SYppr/dJMb8YXXF5P/43kXnn75eLK9oRjqTd2rik/img.png?width=1672&amp;amp;height=941&amp;amp;face=0_0_1672_941&quot;&gt;&lt;a href=&quot;https://dsaint31.me/mkdocs_site/ML/ch09/dl_dropout/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.me/mkdocs_site/ML/ch09/dl_dropout/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/SYppr/dJMb8YXXF5P/43kXnn75eLK9oRjqTd2rik/img.png?width=1672&amp;amp;height=941&amp;amp;face=0_0_1672_941');&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;BME&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;alpha-dropout dropout mc-dropout pytorch regularization Dropout and MC Dropout Dropout은 학습 중 일부 neuron의 출력(=activation) 을 임시로 0으로 만들어 co-adaptation을 줄이고 generalization을 높이는 neural network regularization(&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.me&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;table data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;구분&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;Dropout&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;DropPath&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;역사적 출발&lt;/td&gt;
&lt;td&gt;Hinton et al., 2012 및 Srivastava et al., 2014&lt;/td&gt;
&lt;td&gt;Stochastic Depth 및 FractalNet의 drop-path, 2016&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;제거 대상&lt;/td&gt;
&lt;td&gt;개별 activation&lt;/td&gt;
&lt;td&gt;residual branch 또는 계산 path&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;일반적인 mask 단위&lt;/td&gt;
&lt;td&gt;activation element별&lt;/td&gt;
&lt;td&gt;sample별 residual branch 전체&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CNN 입력&lt;/td&gt;
&lt;td&gt;$\textbf{x}\in\mathbb{R}^{B\times C\times H\times W}$&lt;/td&gt;
&lt;td&gt;$\textbf{x}\in\mathbb{R}^{B\times C\times H\times W}$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;일반적인 CNN mask&lt;/td&gt;
&lt;td&gt;$\textbf{m}\in\mathbb{R}^{B\times C\times H\times W}$&lt;/td&gt;
&lt;td&gt;$\textbf{m}\in\mathbb{R}^{B\times1\times1\times1}$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Transformer 입력&lt;/td&gt;
&lt;td&gt;$\textbf{x}\in\mathbb{R}^{B\times N\times C}$&lt;/td&gt;
&lt;td&gt;$\textbf{x}\in\mathbb{R}^{B\times N\times C}$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;일반적인 Transformer mask&lt;/td&gt;
&lt;td&gt;$\textbf{m}\in\mathbb{R}^{B\times N\times C}$&lt;/td&gt;
&lt;td&gt;$\textbf{m}\in\mathbb{R}^{B\times1\times1}$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;제거 범위&lt;/td&gt;
&lt;td&gt;activation 일부&lt;/td&gt;
&lt;td&gt;한 sample의 residual branch 출력 전체&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;대체 경로 필요성&lt;/td&gt;
&lt;td&gt;필요하지 않음&lt;/td&gt;
&lt;td&gt;제거 후에도 다른 유효한 path가 필요함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;학습 시 동작&lt;/td&gt;
&lt;td&gt;일부 activation을 0으로 설정&lt;/td&gt;
&lt;td&gt;residual branch 또는 path를 0으로 설정&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;평가 시 동작&lt;/td&gt;
&lt;td&gt;일반적으로 identity&lt;/td&gt;
&lt;td&gt;현대적인 구현에서는 identity&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;주요 목적&lt;/td&gt;
&lt;td&gt;feature co-adaptation 억제&lt;/td&gt;
&lt;td&gt;path 또는 branch 의존성 억제&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;대표 적용 위치&lt;/td&gt;
&lt;td&gt;embedding, MLP, attention probability, classifier&lt;/td&gt;
&lt;td&gt;ResNet, EfficientNet, ViT, Swin, ConvNeXt의 residual branch&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;일반 구현의 계산량 절감&lt;/td&gt;
&lt;td&gt;없음&lt;/td&gt;
&lt;td&gt;branch 계산 후 적용하면 거의 없음&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;Dropout과 DropPath의 &lt;br /&gt;가장 중요한 차이는 &lt;br /&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;제거하는 단위&lt;/b&gt;&lt;/span&gt;임.&lt;/span&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;Dropout은 일반적으로 tensor의 개별 activation을 독립적으로 제거함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\widetilde{x}_{i,j} = \frac{m_{i,j}}{q} x_{i,j} $$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반면 DropPath는 한 sample의 residual branch 출력 전체에 하나의 mask 값을 적용함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ \widetilde{\textbf{x}}_i = \frac{m_i}{q} \textbf{x}_i $$&lt;/p&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Dropout : 하나의 feature tensor 내부를 부분적으로 제거함.&lt;/li&gt;
&lt;li&gt;DropPath : 하나의 residual branch 또는 계산 path 전체를 제거함.&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Programming/ML</category>
      <category>DL</category>
      <category>drop-path</category>
      <category>dropout</category>
      <category>ML</category>
      <category>regularization</category>
      <category>stochastic-depth</category>
      <author>dsaint31x</author>
      <guid isPermaLink="true">https://dsaint31.tistory.com/964</guid>
      <comments>https://dsaint31.tistory.com/964#entry964comment</comments>
      <pubDate>Fri, 10 Jul 2026 16:03:59 +0900</pubDate>
    </item>
    <item>
      <title>Optimism-corrected Accuracy</title>
      <link>https://dsaint31.tistory.com/963</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1672&quot; data-origin-height=&quot;941&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bBqaoA/dJMcahkiqHk/0vok64BRL26kEaF5Pvc1e0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bBqaoA/dJMcahkiqHk/0vok64BRL26kEaF5Pvc1e0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bBqaoA/dJMcahkiqHk/0vok64BRL26kEaF5Pvc1e0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbBqaoA%2FdJMcahkiqHk%2F0vok64BRL26kEaF5Pvc1e0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;800&quot; height=&quot;450&quot; data-origin-width=&quot;1672&quot; data-origin-height=&quot;941&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Optimism-corrected accuracy&lt;/b&gt;는&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-is-only-node=&quot;&quot; data-is-last-node=&quot;&quot; data-end=&quot;287&quot; data-start=&quot;196&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;220&quot; data-start=&quot;196&quot; data-section-id=&quot;1f8l13v&quot;&gt;bootstrap sampling을 통해&lt;/li&gt;
&lt;li data-end=&quot;265&quot; data-start=&quot;221&quot; data-section-id=&quot;luc3l3&quot;&gt;resubstitution accuracy에 포함된 &lt;b&gt;낙관적 bias&lt;/b&gt;를&lt;/li&gt;
&lt;li data-is-last-node=&quot;&quot; data-end=&quot;287&quot; data-start=&quot;266&quot; data-section-id=&quot;1vvsau4&quot;&gt;추정하고 보정한 accuracy임.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 &lt;b&gt;optimism&lt;/b&gt;은 다음을 의미함.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;model이 &lt;br /&gt;학습에 사용한 data에서 평가될 때, &lt;br /&gt;실제 일반화 성능보다 성능이 좋게 나오는 정도&lt;/p&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;즉, training data에서 다시 평가한 성능은 보통 실제 성능보다 높게 나온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 &lt;b&gt;apparent performance&lt;/b&gt; 또는 &lt;b&gt;resubstitution performance&lt;/b&gt;라고 부른다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 외의 bootstrap에서 사용되는 metrics에 대해선 다음을 참고:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/959&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2026.04.14 - [Programming/ML] - Bootstrap Sampling 기반 Accuracy 추정 지표&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1779770751970&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;Bootstrap Sampling 기반 Accuracy 추정 지표&quot; data-og-description=&quot;0. 왜 Bootstrap Accuracy Estimation이 필요한가모델 성능 평가의 이상적인 방법은 독립적인 test set을 사용하는 것임.하지만 데이터가 부족한 경우, 충분한 test set을 확보하기 어려움.Bootstrap accuracy estimat&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/959&quot; data-og-url=&quot;https://dsaint31.tistory.com/959&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cgihkY/dJMb86n3WD1/hdEyzq4wyt6wAxZsKjwDs0/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/kltkg/dJMb85vVnI4/MARSoriWDWKNxemB8Vlru0/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/cMO6CJ/dJMb89yjYl5/n4LwkFH24khGCOAEQ3XCNk/img.png?width=1672&amp;amp;height=941&amp;amp;face=0_0_1672_941&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/959&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/959&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cgihkY/dJMb86n3WD1/hdEyzq4wyt6wAxZsKjwDs0/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/kltkg/dJMb85vVnI4/MARSoriWDWKNxemB8Vlru0/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/cMO6CJ/dJMb89yjYl5/n4LwkFH24khGCOAEQ3XCNk/img.png?width=1672&amp;amp;height=941&amp;amp;face=0_0_1672_941');&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;Bootstrap Sampling 기반 Accuracy 추정 지표&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;0. 왜 Bootstrap Accuracy Estimation이 필요한가모델 성능 평가의 이상적인 방법은 독립적인 test set을 사용하는 것임.하지만 데이터가 부족한 경우, 충분한 test set을 확보하기 어려움.Bootstrap accuracy estimat&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. Resubstitution Accuracy&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원본 dataset $D$로 model을 학습하고, 같은 dataset $D$에서 다시 accuracy를 평가한 값을 다음 심볼로 표시:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\hat{\text{Acc}}_{\text{resub}}&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이는 model이 이미 본 data에서 평가된 결과이므로, 일반적으로 낙관적으로 추정됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, $\hat{\text{Acc}}_{\text{resub}}$ 는 실제 unseen data에서의 accuracy보다 높게 나올 가능성이 크다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. Bootstrap을 이용한 Optimism 추정&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Optimism-corrected bootstrap에서는 $B$번의 bootstrap iteration을 수행한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 iteration $b$에서 원본 dataset $D$로부터 복원추출하여 bootstrap sample $D_b^*$를 만든다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후 다음 절차를 수행한다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;$D_b^*$로 model을 학습함.&lt;/li&gt;
&lt;li&gt;학습한 model을 $D_b^*$에서 평가함.&lt;/li&gt;
&lt;li&gt;같은 model을 원본 dataset $D$ 전체에서 평가함.&lt;/li&gt;
&lt;li&gt;두 accuracy의 차이를 optimism으로 계산함.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 bootstrap iteration에서의 optimism은 다음과 같음:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$o_b = \hat{\text{Acc}}_{b,\text{boot}} - \hat{\text{Acc}}_{b,\text{orig}}$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$\hat{\text{Acc}}_{b,\text{boot}}$
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;bootstrap sample $D_b^*$에서 평가한 accuracy&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;$\hat{\text{Acc}}_{b,\text{orig}}$
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;같은 bootstrap-trained model을 원본 dataset $D$ 전체에서 평가한 accuracy&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, $o_b$는 다음을 의미:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;bootstrap sample에서 학습한 model이,&lt;/li&gt;
&lt;li&gt;자신이 학습한 sample에서 평가될 때 얼마나 더 좋게 보이는가&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 평균 Optimism&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 bootstrap iteration에서 얻은 optimism을 다음과 같이 평균을 취함:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\frac{1}{B}\sum_{b=1}^{B} o_b$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 값은 resubstitution accuracy가 실제 성능보다 얼마나 낙관적으로 높게 추정되는지를 나타냄.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. Optimism-corrected Accuracy&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최종적으로 optimism-corrected accuracy는 다음과 같이 계산:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\hat{\text{Acc}}_{\text{opt-corr}} = \hat{\text{Acc}}_{\text{resub}} - \frac{1}{B}\sum_{b=1}^{B} o_b$$&lt;/p&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;$$\text{corrected accuracy} = \text{apparent accuracy} - \text{estimated optimism}$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이는 training data에서 너무 좋게 보이는 성능을 bootstrap으로 추정한 낙관성만큼 낮추는 방식임.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;5. 간단한 예&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원본 dataset으로 학습하고 같은 dataset에서 평가한 accuracy가 다음과 같다고 가정:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\hat{\text{Acc}}_{\text{resub}} = 0.90$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 bootstrap을 통해 평균 optimism이 다음과 같이 추정되었다고 가정:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\frac{1}{B}\sum_{b=1}^{B} o_b = 0.06$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 optimism-corrected accuracy는 다음과 같음:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\hat{\text{Acc}}_{\text{opt-corr}} = 0.90 - 0.06 = 0.84$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;apparent accuracy는 $0.90$이지만,&lt;/li&gt;
&lt;li&gt;optimistic bias를 보정하면 실제 성능은 대략 $0.84$에 가깝다고 해석.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;6. OOB 평가와의 차이&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Optimism-corrected bootstrap은 단순한 OOB(out-of-bag) 평가와 다르다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;OOB 방식은 각 bootstrap sample에 포함되지 않은 sample만 이용해 성능을 평가한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반면 optimism-corrected bootstrap은 각 bootstrap iteration에서 다음 차이를 계산한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ \hat{\text{Acc}}_{b,\text{boot}} - \hat{\text{Acc}}_{b,\text{orig}}$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;OOB 성능 자체를 최종 성능으로 쓰는 것이 아니라,&lt;/li&gt;
&lt;li&gt;&lt;b&gt;학습 data에서의 성능 과대평가 정도&lt;/b&gt;를 추정하는데 이용.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;7. Optimism-corrected Bootstrap 과 .632, .632+ Bootstrap과의 관계&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Bootstrap 기반 성능 추정에는 대표적으로 다음 방법들이 있음.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;optimism-corrected bootstrap&lt;/li&gt;
&lt;li&gt;.632 bootstrap&lt;/li&gt;
&lt;li&gt;.632+ bootstrap&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Accuracy처럼 &lt;b&gt;높을수록 좋은 성능지표&lt;/b&gt;를 기준으로 하면, 일반적으로 낙관적인 순서는 다음과 같음:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ \text{Resubstitution} &amp;gt; \text{Optimism-corrected} &amp;gt; .632 &amp;gt; .632+$$&lt;/p&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;table data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;방법&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;desc.&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Resubstitution accuracy&lt;/td&gt;
&lt;td&gt;가장 낙관적&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Optimism-corrected accuracy&lt;/td&gt;
&lt;td&gt;resubstitution보다는 덜 낙관적&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.632 bootstrap&lt;/td&gt;
&lt;td&gt;OOB 성능을 더 직접적으로 반영하므로 더 보수적&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.632+ bootstrap&lt;/td&gt;
&lt;td&gt;overfitting이 클수록 OOB 쪽 비중을 더 키우므로 가장 보수적&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이는 일반적인 경향임.&lt;/li&gt;
&lt;li&gt;실제 순서는 dataset size, model complexity, overfitting 정도, 성능지표에 따라 달라질 수 있다.&lt;/li&gt;
&lt;li&gt;error rate처럼 &lt;b&gt;낮을수록 좋은 지표&lt;/b&gt;를 사용할 경우에는 부등호 방향이 반대로 해석될 수 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;8. 사용할 때 주의할 점&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Optimism-corrected bootstrap을 올바르게 사용하려면,&lt;br /&gt;각 bootstrap iteration에서 &lt;b&gt;모델링 과정 전체&lt;/b&gt;를 다시 수행해야 함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단순히 이미 학습된 final model을 bootstrap sample에서 평가하는 방식은 적절하지 않다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 bootstrap iteration마다 다음 과정이 모두 다시 수행되어야 한다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;preprocessing&lt;/li&gt;
&lt;li&gt;scaling&lt;/li&gt;
&lt;li&gt;feature selection&lt;/li&gt;
&lt;li&gt;hyperparameter tuning&lt;/li&gt;
&lt;li&gt;threshold selection&lt;/li&gt;
&lt;li&gt;model fitting&lt;/li&gt;
&lt;li&gt;performance evaluation&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래야 전체 modeling pipeline이 가지는 optimism을 제대로 추정할 수 있다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;정리&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Optimism-corrected accuracy는 다음을 수행하는 bootstrap 기반 성능 추정 방법임.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;원본 dataset으로 model을 학습하고 원본 dataset에서 resubstitution accuracy를 계산함.&lt;/li&gt;
&lt;li&gt;여러 bootstrap sample을 생성함.&lt;/li&gt;
&lt;li&gt;각 bootstrap sample에서 model을 새로 학습함.&lt;/li&gt;
&lt;li&gt;같은 model을 bootstrap sample과 원본 dataset에서 각각 평가함.&lt;/li&gt;
&lt;li&gt;두 성능 차이를 optimism으로 계산함.&lt;/li&gt;
&lt;li&gt;평균 optimism을 resubstitution accuracy에서 뺌.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;핵심 식은 다음과 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\hat{\text{Acc}}&lt;i&gt;{\text{opt-corr}}= \hat{\text{Acc}}&lt;/i&gt;{\text{resub}} - \frac{1}{B}\sum_{b=1}^{B} o_b$$&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;optimism-corrected accuracy는&lt;br /&gt;학습 data에서 너무 좋게 보이는 accuracy를&lt;br /&gt;bootstrap으로 추정한 낙관성만큼 보정한 metric임.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;같이보면 좋은 자료들&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/732&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2024.06.05 - [.../Math] - [ML] Bootstrap Sampling&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1779770852015&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;[ML] Bootstrap Sampling&quot; data-og-description=&quot;Bootstrap Sampling을 이해하고 활용하기Bootstrap Sampling이란 무엇인가?Bootstrap Sampling은 통계학(Statistics)과 데이터 과학(Data Science)에서 널리 사용되는 강력한 방법론(Methodology) 중 하나임.이는 기존의 데&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/732&quot; data-og-url=&quot;https://dsaint31.tistory.com/732&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dSE9PU/dJMb8SXEdec/klTJSiRkpXAKa22mjkRdh0/img.png?width=784&amp;amp;height=554&amp;amp;face=0_0_784_554,https://scrap.kakaocdn.net/dn/RZH7j/dJMb8SpOmKH/HN4pKhPtGoJSKM50BAsorK/img.png?width=784&amp;amp;height=554&amp;amp;face=0_0_784_554,https://scrap.kakaocdn.net/dn/Cm4Iq/dJMb8Rj8prI/e3hX5mT82CnxjKPAa4HN21/img.png?width=784&amp;amp;height=554&amp;amp;face=0_0_784_554&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/732&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/732&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dSE9PU/dJMb8SXEdec/klTJSiRkpXAKa22mjkRdh0/img.png?width=784&amp;amp;height=554&amp;amp;face=0_0_784_554,https://scrap.kakaocdn.net/dn/RZH7j/dJMb8SpOmKH/HN4pKhPtGoJSKM50BAsorK/img.png?width=784&amp;amp;height=554&amp;amp;face=0_0_784_554,https://scrap.kakaocdn.net/dn/Cm4Iq/dJMb8Rj8prI/e3hX5mT82CnxjKPAa4HN21/img.png?width=784&amp;amp;height=554&amp;amp;face=0_0_784_554');&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;[ML] Bootstrap Sampling&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Bootstrap Sampling을 이해하고 활용하기Bootstrap Sampling이란 무엇인가?Bootstrap Sampling은 통계학(Statistics)과 데이터 과학(Data Science)에서 널리 사용되는 강력한 방법론(Methodology) 중 하나임.이는 기존의 데&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/746&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2024.06.20 - [.../Math] - [ML] Out of Bag: 유도하기.&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1779770864610&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;[ML] Out of Bag: 유도하기.&quot; data-og-description=&quot;Out of Bag (OOB)란?Out of Bag (OOB)는 Bagging (Bootstrap aggregating)과 같이 Bootstraping을 이용한 Ensemble Model에 등장하는 용어. Bootstrap Sampling을 사용할 경우, 특정 predictor를 훈련시킬 때 sample point는 여러번 사용&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/746&quot; data-og-url=&quot;https://dsaint31.tistory.com/746&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/grgAv/dJMb9lldr2l/xBk9MSbbR5n4ni5dWk8L4k/img.jpg?width=800&amp;amp;height=368&amp;amp;face=0_0_800_368,https://scrap.kakaocdn.net/dn/gQpsM/dJMb9efkjzy/yjrRc2b5YXGzWj24QJKA9K/img.jpg?width=800&amp;amp;height=368&amp;amp;face=0_0_800_368,https://scrap.kakaocdn.net/dn/bntwKZ/dJMb9c9EaMj/D14JdwAicgsJhdugAIYlUK/img.jpg?width=960&amp;amp;height=442&amp;amp;face=0_0_960_442&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/746&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/746&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/grgAv/dJMb9lldr2l/xBk9MSbbR5n4ni5dWk8L4k/img.jpg?width=800&amp;amp;height=368&amp;amp;face=0_0_800_368,https://scrap.kakaocdn.net/dn/gQpsM/dJMb9efkjzy/yjrRc2b5YXGzWj24QJKA9K/img.jpg?width=800&amp;amp;height=368&amp;amp;face=0_0_800_368,https://scrap.kakaocdn.net/dn/bntwKZ/dJMb9c9EaMj/D14JdwAicgsJhdugAIYlUK/img.jpg?width=960&amp;amp;height=442&amp;amp;face=0_0_960_442');&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;[ML] Out of Bag: 유도하기.&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Out of Bag (OOB)란?Out of Bag (OOB)는 Bagging (Bootstrap aggregating)과 같이 Bootstraping을 이용한 Ensemble Model에 등장하는 용어. Bootstrap Sampling을 사용할 경우, 특정 predictor를 훈련시킬 때 sample point는 여러번 사용&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/ML</category>
      <category>accuracy</category>
      <category>Bootstrap</category>
      <category>Metric</category>
      <category>optimism-corrected accuracy</category>
      <author>dsaint31x</author>
      <guid isPermaLink="true">https://dsaint31.tistory.com/963</guid>
      <comments>https://dsaint31.tistory.com/963#entry963comment</comments>
      <pubDate>Tue, 26 May 2026 13:54:07 +0900</pubDate>
    </item>
    <item>
      <title>Balanced Accuracy (균형 정확도)</title>
      <link>https://dsaint31.tistory.com/962</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1672&quot; data-origin-height=&quot;941&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/czQF9C/dJMcagFGbst/kfoo9qn8V33LZBijovb390/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/czQF9C/dJMcagFGbst/kfoo9qn8V33LZBijovb390/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/czQF9C/dJMcagFGbst/kfoo9qn8V33LZBijovb390/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FczQF9C%2FdJMcagFGbst%2Fkfoo9qn8V33LZBijovb390%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;338&quot; data-origin-width=&quot;1672&quot; data-origin-height=&quot;941&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Balanced Accuracy(균형 정확도)&lt;/b&gt; 는&lt;br /&gt;&lt;b&gt;class imbalance(클래스 불균형)&lt;/b&gt; 가 있는 &lt;br /&gt;classification(분류) 문제에서 사용하는&lt;br /&gt;evaluation metric(평가지표)임.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Ordinary Accuracy&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반적인 &lt;b&gt;Accuracy(정확도)&lt;/b&gt; 는 전체 sample 중 맞춘 비율임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\text{Accuracy} = \frac{\text{맞춘 sample 수}}{\text{전체 sample 수}}$$&lt;/p&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;특정 class의 sample 수가 매우 많으면,&lt;/li&gt;
&lt;li&gt;model(모델)이 majority class(다수 클래스)만 잘 맞춰도&lt;/li&gt;
&lt;li&gt;accuracy가 높게 나올 수 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Balanced Accuray&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앞서의 class imbalance 에서의 일반 accuracy가 가지는 문제점을 극복하기 위해&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;각 class별 Recall(재현율)&lt;/b&gt; 을 따로 계산한 뒤 평균&lt;/span&gt;낸 것이 &lt;b&gt;Balanced Accuracy(균형 정확도)&lt;/b&gt; 임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\text{Balanced Accuracy} = \frac{1}{K} \sum_{k=1}^{K} \text{Recall}_k$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;여기서 $K$는 class 개수임.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, Balanced Accuracy(균형 정확도)는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;sample 수가 많은 class가 전체 성능을 과도하게 지배하지 못하도록&lt;/u&gt;,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;각 class의 Recall(재현율)을 같은 비중으로 반영&lt;/b&gt;&lt;/span&gt;한 metric(평가지표)임.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4-class classification(4개 클래스 분류)의 예&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음과 같이 4개의 class가 있다고 하자.&lt;/p&gt;
&lt;table data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;실제 class&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;&lt;b&gt;sample 수&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;&lt;b&gt;맞춘 개수&lt;/b&gt;&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;&lt;b&gt;Recall(재현율)&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;100&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;90&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;(90/100 = 0.90)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;50&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;30&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;(30/50 = 0.60)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;20&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;10&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;(10/20 = 0.50)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;10&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;2&lt;/td&gt;
&lt;td align=&quot;right&quot;&gt;(2/10 = 0.20)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때 Balanced Accuracy(균형 정확도)는 다음과 같음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\text{Balanced Accuracy} = \frac{0.90+0.60+0.50+0.20}{4} = 0.55$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, balanced accuracy는 &lt;b&gt;55%&lt;/b&gt; 임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반면 일반 accuracy는 다음과 같음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\text{Accuracy} = \frac{90+30+10+2}{100+50+20+10} = \frac{132}{180} \approx 0.733$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 일반 accuracy는 약 &lt;b&gt;73.3%&lt;/b&gt;임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 예에서 accuracy는 73.3%로 비교적 높아 보임.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;하지만 class D의 recall은 $0.20$ 에 불과함.&lt;/li&gt;
&lt;li&gt;즉, minority class(소수 클래스)인 D를 거의 맞추지 못하고 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Balanced Accuracy(균형 정확도)는&lt;br /&gt;각 class의 recall을 동일한 비중으로 평균내기 때문에,&lt;br /&gt;이런 문제를 더 잘 드러냄.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;참고: Binary Classification&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Binary Classification(이진분류)에서는 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;negative class(음성클래스) 에 대한 Recall&lt;/b&gt;&lt;/span&gt;은 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Specificity&lt;/b&gt;&lt;/span&gt; (특이도)라고도 불림.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;때문에 다음과 같이 기재된 문헌도 많음:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\text{Balanced Accurayc} = \frac{\text{Sensitivity} + \text{Specificity}}{2} = \frac{\text{TPR}+\text{TNR}}{2}$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* $\text{TPR}=\frac{\text{TP}}{\text{TP}+\text{FN}}$ : True Positive Rate(참양성률) = Recall = Sensitivity&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* $\text{TNR}=\frac{\text{TN}}{\text{TN}+\text{FP}}$ : True Negative Rate(참음성률) = Specificity&lt;/p&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;ROC Curve에서 사용되는 &lt;b&gt;Fallout&lt;/b&gt;(위양성률) 은 1-Specificity 으로 False Positive Rate라고도 불림.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.me/mkdocs_site/ML/ch02/ml_cls_metrics/?h=roc#receiver-operating-characteristics-roc-and-auc&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://dsaint31.me/mkdocs_site/ML/ch02/ml_cls_metrics/?h=roc#receiver-operating-characteristics-roc-and-auc&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1779747425453&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;BME&quot; data-og-description=&quot;AUC F-score F2 PR ROC accuracy confusion matrix mAP macro micro precision recall sensitivity weighted Performance Measures for Classifiers Confusion matrix Confusion matrix(오차행렬, 혼동행렬)은 row는 label의 ideal class 를 나타내며, column&quot; data-og-host=&quot;dsaint31.me&quot; data-og-source-url=&quot;https://dsaint31.me/mkdocs_site/ML/ch02/ml_cls_metrics/?h=roc#receiver-operating-characteristics-roc-and-auc&quot; data-og-url=&quot;https://dsaint31.me/mkdocs_site/ML/ch02/ml_cls_metrics/?h=roc#receiver-operating-characteristics-roc-and-auc&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/k4U5v/dJMb8Rj8l2h/mYT3J6TCLPkynueXNTqL7k/img.png?width=1373&amp;amp;height=682&amp;amp;face=0_0_1373_682,https://scrap.kakaocdn.net/dn/b8DC56/dJMb9kT9dKn/8SFS8VQoSqkKCm5f4fzxNk/img.png?width=700&amp;amp;height=450&amp;amp;face=0_0_700_450,https://scrap.kakaocdn.net/dn/bDW1xB/dJMb9eTVPml/cDDftlCwzNIkyBVbYwpr00/img.png?width=702&amp;amp;height=312&amp;amp;face=0_0_702_312&quot;&gt;&lt;a href=&quot;https://dsaint31.me/mkdocs_site/ML/ch02/ml_cls_metrics/?h=roc#receiver-operating-characteristics-roc-and-auc&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.me/mkdocs_site/ML/ch02/ml_cls_metrics/?h=roc#receiver-operating-characteristics-roc-and-auc&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/k4U5v/dJMb8Rj8l2h/mYT3J6TCLPkynueXNTqL7k/img.png?width=1373&amp;amp;height=682&amp;amp;face=0_0_1373_682,https://scrap.kakaocdn.net/dn/b8DC56/dJMb9kT9dKn/8SFS8VQoSqkKCm5f4fzxNk/img.png?width=700&amp;amp;height=450&amp;amp;face=0_0_700_450,https://scrap.kakaocdn.net/dn/bDW1xB/dJMb9eTVPml/cDDftlCwzNIkyBVbYwpr00/img.png?width=702&amp;amp;height=312&amp;amp;face=0_0_702_312');&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;BME&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;AUC F-score F2 PR ROC accuracy confusion matrix mAP macro micro precision recall sensitivity weighted Performance Measures for Classifiers Confusion matrix Confusion matrix(오차행렬, 혼동행렬)은 row는 label의 ideal class 를 나타내며, column&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.me&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;요약&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Balanced Accuracy(균형 정확도)는&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;각 class별 Recall(재현율)을&lt;/li&gt;
&lt;li&gt;동일한 비중으로 평균낸 metric(지표)이며,&lt;/li&gt;
&lt;li&gt;class imbalance(클래스 불균형)가 있는 경우&lt;/li&gt;
&lt;li&gt;일반 Accuracy(정확도)보다 더 적절한 평가 지표가 될 수 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;같이 보면 좋은 자료&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://ds31x.tistory.com/307&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://ds31x.tistory.com/307&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1779747791044&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;[ML] Classification 과 관련 metrics 에 대한 소개.&quot; data-og-description=&quot;이 문서는 AI, ML, 그리고 DL의 정의와 이들 간의 차이점을 설명하며,특히 ML의 supervised learning에서 가장 많이 다루는 task인 classification의 종류와 관련 metrics를 설명함.Classifier (분류기):정의: 주어진 &quot; data-og-host=&quot;ds31x.tistory.com&quot; data-og-source-url=&quot;https://ds31x.tistory.com/307&quot; data-og-url=&quot;https://ds31x.tistory.com/307&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/KLuox/dJMb83kzih0/H1dlbjKokA6U7jtzRbksmk/img.png?width=800&amp;amp;height=254&amp;amp;face=0_0_800_254,https://scrap.kakaocdn.net/dn/i77Jk/dJMb9efkgxG/qG4FvOwYCroftQpD7uUVh1/img.png?width=800&amp;amp;height=254&amp;amp;face=0_0_800_254&quot;&gt;&lt;a href=&quot;https://ds31x.tistory.com/307&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://ds31x.tistory.com/307&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/KLuox/dJMb83kzih0/H1dlbjKokA6U7jtzRbksmk/img.png?width=800&amp;amp;height=254&amp;amp;face=0_0_800_254,https://scrap.kakaocdn.net/dn/i77Jk/dJMb9efkgxG/qG4FvOwYCroftQpD7uUVh1/img.png?width=800&amp;amp;height=254&amp;amp;face=0_0_800_254');&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;[ML] Classification 과 관련 metrics 에 대한 소개.&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;이 문서는 AI, ML, 그리고 DL의 정의와 이들 간의 차이점을 설명하며,특히 ML의 supervised learning에서 가장 많이 다루는 task인 classification의 종류와 관련 metrics를 설명함.Classifier (분류기):정의: 주어진&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;ds31x.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.me/mkdocs_site/ML/ch02/ml_cls_metrics/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://dsaint31.me/mkdocs_site/ML/ch02/ml_cls_metrics/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1779747801223&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;BME&quot; data-og-description=&quot;AUC F-score F2 PR ROC accuracy confusion matrix mAP macro micro precision recall sensitivity weighted Performance Measures for Classifiers Confusion matrix Confusion matrix(오차행렬, 혼동행렬)은 row는 label의 ideal class 를 나타내며, column&quot; data-og-host=&quot;dsaint31.me&quot; data-og-source-url=&quot;https://dsaint31.me/mkdocs_site/ML/ch02/ml_cls_metrics/&quot; data-og-url=&quot;https://dsaint31.me/mkdocs_site/ML/ch02/ml_cls_metrics/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/fgW7O/dJMb9kT9dLQ/hxLk4S7KUKsNtVBIU2skok/img.png?width=1373&amp;amp;height=682&amp;amp;face=0_0_1373_682,https://scrap.kakaocdn.net/dn/bm2Vsp/dJMb9b3YixZ/kHqbk7vJjXzhbFgDQeXh8K/img.png?width=700&amp;amp;height=450&amp;amp;face=0_0_700_450,https://scrap.kakaocdn.net/dn/pcULf/dJMb9c9D7Rq/Ag1uZbINGrQH1bIw6dncnK/img.png?width=702&amp;amp;height=312&amp;amp;face=0_0_702_312&quot;&gt;&lt;a href=&quot;https://dsaint31.me/mkdocs_site/ML/ch02/ml_cls_metrics/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.me/mkdocs_site/ML/ch02/ml_cls_metrics/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/fgW7O/dJMb9kT9dLQ/hxLk4S7KUKsNtVBIU2skok/img.png?width=1373&amp;amp;height=682&amp;amp;face=0_0_1373_682,https://scrap.kakaocdn.net/dn/bm2Vsp/dJMb9b3YixZ/kHqbk7vJjXzhbFgDQeXh8K/img.png?width=700&amp;amp;height=450&amp;amp;face=0_0_700_450,https://scrap.kakaocdn.net/dn/pcULf/dJMb9c9D7Rq/Ag1uZbINGrQH1bIw6dncnK/img.png?width=702&amp;amp;height=312&amp;amp;face=0_0_702_312');&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;BME&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;AUC F-score F2 PR ROC accuracy confusion matrix mAP macro micro precision recall sensitivity weighted Performance Measures for Classifiers Confusion matrix Confusion matrix(오차행렬, 혼동행렬)은 row는 label의 ideal class 를 나타내며, column&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.me&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/ML</category>
      <category>accuracy</category>
      <category>Balanced Accuracy</category>
      <category>class imbalance</category>
      <category>classification</category>
      <category>Metric</category>
      <author>dsaint31x</author>
      <guid isPermaLink="true">https://dsaint31.tistory.com/962</guid>
      <comments>https://dsaint31.tistory.com/962#entry962comment</comments>
      <pubDate>Tue, 26 May 2026 07:26:04 +0900</pubDate>
    </item>
    <item>
      <title>[ML] BFGS, L-BFGS, L-BFGS-B : Quasi-Newton method</title>
      <link>https://dsaint31.tistory.com/961</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xVSRm/dJMcahEb3gI/iGVK4nbNFGhgFnwdk38hb1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xVSRm/dJMcahEb3gI/iGVK4nbNFGhgFnwdk38hb1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xVSRm/dJMcahEb3gI/iGVK4nbNFGhgFnwdk38hb1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxVSRm%2FdJMcahEb3gI%2FiGVK4nbNFGhgFnwdk38hb1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;335&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;[BFGS]&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;BFGS(Broyden-Fletcher-Goldfarb-Shanno algorithm)는 대표적인 &lt;b&gt;Quasi-Newton method(준-뉴턴 방법)&lt;/b&gt; 중 하나임.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;고차원 문제에서는 L-BFGS가 더 많이 사용됨&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;L-BFGS 는 BFGS가 전체 matrix를 메모리에 적재하는 것을 개선한 버전으로 주로 많이 이용됨(&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;L&lt;/b&gt;&lt;/span&gt;= Limited-meory)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;BFGS는 &lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1970년에 4명의 연구자 (Broyden-Fletcher-Goldfarb-Shanno 가 &lt;br /&gt;독립적으로 서로 다른 방식의 접근을 통해 &lt;br /&gt;동일한 업데이트식을 도출해 낸 걸로 유명한 알고리즘.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;이들 4명의 연구자들의 이름을 따서 BFGS 가 됨.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;당시 널리 사용되던 DFP(Davidon-Fletcher-Powell) 방법의 단점을 보완하기 위해 개발됨.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;현재는 unconstrained optimization 문제에서 가장 효율적이고 널리 쓰이는 표준 알고리즘임.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;https://math.unm.edu/~vageli/courses/Ma576/Broyden2.pdf&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;C. G. Broyden: &quot;The convergence of a class of double rank minimization algorithms&quot;, Journal of the Institute of Mathematics and Its Applications.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://academic.oup.com/comjnl/article-abstract/13/3/317/345520&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;R.&amp;nbsp;Fletcher:&amp;nbsp;&quot;A&amp;nbsp;new&amp;nbsp;approach&amp;nbsp;to&amp;nbsp;variable&amp;nbsp;metric&amp;nbsp;algorithms&quot;,&amp;nbsp;Computer&amp;nbsp;Journal.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://pubs.ams.org/journals/mcom/1970-24-109/S0025-5718-1970-0258249-6/S0025-5718-1970-0258249-6.pdf&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;D. F. Goldfarb: &quot;A family of variable metric methods derived by variational means&quot;, Mathematics of Computation.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.semanticscholar.org/paper/Conditioning-of-Quasi-Newton-Methods-for-Function-Shanno/e9837699264e42aec8e3aa700253ab4f1a44c248&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;D. F. Shanno: &quot;Conditioning of quasi Newton methods for function minimization&quot;, Mathematics of Computation.&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Optimization problem에서&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;목적 함수(objective function) $L(\boldsymbol{\omega})$를 최소화하려면,&lt;/li&gt;
&lt;li&gt;일반적으로 다음과 같은 optimization 문제를 풀게 됨.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\underset{\boldsymbol{\omega}}{\min} L(\boldsymbol{\omega})$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때 $\boldsymbol{\omega}$는 최적화 대상이 되는 parameter 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;BFGS는&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;u&gt;gradient descent보다 더 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;빠른 수렴&lt;/b&gt;&lt;/span&gt;&lt;/u&gt;을 목표로 하면서,&lt;/li&gt;
&lt;li&gt;Newton method처럼 &lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;u&gt;Hessian matrix를 직접 계산하지 않도록 설계&lt;/u&gt;&lt;/span&gt;&lt;/b&gt;된&lt;/li&gt;
&lt;li&gt;optimization algorithm임.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://convex-optimization-for-all.github.io/contents/chapter18/2021/03/23/18_07_Limited_Memory_BFGS_(LBFGS)/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://convex-optimization-for-all.github.io/contents/chapter18/2021/03/23/18_07_Limited_Memory_BFGS_(LBFGS)/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1777291902653&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;18-07 Limited Memory BFGS (LBFGS) &amp;middot; 모두를 위한 컨벡스 최적화&quot; data-og-description=&quot;18-07 Limited Memory BFGS (LBFGS) Introduction LBFGS는 Limited-memory quasi-Newton methods의 한 예시로써, Hessian 행렬을 계산하거나 저장하기 위한 비용이 합리적이지 않을 경우 유용하게 사용된다. 이 방법은 밀도&quot; data-og-host=&quot;convex-optimization-for-all.github.io&quot; data-og-source-url=&quot;https://convex-optimization-for-all.github.io/contents/chapter18/2021/03/23/18_07_Limited_Memory_BFGS_(LBFGS)/&quot; data-og-url=&quot;https://convex-optimization-for-all.github.io/contents/chapter18/2021/03/23/18_07_Limited_Memory_BFGS_(LBFGS)/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/b7bLEU/dJMb9lMeqr4/FJyeKAKNEiK33akikDnqB0/img.png?width=600&amp;amp;height=470&amp;amp;face=0_0_600_470&quot;&gt;&lt;a href=&quot;https://convex-optimization-for-all.github.io/contents/chapter18/2021/03/23/18_07_Limited_Memory_BFGS_(LBFGS)/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://convex-optimization-for-all.github.io/contents/chapter18/2021/03/23/18_07_Limited_Memory_BFGS_(LBFGS)/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/b7bLEU/dJMb9lMeqr4/FJyeKAKNEiK33akikDnqB0/img.png?width=600&amp;amp;height=470&amp;amp;face=0_0_600_470');&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;18-07 Limited Memory BFGS (LBFGS) &amp;middot; 모두를 위한 컨벡스 최적화&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;18-07 Limited Memory BFGS (LBFGS) Introduction LBFGS는 Limited-memory quasi-Newton methods의 한 예시로써, Hessian 행렬을 계산하거나 저장하기 위한 비용이 합리적이지 않을 경우 유용하게 사용된다. 이 방법은 밀도&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;convex-optimization-for-all.github.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. Review: Newton Method&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/322&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2022.06.07 - [Computer/ETC] - [ML] Newton-Raphson Method&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1777273341640&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;[ML] Newton-Raphson Method&quot; data-og-description=&quot;1. Newton-Raphson Method : $f(x)=0$을 만족하는 root(근)인 $\hat{x}$를 찾는 방법 중 하나 : root-finding algorithm 위의 그림에서 보이듯이1st order derivative(1차 도함수)를 이용하여현재의 $x_t$로부터 $x_{t+1}$을 구해&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/322&quot; data-og-url=&quot;https://dsaint31.tistory.com/322&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/xcuTs/dJMb8TCcyIS/kFMMk1Gms2GqM6jotTX5MK/img.png?width=800&amp;amp;height=351&amp;amp;face=0_0_800_351,https://scrap.kakaocdn.net/dn/jKvqZ/dJMb8VNymuF/X7F32kLP9Mu6qOahe7puyK/img.png?width=800&amp;amp;height=351&amp;amp;face=0_0_800_351,https://scrap.kakaocdn.net/dn/dJrtGX/dJMb83SlNxI/3KvCWrQCzzfMUpkwtYt6W0/img.png?width=1037&amp;amp;height=456&amp;amp;face=0_0_1037_456&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/322&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/322&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/xcuTs/dJMb8TCcyIS/kFMMk1Gms2GqM6jotTX5MK/img.png?width=800&amp;amp;height=351&amp;amp;face=0_0_800_351,https://scrap.kakaocdn.net/dn/jKvqZ/dJMb8VNymuF/X7F32kLP9Mu6qOahe7puyK/img.png?width=800&amp;amp;height=351&amp;amp;face=0_0_800_351,https://scrap.kakaocdn.net/dn/dJrtGX/dJMb83SlNxI/3KvCWrQCzzfMUpkwtYt6W0/img.png?width=1037&amp;amp;height=456&amp;amp;face=0_0_1037_456');&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;[ML] Newton-Raphson Method&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;1. Newton-Raphson Method : $f(x)=0$을 만족하는 root(근)인 $\hat{x}$를 찾는 방법 중 하나 : root-finding algorithm 위의 그림에서 보이듯이1st order derivative(1차 도함수)를 이용하여현재의 $x_t$로부터 $x_{t+1}$을 구해&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Newton method는&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;현재 parameter $\boldsymbol{\omega}_k$에서&lt;/li&gt;
&lt;li&gt;목적 함수 $L(\boldsymbol{\omega})$를&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;2차 Taylor approximation으로 근사&lt;/b&gt;&lt;/span&gt;함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$L(\boldsymbol{\omega}_k + \mathbf{p}) \approx&lt;br /&gt;L(\boldsymbol{\omega}_k) +&lt;br /&gt;\nabla L(\boldsymbol{\omega}_k)^\top \mathbf{p} +&lt;br /&gt;\frac{1}{2}\mathbf{p}^\top \mathbf{H}_k \mathbf{p}$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$\nabla L(\boldsymbol{\omega}_k)$: 현재 parameter에서의 gradient vector&lt;/li&gt;
&lt;li&gt;$\mathbf{H}_k$: 현재 parameter에서의 Hessian matrix&lt;/li&gt;
&lt;li&gt;$\mathbf{p}$: 현재 위치에서 이동할 방향을 나타내는 search direction&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 2차 근사식을 최소화하면 Newton direction은 다음과 같이 얻어짐.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\mathbf{p}_k = -\mathbf{H}_k^{-1}\nabla L(\boldsymbol{\omega}_k)$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 parameter update는 다음과 같음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\boldsymbol{\omega}_{k+1} = \boldsymbol{\omega}_k + \eta_k \mathbf{p}_k$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 $\eta_k$는 $k$번째 iteration에서의 learning rate 또는 step size임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 식에 Newton direction을 대입하면 다음과 같음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\boldsymbol{\omega}_{k+1} = \boldsymbol{\omega}_k - \eta_k \mathbf{H}_k^{-1}\nabla L(\boldsymbol{\omega}_k)$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, Newton method는&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;단순히 gradient의 반대 방향으로 이동하는 것이 아니라,&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;u&gt;&lt;b&gt;Hessian inverse를 gradient vector에 곱해 curvature를 반영&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;한 search direction을 계산한 뒤 이동함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/318&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2022.06.05 - [Programming/DIP] - [Math] Hessian: Summary&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1777273463572&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;[Math] Hessian: Summary&quot; data-og-description=&quot;이 문서는 Numerator Layout Convention 을 사용함.Hessian : Summary 2nd order derivative of multivariable function.여기서 multivariable function은 입력은 vector, 출력은 scalar 인 함수를 의미함: ML에서의 loss function을 생각해 &quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/318&quot; data-og-url=&quot;https://dsaint31.tistory.com/318&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dbBWmd/dJMb9kmfDa4/8Ik6IV8vC2jrvkKcuWjghk/img.png?width=800&amp;amp;height=417&amp;amp;face=0_0_800_417,https://scrap.kakaocdn.net/dn/vHfcH/dJMb9gxokqK/PGBkp3ihhrj1MvDEcQYxKk/img.png?width=800&amp;amp;height=417&amp;amp;face=0_0_800_417,https://scrap.kakaocdn.net/dn/dQoAGn/dJMb9gxokqJ/YIhBu5ab0ndkzMkKjtKmXK/img.png?width=1214&amp;amp;height=633&amp;amp;face=0_0_1214_633&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/318&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/318&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dbBWmd/dJMb9kmfDa4/8Ik6IV8vC2jrvkKcuWjghk/img.png?width=800&amp;amp;height=417&amp;amp;face=0_0_800_417,https://scrap.kakaocdn.net/dn/vHfcH/dJMb9gxokqK/PGBkp3ihhrj1MvDEcQYxKk/img.png?width=800&amp;amp;height=417&amp;amp;face=0_0_800_417,https://scrap.kakaocdn.net/dn/dQoAGn/dJMb9gxokqJ/YIhBu5ab0ndkzMkKjtKmXK/img.png?width=1214&amp;amp;height=633&amp;amp;face=0_0_1214_633');&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;[Math] Hessian: Summary&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;이 문서는 Numerator Layout Convention 을 사용함.Hessian : Summary 2nd order derivative of multivariable function.여기서 multivariable function은 입력은 vector, 출력은 scalar 인 함수를 의미함: ML에서의 loss function을 생각해&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. Gradient Descent와 Newton Method의 차이&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/633&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2023.10.19 - [Programming] - [ML] Gradient Descent Method: 경사하강법&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1777273393867&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;[ML] Gradient Descent Method: 경사하강법&quot; data-og-description=&quot;Gradient Descent Method (경사하강법) : 1. 정의 및 수식Steepest Gradient Descent Method로도 불리는Gradient Descent Method(경사하강법)는 여러 Optimization 방법 중 가장 많이 사용되는 방법들 중 하나임.training set $X$&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/633&quot; data-og-url=&quot;https://dsaint31.tistory.com/633&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Q5t5o/dJMb86n0uQw/OssifwJ3vlVCs4l7pCalkk/img.png?width=800&amp;amp;height=401&amp;amp;face=0_0_800_401,https://scrap.kakaocdn.net/dn/IpALC/dJMb83SlNyl/id3Hrtj6Ey0AFwcSZk7zi1/img.png?width=800&amp;amp;height=401&amp;amp;face=0_0_800_401,https://scrap.kakaocdn.net/dn/59OfI/dJMb86O4ERg/8qLv31Dj7MWQhEYzLngcuk/img.png?width=1235&amp;amp;height=479&amp;amp;face=0_0_1235_479&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/633&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/633&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Q5t5o/dJMb86n0uQw/OssifwJ3vlVCs4l7pCalkk/img.png?width=800&amp;amp;height=401&amp;amp;face=0_0_800_401,https://scrap.kakaocdn.net/dn/IpALC/dJMb83SlNyl/id3Hrtj6Ey0AFwcSZk7zi1/img.png?width=800&amp;amp;height=401&amp;amp;face=0_0_800_401,https://scrap.kakaocdn.net/dn/59OfI/dJMb86O4ERg/8qLv31Dj7MWQhEYzLngcuk/img.png?width=1235&amp;amp;height=479&amp;amp;face=0_0_1235_479');&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;[ML] Gradient Descent Method: 경사하강법&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Gradient Descent Method (경사하강법) : 1. 정의 및 수식Steepest Gradient Descent Method로도 불리는Gradient Descent Method(경사하강법)는 여러 Optimization 방법 중 가장 많이 사용되는 방법들 중 하나임.training set $X$&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.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;Gradient descent는 다음과 같이 parameter를 update함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\boldsymbol{\omega}_{k+1} = \boldsymbol{\omega}_k - \eta_k \nabla L(\boldsymbol{\omega}_k)$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, gradient의 반대 방향으로 이동함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반면 Newton method는 다음과 같이 update함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\boldsymbol{\omega}_{k+1} = \boldsymbol{\omega}_k - \eta_k \mathbf{H}_k^{-1}\nabla L(\boldsymbol{\omega}_k)$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;차이는 $\mathbf{H}_k^{-1}$의 존재임.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Gradient descent는 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;gradient&lt;/b&gt; &lt;/span&gt;정보만 사용함.&lt;/li&gt;
&lt;li&gt;Newton method는 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;gradient&lt;/b&gt;&lt;/span&gt;에 더해 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Hessian matrix&lt;/b&gt;&lt;/span&gt;도 사용함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Hessian matrix&lt;/b&gt;는&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;목적 함수의 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;2차 미분 정보 (=Hessian)&lt;/b&gt;&lt;/span&gt;를 담고 있음.&lt;/li&gt;
&lt;li&gt;즉, 목적 함수의 curvature(곡률)를 나타냄.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 Newton method는 단순히 어느 방향으로 내려갈지만 보는 것이 아니라, &lt;br /&gt;각 방향으로 목적함수가 얼마나 휘어져 있는지도 고려함.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. Newton Method의 문제점&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Newton method&lt;/b&gt;&lt;/span&gt;는 2차 정보를 사용하므로 gradient descent보다 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;빠르게 수렴&lt;/b&gt;&lt;/span&gt;할 수 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 실제 사용에서는 다음 문제가 있음.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Hessian matrix $\mathbf{H}_k$를 직접 계&lt;/b&gt;&lt;/span&gt;산해야 함&lt;/li&gt;
&lt;li&gt;Hessian matrix의 크기가 $m \times m$이므로 parameter 수가 많으면 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;계산량과 메모리 사용량이 커짐&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Hessian inverse $\mathbf{H}_k^{-1}$를 직접 구하는 비용이 큼&lt;/li&gt;
&lt;li&gt;Hessian이 positive definite가 아니면 descent direction이 보장되지 않을 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, Newton method는 이론적으로 강력하지만, &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;고차원 문제에서는 계산 부담이 큼&lt;/b&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특히 parameter vector가 다음과 같다고 하자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\boldsymbol{\omega} =&lt;br /&gt;\begin{bmatrix}&lt;br /&gt;\omega_1 \\&lt;br /&gt;\omega_2 \\&lt;br /&gt;\vdots \\&lt;br /&gt;\omega_m&lt;br /&gt;\end{bmatrix}&lt;br /&gt;\in \mathbb{R}^m$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 Hessian matrix는 다음 크기를 가짐.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\mathbf{H} \in \mathbb{R}^{m \times m}$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;parameter 수 $m$ 이 커질수록 Hessian matrix를 저장하고 계산하는 비용이 급격히 커짐.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. Quasi-Newton Methods&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;Quasi-Newton methods는 &lt;br /&gt;&lt;u&gt;Newton method의 아이디어를 유지&lt;/u&gt;하되, &lt;br /&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Hessian matrix를 직접 계산하지 않는 방법들&lt;/b&gt;&lt;/span&gt;임.&lt;/span&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;Newton method에서는 다음과 같은 direction을 사용함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\mathbf{p}_k = -\mathbf{H}_k^{-1}\nabla L(\boldsymbol{\omega}_k)$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Quasi-Newton method에서는 $\mathbf{H}_k^{-1}$ 대신 &lt;span style=&quot;color: #ee2323;&quot;&gt;이를 근사한 matrix $\mathbf{M}_k$를 사용&lt;/span&gt;함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\mathbf{p}_k = -\mathbf{M}_k \nabla L(\boldsymbol{\omega}_k)$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;여기서 $\mathbf{M}_k$는 inverse Hessian approximation임.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\mathbf{M}_k \approx \mathbf{H}_k^{-1}$$&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;Quasi-Newton method의 핵심은 다음과 같음.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Hessian matrix를 직접 계산하지 않음&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;gradient 변화량을 이용해 curvature 정보를 추정&lt;/b&gt;&lt;/span&gt;함&lt;/li&gt;
&lt;li&gt;Newton method와 비슷한 search direction을 만들려고 함&lt;/li&gt;
&lt;li&gt;gradient descent보다 빠른 수렴을 기대할 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;BFGS&lt;/b&gt;&lt;/span&gt;는 &lt;br /&gt;이러한 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Quasi-Newton method&lt;/b&gt;&lt;/span&gt; 중 &lt;br /&gt;가장 널리 사용되는 방법 중 하나임.&lt;/span&gt;&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;5. BFGS의 핵심 아이디어&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;BFGS는 &lt;u&gt;&lt;b&gt;Hessian을 직접 계산하지 않고&lt;/b&gt;&lt;/u&gt;, 반복 과정에서 얻은 두 정보를 이용함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;첫 번째는 &lt;span style=&quot;color: #ee2323;&quot;&gt;parameter 변화량&lt;/span&gt;임.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\mathbf{s}_k = \boldsymbol{\omega}_{k+1} - \boldsymbol{\omega}_k$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;두 번째는 &lt;span style=&quot;color: #ee2323;&quot;&gt;gradient 변화량&lt;/span&gt;임.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\mathbf{y}_k = \nabla L(\boldsymbol{\omega}_{k+1}) - \nabla L(\boldsymbol{\omega}_k)$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, BFGS는 다음 두 vector를 이용해 목적 함수의 curvature를 간접적으로 추정함.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$\mathbf{s}_k$: &lt;u&gt;parameter가 어느 방향으로 얼마나 이동&lt;/u&gt;했는지&lt;/li&gt;
&lt;li&gt;$\mathbf{y}_k$: &lt;u&gt;그 이동에 따라 gradient가 얼마나 변했는지&lt;/u&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;gradient의 변화는 함수의 curvature 정보를 포함&lt;/b&gt;&lt;/span&gt;함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;따라서 Hessian을 직접 계산하지 않아도, &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;parameter 변화량과 gradient 변화량을 이용&lt;/b&gt;&lt;/span&gt;하면 &lt;br /&gt;curvature를 어느 정도 추정할 수 있음.&lt;/span&gt;&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;6. Secant Condition&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Hessian matrix는 gradient의 변화율&lt;/b&gt;&lt;/span&gt;을 나타냄.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 이상적으로는 다음 관계가 성립해야 함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\mathbf{H}_{k+1}\mathbf{s}_k \approx \mathbf{y}_k$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;secant condition(할선 조건)&lt;/b&gt;&lt;/span&gt;이라고 함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;Inverse Hessian approximation을 사용하는 경우&lt;/u&gt;에는 다음처럼 쓸 수 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\mathbf{M}_{k+1}\mathbf{y}_k = \mathbf{s}_k&lt;br /&gt;$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;여기서 $\mathbf{M}_{k+1}$은 다음 iteration에서 사용할 inverse Hessian approximation임.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, BFGS는 다음 조건을 만족하도록 $\mathbf{M}_k$를 update함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\mathbf{M}_{k+1}\mathbf{y}_k&lt;br /&gt;= \mathbf{s}_k$$&lt;/p&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;gradient 변화량 $\mathbf{y}_k$&lt;/b&gt;&lt;/span&gt;에 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;inverse Hessian approximation&lt;/b&gt;&lt;/span&gt;을 곱하면&lt;/li&gt;
&lt;li&gt;실제 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;parameter 변화량 $\mathbf{s}_k$와 일치&lt;/b&gt;&lt;/span&gt;하도록 만들겠다는 것임&lt;/li&gt;
&lt;li&gt;즉, 현재까지 관찰한 변화에 대해서는 Newton method와 비슷한 관계를 만족하도록 matrix를 보정함&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;7. BFGS Update Formula&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Inverse Hessian approximation을 $\mathbf{M}_k$라고 하면, BFGS update는 다음과 같이 주어짐.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\mathbf{M}_{k+1} =&lt;br /&gt;\left(&lt;br /&gt;\mathbf{I} - \rho_k \mathbf{s}_k \mathbf{y}_k^\top&lt;br /&gt;\right)&lt;br /&gt;\mathbf{M}_k&lt;br /&gt;\left(&lt;br /&gt;\mathbf{I} -&lt;br /&gt;\rho_k \mathbf{y}_k \mathbf{s}_k^\top&lt;br /&gt;\right) +&lt;br /&gt;\rho_k \mathbf{s}_k \mathbf{s}_k^\top$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ \rho_k = \frac{1}{\mathbf{y}_k^\top \mathbf{s}_k}$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 식은 처음 보면 복잡하지만, 핵심은 단순함.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기존 inverse Hessian approximation $\mathbf{M}_k$를 유지함&lt;/li&gt;
&lt;li&gt;새롭게 관찰한 $\mathbf{s}_k$, $\mathbf{y}_k$ 정보를 반영함&lt;/li&gt;
&lt;li&gt;secant condition을 만족하도록 matrix를 보정함&lt;/li&gt;
&lt;li&gt;positive definite 성질을 유지하려고 함&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단, 보통 다음 조건이 필요함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\mathbf{y}_k^\top \mathbf{s}_k &amp;gt; 0 $$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 조건은 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;curvature condition&lt;/b&gt;&lt;/span&gt;이라고 볼 수 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;BFGS에서 이 조건이 만족되면,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$\mathbf{M}_k$가 positive definite일 때&lt;/li&gt;
&lt;li&gt;$\mathbf{M}_{k+1}$도 positive definite가 됨.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;8. BFGS의 반복 절차&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;BFGS의 전체 흐름은 다음과 같음:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1.초기 parameter $\boldsymbol{\omega}_0$ 선택&lt;br /&gt;2.초기 inverse Hessian approximation $\mathbf{M}_0$ 선택&lt;br /&gt;3.현재 gradient $\nabla L(\boldsymbol{\omega}_k)$ 계산&lt;br /&gt;4.search direction 계산&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\mathbf{p}_k = -\mathbf{M}_k \nabla L(\boldsymbol{\omega}_k)$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5.line search를 통해 learning rate $\eta_k$ 결정&lt;br /&gt;6.parameter update&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\boldsymbol{\omega}_{k+1} = \boldsymbol{\omega}_k +\eta_k \mathbf{p}_k$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7.parameter 변화량 계산&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\mathbf{s}_k = \boldsymbol{\omega}_{k+1} - \boldsymbol{\omega}_k$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;8.gradient 변화량 계산&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\mathbf{y}_k = \nabla L(\boldsymbol{\omega}_{k+1}) - \nabla L(\boldsymbol{\omega}_k)$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;9.$\mathbf{M}_k$를 $\mathbf{M}_{k+1}$로 update&lt;br /&gt;10.수렴 조건을 만족할 때까지 반복&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정리하면 BFGS의 update는 다음 한 줄로 볼 수 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\boldsymbol{\omega}_{k+1} = \boldsymbol{\omega}_k - \eta_k \mathbf{M}_k \nabla L(\boldsymbol{\omega}_k)$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Gradient descent와 비슷해 보이지만, gradient 앞에 $\mathbf{M}_k$ 가 곱해져 있다는 점이 핵심 차이임.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;9. Gradient Descent와의 비교.&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Gradient descent는 gradient의 반대 방향으로 이동함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\mathbf{p}_k = - \nabla L(\boldsymbol{\omega}_k) $$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 update는 다음과 같음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\boldsymbol{\omega}_{k+1} = \boldsymbol{\omega}_k - \eta_k \nabla L(\boldsymbol{\omega}_k)$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반면 BFGS는 gradient에 inverse Hessian approximation을 곱해서 이동 방향을 정함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\mathbf{p}_k= - \mathbf{M}_k \nabla L(\boldsymbol{\omega}_k)$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 update는 다음과 같음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\boldsymbol{\omega}_{k+1} =&lt;br /&gt;\boldsymbol{\omega}_k +\eta_k \mathbf{p}_k&lt;br /&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;$$\boldsymbol{\omega}_{k+1} = \boldsymbol{\omega}_k - \eta_k&lt;br /&gt;\mathbf{M}_k&lt;br /&gt;\nabla L(\boldsymbol{\omega}_k)$$&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;table data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;구분&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;Gradient Descent&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;BFGS&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;사용 정보&lt;/td&gt;
&lt;td&gt;Gradient&lt;/td&gt;
&lt;td&gt;Gradient + curvature approximation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hessian 계산&lt;/td&gt;
&lt;td&gt;사용하지 않음&lt;/td&gt;
&lt;td&gt;직접 계산하지 않고 근사&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;이동 방향&lt;/td&gt;
&lt;td&gt;$-\nabla L(\boldsymbol{\omega}_k)$&lt;/td&gt;
&lt;td&gt;$-\mathbf{M}_k\nabla L(\boldsymbol{\omega}_k)$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Learning rate&lt;/td&gt;
&lt;td&gt;사용&lt;/td&gt;
&lt;td&gt;사용&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;수렴 속도&lt;/td&gt;
&lt;td&gt;느릴 수 있음&lt;/td&gt;
&lt;td&gt;보통 더 빠름&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;메모리 사용량&lt;/td&gt;
&lt;td&gt;작음&lt;/td&gt;
&lt;td&gt;큼&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;고차원 문제 적합성&lt;/td&gt;
&lt;td&gt;상대적으로 좋음&lt;/td&gt;
&lt;td&gt;원래 BFGS는 부담이 큼&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Gradient descent는 함수의 기울기만 보고 이동함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;BFGS는 gradient에 곡률 정보를 반영한 matrix를 곱해서, 더 적절한 방향과 scale로 이동하려고 함.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;10. Newton Method와 비교&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Newton method는 정확한 Hessian matrix를 사용함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\mathbf{p}_k = -\mathbf{H}_k^{-1}\nabla L(\boldsymbol{\omega}_k)$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;BFGS는 inverse Hessian을 직접 계산하지 않고, 이를 근사한 $\mathbf{M}_k$를 사용함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\mathbf{p}_k = -\mathbf{M}_k \nabla L( \boldsymbol{ \omega}_k)$$&lt;/p&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;table data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;구분&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;Newton Method&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;BFGS&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hessian&lt;/td&gt;
&lt;td&gt;직접 계산&lt;/td&gt;
&lt;td&gt;직접 계산하지 않음&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hessian inverse&lt;/td&gt;
&lt;td&gt;직접 또는 선형 시스템으로 처리&lt;/td&gt;
&lt;td&gt;반복적으로 근사&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;곡률 정보&lt;/td&gt;
&lt;td&gt;정확한 2차 정보&lt;/td&gt;
&lt;td&gt;gradient 변화로부터 근사&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;계산 비용&lt;/td&gt;
&lt;td&gt;큼&lt;/td&gt;
&lt;td&gt;Newton보다 작음&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;수렴 속도&lt;/td&gt;
&lt;td&gt;매우 빠를 수 있음&lt;/td&gt;
&lt;td&gt;빠른 편&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;구현 안정성&lt;/td&gt;
&lt;td&gt;Hessian 상태에 민감&lt;/td&gt;
&lt;td&gt;line search와 함께 안정적으로 사용 가능&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;BFGS는&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Newton method의 &amp;ldquo;2차 정보를 활용한다&amp;rdquo;는 장점은 어느 정도 유지하면서,&lt;/li&gt;
&lt;li&gt;Hessian 계산 부담을 줄인 방법이라고 볼 수 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;11. BFGS에서 Line Search가 중요한 이유: leraning rate의 중요성&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;BFGS에서는 search direction $\mathbf{p}_k$를 구한 뒤, learning rate $\eta_k$를 정해야 함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\boldsymbol{\omega}_{k+1} =&lt;br /&gt;\boldsymbol{\omega}_k + \eta_k \mathbf{p}_k $$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 $\eta_k$를 너무 크게 잡으면 목적 함수 값이 오히려 발산할 수 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반대로 $\eta_k$를 너무 작게 잡으면 수렴이 느려짐.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 BFGS에서는 보통 line search를 사용해 적절한 $\eta_k$를 선택함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Line search는 현재 direction $\mathbf{p}_k$ 를 따라 어느 정도 이동할지를 결정하는 절차임.&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;$$\underset{\eta}{\min} L(\boldsymbol{\omega}_k + \eta \mathbf{p}_k)$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실제 구현에서는 exact하게 최소화하기보다는, Wolfe condition 같은 조건을 만족하는 $\eta_k$를 찾는 방식이 자주 사용됨.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;12. Positive Definite와 Descent Direction&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;BFGS에서 $\mathbf{M}_k$ 는 inverse Hessian approximation임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 $\mathbf{M}_k$가 positive definite이라면,&lt;br /&gt;BFGS direction은 descent direction이 됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;BFGS direction은 다음과 같음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\mathbf{p}_k = - \mathbf{M}_k \nabla L(\boldsymbol{\omega}_k)$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 direction이 descent direction이라는 것은 다음이 성립한다는 뜻임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\nabla L(\boldsymbol{\omega}_k)^\top \mathbf{p}_k &amp;lt; 0&lt;br /&gt;$$&lt;/p&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;$$\nabla L(\boldsymbol{\omega}_k)^\top \mathbf{p}_k&lt;br /&gt;= - \nabla L(\boldsymbol{\omega}_k)^\top&lt;br /&gt;\mathbf{M}_k \nabla L(\boldsymbol{\omega}_k)$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$\mathbf{M}_k)$가 positive definite이면 다음이 성립함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\nabla L(\boldsymbol{\omega}_k)^\top&lt;br /&gt;\mathbf{M}_k&lt;br /&gt;\nabla L(\boldsymbol{\omega}_k) &amp;gt;0&lt;br /&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;$$\nabla L(\boldsymbol{\omega_k})^\top \mathbf{p}_k &amp;lt; 0 $$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가 됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, $\mathbf{M}_k$가 positive definite이면 $\mathbf{p}_k$는 목적 함수 값을 감소시키는 방향이 됨.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;13. 응용: L-BFGS&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;&lt;b&gt;BFGS&lt;/b&gt;&lt;/i&gt;는 inverse Hessian approximation matrix $\mathbf{M}_k$를 저장해야 함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;parameter 수가 $m$개라면 $\mathbf{M}_k$의 크기는 다음과 같음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;m \times m&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 parameter 수가 많으면 메모리 사용량이 매우 커짐.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 해결하기 위해 나온 방법이 L-BFGS(Limited-memory BFGS)임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;L-BFGS는 전체 matrix를 저장하지 않고, 최근 몇 번의 $\mathbf{s}_k$, $\mathbf{y}_k$ 만 저장함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;BFGS: 전체 inverse Hessian approximation matrix 저장&lt;/li&gt;
&lt;li&gt;L-BFGS: 최근 update vector들만 저장&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 때문에 L-BFGS는 고차원 optimization problem에서 더 자주 사용됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다만 일반적인 deep learning 학습에서는 SGD, Adam, AdamW 등이 더 많이 사용됨.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;14. 응용: L-BFGS-B&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;L-BFGS-B는 L-BFGS에 &lt;i&gt;&lt;b&gt;bound constraint &lt;/b&gt;&lt;/i&gt;를 추가한 방법임.&lt;/p&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;$$\underset{\boldsymbol{\omega}}{\min} L(\boldsymbol{\omega}) \\ \text{s. t. } l_i \le \omega_i \le u_i$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 $l_i$와 $u_i$는 각각 parameter $\omega_i$의 lower bound와 upper bound임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어 어떤 parameter가 반드시 양수여야 한다면 다음과 같은 constraint를 둘 수 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\omega_i \ge 0$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이와 같이 bound constraint가 추가된 경우는 L-BGFS-B를 사용하며&lt;br /&gt;&lt;code&gt;scipy.optimize.minimize&lt;/code&gt;에서 &lt;code&gt;method=&quot;L-BFGS-B&quot;&lt;/code&gt;를 지정하여 이용가능.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;15. BFGS를 사용하는 경우&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;BFGS는 다음과 같은 경우에 적합함.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;목적 함수가 differentiable한 경우&lt;/li&gt;
&lt;li&gt;gradient를 계산할 수 있는 경우&lt;/li&gt;
&lt;li&gt;parameter 수가 너무 크지 않은 경우&lt;/li&gt;
&lt;li&gt;gradient descent보다 빠른 수렴이 필요한 경우&lt;/li&gt;
&lt;li&gt;Hessian을 직접 계산하기에는 부담스러운 경우&lt;/li&gt;
&lt;li&gt;목적 함수가 비교적 smooth한 경우&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반면 다음 경우에는 주의가 필요함.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;parameter 수가 매우 큰 deep learning model&lt;/li&gt;
&lt;li&gt;gradient noise가 큰 stochastic optimization 문제&lt;/li&gt;
&lt;li&gt;목적 함수가 매끄럽지 않은 경우&lt;/li&gt;
&lt;li&gt;memory cost가 중요한 문제&lt;/li&gt;
&lt;li&gt;mini-batch 기반 학습처럼 gradient가 매번 크게 흔들리는 문제&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, BFGS는 작은 규모 또는 중간 규모의 smooth optimization problem에서 권장됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;매우 큰 neural network를 stochastic gradient로 학습하는 상황에서는&lt;br /&gt;일반적으로 Adam, AdamW, SGD with momentum 등이 더 자주 사용됨.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;16. Linear Regression과 BFGS&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Linear regression의 OLS objective function은 다음과 같이 쓸 수 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$L(\boldsymbol{\omega})&lt;br /&gt;=\frac{1}{2m}&lt;br /&gt;\left\|&lt;br /&gt;\mathbf{y} - \mathbf{X}\boldsymbol{\omega}&lt;br /&gt;\right\|_2^2$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 문제는 closed-form solution이 존재함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\boldsymbol{\omega} =&lt;br /&gt;(\mathbf{X}^\top \mathbf{X})^{-1}&lt;br /&gt;\mathbf{X}^\top&lt;br /&gt;\mathbf{y}$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단, Normal Equation을 직접 풀려면 $\mathbf{X}^\top \mathbf{X}$가 invertible하다는 조건이 필요함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;invertible 하지 않더라도 OLS는 convex quadratic problem이므로,&lt;br /&gt;BFGS를 사용하여 풀 수도 있음 (물론 GD도 가능).&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 OLS만 놓고 보면 보통은 다음 다른 방법들이 더 직접적임.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Normal equation&lt;/li&gt;
&lt;li&gt;QR decomposition&lt;/li&gt;
&lt;li&gt;SVD&lt;/li&gt;
&lt;li&gt;Gradient descent&lt;/li&gt;
&lt;li&gt;SGD&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;BFGS는&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Directed methods 가 존재하는 OLS 보다는,&lt;/li&gt;
&lt;li&gt;closed-form solution이 없거나 직접 계산하기 어려운 smooth nonlinear optimization 문제에서 더 의미가 큼.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;17. Python에서의 사용 예&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;scipy.optimize.minimize&lt;/code&gt;를 사용하면 BFGS를 쉽게 사용할 수 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 예제에서는 다음 목적 함수를 최소화함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ L(\boldsymbol{\omega}) = (\omega_1 - 1)^2 + (\omega_2 + 2)^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;$$&lt;br /&gt;\boldsymbol{\omega}^{\ast} =&lt;br /&gt;\begin{bmatrix}&lt;br /&gt;1 \\&lt;br /&gt;-2&lt;br /&gt;\end{bmatrix}$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Python 코드는 다음과 같음.&lt;/p&gt;
&lt;pre class=&quot;python&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;import numpy as np
from scipy.optimize import minimize


# 목적 함수 정의
# L(w1, w2) = (w1 - 1)^2 + (w2 + 2)^2
def objective(omega):
    # omega는 parameter vector임.
    # omega[0] = w1, omega[1] = w2
    w1, w2 = omega

    return (w1 - 1) ** 2 + (w2 + 2) ** 2


# gradient 정의
def gradient(omega):
    # 각 parameter에 대한 편미분을 계산함.
    # dL/dw1 = 2(w1 - 1)
    # dL/dw2 = 2(w2 + 2)
    w1, w2 = omega

    return np.array([
        2 * (w1 - 1),
        2 * (w2 + 2),
    ])


# 초기 parameter
omega0 = np.array([0.0, 0.0])


# BFGS 실행
result = minimize(
    fun=objective,      # 최소화할 목적 함수
    x0=omega0,          # 초기 parameter
    jac=gradient,       # gradient 함수
    method=&quot;BFGS&quot;,      # BFGS 사용
)

print(result.x)         # 최적 parameter
print(result.fun)       # 최소 목적 함수 값
print(result.success)   # 최적화 성공 여부&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;출력은 대략 다음과 같음.&lt;/p&gt;
&lt;pre class=&quot;yaml&quot;&gt;&lt;code&gt;[ 1. -2.]
0.0
True&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 &lt;code&gt;result.x&lt;/code&gt;는 최적화된 parameter vector $\boldsymbol{\omega}$에 해당함.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;요약&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;BFGS는 Newton method와 gradient descent 사이에 있는 중요한 optimization algorithm임.&lt;/p&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;BFGS는 Quasi-Newton method의 대표 알고리즘임&lt;/li&gt;
&lt;li&gt;Hessian matrix를 직접 계산하지 않음&lt;/li&gt;
&lt;li&gt;gradient 변화량을 이용해 inverse Hessian을 근사함&lt;/li&gt;
&lt;li&gt;gradient descent보다 빠르게 수렴하는 경우가 많음&lt;/li&gt;
&lt;li&gt;parameter update는 다음 형태를 가짐&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\boldsymbol{\omega}_{k+1} =\boldsymbol{\omega}_k - \eta_k \mathbf{M}_k \nabla L(\boldsymbol{\omega}_k)$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$\mathbf{M}_k$는 inverse Hessian approximation임&lt;/li&gt;
&lt;li&gt;full BFGS는 $m \times m$ matrix를 저장하므로 parameter 수가 많으면 부담이 큼&lt;/li&gt;
&lt;li&gt;고차원 문제에서는 L-BFGS가 더 많이 사용됨&lt;/li&gt;
&lt;li&gt;bound constraint가 있으면 L-BFGS-B를 사용할 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결국 BFGS는 다음 한 문장으로 정리할 수 있음.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;BFGS는 Hessian을 직접 계산하지 않고,&lt;br /&gt;gradient의 변화로부터 curvature 정보를 추정하여&lt;br /&gt;Newton method에 가까운 search direction을 만들어내는&lt;br /&gt;&lt;b&gt;Quasi-Newton optimization algorithm&lt;/b&gt; 임.&lt;/p&gt;
&lt;/blockquote&gt;</description>
      <category>Programming/ML</category>
      <category>BFGS</category>
      <category>Hessian</category>
      <category>Newton</category>
      <category>Optimization</category>
      <category>Quasi</category>
      <author>dsaint31x</author>
      <guid isPermaLink="true">https://dsaint31.tistory.com/961</guid>
      <comments>https://dsaint31.tistory.com/961#entry961comment</comments>
      <pubDate>Mon, 27 Apr 2026 16:15:02 +0900</pubDate>
    </item>
    <item>
      <title>Linear Regression (Summary)</title>
      <link>https://dsaint31.tistory.com/960</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;0. Linear Regression 분류&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/960#1.%20Linear%20Regression%20%EC%9D%B4%EB%9E%80%3F-1-1&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;Linear&amp;nbsp;Regression&lt;/b&gt; &lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;├──&amp;nbsp;1.&amp;nbsp;Error&amp;nbsp;model&amp;nbsp;기준 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;│&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ├── &lt;a href=&quot;https://dsaint31.tistory.com/960#2.%20OLS-1-4&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;OLS&lt;/a&gt; 계열 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;│ &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;│&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ├── X: fixed or error-free &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;│ &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;│&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp; ├── y: noise 있음 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;│&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;│&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &lt;/span&gt;└── $\text{Var}(\varepsilon) = \sigma^2\mathbf{I}$&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;│&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;│ &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;│ &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp; ├── &lt;a href=&quot;https://dsaint31.tistory.com/960#4-1.%20WLS-1-10&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;WLS&lt;/a&gt; 계열 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;│ &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp; │&amp;nbsp; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt; &amp;nbsp;├── X: fixed or error-free &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;│ &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp; │&amp;nbsp; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt; &amp;nbsp;├── y: noise 있음 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;│ &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp; │ &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt; &amp;nbsp;&amp;nbsp;└── $\text{Var}(\varepsilon) = \text{diag}(\sigma_1^2, \sigma_2^2, \dots, \sigma_m^2)$&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;│ &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp; │ &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;│ &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp; ├── &lt;a href=&quot;https://dsaint31.tistory.com/960#4-2.%20GLS-1-11&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;GLS&lt;/a&gt; 계열 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;│ &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp; │&amp;nbsp; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt; &amp;nbsp;├── X: fixed or error-free &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;│ &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp; │&amp;nbsp; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt; &amp;nbsp;├── y: noise 있음 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;│ &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp; │&amp;nbsp; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt; &amp;nbsp;└── $\text{Var}(\varepsilon) = \boldsymbol{\Omega}$&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;│ &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp; │ &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;│ &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp; └── &lt;a href=&quot;https://dsaint31.tistory.com/960#5.%20TLS-1-12&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;TLS&lt;/a&gt; 계열 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;│&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp; &amp;nbsp; ├── X: noise 있음 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;│&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt; &amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt; ├──&amp;nbsp;y:&amp;nbsp;noise&amp;nbsp;있음 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;│&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp; &amp;nbsp; └── [X&amp;nbsp;&amp;nbsp;y] 전체의 perturbation 최소화 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;│ &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;├──&amp;nbsp;2.&amp;nbsp;&lt;a href=&quot;https://dsaint31.tistory.com/848&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Regularization&lt;/a&gt;&amp;nbsp;기준 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;│ &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;├──&amp;nbsp;No&amp;nbsp;penalty &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;│&amp;nbsp; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt; &amp;nbsp;│&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt; ├──&amp;nbsp;&lt;a href=&quot;https://dsaint31.tistory.com/960#2.%20OLS-1-4&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;OLS &lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;│ &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt; &amp;nbsp;&amp;nbsp;│&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt; ├──&amp;nbsp;WLS &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;│&amp;nbsp; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt; &amp;nbsp;│&amp;nbsp; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt; &amp;nbsp;├──&amp;nbsp;GLS &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;│ &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;│&amp;nbsp; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt; &amp;nbsp;└── (Standard) TLS &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;│ &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;│ &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;│ &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp; &amp;nbsp; └── Penalized / Regularized &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;│&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;├── &lt;b&gt;&lt;a href=&quot;https://dsaint31.tistory.com/960#3-1.%20Ridge%20Regression-1-6&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Ridge&lt;/a&gt;: L2 penalty &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;│ &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt; ├── &lt;b&gt;&lt;a href=&quot;https://dsaint31.tistory.com/960#3-2.%20LASSO%20Regression-1-7&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Lasso&lt;/a&gt;: L1 penalty &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;│ &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt; ├── &lt;b&gt;&lt;a href=&quot;https://dsaint31.tistory.com/960#3-3.%20Elastic%20Net-1-8&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Elastic Net&lt;/a&gt;: L1 + L2 penalty &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;│ &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt; ├── Penalized WLS &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;│ &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt; ├── Penalized GLS &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;│ &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt; └── Regularized TLS &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;│ &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;└──&amp;nbsp;3.&amp;nbsp;Optimization&amp;nbsp;/&amp;nbsp;Solver&amp;nbsp;기준 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;├── &lt;a href=&quot;https://dsaint31.tistory.com/274#Normal%20Equation-1-5&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Normal equation&lt;/a&gt; 기반 &lt;a href=&quot;https://dsaint31.tistory.com/276&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;closed-form &lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt; │&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ├── &lt;a href=&quot;https://dsaint31.tistory.com/960#2.%20OLS-1-4&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;OLS &lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt; │&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; │&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; └── $\boldsymbol{\omega}^* = (\mathbf{X}^\top\mathbf{X})^{-1}\mathbf{X}^\top \mathbf{y}$&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt; │&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; │ &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt; │&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ├── WLS &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt; │&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; │ &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;└── $\boldsymbol{\omega}^* = (\mathbf{X}^\top \mathbf{W} \mathbf{X})^{-1}\mathbf{X}^\top \mathbf{W} \mathbf{y}$&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt; │&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; │ &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt; │&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ├── GLS &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt; │&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; │ &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;└── $\boldsymbol{\omega}^* = (\mathbf{X}^\top \boldsymbol{\Omega}^{-1} \mathbf{X})^{-1} \mathbf{X}^\top \boldsymbol{\Omega}^{-1} \mathbf{y}$&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt; │&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; │ &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt; │&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; └── Ridge &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt; │&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;└── $\boldsymbol{\omega}^* = (\mathbf{X}^\top \mathbf{X} + \lambda \mathbf{I})^{-1} \mathbf{X}^\top \mathbf{y}$&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt; │ &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt; ├── Direct decomposition 기반 solver &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt; │ &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp; &amp;nbsp;├── &lt;a href=&quot;https://dsaint31.tistory.com/887#2.%20QR%20Decomposition-1-4&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;QR decomposition &lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt; │ &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt; │&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;└── OLS, WLS, GLS에 사용 가능 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt; │ &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt; │ &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt; │ &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt; ├── &lt;a href=&quot;https://dsaint31.tistory.com/657&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;SVD &lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt; │&amp;nbsp; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt; &amp;nbsp;│ &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;├── OLS의 rank-deficient case에 사용 가능&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;│&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;│&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;├&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;──&amp;nbsp;&lt;/span&gt; Ridge 에서 가장 안정적인 Solver임.&lt;/span&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt; │&amp;nbsp; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt; &lt;/span&gt;│&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;└── Standard TLS의 대표적 solver &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt; │&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;│ &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt; │&amp;nbsp; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt; &lt;/span&gt;└── Cholesky decomposition &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt; │&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;└── &lt;b&gt;Ridge&lt;/b&gt;, WLS, GLS 등 positive definite system에 사용 가능 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt; │ &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt; └── Iterative optimization 기반 solver &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ├── &lt;a href=&quot;https://dsaint31.tistory.com/633&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Gradient Descent &lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&amp;nbsp; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;├── &lt;a href=&quot;https://dsaint31.tistory.com/633#2.%20Batch%2C%20Mini-batch%2C%20and%20Stochastic%20GD-1-6&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Stochastic Gradient Descent &lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;├── Coordinate Descent &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;│&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt; └──&amp;nbsp;Lasso,&amp;nbsp;Elastic&amp;nbsp;Net에서&amp;nbsp;자주&amp;nbsp;사용 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&amp;nbsp; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;├── &lt;a href=&quot;https://dsaint31.tistory.com/961&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;LBFGS &lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; └── 기타 numerical optimization&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;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/be88ww/dJMcaiwjqEI/rWlCDbFF8ZFAKahD5zzR70/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/be88ww/dJMcaiwjqEI/rWlCDbFF8ZFAKahD5zzR70/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/be88ww/dJMcaiwjqEI/rWlCDbFF8ZFAKahD5zzR70/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbe88ww%2FdJMcaiwjqEI%2FrWlCDbFF8ZFAKahD5zzR70%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;800&quot; height=&quot;447&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. Linear Regression 이란?&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Linear Regression(선형회귀)은&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;입력 feature와 target 사이의 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;선형 관계(linear relationship)&lt;/b&gt;&lt;/span&gt;를 가정하여&lt;/li&gt;
&lt;li&gt;continuous target 값을 예측하는 대표적인 regression model임.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;linear regression(선형회귀)를 matrix(행렬)로 쓰면 다음과 같음:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\mathbf{y} = \mathbf{X}\boldsymbol{\omega} + \boldsymbol{\varepsilon}&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;학습된 linear regression model의 예측값은 다음과 같음:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\hat{\mathbf{y}} = \mathbf{X} \hat{\boldsymbol{\omega}}&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;target과 predicted value의 오차는 residual이라 불리며 다음과 같음:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\mathbf{e} = \mathbf{y} - \hat{\mathbf{y}}&lt;br /&gt;$$&lt;/p&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;table data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;기호&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;의미&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;차원&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;$\mathbf{X}$&lt;/td&gt;
&lt;td&gt;design matrix&lt;/td&gt;
&lt;td&gt;$m \times n$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;$\boldsymbol{\omega}$&lt;/td&gt;
&lt;td&gt;parameter, &lt;a href=&quot;https://dsaint31.tistory.com/958#coefficient-1&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;coefficient&lt;/a&gt; vector&lt;/td&gt;
&lt;td&gt;$n \times 1$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;$\hat{\boldsymbol{\omega}}$&lt;/td&gt;
&lt;td&gt;estimated parameter vector&lt;/td&gt;
&lt;td&gt;$n \times 1$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;$\mathbf{y}$&lt;/td&gt;
&lt;td&gt;target, response vector&lt;/td&gt;
&lt;td&gt;$m \times 1$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;$\hat{\mathbf{y}}$&lt;/td&gt;
&lt;td&gt;fitted value, predicted response vector&lt;/td&gt;
&lt;td&gt;$m \times 1$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;$\boldsymbol{\varepsilon}$&lt;/td&gt;
&lt;td&gt;error vector&lt;/td&gt;
&lt;td&gt;$m \times 1$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;$\mathbf{e}$&lt;/td&gt;
&lt;td&gt;residual vector&lt;/td&gt;
&lt;td&gt;$m \times 1$&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$m$은 sample 수, $n$는 feature 수임.&lt;/li&gt;
&lt;li&gt;$\boldsymbol{\varepsilon}$는 실제 data-generating process에서 발생한다고 가정하는 이론적 error term이며, 직접 관측되지 않음.&lt;/li&gt;
&lt;li&gt;반면 $\mathbf{e}$는 학습된 model의 predicted value와 실제 target의 차이로 계산되는 residual vector임.&lt;/li&gt;
&lt;li&gt;즉, residual은 관측 불가능한 error term의 proxy로 사용되지만, 두 값이 완전히 같은 것은 아님.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이해를 돕기 위해 훈련데이터로 구성된 desing matrix는 다음과 같음:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\mathbf{X} = \begin{bmatrix} - (\mathbf{x}_1)^\top - \\ - (\mathbf{x}_2)^\top - \\ \vdots \\ - (\mathbf{x}_m)^\top - \\ \end{bmatrix} \in \mathbb{R}^{m \times n}$$&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;참고로, model이 linear하다고 하는 것은 &lt;br /&gt;regression 문제에서는 output이 parameters의 linear combination으로 표현되거나, &lt;br /&gt;classification 문제에서는 decision boundary가 hyperplane 형태로 표현되는 경우를 의미함.&lt;br /&gt;&lt;br /&gt;classification에서도 decision function은 regression의 prediction formula와 마찬가지로&lt;br /&gt;$f(x)=\boldsymbol{\omega}^\top \mathbf{x} + b$ 이며, &lt;br /&gt;이 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;decision function이 0이 되는 점들의 집합&lt;/b&gt;&lt;/span&gt;이 바로 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;hyperplane (decision boundary)&lt;/b&gt;&lt;/span&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;linear regression model의 예측식(prediction function)은 보통 두 가지 형태 중 하나로 기술됨.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1-1. Affine Form&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\hat{y}_i = \boldsymbol{\omega}^\top \mathbf{x}_i + b&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 $b \in \mathbb{R}$는&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt; intercept 또는 bias&lt;/b&gt;&lt;/span&gt;라고 불림.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/652&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2024.01.03 - [.../Linear Algebra] - [LA] Linear and Affine: Summary&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1782345166682&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;[LA] Linear and Affine: Summary&quot; data-og-description=&quot;Linear vs. Affinelinear combination과 linear transform에 같은 linear가 붙는 이유둘 다 원점을 기준으로 한 vector space에서scaling과 addition으로 표현되며,원점 고정성(origin-fixing property)과 선형성(linearity) 같은 lin&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/652&quot; data-og-url=&quot;https://dsaint31.tistory.com/652&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/clsl7m/dJMb89ynGak/hvGQhdWk5cwAnRm98oQT31/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/b2XTQY/dJMb84qiDda/kUiUKpuHMA9gdlEswKF2l0/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/d4gDCM/dJMb81G7wOS/m4qeYrOw2zKOxbCn4vkMh1/img.png?width=1672&amp;amp;height=941&amp;amp;face=0_0_1672_941&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/652&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/652&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/clsl7m/dJMb89ynGak/hvGQhdWk5cwAnRm98oQT31/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/b2XTQY/dJMb84qiDda/kUiUKpuHMA9gdlEswKF2l0/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/d4gDCM/dJMb81G7wOS/m4qeYrOw2zKOxbCn4vkMh1/img.png?width=1672&amp;amp;height=941&amp;amp;face=0_0_1672_941');&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;[LA] Linear and Affine: Summary&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Linear vs. Affinelinear combination과 linear transform에 같은 linear가 붙는 이유둘 다 원점을 기준으로 한 vector space에서scaling과 addition으로 표현되며,원점 고정성(origin-fixing property)과 선형성(linearity) 같은 lin&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1-2. Linear Form (or Homogeneous coordinate form)&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;모든 Linear transformation은 matrix와의 곱으로 표현가능함.&lt;br /&gt;Affine Form에서 bias를 더하는 부분을 없애기 위해선 &lt;a href=&quot;https://dsaint31.tistory.com/742#1-2.%20Homogeneous%20Coordinates%EC%9D%98%20%ED%99%95%EC%9E%A5%EA%B3%BC%20%EB%B3%80%ED%99%98-1-3&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Homogeneous Coordinate&lt;/a&gt; 를 사용하면 됨.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;intercept를 parameter vector와 input vector에 포함하면 다음처럼 쓸 수 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\hat{y}_i = {\boldsymbol{\omega}'}^\top \mathbf{x}'_i&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때 $\mathbf{x}'_i$와 $\boldsymbol{\omega}'$는 다음과 같음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\mathbf{x}'_i =&lt;br /&gt;\begin{bmatrix}&lt;br /&gt;1 \\&lt;br /&gt;x_{i1} \\&lt;br /&gt;x_{i2} \\&lt;br /&gt;\vdots \\&lt;br /&gt;x_{in}&lt;br /&gt;\end{bmatrix}&lt;br /&gt;\in \mathbb{R}^{n+1},&lt;br /&gt;\qquad&lt;br /&gt;\boldsymbol{\omega}' =&lt;br /&gt;\begin{bmatrix}&lt;br /&gt;b \\&lt;br /&gt;\omega_1 \\&lt;br /&gt;\omega_2 \\&lt;br /&gt;\vdots \\&lt;br /&gt;\omega_n&lt;br /&gt;\end{bmatrix}&lt;br /&gt;\in \mathbb{R}^{n+1}&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;{\boldsymbol{\omega}'}^\top \mathbf{x}'_i =&lt;br /&gt;\begin{bmatrix}&lt;br /&gt;b &amp;amp; \omega_1 &amp;amp; \omega_2 &amp;amp; \cdots &amp;amp; \omega_n&lt;br /&gt;\end{bmatrix}&lt;br /&gt;\begin{bmatrix}&lt;br /&gt;1 \\&lt;br /&gt;x_{i1} \\&lt;br /&gt;x_{i2} \\&lt;br /&gt;\vdots \\&lt;br /&gt;x_{in}&lt;br /&gt;\end{bmatrix}&lt;br /&gt;=&lt;br /&gt;b + \sum_{j=1}^{n} \omega_j x_{ij}&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 방식은 affine model을 homogeneous coordinate 형태로 바꾸어 linear form으로 표현한 것임.&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;\mathbf{x}_i =&lt;br /&gt;\begin{bmatrix}&lt;br /&gt;x_{i1} \\&lt;br /&gt;x_{i2} \\&lt;br /&gt;\vdots \\&lt;br /&gt;x_{in}&lt;br /&gt;\end{bmatrix}&lt;br /&gt;\in \mathbb{R}^{n},&lt;br /&gt;\qquad&lt;br /&gt;\mathbf{x}'_i =&lt;br /&gt;\begin{bmatrix}&lt;br /&gt;1 \\&lt;br /&gt;x_{i1} \\&lt;br /&gt;x_{i2} \\&lt;br /&gt;\vdots \\&lt;br /&gt;x_{in}&lt;br /&gt;\end{bmatrix}&lt;br /&gt;\in \mathbb{R}^{n+1}&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\boldsymbol{\omega} =&lt;br /&gt;\begin{bmatrix}&lt;br /&gt;\omega_1 \\&lt;br /&gt;\omega_2 \\&lt;br /&gt;\vdots \\&lt;br /&gt;\omega_n&lt;br /&gt;\end{bmatrix}&lt;br /&gt;\in \mathbb{R}^{n},&lt;br /&gt;\qquad&lt;br /&gt;\boldsymbol{\omega}' =&lt;br /&gt;\begin{bmatrix}&lt;br /&gt;b \\&lt;br /&gt;\omega_1 \\&lt;br /&gt;\omega_2 \\&lt;br /&gt;\vdots \\&lt;br /&gt;\omega_n&lt;br /&gt;\end{bmatrix}&lt;br /&gt;\in \mathbb{R}^{n+1}&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주의할 점은 $\mathbf{x}'_i$와 $\boldsymbol{\omega}'$를 $ (n+1) \times 1$이라고 써도 되지만, 보통은 vector space를 나타낼 때 $\mathbb{R}^{n+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;이후로는 편의를 위해 intercept를 포함한 방식을 기본으로 사용하고, &lt;br /&gt;표기는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$\mathbf{X'} \rightarrow \mathbf{X}, \boldsymbol{\omega}' \rightarrow \boldsymbol{\omega}, \mathbf{x}' \rightarrow \mathbf{x}$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로 바꾸어서 사용한다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. OLS&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/274&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2022.04.28 - [Programming/ML] - [Fitting] Ordinary Least Squares : OLS, 최소자승법&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1777126126292&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;[Fitting] Ordinary Least Squares : OLS, 최소자승법&quot; data-og-description=&quot;Ordinary Least Squares : OLS, 최소자승법Solution을 구할 수 없는 Over-determined system에서 solution의 approximation을 구하는 가장 기본적인 방법임.Machine Learning에서 Supervised Learning의 대표적인 task인 Regression을 &quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/274&quot; data-og-url=&quot;https://dsaint31.tistory.com/274&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bDLKw4/dJMb887bxg2/yO1hzWK0NUJR02A5QcSMm0/img.png?width=603&amp;amp;height=342&amp;amp;face=0_0_603_342,https://scrap.kakaocdn.net/dn/1yir2/dJMb85vRHFf/bklDbhXzLKIyE08LfNGdMK/img.png?width=603&amp;amp;height=342&amp;amp;face=0_0_603_342,https://scrap.kakaocdn.net/dn/Adz6b/dJMb81GZ3hJ/k5CZhQa0XAj8uoAoKccJW1/img.png?width=603&amp;amp;height=342&amp;amp;face=0_0_603_342&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/274&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/274&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bDLKw4/dJMb887bxg2/yO1hzWK0NUJR02A5QcSMm0/img.png?width=603&amp;amp;height=342&amp;amp;face=0_0_603_342,https://scrap.kakaocdn.net/dn/1yir2/dJMb85vRHFf/bklDbhXzLKIyE08LfNGdMK/img.png?width=603&amp;amp;height=342&amp;amp;face=0_0_603_342,https://scrap.kakaocdn.net/dn/Adz6b/dJMb81GZ3hJ/k5CZhQa0XAj8uoAoKccJW1/img.png?width=603&amp;amp;height=342&amp;amp;face=0_0_603_342');&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;[Fitting] Ordinary Least Squares : OLS, 최소자승법&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Ordinary Least Squares : OLS, 최소자승법Solution을 구할 수 없는 Over-determined system에서 solution의 approximation을 구하는 가장 기본적인 방법임.Machine Learning에서 Supervised Learning의 대표적인 task인 Regression을&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.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;OLS(Ordinary Least Squares)는 $y$ 방향의 residual의 제곱(squared)합을 최소화(least)함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\underset{\boldsymbol{\omega}}{\min}\left\| \mathbf{y} - \mathbf{X} \boldsymbol{\omega} \right\|_2^2$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;residual vector $\mathbf{e}$는 다음과 같음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\mathbf{e} = \mathbf{y} - \mathbf{X}\boldsymbol{\omega}, \qquad \mathbf{e} \in \mathbb{R}^{m}$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;OLS의 기본 error covariance assumption은 다음과 같음:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ \operatorname{Var}(\boldsymbol{\varepsilon}) = \sigma^2 \mathbf{I}_m$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모든 sample의 error variance가 같음: $\text{Var}(\varepsilon_i)= \sigma^2$&lt;/li&gt;
&lt;li&gt;sample 간 error covariance가 0임: $\text{Cov}(\varepsilon_i , \varepsilon_j)=0 \quad, i\ne j$&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. Regularization - Penalty term&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;OLS 의 objective function 에 penalty term이 추가된 경우로 설명하는 것이 일반적.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(단, WLS, GLS, TLS 등에도 Penalty term을 추가할 수 있음)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주의: Regularization이 된 경우는 Feature Scaling을 해줘야 제대로 동작함.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Ridge, LASSO, Elastic Net의 penalty는 coefficient 크기에 직접 작용하므로,&lt;/li&gt;
&lt;li&gt;feature scale이 서로 다르면 penalty가 feature별로 공정하게 적용되지 않을 수 있음.&lt;/li&gt;
&lt;li&gt;단, intercept(=bias) 는 penalty 대상에서 제외하는 게 일반적임.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3-1. Ridge Regression&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/947&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2025.11.06 - [Programming/ML] - Ridge Regression&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1777126181561&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;Ridge Regression&quot; data-og-description=&quot;명칭의 유래Ridge: &amp;quot;산등성이&amp;quot; 또는 &amp;quot;융기&amp;quot;를 의미하는 영어 단어L2-Regularization Term 추가 시 loss function의 contour가 융기된 형태로 변형되는 데에서 유래됨.역사적 배경Tikhonov regularization (1963)과 수학&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/947&quot; data-og-url=&quot;https://dsaint31.tistory.com/947&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/jfXL4/dJMb8U8Wi6W/oVk2BqyRgLhQvObWH6jL4k/img.jpg?width=720&amp;amp;height=314&amp;amp;face=0_0_720_314,https://scrap.kakaocdn.net/dn/cFDP8X/dJMb9kmfsnd/JhukoWLecIzo9UAe9Vsnw0/img.jpg?width=720&amp;amp;height=314&amp;amp;face=0_0_720_314,https://scrap.kakaocdn.net/dn/f5BVp/dJMb9b3ULSJ/TAXhzmamcBTMDWHJUWnHgk/img.jpg?width=720&amp;amp;height=314&amp;amp;face=0_0_720_314&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/947&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/947&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/jfXL4/dJMb8U8Wi6W/oVk2BqyRgLhQvObWH6jL4k/img.jpg?width=720&amp;amp;height=314&amp;amp;face=0_0_720_314,https://scrap.kakaocdn.net/dn/cFDP8X/dJMb9kmfsnd/JhukoWLecIzo9UAe9Vsnw0/img.jpg?width=720&amp;amp;height=314&amp;amp;face=0_0_720_314,https://scrap.kakaocdn.net/dn/f5BVp/dJMb9b3ULSJ/TAXhzmamcBTMDWHJUWnHgk/img.jpg?width=720&amp;amp;height=314&amp;amp;face=0_0_720_314');&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;Ridge Regression&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;명칭의 유래Ridge: &quot;산등성이&quot; 또는 &quot;융기&quot;를 의미하는 영어 단어L2-Regularization Term 추가 시 loss function의 contour가 융기된 형태로 변형되는 데에서 유래됨.역사적 배경Tikhonov regularization (1963)과 수학&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.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;Ridge Regression은 OLS objective에 L2 penalty를 추가한 방법임.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;참고로 intercept $b$ 는 penalty 대상에서 제외하는게 일반적임.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 $\mathbf{X}$와 $\boldsymbol{\omega}$ 는 Affine 에서 사용된 형태임($b$가 penalty에서 빠지므로)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Objective function 은 다음과 같음:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\underset{\boldsymbol{\omega}, b}{\min} \frac{1}{2m} \| \mathbf{y} - (\mathbf{X} \boldsymbol{\omega} + b\mathbf{1}) \|^2_2 + \alpha \| \boldsymbol{\omega} \| ^2_2$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Ridge는 다음 형태의 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;closed-form solution&lt;/b&gt;&lt;/span&gt;을 가질 수 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\boldsymbol{\omega}^* _{Ridge}&lt;br /&gt;=&lt;br /&gt;\left(&lt;br /&gt;\mathbf{X}^\top \mathbf{X} + \alpha\mathbf{I}_n \right)^{-1} \mathbf{X}^\top \mathbf{y}&lt;br /&gt;$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;위 식은 intercept 처리와 centering을 단순화한 표현임.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Closed Form을 가지므로 Direct 방식의 svd, &lt;b&gt;cholesky&lt;/b&gt; 등을 사용할 수 있으나, &lt;br /&gt;lsqr, &lt;b&gt;sparse_cg (sparse input)&lt;/b&gt;, sab, saga, &lt;b&gt;lbfgs (positive=True)&lt;/b&gt; 등의 iterative 방식도 사용가능함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.ridge_regression.html?utm_source=chatgpt.com&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.ridge_regression.html?utm_source=chatgpt.com&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1777129098661&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;ridge_regression&quot; data-og-description=&quot;Precision of the solution. Note that tol has no effect for solvers &amp;lsquo;svd&amp;rsquo; and &amp;lsquo;cholesky&amp;rsquo;. Changed in version 1.2: Default value changed from 1e-3 to 1e-4 for consistency with other linear models.&quot; data-og-host=&quot;scikit-learn.org&quot; data-og-source-url=&quot;https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.ridge_regression.html?utm_source=chatgpt.com&quot; data-og-url=&quot;https://scikit-learn/stable/modules/generated/sklearn.linear_model.ridge_regression.html&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/xIZ4M/dJMb88F7E8M/TOpuMF1cGKxcMGMB6sLIv1/img.png?width=277&amp;amp;height=150&amp;amp;face=0_0_277_150&quot;&gt;&lt;a href=&quot;https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.ridge_regression.html?utm_source=chatgpt.com&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.ridge_regression.html?utm_source=chatgpt.com&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/xIZ4M/dJMb88F7E8M/TOpuMF1cGKxcMGMB6sLIv1/img.png?width=277&amp;amp;height=150&amp;amp;face=0_0_277_150');&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;ridge_regression&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Precision of the solution. Note that tol has no effect for solvers &amp;lsquo;svd&amp;rsquo; and &amp;lsquo;cholesky&amp;rsquo;. Changed in version 1.2: Default value changed from 1e-3 to 1e-4 for consistency with other linear models.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;scikit-learn.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3-2. LASSO Regression&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/948&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2025.11.08 - [Programming/ML] - LASSO Regression&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1777126284945&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;LASSO Regression&quot; data-og-description=&quot;명칭의 유래LASSO: Least Absolute Shrinkage and Selection Operator 의 약자이름에서 알 수 있듯이,절대값(absolute value) 기반의shrinkage(축소)와feature selection(특성 선택)을 동시에 수행하는 회귀 기법&amp;ldquo;Shrinkage&amp;rdquo;&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/948&quot; data-og-url=&quot;https://dsaint31.tistory.com/948&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dXpiBP/dJMb8SpKFPt/CToW63Gvrq9KE8oMkXjOX0/img.jpg?width=341&amp;amp;height=420&amp;amp;face=0_0_341_420,https://scrap.kakaocdn.net/dn/E7f7i/dJMb88F7EWB/JjH5UyuWMMM9xv2iglCQPk/img.jpg?width=341&amp;amp;height=420&amp;amp;face=0_0_341_420,https://scrap.kakaocdn.net/dn/PkOGq/dJMb8956kFM/BoiONZhasmjcx3OSc4YXf0/img.png?width=602&amp;amp;height=399&amp;amp;face=0_0_602_399&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/948&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/948&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dXpiBP/dJMb8SpKFPt/CToW63Gvrq9KE8oMkXjOX0/img.jpg?width=341&amp;amp;height=420&amp;amp;face=0_0_341_420,https://scrap.kakaocdn.net/dn/E7f7i/dJMb88F7EWB/JjH5UyuWMMM9xv2iglCQPk/img.jpg?width=341&amp;amp;height=420&amp;amp;face=0_0_341_420,https://scrap.kakaocdn.net/dn/PkOGq/dJMb8956kFM/BoiONZhasmjcx3OSc4YXf0/img.png?width=602&amp;amp;height=399&amp;amp;face=0_0_602_399');&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;LASSO Regression&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;명칭의 유래LASSO: Least Absolute Shrinkage and Selection Operator 의 약자이름에서 알 수 있듯이,절대값(absolute value) 기반의shrinkage(축소)와feature selection(특성 선택)을 동시에 수행하는 회귀 기법&amp;ldquo;Shrinkage&amp;rdquo;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.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;LASSO는 OLS objective에 L1 penalty를 추가한 방법임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\underset{\boldsymbol{\omega}, b}{\min} \frac{1}{2m} \left\| \mathbf{y} -&lt;br /&gt;( \mathbf{X}\boldsymbol{\omega} + b\mathbf{1} ) \right\|_2^2 + \alpha \|\boldsymbol{\omega}\|_1&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;LASSO는 weight coefficient shrinkage와 feature selection 효과를 가짐.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;LASSO 의 특징:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;OLS + L1 penalty&lt;/li&gt;
&lt;li&gt;sparse weights 를 만듦 (weight shrinkage)&lt;/li&gt;
&lt;li&gt;일반적으로 &lt;b&gt;coordinate descent (iterative 방식)&lt;/b&gt;로 풂&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3-3. Elastic Net&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.me/mkdocs_site/ML/ch01/ch01_41/?h=elastic#4-elasticnet&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://dsaint31.me/mkdocs_site/ML/ch01/ch01_41/?h=elastic#4-elasticnet&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1777126350997&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;BME&quot; data-og-description=&quot;bagging boosting ensemble machine learning random forest regression scikit-learn support vector machine [ML] Classic Regressor (Summary) DeepLearning 계열을 제외한 Regressor 모델들을 간단하게 정리함. ​ 분류 Instance Based Algorithm Mod&quot; data-og-host=&quot;dsaint31.me&quot; data-og-source-url=&quot;https://dsaint31.me/mkdocs_site/ML/ch01/ch01_41/?h=elastic#4-elasticnet&quot; data-og-url=&quot;https://dsaint31.me/mkdocs_site/ML/ch01/ch01_41/?h=elastic#4-elasticnet&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/edxKCc/dJMb88F7EW8/XAKfSJoo9u2V3WSFSMVBw0/img.png?width=2752&amp;amp;height=1536&amp;amp;face=0_0_2752_1536&quot;&gt;&lt;a href=&quot;https://dsaint31.me/mkdocs_site/ML/ch01/ch01_41/?h=elastic#4-elasticnet&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.me/mkdocs_site/ML/ch01/ch01_41/?h=elastic#4-elasticnet&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/edxKCc/dJMb88F7EW8/XAKfSJoo9u2V3WSFSMVBw0/img.png?width=2752&amp;amp;height=1536&amp;amp;face=0_0_2752_1536');&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;BME&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;bagging boosting ensemble machine learning random forest regression scikit-learn support vector machine [ML] Classic Regressor (Summary) DeepLearning 계열을 제외한 Regressor 모델들을 간단하게 정리함. ​ 분류 Instance Based Algorithm Mod&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.me&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;Elastic Net은 L1 penalty와 L2 penalty를 함께 사용하는 방법임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\underset{\boldsymbol{\omega}, b}{\min}\frac{1}{2m}&lt;br /&gt;\left \| \mathbf{y} - ( \mathbf{X} \boldsymbol{\omega} + b\mathbf{1} ) \right\|_2^2 + \alpha \left( \rho \| \boldsymbol{\omega} \|_1 + \frac{1-\rho}{2} \|\boldsymbol{\omega} \|_2^2 \right)$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 $\rho$는 L1과 L2의 비율을 조절하는 값임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;scikit-learn에서는 이를 &lt;code&gt;l1_ratio&lt;/code&gt;라고 부름.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;L2 penalty 쪽의 $\frac{1}{2}$ 는 미분 시 $2$가 사라지도록 하기 위한 관례적 상수임.&lt;/li&gt;
&lt;li&gt;따라서 개념적으로는 $\rho$와 $1-\rho$의 혼합으로 이해하면 됨.&lt;/li&gt;
&lt;li&gt;일반적으로&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;coordinate descent (iterative 방식)&lt;/b&gt;로 풂&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. Error Variance 의 차이&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;OLS는 $\mathbf{X}$를 fixed 또는 error-free로 두고, $\mathbf{y}$에만 error term $\boldsymbol{\varepsilon}$이 있다고 가정함.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;OLS의 기본 가정은 각 sample의 error variance가 동일하고, 서로 다른 sample의 error term 간 covariance가 0이라는 것임.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;WLS와 GLS도 OLS와 마찬가지로 $\mathbf{X}$는 fixed 또는 error-free로 두지만, $\mathbf{y}$의 error term $\boldsymbol{\varepsilon}$에 대한 covariance matrix를 다르게 가정함.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;WLS: 각 sample의 error variance가 다를 수 있으나, 서로 다른 sample의 error term 간 covariance는 0이라고 가정함.&lt;/li&gt;
&lt;li&gt;GLS: 각 sample의 error variance가 다를 수 있으며, 서로 다른 sample의 error term 간 covariance도 0이 아닐 수 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4-1. WLS&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/738&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2024.06.13 - [.../Math] - [Math] Weighted Least Squares&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1777126392274&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;[Math] Weighted Least Squares&quot; data-og-description=&quot;Weighted Least Squares(WLS)는sample마다 error variance가 다를 수 있다고 보고,각 residual 제곱항에 보통 $\frac{1}{\sigma_i^2}$에 비례하는 weight을 주어 추정하는 Least Squares 방법임.아래와 같이 error term의 variance&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/738&quot; data-og-url=&quot;https://dsaint31.tistory.com/738&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/xKroo/dJMb9eTSmwr/e5p3kIPaiVcRgiBLh9hAN1/img.png?width=646&amp;amp;height=474&amp;amp;face=0_0_646_474,https://scrap.kakaocdn.net/dn/cF29p3/dJMb82MFODY/8RURGtX44udY6iXQlMIyD1/img.png?width=646&amp;amp;height=474&amp;amp;face=0_0_646_474,https://scrap.kakaocdn.net/dn/GfUwP/dJMb9dHqSZD/HqLLftUnFeYqojpsLtOmuk/img.png?width=646&amp;amp;height=474&amp;amp;face=0_0_646_474&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/738&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/738&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/xKroo/dJMb9eTSmwr/e5p3kIPaiVcRgiBLh9hAN1/img.png?width=646&amp;amp;height=474&amp;amp;face=0_0_646_474,https://scrap.kakaocdn.net/dn/cF29p3/dJMb82MFODY/8RURGtX44udY6iXQlMIyD1/img.png?width=646&amp;amp;height=474&amp;amp;face=0_0_646_474,https://scrap.kakaocdn.net/dn/GfUwP/dJMb9dHqSZD/HqLLftUnFeYqojpsLtOmuk/img.png?width=646&amp;amp;height=474&amp;amp;face=0_0_646_474');&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;[Math] Weighted Least Squares&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Weighted Least Squares(WLS)는sample마다 error variance가 다를 수 있다고 보고,각 residual 제곱항에 보통 $\frac{1}{\sigma_i^2}$에 비례하는 weight을 주어 추정하는 Least Squares 방법임.아래와 같이 error term의 variance&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.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;WLS(Weighted Least Squares)는 sample마다 error variance가 다르다고 보는 방법임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, error covariance matrix가 diagonal matrix인 경우임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\operatorname{Var}(\boldsymbol{\varepsilon}) =&lt;br /&gt;\begin{bmatrix}&lt;br /&gt;\sigma_1^2 &amp;amp; 0 &amp;amp; \cdots &amp;amp; 0 \\&lt;br /&gt;0 &amp;amp; \sigma_2^2 &amp;amp; \cdots &amp;amp; 0 \\&lt;br /&gt;\vdots &amp;amp; \vdots &amp;amp; \ddots &amp;amp; \vdots \\&lt;br /&gt;0 &amp;amp; 0 &amp;amp; \cdots &amp;amp; \sigma_m^2 \\&lt;br /&gt;\end{bmatrix}&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 WLS의 error covariance matrix 차원은 다음과 같음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\operatorname{Var}(\boldsymbol{\varepsilon})&lt;br /&gt;\in&lt;br /&gt;\mathbb{R}^{m \times m}&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;WLS objective는 다음과 같음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\underset{\boldsymbol{\omega}}{\min}&lt;br /&gt;\left(&lt;br /&gt;\mathbf{y}&lt;br /&gt;-&lt;br /&gt;\mathbf{X} \boldsymbol{\omega}&lt;br /&gt;\right)^\top&lt;br /&gt;\mathbf{W}&lt;br /&gt;\left(&lt;br /&gt;\mathbf{y}&lt;br /&gt;-&lt;br /&gt;\mathbf{X}\boldsymbol{\omega}&lt;br /&gt;\right) \\ \underset{\boldsymbol{\omega}}{\min} \sum^m_{i=1} w_i (y_i - \mathbf{x}_i^\top \boldsymbol{\omega})^2$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 $\mathbf{W}$는 weight matrix임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\mathbf{W}&lt;br /&gt;=&lt;br /&gt;\begin{bmatrix}&lt;br /&gt;w_1 &amp;amp; 0 &amp;amp; \cdots &amp;amp; 0 \\&lt;br /&gt;0 &amp;amp; w_2 &amp;amp; \cdots &amp;amp; 0 \\&lt;br /&gt;\vdots &amp;amp; \vdots &amp;amp; \ddots &amp;amp; \vdots \\&lt;br /&gt;0 &amp;amp; 0 &amp;amp; \cdots &amp;amp; w_m&lt;br /&gt;\end{bmatrix}&lt;br /&gt;\in&lt;br /&gt;\mathbb{R}^{m \times m}&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보통 weight는 error variance의 inverse에 비례함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;w_i \propto \frac{1}{\sigma_i^2}&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, measurement error variance가 큰 sample은 덜 믿고, variance가 작은 sample은 더 크게 반영함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;WLS 의 solution 은 다음과 같음:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\boldsymbol{\omega}^*_{WLS}&lt;br /&gt;=&lt;br /&gt;\left(&lt;br /&gt;\mathbf{X}^\top&lt;br /&gt;\mathbf{W}&lt;br /&gt;\mathbf{X}&lt;br /&gt;\right)^{-1}&lt;br /&gt;\mathbf{X}^\top&lt;br /&gt;\mathbf{W}&lt;br /&gt;\mathbf{y}&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;차원은 다음과 같음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\mathbf{X}^\top&lt;br /&gt;\mathbf{W}&lt;br /&gt;\mathbf{X}&lt;br /&gt;\in&lt;br /&gt;\mathbb{R}^{(n+1)\times(n+1)}&lt;br /&gt;$$&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4-2. GLS&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GLS(Generalized Least Squares)는 WLS보다 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;더 일반적인 Least Squares&lt;/b&gt;&lt;/span&gt;임.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;WLS는 error covariance matrix가 diagonal인 경우로 각 sample에서의 error variance가 다를 수 있지만 각각은 독립인데 반해,&lt;/li&gt;
&lt;li&gt;GLS는 error covariance matrix가 일반적인 $m \times m$ matrix 로서, 각 sample에서의 error variance가 다를 수 있으면서 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;각각이 항상 독립이 보장되지 않는 경우&lt;/b&gt;&lt;/span&gt;임.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Error &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;covariance&lt;/b&gt; &lt;/span&gt;matrix는 다음과 같음 (대각행렬로 제한되지 않음):&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\operatorname{Var}(\boldsymbol{\varepsilon})&lt;br /&gt;=&lt;br /&gt;\sigma^2 \mathbf{\Omega}&lt;br /&gt;$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$\mathbf{\Omega}$ :
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Scale-free error covariancee matrix (or Structure matrix)&lt;/li&gt;
&lt;li&gt;이는 error간의 상관관계 구조와 상대적인 가중치만을 담고 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;covariance (공분산) 에 대한 보다 자세한 내용은 다음을 참고:&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/278&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2022.05.01 - [.../Math] - [Statistics] Covariance vs. Correlation:&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1778288399179&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;[Statistics] Covariance vs. Correlation:&quot; data-og-description=&quot;Covariance (공분산)&amp;quot;Covariance&amp;quot; is the raw version of correlation.두 random variable(확률변수)가 얼마나 (선형적으로) 같이 변하는 정도를 나타냄.여러 random variables 에서는 matrix로 기재됨(covariance matrix, $\Sigma$).ma&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/278&quot; data-og-url=&quot;https://dsaint31.tistory.com/278&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/I3CvX/dJMb9jOrcnB/4Qs5QbU3hnzr4lASjKqPh0/img.png?width=800&amp;amp;height=364&amp;amp;face=0_0_800_364,https://scrap.kakaocdn.net/dn/qlbQR/dJMb9iaVqCD/PDgFsvwN9dLHzhLKKfAafk/img.png?width=800&amp;amp;height=364&amp;amp;face=0_0_800_364,https://scrap.kakaocdn.net/dn/jcNjK/dJMb9jgBAXg/nEpJkIWl34YWpUIZtNSSak/img.png?width=1024&amp;amp;height=467&amp;amp;face=0_0_1024_467&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/278&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/278&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/I3CvX/dJMb9jOrcnB/4Qs5QbU3hnzr4lASjKqPh0/img.png?width=800&amp;amp;height=364&amp;amp;face=0_0_800_364,https://scrap.kakaocdn.net/dn/qlbQR/dJMb9iaVqCD/PDgFsvwN9dLHzhLKKfAafk/img.png?width=800&amp;amp;height=364&amp;amp;face=0_0_800_364,https://scrap.kakaocdn.net/dn/jcNjK/dJMb9jgBAXg/nEpJkIWl34YWpUIZtNSSak/img.png?width=1024&amp;amp;height=467&amp;amp;face=0_0_1024_467');&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;[Statistics] Covariance vs. Correlation:&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Covariance (공분산)&quot;Covariance&quot; is the raw version of correlation.두 random variable(확률변수)가 얼마나 (선형적으로) 같이 변하는 정도를 나타냄.여러 random variables 에서는 matrix로 기재됨(covariance matrix, $\Sigma$).ma&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.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;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\mathbf{\Omega} \in \mathbb{R}^{m \times m}&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 원소는 다음을 의미함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\sigma^2 \Omega_{ij}&lt;br /&gt;=&lt;br /&gt;\operatorname{Cov}&lt;br /&gt;\left(&lt;br /&gt;\varepsilon^{(i)},&lt;br /&gt;\varepsilon^{(j)}&lt;br /&gt;\right)&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, GLS는 다음을 허용함.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;sample마다 error variance가 다름&lt;/li&gt;
&lt;li&gt;&lt;u&gt;&lt;b&gt;서로 다른 sample의 error가 correlated&lt;/b&gt; &lt;/u&gt;될 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GLS objective는 다음과 같음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\underset{\mathbf{\omega}}{\min}&lt;br /&gt;\left(&lt;br /&gt;\mathbf{y}&lt;br /&gt;-&lt;br /&gt;\mathbf{X}\boldsymbol{\omega}&lt;br /&gt;\right)^T&lt;br /&gt;\mathbf{\Omega}^{-1}&lt;br /&gt;\left(&lt;br /&gt;\mathbf{y}&lt;br /&gt;-&lt;br /&gt;\mathbf{X}\boldsymbol{\omega}&lt;br /&gt;\right)&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GLS 해는 다음과 같음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\boldsymbol{\omega}^*_{GLS}&lt;br /&gt;=&lt;br /&gt;\left(&lt;br /&gt;\mathbf{X}^\top&lt;br /&gt;\mathbf{\Omega}^{-1}&lt;br /&gt;\mathbf{X}&lt;br /&gt;\right)^{-1}&lt;br /&gt;\mathbf{X}^\top&lt;br /&gt;\mathbf{\Omega}^{-1}&lt;br /&gt;\mathbf{y}&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;OLS, WLS, GLS의 포함 관계는 다음과 같음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\text{OLS} \subset \text{WLS} \subset \text{GLS}&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단, 여기서 포함 관계는 &amp;ldquo;error covariance structure의 일반성&amp;rdquo; 기준임.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;5. TLS&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/747&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2024.06.22 - [Programming/ML] - [Fitting] Total Least Squares Regression&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1777126469158&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;[Fitting] Total Least Squares Regression&quot; data-og-description=&quot;Total Least Squares (TLS) RegressionTotal Least Squares (TLS) 회귀는 데이터의 모든 방향에서의 오차를 최소화하는 회귀 방법임.이는 특히 독립 변수 와 종속 변수 모두에 오차가 포함되어 있는 경우에 유용함&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/747&quot; data-og-url=&quot;https://dsaint31.tistory.com/747&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bEhPEt/dJMb83kvDff/XbpyhSVpseEsHRRxlTPeEk/img.jpg?width=800&amp;amp;height=626&amp;amp;face=0_0_800_626,https://scrap.kakaocdn.net/dn/bdSn3m/dJMb81fVjzc/CkgZAZx7p0OsaJfbvsUtSk/img.jpg?width=800&amp;amp;height=626&amp;amp;face=0_0_800_626,https://scrap.kakaocdn.net/dn/wdnZP/dJMb9kT5EoL/MXyMjyz2boWVUhxwXTEtcK/img.jpg?width=1163&amp;amp;height=911&amp;amp;face=0_0_1163_911&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/747&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/747&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bEhPEt/dJMb83kvDff/XbpyhSVpseEsHRRxlTPeEk/img.jpg?width=800&amp;amp;height=626&amp;amp;face=0_0_800_626,https://scrap.kakaocdn.net/dn/bdSn3m/dJMb81fVjzc/CkgZAZx7p0OsaJfbvsUtSk/img.jpg?width=800&amp;amp;height=626&amp;amp;face=0_0_800_626,https://scrap.kakaocdn.net/dn/wdnZP/dJMb9kT5EoL/MXyMjyz2boWVUhxwXTEtcK/img.jpg?width=1163&amp;amp;height=911&amp;amp;face=0_0_1163_911');&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;[Fitting] Total Least Squares Regression&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Total Least Squares (TLS) RegressionTotal Least Squares (TLS) 회귀는 데이터의 모든 방향에서의 오차를 최소화하는 회귀 방법임.이는 특히 독립 변수 와 종속 변수 모두에 오차가 포함되어 있는 경우에 유용함&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.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;TLS(Total Least Squares)는 OLS, WLS, GLS와 관점이 다름.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;OLS, WLS, GLS는 기본적으로 $\mathbf{X}$는 fixed 또는 error-free라고 보고, $\mathbf{y}$ 쪽 residual을 최소화함.&lt;/li&gt;
&lt;li&gt;반면 TLS는 $\mathbf{X}$와 $\mathbf{y}$ 양쪽에 measurement error가 있다고 봄.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;OLS 계열에서는 이상적인 경우의 모델은 다음과 같음:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\mathbf{y}=\mathbf{X}\boldsymbol{\omega}+\boldsymbol{\varepsilon}$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 TLS에서는 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;관측된 $\mathbf{X}$와 $\mathbf{y}$ 모두 오차를 포함&lt;/b&gt;&lt;/span&gt;한다고 봄.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\left( \mathbf{X} + \Delta \mathbf{X} \right)\boldsymbol{\omega}&lt;br /&gt;=&lt;br /&gt;\mathbf{y} + \Delta \mathbf{y}&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;TLS는 다음 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;perturbation&lt;/b&gt; &lt;/span&gt;(작은 변화량,수정량을 뜻함: correction)을 최소화함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;( $&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;[ \mathbf{&lt;/span&gt;&lt;span&gt;X}&lt;/span&gt;&lt;span&gt; \mathbf{&lt;/span&gt;&lt;span&gt;y} &lt;/span&gt;&lt;span&gt;]$&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; 전체의 Euclidean perturbation을 최소화하기 때문에 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Feature Scaling이 매우 중요&lt;/b&gt;&lt;/span&gt;)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\underset{\Delta \mathbf{X}, \Delta \mathbf{y}, \boldsymbol{\omega}}{\min}&lt;br /&gt;\|&lt;br /&gt;\left[&lt;br /&gt;\Delta \mathbf{X}&lt;br /&gt;\&lt;br /&gt;\Delta \mathbf{y}&lt;br /&gt;\right]&lt;br /&gt;\|_F^2&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;subject to&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;( \mathbf{X} + \Delta \mathbf{X}) \boldsymbol{\omega}&lt;br /&gt;=&lt;br /&gt;\mathbf{y} + \Delta \mathbf{y}&lt;br /&gt;$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;여기서 $\| \mathbf{A} \| _F = \displaystyle \sqrt{ \sum^m_{i=1} \sum^n_{j=1} a^2 _{ij} }$ 이며, Frobenius norm이라고 불림.&lt;/li&gt;
&lt;li&gt;위의 식에선 $\mathbf{X}$와 $\mathbf{y}$에서 발생한 모든 correction (or error) 의 제곱합임.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$\Delta \mathbf{X}$와 $\Delta \mathbf{y}$는 &lt;br /&gt;실제 관측값에 섞여 있다고 가정하는 &lt;br /&gt;measurement error 또는 &lt;br /&gt;해당 error를 제거하기 위한 작은 correction으로 해석됨.&lt;br /&gt;즉, 이들의 모든 원소를 각각 제곱하여 합한 값을 최소화하는 것이 TLS에서 요구됨.&lt;/p&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;TLS에서 augmented data matrix는 다음과 같음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\mathbf{A}&lt;br /&gt;=&lt;br /&gt;[&lt;br /&gt;\mathbf{X}&lt;br /&gt;\&lt;br /&gt;\mathbf{y}&lt;br /&gt;]&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;차원은 다음과 같음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\mathbf{A}&lt;br /&gt;\in&lt;br /&gt;\mathbb{R}^{m \times (n+2)}&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 $\mathbf{X}$가 intercept column을 이미 포함하므로 $(n+1)$개의 column을 가지고, $\mathbf{y}$ column이 하나 더 붙어 총 $(n+2)$개 column이 됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;Standard TLS는 &lt;br /&gt;보통 SVD를 이용해 풂.&lt;/span&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;TLS 의 특징&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$\mathbf{X}$ 와 $\mathbf{y}$ 양쪽에 measurement error 존재&lt;/li&gt;
&lt;li&gt;vertical residual이 아니라 orthogonal residual 관점&lt;/li&gt;
&lt;li&gt;augmented matrix $\left[ \mathbf{X} \ \mathbf{y} \right]$ 사용&lt;/li&gt;
&lt;li&gt;대표 solver: SVD&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기본 TLS는&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt; SVD 기반 closed-form/direct solution이 가능&lt;/b&gt;&lt;/span&gt;하지만,&lt;br /&gt;penalty, 구조 제약, weight, robustness 조건등이 들어간 TLS는&lt;br /&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;iterative optimization으로 푸는 것이 보다 일반적&lt;/b&gt;&lt;/span&gt;임.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;참고: 차원 정리&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;intercept를 포함한 경우임.&lt;/p&gt;
&lt;table style=&quot;height: 302px;&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px; text-align: center;&quot;&gt;&lt;b&gt;기호&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px; text-align: center;&quot;&gt;&lt;b&gt;의미&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 21px; text-align: center;&quot;&gt;&lt;b&gt;차원&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;$m$&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;sample 수&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;scalar&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;$n$&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;feature 수&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;scalar&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;$\mathbf{X}$&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;intercept 포함 design matrix&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;$m \times (n+1)$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;$\boldsymbol{\omega}$&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;itercept 포함 parameter vector&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;$(n+1) \times 1$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;$\mathbf{y}$&lt;/td&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;target vector&lt;/td&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;$m \times 1$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;$\hat{\mathbf{y}}$&lt;/td&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;predicted value vector&lt;/td&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;$m \times 1$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;$\mathbf{e}$&lt;/td&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;residual vector&lt;/td&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;$m \times 1$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;$\boldsymbol{\varepsilon}$&lt;/td&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;error vector&lt;/td&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;$m \times 1$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;$\mathbf{W}$&lt;/td&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;WLS weight matrix&lt;/td&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;$m \times m$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;$\mathbf{\Omega}$&lt;/td&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;GLS error covariance matrix&lt;/td&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;$m \times m$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;$\mathbf{X}^\top \mathbf{X}$&lt;/td&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;feature-feature Gram matrix&lt;/td&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;$(n+1)\times(n+1)$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;$\mathbf{X}^\top \mathbf{W} \mathbf{X}$&lt;/td&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;WLS parameter system matrix&lt;/td&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;$(n+1)\times(n+1)$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;${\mathbf{X}}^\top \mathbf{\Omega}^{-1} \mathbf{X}$&lt;/td&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;GLS parameter system matrix&lt;/td&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;$(n+1)\times(n+1)$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;$[\mathbf{X}\ \mathbf{y}]$&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;TLS augmented matrix, intercept 포함&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;$m \times (n+2)$&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;요약&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;sample 수를 $m$, feature 수를 $n$으로 두면, intercept를 포함한 design matrix는 $\mathbf{X}\in\mathbb{R}^{m\times (n+1)}$임.&lt;/li&gt;
&lt;li&gt;OLS는 $y$ 방향 residual의 제곱합을 최소화하는 기본 least squares임.&lt;/li&gt;
&lt;li&gt;Ridge, LASSO, Elastic Net은 OLS objective에 regularization penalty를 추가한 penalized least squares 계열임.&lt;/li&gt;
&lt;li&gt;WLS는 sample별 error variance가 다를 때 diagonal weight matrix $\mathbf{W}\in\mathbb{R}^{m\times m}$를 사용하는 방법임.&lt;/li&gt;
&lt;li&gt;GLS는 sample error들 사이의 covariance까지 포함하여 $\mathbf{\Omega}\in\mathbb{R}^{m\times m}$를 사용하는 WLS의 일반화임.&lt;/li&gt;
&lt;li&gt;TLS는 $X$와 $y$ 양쪽에 measurement error가 있다고 보고, vertical residual이 아니라 orthogonal residual 또는 total perturbation을 최소화하는 방법임.&lt;/li&gt;
&lt;li&gt;Normal equation, QR, SVD, WLS direct solve, GLS direct solve는 direct linear algebra 계열이고, GD, SGD, coordinate descent는 iterative optimization 계열임.&lt;/li&gt;
&lt;li&gt;OLS와 WLS에서는 feature scaling이 필수는 아니지만, Penalized Linear Regression과 TLS에서는 scale이 objective function에 직접적인 영향을 주므로 일반적으로 scaling을 수행해야 함.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;같이보면 좋은 자료들&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.me/mkdocs_site/ML/ch01/ch01_41/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://dsaint31.me/mkdocs_site/ML/ch01/ch01_41/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1777292587763&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;BME&quot; data-og-description=&quot;bagging boosting ensemble machine learning random forest regression scikit-learn support vector machine [ML] Classic Regressor (Summary) DeepLearning 계열을 제외한 Regressor 모델들을 간단하게 정리함. ​ 분류 Instance Based Algorithm Mod&quot; data-og-host=&quot;dsaint31.me&quot; data-og-source-url=&quot;https://dsaint31.me/mkdocs_site/ML/ch01/ch01_41/&quot; data-og-url=&quot;https://dsaint31.me/mkdocs_site/ML/ch01/ch01_41/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dxFWo7/dJMb9aKH2lv/aOq76AkLdqVDUj2ytr8FeK/img.png?width=2752&amp;amp;height=1536&amp;amp;face=0_0_2752_1536&quot;&gt;&lt;a href=&quot;https://dsaint31.me/mkdocs_site/ML/ch01/ch01_41/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.me/mkdocs_site/ML/ch01/ch01_41/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dxFWo7/dJMb9aKH2lv/aOq76AkLdqVDUj2ytr8FeK/img.png?width=2752&amp;amp;height=1536&amp;amp;face=0_0_2752_1536');&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;BME&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;bagging boosting ensemble machine learning random forest regression scikit-learn support vector machine [ML] Classic Regressor (Summary) DeepLearning 계열을 제외한 Regressor 모델들을 간단하게 정리함. ​ 분류 Instance Based Algorithm Mod&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.me&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/278&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2022.05.01 - [.../Math] - [Statistics] Covariance vs. Correlation:&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1778288448263&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;[Statistics] Covariance vs. Correlation:&quot; data-og-description=&quot;Covariance (공분산)&amp;quot;Covariance&amp;quot; is the raw version of correlation.두 random variable(확률변수)가 얼마나 (선형적으로) 같이 변하는 정도를 나타냄.여러 random variables 에서는 matrix로 기재됨(covariance matrix, $\Sigma$).ma&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/278&quot; data-og-url=&quot;https://dsaint31.tistory.com/278&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/I3CvX/dJMb9jOrcnB/4Qs5QbU3hnzr4lASjKqPh0/img.png?width=800&amp;amp;height=364&amp;amp;face=0_0_800_364,https://scrap.kakaocdn.net/dn/qlbQR/dJMb9iaVqCD/PDgFsvwN9dLHzhLKKfAafk/img.png?width=800&amp;amp;height=364&amp;amp;face=0_0_800_364,https://scrap.kakaocdn.net/dn/jcNjK/dJMb9jgBAXg/nEpJkIWl34YWpUIZtNSSak/img.png?width=1024&amp;amp;height=467&amp;amp;face=0_0_1024_467&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/278&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/278&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/I3CvX/dJMb9jOrcnB/4Qs5QbU3hnzr4lASjKqPh0/img.png?width=800&amp;amp;height=364&amp;amp;face=0_0_800_364,https://scrap.kakaocdn.net/dn/qlbQR/dJMb9iaVqCD/PDgFsvwN9dLHzhLKKfAafk/img.png?width=800&amp;amp;height=364&amp;amp;face=0_0_800_364,https://scrap.kakaocdn.net/dn/jcNjK/dJMb9jgBAXg/nEpJkIWl34YWpUIZtNSSak/img.png?width=1024&amp;amp;height=467&amp;amp;face=0_0_1024_467');&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;[Statistics] Covariance vs. Correlation:&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Covariance (공분산)&quot;Covariance&quot; is the raw version of correlation.두 random variable(확률변수)가 얼마나 (선형적으로) 같이 변하는 정도를 나타냄.여러 random variables 에서는 matrix로 기재됨(covariance matrix, $\Sigma$).ma&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/738&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2024.06.13 - [.../Math] - [Math] Weighted Least Squares&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1778288456266&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;[Math] Weighted Least Squares&quot; data-og-description=&quot;Weighted Least Squares(WLS)는sample마다 error variance가 다를 수 있다고 보고,각 residual 제곱항에 보통 $\frac{1}{\sigma_i^2}$에 비례하는 weight을 주어 추정하는 Least Squares 방법임.아래와 같이 error term의 variance&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/738&quot; data-og-url=&quot;https://dsaint31.tistory.com/738&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Gsjb8/dJMb9kT7fXE/J8my8tAPg6vJiN22rQH3q1/img.png?width=646&amp;amp;height=474&amp;amp;face=0_0_646_474,https://scrap.kakaocdn.net/dn/cgqzqv/dJMb9gxpIHT/8JMBszcjNFpOeibE2etyW0/img.png?width=646&amp;amp;height=474&amp;amp;face=0_0_646_474,https://scrap.kakaocdn.net/dn/AlRsK/dJMb9bv6yje/DxOOFzjg5OonDqz4Zqz2H1/img.png?width=646&amp;amp;height=474&amp;amp;face=0_0_646_474&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/738&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/738&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Gsjb8/dJMb9kT7fXE/J8my8tAPg6vJiN22rQH3q1/img.png?width=646&amp;amp;height=474&amp;amp;face=0_0_646_474,https://scrap.kakaocdn.net/dn/cgqzqv/dJMb9gxpIHT/8JMBszcjNFpOeibE2etyW0/img.png?width=646&amp;amp;height=474&amp;amp;face=0_0_646_474,https://scrap.kakaocdn.net/dn/AlRsK/dJMb9bv6yje/DxOOFzjg5OonDqz4Zqz2H1/img.png?width=646&amp;amp;height=474&amp;amp;face=0_0_646_474');&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;[Math] Weighted Least Squares&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Weighted Least Squares(WLS)는sample마다 error variance가 다를 수 있다고 보고,각 residual 제곱항에 보통 $\frac{1}{\sigma_i^2}$에 비례하는 weight을 주어 추정하는 Least Squares 방법임.아래와 같이 error term의 variance&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/747&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2024.06.22 - [Programming/ML] - [Fitting] Total Least Squares Regression&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1778288464003&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;[Fitting] Total Least Squares Regression&quot; data-og-description=&quot;Total Least Squares (TLS) RegressionTotal Least Squares (TLS) 회귀는 데이터의 모든 방향에서의 오차를 최소화하는 회귀 방법임.이는 특히 독립 변수 와 종속 변수 모두에 오차가 포함되어 있는 경우에 유용함&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/747&quot; data-og-url=&quot;https://dsaint31.tistory.com/747&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/gFBQA/dJMb9lMfLt2/WxvQrg5LkmQDi4WKCqAK5k/img.jpg?width=800&amp;amp;height=626&amp;amp;face=0_0_800_626,https://scrap.kakaocdn.net/dn/pYvC8/dJMb9eTTTQb/Oy89kXAYM68vQKkWvCzxt1/img.jpg?width=800&amp;amp;height=626&amp;amp;face=0_0_800_626,https://scrap.kakaocdn.net/dn/c6dkSe/dJMb88e4ZsE/3KOpREFZG9UW5j2Xkrytu1/img.jpg?width=1163&amp;amp;height=911&amp;amp;face=0_0_1163_911&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/747&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/747&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/gFBQA/dJMb9lMfLt2/WxvQrg5LkmQDi4WKCqAK5k/img.jpg?width=800&amp;amp;height=626&amp;amp;face=0_0_800_626,https://scrap.kakaocdn.net/dn/pYvC8/dJMb9eTTTQb/Oy89kXAYM68vQKkWvCzxt1/img.jpg?width=800&amp;amp;height=626&amp;amp;face=0_0_800_626,https://scrap.kakaocdn.net/dn/c6dkSe/dJMb88e4ZsE/3KOpREFZG9UW5j2Xkrytu1/img.jpg?width=1163&amp;amp;height=911&amp;amp;face=0_0_1163_911');&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;[Fitting] Total Least Squares Regression&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Total Least Squares (TLS) RegressionTotal Least Squares (TLS) 회귀는 데이터의 모든 방향에서의 오차를 최소화하는 회귀 방법임.이는 특히 독립 변수 와 종속 변수 모두에 오차가 포함되어 있는 경우에 유용함&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/ML</category>
      <category>GLS</category>
      <category>linear regression</category>
      <category>regression</category>
      <author>dsaint31x</author>
      <guid isPermaLink="true">https://dsaint31.tistory.com/960</guid>
      <comments>https://dsaint31.tistory.com/960#entry960comment</comments>
      <pubDate>Sat, 25 Apr 2026 23:16:56 +0900</pubDate>
    </item>
    <item>
      <title>Bootstrap Sampling 기반 Accuracy 추정 지표</title>
      <link>https://dsaint31.tistory.com/959</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1672&quot; data-origin-height=&quot;941&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bQBYG8/dJMcaarUtxg/OHsugbNgM8Tlb9CEjWxfNK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bQBYG8/dJMcaarUtxg/OHsugbNgM8Tlb9CEjWxfNK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bQBYG8/dJMcaarUtxg/OHsugbNgM8Tlb9CEjWxfNK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQBYG8%2FdJMcaarUtxg%2FOHsugbNgM8Tlb9CEjWxfNK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;800&quot; height=&quot;450&quot; data-origin-width=&quot;1672&quot; data-origin-height=&quot;941&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;0. 왜 Bootstrap Accuracy Estimation이 필요한가&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모델 성능 평가의 이상적인 방법은 독립적인 test set을 사용하는 것임.&lt;/li&gt;
&lt;li&gt;하지만 데이터가 부족한 경우, 충분한 test set을 확보하기 어려움.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Bootstrap accuracy estimation은&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;복원 추출(sampling with replacement)&lt;/b&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt; 을 반복(Bootstrap Iteration)하여&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;하나의 dataset으로 여러 training/evaluation 조합을 만들고&amp;nbsp;&lt;/li&gt;
&lt;li&gt;이를 통해 모델의 일반화 성능을 추정하는 방법임.&lt;/li&gt;
&lt;li&gt;단일 train/test split 의 경우와 비교하여 &quot;분산(variance)을 줄인 &lt;b&gt;보다 안정적인 성능 추정&quot;&lt;/b&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt; 이 가능&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/732&quot;&gt;2024.06.05 - [.../Math] - [ML] Bootstrap Sampling&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1778580107118&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;[ML] Bootstrap Sampling&quot; data-og-description=&quot;Bootstrap Sampling을 이해하고 활용하기Bootstrap Sampling이란 무엇인가?Bootstrap Sampling은 통계학(Statistics)과 데이터 과학(Data Science)에서 널리 사용되는 강력한 방법론(Methodology) 중 하나임.이는 기존의 데&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/732&quot; data-og-url=&quot;https://dsaint31.tistory.com/732&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bmMOA6/dJMb8958mDU/ySU0bnQer2sG1lyiIv6C5k/img.png?width=784&amp;amp;height=554&amp;amp;face=0_0_784_554,https://scrap.kakaocdn.net/dn/x89hF/dJMb9frJ8AF/7N6HmN4djuVRFkMgHwYCO1/img.png?width=784&amp;amp;height=554&amp;amp;face=0_0_784_554,https://scrap.kakaocdn.net/dn/bFWI2k/dJMb9aKJMK8/W90OEAw40eCKkuoYIjnhsK/img.png?width=784&amp;amp;height=554&amp;amp;face=0_0_784_554&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/732&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/732&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bmMOA6/dJMb8958mDU/ySU0bnQer2sG1lyiIv6C5k/img.png?width=784&amp;amp;height=554&amp;amp;face=0_0_784_554,https://scrap.kakaocdn.net/dn/x89hF/dJMb9frJ8AF/7N6HmN4djuVRFkMgHwYCO1/img.png?width=784&amp;amp;height=554&amp;amp;face=0_0_784_554,https://scrap.kakaocdn.net/dn/bFWI2k/dJMb9aKJMK8/W90OEAw40eCKkuoYIjnhsK/img.png?width=784&amp;amp;height=554&amp;amp;face=0_0_784_554');&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;[ML] Bootstrap Sampling&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Bootstrap Sampling을 이해하고 활용하기Bootstrap Sampling이란 무엇인가?Bootstrap Sampling은 통계학(Statistics)과 데이터 과학(Data Science)에서 널리 사용되는 강력한 방법론(Methodology) 중 하나임.이는 기존의 데&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 어떻게 평가하느냐에 따라&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;낙관적(optimistic) 또는&lt;/li&gt;
&lt;li&gt;비관적(pessimistic) 편향(bias)이 발생함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 보정하는 방향으로 다음 순서로 발전해 왔음:&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1402&quot; data-origin-height=&quot;176&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sKWtr/dJMb990mhpb/nwYfk7EUrgc4fr0j8utCWk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sKWtr/dJMb990mhpb/nwYfk7EUrgc4fr0j8utCWk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sKWtr/dJMb990mhpb/nwYfk7EUrgc4fr0j8utCWk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsKWtr%2FdJMb990mhpb%2FnwYfk7EUrgc4fr0j8utCWk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;800&quot; height=&quot;100&quot; data-origin-width=&quot;1402&quot; data-origin-height=&quot;176&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 문서는 간단한 예제를 통해 이들을 비교 설명함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 문서에 다룬 것 외에도 Optimism-corrected Accuracy도 있음:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/963&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2026.05.26 - [Programming/ML] - Optimism-corrected Accuracy&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1779773049936&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;Optimism-corrected Accuracy&quot; data-og-description=&quot;Optimism-corrected accuracy는bootstrap sampling을 통해resubstitution accuracy에 포함된 낙관적 bias를추정하고 보정한 accuracy임.여기서 optimism은 다음을 의미함.model이 학습에 사용한 data에서 평가될 때, 실제 일&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/963&quot; data-og-url=&quot;https://dsaint31.tistory.com/963&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/nLmDT/dJMb9jOtd9p/oCPbLn5rjylPdO6QImlU9K/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/DrlJ0/dJMb8SpOm58/uljCFwdS5f406wi0798u9K/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/MKVzI/dJMb8QMisfX/cJLlR1Pl1KZgBCienNJEd0/img.png?width=1672&amp;amp;height=941&amp;amp;face=0_0_1672_941&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/963&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/963&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/nLmDT/dJMb9jOtd9p/oCPbLn5rjylPdO6QImlU9K/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/DrlJ0/dJMb8SpOm58/uljCFwdS5f406wi0798u9K/img.png?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/MKVzI/dJMb8QMisfX/cJLlR1Pl1KZgBCienNJEd0/img.png?width=1672&amp;amp;height=941&amp;amp;face=0_0_1672_941');&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;Optimism-corrected Accuracy&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Optimism-corrected accuracy는bootstrap sampling을 통해resubstitution accuracy에 포함된 낙관적 bias를추정하고 보정한 accuracy임.여기서 optimism은 다음을 의미함.model이 학습에 사용한 data에서 평가될 때, 실제 일&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 예제 설정&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이하 모든 설명에서 다음 4-class 분류 문제를 공통 예제로 사용함.&lt;/p&gt;
&lt;table data-ke-align=&quot;alignCenter&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;항목&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;값&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;샘플 수 $N$&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;클래스&lt;/td&gt;
&lt;td&gt;C1, C2, C3, C4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;실제 클래스 분포 $\hat{p}_k$&lt;/td&gt;
&lt;td&gt;$[0.40,\ 0.30,\ 0.20,\ 0.10]$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;예측 클래스 분포 $\hat{q}_k$&lt;/td&gt;
&lt;td&gt;$[0.40,\ 0.30,\ 0.20,\ 0.10]$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bootstrap Iteration 갯수 $B$&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Bootstrap 실험을 통해 다음 두 평균 accuracy 값을 얻었다고 가정함:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ \begin{aligned} \text{Acc}_{\text{train}} &amp;amp;= 0.95 \quad \text{(평균 훈련셋 accuracy, optimistic)} \\ \text{Acc}_{\text{OOB}} &amp;amp;= 0.72 \quad \text{(평균 OOB accuracy, pessimistic)}\end{aligned}$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;$\text{Acc}_\text{train}$는 Resubstitution Estimate라고&amp;nbsp; 불리며, &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;bootstrap iteration마다 훈련에 사용되었던 자기 bootstrap sample에서 다시 평가한 평균 accuracy 임.&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;span&gt;$\text{Acc}_\text{OOB}$&lt;/span&gt;&lt;/span&gt;는 각 bootstrap iteration에서 선택되지 않은 out-of-bag (OOB) sample을 이용해 평가한 accuracy임&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. Resubstitution Estimate&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2-1. Concept&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Bootstrap Iteration (b)마다 bootstrap sample $\mathcal{D}^{*(b)}$를 복원 추출로 생성함.&lt;/li&gt;
&lt;li&gt;각 bootstrap sample $\mathcal{D}^{*(b)}$로 모델 $\mathcal{M}^{(b)}$를 학습함.&lt;/li&gt;
&lt;li&gt;학습에 사용한 동일한 bootstrap sample $\mathcal{D}^{*(b)}$에서 다시 평가한 accuracy를 (b)-th resubstitution accuracy라고 함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\text{Acc}_{\text{resub}}^{(b)} = \text{Acc}\left(\mathcal{M}^{(b)}, \mathcal{D}^{*(b)}\right)&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 bootstrap 전체에 대한 평균 resubstitution accuracy는 다음과 같이 정의됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\text{Acc}_{\text{resub}} = \frac{1}{B} \sum_{b=1}^{B} \text{Acc}\left(\mathcal{M}^{(b)}, \mathcal{D}^{*(b)}\right)$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 예제에서 $\text{Acc}_{\text{resub}} = 0.95$ 로 둔 값이 이에 해당함.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이는 각 bootstrap model을 &lt;b&gt;자신이 학습한 데이터로 다시 평가한 값&lt;/b&gt;이므로,&lt;/li&gt;
&lt;li&gt;training accuracy라고 볼 수 있지만 더 정확한 명칭은 &lt;b&gt;평균 resubstitution accuracy (=mean resubstitution estimate)&lt;/b&gt;임.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt; resubstitution이 붙은 이유는 &lt;br /&gt;&lt;b&gt;학습에 사용한 sample을 평가 단계에서 다시 대입해서 사용하기 때문&lt;/b&gt; &lt;/span&gt;&lt;/blockquote&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2-2. Problem: Optimistic Bias&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Resubstitution estimate는 학습에 사용한 sample을 다시 평가에 사용하므로 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;낙관적 편향(optimistic bias)&lt;/b&gt;&lt;/span&gt;을 가짐.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;즉, $\mathcal{M}^{(b)}$ 는 이미 $\mathcal{D}^{*(b)}$를 이용해 학습되었고,&lt;/li&gt;
&lt;li&gt;평가도 같은 $\mathcal{D}^{*(b)}$에서 수행되므로&lt;/li&gt;
&lt;li&gt;&lt;u&gt;&lt;b&gt;실제 일반화 성능보다 accuracy가 높게 추정&lt;/b&gt;&lt;/u&gt;될 수 있음 (=&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Optimistic bias&lt;/b&gt;&lt;/span&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특히 다음과 같은 경우 낙관적 편향이 더 커질 수 있음.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;sample 수가 적은 경우&lt;/li&gt;
&lt;li&gt;모델 복잡도가 높은 경우&lt;/li&gt;
&lt;li&gt;class imbalance가 심한 경우&lt;/li&gt;
&lt;li&gt;소수 클래스 sample이 bootstrap sample 안에서 반복적으로 중복 선택되는 경우&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어 C4처럼 원본 dataset에 sample이 2개뿐인 소수 클래스는 bootstrap sample 안에서 같은 sample이 여러 번 중복될 수 있음.&lt;br /&gt;이 경우 모델은 해당 sample을 사실상 외운 상태(Memorization)가 되어 &lt;br /&gt;training accuracy는 높게 나오지만, 실제 unseen sample에 대한 일반화 성능은 훨씬 낮을 수 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 resubstitution estimate는&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모델의 학습 데이터 적합 정도를 확인하는 용도 등으로&amp;nbsp;사용할 수 있지만,&lt;/li&gt;
&lt;li&gt;일반화 성능 추정치로는 부적절함.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;3. Ordinary Bootstrap Estimate&lt;/h2&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;3-1. Concept&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;각 bootstrap sample $\mathcal{D}^{*(b)}$ 로 훈련한 모델 $\mathcal{M}^{(b)}$을&lt;/li&gt;
&lt;li&gt;&lt;b&gt;원본 dataset 전체&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;$\mathcal{D}$로 평가하고 이를 $B$회 평균냄.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;$$\text{Acc}_{\text{ordinary_boot}} = \frac{1}{B}\sum_{b=1}^{B} \text{Acc}(\mathcal{M}^{(b)}, \mathcal{D})$$&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;참고로, 이 값은 위의 예제에서 구하진 않음.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;3-2. Problem: Optimistic Bias&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;이 방식도 optimistic bais가 발생.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt; test set으로 사용되는 $\mathcal{D}$에 이론적으로 63.2%가량의 훈련 샘플이 포함&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;되기 때문임.&lt;/li&gt;
&lt;li&gt;따라서 prediction error 기준으로는 error를 과소추정하고, &lt;br /&gt;accuracy 기준으로는 성능을 과대평가하는 optimistic bias가 발생한다.&lt;/li&gt;
&lt;li&gt;특히 sample 수가 적거나 class imbalance가 심한 multi-class 문제에서는,&lt;br /&gt;훈련 중 본 sample에 대한 높은 성능이 전체 accuracy를 크게 끌어올릴 수 있다.&lt;/li&gt;
&lt;li&gt;특히 C4처럼 샘플이 2개뿐인 소수 클래스도 훈련셋에서는 100% accuracy를 낼 수 있어, 실제 일반화 성능 대비 크게 과장된 수치가 됨.&lt;/li&gt;
&lt;li&gt;적은 수의 데이터를 가진 경우와 멀티 클래스인 경우에&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;사용 비권장.&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Resubstitution estimate보다는 낫지만, &lt;br /&gt;여전히 training data가 evaluation data에 섞이므로 accuracy가 과대평가될 수 있음.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. OOB (Out-of-Bag) Bootstrap&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4-1. Concept&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;sampling with replacement 특성상&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 샘플이 특정 bootstrap $\mathcal{D}^{*(b)}$ 에서 제외될 이론적 확률이 다음과 같음:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$P(\text{excluded}) = \left(1 - \frac{1}{N}\right)^N \approx e^{-1} \approx 0.368$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이 제외된 샘플들을 &lt;b&gt;OOB sample&lt;/b&gt; $\mathcal{D}^{\text{OOB}(b)}$ 이라 함.&lt;/li&gt;
&lt;li&gt;완벽하게 훈련에 사용되지 않은 샘플들이므로 &lt;b&gt;독립적인 평가가 가능&lt;/b&gt;함.&lt;/li&gt;
&lt;li&gt;전체 20개 샘플 중 평균 $20 \times 0.368 \approx 7.4$개가 OOB sample로 사용됨.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ \text{Acc}_{\text{OOB}} = \frac{1}{N} \sum_{i=1}^{N} \text{Acc}\!\left( \left\{ \mathcal{M}^{(b)} \mid i \notin \mathcal{D}^{*(b)} \right\}, \mathbf{x}_i \right) = 0.72$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$N$ : the number of samples,&lt;/li&gt;
&lt;li&gt;$\mathcal{M}^{(b)}$ : the model trained on the $b$-th bootstrap sample,&lt;/li&gt;
&lt;li&gt;$\mathcal{D}^{*(b)}$ : is the $b$-th bootstrap training set,&lt;/li&gt;
&lt;li&gt;$i \notin \mathcal{D}^{*(b)}$ : sample $i$ is out-of-bag for model $\mathcal{M}^{(b)}$&lt;/li&gt;
&lt;li&gt;$\text{Acc}(\cdot)$ : the prediction accuracy evaluated using the OOB models for sample $\mathbf{x}_i$&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/746&quot;&gt;2024.06.20 - [.../Math] - [ML] Out of Bag: 유도하기.&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1778584644349&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;[ML] Out of Bag: 유도하기.&quot; data-og-description=&quot;Out of Bag (OOB)란?Out of Bag (OOB)는 Bagging (Bootstrap aggregating)과 같이 Bootstraping을 이용한 Ensemble Model에 등장하는 용어. Bootstrap Sampling을 사용할 경우, 특정 predictor를 훈련시킬 때 sample point는 여러번 사용&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/746&quot; data-og-url=&quot;https://dsaint31.tistory.com/746&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/clg9RG/dJMb9jOrCrU/X1YNK68Kq3HaAGvYMrdFU0/img.jpg?width=800&amp;amp;height=368&amp;amp;face=0_0_800_368,https://scrap.kakaocdn.net/dn/Y97Eh/dJMb9cBMLDd/nzHXWg5aJlGZStZsUAUFJ1/img.jpg?width=800&amp;amp;height=368&amp;amp;face=0_0_800_368,https://scrap.kakaocdn.net/dn/jDOAX/dJMb9jOrCrT/KUz10l2uAhBaUGoVcOC651/img.jpg?width=960&amp;amp;height=442&amp;amp;face=0_0_960_442&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/746&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/746&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/clg9RG/dJMb9jOrCrU/X1YNK68Kq3HaAGvYMrdFU0/img.jpg?width=800&amp;amp;height=368&amp;amp;face=0_0_800_368,https://scrap.kakaocdn.net/dn/Y97Eh/dJMb9cBMLDd/nzHXWg5aJlGZStZsUAUFJ1/img.jpg?width=800&amp;amp;height=368&amp;amp;face=0_0_800_368,https://scrap.kakaocdn.net/dn/jDOAX/dJMb9jOrCrT/KUz10l2uAhBaUGoVcOC651/img.jpg?width=960&amp;amp;height=442&amp;amp;face=0_0_960_442');&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;[ML] Out of Bag: 유도하기.&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Out of Bag (OOB)란?Out of Bag (OOB)는 Bagging (Bootstrap aggregating)과 같이 Bootstraping을 이용한 Ensemble Model에 등장하는 용어. Bootstrap Sampling을 사용할 경우, 특정 predictor를 훈련시킬 때 sample point는 여러번 사용&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4-2. Per-Class OOB / Training Sample Analysis&lt;/h3&gt;
&lt;table data-ke-align=&quot;alignCenter&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;클래스&lt;/td&gt;
&lt;td&gt;비율&lt;/td&gt;
&lt;td&gt;전체 수 $N_k$&lt;/td&gt;
&lt;td&gt;기대 OOB 수 &lt;br /&gt;($\times 0.368$)&lt;/td&gt;
&lt;td&gt;기대 훈련 수 &lt;br /&gt;($\times 0.632$)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;C1&lt;/td&gt;
&lt;td&gt;0.40&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;$\approx 2.94$&lt;/td&gt;
&lt;td&gt;$\approx 5.06$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;C2&lt;/td&gt;
&lt;td&gt;0.30&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;$\approx 2.21$&lt;/td&gt;
&lt;td&gt;$\approx 3.79$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;C3&lt;/td&gt;
&lt;td&gt;0.20&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;$\approx 1.47$&lt;/td&gt;
&lt;td&gt;$\approx 2.53$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;C4&lt;/td&gt;
&lt;td&gt;0.10&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;$\approx 0.74$&lt;/td&gt;
&lt;td&gt;$\approx 1.26$&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4-3. 문제점: Problem: Pessimistic Bias Worsens with More Classes&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;OOB estimate는&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;해당 bootstrap model 기준으로 학습에 사용되지 않은 sample을 평가하므로,&lt;/li&gt;
&lt;li&gt;앞서 resubstitution estimate나 ordinary bootstrap estimate보다 일반화 성능 평가에 가깝다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만, 데이터수가 적거나, 클래스 수가 많고 데이터가 불균형할수록 다음 세 가지 문제가 동시에 발생함:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제 1. 소수 클래스 OOB 평가가 어려움:&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;C4 샘플이 2개 뿐이고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 C4 샘플이 bootstrap에 포함될 확률이 $\approx 0.632$이므로,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;두 샘플 모두 포함되어 C4의 OOB sample이 하나도 없을 확률이 다음과 같음:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$P(\text{C4 OOB} = 0) \approx 0.632^2 \approx 0.40$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;즉 bootstrap의 약 &lt;b&gt;40%에서 C4에 대한 OOB 평가가 아예 불가능&lt;/b&gt;함.&lt;/li&gt;
&lt;li&gt;이는 $\text{Acc}_{\text{OOB}}$의 &lt;b&gt;분산(variance)을 크게 증가&lt;/b&gt;시킴.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제 2. 다수 클래스 위주의 편향&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;C4의 OOB 평가가 불가능한 bootstrap에서는&lt;/li&gt;
&lt;li&gt;&lt;u&gt;C4의 성능(적은 수의 클래스에 대한 성능)이 전혀 반영되지 않으므로&lt;/u&gt;,&lt;/li&gt;
&lt;li&gt;$\text{Acc}_{\text{OOB}}$는&lt;span style=&quot;color: #ee2323;&quot;&gt; &lt;b&gt;다수 클래스(C1, C2) 위주&lt;/b&gt;로 편향&lt;/span&gt;됨.&lt;/li&gt;
&lt;li&gt;&lt;u&gt;모델이 C4를 전혀 맞추지 못해도 해당 bootstrap의 OOB accuracy에는 영향이 없음.&lt;/u&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제 3. 소수 클래스 훈련 부족에 의한 pessimistic bias 심화&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;6915&quot; data-start=&quot;6894&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;6915&quot; data-start=&quot;6894&quot; data-ke-size=&quot;size16&quot;&gt;C4는 원본 dataset에 2개뿐임.&lt;/p&gt;
&lt;p data-end=&quot;6973&quot; data-start=&quot;6917&quot; data-ke-size=&quot;size16&quot;&gt;하나의 bootstrap sample에서 C4가 학습에 사용되는 기대 sample 수는 다음과 같음:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;$$2 \times 0.632 \approx 1.262$$&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;각 bootrtrap iteration에서 C4는 평균 &lt;b&gt;1.26개&lt;/b&gt;만으로 훈련해야 하므로 모델이 C4 패턴을 제대로 학습하기 어려움.&lt;/li&gt;
&lt;li&gt;OOB 평가에서 C4를 자주 틀리게 되어 $\text{Acc}_{\text{OOB}}$의 &lt;b&gt;pessimistic bias가 심화&lt;/b&gt;됨.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;OOB의 문제점 정리&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세 문제를 종합하면:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ \underbrace{\text{클래스 수} \uparrow}_{\text{소수 클래스 OOB 부족}} \Rightarrow \underbrace{\text{Var}(\text{Acc}_{\text{OOB}}) \uparrow}_{\text{추정 불안정}} + \underbrace{\text{Bias}(\text{Acc}_{\text{OOB}}) \downarrow}_{\text{비관적 편향 심화}}$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이같은 OOB의 단점이 &lt;code&gt;.632&lt;/code&gt; 및 &lt;code&gt;.632+&lt;/code&gt; 보정이 등장하게 된 배경이 됨.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보통 OOB는 가장 나쁜(=비관적인) 결과가 나옴!&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;5. &lt;code&gt;.632&lt;/code&gt; Bootstrap&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5-1. Concept&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Basic Bootstrap의 optimistic bias (낙관적 편향)&lt;/b&gt;&lt;/span&gt; 와 &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;OOB의 pessimistic bias (비관적 편향)&lt;/b&gt;&lt;/span&gt; 를&lt;/li&gt;
&lt;li&gt;&lt;b&gt;고정 가중치(fixed weight)&lt;/b&gt; 로 결합하여 보정하려는 방법.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음은 Accuracy 기준으로 살펴본 .632 Bootstrap 임:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\text{Acc}_{.632} = 0.368 \times \text{Acc}_{\text{resub}} + 0.632 \times \text{Acc}_{\text{OOB}}$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$= 0.368 \times 0.95 + 0.632 \times 0.72 = 0.3496 + 0.4550 = \mathbf{0.805}$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;가중치 $0.632$는 각 샘플이 하나의 bootstrap에 포함될 확률 $1 - e^{-1} \approx 0.632$에서 자연스럽게 유도됨.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5-2. Problem: Residual Optimistic Bias under Overfitting&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$\text{Acc}_{\text{train}} = 0.95$처럼 과적합이 심한 경우에도 훈련 accuracy가 항상 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;고정 비율 $0.368$만큼 반영&lt;/b&gt;&lt;/span&gt;됨.&lt;/li&gt;
&lt;li&gt;과적합 정도 차이가 있음에도 이를 고려하지 않고 항상 같은 가중치를 적용하는 것이 &lt;code&gt;.632&lt;/code&gt;의 근본적 한계임.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 모델이 심하게 과적합되어 $\text{Acc}_\text{resub}$가 거의 의미없는 1.0 이 나온 경우에도, 이를 36.8% 를 반영함.&lt;/p&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: #ee2323;&quot;&gt;&lt;b&gt;.632 bootstrap&lt;/b&gt;&lt;/span&gt;은&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;resubstitution estimate보다는 덜 낙관적이지만,&lt;/li&gt;
&lt;li&gt;심한 과적합 상황에서는 여전히 낙관적 편향이 남을 수 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;6. &lt;code&gt;.632&lt;/code&gt;+ Bootstrap&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Efron &amp;amp; Tibshirani (1997)가 제안한 방법으로, &lt;code&gt;.632&lt;/code&gt;의 고정 가중치 문제를 해결함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;과적합(over-fit) 정도에 따라 가중치를 &lt;span style=&quot;color: #ee2323;&quot;&gt;동적으로 조정&lt;/span&gt;&lt;/b&gt;함.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Step 1. No-Information Accuracy $\gamma_{\text{acc}}$ 계산&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt; No-information accuracy&lt;/b&gt;&lt;/span&gt;는 &lt;u&gt;feature와 label 사이에 유용한 관계가 없다고 가정&lt;/u&gt;했을 때 기대되는 accuracy임.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;모델이 &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;학습 없이 클래스 분포&lt;/span&gt;만으로&lt;/b&gt; 예측할 때의 기대 accuracy.&lt;/li&gt;
&lt;li&gt;모델 성능의 &lt;b&gt;최저 기준선(baseline)&lt;/b&gt; 역할을 함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\gamma_{\text{acc}} = \sum_{k=1}^{K} \hat{p}_k \cdot \hat{q}_k$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$= (0.40 \times 0.40) + (0.30 \times 0.30) + (0.20 \times 0.20) + (0.10 \times 0.10)$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$= 0.16 + 0.09 + 0.04 + 0.01 = \mathbf{0.30}$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;4-class 균등 분포라면 $\gamma_{\text{acc}} = 0.25$이지만, 클래스 불균형으로 인해 $0.30$이 됨.&lt;/li&gt;
&lt;li&gt;클래스 수 $K$가 커질수록 $\sum_k \hat{p}_k^2$이 감소하여 $\gamma_{\text{acc}}$는 낮아짐.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;class imbalance가 심하면 클래스 수가 증가하더라도&lt;/li&gt;
&lt;li&gt;$\acc\gamma_{\text{acc}}$ 가 반드시 낮아지지는 않음.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Step 2. Relative Overfitting Rate $\hat{R}$ 계산&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Accuracy 기준에서 relative overfitting rate를 다음과 같이 정의:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\hat{R} = \frac{\text{Acc}_{\text{train}} - \text{Acc}_{\text{OOB}}}{\text{Acc}_{\text{train}} - \gamma_{\text{acc}}} = \frac{0.95 - 0.72}{0.95 - 0.30} = \frac{0.23}{0.65} \approx \mathbf{0.354}$$&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;참고: Qualitative Meaning of $\hat{R}$&lt;/h4&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$\hat{R}$은 단순히 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;train/OOB accuracy&lt;/b&gt;&lt;/span&gt;의 차이가 아니라,&lt;br /&gt;&lt;b&gt;&quot;그 차이가 얼마나 심각한가(얼마나 과적합 되었나)&quot;&lt;br /&gt;를 맥락 속에서 &lt;span style=&quot;color: #ee2323;&quot;&gt;정규화&lt;/span&gt;한 지표&lt;/b&gt;임.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\hat{R} = \frac{\overbrace{\text{Acc}_{\text{train}} - \text{Acc}_{\text{OOB}}}^{\text{실제 과적합 격차}}}{\underbrace{\text{Acc}_{\text{train}} - \gamma_{\text{acc}}}_{\text{최대 가능 과적합 격차}}} = \frac{\text{실제 과적합 격차}}{\text{최악 시나리오의 격차}}$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;분자&lt;/b&gt; &lt;/span&gt;$(\text{Acc}_{\text{train}} - \text{Acc}_{\text{OOB}})$:
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;u&gt;모델이 실제로 과적합 격차&lt;/u&gt;.&lt;/li&gt;
&lt;li&gt;훈련셋과 OOB셋 간의 실제 성능 격차.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;분모&lt;/b&gt; &lt;/span&gt;$(\text{Acc}_{\text{train}} - \gamma_{\text{acc}})$:
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;u&gt;모델이 낼 수 있는 최대 가능 과적합 격차&lt;/u&gt;.&lt;/li&gt;
&lt;li&gt;훈련 accuracy가 아무런 의미 없는 수준인 $\gamma_{\text{acc}}$에서 최대로 부풀어 오를 때의 격차.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;$\hat{R}$은 &lt;b&gt;모델 신뢰도에 대한 지표&lt;/b&gt; 로서,&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;이 값이 클수록 낙관적인 훈련 accuracy를 &lt;b&gt;덜 신뢰&lt;/b&gt; 해야 함을 의미&lt;/span&gt;함.&lt;/li&gt;
&lt;/ul&gt;
&lt;table style=&quot;height: 86px;&quot; data-ke-align=&quot;alignCenter&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt; $\hat{R}$ 값 &lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt; 정성적 의미 &lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt; 가중치 $w$ 방향 &lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;$\hat{R} \approx 0$&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;과적합 없음: train/OOB accuracy 거의 동일&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;$w \to 0.632$ (.632와 동일)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;$\hat{R} \approx 0.354$&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;&lt;b&gt;본 예제&lt;/b&gt;: 중간 수준의 과적합&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;$w \approx 0.727$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;$\hat{R} \approx 1$&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;심각한 과적합: 훈련 accuracy가 baseline 수준까지 과장&lt;/td&gt;
&lt;td style=&quot;height: 21px;&quot;&gt;$w \to 1.0$ (OOB만 사용)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Step 3. Dynamic Weight $w$ 계산&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt; .632+&lt;/b&gt;&lt;/span&gt; bootstrap에서는&lt;u&gt; OOB accuracy에 부여할 가중치&lt;/u&gt; $w$를 다음과 같이 계산:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$w = \frac{0.632}{1 - 0.368 \times \hat{R}} = \frac{0.632}{1 - 0.368 \times 0.354} = \frac{0.632}{0.870} \approx \mathbf{0.727}$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$w$는 항상 $[0.632,\ 1.0]$ 범위에서 결정됨.&lt;/li&gt;
&lt;li&gt;$w = 0.727 &amp;gt; 0.632$이므로, .632 estimator보다 OOB accuracy에 더 많은 가중치를 부여함.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Step 4. 최종 &lt;code&gt;.632+&lt;/code&gt; Accuracy&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt; .632+&lt;/b&gt;&lt;/span&gt; accuracy는 다음과 같이 계산:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\text{Acc}_{.632+} = (1-w) \times \text{Acc}_{\text{train}} + w \times \text{Acc}_{\text{OOB}}$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$= 0.273 \times 0.95 + 0.727 \times 0.72 = 0.259 + 0.524 = \mathbf{0.783}$$&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;참고: &lt;code&gt;.632&lt;/code&gt; vs &lt;code&gt;.632+&lt;/code&gt;: 가중치 비교&lt;/h2&gt;
&lt;table data-ke-align=&quot;alignCenter&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt; $\text{Acc}_{\text{train}}$ 가중치 &lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt; $\text{Acc}_{\text{OOB}}$ 가중치 &lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.632&lt;/td&gt;
&lt;td&gt;$0.368$ (고정)&lt;/td&gt;
&lt;td&gt;$0.632$ (고정)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.632+&lt;/td&gt;
&lt;td&gt;$(1 - w) \leq 0.368$&lt;/td&gt;
&lt;td&gt;$w \geq 0.632$&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$w \geq 0.632$이므로 &lt;code&gt;.632+&lt;/code&gt;의 $\text{Acc}_{\text{OOB}}$ 가중치는 항상 &lt;code&gt;.632&lt;/code&gt;보다 크거나 같음.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 $\text{Acc}_{\text{train}} &amp;gt; \text{Acc}_{\text{OOB}}$인 모든 일반적인 과적합 상황에서 다음이 성립:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\text{Acc}_{.632+} \leq \text{Acc}_{.632} \quad \checkmark$$&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예제: Extreme Overfitting Scenario Verification&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$\text{Acc}_{\text{train}} = 1.0$, $\text{Acc}_{\text{OOB}} = \gamma_{\text{acc}} = 0.25$ (랜덤 수준, 4-class 균등)인 경우:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\hat{R} = \frac{1.0 - 0.25}{1.0 - 0.25} = 1.0$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$w = \frac{0.632}{1 - 0.368 \times 1.0} = \frac{0.632}{0.632} = 1.0$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\text{Acc}_{.632} = 0.368 \times 1.0 + 0.632 \times 0.25 = \mathbf{0.526}$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\text{Acc}_{.632+} = 0 \times 1.0 + 1.0 \times 0.25 = \mathbf{0.250}$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$\hat{R} = 1.0$의 정성적 의미: &lt;u&gt;&lt;b&gt;실제 과적합 격차가 최대 가능 격차와 완전히 일치&lt;/b&gt;함&lt;/u&gt;.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;훈련된 모델의 일반적인 accuracy가&lt;/li&gt;
&lt;li&gt;아무런 의미 없는 수준($\gamma_{\text{acc}}$, No-information accuracy)과 같은&lt;/li&gt;
&lt;li&gt;최악의 시나리오가 실현된 상태임.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.632+&lt;/code&gt;는 $w = 1.0$으로 설정하여 과적합으로 좋은 듯이 보이는 resubstituion accuracy (=훈련셋에서의 accuracy)를 &lt;b&gt;완전히 무시&lt;/b&gt;함.&lt;/li&gt;
&lt;li&gt;반면 &lt;code&gt;.632&lt;/code&gt;는 이 상황을 감지하지 못하고 무의미한 $\text{Acc}_{\text{train}} = 1.0$을 여전히 $36.8%$ 반영하여 크게 과장된 $0.526$을 출력함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\underbrace{\hat{R} \to 1}_{\text{최악의 과적합}} \Rightarrow \underbrace{w \to 1}_{\text{훈련 accuracy 완전 배제}} \Rightarrow \underbrace{\text{Acc}_{.632+} \to \text{Acc}_{\text{OOB}}}_{\text{.632보다 낮아짐}}$$&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;7. 결론&lt;/h2&gt;
&lt;table data-ke-align=&quot;alignCenter&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;방법&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;계산식&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;편향&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;b&gt;특징&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Basic Bootstrap&lt;/td&gt;
&lt;td&gt;$\text{Acc}_{\text{train}}$&lt;/td&gt;
&lt;td&gt;$0.950$&lt;/td&gt;
&lt;td&gt;낙관적 &amp;uarr;&amp;uarr;&lt;/td&gt;
&lt;td&gt;평가/훈련 데이터 중복&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OOB Bootstrap&lt;/td&gt;
&lt;td&gt;$\text{Acc}_{\text{OOB}}$&lt;/td&gt;
&lt;td&gt;$0.720$&lt;/td&gt;
&lt;td&gt;비관적 &amp;darr;&lt;/td&gt;
&lt;td&gt;훈련 63.2%만 사용&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.632 Bootstrap&lt;/td&gt;
&lt;td&gt;$0.368 \times 0.95 + 0.632 \times 0.72$&lt;/td&gt;
&lt;td&gt;$0.805$&lt;/td&gt;
&lt;td&gt;약간 낙관적&lt;/td&gt;
&lt;td&gt;고정 가중치&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.632+ Bootstrap&lt;/td&gt;
&lt;td&gt;$0.273 \times 0.95 + 0.727 \times 0.72$&lt;/td&gt;
&lt;td&gt;$0.783$&lt;/td&gt;
&lt;td&gt;보정됨 ✓&lt;/td&gt;
&lt;td&gt;$\hat{R}$ 기반 동적 가중치&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\underbrace{\text{Basic}}_{\text{낙관적 편향}} \xrightarrow{\text{훈련/평가 분리}} \underbrace{\text{OOB}}_{\text{비관적 편향}} \xrightarrow{\text{고정 가중 결합}} \underbrace{\text{.632}}_{\text{잔존 낙관 편향}} \xrightarrow{\hat{R}\text{ 동적 보정}} \underbrace{\text{.632+}}_{\text{편향 최소화} \checkmark}$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;code&gt;.632+&lt;/code&gt;의 핵심은
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$\hat{R}$이 &lt;b&gt;&quot;substitution accuracy를 얼마나 신뢰할 수 없는가&quot;를 동적으로 정량화($\hat{R}$)&lt;/b&gt;하고,&lt;/li&gt;
&lt;li&gt;이에 비례하여 더 신뢰할 수 있는 OOB accuracy의 비중을 높인다는 것임.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;4-class처럼 클래스가 많아 $\gamma_{\text{acc}}$가 낮아지면
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$\hat{R}$의 분모가 커져 $\hat{R}$이 작아지고&lt;/li&gt;
&lt;li&gt;$w$가 $0.632$에 가까워짐.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;반대로 Overfit(과적합)이 심할수록
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$\hat{R} \to 1$, $w \to 1$로 수렴하여&lt;/li&gt;
&lt;li&gt;OOB accuracy만을 신뢰하는 방향으로 자동 조정됨.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Random Forest는&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt; OOB 방식을 기본 평가 방식으로 사용&lt;/b&gt;&lt;/span&gt;함 (대규모 데이터 권장)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반적인&lt;b&gt; 소규모 데이터셋&lt;/b&gt;에서는 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;.632&lt;/b&gt;&lt;/span&gt; 또는&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt; .632+&lt;/b&gt;&lt;/span&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;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;작은 dataset&lt;/span&gt;&lt;/b&gt;에서 &lt;u&gt;단순 &lt;b&gt;resubstitution estimate&lt;/b&gt;는 일반화 성능을 크게 과대평가&lt;/u&gt;할 수 있음.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;OOB estimate&lt;/b&gt;는 더 &lt;span style=&quot;color: #ee2323;&quot;&gt;현실적인 평가&lt;/span&gt;&lt;/u&gt;에 가깝지만, &lt;br /&gt;sample 수가 작거나 class imbalance가 심한 경우에는 불안정할 수 있음.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;.632&lt;/b&gt;&lt;/span&gt;와 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;.632+&lt;/b&gt;&lt;/span&gt;는 이러한 문제를 완화하기 위한 bootstrap 기반 보정 추정량이며, &lt;br /&gt;특히 &lt;u&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;.632+&lt;/b&gt;&lt;/span&gt;는 과적합 정도를 반영하여 가중치를 조정&lt;/u&gt;한다는 점에서 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;.632&lt;/b&gt;&lt;/span&gt;보다 더 나은 선택임.&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;References&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Efron, B. (1983). &lt;i&gt;Estimating the error rate of a prediction rule: improvement on cross-validation.&lt;/i&gt; Journal of the American Statistical Association.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.jstor.org/stable/2288636?seq=1&quot;&gt;https://www.jstor.org/stable/2288636?seq=1&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Efron, B., &amp;amp; Tibshirani, R. (1997). &lt;i&gt;Improvements on cross-validation: The .632+ bootstrap method.&lt;/i&gt; Journal of the American Statistical Association, 92(438), 548&amp;ndash;560.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.jstor.org/stable/2965703&quot;&gt;https://www.jstor.org/stable/2965703&lt;/a&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;같이보면 좋은 자료들&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.me/mkdocs_site/ML/ch02/ml_cls_metrics/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://dsaint31.me/mkdocs_site/ML/ch02/ml_cls_metrics/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1779748731575&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;BME&quot; data-og-description=&quot;AUC F-score F2 PR ROC accuracy confusion matrix mAP macro micro precision recall sensitivity weighted Performance Measures for Classifiers Confusion matrix Confusion matrix(오차행렬, 혼동행렬)은 row는 label의 ideal class 를 나타내며, column&quot; data-og-host=&quot;dsaint31.me&quot; data-og-source-url=&quot;https://dsaint31.me/mkdocs_site/ML/ch02/ml_cls_metrics/&quot; data-og-url=&quot;https://dsaint31.me/mkdocs_site/ML/ch02/ml_cls_metrics/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/fgW7O/dJMb9kT9dLQ/hxLk4S7KUKsNtVBIU2skok/img.png?width=1373&amp;amp;height=682&amp;amp;face=0_0_1373_682,https://scrap.kakaocdn.net/dn/bm2Vsp/dJMb9b3YixZ/kHqbk7vJjXzhbFgDQeXh8K/img.png?width=700&amp;amp;height=450&amp;amp;face=0_0_700_450,https://scrap.kakaocdn.net/dn/pcULf/dJMb9c9D7Rq/Ag1uZbINGrQH1bIw6dncnK/img.png?width=702&amp;amp;height=312&amp;amp;face=0_0_702_312&quot;&gt;&lt;a href=&quot;https://dsaint31.me/mkdocs_site/ML/ch02/ml_cls_metrics/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.me/mkdocs_site/ML/ch02/ml_cls_metrics/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/fgW7O/dJMb9kT9dLQ/hxLk4S7KUKsNtVBIU2skok/img.png?width=1373&amp;amp;height=682&amp;amp;face=0_0_1373_682,https://scrap.kakaocdn.net/dn/bm2Vsp/dJMb9b3YixZ/kHqbk7vJjXzhbFgDQeXh8K/img.png?width=700&amp;amp;height=450&amp;amp;face=0_0_700_450,https://scrap.kakaocdn.net/dn/pcULf/dJMb9c9D7Rq/Ag1uZbINGrQH1bIw6dncnK/img.png?width=702&amp;amp;height=312&amp;amp;face=0_0_702_312');&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;BME&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;AUC F-score F2 PR ROC accuracy confusion matrix mAP macro micro precision recall sensitivity weighted Performance Measures for Classifiers Confusion matrix Confusion matrix(오차행렬, 혼동행렬)은 row는 label의 ideal class 를 나타내며, column&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.me&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://ds31x.tistory.com/307&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://ds31x.tistory.com/307&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1779748754576&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;[ML] Classification 과 관련 metrics 에 대한 소개.&quot; data-og-description=&quot;이 문서는 AI, ML, 그리고 DL의 정의와 이들 간의 차이점을 설명하며,특히 ML의 supervised learning에서 가장 많이 다루는 task인 classification의 종류와 관련 metrics를 설명함.Classifier (분류기):정의: 주어진 &quot; data-og-host=&quot;ds31x.tistory.com&quot; data-og-source-url=&quot;https://ds31x.tistory.com/307&quot; data-og-url=&quot;https://ds31x.tistory.com/307&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/KLuox/dJMb83kzih0/H1dlbjKokA6U7jtzRbksmk/img.png?width=800&amp;amp;height=254&amp;amp;face=0_0_800_254,https://scrap.kakaocdn.net/dn/i77Jk/dJMb9efkgxG/qG4FvOwYCroftQpD7uUVh1/img.png?width=800&amp;amp;height=254&amp;amp;face=0_0_800_254&quot;&gt;&lt;a href=&quot;https://ds31x.tistory.com/307&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://ds31x.tistory.com/307&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/KLuox/dJMb83kzih0/H1dlbjKokA6U7jtzRbksmk/img.png?width=800&amp;amp;height=254&amp;amp;face=0_0_800_254,https://scrap.kakaocdn.net/dn/i77Jk/dJMb9efkgxG/qG4FvOwYCroftQpD7uUVh1/img.png?width=800&amp;amp;height=254&amp;amp;face=0_0_800_254');&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;[ML] Classification 과 관련 metrics 에 대한 소개.&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;이 문서는 AI, ML, 그리고 DL의 정의와 이들 간의 차이점을 설명하며,특히 ML의 supervised learning에서 가장 많이 다루는 task인 classification의 종류와 관련 metrics를 설명함.Classifier (분류기):정의: 주어진&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;ds31x.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/ML</category>
      <category>632</category>
      <category>Bootstrap</category>
      <category>classification</category>
      <category>estimation</category>
      <category>Metric</category>
      <category>ML</category>
      <category>OOB</category>
      <author>dsaint31x</author>
      <guid isPermaLink="true">https://dsaint31.tistory.com/959</guid>
      <comments>https://dsaint31.tistory.com/959#entry959comment</comments>
      <pubDate>Tue, 14 Apr 2026 13:48:46 +0900</pubDate>
    </item>
    <item>
      <title>XAI: Coefficient, Feature importance, and SHAP</title>
      <link>https://dsaint31.tistory.com/958</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;XAI는 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;eXplainable AI&lt;/b&gt;&lt;/span&gt;의 약어로,&lt;br /&gt;AI 모델이 왜 이같은 예측(결과)을 내어놓았는지를 설명하는 기술을 가리킴.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 글은 XAI에서 사용되는 도구들인&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;coefficient,&lt;/li&gt;
&lt;li&gt;feature importance&lt;/li&gt;
&lt;li&gt;SHAP&lt;br /&gt;를 비교 설명함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실 SHAP를 설명하기 위한 글로,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;통계분석이나 classic ML의 사용자들에게 익숙한 coefficient와 feautre importance를 통해&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SHAP의 특징을 설명하는 글임.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;coefficient&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;coefficient는 변수에 곱해지는 상수를 가리키는 용어로,&lt;br /&gt;ML에선 다음을 의미함:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;보통 선형모델(linear model), 예를 들어
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Linear Regression이나&lt;/li&gt;
&lt;li&gt;Logistic Regression에서&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;변수에 곱해지는 계수&lt;/b&gt;&lt;/span&gt;를 가리킴 (parameter, weight).&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Logistic Regression에서&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;code&gt;age&lt;/code&gt;의 coefficient가 양수이면 age가 커질수록 class 1(=Positive) 일 확률이 커짐.&lt;/li&gt;
&lt;li&gt;때문에, coefficient 절댓값이 크면 영향력이 크다는 해석이 가능함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이같은 해석은 가능하지만 다음을 고려해서 결론을 내려야 함:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;coefficient가 곱해지는 대상 변수의 feature scale 을 고려해야 한다.&lt;/li&gt;
&lt;li&gt;one-hot encoding 된 범주형 변수는 기준 범주(reference category)에 대한 상대 비교가 됨&lt;/li&gt;
&lt;li&gt;다른 변수와 상호작용이 큰 비선형 모델(feature간의 correlation이 큰 경우)에서는 coefficient로 영향력을 설명하기 어려움.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉 coefficient는&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&quot;모델 (주로 선형)에서의 파라미터&quot; 로서&lt;/li&gt;
&lt;li&gt;관련 feature가 모델의 결과에 영향을 얼마나 주는지를 파악하는데 도움이 되나&lt;/li&gt;
&lt;li&gt;feature간 correlation이 크거나, feature간의 feature scale의 차이가 매우 차이가 나는 경우엔&lt;/li&gt;
&lt;li&gt;단순 절대값으로 결과에 영향력으로 판단해서는 안 됨.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고로, Random Forest 같은 &lt;u&gt;&lt;b&gt;tree 모델에서는 아예 coefficient라는 개념 자체가 없다&lt;/b&gt;&lt;/u&gt;는 점도 유의해야 함.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Random Forest 에선 feature importance를 통해&lt;/li&gt;
&lt;li&gt;특정 feature가 Random Forest 모델의 결과값에 대한 영향력을 파악할 수 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;feature importance&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;feature importance는 tree 기반 모델이 자주 제공하는 global &quot;중요도 요약값&quot; 이라고 할 수 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이는 tree기반 모델에서 다음을 의미함:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;어떤 feature가 tree기반 모델에서 split에 많이 기여한 정도.&lt;/li&gt;
&lt;li&gt;즉, split를 통해 얼마나 impurity 감소(gini계수로 impurity정도 계산)에 공헌했는 지를 의미함: purity increament&lt;/li&gt;
&lt;li&gt;주로 상위 노드에서 사용되는 feature들이 높은 feature importance를 가짐.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실제 정량적인 예제가 필요하다면 다음을 참고:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/854&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2024.11.10 - [Programming/ML] - [ML] Feature Importances for Decision Tree&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1774329169622&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;[ML] Feature Importances for Decision Tree&quot; data-og-description=&quot;이 문서는 Feature Importance를 Decision Tree에서 Gini Impurity Measure를 이용하여 계산하는 예제를 보여줌.Tree 예시 (depth = 3) [Root] (X1) [5:5] / \ Node1 Node2 (X2) (X3) [4:1] [1:4] / \ / \Leaf1 Leaf2 Leaf3 Leaf4[3:0] [1:1] [0:2] [&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/854&quot; data-og-url=&quot;https://dsaint31.tistory.com/854&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Gh4i3/dJMb81GWIXH/bcaWhxOWRoYsn3KSDfahZ0/img.png?width=800&amp;amp;height=411&amp;amp;face=0_0_800_411,https://scrap.kakaocdn.net/dn/cCMjb3/dJMb85WSOkN/b5V6KcsfecdxLIv6kZFqpK/img.png?width=800&amp;amp;height=411&amp;amp;face=0_0_800_411,https://scrap.kakaocdn.net/dn/cgCek3/dJMb82MCAxF/Og2hsrZLsC4pxQVXs6lbWk/img.png?width=1222&amp;amp;height=629&amp;amp;face=0_0_1222_629&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/854&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/854&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Gh4i3/dJMb81GWIXH/bcaWhxOWRoYsn3KSDfahZ0/img.png?width=800&amp;amp;height=411&amp;amp;face=0_0_800_411,https://scrap.kakaocdn.net/dn/cCMjb3/dJMb85WSOkN/b5V6KcsfecdxLIv6kZFqpK/img.png?width=800&amp;amp;height=411&amp;amp;face=0_0_800_411,https://scrap.kakaocdn.net/dn/cgCek3/dJMb82MCAxF/Og2hsrZLsC4pxQVXs6lbWk/img.png?width=1222&amp;amp;height=629&amp;amp;face=0_0_1222_629');&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;[ML] Feature Importances for Decision Tree&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;이 문서는 Feature Importance를 Decision Tree에서 Gini Impurity Measure를 이용하여 계산하는 예제를 보여줌.Tree 예시 (depth = 3) [Root] (X1) [5:5] / \ Node1 Node2 (X2) (X3) [4:1] [1:4] / \ / \Leaf1 Leaf2 Leaf3 Leaf4[3:0] [1:1] [0:2] [&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.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;결국, feature importance는&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모델 전체 수준(global)에서&lt;/li&gt;
&lt;li&gt;그 feature가 얼마나 많이 사용되었는지를 정량적으로 보여주는 값임.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 다음을 주의해야 함:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;coefficient의 경우 sign을 통해 어느 방향으로 영향을 주는지를 파악가능한 것과 달리,&lt;/li&gt;
&lt;li&gt;feature importance는 방향성을 전혀 애기해주지 않음.&lt;/li&gt;
&lt;li&gt;개별 sample에 대한 설명이 불가함.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;특정 환자에선 age가 결과에 큰 영향을 주고,&lt;/li&gt;
&lt;li&gt;다른 환자에선 혈당이 큰 영향을 줄 수 있는데&lt;/li&gt;
&lt;li&gt;이를 feature importance로는 구분할 수 없음.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;범주형 변수를 one-hot encoding 할 경우, 해당 feature의 영향력이 분산됨 (보통은 다 더해서 다시 확인함).&lt;/li&gt;
&lt;li&gt;split에 미치는 영향이기 때문에 실제 중요도의 정도와 차이가 있을 수 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;SHAP&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;SHAP은 SHapley Additive exPlanations의 약자로, &lt;br /&gt;게임이론(game theory)의 Shapley value를 머신러닝 모델 해석에 적용한 설명 기법임.&lt;br /&gt;&lt;br /&gt;SHAP은 &lt;br /&gt;Lundberg와 Lee가 2017년에 발표한 논문 &lt;br /&gt;&quot;A Unified Approach to Interpreting Model Predictions&quot;를 통해 널리 소개됨.&lt;br /&gt;&lt;br /&gt;이는 각 feature가 예측값에 얼마나 기여했는지를 정량적으로 분해해 설명하는 방법으로&amp;nbsp;&lt;br /&gt;복잡한 비선형 모델에도 비교적 일관된 방식으로 적용가능하기 때문에&amp;nbsp;&lt;br /&gt;XAI의 대표 기법 중 하나로 인정됨.&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;SHAP는&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;각 sample에서&lt;/li&gt;
&lt;li&gt;특정 feature가 예측 결과의 값(e.g. binary classification의 경우 postive일 확률값)을 얼마나 증가시켰는지 또는 감소시켰는지를 분해하여 보여줌.&lt;/li&gt;
&lt;li&gt;이들에 대한 절대값 평균을 취하여 각 feature가 모델 전체의 결과에 얼마나 기여하는지도 보여줌.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SHAP는 모델의 예측값을 다음으로 분해해서 보여줌:&lt;/p&gt;
&lt;pre class=&quot;1c&quot;&gt;&lt;code&gt;예측값 = &quot;base_value&quot; + &quot;각각의 feature의 기여도의 합&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SAHP는&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;개별 sample에 대해서 모델의 결과에 미친 각 feature의 영향을 정량화할 수 있으며,&lt;/li&gt;
&lt;li&gt;이들을 더하면 해당 sample에 대한 모델의 결과값이 됨.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음과 같은 특징을 가짐:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;개별 샘플 수준(local explanation)에 적용하여 feature의 중요도를 비교 가능
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;local explanation 에선 특정 feature가 어느 방향(sign에 의해)으로 영향을 주는지도 파악 가능.&lt;/li&gt;
&lt;li&gt;주로 waterfall plot 을 사용함.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;전체 데이터 수준(global explanation)에 적용도 가능
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;mean absolute SHAP 를 각 feature로 구하면,&lt;/li&gt;
&lt;li&gt;전체 데이터에서 각 feature의 기여도를 파악할 수 있음.&lt;/li&gt;
&lt;li&gt;주로 summary plot을 사용함.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;sign이 의미를 가짐:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;binary classification의 경우:&lt;/li&gt;
&lt;li&gt;+면 class 1 방향으로 영향을 주고&lt;/li&gt;
&lt;li&gt;-면 class 1 반대 방향으로 영향을 줌.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;각 샘플의 예측을 feature별 기여도의 합으로 설명&lt;/b&gt; 가능.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;feature importance와 mean absolute SHAP는 &lt;br /&gt;비슷한 순서로 feature들을 정렬할 수도 있으나,&lt;br /&gt;정확히 일치하는 경우가 오히려 적음: 정의 차체가 다름.&lt;br /&gt;단, 기여도가 매우 큰 feature에선 &lt;br /&gt;두 경우 모두 큰 값을 가지기 쉬움.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Waterfall plot&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음은 waterfall plot으로 SHAP가 개별 sample에서 어떻게 결과가 나왔는지를 설명하는지를 보여준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음은 binary classification 모델에서 특정 샘플이 positive일 확률이 0.414가 나왔는데 이 결과가 어떻게 나왔는지를 각 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;816&quot; data-origin-height=&quot;446&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cefOS3/dJMcagrkXp6/PJTnSSM7kGtWma0bvDHMkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cefOS3/dJMcagrkXp6/PJTnSSM7kGtWma0bvDHMkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cefOS3/dJMcagrkXp6/PJTnSSM7kGtWma0bvDHMkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcefOS3%2FdJMcagrkXp6%2FPJTnSSM7kGtWma0bvDHMkk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;273&quot; data-origin-width=&quot;816&quot; data-origin-height=&quot;446&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;base value 는 $E[F(X)]=0.583$ 으로 feature값을 전혀 모를 때 positive라고 예측할 평균확률임.&lt;/li&gt;
&lt;li&gt;맨 아래의 smoking 의 값이 Former (예전 담배를 핌) 라는 것이 positive일 확률을 0.01 정도 올림.&lt;/li&gt;
&lt;li&gt;sex 가 Male 이라는 값을 가지는 점이 positive일 확률을 0.01 올림.&lt;/li&gt;
&lt;li&gt;주거 지역(region)이 incheon 이라는 것이 positive일 확률을 0.02 낮춤.&lt;/li&gt;
&lt;li&gt;bmi가 17.3 이라는 점이 positive 일 확률을 0.03 낮춤.&lt;/li&gt;
&lt;li&gt;glucose가 123.4라는 점이 확률을 0.08 올림.&lt;/li&gt;
&lt;li&gt;age가 20이라는 점이 확률을 0.21 낮춤.&lt;/li&gt;
&lt;li&gt;이들을 다 더함으로서 모델은 positive일 확률을 현재 sample $\textbf{x}$에 대해 0.414 로 구함.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Summary plot&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음은 SHAP가 전체 데이터를 사용하여 모델에서 예측에 각 feature가 어떻게 기여했는지를 보여주는 summary plot임.&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;380&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bkhqMJ/dJMcadVD5Cd/5dtp04hbhEHWmx7IiWHUy0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bkhqMJ/dJMcadVD5Cd/5dtp04hbhEHWmx7IiWHUy0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bkhqMJ/dJMcadVD5Cd/5dtp04hbhEHWmx7IiWHUy0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbkhqMJ%2FdJMcadVD5Cd%2F5dtp04hbhEHWmx7IiWHUy0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;253&quot; data-origin-width=&quot;752&quot; data-origin-height=&quot;380&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;위에 있을수록 mean absolute SHAP 값이 큰 feature로 결과에 영향력이 더 크다고 볼 수 있음.&lt;/li&gt;
&lt;li&gt;glucose, age, bmi는 numerical data로 값이 클수록 붉은색의 원이고, 작을수록 푸른색임.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;세 feature 모두 큰 값일수록 positive인 확률값을 결과로 나오도록 기여함이 표시됨.&lt;/li&gt;
&lt;li&gt;단, glucose가 가장 큰 영향을 미치며, age는 그보다 작은 영향을 보임.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;bmi는 방향성은 보이나 영향력은 이 둘에 못 미침.(폭이 매 적음)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;회색으로 표시된 smoking과 region, sex는 categorical data 임.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;smoking 중 일부 class (현재 흡연을 나타내는 current)가 큰 영향을 주기 때문에 positive에 일부 큰 범위에 원이 존재.&lt;/li&gt;
&lt;li&gt;sex는 거의 영향을 주지 않으므로 매우 작은 범위의 기여도륵 보임&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 summary plot과 water plot에 대한 mean absolute SHAP값의 table은 다음과 같음:&lt;/p&gt;
&lt;pre id=&quot;code_1774330175275&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;   feature  mean_abs_shap
2  glucose       0.129659
0      age       0.102015
4  smoking       0.048772
5   region       0.029500
1      bmi       0.028513
3      sex       0.009546&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;같이보면 좋은 자료&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://gist.github.com/ds31x/49096c1f1726149206a0b503adb38d57&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://gist.github.com/ds31x/49096c1f1726149206a0b503adb38d57&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1774615159394&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;xai_shap.ipynb&quot; data-og-description=&quot;xai_shap.ipynb. GitHub Gist: instantly share code, notes, and snippets.&quot; data-og-host=&quot;gist.github.com&quot; data-og-source-url=&quot;https://gist.github.com/ds31x/49096c1f1726149206a0b503adb38d57&quot; data-og-url=&quot;https://gist.github.com/ds31x/49096c1f1726149206a0b503adb38d57&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dI60mi/dJMb8ZvBiDz/vtW1ktC0QUKNS4ONojjof0/img.png?width=1280&amp;amp;height=640&amp;amp;face=0_0_1280_640,https://scrap.kakaocdn.net/dn/br5jwM/dJMb8XR5ufv/LckvP4eVycnyukkJC3yeu1/img.png?width=1280&amp;amp;height=640&amp;amp;face=0_0_1280_640&quot;&gt;&lt;a href=&quot;https://gist.github.com/ds31x/49096c1f1726149206a0b503adb38d57&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://gist.github.com/ds31x/49096c1f1726149206a0b503adb38d57&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dI60mi/dJMb8ZvBiDz/vtW1ktC0QUKNS4ONojjof0/img.png?width=1280&amp;amp;height=640&amp;amp;face=0_0_1280_640,https://scrap.kakaocdn.net/dn/br5jwM/dJMb8XR5ufv/LckvP4eVycnyukkJC3yeu1/img.png?width=1280&amp;amp;height=640&amp;amp;face=0_0_1280_640');&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;xai_shap.ipynb&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;xai_shap.ipynb. GitHub Gist: instantly share code, notes, and snippets.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;gist.github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/ML</category>
      <category>feature importance</category>
      <category>random forest</category>
      <category>SHAP</category>
      <category>XAI</category>
      <author>dsaint31x</author>
      <guid isPermaLink="true">https://dsaint31.tistory.com/958</guid>
      <comments>https://dsaint31.tistory.com/958#entry958comment</comments>
      <pubDate>Tue, 24 Mar 2026 14:42:14 +0900</pubDate>
    </item>
    <item>
      <title>airpod 분실... 키링의 모든 키들도 같이...</title>
      <link>https://dsaint31.tistory.com/957</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;&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;&amp;nbsp;&lt;/p&gt;</description>
      <category>Private Life</category>
      <author>dsaint31x</author>
      <guid isPermaLink="true">https://dsaint31.tistory.com/957</guid>
      <comments>https://dsaint31.tistory.com/957#entry957comment</comments>
      <pubDate>Mon, 9 Mar 2026 21:43:28 +0900</pubDate>
    </item>
    <item>
      <title>ULMFiT : Transfer Learning for NLP</title>
      <link>https://dsaint31.tistory.com/956</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;356&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c4g5di/dJMcahJWtD8/GxRgP3xWj62uUs2fLaYqR1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c4g5di/dJMcahJWtD8/GxRgP3xWj62uUs2fLaYqR1/img.png&quot; data-alt=&quot;Examples of three stages of ULMFiT training: (a) -training on general domain information to capture the general features of the languages used in environmental policymaking. (b) -a structure for performing fine-tuning on target task data using discriminative-based methods supported by slanted triangular learning algorithms. (c) -unfreezing operation to adapt the high-level representation of the responses while preserving the lower-level representations (Howard, J. 2018).&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c4g5di/dJMcahJWtD8/GxRgP3xWj62uUs2fLaYqR1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc4g5di%2FdJMcahJWtD8%2FGxRgP3xWj62uUs2fLaYqR1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;251&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;356&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Examples of three stages of ULMFiT training: (a) -training on general domain information to capture the general features of the languages used in environmental policymaking. (b) -a structure for performing fine-tuning on target task data using discriminative-based methods supported by slanted triangular learning algorithms. (c) -unfreezing operation to adapt the high-level representation of the responses while preserving the lower-level representations (Howard, J. 2018).&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 그림의 원본은 &lt;a href=&quot;https://www.researchgate.net/figure/Examples-of-three-stages-of-ULMFiT-training-a-training-on-general-domain-information_fig2_384502200&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.researchgate.net/figure/Examples-of-three-stages-of-ULMFiT-training-a-training-on-general-domain-information_fig2_384502200&lt;/a&gt;&amp;nbsp;임.&lt;/p&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: #ee2323;&quot;&gt;&lt;b&gt;Averaged Stochastic Gradient Descent Weight-Dropped 3-Layer LSTM&lt;/b&gt;&lt;/span&gt; (AWD 3-Layer LSTM) 의 구조를 사용.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;상단의 learning rate에 대한 그래프들이 좌/우로 있는데,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;왼쪽은 layerindex $l$이 증가(downstream layer, topper layer, 출력에 가까움)할수록 학습률이 큼(Discrimitive Learning Rate)을 의미하고&lt;/li&gt;
&lt;li&gt;오른쪽은 학습이 진행($t$가 증가)될수록 학습률이 초기엔 증가하다 뒤로가면 감소(slanted triangular learning alogrithm)를 의미.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Layer 의 명암 그라디에션은 gradual unfreezing을 의미함 (백색의 layer들은 첨부터 freeze되지 않고 학습됨).&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;ULMFiT 란?&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;ULMFiT (Universal Language Model Fine-tuning for Text Classification)&lt;/b&gt;은&lt;br /&gt;자연어 처리(Natural Language Processing) 분야에서&lt;br /&gt;&lt;u&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;전이학습(Transfer Learning)&lt;/b&gt;이 실질적으로 효과적임&lt;/span&gt;&lt;/u&gt;을 처음으로 명확히 입증한 연구.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;ULMFiT은 구조가 아니라 &lt;span style=&quot;color: #ee2323;&quot;&gt;학습 전략의 전환&lt;/span&gt;을 통해&lt;br /&gt;현대 자연어 처리 모델의 기반을 마련한 연구이다.&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://arxiv.org/abs/1801.06146&quot;&gt;Universal Language Model Fine-tuning for Text Classification, Jeremy Howard, Sebastian Ruder, 2018&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1768545989099&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Universal Language Model Fine-tuning for Text Classification&quot; data-og-description=&quot;Inductive transfer learning has greatly impacted computer vision, but existing approaches in NLP still require task-specific modifications and training from scratch. We propose Universal Language Model Fine-tuning (ULMFiT), an effective transfer learning m&quot; data-og-host=&quot;arxiv.org&quot; data-og-source-url=&quot;https://arxiv.org/abs/1801.06146&quot; data-og-url=&quot;https://arxiv.org/abs/1801.06146v5&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/N252L/dJMb8QefKXJ/FYHNJyxSLG2Vv4uF3Y7xE0/img.png?width=1200&amp;amp;height=700&amp;amp;face=0_0_1200_700,https://scrap.kakaocdn.net/dn/bXDjQN/dJMb8QefKXL/3s76TOsJW1UYeQ4ElDIL1K/img.png?width=1000&amp;amp;height=1000&amp;amp;face=0_0_1000_1000&quot;&gt;&lt;a href=&quot;https://arxiv.org/abs/1801.06146&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://arxiv.org/abs/1801.06146&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/N252L/dJMb8QefKXJ/FYHNJyxSLG2Vv4uF3Y7xE0/img.png?width=1200&amp;amp;height=700&amp;amp;face=0_0_1200_700,https://scrap.kakaocdn.net/dn/bXDjQN/dJMb8QefKXL/3s76TOsJW1UYeQ4ElDIL1K/img.png?width=1000&amp;amp;height=1000&amp;amp;face=0_0_1000_1000');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Universal Language Model Fine-tuning for Text Classification&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Inductive transfer learning has greatly impacted computer vision, but existing approaches in NLP still require task-specific modifications and training from scratch. We propose Universal Language Model Fine-tuning (ULMFiT), an effective transfer learning m&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;arxiv.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이후 등장하는 Transformer 계열 모델의 학습 패러다임에 중요한 영향을 미침.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ULMFiT의 주요 결과만 요약하면 다음과 같음:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;100개의 labeled example만 사용한 경우&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;IMDb: scratch training의 약 &lt;b&gt;1,000개 labeled example&lt;/b&gt; 수준&lt;/li&gt;
&lt;li&gt;AG News: scratch training의 약 &lt;b&gt;2,000개 labeled example&lt;/b&gt; 수준&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;100개의 labeled example + unlabeled target-domain text를 LM fine-tuning에 추가 사용한 경우&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;IMDb: scratch training의 약 &lt;b&gt;10,000개 labeled example&lt;/b&gt; 수준&lt;/li&gt;
&lt;li&gt;AG News: scratch training의 약 &lt;b&gt;5,000개 labeled example&lt;/b&gt; 수준&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ULMFiT은&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;적은 labeled data만으로도 훨씬 많은 labeled data를 사용한 scratch training과 유사한 성능&lt;/b&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;을 보였으며,&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;unlabeled target-domain text를 LM fine-tuning에 활용하면 그 효과가 더 커졌음.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;ULMFiT의 기본 개념&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ULMFiT은&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;대규모 말뭉치(corpus)&lt;/b&gt;로&lt;/li&gt;
&lt;li&gt;사전학습(pretraining)된 &lt;b&gt;언어모델(Language Model)&lt;/b&gt;을 기반으로,&lt;/li&gt;
&lt;li&gt;새로운 문제에 맞게 단계적으로 미세조정(fine-tuning)하는 방법임.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이는 이미지 처리 분야에서&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ImageNet으로 사전학습된 합성곱 신경망(Convolutional Neural Network)을&lt;/li&gt;
&lt;li&gt;새로운 분류 문제에 맞게 fine-tuning하는 방식과 개념적으로 동일하다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이미지에서 transfer learning은 다음을 참고: &lt;a href=&quot;https://dsaint31.me/mkdocs_site/ML/ch11_training/knowledge_transfer/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://dsaint31.me/mkdocs_site/ML/ch11_training/knowledge_transfer/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1768546238922&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;BME&quot; data-og-description=&quot;Transfer Learning The application of skills, knowledge, and/or attitudes that were learned in one situation to another learning situation. (Perkins, 1992) 다른 학습 상황에 배운 기술, 지식 및/또는 태도를 적용하는 것. (퍼킨스, 1992&quot; data-og-host=&quot;dsaint31.me&quot; data-og-source-url=&quot;https://dsaint31.me/mkdocs_site/ML/ch11_training/knowledge_transfer/&quot; data-og-url=&quot;https://dsaint31.me/mkdocs_site/ML/ch11_training/knowledge_transfer/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bC6t4y/dJMb9kl6pPH/TChCFo0xSrUPxg7m6zGMEK/img.png?width=859&amp;amp;height=780&amp;amp;face=0_0_859_780,https://scrap.kakaocdn.net/dn/cBm2qN/dJMb9iaKI5M/mxGL635arbjB60YDrOuXLk/img.png?width=615&amp;amp;height=348&amp;amp;face=0_0_615_348,https://scrap.kakaocdn.net/dn/ded2xQ/dJMb9bvVSrJ/TxJkRlJ65kqnZClNHcJ9eK/img.png?width=425&amp;amp;height=258&amp;amp;face=0_0_425_258&quot;&gt;&lt;a href=&quot;https://dsaint31.me/mkdocs_site/ML/ch11_training/knowledge_transfer/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.me/mkdocs_site/ML/ch11_training/knowledge_transfer/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bC6t4y/dJMb9kl6pPH/TChCFo0xSrUPxg7m6zGMEK/img.png?width=859&amp;amp;height=780&amp;amp;face=0_0_859_780,https://scrap.kakaocdn.net/dn/cBm2qN/dJMb9iaKI5M/mxGL635arbjB60YDrOuXLk/img.png?width=615&amp;amp;height=348&amp;amp;face=0_0_615_348,https://scrap.kakaocdn.net/dn/ded2xQ/dJMb9bvVSrJ/TxJkRlJ65kqnZClNHcJ9eK/img.png?width=425&amp;amp;height=258&amp;amp;face=0_0_425_258');&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;BME&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Transfer Learning The application of skills, knowledge, and/or attitudes that were learned in one situation to another learning situation. (Perkins, 1992) 다른 학습 상황에 배운 기술, 지식 및/또는 태도를 적용하는 것. (퍼킨스, 1992&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.me&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;ULMFiT의 3단계 학습 구조&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;448&quot; data-origin-height=&quot;125&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/byUw1m/dJMcagEhkpI/vFYor9RLz7Iq6ZiiXLigC0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/byUw1m/dJMcagEhkpI/vFYor9RLz7Iq6ZiiXLigC0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/byUw1m/dJMcagEhkpI/vFYor9RLz7Iq6ZiiXLigC0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbyUw1m%2FdJMcagEhkpI%2FvFYor9RLz7Iq6ZiiXLigC0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;448&quot; height=&quot;125&quot; data-origin-width=&quot;448&quot; data-origin-height=&quot;125&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ULMFiT은 다음의 &lt;b&gt;세 단계 학습 과정&lt;/b&gt;으로 구성됨:&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;일반 언어모델 사전학습 (그림 a. LM pre-training)&lt;br /&gt;(General Language Model Pretraining)&lt;/li&gt;
&lt;li&gt;도메인 특화 언어모델 미세조정 (그림 b. LM fine-tuning)&lt;br /&gt;(Domain-specific Language Model Fine-tuning)&lt;/li&gt;
&lt;li&gt;과제 특화 미세조정 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(그림 c. Classifier fine-tuning)&lt;/span&gt; &lt;br /&gt;(Task-specific Fine-tuning)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;356&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c4g5di/dJMcahJWtD8/GxRgP3xWj62uUs2fLaYqR1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c4g5di/dJMcahJWtD8/GxRgP3xWj62uUs2fLaYqR1/img.png&quot; data-alt=&quot;Examples of three stages of ULMFiT training: (a) -training on general domain information to capture the general features of the languages used in environmental policymaking. (b) -a structure for performing fine-tuning on target task data using discriminative-based methods supported by slanted triangular learning algorithms. (c) -unfreezing operation to adapt the high-level representation of the responses while preserving the lower-level representations (Howard, J. 2018).&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c4g5di/dJMcahJWtD8/GxRgP3xWj62uUs2fLaYqR1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc4g5di%2FdJMcahJWtD8%2FGxRgP3xWj62uUs2fLaYqR1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;251&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;356&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Examples of three stages of ULMFiT training: (a) -training on general domain information to capture the general features of the languages used in environmental policymaking. (b) -a structure for performing fine-tuning on target task data using discriminative-based methods supported by slanted triangular learning algorithms. (c) -unfreezing operation to adapt the high-level representation of the responses while preserving the lower-level representations (Howard, J. 2018).&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;참고: Language Modeling의 정의&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1,2 번 과정에서 사용되는 &lt;b&gt;&lt;u&gt;Language Modeling(언어 모델링)&lt;/u&gt;&lt;/b&gt;&lt;u&gt;이란 다음과 같이 정의&lt;/u&gt;된다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;자연어(Natural Language)&lt;/b&gt;에서&lt;/li&gt;
&lt;li&gt;단어(word) 또는 토큰(token)들의 &lt;b&gt;순서(sequence)&lt;/b&gt;에 대해&lt;/li&gt;
&lt;li&gt;해당 시퀀스가 나타날 &lt;b&gt;확률(probability)&lt;/b&gt;을 모델링하는 과제(task)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 보다 구체적으로 표현하면,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이전까지 관측된 단어들이 주어졌을 때,&lt;/li&gt;
&lt;li&gt;다음 단어가 등장할 확률을 예측하는 문제&lt;br /&gt;라고 할 수 있다&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1단계: General Language Model Pretraining&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 단계의 목적은 &lt;b&gt;범용적인 언어 표현(Language Representation)을 학습&lt;/b&gt;하는 것임.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;위키피디아(Wikipedia)와 같은 대규모 일반 텍스트 사용&lt;/li&gt;
&lt;li&gt;문장의 다음 단어를 예측하는 언어모델 학습&lt;/li&gt;
&lt;li&gt;문법(grammar), 의미(semantics), 문맥(context)을 포괄적으로 학습&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 단계에서는 다음과 같은 기법을 적용하지 않음.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Gradual Unfreezing (점진적 레이어 해제)&lt;/li&gt;
&lt;li&gt;Discriminative Learning Rates (레이어별 차등 학습률)&lt;/li&gt;
&lt;li&gt;Slanted Triangular Learning Rate (기울어진 삼각형 학습률 스케줄)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이는 보호해야 할 기존 지식이 없으며,&lt;br /&gt;장기적이고 안정적인 표현 학습이 목적이기 때문임.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2단계: Domain-specific Language Model Fine-tuning&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 단계의 목적은&lt;br /&gt;이미 학습된 언어모델을 &lt;b&gt;특정 도메인(domain)&lt;/b&gt;의 언어 분포에 적응시키는 것임..&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;의료 문서, 리뷰 텍스트 등 도메인 특화 데이터 사용&lt;/li&gt;
&lt;li&gt;여전히 &amp;ldquo;다음 단어 예측&amp;rdquo;이라는 동일한 언어모델 과제 유지&lt;/li&gt;
&lt;li&gt;모델의 역할은 변하지 않음&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 단계에서는 다음 기법들이 &lt;b&gt;선택적으로&lt;/b&gt; 사용될 수 있음.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Gradual Unfreezing (점진적 레이어 해제)&lt;/li&gt;
&lt;li&gt;Discriminative Learning Rates (레이어별 차등 학습률)&lt;/li&gt;
&lt;li&gt;Slanted Triangular Learning Rate (기울어진 삼각형 학습률 스케줄)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반적으로는 낮은 학습률(learning rate)로 전체 모델을 미세조정하는 것만으로도 충분한 경우가 많음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 단계는 언어 지식을 새로 배우는 단계라기보다,&lt;br /&gt;&lt;u&gt;기존 지식의 &lt;b&gt;분포를 &lt;span style=&quot;color: #ee2323;&quot;&gt;특정 domain에 맞게 조정&lt;/span&gt;하는 단계&lt;/b&gt;&lt;/u&gt;로 이해할 수 있음.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3단계: Task-specific Fine-tuning&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 단계는 &lt;b&gt;ULMFiT의 핵심 단계&lt;/b&gt; 임.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;언어모델 위에 분류기(classifier)를 추가&lt;/li&gt;
&lt;li&gt;감성 분류(sentiment classification), 문서 분류(document classification) 등 최종 과제 수행&lt;/li&gt;
&lt;li&gt;데이터 수가 적고 과제가 변경됨&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ULMFiT 를 설명할 때 Task로 classification이 사용되는 이유는 다음과 같음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;classification은 &lt;br /&gt;당시 자연어 처리에서 대표적인 downstream task였고 &lt;br /&gt;소량 데이터 환경에서의 성능 향상을 명확히 보여주기 쉬운 task임.&lt;br /&gt;transfer learning의 효과를 직관적으로 비교 가능한 task이다 보니 많이 사용됨.&lt;br /&gt;다른 task가 안되는 건 아님.&lt;/p&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;이 단계에서 pretraining으로 얻은 기존 언어 지식(language knowledge)이 손상될 위험이 커지며,&lt;br /&gt;이를 방지하기 위해 ULMFiT은 다음의 세 가지 핵심 기법을 제안한다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. Gradual Unfreezing&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(점진적 레이어 해제)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;처음에는 classifier (=head)만 학습&lt;/li&gt;
&lt;li&gt;이후 상위 레이어부터 순차적으로 학습 허용&lt;/li&gt;
&lt;li&gt;마지막으로 하위 레이어까지 미세조정&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 방법은&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;언어의 기본 구조를 담당하는 하위 레이어를 보호하는 데 목적이 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2. Discriminative Learning Rates&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(레이어별 차등 학습률)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;하위 레이어: 매우 작은 학습률&lt;/li&gt;
&lt;li&gt;상위 레이어 및 분류기: 상대적으로 큰 학습률&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 통해&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기본적인 언어 표현은 유지하면서&lt;/li&gt;
&lt;li&gt;과제에 필요한 표현만 빠르게 현재 데이터 셋에 적응시킴.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3. Slanted Triangular Learning Rate&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(기울어진 삼각형 학습률 스케줄) : slanted 는 그래프 등에서 비대칭인 형태를 의미.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;학습 초반: 학습률을 빠르게 증가&lt;/li&gt;
&lt;li&gt;학습 후반: 학습률을 점진적으로 감소&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 스케줄은&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;초기 빠른 적응과&lt;/li&gt;
&lt;li&gt;후반 안정적 수렴을 동시에 달성하기 위한 기법임.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\eta_t = \begin{cases} \eta_{\min} + \frac{t}{\text{cut_fraction} \cdot T} (\eta_{\max} - \eta_{\min}) &amp;amp; \text{if } t &amp;lt; \text{cut_fraction} \cdot T \\ \eta_{\min} + \frac{T - t}{(1 - \text{cut_fraction}) \cdot T} (\eta_{\max} - \eta_{\min}) &amp;amp; \text{otherwise} \end{cases}$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$\eta_t$ : Learning rate at time, $t = \text{current_epoch} \times \text{batches_per_epoch} + \text{current_batch_index}$&lt;/li&gt;
&lt;li&gt;$\eta_{\min}$ : Minimum learning rate. e.g. : $\frac{1}{32} \eta_{\max}$&lt;/li&gt;
&lt;li&gt;$\eta_{\max}$ : Maximum learning rate. e.g. : 0.01&lt;/li&gt;
&lt;li&gt;$T$ : 총 반복횟수 (Total number of iterations = # of epoch * iterations per batch )
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;epochs = 10,&amp;nbsp; training dataset size = 1000, batch size = 32 : $T=10\times \frac{1000}{32}\approx 313$&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;$\text{cut_fraction}$ : Fraction of iterations for increasing learning rate. e.g.: 0.1&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;ULMFiT과 Transformer 모델의 관계&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Transformer 구조(Attention-based Architecture)&lt;/b&gt;가&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;2018년 자연어 처리의 중심으로 자리 잡기 시작하였고,&lt;/li&gt;
&lt;li&gt;당시 대표적인 예가 &lt;b&gt;BERT (Bidirectional Encoder Representations from Transformers)&lt;/b&gt;, &lt;b&gt;GPT-1 (Improving Language Understanding by Generative Pre-Training)&lt;/b&gt; 였음.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ULMFiT은 Transformer 구조를 제안하지는 않았으나,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;사전학습(pretraining)과 미세조정(fine-tuning)을 통해&lt;/li&gt;
&lt;li&gt;NLP에서 Knowledge transfer (=transfer leanring)이라는 학습 패러다임을 정립함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이는 그대로 Transformer 계열 모델에 계승됨.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ULMFiT: 언어모델 사전학습 후 fine-tuning&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BERT&lt;/b&gt;: Transformer 인코더 사전학습 후 fine-tuning
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;문장을 &amp;ldquo;읽고 이해&amp;rdquo;하기 위한 모델: 문장 전체를 양방향으로 이해하는 데 특화&lt;/li&gt;
&lt;li&gt;Encoder-only Transformer&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;GPT-1:&lt;/b&gt; Transformer 디코더 사전학습 후 fine-tuning
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;문장을 &amp;ldquo;한 단어씩 생성&amp;rdquo;하기 위한 모델: 이전 단어들을 바탕으로 다음 단어를 순차적으로 생성하는 데 특화&lt;/li&gt;
&lt;li&gt;Decoder-only Transformer&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2867&quot; data-origin-height=&quot;1839&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/roZfK/dJMcaivggCC/DrIrObbWIByKq5XlXRXqNk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/roZfK/dJMcaivggCC/DrIrObbWIByKq5XlXRXqNk/img.png&quot; data-alt=&quot;https://towardsdatascience.com/a-complete-guide-to-bert-with-code-9f87602e4a11/&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/roZfK/dJMcaivggCC/DrIrObbWIByKq5XlXRXqNk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FroZfK%2FdJMcaivggCC%2FDrIrObbWIByKq5XlXRXqNk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;321&quot; data-origin-width=&quot;2867&quot; data-origin-height=&quot;1839&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;https://towardsdatascience.com/a-complete-guide-to-bert-with-code-9f87602e4a11/&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실제로 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Transformer 모델 성공의 기반&lt;/b&gt;&lt;/span&gt;은&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Attention&lt;/b&gt; &lt;/span&gt;과&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;ULMFiT&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;라고 애기하는 경우가 많음.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;주의할 점:&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ULMFiT은 순환 신경망(&lt;b&gt;Recurrent Neural Network&lt;/b&gt;), 특히 LSTM 기반 으로 시작됨.&lt;/li&gt;
&lt;li&gt;Transformer는 자기주의(Self-Attention) 기반 구조&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Transformer&lt;/b&gt;&lt;/span&gt;는 LSTM 에 비해 보다 구조적으로 안정적이어서&lt;br /&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;ULMFiT에서 제안한 세부 fine-tuning 기법을 단순화&lt;/b&gt;&lt;/span&gt;하여 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ULMFit 은 &lt;b&gt;&amp;ldquo;대규모 사전학습 모델을 downstream task에 맞게 조정한다&amp;rdquo;는 핵심 사고방식&lt;/b&gt; 을 자연어 처리 모델 훈련에 적용시킴.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.me/mkdocs_site/ML/ch16_RNN/RNN_intro&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://dsaint31.me/mkdocs_site/ML/ch16_RNN/RNN_intro&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1768546382380&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;BME&quot; data-og-description=&quot;Recurrent Neural Network (순환신경망, RNN) time series data와 같은 sequential data를 다루는데 적합한 ANN. feedback connection을 가짐. 때문에 weight를 구분하여 가지는 layer들이 쌓이기도 하지만, feedback connection에 &quot; data-og-host=&quot;dsaint31.me&quot; data-og-source-url=&quot;https://dsaint31.me/mkdocs_site/ML/ch16_RNN/RNN_intro&quot; data-og-url=&quot;https://dsaint31.me/mkdocs_site/ML/ch16_RNN/RNN_intro/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/KSCho/dJMb8QefK0j/mQD8AYHW0TIHc3ry9hk3rK/img.png?width=947&amp;amp;height=281&amp;amp;face=0_0_947_281,https://scrap.kakaocdn.net/dn/bufktX/dJMb9kTWxVL/VtQF8v32V8n8P03Kb3nxU1/img.png?width=226&amp;amp;height=257&amp;amp;face=0_0_226_257&quot;&gt;&lt;a href=&quot;https://dsaint31.me/mkdocs_site/ML/ch16_RNN/RNN_intro&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.me/mkdocs_site/ML/ch16_RNN/RNN_intro&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/KSCho/dJMb8QefK0j/mQD8AYHW0TIHc3ry9hk3rK/img.png?width=947&amp;amp;height=281&amp;amp;face=0_0_947_281,https://scrap.kakaocdn.net/dn/bufktX/dJMb9kTWxVL/VtQF8v32V8n8P03Kb3nxU1/img.png?width=226&amp;amp;height=257&amp;amp;face=0_0_226_257');&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;BME&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Recurrent Neural Network (순환신경망, RNN) time series data와 같은 sequential data를 다루는데 적합한 ANN. feedback connection을 가짐. 때문에 weight를 구분하여 가지는 layer들이 쌓이기도 하지만, feedback connection에&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.me&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;ULMFiT 논문에서 평가한 &lt;b&gt;6가지 text classification task/dataset&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;원 benchmark 출처:&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://papers.nips.cc/paper/5782-character-level-convolutional-networks-for-text-classification&quot;&gt;&lt;span&gt;Zhang et al. (2015), Character-level Convolutional Networks for Text Classification&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;&lt;span&gt;Internet Movie Database (IMDb)&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;movie review에 대한 &lt;/span&gt;&lt;b&gt;&lt;span&gt;binary &lt;span style=&quot;color: #ee2323;&quot;&gt;sentiment classification&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span&gt; dataset임.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;사용자가 작성한 영화 리뷰를 입력으로 받아 해당 리뷰가 &lt;/span&gt;&lt;b&gt;&lt;span&gt;positive&lt;/span&gt;&lt;/b&gt;&lt;span&gt;인지 &lt;/span&gt;&lt;b&gt;&lt;span&gt;negative&lt;/span&gt;&lt;/b&gt;&lt;span&gt;인지 분류함.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;ULMFiT에서 사용한 것은 &lt;u&gt;Stanford의 &lt;/u&gt;&lt;/span&gt;&lt;u&gt;&lt;b&gt;&lt;span&gt;Large Movie Review Dataset&lt;/span&gt;&lt;/b&gt;&lt;/u&gt;&lt;span&gt;으로, &lt;br /&gt;25,000개의 training review와 25,000개의 test review로 구성됨.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;비교적 긴 review가 많아 긴 문맥을 처리하는 language model의 성능을 평가하는 데 적합함.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span&gt;공식 dataset URL:&lt;/span&gt;&lt;/b&gt;&lt;span&gt; &lt;/span&gt;&lt;a href=&quot;https://ai.stanford.edu/~amaas/data/sentiment/&quot;&gt;&lt;span&gt;Stanford Large Movie Review Dataset&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span&gt;Text REtrieval Conference Question Classification (TREC-6)&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;자연어 질문을 &lt;/span&gt;&lt;b&gt;&lt;span&gt;6개의 coarse question type&lt;/span&gt;&lt;/b&gt;&lt;span&gt;으로 분류하는 dataset임.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;예를 들어 &amp;ldquo;Who invented the telephone?&amp;rdquo;과 같은 질문이 사람(HUM), 장소(LOC), 숫자(NUM), 설명(DESC) 등 &lt;/span&gt;&lt;b&gt;&lt;span&gt;어떤 종류의 답을 요구하는 질문인지&lt;/span&gt;&lt;/b&gt;&lt;span&gt; 분류함.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Xin Li와 Dan Roth의 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;question classification&lt;/b&gt;&lt;/span&gt; 연구에서 사용된 dataset으로, &lt;br /&gt;training set과 TREC test question이 공개되어 있음.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;짧은 문장의 의미를 파악하여 질문의 semantic type을 구분하는 능력을 평가함.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span&gt;공식 dataset URL:&lt;/span&gt;&lt;/b&gt;&lt;span&gt; &lt;/span&gt;&lt;a href=&quot;https://cogcomp.seas.upenn.edu/Data/QA/QC/&quot;&gt;&lt;span&gt;Cognitive Computation Group &amp;mdash; Question Classification Data&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;원래 &lt;/span&gt;&lt;b&gt;&lt;span&gt;AG&amp;rsquo;s corpus of news articles&lt;/span&gt;&lt;/b&gt;&lt;span&gt;에서 만들어진 news classification dataset이며, &lt;br /&gt;여기서 &lt;/span&gt;&lt;span&gt;AG&lt;/span&gt;&lt;span&gt;는 corpus를 구축한 &lt;/span&gt;&lt;b&gt;&lt;span&gt;Antonio Gulli&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&amp;nbsp;를 가리킴.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;news의 제목과 본문을 입력으로 받아 다음 &lt;/span&gt;&lt;b&gt;&lt;span&gt;4개 category&lt;/span&gt;&lt;/b&gt;&lt;span&gt; 중 하나로 분류함.&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;World&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Sports&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Business&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Sci/Tech&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;현재 널리 사용되는 AG News classification benchmark는 Zhang et al. (2015)의 &lt;/span&gt;&lt;span&gt;Character-level Convolutional Networks for Text Classification&lt;/span&gt;&lt;span&gt;에서 정리하여 사용한 형태임.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;일반적인 &lt;/span&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;topic classification&lt;/b&gt;&lt;/span&gt;&lt;span&gt; 성능을 평가하는 대표적인 benchmark임.&lt;/span&gt;&lt;b&gt;&lt;span&gt;AG&amp;rsquo;s News Topic Classification Dataset (AG News)&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;AG News는 현재 원 제작자가 유지하는 별도의 안정적인 공식 dataset page가 사실상 없음.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span&gt;DBpedia Ontology Classification Dataset (DBpedia)&lt;/span&gt;&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;DBpedia&lt;/span&gt;&lt;span&gt;는 &lt;/span&gt;&lt;b&gt;&lt;span&gt;Database + Wikipedia&lt;/span&gt;&lt;/b&gt;&lt;span&gt;에서 만들어진 명칭으로, &lt;br /&gt;Wikipedia의 structured information을 추출하여 구축한 knowledge base임.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Wikipedia/DBpedia의 entity description을 입력으로 받아 entity가 어떤 semantic category에 속하는지 분류함.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;ULMFiT에서 사용한 benchmark에서는 &lt;/span&gt;&lt;b&gt;&lt;span&gt;14개 class&lt;/span&gt;&lt;/b&gt;&lt;span&gt;를 사용함.&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;Company&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Educational Institution&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Artist&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Athlete&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Office Holder&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Mean of Transportation&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Building&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Natural Place&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Village&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Animal&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Plant&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Album&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Film&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Written Work&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;즉 단순한 topic classification이라기보다 &lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;entity description으로부터 ontology class를 예측하는 classification task&lt;/b&gt;&lt;/span&gt;&lt;span&gt;임.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;DBpedia 자체의 ontology는 Wikipedia infobox를 기반으로 구축된 cross-domain ontology임.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span&gt;DBpedia 공식 URL:&lt;/span&gt;&lt;/b&gt;&lt;span&gt; &lt;/span&gt;&lt;a href=&quot;https://www.dbpedia.org/resources/ontology/&quot;&gt;&lt;span&gt;DBpedia Ontology&lt;/span&gt;&lt;/a&gt;&lt;span&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;&lt;span&gt;DBpedia 자체의 공식 site&lt;/span&gt;&lt;/b&gt;&lt;span&gt;와 &lt;/span&gt;&lt;b&gt;&lt;span&gt;14-class text classification benchmark의 원출처&lt;/span&gt;&lt;/b&gt;&lt;span&gt;는 &lt;/span&gt;&lt;span&gt;구분해서 볼 것.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span&gt;Yelp Review Polarity Dataset (Yelp-bi)&lt;/span&gt;&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;Yelp&lt;/span&gt;&lt;span&gt;는 acronym이 아니라 &lt;/span&gt;&lt;b&gt;&lt;span&gt;Yelp라는 회사 및 review platform의 고유명사&lt;/span&gt;&lt;/b&gt;&lt;span&gt;임.&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;Yelp는 음식점, 상점, 각종 서비스 업체 등에 대해 사용자가 &lt;/span&gt;&lt;b&gt;&lt;span&gt;review와 star rating&lt;/span&gt;&lt;/b&gt;&lt;span&gt;을 남기는 online review platform임.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Yelp-bi&lt;/span&gt;&lt;span&gt;의 &lt;/span&gt;&lt;span&gt;bi&lt;/span&gt;&lt;span&gt;는 &lt;/span&gt;&lt;b&gt;&lt;span&gt;binary&lt;/span&gt;&lt;/b&gt;&lt;span&gt;를 의미함.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Yelp review text를 입력으로 받아 sentiment를 &lt;/span&gt;&lt;b&gt;&lt;span&gt;positive / negative&lt;/span&gt;&lt;/b&gt;&lt;span&gt; 두 class로 분류함.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;ULMFiT에서 사용한 benchmark는 Zhang et al. (2015)이 &lt;/span&gt;&lt;b&gt;&lt;span&gt;2015 Yelp Dataset Challenge data&lt;/span&gt;&lt;/b&gt;&lt;span&gt;로부터 만든 classification dataset임.&amp;nbsp;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;따라서 IMDb와 같은 binary sentiment classification이지만, &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;영화가 아니라 실제 상점&amp;middot;서비스에 대한 review를 대상으로 함.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span&gt;Yelp 공식 data URL:&lt;/span&gt;&lt;/b&gt;&lt;span&gt; &lt;/span&gt;&lt;a href=&quot;https://business.yelp.com/data/resources/open-dataset/&quot;&gt;&lt;span&gt;Yelp Open Dataset&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span&gt;Yelp Review Full Dataset (Yelp-full)&lt;/span&gt;&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;역시 &lt;/span&gt;&lt;b&gt;&lt;span&gt;Yelp review data&lt;/span&gt;&lt;/b&gt;&lt;span&gt;에서 만들어진 dataset임.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;full&lt;/span&gt;&lt;span&gt;은 positive/negative 두 class로 단순화하지 않고 &lt;/span&gt;&lt;b&gt;&lt;span&gt;원래의 &lt;span style=&quot;color: #ee2323;&quot;&gt;rating 수준 전체를 사용&lt;/span&gt;한다는 의미&lt;/span&gt;&lt;/b&gt;&lt;span&gt;임.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;review text를 입력으로 받아 해당 review의 평가가 &lt;/span&gt;&lt;b&gt;&lt;span&gt;1, 2, 3, 4, 5 star 중 어느 class에 해당하는지&lt;/span&gt;&lt;/b&gt;&lt;span&gt; 예측함.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;즉 &lt;/span&gt;&lt;b&gt;&lt;span&gt;5-class sentiment/rating classification&lt;/span&gt;&lt;/b&gt;&lt;span&gt; task임.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Yelp-bi보다 sentiment의 정도를 더 세밀하게 구분해야 하므로 classification task가 더 어려움.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;이 benchmark 역시 Zhang et al. (2015)이 Yelp Dataset Challenge의 review와 star rating으로부터 구성함.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span&gt;Yelp 공식 data URL:&lt;/span&gt;&lt;/b&gt;&lt;span&gt; &lt;/span&gt;&lt;a href=&quot;https://business.yelp.com/data/resources/open-dataset/&quot;&gt;&lt;span&gt;Yelp Open Dataset&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;참고로 &lt;/span&gt;&lt;b&gt;&lt;span&gt;ULMFiT 논문 자체의 공식 URL&lt;/span&gt;&lt;/b&gt;&lt;span&gt;은 다음임.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;https://aclanthology.org/P18-1031/&quot;&gt;&lt;span&gt;Howard &amp;amp; Ruder (2018), Universal Language Model Fine-tuning for Text Classification&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;같이 보면 좋은 자료&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://ds31x.github.io/wiki/hf_transformer/hf_post_transformer/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://ds31x.github.io/wiki/hf_transformer/hf_post_transformer/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1769824453573&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Language Model Taxonomy - Pretraining Paradigms and Encoder-Decoder Architectures&quot; data-og-description=&quot; &quot; data-og-host=&quot;ds31x.github.io&quot; data-og-source-url=&quot;https://ds31x.github.io/wiki/hf_transformer/hf_post_transformer/&quot; data-og-url=&quot;https://ds31x.github.io/wiki/hf_transformer/hf_post_transformer/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bfqvXC/dJMb9kTXTs6/uOeWMDKJPP4J4yG0TXNSs0/img.jpg?width=350&amp;amp;height=350&amp;amp;face=0_0_350_350&quot;&gt;&lt;a href=&quot;https://ds31x.github.io/wiki/hf_transformer/hf_post_transformer/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://ds31x.github.io/wiki/hf_transformer/hf_post_transformer/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bfqvXC/dJMb9kTXTs6/uOeWMDKJPP4J4yG0TXNSs0/img.jpg?width=350&amp;amp;height=350&amp;amp;face=0_0_350_350');&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;Language Model Taxonomy - Pretraining Paradigms and Encoder-Decoder Architectures&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;ds31x.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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/ML</category>
      <category>datasets</category>
      <category>knowledge transfer</category>
      <category>ML</category>
      <category>NLP</category>
      <category>Sequence</category>
      <category>TEXT</category>
      <category>time series</category>
      <category>transfer leaerning</category>
      <category>transformer</category>
      <category>ULMFit</category>
      <author>dsaint31x</author>
      <guid isPermaLink="true">https://dsaint31.tistory.com/956</guid>
      <comments>https://dsaint31.tistory.com/956#entry956comment</comments>
      <pubDate>Fri, 16 Jan 2026 15:53:35 +0900</pubDate>
    </item>
    <item>
      <title>감기...</title>
      <link>https://dsaint31.tistory.com/955</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;가족 구성원들이 돌아가면서...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;막내는 1월1일을 경계로 독감 A,B 모두 획득하시는 쾌거(??)를...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;휴일에 약먹고 자는 건 ㅠㅠ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자고나니 1월 2일이네... ㅠㅠ&lt;/p&gt;</description>
      <category>Private Life</category>
      <author>dsaint31x</author>
      <guid isPermaLink="true">https://dsaint31.tistory.com/955</guid>
      <comments>https://dsaint31.tistory.com/955#entry955comment</comments>
      <pubDate>Fri, 2 Jan 2026 09:09:37 +0900</pubDate>
    </item>
    <item>
      <title>관용과 직무유기의 경계는...</title>
      <link>https://dsaint31.tistory.com/954</link>
      <description>&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;서있라고 하면 앉고 싶고&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;정말 어디까지 막 나갈 수 있는지를 경쟁적으로 보여주는 한 학기였음...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 더 편의를 봐주는 건 직무유기 같은데... ㅠㅠ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;==;; 잔소리를 해봐야 그걸 들어야 하는 사람들은 아예 없는 경우...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p 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>Private Life</category>
      <author>dsaint31x</author>
      <guid isPermaLink="true">https://dsaint31.tistory.com/954</guid>
      <comments>https://dsaint31.tistory.com/954#entry954comment</comments>
      <pubDate>Mon, 8 Dec 2025 20:39:53 +0900</pubDate>
    </item>
    <item>
      <title>Shifted Impulse $\delta(t-a)$의 Laplace Transform</title>
      <link>https://dsaint31.tistory.com/953</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;986&quot; data-origin-height=&quot;1042&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/borjHb/dJMb99Y93NK/nI02hiESzsSqP5yvmYUQW1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/borjHb/dJMb99Y93NK/nI02hiESzsSqP5yvmYUQW1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/borjHb/dJMb99Y93NK/nI02hiESzsSqP5yvmYUQW1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FborjHb%2FdJMb99Y93NK%2FnI02hiESzsSqP5yvmYUQW1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;423&quot; data-origin-width=&quot;986&quot; data-origin-height=&quot;1042&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;0. Laplace Transform의 정의&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\mathcal{L}[x(t)]&lt;br /&gt;= \int_{0^-}^{\infty} x(t) e^{-st} dt$$&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 변환할 함수인 shifted impulse 대입&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$x(t) = \delta(t-a)$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대입하면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$X(s)=\int_{0^-}^{\infty} \delta(t-a) e^{-st} dt$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$\delta$의 위치가 적분 범위 안에 있는지 확인해야 적분의 값이 구해지는데,&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Laplace 적분의 구간은 다음과 같음:&lt;br /&gt;$$0^- \le t &amp;lt; \infty$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, $a&amp;gt;0$이면 $\delta(t&amp;minus;a)$는 이 구간 안에 존재하므로, 적분값은 0이 되지 않음.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. $\delta$의 sifting 성질을 적용하기 위한 준비&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Dirac delta의 기본 성질: sifting property &lt;span style=&quot;color: #ee2323;&quot;&gt;(주의: shift가 아닌 sift임.)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\int_{-\infty}^{\infty} \delta(t-a) f(t) dt = f(a)$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/583&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2023.08.21 - [.../Signals and Systems] - [SS] Properties of Impulse Function&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1764741249321&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;[SS] Properties of Impulse Function&quot; data-og-description=&quot;Impulse function (or Dirac delta function)은 이상적으로, 오직 한 점에서만 무한대의 값을 가지고,나머지에서는 0의 값을 가지며,적분시 면적인 1이 되는 함수 다른 function을 분석하거나, system의 response를 &quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/583&quot; data-og-url=&quot;https://dsaint31.tistory.com/583&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/NRy1y/hyZNCTtXR5/1S2DT81saVbQMsK9tFfF40/img.png?width=624&amp;amp;height=448&amp;amp;face=0_0_624_448,https://scrap.kakaocdn.net/dn/bM4yhv/hyZO0ezmaJ/kgcffkBZvuMnc9o7NROa21/img.png?width=624&amp;amp;height=448&amp;amp;face=0_0_624_448,https://scrap.kakaocdn.net/dn/IxAqB/hyZOHMoxt4/sFw2U9Q9cyiUGKedWAcah0/img.png?width=624&amp;amp;height=448&amp;amp;face=0_0_624_448&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/583&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/583&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/NRy1y/hyZNCTtXR5/1S2DT81saVbQMsK9tFfF40/img.png?width=624&amp;amp;height=448&amp;amp;face=0_0_624_448,https://scrap.kakaocdn.net/dn/bM4yhv/hyZO0ezmaJ/kgcffkBZvuMnc9o7NROa21/img.png?width=624&amp;amp;height=448&amp;amp;face=0_0_624_448,https://scrap.kakaocdn.net/dn/IxAqB/hyZOHMoxt4/sFw2U9Q9cyiUGKedWAcah0/img.png?width=624&amp;amp;height=448&amp;amp;face=0_0_624_448');&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;[SS] Properties of Impulse Function&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Impulse function (or Dirac delta function)은 이상적으로, 오직 한 점에서만 무한대의 값을 가지고,나머지에서는 0의 값을 가지며,적분시 면적인 1이 되는 함수 다른 function을 분석하거나, system의 response를&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.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;이 성질을 사용하기 위해서는 integrand를 다음 형태로 만들어야 함:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\delta(t-a) f(t)$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러므로 &lt;b&gt;앞서의 적분에서 $f(t)$ 역할을 하는 함수는 명시적으로 다음과 같음&lt;/b&gt;:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\boxed{f(t)= e^{-st}}$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 통해 다음이 성립.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\delta(t-a) e^{-st} = \delta(t-a) f(t)$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이는 sifting 성질을 적용할 수 있게 해줌.&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;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. Sifting property를 Laplace 적분 구간에 맞게 적용&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;적분 구간이 $[0^-,\infty)$이고 $a&amp;gt;0$이므로,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\int_{0^-}^{\infty} \delta(t-a) f(t) dt = f(a)$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$X(s)=f(a)=e^{-sa}$$&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. 최종 결과&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\mathcal{L}[\delta(t-a)]=e^{-as}$$&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;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;요약&lt;/h2&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;Laplace integrand는 &lt;b&gt;$\delta(t-a)e^{-st}$&lt;/b&gt; 형태&lt;/li&gt;
&lt;li&gt;$\delta$의 sifting property를 사용: $\delta(t&amp;minus;a) f(t)$ 로 integrand를 바라보기&lt;/li&gt;
&lt;li&gt;Laplace transform 에선 &lt;b&gt;$f(t)=e^{-st}$&lt;/b&gt; 임.&lt;/li&gt;
&lt;li&gt;따라서 &lt;b&gt;$X(s)= f(a) = e^{-sa}$&lt;/b&gt; 가 얻어짐.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;같이보면 좋은 자료들&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/385&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2022.10.24 - [.../Signals and Systems] - [SS] Laplace Transform Table&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1764740411561&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;[SS] Laplace Transform Table&quot; data-og-description=&quot;SignalLaplace TransformRoC...1$u(t)$$\frac{1}{s}$$\text{Re}(s)&amp;gt;0$참고2$u(t)-u(t-a)$$\frac{1-e^{-as}}{s}$$\text{Re}(s)&amp;gt;0$참고3$\delta(t)$1all complex plane 4$\delta(t-a)$$e^{-as}$all complex plane 5$e^{-at}u(t)$$\frac{1}{s+a}$$\text{Re}(s)&amp;gt;-a$참고6$\c&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/385&quot; data-og-url=&quot;https://dsaint31.tistory.com/385&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/iEwYF/hyZNxkjMOT/TrCficM9YlBYZnLbDukdF1/img.png?width=800&amp;amp;height=402&amp;amp;face=0_0_800_402,https://scrap.kakaocdn.net/dn/bUXOy6/hyZOHMovw4/84Q8nfqrDr0vBD8V5XSyF0/img.png?width=800&amp;amp;height=402&amp;amp;face=0_0_800_402&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/385&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/385&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/iEwYF/hyZNxkjMOT/TrCficM9YlBYZnLbDukdF1/img.png?width=800&amp;amp;height=402&amp;amp;face=0_0_800_402,https://scrap.kakaocdn.net/dn/bUXOy6/hyZOHMovw4/84Q8nfqrDr0vBD8V5XSyF0/img.png?width=800&amp;amp;height=402&amp;amp;face=0_0_800_402');&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;[SS] Laplace Transform Table&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;SignalLaplace TransformRoC...1$u(t)$$\frac{1}{s}$$\text{Re}(s)&amp;gt;0$참고2$u(t)-u(t-a)$$\frac{1-e^{-as}}{s}$$\text{Re}(s)&amp;gt;0$참고3$\delta(t)$1all complex plane 4$\delta(t-a)$$e^{-as}$all complex plane 5$e^{-at}u(t)$$\frac{1}{s+a}$$\text{Re}(s)&amp;gt;-a$참고6$\c&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>.../Signals and Systems</category>
      <category>Laplace</category>
      <author>dsaint31x</author>
      <guid isPermaLink="true">https://dsaint31.tistory.com/953</guid>
      <comments>https://dsaint31.tistory.com/953#entry953comment</comments>
      <pubDate>Wed, 3 Dec 2025 14:40:27 +0900</pubDate>
    </item>
    <item>
      <title>From Laplace Transform To z-Transform</title>
      <link>https://dsaint31.tistory.com/952</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xeXpk/dJMcabJsf7p/A06rzOOkeJ11sYT4PTdyGK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xeXpk/dJMcabJsf7p/A06rzOOkeJ11sYT4PTdyGK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xeXpk/dJMcabJsf7p/A06rzOOkeJ11sYT4PTdyGK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxeXpk%2FdJMcabJsf7p%2FA06rzOOkeJ11sYT4PTdyGK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;335&quot; data-origin-width=&quot;2752&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;z-Transform 은 Laplace Transform의 Discrete Version임&lt;/p&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 연속시간 Laplace Transform의 기본 구조&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;연속시간 신호 $x(t)$에 대해 Lapalce Transform은 다음과 같음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$X(s) = \int_{0}^{\infty} x(t) e^{-st} dt$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;복소지수항 $e^{-st}$&lt;/b&gt; 을 사용함.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 샘플링을 통한 이산신호 표현&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;샘플링 주기 $T$에서 얻는 이산신호는 $x[n] = x(nT)$ 로 정의됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이산신호를 연속시간에서 표현하면 &lt;b&gt;shifted impulse들의 가중합&lt;/b&gt; 이 됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$x_s(t) = \sum_{n=-\infty}^{\infty} x[n]\delta(t-nT)$$&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 샘플링된 신호의 Laplace Transform 계산&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Laplace Transform에 $x_s(t)$를 대입하면 다음과 같음:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$X_s(s) = \sum_{n=-\infty}^{\infty} x[n] e^{-snT}$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이 결과는 &lt;b&gt;shift된 delta가 Laplace 영역에서 지수항으로 변환됨&lt;/b&gt;을 직접적으로 반영하는 구조임&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. 변수 치환을 통한 z-transform 도출&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$z = e^{sT}$ 라는 치환을 적용하면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$e^{-snT} = z^{-n}$$&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;$$X(z)=\sum_{n=-\infty}^{\infty} x[n] z^{-n}$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이 수식이 바로 &lt;b&gt;Z-transform의 정의&lt;/b&gt;임&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;5. Shifted impulse의 역할&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이산시간에서 임의 신호는 다음과 같음:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$x[n]=\sum_{k=-\infty}^{\infty} x[k]\delta[n-k]$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;z-transform 적용 시 다음과 같음:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\delta[n-k] \rightarrow z^{-k}$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이는 연속시간에서 다음에 형태에 직접적으로 대응되는 것으로 이해가능함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\delta(t-a) \rightarrow e^{-as}$$&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;6. 요약&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;z-transform은 &lt;b&gt;&amp;ldquo;샘플링된 신호에 Laplace Transform을 적용한 뒤 (z=e^{sT})로 변수 치환한 결과&amp;rdquo;&lt;/b&gt; 로도 볼 수 있음.&lt;/li&gt;
&lt;li&gt;z-transform은 Laplace Transform의 &lt;b&gt;이산(discrete-time) 버전&lt;/b&gt;에 해당하는 구조임&lt;/li&gt;
&lt;li&gt;시간 이동이 지수항으로 변환되는 동일한 원리가 &lt;b&gt;연속시간(Laplace)&lt;/b&gt; 과 &lt;b&gt;이산시간(z-transform)&lt;/b&gt; 모두에서 유지되며 이와 치환이 같이 적용된 결과가 z-Transform임.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;같이 보면 좋은 자료들&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/397&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2022.11.30 - [.../Signals and Systems] - [SS] z-Transform: Introduction&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1764737127322&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;[SS] z-Transform: Introduction&quot; data-og-description=&quot;1. z-Transform이란?Laplace Transform의 Discrete Version (or Generalization of DTFT)Continuous Time Signal과 System에서 Laplace Transform의 역할을Discrete Time Signal과 Discrete Time System에서 담당.수식적으로 보면, DTFT (Discrete Time&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/397&quot; data-og-url=&quot;https://dsaint31.tistory.com/397&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/OtZhM/hyZOMNHHVM/p9Ch9WX03O9PEfpQUnKnu1/img.png?width=367&amp;amp;height=102&amp;amp;face=0_0_367_102,https://scrap.kakaocdn.net/dn/foArr/hyZO2DpgXb/b3HRegTPfowcHidbT6pHVk/img.png?width=367&amp;amp;height=102&amp;amp;face=0_0_367_102&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/397&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/397&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/OtZhM/hyZOMNHHVM/p9Ch9WX03O9PEfpQUnKnu1/img.png?width=367&amp;amp;height=102&amp;amp;face=0_0_367_102,https://scrap.kakaocdn.net/dn/foArr/hyZO2DpgXb/b3HRegTPfowcHidbT6pHVk/img.png?width=367&amp;amp;height=102&amp;amp;face=0_0_367_102');&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;[SS] z-Transform: Introduction&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;1. z-Transform이란?Laplace Transform의 Discrete Version (or Generalization of DTFT)Continuous Time Signal과 System에서 Laplace Transform의 역할을Discrete Time Signal과 Discrete Time System에서 담당.수식적으로 보면, DTFT (Discrete Time&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>.../Signals and Systems</category>
      <category>z-transform</category>
      <author>dsaint31x</author>
      <guid isPermaLink="true">https://dsaint31.tistory.com/952</guid>
      <comments>https://dsaint31.tistory.com/952#entry952comment</comments>
      <pubDate>Wed, 3 Dec 2025 13:43:01 +0900</pubDate>
    </item>
    <item>
      <title>Overfitting (과적합)</title>
      <link>https://dsaint31.tistory.com/951</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Overfit이란&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ML에서 모델이 &lt;b&gt;주어진 훈련데이터에 너무 과하게 적응(adapt)&lt;/b&gt; 하여&lt;/li&gt;
&lt;li&gt;&lt;u&gt;Training dataset에서는 매우 좋은 성능&lt;/u&gt;을 보이지만,&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Unseen data (= validation/test set)에서는 성능이 급격히 떨어지는 현상 &lt;/b&gt;&lt;/span&gt;을 의미함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Model이 Training dataset에 지나치게 맞추어져서 generalization performance가 떨어지는 경우임.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Bias&amp;ndash;Variance 관점&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Overfit의 경우,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Training dataset에서는 &lt;b&gt;performance measure가 매우 좋기 때문에 bias가 매우 낮고&lt;/b&gt;,&lt;/li&gt;
&lt;li&gt;대신 &lt;b&gt;variance가 매우 커지는 특징&lt;/b&gt;을 보임.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;bias 낮음 = training 성능은 좋다&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;variance 높음 = 데이터 샘플이 조금만 바뀌어도 예측 결과가 크게 요동(불안정)&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;training dataset의 &lt;u&gt;노이즈와 우연한 패턴까지 학습&lt;/u&gt;했기 때문에 발생.&lt;/p&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;a href=&quot;https://dsaint31.tistory.com/945&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2025.10.30 - [Programming/ML] - Bias-Variance Tradeoff&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1763643450397&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;Bias-Variance Tradeoff&quot; data-og-description=&quot;Supervised Learning의 궁극적인 목표학습에 사용된 데이터 뿐만 아니라,한 번도 보지 못한 새로운 데이터에 대해서도 정확한 예측을 수행하는 능력, 즉일반화 성능(generalization performance)을 높이는 것&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/945&quot; data-og-url=&quot;https://dsaint31.tistory.com/945&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/kXNpr/hyZNx4HcJH/2BXeqYbL4BPmqUwR6c2r9k/img.png?width=466&amp;amp;height=334&amp;amp;face=0_0_466_334,https://scrap.kakaocdn.net/dn/Isd3Q/hyZN75sqvW/Ir4KBse2is660fWaSwUwO1/img.png?width=466&amp;amp;height=334&amp;amp;face=0_0_466_334,https://scrap.kakaocdn.net/dn/drIdWT/hyZOcMsJW3/Wcr0x6TkHv2T2EzzZVGIzk/img.png?width=466&amp;amp;height=334&amp;amp;face=0_0_466_334&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/945&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/945&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/kXNpr/hyZNx4HcJH/2BXeqYbL4BPmqUwR6c2r9k/img.png?width=466&amp;amp;height=334&amp;amp;face=0_0_466_334,https://scrap.kakaocdn.net/dn/Isd3Q/hyZN75sqvW/Ir4KBse2is660fWaSwUwO1/img.png?width=466&amp;amp;height=334&amp;amp;face=0_0_466_334,https://scrap.kakaocdn.net/dn/drIdWT/hyZOcMsJW3/Wcr0x6TkHv2T2EzzZVGIzk/img.png?width=466&amp;amp;height=334&amp;amp;face=0_0_466_334');&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;Bias-Variance Tradeoff&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Supervised Learning의 궁극적인 목표학습에 사용된 데이터 뿐만 아니라,한 번도 보지 못한 새로운 데이터에 대해서도 정확한 예측을 수행하는 능력, 즉일반화 성능(generalization performance)을 높이는 것&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;언제 발생하는가&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Overfitting은 다음과 같은 조건에서 주로 발생함:&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;데이터의 특징(feature) 수에 비해 training sample 수가 너무 적은 경우&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;모델의 가설공간이 지나치게 크거나 복잡한 경우 (training dataset에 대해)&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;parameters 개수가 과도하게 많음&lt;/li&gt;
&lt;li&gt;지나치게 복잡한 모델 (capacitance가 높은 모델)을 사용한 경우&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Regularization이 너무 약하거나 없을 때&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;weights의 DoF(Degree of Freedom, 자유도)가 지나치게 커짐&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;데이터에 노이즈가 많고, 모델이 이를 그대로 학습한 경우&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Overfitting vs. Underfitting&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 그림은 &lt;b&gt;단순한 패턴을 가진 데이터에 대해 매우 복잡한 모델(고차 다항식/과도한 capacity)을 사용하여&lt;/b&gt;&lt;br /&gt;training set에 완벽히 맞추려다 over-fitting이 발생한 예를 나타냄.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1153&quot; data-origin-height=&quot;571&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brjv0G/dJMcag4YS7W/vBmfWBckAJ0kdcHhtT3s9K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brjv0G/dJMcag4YS7W/vBmfWBckAJ0kdcHhtT3s9K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brjv0G/dJMcag4YS7W/vBmfWBckAJ0kdcHhtT3s9K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbrjv0G%2FdJMcag4YS7W%2FvBmfWBckAJ0kdcHhtT3s9K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;297&quot; data-origin-width=&quot;1153&quot; data-origin-height=&quot;571&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/610&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2023.09.21 - [Programming/ML] - [ML] Underfit&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1763643577937&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;[ML] Underfit&quot; data-og-description=&quot;Underfit이란ML 모델이 주어진 훈련데이터를 제대로 학습하지 못하여&amp;nbsp;Training dataset에서도 나쁜 performance를 보이는 경우를 가르킴.&amp;nbsp;Underfit의 경우 훈련데이터에서도 performance measure의 결과가 매우 &quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/610&quot; data-og-url=&quot;https://dsaint31.tistory.com/610&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dkB9j3/hyZNGAwlpY/tD1KxlMi3ZNELlVIBpVZnk/img.png?width=377&amp;amp;height=295&amp;amp;face=0_0_377_295,https://scrap.kakaocdn.net/dn/bbMxOF/hyZNFVUM9h/TgEc7kJr1GgKVBdbntdh3K/img.png?width=377&amp;amp;height=295&amp;amp;face=0_0_377_295,https://scrap.kakaocdn.net/dn/ZcHwb/hyZNLaLcXE/U7T0zRNEvK70zonZIZ4ja1/img.png?width=377&amp;amp;height=295&amp;amp;face=0_0_377_295&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/610&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/610&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dkB9j3/hyZNGAwlpY/tD1KxlMi3ZNELlVIBpVZnk/img.png?width=377&amp;amp;height=295&amp;amp;face=0_0_377_295,https://scrap.kakaocdn.net/dn/bbMxOF/hyZNFVUM9h/TgEc7kJr1GgKVBdbntdh3K/img.png?width=377&amp;amp;height=295&amp;amp;face=0_0_377_295,https://scrap.kakaocdn.net/dn/ZcHwb/hyZNLaLcXE/U7T0zRNEvK70zonZIZ4ja1/img.png?width=377&amp;amp;height=295&amp;amp;face=0_0_377_295');&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;[ML] Underfit&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Underfit이란ML 모델이 주어진 훈련데이터를 제대로 학습하지 못하여&amp;nbsp;Training dataset에서도 나쁜 performance를 보이는 경우를 가르킴.&amp;nbsp;Underfit의 경우 훈련데이터에서도 performance measure의 결과가 매우&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;해결방안&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Overfitting을 해결하기 위한 방법은 간단히 말하면 다음과 같음.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;모델의 복잡도를 감소시킴(=가설공간 축소).&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;parameters의 갯수 감소&lt;/li&gt;
&lt;li&gt;ANN의 경우, depth/width 줄이기&lt;/li&gt;
&lt;li&gt;모델 capacity를 데이터 양에 적절한 수준으로 감소시킴.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Regularization을 강화.&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;L2/L1 penalty 증가&lt;/li&gt;
&lt;li&gt;Dropout, BatchNorm 사용&lt;/li&gt;
&lt;li&gt;weight decay 적용&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Training data의 양을 늘리기.&lt;/b&gt; **
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;실제 데이터 확보&lt;/li&gt;
&lt;li&gt;또는 Data augmentation 수행&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Feature selection/feature extraction을 통해 noise feature 제거&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;PCA 등으로 차원 축소&lt;/li&gt;
&lt;li&gt;domain-specific feature engineering&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Early stopping 적용&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;validation loss가 증가하기 시작하면 학습 중단&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;주요사항.&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Underfit과 달리 &lt;b&gt;Overfit은 데이터 양 증가 만으로도 해결 가능&lt;/b&gt; 하며,&lt;br /&gt;&lt;u&gt;&lt;b&gt;Regularization&lt;/b&gt;&lt;/u&gt;과 &lt;u&gt;&lt;b&gt;모델 단순화&lt;/b&gt;&lt;/u&gt;를 통해 쉽게 제어할 수 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Deep Learning 의 경우, 모델이 매우 복잡하기 때문에 대부분이 over-fitting을 해결하는 과정을 거침.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/848&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2024.10.27 - [Programming/ML] - [ML] Regularization&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1763643655326&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;[ML] Regularization&quot; data-og-description=&quot;Regularization 이란?기계 학습과 딥러닝에서 Regularization은 모델이 overfitting(과적합)되지 않도록 도와주는 기법을 의미함.Overfitting(과적합)은 모델이 훈련 데이터에 너무 잘 맞아 새로운 데이터에 대&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/848&quot; data-og-url=&quot;https://dsaint31.tistory.com/848&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cen0H2/hyZNNHqcwg/kahVwjGbLB0w02k2N5GW1k/img.png?width=423&amp;amp;height=248&amp;amp;face=0_0_423_248,https://scrap.kakaocdn.net/dn/5Ma35/hyZNYa7dkH/ipMTdcagMt8rIZikXyFeoK/img.png?width=423&amp;amp;height=248&amp;amp;face=0_0_423_248,https://scrap.kakaocdn.net/dn/bVIpwL/hyZNXiXLyj/wieqDLa49bHnEOUr7z65Fk/img.png?width=423&amp;amp;height=248&amp;amp;face=0_0_423_248&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/848&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/848&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cen0H2/hyZNNHqcwg/kahVwjGbLB0w02k2N5GW1k/img.png?width=423&amp;amp;height=248&amp;amp;face=0_0_423_248,https://scrap.kakaocdn.net/dn/5Ma35/hyZNYa7dkH/ipMTdcagMt8rIZikXyFeoK/img.png?width=423&amp;amp;height=248&amp;amp;face=0_0_423_248,https://scrap.kakaocdn.net/dn/bVIpwL/hyZNXiXLyj/wieqDLa49bHnEOUr7z65Fk/img.png?width=423&amp;amp;height=248&amp;amp;face=0_0_423_248');&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;[ML] Regularization&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Regularization 이란?기계 학습과 딥러닝에서 Regularization은 모델이 overfitting(과적합)되지 않도록 도와주는 기법을 의미함.Overfitting(과적합)은 모델이 훈련 데이터에 너무 잘 맞아 새로운 데이터에 대&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/ML</category>
      <category>ML</category>
      <category>overfit</category>
      <category>과적합</category>
      <author>dsaint31x</author>
      <guid isPermaLink="true">https://dsaint31.tistory.com/951</guid>
      <comments>https://dsaint31.tistory.com/951#entry951comment</comments>
      <pubDate>Thu, 20 Nov 2025 22:02:34 +0900</pubDate>
    </item>
    <item>
      <title>Maximum-Likelihood Expectation-Maximization</title>
      <link>https://dsaint31.tistory.com/950</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;775&quot; data-origin-height=&quot;477&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rEeoF/dJMcahW24Ls/jHt2xjcnC8HnbMj9GUOB11/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rEeoF/dJMcahW24Ls/jHt2xjcnC8HnbMj9GUOB11/img.png&quot; data-alt=&quot;https://www.openaccessjournals.com/articles/image-reconstruction-for-petct-scanners-past-achievements-and-future-challenges-11017.html&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rEeoF/dJMcahW24Ls/jHt2xjcnC8HnbMj9GUOB11/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrEeoF%2FdJMcahW24Ls%2FjHt2xjcnC8HnbMj9GUOB11%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;246&quot; data-origin-width=&quot;775&quot; data-origin-height=&quot;477&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;https://www.openaccessjournals.com/articles/image-reconstruction-for-petct-scanners-past-achievements-and-future-challenges-11017.html&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;PET에서의 MLEM은 Poisson 통계 모델에서의 MLE를 EM 알고리즘으로 푸는 것임.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;FBP에 비해, 느리지만 Poisson noise 억제에 강함&lt;/li&gt;
&lt;li&gt;OSEM, MAP-EM 등으로 속도 및 성능 개선 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/636&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2023.10.25 - [.../Math] - [Math] Poisson Distribution (포아송분포)&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1762753777490&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;[Math] Poisson Distribution (포아송분포)&quot; data-og-description=&quot;Poisson Distribution이란?아주 가끔 일어나는 사건(trial)에 대한 확률 분포 : 방사선 검출에 주로 사용되는 확률분포라 의료영상에서는 매우 많이 사용됨. 몇가지 예를 들면 다음과 같음:전체 인구수&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/636&quot; data-og-url=&quot;https://dsaint31.tistory.com/636&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/gMGgp/hyZMFa43Mv/l7C1ItWUDvaRa8aUB4f8H0/img.png?width=529&amp;amp;height=385&amp;amp;face=0_0_529_385,https://scrap.kakaocdn.net/dn/LBAcf/hyZNqjDjen/jJc4seaxoMcAzvp7bdy331/img.png?width=529&amp;amp;height=385&amp;amp;face=0_0_529_385,https://scrap.kakaocdn.net/dn/bxEnxs/hyZNEuQT3r/g1bjQIAES4wFdLtvrJ9wDk/img.png?width=529&amp;amp;height=385&amp;amp;face=0_0_529_385&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/636&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/636&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/gMGgp/hyZMFa43Mv/l7C1ItWUDvaRa8aUB4f8H0/img.png?width=529&amp;amp;height=385&amp;amp;face=0_0_529_385,https://scrap.kakaocdn.net/dn/LBAcf/hyZNqjDjen/jJc4seaxoMcAzvp7bdy331/img.png?width=529&amp;amp;height=385&amp;amp;face=0_0_529_385,https://scrap.kakaocdn.net/dn/bxEnxs/hyZNEuQT3r/g1bjQIAES4wFdLtvrJ9wDk/img.png?width=529&amp;amp;height=385&amp;amp;face=0_0_529_385');&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;[Math] Poisson Distribution (포아송분포)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Poisson Distribution이란?아주 가끔 일어나는 사건(trial)에 대한 확률 분포 : 방사선 검출에 주로 사용되는 확률분포라 의료영상에서는 매우 많이 사용됨. 몇가지 예를 들면 다음과 같음:전체 인구수&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Poisson Likelihood 모델 설정&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 검출기 $i$에서의 측정값 $y_i$ 는 포아송 분포를 따른다고 가정:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$y_i \sim \text{Poisson} \left( \hat{y}_i = \sum_j p_{ij} \lambda_j \right)$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때 전체 log-likelihood 함수는 다음과 같음:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\log \mathcal{L}(\boldsymbol{\lambda}) = \sum_i \left[ y_i \log \left( \sum_j p_{ij} \lambda_j \right) - \left( \sum_j p_{ij} \lambda_j \right) - \log y_i! \right]$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고로 $\log y_i!$는 $\lambda_j$ 에 독립이므로 생략 가능함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 통해 다음의 miximization problem으로 정의할 수 있음:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\underset{\boldsymbol{\lambda} \geq 0}{\text{maximize}} \quad Q(\boldsymbol{\lambda}) = \sum_i \left[ y_i \log \left( \sum_j p_{ij} \lambda_j \right) - \sum_j p_{ij} \lambda_j \right]$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이는 utility function이므로 최대화를 수행.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;EM 방식으로는 다음 surrogate function을 최대화!: 이 과정은 &lt;code&gt;Jensen's inequality&lt;/code&gt;에 기반&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\lambda_j^{k+1} = \lambda_j^k \cdot \frac{1}{\sum_i p_{ij}} \sum_i p_{ij} \cdot \left( \frac{y_i}{\sum_{j'} p_{ij'} \lambda_{j'}^k} \right)$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;요약하면 다음과 같음:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;objective function : $\log \mathcal{L}(\boldsymbol{\lambda})$&lt;/li&gt;
&lt;li&gt;최적화 방법: Expectation-Maximization (EM)&lt;/li&gt;
&lt;li&gt;solution update equation: multiplicative update (양수 유지 보장)&lt;/li&gt;
&lt;li&gt;정규화 항: $\sum_i p_{ij}$ - sensitivity normalization&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/317&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2022.06.02 - [.../Math] - [ML] Likelihood (우도, 기대값)&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1762753808602&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;[ML] Likelihood (우도, 기대값)&quot; data-og-description=&quot;Likelihood (우도) : 더보기likelihood는 probability처럼 가능성을 나타낸다는 비슷한 측면도 있으나 다음과 같은 차이가 있음.probability처럼 likelihood는 상대적 비교는 가능 (즉, likelihood가 클수록 해당 even&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/317&quot; data-og-url=&quot;https://dsaint31.tistory.com/317&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/oqbcG/hyZMHGJBYc/fj1EUicHivcFZRTBz67v31/img.jpg?width=800&amp;amp;height=362&amp;amp;face=0_0_800_362,https://scrap.kakaocdn.net/dn/sYsU6/hyZNfWIa64/XyjOiKQ5Odk4XLA6V21kn0/img.jpg?width=800&amp;amp;height=362&amp;amp;face=0_0_800_362,https://scrap.kakaocdn.net/dn/9Obtj/hyZNE2HiAz/sZ33U1Fu9y5It8Sb2Rfkp0/img.png?width=1987&amp;amp;height=901&amp;amp;face=0_0_1987_901&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/317&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/317&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/oqbcG/hyZMHGJBYc/fj1EUicHivcFZRTBz67v31/img.jpg?width=800&amp;amp;height=362&amp;amp;face=0_0_800_362,https://scrap.kakaocdn.net/dn/sYsU6/hyZNfWIa64/XyjOiKQ5Odk4XLA6V21kn0/img.jpg?width=800&amp;amp;height=362&amp;amp;face=0_0_800_362,https://scrap.kakaocdn.net/dn/9Obtj/hyZNE2HiAz/sZ33U1Fu9y5It8Sb2Rfkp0/img.png?width=1987&amp;amp;height=901&amp;amp;face=0_0_1987_901');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[ML] Likelihood (우도, 기대값)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Likelihood (우도) : 더보기likelihood는 probability처럼 가능성을 나타낸다는 비슷한 측면도 있으나 다음과 같은 차이가 있음.probability처럼 likelihood는 상대적 비교는 가능 (즉, likelihood가 클수록 해당 even&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Mimum Likehood Expection Miximization 수식 **&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\lambda_j^{k+1} = \frac{\lambda_j^k}{\sum_i p_{ij}} \sum_i p_{ij} \cdot \left( \frac{y_i}{\sum_{j'} p_{ij'} \lambda_{j'}^k} \right)&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;where,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$\lambda_j^k$ : $k$번째 iteration(반복)에서 픽셀 $j$에 대한 이미지 추정값&lt;/li&gt;
&lt;li&gt;$y_i$ : $i$번째 검출기에서의 측정값 (projection bin data, sinogram)&lt;/li&gt;
&lt;li&gt;$p_{ij}$ : system matrix(시스템 행렬)의 요소. 픽셀 $j$가 검출기 $i$에 기여하는 정도&lt;/li&gt;
&lt;li&gt;$\sum_{j'} p_{ij'} \lambda_{j'}^k $ : $i$ 검출기에 대한 예측값 - $\hat{y}_i$&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;MLEM - Iterative Reconstruction&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 수식은 MLEM 알고리즘의 업데이트 식임:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1.예측 측정값 계산 (forward projection):&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\hat{y}_i = \sum_{j'} p_{ij'} \lambda_{j'}^k$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2.실제와 예측의 비율 계산:&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\frac{y_i}{\hat{y}_i}$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3.백프로젝션 수행:&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\sum_i p_{ij} \cdot \left( \frac{y_i}{\hat{y}_i} \right)$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4.정규화 후 업데이트:&lt;/b&gt;&lt;br /&gt;$$\lambda_j^{k+1} = \lambda_j^k \cdot \frac{1}{\sum_i p_{ij}} \sum_i p_{ij} \cdot \left( \frac{y_i}{\hat{y}_i} \right)$$&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2712&quot; data-origin-height=&quot;1575&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IMQot/dJMcac2vxI5/pZDT7KX7knhgdhEb7M7mf0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IMQot/dJMcac2vxI5/pZDT7KX7knhgdhEb7M7mf0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IMQot/dJMcac2vxI5/pZDT7KX7knhgdhEb7M7mf0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIMQot%2FdJMcac2vxI5%2FpZDT7KX7knhgdhEb7M7mf0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;290&quot; data-origin-width=&quot;2712&quot; data-origin-height=&quot;1575&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://gist.github.com/dsaint31x/5a46553d69055b93dcacc249c043bef5&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://gist.github.com/dsaint31x/5a46553d69055b93dcacc249c043bef5&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1762753905817&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;pet_mlem_simul.ipynb&quot; data-og-description=&quot;pet_mlem_simul.ipynb. GitHub Gist: instantly share code, notes, and snippets.&quot; data-og-host=&quot;gist.github.com&quot; data-og-source-url=&quot;https://gist.github.com/dsaint31x/5a46553d69055b93dcacc249c043bef5&quot; data-og-url=&quot;https://gist.github.com/dsaint31x/5a46553d69055b93dcacc249c043bef5&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/PL6gQ/hyZNlP9FW4/pOGe6KXJyoVbnfk0lXz0kk/img.png?width=1280&amp;amp;height=640&amp;amp;face=0_0_1280_640,https://scrap.kakaocdn.net/dn/qb8t6/hyZNB5Yv4Y/wjjpXLN7iOZQXkyxtuoMJ1/img.png?width=1280&amp;amp;height=640&amp;amp;face=0_0_1280_640&quot;&gt;&lt;a href=&quot;https://gist.github.com/dsaint31x/5a46553d69055b93dcacc249c043bef5&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://gist.github.com/dsaint31x/5a46553d69055b93dcacc249c043bef5&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/PL6gQ/hyZNlP9FW4/pOGe6KXJyoVbnfk0lXz0kk/img.png?width=1280&amp;amp;height=640&amp;amp;face=0_0_1280_640,https://scrap.kakaocdn.net/dn/qb8t6/hyZNB5Yv4Y/wjjpXLN7iOZQXkyxtuoMJ1/img.png?width=1280&amp;amp;height=640&amp;amp;face=0_0_1280_640');&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;pet_mlem_simul.ipynb&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;pet_mlem_simul.ipynb. GitHub Gist: instantly share code, notes, and snippets.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;gist.github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Note:&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Poisson likelihood 기반임! (측정치는 counter의 결과이므로 항상 양의 정수로)&lt;/li&gt;
&lt;li&gt;분자: 측정값과 예측값의 비율&lt;/li&gt;
&lt;li&gt;분모: 픽셀별 시스템 응답의 총합으로 정규화&lt;/li&gt;
&lt;li&gt;음수 없음, 수렴 보장 (단, 느림)&lt;/li&gt;
&lt;li&gt;forward / backward projection 반복 구조&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;같이보면 좋은 자료&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/924&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2025.09.01 - [정리필요./PET, MRI and so on.] - Radon Transform and Inverse Radon Transform-FBP&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1762760229172&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;Radon Transform and Inverse Radon Transform-FBP&quot; data-og-description=&quot;정의Radon Transform(라돈 변환)은n차원 함수 $f(\textbf{x})$를 : ($\textbf{x}$는 n차원 vector임)$(n-1)$차원 hyperplane(초평면)에 대해projection integral(투영적분)한 값을 나타내는 transform(변환)이를 2D와 3D의 경우&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/924&quot; data-og-url=&quot;https://dsaint31.tistory.com/924&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/wqSxt/hyZNGe866d/Z9DEwbSUx1H8KGkxKaQFL0/img.png?width=800&amp;amp;height=539&amp;amp;face=0_0_800_539,https://scrap.kakaocdn.net/dn/czPtlY/hyZMxREo2s/QahhfacJKr1JfXKSW7d0T1/img.png?width=800&amp;amp;height=539&amp;amp;face=0_0_800_539,https://scrap.kakaocdn.net/dn/cCjVG4/hyZNKV9zsm/aKKLDm9Zt674MPJskXYxR1/img.png?width=821&amp;amp;height=1154&amp;amp;face=0_0_821_1154&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/924&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/924&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/wqSxt/hyZNGe866d/Z9DEwbSUx1H8KGkxKaQFL0/img.png?width=800&amp;amp;height=539&amp;amp;face=0_0_800_539,https://scrap.kakaocdn.net/dn/czPtlY/hyZMxREo2s/QahhfacJKr1JfXKSW7d0T1/img.png?width=800&amp;amp;height=539&amp;amp;face=0_0_800_539,https://scrap.kakaocdn.net/dn/cCjVG4/hyZNKV9zsm/aKKLDm9Zt674MPJskXYxR1/img.png?width=821&amp;amp;height=1154&amp;amp;face=0_0_821_1154');&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;Radon Transform and Inverse Radon Transform-FBP&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;정의Radon Transform(라돈 변환)은n차원 함수 $f(\textbf{x})$를 : ($\textbf{x}$는 n차원 vector임)$(n-1)$차원 hyperplane(초평면)에 대해projection integral(투영적분)한 값을 나타내는 transform(변환)이를 2D와 3D의 경우&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>정리필요./PET, MRI and so on.</category>
      <author>dsaint31x</author>
      <guid isPermaLink="true">https://dsaint31.tistory.com/950</guid>
      <comments>https://dsaint31.tistory.com/950#entry950comment</comments>
      <pubDate>Mon, 10 Nov 2025 15:01:04 +0900</pubDate>
    </item>
    <item>
      <title>Scintillator (섬광체)</title>
      <link>https://dsaint31.tistory.com/949</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;118&quot; data-origin-height=&quot;124&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cD27Kt/dJMb99Y02Cp/3YbdzjqcX6pLVNQ5W0eXnK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cD27Kt/dJMb99Y02Cp/3YbdzjqcX6pLVNQ5W0eXnK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cD27Kt/dJMb99Y02Cp/3YbdzjqcX6pLVNQ5W0eXnK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcD27Kt%2FdJMb99Y02Cp%2F3YbdzjqcX6pLVNQ5W0eXnK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;118&quot; height=&quot;124&quot; data-origin-width=&quot;118&quot; data-origin-height=&quot;124&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;scintillator는 방사선이 물질과 상호작용할 때 &lt;b&gt;에너지를 흡수하고 빛(섬광, 주로 visible phothons)을 방출&lt;/b&gt;하는 물질을 가리킴.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;방출된 빛은 &lt;b&gt;광센서(photo sensor)&lt;/b&gt;에 의해 전기 신호로 변환되어 방사선 검출에 사용&lt;/li&gt;
&lt;li&gt;전자가 여기(excited) 된 이후, 기저상태로 복귀 시 &lt;b&gt;가시광선 또는 근자외선 방출&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;433&quot; data-origin-height=&quot;177&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AB8X6/dJMcajHkxfE/QCad5u4nH8Q3HHFDDvJPPK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AB8X6/dJMcajHkxfE/QCad5u4nH8Q3HHFDDvJPPK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AB8X6/dJMcajHkxfE/QCad5u4nH8Q3HHFDDvJPPK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAB8X6%2FdJMcajHkxfE%2FQCad5u4nH8Q3HHFDDvJPPK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;300&quot; height=&quot;123&quot; data-origin-width=&quot;433&quot; data-origin-height=&quot;177&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주로 뒤에 광센서가 놓임:&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;798&quot; data-origin-height=&quot;445&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rgSpz/dJMcaf5Z4ZN/V0likV6V1Eu8U4zKp9uDqK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rgSpz/dJMcaf5Z4ZN/V0likV6V1Eu8U4zKp9uDqK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rgSpz/dJMcaf5Z4ZN/V0likV6V1Eu8U4zKp9uDqK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrgSpz%2FdJMcaf5Z4ZN%2FV0likV6V1Eu8U4zKp9uDqK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;335&quot; data-origin-width=&quot;798&quot; data-origin-height=&quot;445&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 용어 구분&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;섬광체(scintillator)&lt;/b&gt;: 방사선을 감지하는 기능에 기반한 용어&lt;/li&gt;
&lt;li&gt;&lt;b&gt;크리스털(crystal)&lt;/b&gt;: 물질의 구조적 기반한 용어로 단결정 구조를 가리킴.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;많은 scintillator 가 크리스털이지만, &lt;b&gt;모든 크리스털이 섬광체인 것은 아님.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/263&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2022.04.12 - [정리필요./의료기기의 이해] - Transducer&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1762751118373&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;Transducer&quot; data-og-description=&quot;DefinitionA transducer is a device that transforms a signal from one energy form to another energy form. 즉, 에너지의 형태를 변환시키는 장치 를 가리켜 Transducer라고 한다. 넓게 이야기하는 경우, 다루기 쉬운 형태로 신&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/263&quot; data-og-url=&quot;https://dsaint31.tistory.com/263&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/s7yHv/hyZNmO2NjF/QkJE6KgFqMUoQV1xMgzmeK/img.gif?width=256&amp;amp;height=256&amp;amp;face=0_0_256_256,https://scrap.kakaocdn.net/dn/7atSM/hyZNL8AAK9/jnMIaUe3coFNeKysthYhe1/img.gif?width=256&amp;amp;height=256&amp;amp;face=0_0_256_256&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/263&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/263&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/s7yHv/hyZNmO2NjF/QkJE6KgFqMUoQV1xMgzmeK/img.gif?width=256&amp;amp;height=256&amp;amp;face=0_0_256_256,https://scrap.kakaocdn.net/dn/7atSM/hyZNL8AAK9/jnMIaUe3coFNeKysthYhe1/img.gif?width=256&amp;amp;height=256&amp;amp;face=0_0_256_256');&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;Transducer&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;DefinitionA transducer is a device that transforms a signal from one energy form to another energy form. 즉, 에너지의 형태를 변환시키는 장치 를 가리켜 Transducer라고 한다. 넓게 이야기하는 경우, 다루기 쉬운 형태로 신&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 이상적인 scintillator 의 특성 : 방사선 검출기(or counter)&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;높은 정지능(stopping power)&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;높을수록 고에너지 광자 흡수 능력이 우수.&lt;/li&gt;
&lt;li&gt;밀도&amp;middot;원자번호에 비례&lt;/li&gt;
&lt;li&gt;BGO, LSO, LYSO, GSO은 정지능이 높아 PET용으로 적합&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;짧은 감쇠시간(decay time)&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;빠른 빛 방출로 신속한 신호 처리 가능: 짧은 dead time.&lt;/li&gt;
&lt;li&gt;counter에서 사용될 경우 매우 중요함.&lt;/li&gt;
&lt;li&gt;PET처럼 높은 coincidence 분해능이 요구되는 경우 중요 (LSO, LYSO, GSO가 선호)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;높은 광자 산출량(light yield)&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;단위 MeV당 방출되는 광자의 개수로 측정됨.&lt;/li&gt;
&lt;li&gt;방출 광량이 많을수록 높은 sensitivity를 달성하기 쉬움.&lt;/li&gt;
&lt;li&gt;높을수록 높은 energy resoluton을 달성하기 쉬움.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;CsI(Tl)이 매우 높으며(최대 65,000 ph/MeV), BGO는 낮은 것으로 유명함 (~8,000 ph/MeV)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;우수한 에너지 분해능(energy resolution)&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;서로 다른 에너지의 방사선 구분 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;기계적&amp;middot;화학적 안정성&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;온도&amp;middot;습기&amp;middot;충격에 강할수록 장기적으로 잘 동작하는 검출기를 만들기 쉬움.&lt;/li&gt;
&lt;li&gt;안정적인 성능 확보&lt;/li&gt;
&lt;li&gt;NaI(Tl)은 &lt;b&gt;습기에 매우 약함&lt;/b&gt;: 단, 제작이 쉽고 저가라 많이 사용됨.&lt;/li&gt;
&lt;li&gt;LSO/LYSO는 내구성과 화학적 안정성이 매우 우수함.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;※ 실제 섬광체는 위의 특성 간 &lt;b&gt;trade-off&lt;/b&gt; 존재: 용도에 맞춰 선택 필요&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 섬광체 크기와 성능의 관계&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;360&quot; data-origin-height=&quot;301&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bh1JVw/dJMcahCKkVH/IaArImHBcvE3hB4Kf6EVfk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bh1JVw/dJMcahCKkVH/IaArImHBcvE3hB4Kf6EVfk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bh1JVw/dJMcahCKkVH/IaArImHBcvE3hB4Kf6EVfk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbh1JVw%2FdJMcahCKkVH%2FIaArImHBcvE3hB4Kf6EVfk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;360&quot; height=&quot;301&quot; data-origin-width=&quot;360&quot; data-origin-height=&quot;301&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;scintillator의 크기(area)를 증가시키는 경우 검출기간의 간격이 증가(=pixel의 크기 증가)하여 해상도가 감소하나 정지능은 향상됨.&lt;/li&gt;
&lt;li&gt;scintillator의 두께(thickness)를 증가시키는 경우 stopping power는 증가하나 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;산란&amp;middot;parallax error&lt;/b&gt;&lt;/span&gt;가 증가하여 해상도가 감소함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;sensitivity와 spatial resolution간의 균형을 고려한 선택 필요.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;546&quot; data-origin-height=&quot;478&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bwqes6/dJMcaf5Z4Lm/kKjuhYlFPl4r3v0wVkjPL1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bwqes6/dJMcaf5Z4Lm/kKjuhYlFPl4r3v0wVkjPL1/img.png&quot; data-alt=&quot;PET, Molecular Imaging and Its Biological Applications, Michael E. Phelps&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bwqes6/dJMcaf5Z4Lm/kKjuhYlFPl4r3v0wVkjPL1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbwqes6%2FdJMcaf5Z4Lm%2FkKjuhYlFPl4r3v0wVkjPL1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;350&quot; data-origin-width=&quot;546&quot; data-origin-height=&quot;478&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;PET, Molecular Imaging and Its Biological Applications, Michael E. Phelps&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;의료 영상 기기별 섬광체 크기 비교 (예)&lt;/b&gt;&lt;/p&gt;
&lt;table data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;구분&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;사용 방사선&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;일반적 크기 (mm&amp;sup3;)&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;특징&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;투영방사선촬영 / CT&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;X선 (낮은 에너지)&lt;/td&gt;
&lt;td&gt;0.5&amp;ndash;2 &amp;times; 0.5&amp;ndash;2 &amp;times; 3&amp;ndash;5&lt;/td&gt;
&lt;td&gt;해상도&amp;middot;정지능 균형 유지&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;감마카메라 / SPECT&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;감마선&lt;/td&gt;
&lt;td&gt;3&amp;ndash;5 &amp;times; 3&amp;ndash;5 &amp;times; 6&amp;ndash;10&lt;/td&gt;
&lt;td&gt;감마선 감지 효율 중점&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;PET&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;511 keV 소멸광자&lt;/td&gt;
&lt;td&gt;2&amp;ndash;4 &amp;times; 2&amp;ndash;4 &amp;times; 10&amp;ndash;20&lt;/td&gt;
&lt;td&gt;콜리메이터 없이 해상도 확보, 정지능 한계 존재&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. 주요 scintillator&lt;/h2&gt;
&lt;table style=&quot;height: 250px;&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;height: 40px; width: 98px; text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;Scintillator&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 40px; width: 70px; text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;주요용도&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 40px; width: 98px; text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;밀도 (g/cm&amp;sup3;)&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 40px; width: 101px; text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;감쇠시간 (ns)&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 40px; width: 149px; text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;광자산출량 &lt;br /&gt;(ph/MeV)&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 40px; width: 162px; text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;주요 장점&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 40px; width: 149px; text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;주요 단점&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 38px;&quot;&gt;
&lt;td style=&quot;height: 38px; width: 98px;&quot;&gt;&lt;b&gt;CsI(Tl)&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 38px; width: 70px;&quot;&gt;&lt;span style=&quot;background-color: #f9f9f9; color: #333333; text-align: start;&quot;&gt;CT&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 38px; width: 98px;&quot;&gt;4.51&lt;/td&gt;
&lt;td style=&quot;height: 38px; width: 101px;&quot;&gt;1,000&lt;/td&gt;
&lt;td style=&quot;height: 38px; width: 149px;&quot;&gt;54k-65k&lt;/td&gt;
&lt;td style=&quot;height: 38px; width: 162px;&quot;&gt;높은 광량, 적절한 정지능&lt;/td&gt;
&lt;td style=&quot;height: 38px; width: 149px;&quot;&gt;감쇠시간이 매우 김.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;height: 19px; width: 98px;&quot;&gt;&lt;b&gt;GOS&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 19px; width: 70px;&quot;&gt;CT&lt;/td&gt;
&lt;td style=&quot;height: 19px; width: 98px;&quot;&gt;7.32&lt;/td&gt;
&lt;td style=&quot;height: 19px; width: 101px;&quot;&gt;600&lt;/td&gt;
&lt;td style=&quot;height: 19px; width: 149px;&quot;&gt;45k&lt;/td&gt;
&lt;td style=&quot;height: 19px; width: 162px;&quot;&gt;고밀도, 적절한 감쇠시간&lt;/td&gt;
&lt;td style=&quot;height: 19px; width: 149px;&quot;&gt;광량 낮음&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 38px;&quot;&gt;
&lt;td style=&quot;height: 38px; width: 98px;&quot;&gt;&lt;b&gt;NaI(Tl)&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 38px; width: 70px;&quot;&gt;SPECT&lt;/td&gt;
&lt;td style=&quot;height: 38px; width: 98px;&quot;&gt;3.67&lt;/td&gt;
&lt;td style=&quot;height: 38px; width: 101px;&quot;&gt;230&lt;/td&gt;
&lt;td style=&quot;height: 38px; width: 149px;&quot;&gt;38k&amp;ndash;40k&lt;/td&gt;
&lt;td style=&quot;height: 38px; width: 162px;&quot;&gt;높은 광량, 짧은 감쇠시간&lt;/td&gt;
&lt;td style=&quot;height: 38px; width: 149px;&quot;&gt;습기 취약, 낮은 정지능&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;height: 19px; width: 98px;&quot;&gt;&lt;b&gt;BGO&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 19px; width: 70px;&quot;&gt;PET&lt;/td&gt;
&lt;td style=&quot;height: 19px; width: 98px;&quot;&gt;7.13&lt;/td&gt;
&lt;td style=&quot;height: 19px; width: 101px;&quot;&gt;300&lt;/td&gt;
&lt;td style=&quot;height: 19px; width: 149px;&quot;&gt;8200&lt;/td&gt;
&lt;td style=&quot;height: 19px; width: 162px;&quot;&gt;높은 정지능&lt;/td&gt;
&lt;td style=&quot;height: 19px; width: 149px;&quot;&gt;낮은 광량&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;height: 19px; width: 98px;&quot;&gt;&lt;b&gt;LSO&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 19px; width: 70px;&quot;&gt;PET&lt;/td&gt;
&lt;td style=&quot;height: 19px; width: 98px;&quot;&gt;7.4&lt;/td&gt;
&lt;td style=&quot;height: 19px; width: 101px;&quot;&gt;40&lt;/td&gt;
&lt;td style=&quot;height: 19px; width: 149px;&quot;&gt;25k&amp;ndash;32k&lt;/td&gt;
&lt;td style=&quot;height: 19px; width: 162px;&quot;&gt;빠른 감쇠, 높은 광량&lt;/td&gt;
&lt;td style=&quot;height: 19px; width: 149px;&quot;&gt;고비용&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;height: 19px; width: 98px;&quot;&gt;&lt;b&gt;LYSO&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 19px; width: 70px;&quot;&gt;PET&lt;/td&gt;
&lt;td style=&quot;height: 19px; width: 98px;&quot;&gt;7.1&lt;/td&gt;
&lt;td style=&quot;height: 19px; width: 101px;&quot;&gt;40&lt;/td&gt;
&lt;td style=&quot;height: 19px; width: 149px;&quot;&gt;25k&amp;ndash;32k&lt;/td&gt;
&lt;td style=&quot;height: 19px; width: 162px;&quot;&gt;LSO와 유사, 고감도&lt;/td&gt;
&lt;td style=&quot;height: 19px; width: 149px;&quot;&gt;고비용&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;height: 19px; width: 98px;&quot;&gt;&lt;b&gt;GSO&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 19px; width: 70px;&quot;&gt;PET&lt;/td&gt;
&lt;td style=&quot;height: 19px; width: 98px;&quot;&gt;6.71&lt;/td&gt;
&lt;td style=&quot;height: 19px; width: 101px;&quot;&gt;60&lt;/td&gt;
&lt;td style=&quot;height: 19px; width: 149px;&quot;&gt;8k&amp;ndash;10k&lt;/td&gt;
&lt;td style=&quot;height: 19px; width: 162px;&quot;&gt;적절한 특성&lt;/td&gt;
&lt;td style=&quot;height: 19px; width: 149px;&quot;&gt;정지능 낮음&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;CsI(Tl)&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;X-ray용 CT에서 흔히 사용&lt;/li&gt;
&lt;li&gt;긴 감쇠시간(~1 &amp;micro;s)과 높은 광자산출량&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Gd₂O₂S (GOS)&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;CT용 분말형 섬광체&lt;/li&gt;
&lt;li&gt;상대적으로 낮은 광자산출량(45,000 ph/MeV)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NaI(Tl)&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;감마카메라/SPECT 에서 널리 사용됨&lt;/li&gt;
&lt;li&gt;감쇠시간 230 ns 수준&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BGO&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;높은 밀도(7.13 g/cm&amp;sup3;)로 높은 정지능으로 유명하나&lt;/li&gt;
&lt;li&gt;낮은 광자산출량(~8,000)이 단점.&lt;/li&gt;
&lt;li&gt;PET 초창기 표준 scitillator로 사용됨.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;LSO (Lu₂SiO₅:Ce)&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;BGO의 느린 decay time을 개선: 빠른 감쇠(40 ns)&lt;/li&gt;
&lt;li&gt;동시에 높은 밀도와 밝기가 장점이나 고비용임.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;LYSO (Lu₁.₈Y₀.₂SiO₅:Ce)&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;LSO 와 유사한 성능&lt;/li&gt;
&lt;li&gt;LYSO = LSO + Y 도핑.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;GSO (Gd₂SiO₅:Ce)&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;PET에 사용, BGO보다 빠르지만 정지능은 낮음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;5. 같이보면 좋은 자료들&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #595959;&quot;&gt;5-3장 라돈변환 기반 의료영상 - &lt;/span&gt;&lt;/b&gt;06. 방사선 검출 기술과 의료영상에서의 응용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.koonja.co.kr/products/products_view.html?cd=CD0016&amp;amp;no=24613&amp;amp;refer=%2Fproducts%2Fsearch.html%3Fsearchkey%3D%EC%9D%98%EA%B3%B5%ED%95%99%EA%B0%9C%EB%A1%A0&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.koonja.co.kr/products/products_view.html?cd=CD0016&amp;amp;no=24613&amp;amp;refer=%2Fproducts%2Fsearch.html%3Fsearchkey%3D%EC%9D%98%EA%B3%B5%ED%95%99%EA%B0%9C%EB%A1%A0&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1762751529161&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;군자출판사&quot; data-og-description=&quot;군자출판사의 독자들이 대한민국 최고의 군자출판사의 역사를 이끌어 갑니다.&quot; data-og-host=&quot;koonja.co.kr&quot; data-og-source-url=&quot;https://www.koonja.co.kr/products/products_view.html?cd=CD0016&amp;amp;no=24613&amp;amp;refer=%2Fproducts%2Fsearch.html%3Fsearchkey%3D%EC%9D%98%EA%B3%B5%ED%95%99%EA%B0%9C%EB%A1%A0&quot; data-og-url=&quot;https://koonja.co.kr/main/main.html&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/orDDH/hyZNw4EH9l/ZIKZllXHaBcLsjKmvkNTi0/img.png?width=263&amp;amp;height=170&amp;amp;face=0_0_263_170&quot;&gt;&lt;a href=&quot;https://www.koonja.co.kr/products/products_view.html?cd=CD0016&amp;amp;no=24613&amp;amp;refer=%2Fproducts%2Fsearch.html%3Fsearchkey%3D%EC%9D%98%EA%B3%B5%ED%95%99%EA%B0%9C%EB%A1%A0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.koonja.co.kr/products/products_view.html?cd=CD0016&amp;amp;no=24613&amp;amp;refer=%2Fproducts%2Fsearch.html%3Fsearchkey%3D%EC%9D%98%EA%B3%B5%ED%95%99%EA%B0%9C%EB%A1%A0&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/orDDH/hyZNw4EH9l/ZIKZllXHaBcLsjKmvkNTi0/img.png?width=263&amp;amp;height=170&amp;amp;face=0_0_263_170');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;군자출판사&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;군자출판사의 독자들이 대한민국 최고의 군자출판사의 역사를 이끌어 갑니다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;koonja.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/306&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://dsaint31.tistory.com/306&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1762751722651&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;[Physics] Interaction : 방사선과 물질의 상호작용.&quot; data-og-description=&quot;방사선에 대해 인체 구성물질의 상호작용은 간단히 생각하면 물(water)과의 상호작용과 매우 유사함 (특히, soft tissue의 경우.) 다음 표는 대표적인 상호작용들이 방사선의 에너지에 따라 물(water)&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/306&quot; data-og-url=&quot;https://dsaint31.tistory.com/306&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bw3EwV/hyZNCX6SV7/iWvMSQy1EkVEalBnpNtbrK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/cDjz4R/hyZNGGcDSV/3JLiLUmz5MLFyeENmvR0M0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/306&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/306&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bw3EwV/hyZNCX6SV7/iWvMSQy1EkVEalBnpNtbrK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/cDjz4R/hyZNGGcDSV/3JLiLUmz5MLFyeENmvR0M0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[Physics] Interaction : 방사선과 물질의 상호작용.&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;방사선에 대해 인체 구성물질의 상호작용은 간단히 생각하면 물(water)과의 상호작용과 매우 유사함 (특히, soft tissue의 경우.) 다음 표는 대표적인 상호작용들이 방사선의 에너지에 따라 물(water)&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>정리필요./PET, MRI and so on.</category>
      <author>dsaint31x</author>
      <guid isPermaLink="true">https://dsaint31.tistory.com/949</guid>
      <comments>https://dsaint31.tistory.com/949#entry949comment</comments>
      <pubDate>Mon, 10 Nov 2025 14:17:04 +0900</pubDate>
    </item>
    <item>
      <title>LASSO Regression</title>
      <link>https://dsaint31.tistory.com/948</link>
      <description>&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;341&quot; data-origin-height=&quot;420&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/doKhqa/dJMcaihljJo/ZPKHvKGJDns8yJdifTrrW0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/doKhqa/dJMcaihljJo/ZPKHvKGJDns8yJdifTrrW0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/doKhqa/dJMcaihljJo/ZPKHvKGJDns8yJdifTrrW0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdoKhqa%2FdJMcaihljJo%2FZPKHvKGJDns8yJdifTrrW0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;300&quot; height=&quot;370&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;341&quot; data-origin-height=&quot;420&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;명칭의 유래&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;LASSO&lt;/b&gt;: &lt;i&gt;Least &lt;span style=&quot;color: #ee2323;&quot;&gt;Absolute&lt;/span&gt; Shrinkage and Selection Operator&lt;/i&gt; 의 약자&lt;/li&gt;
&lt;li&gt;이름에서 알 수 있듯이,
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;절대값(absolute value) 기반의&lt;/li&gt;
&lt;li&gt;shrinkage(축소)와&lt;/li&gt;
&lt;li&gt;feature selection(특성 선택)을 동시에 수행하는 회귀 기법&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&amp;ldquo;Shrinkage&amp;rdquo;는 weight의 크기를 줄이는 정칙화 효과,&lt;/li&gt;
&lt;li&gt;&amp;ldquo;Selection&amp;rdquo;은 일부 weight를 &lt;b&gt;정확히 0&lt;/b&gt;으로 만들어 feature를 제거하는 효과를 의미함&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;역사&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Tibshirani (1996)&lt;/b&gt; 에 의해 제안됨&lt;/li&gt;
&lt;li&gt;Ridge Regression이 모든 weight를 균일하게 줄이는 것과 달리, &lt;br /&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;Lasso는 일부 weight를 0으로 만들어 &lt;b&gt;희소성(sparsity)&lt;/b&gt; 을 유도&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;주로 convex optimization 에서 자주 사용됨.&lt;/li&gt;
&lt;li&gt;L1 norm을 사용한 penalty term을 포함하는 Lasso는 Tikhonov regularization의 변형으로 볼 수 있으나, penalty 함수의 형태가 절댓값으로 바뀐 점이 결정적 차이점을 가짐.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;참고: L1 vs L2 정칙화의 특성&lt;/h2&gt;
&lt;table style=&quot;width: 656px;&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 132px; text-align: center;&quot; align=&quot;left&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;구분&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 233px; text-align: center;&quot; align=&quot;left&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;L1 정칙화 (Lasso)&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 291px; text-align: center;&quot; align=&quot;left&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;L2 정칙화 (Ridge)&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 132px;&quot; align=&quot;left&quot;&gt;Penalty&lt;/td&gt;
&lt;td style=&quot;width: 233px;&quot; align=&quot;left&quot;&gt;$\lambda \sum w_j $&lt;/td&gt;
&lt;td style=&quot;width: 291px;&quot; align=&quot;left&quot;&gt;$\lambda \sum w_j^2$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 132px;&quot; align=&quot;left&quot;&gt;결과&lt;/td&gt;
&lt;td style=&quot;width: 233px;&quot; align=&quot;left&quot;&gt;Sparse solution (일부 0)&lt;/td&gt;
&lt;td style=&quot;width: 291px;&quot; align=&quot;left&quot;&gt;Smooth shrinkage (모두 작아짐)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 132px;&quot; align=&quot;left&quot;&gt;Feature selection&lt;/td&gt;
&lt;td style=&quot;width: 233px;&quot; align=&quot;left&quot;&gt;가능&lt;/td&gt;
&lt;td style=&quot;width: 291px;&quot; align=&quot;left&quot;&gt;불가능&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 132px;&quot; align=&quot;left&quot;&gt;해석 용이성&lt;/td&gt;
&lt;td style=&quot;width: 233px;&quot; align=&quot;left&quot;&gt;높음&lt;/td&gt;
&lt;td style=&quot;width: 291px;&quot; align=&quot;left&quot;&gt;낮음&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 132px;&quot; align=&quot;left&quot;&gt;안정성&lt;/td&gt;
&lt;td style=&quot;width: 233px;&quot; align=&quot;left&quot;&gt;낮음 (상관특성 간 불안정)&lt;/td&gt;
&lt;td style=&quot;width: 291px;&quot; align=&quot;left&quot;&gt;높음 (multicollinearity 완화)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Lasso Regression (L1 정화)&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Objective Function&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$L = \displaystyle \frac{1}{m}\sum_{i=1}^{m} (y_i - \hat{y}_i)^2 + \lambda \sum_{j=1}^{n} |w_j|$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$m$ : sample 수&lt;/li&gt;
&lt;li&gt;$n$ : feature 수&lt;/li&gt;
&lt;li&gt;$\lambda$ : regularization 강도 (hyperparameter)&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Gradient (subgradient)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\frac{\partial L}{\partial w_j} = -\frac{2}{m}\sum_{i=1}^{m}(y_i - \hat{y}_i)x_{ij} + \lambda \cdot \text{sign}(w_j)$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단, $w_j = 0$ 인 구간에서는 미분 불가능하므로 &lt;b&gt;subgradient&lt;/b&gt; 사용.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/946&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2025.11.02 - [Programming/ML] - Subgradient 와 Gradient Descent&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1763609139921&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;Subgradient 와 Gradient Descent&quot; data-og-description=&quot;Prerequistes모델 학습의 목표는손실 함수 $L(\boldsymbol{\omega}, \textbf{X})$를 최소화하는파라미터 $\boldsymbol{\omega}$를 찾는 것임.이때 가장 기본적인 최적화 방법은 Gradient Descent(경사 하강법)임:$$\boxed{\bo&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/946&quot; data-og-url=&quot;https://dsaint31.tistory.com/946&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bZxz7S/hyZOiMygTw/Uq1vXiTH8kZZWM0ww1xko1/img.jpg?width=800&amp;amp;height=414&amp;amp;face=0_0_800_414,https://scrap.kakaocdn.net/dn/HrgBi/hyZNznMnwv/g5O9IpQCWGUo78uEYF5I21/img.jpg?width=800&amp;amp;height=414&amp;amp;face=0_0_800_414,https://scrap.kakaocdn.net/dn/VYS4y/hyZNB6YSbW/R05d5YS11Crhkm3nK2MfJk/img.jpg?width=1373&amp;amp;height=711&amp;amp;face=0_0_1373_711&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/946&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/946&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bZxz7S/hyZOiMygTw/Uq1vXiTH8kZZWM0ww1xko1/img.jpg?width=800&amp;amp;height=414&amp;amp;face=0_0_800_414,https://scrap.kakaocdn.net/dn/HrgBi/hyZNznMnwv/g5O9IpQCWGUo78uEYF5I21/img.jpg?width=800&amp;amp;height=414&amp;amp;face=0_0_800_414,https://scrap.kakaocdn.net/dn/VYS4y/hyZNB6YSbW/R05d5YS11Crhkm3nK2MfJk/img.jpg?width=1373&amp;amp;height=711&amp;amp;face=0_0_1373_711');&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;Subgradient 와 Gradient Descent&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Prerequistes모델 학습의 목표는손실 함수 $L(\boldsymbol{\omega}, \textbf{X})$를 최소화하는파라미터 $\boldsymbol{\omega}$를 찾는 것임.이때 가장 기본적인 최적화 방법은 Gradient Descent(경사 하강법)임:$$\boxed{\bo&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;특징&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;일부 $w_j$가 정확히 &lt;b&gt;0&lt;/b&gt;이 되어 불필요한 특성을 제거&lt;/li&gt;
&lt;li&gt;모델 단순화 및 해석 용이성 증가&lt;/li&gt;
&lt;li&gt;그러나 feature 간 강한 상관(multicollinearity)이 존재할 때, feature selection이 불안정해질 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Ridge Regression (L2 정칙화)와의 비교&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Ridge: 모든 weight를 작게 만드는 &lt;b&gt;연속적 축소(continuous shrinkage)&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Lasso&lt;/b&gt;: 일부 weight를 &lt;b&gt;완전히 제거(sparse selection)&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;실제 모델링에서는&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;u&gt; 두 기법을 혼합한 &lt;b&gt;Elastic Net&lt;/b&gt;이 자주 사용&lt;/u&gt;&lt;/span&gt;됨&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;L = \frac{1}{m}\sum (y_i - \hat{y}_i)^2 + \lambda_1 \sum |w_j| + \lambda_2 \sum w_j^2&lt;br /&gt;$$&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;기하학적 해석&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;L2 제약(Ridge)&lt;/b&gt;: 원형(circle) =&amp;gt; 모든 방향 동일한 제약&lt;/li&gt;
&lt;li&gt;&lt;b&gt;L1 제약(Lasso)&lt;/b&gt;: 마름모(diamond) 형태
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Loss function의 contour와 마름모의 꼭짓점이 만나는 지점에서 해가 발생&lt;/li&gt;
&lt;li&gt;꼭짓점에서 일부 ( $w_j = 0$ )이 되어 &lt;b&gt;sparse solution&lt;/b&gt; 유도&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;이 차이로 인해,
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Ridge는 &amp;ldquo;모두 조금씩 줄이지만 0은 만들지 않음&amp;rdquo;,&lt;/li&gt;
&lt;li&gt;Lasso는 &amp;ldquo;일부를 완전히 0으로&amp;rdquo; 만드는 효과를 가짐&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;602&quot; data-origin-height=&quot;399&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bnz0lw/dJMcacamfH8/Dp1WhGIL0oYcNRuh12v0G0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bnz0lw/dJMcacamfH8/Dp1WhGIL0oYcNRuh12v0G0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bnz0lw/dJMcacamfH8/Dp1WhGIL0oYcNRuh12v0G0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbnz0lw%2FdJMcacamfH8%2FDp1WhGIL0oYcNRuh12v0G0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;398&quot; data-origin-width=&quot;602&quot; data-origin-height=&quot;399&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;기타&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Ridge 의 경우처럼, Regularization Term을 샘플 수로 나누는 처리가 보통 이루어지며, &lt;u&gt;&lt;b&gt;bias에 대해선 규제를 하지 않기도 함&lt;/b&gt;&lt;/u&gt;.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/947&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2025.11.06 - [Programming/ML] - Ridge Regression&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1762582695120&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;Ridge Regression&quot; data-og-description=&quot;명칭의 유래Ridge: &amp;quot;산등성이&amp;quot; 또는 &amp;quot;융기&amp;quot;를 의미하는 영어 단어L2-Regularization Term 추가 시 loss function의 contour가 융기된 형태로 변형되는 데에서 유래됨.역사적 배경Tikhonov regularization (1963)과 수학&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/947&quot; data-og-url=&quot;https://dsaint31.tistory.com/947&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/2wJL1/hyZNkJZNe1/ZsFnHh7BAsV6XPbvjSpGTK/img.jpg?width=720&amp;amp;height=314&amp;amp;face=0_0_720_314,https://scrap.kakaocdn.net/dn/KGT0X/hyZMwLJ2VN/9HvGs927dejKEywCWK20Rk/img.jpg?width=720&amp;amp;height=314&amp;amp;face=0_0_720_314,https://scrap.kakaocdn.net/dn/ckYsEJ/hyZNkDd1CF/Mak85fAE8BTB0A6dBFAMz1/img.jpg?width=720&amp;amp;height=314&amp;amp;face=0_0_720_314&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/947&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/947&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/2wJL1/hyZNkJZNe1/ZsFnHh7BAsV6XPbvjSpGTK/img.jpg?width=720&amp;amp;height=314&amp;amp;face=0_0_720_314,https://scrap.kakaocdn.net/dn/KGT0X/hyZMwLJ2VN/9HvGs927dejKEywCWK20Rk/img.jpg?width=720&amp;amp;height=314&amp;amp;face=0_0_720_314,https://scrap.kakaocdn.net/dn/ckYsEJ/hyZNkDd1CF/Mak85fAE8BTB0A6dBFAMz1/img.jpg?width=720&amp;amp;height=314&amp;amp;face=0_0_720_314');&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;Ridge Regression&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;명칭의 유래Ridge: &quot;산등성이&quot; 또는 &quot;융기&quot;를 의미하는 영어 단어L2-Regularization Term 추가 시 loss function의 contour가 융기된 형태로 변형되는 데에서 유래됨.역사적 배경Tikhonov regularization (1963)과 수학&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;요약&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Lasso Regression&lt;/b&gt;은 L1 정칙화 기반 회귀모델&lt;/li&gt;
&lt;li&gt;일부 weight를 0으로 만들어 &lt;b&gt;feature selection 효과&lt;/b&gt; 제공&lt;/li&gt;
&lt;li&gt;Ridge에 비해 해석 용이(고려할 feature의 갯수가 감소)하지만, 안정성은 다소 떨어짐&lt;/li&gt;
&lt;li&gt;데이터 규모와 상관없는 일관된 ($\lambda$)를 위해 평균화 필요&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;bia&lt;span style=&quot;color: #ee2323;&quot;&gt;s는 규제하지 않음 (평행이동 불변성 유지&lt;/span&gt;&lt;/b&gt;)&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt; shift invariance &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;translation invariance&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;invariance to translation&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;Ridge와 Lasso의 중간형으로 Elastic Net&lt;/span&gt;&lt;/b&gt;이 실무에서 자주 사용됨&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;같이보면 좋은 자료들&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/848&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2024.10.27 - [Programming/ML] - [ML] Regularization&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1763609150221&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;[ML] Regularization&quot; data-og-description=&quot;Regularization 이란?기계 학습과 딥러닝에서 Regularization은 모델이 overfitting(과적합)되지 않도록 도와주는 기법을 의미함.Overfitting(과적합)은 모델이 훈련 데이터에 너무 잘 맞아 새로운 데이터에 대&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/848&quot; data-og-url=&quot;https://dsaint31.tistory.com/848&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cen0H2/hyZNNHqcwg/kahVwjGbLB0w02k2N5GW1k/img.png?width=423&amp;amp;height=248&amp;amp;face=0_0_423_248,https://scrap.kakaocdn.net/dn/5Ma35/hyZNYa7dkH/ipMTdcagMt8rIZikXyFeoK/img.png?width=423&amp;amp;height=248&amp;amp;face=0_0_423_248,https://scrap.kakaocdn.net/dn/bVIpwL/hyZNXiXLyj/wieqDLa49bHnEOUr7z65Fk/img.png?width=423&amp;amp;height=248&amp;amp;face=0_0_423_248&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/848&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/848&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cen0H2/hyZNNHqcwg/kahVwjGbLB0w02k2N5GW1k/img.png?width=423&amp;amp;height=248&amp;amp;face=0_0_423_248,https://scrap.kakaocdn.net/dn/5Ma35/hyZNYa7dkH/ipMTdcagMt8rIZikXyFeoK/img.png?width=423&amp;amp;height=248&amp;amp;face=0_0_423_248,https://scrap.kakaocdn.net/dn/bVIpwL/hyZNXiXLyj/wieqDLa49bHnEOUr7z65Fk/img.png?width=423&amp;amp;height=248&amp;amp;face=0_0_423_248');&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;[ML] Regularization&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Regularization 이란?기계 학습과 딥러닝에서 Regularization은 모델이 overfitting(과적합)되지 않도록 도와주는 기법을 의미함.Overfitting(과적합)은 모델이 훈련 데이터에 너무 잘 맞아 새로운 데이터에 대&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://ds31x.tistory.com/352&quot;&gt;https://ds31x.tistory.com/352&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1763609155501&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;[ML] Classic Regressor (Summary) - regression&quot; data-og-description=&quot;DeepLearning 계열을 제외한 Regressor 모델들을 간단하게 정리함.https://gist.github.com/dsaint31x/1c9c4a27e1d841098a9fee345363fa59 ML_Regressor_Summary.ipynbML_Regressor_Summary.ipynb. GitHub Gist: instantly share code, notes, and snippets.g&quot; data-og-host=&quot;ds31x.tistory.com&quot; data-og-source-url=&quot;https://ds31x.tistory.com/352&quot; data-og-url=&quot;https://ds31x.tistory.com/352&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bwijy8/hyZObzTDQc/k8GNEx6lWy9i94mfzX2LlK/img.jpg?width=504&amp;amp;height=504&amp;amp;face=0_0_504_504,https://scrap.kakaocdn.net/dn/DWFxj/hyZOdYMqAD/PmMdGRkiEwKfxwaO2uzV0K/img.jpg?width=504&amp;amp;height=504&amp;amp;face=0_0_504_504&quot;&gt;&lt;a href=&quot;https://ds31x.tistory.com/352&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://ds31x.tistory.com/352&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bwijy8/hyZObzTDQc/k8GNEx6lWy9i94mfzX2LlK/img.jpg?width=504&amp;amp;height=504&amp;amp;face=0_0_504_504,https://scrap.kakaocdn.net/dn/DWFxj/hyZOdYMqAD/PmMdGRkiEwKfxwaO2uzV0K/img.jpg?width=504&amp;amp;height=504&amp;amp;face=0_0_504_504');&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;[ML] Classic Regressor (Summary) - regression&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;DeepLearning 계열을 제외한 Regressor 모델들을 간단하게 정리함.https://gist.github.com/dsaint31x/1c9c4a27e1d841098a9fee345363fa59 ML_Regressor_Summary.ipynbML_Regressor_Summary.ipynb. GitHub Gist: instantly share code, notes, and snippets.g&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;ds31x.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/947&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2025.11.06 - [Programming/ML] - Ridge Regression&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1762582418239&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;Ridge Regression&quot; data-og-description=&quot;명칭의 유래Ridge: &amp;quot;산등성이&amp;quot; 또는 &amp;quot;융기&amp;quot;를 의미하는 영어 단어L2-Regularization Term 추가 시 loss function의 contour가 융기된 형태로 변형되는 데에서 유래됨.역사적 배경Tikhonov regularization (1963)과 수학&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/947&quot; data-og-url=&quot;https://dsaint31.tistory.com/947&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/2wJL1/hyZNkJZNe1/ZsFnHh7BAsV6XPbvjSpGTK/img.jpg?width=720&amp;amp;height=314&amp;amp;face=0_0_720_314,https://scrap.kakaocdn.net/dn/KGT0X/hyZMwLJ2VN/9HvGs927dejKEywCWK20Rk/img.jpg?width=720&amp;amp;height=314&amp;amp;face=0_0_720_314,https://scrap.kakaocdn.net/dn/ckYsEJ/hyZNkDd1CF/Mak85fAE8BTB0A6dBFAMz1/img.jpg?width=720&amp;amp;height=314&amp;amp;face=0_0_720_314&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/947&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/947&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/2wJL1/hyZNkJZNe1/ZsFnHh7BAsV6XPbvjSpGTK/img.jpg?width=720&amp;amp;height=314&amp;amp;face=0_0_720_314,https://scrap.kakaocdn.net/dn/KGT0X/hyZMwLJ2VN/9HvGs927dejKEywCWK20Rk/img.jpg?width=720&amp;amp;height=314&amp;amp;face=0_0_720_314,https://scrap.kakaocdn.net/dn/ckYsEJ/hyZNkDd1CF/Mak85fAE8BTB0A6dBFAMz1/img.jpg?width=720&amp;amp;height=314&amp;amp;face=0_0_720_314');&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;Ridge Regression&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;명칭의 유래Ridge: &quot;산등성이&quot; 또는 &quot;융기&quot;를 의미하는 영어 단어L2-Regularization Term 추가 시 loss function의 contour가 융기된 형태로 변형되는 데에서 유래됨.역사적 배경Tikhonov regularization (1963)과 수학&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/946&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2025.11.02 - [Programming/ML] - Subgradient 와 Gradient Descent&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1762582437512&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;Subgradient 와 Gradient Descent&quot; data-og-description=&quot;Prerequistes모델 학습의 목표는손실 함수 $L(\boldsymbol{\omega}, \textbf{X})$를 최소화하는파라미터 $\boldsymbol{\omega}$를 찾는 것임.이때 가장 기본적인 최적화 방법은 Gradient Descent(경사 하강법)임:$$\boxed{\bo&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/946&quot; data-og-url=&quot;https://dsaint31.tistory.com/946&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bPA0Tw/hyZMDxjZ00/ngeJaKIgJqNKa4W7dDuw40/img.jpg?width=800&amp;amp;height=414&amp;amp;face=0_0_800_414,https://scrap.kakaocdn.net/dn/b4J7yh/hyZMzuXXCV/TyWS8k3V7qTpKJ7F7ooKT1/img.jpg?width=800&amp;amp;height=414&amp;amp;face=0_0_800_414,https://scrap.kakaocdn.net/dn/c3UjkH/hyZNqi85yd/wQcwqskUZOh9LoD0ozQQ6k/img.jpg?width=1373&amp;amp;height=711&amp;amp;face=0_0_1373_711&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/946&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/946&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bPA0Tw/hyZMDxjZ00/ngeJaKIgJqNKa4W7dDuw40/img.jpg?width=800&amp;amp;height=414&amp;amp;face=0_0_800_414,https://scrap.kakaocdn.net/dn/b4J7yh/hyZMzuXXCV/TyWS8k3V7qTpKJ7F7ooKT1/img.jpg?width=800&amp;amp;height=414&amp;amp;face=0_0_800_414,https://scrap.kakaocdn.net/dn/c3UjkH/hyZNqi85yd/wQcwqskUZOh9LoD0ozQQ6k/img.jpg?width=1373&amp;amp;height=711&amp;amp;face=0_0_1373_711');&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;Subgradient 와 Gradient Descent&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Prerequistes모델 학습의 목표는손실 함수 $L(\boldsymbol{\omega}, \textbf{X})$를 최소화하는파라미터 $\boldsymbol{\omega}$를 찾는 것임.이때 가장 기본적인 최적화 방법은 Gradient Descent(경사 하강법)임:$$\boxed{\bo&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/ML</category>
      <category>l1</category>
      <category>norm</category>
      <category>regularization</category>
      <author>dsaint31x</author>
      <guid isPermaLink="true">https://dsaint31.tistory.com/948</guid>
      <comments>https://dsaint31.tistory.com/948#entry948comment</comments>
      <pubDate>Sat, 8 Nov 2025 15:14:50 +0900</pubDate>
    </item>
    <item>
      <title>Ridge Regression</title>
      <link>https://dsaint31.tistory.com/947</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;720&quot; data-origin-height=&quot;314&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mjme2/dJMcaawPO9C/fJI8UKen14xcMIr77UEJ0K/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mjme2/dJMcaawPO9C/fJI8UKen14xcMIr77UEJ0K/img.jpg&quot; data-alt=&quot;https://medium.com/@vikasdod/demystifying-lasso-and-ridge-regression-key-differences-and-usage-61d1c4780412&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mjme2/dJMcaawPO9C/fJI8UKen14xcMIr77UEJ0K/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fmjme2%2FdJMcaawPO9C%2FfJI8UKen14xcMIr77UEJ0K%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;262&quot; data-origin-width=&quot;720&quot; data-origin-height=&quot;314&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;https://medium.com/@vikasdod/demystifying-lasso-and-ridge-regression-key-differences-and-usage-61d1c4780412&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;명칭의 유래&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Ridge&lt;/b&gt;: &quot;산등성이&quot; 또는 &quot;융기&quot;를 의미하는 영어 단어&lt;/li&gt;
&lt;li&gt;L2-Regularization Term 추가 시 loss function의&lt;u&gt; contour가 융기된 형태로 변형&lt;/u&gt;되는 데에서 유래됨.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;역사적 배경&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Tikhonov regularization (1963)&lt;/b&gt;과 수학적으로 동일&lt;/li&gt;
&lt;li&gt;개발 시기:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;1943년: Andrey Tikhonov가 ***관측값이 조금 변했을 때 복원된 해가 크게 변하지 않는다*** 는 inverse mapping(역사상)의 안정성 문제를 다루면서 Tikhonov regularization의 이론적 출발점을 제시&amp;nbsp;&lt;/li&gt;
&lt;li&gt;1963년: Andrey Tikhonov가 ill-posed 문제 해결용 regularization(정규화로도 번역되나 개인적으론 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;정칙화&lt;/b&gt;&lt;/span&gt;를 선호) 방법 개발&lt;/li&gt;
&lt;li&gt;1970년: Hoerl과 Kennard가 통계학 맥락에서 독립적으로 재발견&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;분야별 명칭:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;수치해석: Tikhonov regularization&lt;/li&gt;
&lt;li&gt;통계학/머신러닝: &lt;b&gt;Ridge regression&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/400&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2022.12.02 - [.../Math] - [Math] ill-posed, well-posed, ill-conditioned, well-conditioned matrix (or problem)&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1762580064391&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;[Math] ill-posed, well-posed, ill-conditioned, well-conditioned matrix (or problem)&quot; data-og-description=&quot;&amp;quot;well-posed&amp;quot; matrix and &amp;quot;well-conditioned&amp;quot; matrix$A\textbf{x}=\textbf{b}$와 같은 Linear System (연립방정식)에서 system matrix $A$가 invertible하다면 해당 linear system(달리 말하면 연립방정식)이 well-posed라고 할 수 있다.하&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/400&quot; data-og-url=&quot;https://dsaint31.tistory.com/400&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/r7uNu/hyZMt2yIGA/NtL6wdsygjU4gVnBIJUKl0/img.png?width=607&amp;amp;height=303&amp;amp;face=0_0_607_303,https://scrap.kakaocdn.net/dn/fcBu4/hyZNbA6q2s/0XPbCyiU3UZJSiiVrqti6k/img.png?width=607&amp;amp;height=303&amp;amp;face=0_0_607_303,https://scrap.kakaocdn.net/dn/jftxf/hyZNqcmhCj/Ln0eYPWEzi0TBSchaViP10/img.png?width=607&amp;amp;height=303&amp;amp;face=0_0_607_303&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/400&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/400&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/r7uNu/hyZMt2yIGA/NtL6wdsygjU4gVnBIJUKl0/img.png?width=607&amp;amp;height=303&amp;amp;face=0_0_607_303,https://scrap.kakaocdn.net/dn/fcBu4/hyZNbA6q2s/0XPbCyiU3UZJSiiVrqti6k/img.png?width=607&amp;amp;height=303&amp;amp;face=0_0_607_303,https://scrap.kakaocdn.net/dn/jftxf/hyZNqcmhCj/Ln0eYPWEzi0TBSchaViP10/img.png?width=607&amp;amp;height=303&amp;amp;face=0_0_607_303');&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;[Math] ill-posed, well-posed, ill-conditioned, well-conditioned matrix (or problem)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&quot;well-posed&quot; matrix and &quot;well-conditioned&quot; matrix$A\textbf{x}=\textbf{b}$와 같은 Linear System (연립방정식)에서 system matrix $A$가 invertible하다면 해당 linear system(달리 말하면 연립방정식)이 well-posed라고 할 수 있다.하&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.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;/div&gt;
&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;참고: L1 vs L2 정칙화(정규화)의 특성&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;L-p Norm에서 p=1,2 인 경우가 &lt;br /&gt;주로&amp;nbsp; Regularization(정칙화)에 사용됨.&lt;/span&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;Normalization과 Regularization을 구분하기 위해 &lt;br /&gt;normalization은 정규화로, regularization은 정칙화로 사용하는 것을 선호하나 &lt;br /&gt;많은 경우 정규화로 사용되므로 문맥에 맞게 해석해야함.&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;a href=&quot;https://bme808.blogspot.com/2022/10/norm.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://bme808.blogspot.com/2022/10/norm.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1762580392635&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Norm (노름)&quot; data-og-description=&quot;Vector 및 matrix의 크기에 해당하는 양(magnitude) 을 구하는 연산 으로 사용됨. The higher the norm index ($p$값이 클 경우), the more it focuses on large values and neg...&quot; data-og-host=&quot;bme808.blogspot.com&quot; data-og-source-url=&quot;https://bme808.blogspot.com/2022/10/norm.html&quot; data-og-url=&quot;http://bme808.blogspot.com/2022/10/norm.html&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Os3Yc/hyZNpR3Pb7/dBgZVKXKs5nYFR2kXEOOok/img.jpg?width=523&amp;amp;height=630&amp;amp;face=0_0_523_630&quot;&gt;&lt;a href=&quot;https://bme808.blogspot.com/2022/10/norm.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://bme808.blogspot.com/2022/10/norm.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Os3Yc/hyZNpR3Pb7/dBgZVKXKs5nYFR2kXEOOok/img.jpg?width=523&amp;amp;height=630&amp;amp;face=0_0_523_630');&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;Norm (노름)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Vector 및 matrix의 크기에 해당하는 양(magnitude) 을 구하는 연산 으로 사용됨. The higher the norm index ($p$값이 클 경우), the more it focuses on large values and neg...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;bme808.blogspot.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/827&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2024.10.02 - [Programming/ML] - [ML] Minkowski Distance (L-p Norm)&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1762580771302&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;[ML] Minkowski Distance (L-p Norm)&quot; data-og-description=&quot;Minkowski 거리는L-p Norm의 한 형태두 개의 점 사이의 distance(거리)를 일반화한 metric.distance의 개념은 다음 접은 글을 참고:더보기https://dsaint31.me/mkdocs_site/DIP/cv2/etc/dip_metrics/#distance-function-or-metric BME228&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/827&quot; data-og-url=&quot;https://dsaint31.tistory.com/827&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dUTEvx/hyZNdZZ3fa/Id6TYHJcj7iRt016uoFpOk/img.png?width=800&amp;amp;height=566&amp;amp;face=0_0_800_566,https://scrap.kakaocdn.net/dn/ef4BFx/hyZMxDUHBB/4n7KKxqvmTvW5hrcLy68S0/img.png?width=800&amp;amp;height=566&amp;amp;face=0_0_800_566,https://scrap.kakaocdn.net/dn/hJ0Nf/hyZNdFJb4n/gsvwQKScn0KQjX9FpEX661/img.png?width=850&amp;amp;height=602&amp;amp;face=0_0_850_602&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/827&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/827&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dUTEvx/hyZNdZZ3fa/Id6TYHJcj7iRt016uoFpOk/img.png?width=800&amp;amp;height=566&amp;amp;face=0_0_800_566,https://scrap.kakaocdn.net/dn/ef4BFx/hyZMxDUHBB/4n7KKxqvmTvW5hrcLy68S0/img.png?width=800&amp;amp;height=566&amp;amp;face=0_0_800_566,https://scrap.kakaocdn.net/dn/hJ0Nf/hyZNdFJb4n/gsvwQKScn0KQjX9FpEX661/img.png?width=850&amp;amp;height=602&amp;amp;face=0_0_850_602');&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;[ML] Minkowski Distance (L-p Norm)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Minkowski 거리는L-p Norm의 한 형태두 개의 점 사이의 distance(거리)를 일반화한 metric.distance의 개념은 다음 접은 글을 참고:더보기https://dsaint31.me/mkdocs_site/DIP/cv2/etc/dip_metrics/#distance-function-or-metric BME228&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Ridge Regression (L2 정규화)&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Object Function (loss): $L = \displaystyle \frac{1}{m}\sum_{i=1}^{m}(y_i - \hat{y}_i)^2 + \lambda\sum_{j=1}^{n}w_j^2$
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$m$: sample size&lt;/li&gt;
&lt;li&gt;$n$: number of features&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;특징&lt;/b&gt;: 모든 weight를 균일하게 작게 만듦&lt;/li&gt;
&lt;li&gt;Gradient: $\frac{\partial L}{\partial w_j} = -\frac{2}{m}\sum_{i=1}^{m}(y_i - \hat{y}_i)x_{ij} + 2\lambda w_j$&lt;/li&gt;
&lt;li&gt;결과: weight가 0에 가까워지지만 정확히 0이 되지 않음&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Lasso Regression (L1 정규화)&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Object Function (loss): $L = \displaystyle \frac{1}{m}\sum_{i=1}^{m}(y_i - \hat{y}_i)^2 + \lambda\sum_{j=1}^{n}|w_j|$&lt;/li&gt;
&lt;li&gt;&lt;b&gt;특징&lt;/b&gt;: 일부 weight를 정확히 0으로 만듦 (sparse solution)&lt;/li&gt;
&lt;li&gt;Gradient: $\frac{\partial L}{\partial w_j} = -\frac{2}{n}\sum_{i=1}^{n}(y_i - \hat{y}_i)x_{ij} + \lambda \cdot \text{sign}(w_j)$&lt;/li&gt;
&lt;li&gt;결과: feature selection 효과&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;기하학적 해석&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;L2 (Ridge)&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Regularization(제약) 영역이 원(circle)형: &lt;u&gt;&lt;b&gt;모든 방향으로 균등한 패널티&lt;/b&gt;&lt;/u&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;모든 weight가 비슷한 크기로 축소&lt;/b&gt;&lt;/span&gt;됨&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;L1 (Lasso)&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Regularization(제약)이 다이아몬드형: 모서리에서 해를 찾을 가능성 높음&lt;/li&gt;
&lt;li&gt;일부 weight가 정확히 0이 됨: &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;sparse weights&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Regularization Term을 샘플 수로 나누는 이유&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Regularization Term을 나누지 않은 경우:&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$L = \displaystyle \frac{1}{m}\sum_{i=1}^{m}(y_i - \hat{y}_i)^2 + \lambda\sum_{j=1}^{n}w_j^2$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;MSE는 $\frac{1}{m}$로 평균을 내어 &lt;u&gt;스케일 유지&lt;/u&gt;.&lt;/li&gt;
&lt;li&gt;규제항은 $m$ (=sample size)과 &lt;u&gt;무관하게 고정값&lt;/u&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;결과&lt;/b&gt;: $m$이 커질수록 전체 loss에서 regularization term(규제항)의 상대적 영향력이 변하게 됨&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;구체적 예시&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;gradient 계산 시:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터 항: $\displaystyle \frac{2}{m} \times \sum_{i=1}^{m}(\text{예측오차} \times x_i)$&lt;/li&gt;
&lt;li&gt;규제항: $2\lambda w$ : 항상 고정됨&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 regularization term은 sample size $m$과 무관하게 고정된 형태이나 데이터와 얼마나 잘 fit되었는지를 나타내는 term은 $\frac{1}{m}$의 영향을 받음: $m$이 변하면 두 term의 상대적 영향력이 변하게 됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만, 가급적&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;샘플수 $m$ 에 상관없이 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;데이터 항과 규제항의 영향을 일정하게 유지해야 함.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;해결책&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$L = \displaystyle \frac{1}{m}\sum_{i=1}^{m}(y_i - \hat{y}_i)^2 + \frac{\lambda}{m}\sum_{j=1}^{n}w_j^2$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$\lambda$의 의미가 데이터 크기와 무관하게 일정 유지&lt;/li&gt;
&lt;li&gt;하이퍼파라미터 튜닝 시 일관성 확보&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Bias를 규제하지 않는 이유&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;일반적인 규제항&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\frac{\lambda}{m}\sum_{j=1}^{n}w_j^2 \quad \text{(bias } b \text{는 제외)}$$&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;세 가지 핵심 이유&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. 평행이동 불변성&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;모든 타겟값에 상수 $c$를 더해도 예측 성능 동일해야 함&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Bias 규제 시 이 성질 위반&lt;/li&gt;
&lt;li&gt;데이터의 스케일에 독립적인 모델 필요&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2. Centering Perspective (중심화 관점)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;u&gt;&lt;b&gt;데이터를 평균 0으로 중심화 (zero-mean centering)&lt;/b&gt;&lt;/u&gt;하면 bias는 자연스럽게 0 이 됨.&lt;/li&gt;
&lt;li&gt;이 경우, 원래 스케일 (or 평균)로 복원 시에만 bias 필요&lt;/li&gt;
&lt;li&gt;수식: $\bar{y} = 0 \Rightarrow b = 0$&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3. 실용적 고려사항&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Bias는 모델 복잡도와 실제로 무관&lt;/b&gt;&lt;/span&gt; (regression의 경우 &lt;u&gt;단순히 평균값&lt;/u&gt;에 해당)&lt;/li&gt;
&lt;li&gt;over-fitting(과적합)은 주로 weight의 크기에서 발생 .&lt;/li&gt;
&lt;li&gt;Bias 제한 시 문제:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터 평균값 예측 실패&lt;/li&gt;
&lt;li&gt;모델의 표현력 불필요하게 제한&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;요약&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Ridge regression은 안정적이고 해석 가능한 regularization(정칙화 방법)&lt;/li&gt;
&lt;li&gt;설계 선택들은 수학적 원리와 실용적 고려사항의 균형&lt;/li&gt;
&lt;li&gt;L1 대비 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;모든 특성을 유지하면서 균일하게 weight 축소&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;데이터 크기에 무관한 일관된 성능을 보장하려면,
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;regularization만으로는 충분하지 않으며&lt;/li&gt;
&lt;li&gt;별도의 적절한 feature scaling이 필요함.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;같이보면 좋은 자료들&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/848&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2024.10.27 - [Programming/ML] - [ML] Regularization&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1775133428098&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;[ML] Regularization&quot; data-og-description=&quot;Regularization 이란?기계 학습과 딥러닝에서 Regularization은 모델이 overfitting(과적합)되지 않도록 도와주는 기법을 의미함.Overfitting(과적합)은 모델이 훈련 데이터에 너무 잘 맞아 새로운 데이터에 대&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/848&quot; data-og-url=&quot;https://dsaint31.tistory.com/848&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/mtBGp/dJMb81fSYYt/kYCN7XqvFMQpwtLElNFV8K/img.png?width=423&amp;amp;height=248&amp;amp;face=0_0_423_248,https://scrap.kakaocdn.net/dn/PDUBt/dJMb87f6P3N/Q1RRAUZILpOVArpiNQUBz0/img.png?width=423&amp;amp;height=248&amp;amp;face=0_0_423_248,https://scrap.kakaocdn.net/dn/bz2VRi/dJMb9fZvG3F/IqFEMsZ3EqXzdKSb8iVPk1/img.png?width=423&amp;amp;height=248&amp;amp;face=0_0_423_248&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/848&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/848&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/mtBGp/dJMb81fSYYt/kYCN7XqvFMQpwtLElNFV8K/img.png?width=423&amp;amp;height=248&amp;amp;face=0_0_423_248,https://scrap.kakaocdn.net/dn/PDUBt/dJMb87f6P3N/Q1RRAUZILpOVArpiNQUBz0/img.png?width=423&amp;amp;height=248&amp;amp;face=0_0_423_248,https://scrap.kakaocdn.net/dn/bz2VRi/dJMb9fZvG3F/IqFEMsZ3EqXzdKSb8iVPk1/img.png?width=423&amp;amp;height=248&amp;amp;face=0_0_423_248');&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;[ML] Regularization&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Regularization 이란?기계 학습과 딥러닝에서 Regularization은 모델이 overfitting(과적합)되지 않도록 도와주는 기법을 의미함.Overfitting(과적합)은 모델이 훈련 데이터에 너무 잘 맞아 새로운 데이터에 대&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://ds31x.tistory.com/352&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://ds31x.tistory.com/352&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1775133431610&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;[ML] Classic Regressor (Summary) - regression&quot; data-og-description=&quot;DeepLearning 계열을 제외한 Regressor 모델들을 간단하게 정리함.https://gist.github.com/dsaint31x/1c9c4a27e1d841098a9fee345363fa59 ML_Regressor_Summary.ipynbML_Regressor_Summary.ipynb. GitHub Gist: instantly share code, notes, and snippets.g&quot; data-og-host=&quot;ds31x.tistory.com&quot; data-og-source-url=&quot;https://ds31x.tistory.com/352&quot; data-og-url=&quot;https://ds31x.tistory.com/352&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/gyWxE/dJMb9lk7u1m/OgWBN9vxVUkmH9OgD93XKK/img.jpg?width=504&amp;amp;height=504&amp;amp;face=0_0_504_504,https://scrap.kakaocdn.net/dn/h8pRs/dJMb9hC1FHs/tAWTfEKxNmqI0smBnIigl1/img.jpg?width=504&amp;amp;height=504&amp;amp;face=0_0_504_504&quot;&gt;&lt;a href=&quot;https://ds31x.tistory.com/352&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://ds31x.tistory.com/352&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/gyWxE/dJMb9lk7u1m/OgWBN9vxVUkmH9OgD93XKK/img.jpg?width=504&amp;amp;height=504&amp;amp;face=0_0_504_504,https://scrap.kakaocdn.net/dn/h8pRs/dJMb9hC1FHs/tAWTfEKxNmqI0smBnIigl1/img.jpg?width=504&amp;amp;height=504&amp;amp;face=0_0_504_504');&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;[ML] Classic Regressor (Summary) - regression&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;DeepLearning 계열을 제외한 Regressor 모델들을 간단하게 정리함.https://gist.github.com/dsaint31x/1c9c4a27e1d841098a9fee345363fa59 ML_Regressor_Summary.ipynbML_Regressor_Summary.ipynb. GitHub Gist: instantly share code, notes, and snippets.g&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;ds31x.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Programming/ML</category>
      <category>LASSO</category>
      <category>ML</category>
      <category>norm</category>
      <category>regrssion</category>
      <category>regularization</category>
      <category>Ridge</category>
      <category>Tikhonov</category>
      <author>dsaint31x</author>
      <guid isPermaLink="true">https://dsaint31.tistory.com/947</guid>
      <comments>https://dsaint31.tistory.com/947#entry947comment</comments>
      <pubDate>Thu, 6 Nov 2025 11:55:53 +0900</pubDate>
    </item>
    <item>
      <title>Subgradient 와 Gradient Descent</title>
      <link>https://dsaint31.tistory.com/946</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;IMG_3575.jpeg&quot; data-origin-width=&quot;1373&quot; data-origin-height=&quot;711&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/L4OZB/dJMcahW0K5N/6rjkrGm66QiU9y37aBKzU1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/L4OZB/dJMcahW0K5N/6rjkrGm66QiU9y37aBKzU1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/L4OZB/dJMcahW0K5N/6rjkrGm66QiU9y37aBKzU1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FL4OZB%2FdJMcahW0K5N%2F6rjkrGm66QiU9y37aBKzU1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;207&quot; data-filename=&quot;IMG_3575.jpeg&quot; data-origin-width=&quot;1373&quot; data-origin-height=&quot;711&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Prerequistes&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모델 학습의 목표는&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;손실 함수 $L(\boldsymbol{\omega}, \textbf{X})$를 최소화하는&lt;/li&gt;
&lt;li&gt;파라미터 $\boldsymbol{\omega}$를 찾는 것임.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때 가장 기본적인 최적화 방법은 &lt;b&gt;Gradient Descent(경사 하강법)임:&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\boxed{\boldsymbol{\omega}_{t+1} = \boldsymbol{\omega}_t - \eta \nabla_{\boldsymbol{\omega}} L(\boldsymbol{\omega}_t, \textbf{X})}$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;where,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$\boldsymbol{\omega}_t$: $t$번째 스텝의 파라미터&lt;/li&gt;
&lt;li&gt;$\eta &amp;gt; 0$: 학습률(learning rate)&lt;/li&gt;
&lt;li&gt;$\nabla_{\boldsymbol{\omega}} L(\boldsymbol{\omega}_t, \textbf{X})$: 손실의 gradient&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 식은 loss function의 증가 방향과 반대 방향으로 parameters를 갱신함으로써 loss function을 점차 감소시킴.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;background-color: #e6f5ff; color: #0070d1; text-align: start;&quot; href=&quot;https://dsaint31.tistory.com/633&quot;&gt;2023.10.19 - [Programming] - [ML] Gradient Descent Method: 경사하강법&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1762057772685&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;[ML] Gradient Descent Method: 경사하강법&quot; data-og-description=&quot;Gradient Descent Method (경사하강법) : 1. 정의 및 수식Steepest Gradient Descent Method로도 불리는Gradient Descent Method(경사하강법)는 여러 Optimization 방법 중 가장 많이 사용되는 방법들 중 하나임.training set $X$&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/633&quot; data-og-url=&quot;https://dsaint31.tistory.com/633&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/xEQ6O/hyZMHMoAHu/Jve38EBgk9FysZSLWg9DA1/img.png?width=800&amp;amp;height=401&amp;amp;face=0_0_800_401,https://scrap.kakaocdn.net/dn/txRuW/hyZMwD6Oeg/jHvr81IuRu1s0y46KXCA90/img.png?width=800&amp;amp;height=401&amp;amp;face=0_0_800_401,https://scrap.kakaocdn.net/dn/q26IU/hyZMH6HFt4/R45G7j0n0KxNbdy0MWOb7K/img.png?width=1212&amp;amp;height=608&amp;amp;face=0_0_1212_608&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/633&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/633&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/xEQ6O/hyZMHMoAHu/Jve38EBgk9FysZSLWg9DA1/img.png?width=800&amp;amp;height=401&amp;amp;face=0_0_800_401,https://scrap.kakaocdn.net/dn/txRuW/hyZMwD6Oeg/jHvr81IuRu1s0y46KXCA90/img.png?width=800&amp;amp;height=401&amp;amp;face=0_0_800_401,https://scrap.kakaocdn.net/dn/q26IU/hyZMH6HFt4/R45G7j0n0KxNbdy0MWOb7K/img.png?width=1212&amp;amp;height=608&amp;amp;face=0_0_1212_608');&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;[ML] Gradient Descent Method: 경사하강법&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Gradient Descent Method (경사하강법) : 1. 정의 및 수식Steepest Gradient Descent Method로도 불리는Gradient Descent Method(경사하강법)는 여러 Optimization 방법 중 가장 많이 사용되는 방법들 중 하나임.training set $X$&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;미분이 되지 않는 loss 함수의 문제&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 손실 함수 $L(\boldsymbol{\omega}, \textbf{X})$이 항상 매끄럽게 미분 가능한 것은 아님.&lt;br /&gt;예를 들어 L1 정규화 항이 포함된 손실은 다음과 같음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$L(\boldsymbol{\omega}, \textbf{X}) = \text{loss}(\boldsymbol{\omega}, \textbf{X}) + \lambda |\boldsymbol{\omega}|_1$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 $\|\boldsymbol{\omega}\|_1 = \sum_i |\omega_i|$는&lt;br /&gt;$\omega_i = 0$에서 미분을 할 수 없음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;즉, $\nabla_{\boldsymbol{\omega}} L(\boldsymbol{\omega}_t, \textbf{X})$를 계산할 수 없는 구간이 존재함.&lt;br /&gt;이를 해결하기 위해 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Subgradient 개념이 도입&lt;/b&gt;&lt;/span&gt;됨.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Subgradient의 정의&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Convex(볼록) 함수&lt;/b&gt; $L(\boldsymbol{\omega})$에 대해 벡터 $\textbf{g}$가 다음 부등식을 만족하면,&lt;br /&gt;$\textbf{g}$를 $L$의 Subgradient라 부름:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$L(\textbf{y}) \ge L(\textbf{x}) + \textbf{g}^\mathsf{T} (\textbf{y} - \textbf{x}), \quad \forall \textbf{y}$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 식은 $\textbf{g}$가&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;함수 $L$의 그래프를&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;u&gt;&lt;b&gt;아래(sub-)에서 지지(support) 하는 선형 함수의 기울기&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;임을 의미&lt;/li&gt;
&lt;li&gt;모든 $\textbf{y}$에서 구해지므로 convex function에서만 subgradient는 존재함:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;non-convex의 경우엔 Clake subgradient 와 같은 확장된 도구 필요.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;참고로 Gradient에선 부등호가 아닌 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;등호가 성립&lt;/b&gt;&lt;/span&gt;됨.&lt;br /&gt;$$L(\textbf{y}) = L(\textbf{x}) +\nabla L(\textbf{x})^\mathsf{T}(\textbf{y}-\textbf{x})$$&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;이러한 모든 $\textbf{g}$의 집합을 (Convex) Subdifferential (=subgradient set)이라 하며,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\partial L(\textbf{x}) = \{ \textbf{g} \mid L(\textbf{y}) \ge L(\textbf{x}) + \textbf{g}^\mathsf{T}(\textbf{y} - \textbf{x}),\ \forall \textbf{y} \}$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;으로 정의함.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Subgradient Descent - 미분불가 함수로의 확장&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Subgradient 개념을 이용하면,&lt;br /&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;미분되지 않는 covex 함수&lt;/b&gt;&lt;/span&gt;에서 다음과 같이 Gradient Descent의 형태를 그대로 유지하면서 최적화 수행이 가능:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\boxed{\boldsymbol{\omega}_{t+1} = \boldsymbol{\omega}_t - \eta \textbf{g}_t, \quad \textbf{g}_t \in \partial L(\boldsymbol{\omega}_t, \textbf{X})}$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;where,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$\textbf{g}_t$: $L(\boldsymbol{\omega}_t, \textbf{X})$의 Subgradient&lt;/li&gt;
&lt;li&gt;미분 가능한 경우: $\textbf{g}_t = \nabla_{\boldsymbol{\omega}} L(\boldsymbol{\omega}_t, \textbf{X})$&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Subgradient Descent는&lt;/li&gt;
&lt;li&gt;Gradient Descent를 미분 불가 함수로 확장한 일반화 형태라고 할 수 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;내적 $\textbf{g}^\mathsf{T}(\textbf{y} - \textbf{x})$의 의미&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Subgradient 정의에 inner product(내적)이 사용되는데&amp;nbsp;&lt;br /&gt;inner product가 이루어지는 항에서 loss function의 변화량을 기울기 방향으로 투영(projection) 함.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$\textbf{g}$: 함수의 증가 방향&lt;/li&gt;
&lt;li&gt;$(\textbf{y} - \textbf{x})$: 이동 방향&lt;/li&gt;
&lt;li&gt;$\textbf{g}^\mathsf{T}(\textbf{y} - \textbf{x})$: 해당 방향으로의 선형 근사 변화량&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 inner product은 &amp;ldquo;기울기 벡터(gradient or subgradient)가 함수 변화에 미치는 선형적 영향&amp;rdquo;을 표현함.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;ldquo;sub&amp;rdquo;의 의미&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Subgradient의 &amp;ldquo;sub&amp;rdquo;는 단순히 &amp;ldquo;부분&amp;rdquo;이 아니라&lt;br /&gt;&lt;b&gt;&amp;ldquo;함수 그래프를 아래에서(subordinate) 지지&amp;rdquo;&lt;/b&gt;한다는 의미를 지님.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한, gradient의 부재 영역에서도 사용되므로&lt;br /&gt;&amp;ldquo;gradient의 일반화(generalization)&amp;rdquo; 혹은 &amp;ldquo;대체(substitute)&amp;rdquo; 개념으로도 이해할 수 있음.&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;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예시 &amp;mdash; L1 정규화 항의 Subgradient&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;L1 항 $|\omega_i|$의 Subgradient는 다음과 같음:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\frac{\partial |\omega_i|}{\partial \omega_i} =&lt;br /&gt;\begin{cases}&lt;br /&gt;1, &amp;amp; \omega_i &amp;gt; 0 \\&lt;br /&gt;-1, &amp;amp; \omega_i &amp;lt; 0 \\&lt;br /&gt;[-1, 1], &amp;amp; \omega_i = 0&lt;br /&gt;\end{cases}$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 각 symbol의 의미는 다음과 같음:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;parameter vector $\boldsymbol{\omega}$의 $i$번째 component가 $\omega_i$임.&lt;/li&gt;
&lt;li&gt;$t$: iteration index.&lt;/li&gt;
&lt;li&gt;$i$: vector에서의 component index&lt;/li&gt;
&lt;li&gt;$\omega_{t,i}$: $t$-iteration에서의 $i$번째 weight&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 전체 손실에 대한 update equation은 다음과 같음:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\omega_{t+1,i} = \omega_{t,i} - \eta g_{t,i}, \quad g_{t,i} \in \frac{\partial L}{\partial \omega_i}$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 식을 통해 $\omega_i = 0$ 인 미분 불가 구간에서도&lt;br /&gt;가능한 여러 방향 중 하나를 선택하여 하강할 수 있음.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Converge Property&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Subgradient Descent는 gradient descent (GD) 에 비해 수렴 속도가 느림.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;convex인 경우엔 다음의 적절한 조건(diminishing learning rate)이 있을 경우 최적점으로 수렴함.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$\eta_t &amp;gt; 0$, $\eta_t \to 0$, $\sum^\infty_{t=1} \eta_t = \infty$&lt;/li&gt;
&lt;li&gt;이를 만족하는 learning rate $\eta$를 diminishing learning rate라고 하며 $\eta_t = \frac{a}{\sqrt{t}}$ 등이 대표적 예임.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;learning rate 조건이 상수인 경우엔 optimum 근처에서 진동할 수 있으므로 diminishing learning rate를 사용함.&lt;/li&gt;
&lt;/ul&gt;
&lt;table data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&quot;center&quot;&gt;항목&lt;/th&gt;
&lt;th align=&quot;center&quot;&gt;Gradient Descent&lt;/th&gt;
&lt;th align=&quot;center&quot;&gt;Subgradient Descent&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;적용 대상&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;Differentiable Loss&lt;br /&gt;(Convex인 경우 항상 global optimum 에 도달)&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;Non-differentiable Convex Loss&lt;br /&gt;(Non-smooth convex loss)&lt;br /&gt;(Convex loss with non-differentiable points)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;업데이트&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;$\boldsymbol{\omega}_{t+1} = \boldsymbol{\omega}_t - \eta \nabla_{\boldsymbol{\omega}} L(\boldsymbol{\omega}_t)$&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;$\boldsymbol{\omega}_{t+1} = \boldsymbol{\omega}_t - \eta \textbf{g}_t,\quad \textbf{g}_t \in \partial L(\boldsymbol{\omega}_t)$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;의미&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;gradient 방향으로 이동&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;subgradient는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;supporting hyperplane from below&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;의 기울기&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&quot;가능한 subgradient 중 하나&quot;를 선택해 이동&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Gradient Descent의 일반화: Subgradient Descent&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Subgradient는 Gradient를 미분불가 함수로 확장한 일반화된 개념.&lt;br /&gt;그에 따른 학습식은 Gradient Descent와 동일한 형태를 유지함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\boxed{&lt;br /&gt;\boldsymbol{\omega}_{t+1} = \boldsymbol{\omega}_t - \eta \textbf{g}_t, \quad \textbf{g}_t \in \partial L(\boldsymbol{\omega}_t, \textbf{X})}$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결론적으로,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Subgradient Descent는&lt;br /&gt;미분이 불가능한 영역에서도 &amp;ldquo;함수값이 감소하는 방향&amp;rdquo;을 정의하여&lt;br /&gt;Gradient Descent의 아이디어를 확장 및 일반화한 방법임.&lt;/p&gt;</description>
      <category>Programming/ML</category>
      <category>gradient</category>
      <category>math</category>
      <category>Optimization</category>
      <category>subgradient</category>
      <author>dsaint31x</author>
      <guid isPermaLink="true">https://dsaint31.tistory.com/946</guid>
      <comments>https://dsaint31.tistory.com/946#entry946comment</comments>
      <pubDate>Sun, 2 Nov 2025 13:47:32 +0900</pubDate>
    </item>
    <item>
      <title>Bias-Variance Tradeoff</title>
      <link>https://dsaint31.tistory.com/945</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Supervised Learning의 궁극적인 목표&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;학습에 사용된 데이터 뿐만 아니라,&lt;/li&gt;
&lt;li&gt;한 번도 보지 못한 새로운 데이터에 대해서도 정확한 예측을 수행하는 능력, 즉&lt;/li&gt;
&lt;li&gt;&lt;b&gt;일반화 성능(generalization performance)&lt;/b&gt;을 높이는 것임.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모델이 예측한 값과 실제 값 사이의 차이, 즉 예측 오류는 단 하나의 원인으로 발생하지 않으며, 이 오류는 세 가지 주요 구성 요소로 분해될 수 있음:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Bias (편향)&lt;/li&gt;
&lt;li&gt;Variance (분산)&lt;/li&gt;
&lt;li&gt;Irreducible Error (줄일 수 없는 오류)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 글은&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이 세 가지 오류에 대한 설명을 하고&lt;/li&gt;
&lt;li&gt;이들 중 Bias와 Variance가 모델의 복잡도를 축으로 할 때, trade-off (상충관계)를 갖는 이유를 소개함.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 예측 오류의 세 가지 구성 요소&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예측 오류를 구성하는 세 가지 핵심 요소를 각각 정의하고, 그 원인과 결과를 살펴보기 위해 한 가지 가정을 해보겠음.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;현실 세계에서 100개의 서로 다른 학습 데이터셋을 수집(dataset이 100개임)&lt;/li&gt;
&lt;li&gt;각 데이터셋으로 100개의 개별 모델을 학습시킬 수 있다고 가정.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1.1. Bias Error&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;편향(Bias)&lt;/b&gt;이란,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;학습시킨 100개 모델 예측값들의 평균(mean)이 &lt;b&gt;실제 정답(true function)&lt;/b&gt;에서 얼마나 벗어나 있는지에 해당.&lt;/li&gt;
&lt;li&gt;이는 모델이 실제 정답에 대해 가지는 일종의 &lt;b&gt;체계적인 오차&lt;/b&gt; 임.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;bias는 모델의 근본적인 한계 (모델이 기반으로 삼는 가정등이 실제 data에서 어긋나는 경우 등)에서 비롯되는 error임.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;때문에, bias는 더 많은 데이터로 학습시킨다 해도 줄어들지 않는 error임.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;bias는 모델 자체가 가진 잘못된 가정 및 데이터의 한계(유용하지 않은 feature로 구성) 때문에 발생.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;잘못된 가정과 대표적이지 않은 데이터:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;현실의 복잡한 비선형 관계를 선형 모델로만 가정하거나,&lt;/li&gt;
&lt;li&gt;실제 유용하지 않은 feature로만 구성된 학습 데이터(representive data가 아님)로 인해 발생.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;대표적인 예: 단순한 모델
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모델의 파라미터 수가 적어&lt;/li&gt;
&lt;li&gt;데이터의 복잡한 패턴을 모두 담아내지 못하는 경우 편향이 높아짐: under-fit.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반적으로 높은 bias를 가진 모델은 '고집이 셉니다' (무식하고 고집이 센 사람을 생각).&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;때문에, 학습 데이터셋($D$)이 조금 바뀌더라도 모델의 파라메터들이 거의 변하지 않음.&lt;/li&gt;
&lt;li&gt;단순한 모델의 경우, 학습 데이터에서 가장 큰 경향성 만을 포착하여 기억하기 때문임.&lt;/li&gt;
&lt;li&gt;모델이 문제를 푸는데 중요한 데이터의 핵심적인 경향들을 학습하기에 복잡도가 떨어질 경우&lt;/li&gt;
&lt;li&gt;제대로 학습하지 못하는 과소적합(Underfitting) 상태가 됨.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1.2. Variance Error (분산 에러)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;분산(Variance)&lt;/b&gt;이란,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;100개의 서로 다른 데이터셋으로 학습시킨 모델들이 하나의 입력값에 대해 얼마나 서로 다른 예측을 하는지를 나타내는 척도.&lt;/li&gt;
&lt;li&gt;이는 다른 데이터셋으로 인해 모델이 얼마나 차이를 가지는지를 나타냄.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;달리 말하면 variance는 모델이 학습 데이터에 얼마나 민감하게 반응하는지를 나타냄.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Variance Error 의 원인과 결과는 다음과 같음:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;원인:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;파라미터가 많은 복잡하고 유연한 모델이&lt;/li&gt;
&lt;li&gt;학습 데이터의 미세한 변동이나 노이즈(noise)까지 '패턴'으로 오인하여 과도하게 학습할 때&lt;/li&gt;
&lt;li&gt;variance error가 발생.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;결과:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Variance는 &quot;만약 다른 학습 데이터셋 $D$로 학습했다면 모델 $\hat{f}$가 얼마나 다른 파라메터를 가지는가?&quot;를 측정.&lt;/li&gt;
&lt;li&gt;Varaiance가 높은 모델은 불안정하여 학습 데이터가 조금만 바뀌어도 완전히 다른 모델이 되는 문제점을 가짐.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;높은 Variance는&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모델이 학습 데이터에만 지나치게 최적화되는 &lt;b&gt;과대적합(Overfitting)&lt;/b&gt; 을 유발함을 의미함.&lt;/li&gt;
&lt;li&gt;이는 새로운 데이터 (학습데이터가 아닌 testset에서)에 대한 예측 성능 저하로 이어짐.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1.3. 줄일 수 없는 오류 (Irreducible Error)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;줄일 수 없는 오류(Irreducible Error)&lt;/b&gt;란,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터 자체에 본질적으로 내재된 무작위성 또는 노이즈(noise) 및 에러로서&lt;/li&gt;
&lt;li&gt;어떠한 학습 알고리즘을 사용하더라도 제거할 수 없는 한계선을 의미함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터는 종종 다음의 수식으로 표현됨.&lt;br /&gt;$$y = f(x) + \epsilon$$&lt;br /&gt;where&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$f(x)$는 우리가 찾으려는 실제 물리적인 패턴,&lt;/li&gt;
&lt;li&gt;$\epsilon$은 측정 오차나 무작위성으로 인한 노이즈.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아무리 완벽한 모델을 학습시켜서 $f(x)$를 최대한 정확히 approximate해도, $\epsilon$으로 인한 오류는 본질적으로 피할 수 없음.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1.4. 한눈에 비교하기: 편향 vs. 분산&lt;/h3&gt;
&lt;table data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;특징&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;높은 편향 (High Bias)&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;높은 분산 (High Variance)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;모델 복잡도&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;단순함 (낮은 Capacity)&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;복잡함 (높은 Capacity)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;주요 원인&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;지나치게 단순한 가정, 대표적이지 못한 데이터의 한계&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;학습 데이터의 노이즈까지 과도하게 학습&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;발생 문제&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;과소적합 (Underfitting)&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;과대적합 (Overfitting)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;데이터에 대한 민감도&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;학습 데이터가 바뀌어도 모델 변화가 거의 없음&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;학습 데이터가 바뀌면 모델이 크게 변동함 (불안정함)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이들 error를 일으키는 요소들 중에서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Variance와 Bias는 모델의 복잡도라는 하나의 핵심 요소를 축으로 'trade-off' 관계에 놓여 있음.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. Bias-Variance Tradeoff&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최적의 일반화 성능을 얻으려면 bias와 variance를 모두 함께 동시에 줄여야 함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 이 둘은 &lt;b&gt;모델의 복잡도(Model Complexity)&lt;/b&gt;를 기준으로 tradeoff 관계임.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;466&quot; data-origin-height=&quot;334&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cywu28/dJMcaiuPQMF/rNcQwg6mFPKKuf1GfqZmMK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cywu28/dJMcaiuPQMF/rNcQwg6mFPKKuf1GfqZmMK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cywu28/dJMcaiuPQMF/rNcQwg6mFPKKuf1GfqZmMK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcywu28%2FdJMcaiuPQMF%2FrNcQwg6mFPKKuf1GfqZmMK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;450&quot; height=&quot;323&quot; data-origin-width=&quot;466&quot; data-origin-height=&quot;334&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;모델이 단순할수록 (복잡도 낮음):
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모델은 데이터의 큰 경향성만을 학습.&lt;/li&gt;
&lt;li&gt;이로 인해 데이터의 세부 패턴을 놓쳐 큰 bais를 가지기 쉬움.&lt;/li&gt;
&lt;li&gt;대신, 데이터에 포함된 작은 노이즈에는 둔감하게 반응하므로 variance는 낮아짐.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;모델이 복잡해질수록 (복잡도 높음):
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모델은 데이터의 세세한 패턴까지 학습할 수 있게 되어 낮은 bias를 가짐.&lt;/li&gt;
&lt;li&gt;하지만 데이터의 &lt;b&gt;노이즈까지 패턴으로 인식하고 학습&lt;/b&gt; 하게 되어,&lt;/li&gt;
&lt;li&gt;학습 데이터가 조금만 바뀌어도 예측값이 크게 변함(모델의 파라메터가 크게 변하기 때문임)&lt;/li&gt;
&lt;li&gt;이는 높은 Variance 로 이어짐.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결론적으로, 최적의 일반화 성능을 얻으려면 &lt;br /&gt;bias와 variance를 동시에 줄여야 하지만, &lt;br /&gt;하나를 줄이면 다른 하나가 늘어나는 경향이 있어 &lt;br /&gt;이 둘 사이의 균형점을 찾는 것이 중요.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 수식으로 본 error&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;regression 모델의 예측 오류를 나타내는 평균 제곱 오차(Mean Squared Error, MSE)가 어떻게 bias, variance, irreducible error로 분해되는지를 수식으로 살펴볼 수 있음.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3.1. 용어 정의 및 목표 설정&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 수식 전개에 필요한 기본 변수들은 다음과 같음:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$y$: 실제 target value. $y = f(x) + \epsilon$&lt;/li&gt;
&lt;li&gt;$f(x)$: 우리가 찾고자 하는 이상적인 모델 (물리적인 실제 데이터 생성 기전을 모델링하고 있는)&lt;/li&gt;
&lt;li&gt;$\epsilon$: 평균이 0이고 분산이 $\sigma$인 정규분포를 따를는 노이즈 ($E[\epsilon] = 0, Var[\epsilon] = \sigma^2$).&lt;/li&gt;
&lt;li&gt;$\hat{f}(x; D)$: 주어진 학습 데이터셋 $D$를 통해 우리가 만든 예측 모델. 모델이 $D$에 의존함을 명시적으로 표기함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;목표는 예측 값($\hat{f}$)과 실제 값($y$)의 차이(difference, error)를 나타내는 &lt;b&gt;&lt;i&gt;MSE&lt;/i&gt;&lt;/b&gt;, 즉 $E[(y - \hat{f}(x; D))^2]$를 최소화하는 것임.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기댓값 $E[...]$는 가능한 모든 학습 데이터셋 $D$에 대한 평균을 의미.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3.2. 평균 제곱 오차(MSE) 분해 과정&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;평균 제곱 오차를 다음과 같이 단계별로 분해할 수 있음: 간단한 수식을 위해 $f(x)$는 $f$, $\hat{f}(x; D)$는 $\hat{f}$로 표기.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;MSE 정의와 $y$ 대체
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$E[(y - \hat{f})^2] = E[(f + \epsilon - \hat{f})^2]$&lt;/li&gt;
&lt;li&gt;$y$를 실제 함수와 노이즈의 합 $f + \epsilon$로 치환.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;핵심 단계: 평균 예측 $E[\hat{f}]$ 도입
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$E[(f + \epsilon - \hat{f})^2]= E[(f - E[\hat{f}] + E[\hat{f}] - \hat{f} + \epsilon)^2]$&lt;/li&gt;
&lt;li&gt;이 단계가 증명의 핵심임.&lt;/li&gt;
&lt;li&gt;평균 예측 $E[\hat{f}]$을 더하고 빼서 식의 값을 바꾸지 않으면서, 전체 오차를 다음의 세부분으로 나눌 수 있게 해줌.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;(1) Bias 관련 부분: $(f - E[\hat{f}])$,
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;(2) Variance 관련 부분: $(E[\hat{f}] - \hat{f})$,&lt;/li&gt;
&lt;li&gt;(3) 노이즈 $\epsilon$ 관련 부분&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;term(항) 재배열 및 제곱 전개
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$E[(f + \epsilon - \hat{f})^2]= E[ ( (f - E[\hat{f}]) + (E[\hat{f}] - \hat{f}) + \epsilon )&amp;sup2; ]$&lt;/li&gt;
&lt;li&gt;세 개의 항 $(f - E[\hat{f}])$, $(E[\hat{f}] - \hat{f})$, $\epsilon$으로 묶어 제곱식을 전개.&lt;/li&gt;
&lt;li&gt;$E[(f + \epsilon - \hat{f})^2]= E[(f - E[\hat{f}])^2] + E[(E[\hat{f}] - \hat{f})^2] + E[\epsilon^2] + 2E[(f - E[\hat{f}])(E[\hat{f}] - \hat{f})] + 2E[(f - E[\hat{f}])\epsilon] + 2E[(E[\hat{f}] - \hat{f})\epsilon]$&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;교차 항(Cross-term) 정리
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;전개된 식의 뒤쪽 세 개 교차 항들은 기댓값의 성질에 의해 모두 0이 됨.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$2E[(f - E[\hat{f}])(E[\hat{f}] - \hat{f})]$:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;여기서 $f$와 $E[\hat{f}]$는 $D$에 대한 기댓값이므로 상수 취급이 가능.&lt;/li&gt;
&lt;li&gt;따라서 $2(f - E[\hat{f}]) \times E[E[\hat{f}] - \hat{f}]$가 되며,&lt;/li&gt;
&lt;li&gt;$E[E[\hat{f}] - \hat{f}] = E[\hat{f}] - E[\hat{f}] = 0$ 을 이용하면 전체 term은 0.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;$2E[(f - E[\hat{f}])\epsilon]$:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$f$와 $E[\hat{f}]$는 $\epsilon$과 무관하므로&lt;/li&gt;
&lt;li&gt;$2(f - E[\hat{f}]) \times E[\epsilon]$로 전개 가능.&lt;/li&gt;
&lt;li&gt;$E[\epsilon] = 0$이므로 이 term도 0.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;$2E[(E[\hat{f}] - \hat{f})\epsilon]$:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모델 $\hat{f}$은 학습 데이터 D에만 의존&lt;/li&gt;
&lt;li&gt;노이즈 $\epsilon$는 $D$에 대해 독립적.&lt;/li&gt;
&lt;li&gt;따라서 $E[(E[\hat{f}] - \hat{f})\epsilon] = E[E[\hat{f}] - \hat{f}] \times E[\epsilon]$로 분리 가능.&lt;/li&gt;
&lt;li&gt;$E[E[\hat{f}] - \hat{f}] = 0$ 이고 $E[\epsilon] = 0$이므로 이 term 도 0.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;최종 결과 도출
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;cross terms가 모두 0이 되면서 다음의 세 개의 term들만 남음:&lt;/li&gt;
&lt;li&gt;$E[(f + \epsilon - \hat{f})^2]= E[(f - E[\hat{f}])^2] + E[(E[\hat{f}] - \hat{f})^2] + E[\epsilon^2]$&lt;/li&gt;
&lt;li&gt;각 항을 정의에 따라 정리.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$f$와 $E[\hat{f}]$는 상수이므로, $E[(f - E[\hat{f}])^2] = (f - E[\hat{f}])^2$ 임:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이는 bias의 제곱 ($\text{Bias}[\hat{f}])^2$&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;$E[(\hat{f} - E[\hat{f}])^2]$는 variance, $\text{Var}[\hat{f}]$ 임.&lt;/li&gt;
&lt;li&gt;$\text{Var}[\epsilon] = E[\epsilon^2] - (E[\epsilon])^2$이고 $E[\epsilon]=0$이므로, $E[\epsilon^2] = \text{Var}[\epsilon] = \epsilon^2$임.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이는 irreducible error임.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$E[(f + \epsilon - \hat{f})^2] = (E[\hat{f}] - f)^2 + \text{Var}[\hat{f}] + \epsilon^2$$&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3.3. 최종 공식과 그 의미&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최종적으로 분해된 총 오류(MSE) 공식은 다음과 같음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$ E[(y - \hat{f})&amp;sup2;] = (\text{Bias}[\hat{f}])^2 + \text{Var}[\hat{f}] + \epsilon^2$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 공식의 각 항이 의미하는 바는 다음과 같음&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;bias의 제곱: 여러 다른 학습 데이터셋으로 학습시킨 모델들의 평균적인 예측이 실제 정답 함수에서 얼마나 벗어났는가? (모델의 근본적인 한계)&lt;/li&gt;
&lt;li&gt;variance : 각기 다른 학습 데이터셋으로 학습시킨 모델들의 예측이 서로 얼마나 흩어져 있는가? (모델의 학습 데이터 민감도/불안정성)&lt;/li&gt;
&lt;li&gt;Irreducible Error (줄일 수 없는 오류) :데이터 자체에 내재된 노이즈의 크기&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Programming/ML</category>
      <author>dsaint31x</author>
      <guid isPermaLink="true">https://dsaint31.tistory.com/945</guid>
      <comments>https://dsaint31.tistory.com/945#entry945comment</comments>
      <pubDate>Thu, 30 Oct 2025 12:23:42 +0900</pubDate>
    </item>
    <item>
      <title>[SS] $u(t)-u(t-a)$ 의 (unilateral) Laplace Transform</title>
      <link>https://dsaint31.tistory.com/944</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;778&quot; data-origin-height=&quot;114&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BAkaq/dJMcaj1z4om/TNlU47KsbqPxkUHjuDujvk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BAkaq/dJMcaj1z4om/TNlU47KsbqPxkUHjuDujvk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BAkaq/dJMcaj1z4om/TNlU47KsbqPxkUHjuDujvk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBAkaq%2FdJMcaj1z4om%2FTNlU47KsbqPxkUHjuDujvk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;59&quot; data-origin-width=&quot;778&quot; data-origin-height=&quot;114&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;증명1&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;보통 $a&amp;gt;0$ 가정&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$x(t)=u(t)-u(t-a)=&lt;br /&gt;\begin{cases}&lt;br /&gt;1,&amp;amp; 0\le t&amp;lt;a \\&lt;br /&gt;0,&amp;amp; \text{그 외}&lt;br /&gt;\end{cases}$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이와 같으므로 unilateral transform 은&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\mathcal{L}[x(t)]&lt;br /&gt;= \int_{0}^{\infty} e^{-st}\big[u(t)-u(t-a)\big] dt&lt;br /&gt;= \int_{0}^{a} e^{-st} dt$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;구간 외에는 0 임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$\operatorname{Re}(s)&amp;gt;0$에서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\int_{0}^{a} e^{-st} dt&lt;br /&gt;= \left[\frac{e^{-st}}{-s}\right]_{0}^{a}&lt;br /&gt;= \frac{1-e^{-as}}{s}.$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위에 의해 다음이 성립&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\boxed{\;\mathcal{L}[u(t)-u(t-a)]=\dfrac{1-e^{-as}}{s},\quad \operatorname{Re}(s)&amp;gt;0\;}$$&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;증명2&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Linearity 를 이용해도 증명 가능.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\mathcal{L}[u(t)]=\frac{1}{s} \\&lt;br /&gt;\mathcal{L}[u(t-a)]=\int_{a}^{\infty} e^{-st}\,dt=\frac{e^{-as}}{s} \ \ (\operatorname{Re}(s)&amp;gt;0).$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서&lt;br /&gt;$$\mathcal{L}[u(t)-u(t-a)]=\frac{1}{s}-\frac{e^{-as}}{s}=\frac{1-e^{-as}}{s}.$$&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;같이보면 좋은 자료&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/385&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2022.10.24 - [.../Signals and Systems] - [SS] Laplace Transform Table&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1761785470560&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;[SS] Laplace Transform Table&quot; data-og-description=&quot;SignalLaplace TransformRoC...1$u(t)$$\frac{1}{s}$$\text{Re}(s)&amp;gt;0$ 2$u(t)-u(t-a)$$\frac{1-e^{-as}}{s}$$\text{Re}(s)&amp;gt;0$ 3$\delta(t)$1all complex plane 4$\delta(t-a)$$e^{-as}$all complex plane 5$e^{-at}u(t)$$\frac{1}{s+a}$$\text{Re}(s)&amp;gt;-a$참고6$\cos\Omega_0&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/385&quot; data-og-url=&quot;https://dsaint31.tistory.com/385&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/c6SfLL/hyZMQvEEIl/MivQmVYhTYliwoHxgKQn50/img.png?width=800&amp;amp;height=402&amp;amp;face=0_0_800_402,https://scrap.kakaocdn.net/dn/1Zc7a/hyZLlqpdmQ/jZrsxkkrZE7uzHTJyWxhPK/img.png?width=800&amp;amp;height=402&amp;amp;face=0_0_800_402&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/385&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/385&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/c6SfLL/hyZMQvEEIl/MivQmVYhTYliwoHxgKQn50/img.png?width=800&amp;amp;height=402&amp;amp;face=0_0_800_402,https://scrap.kakaocdn.net/dn/1Zc7a/hyZLlqpdmQ/jZrsxkkrZE7uzHTJyWxhPK/img.png?width=800&amp;amp;height=402&amp;amp;face=0_0_800_402');&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;[SS] Laplace Transform Table&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;SignalLaplace TransformRoC...1$u(t)$$\frac{1}{s}$$\text{Re}(s)&amp;gt;0$ 2$u(t)-u(t-a)$$\frac{1-e^{-as}}{s}$$\text{Re}(s)&amp;gt;0$ 3$\delta(t)$1all complex plane 4$\delta(t-a)$$e^{-as}$all complex plane 5$e^{-at}u(t)$$\frac{1}{s+a}$$\text{Re}(s)&amp;gt;-a$참고6$\cos\Omega_0&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>.../Signals and Systems</category>
      <author>dsaint31x</author>
      <guid isPermaLink="true">https://dsaint31.tistory.com/944</guid>
      <comments>https://dsaint31.tistory.com/944#entry944comment</comments>
      <pubDate>Thu, 30 Oct 2025 09:55:26 +0900</pubDate>
    </item>
    <item>
      <title>[SS] 상수 함수에 대한 Unilateral Laplace Transform</title>
      <link>https://dsaint31.tistory.com/943</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. Laplace Transform의 정의&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;One-sided(unilateral) Laplace transform은 다음과 같이 정의:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\mathcal{L}[f(t)] = \int_{0}^{\infty} e^{-st} f(t)\, dt$$&lt;br /&gt;where,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$s = \sigma + j\omega$&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. $f(t) = 1$을 대입&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\mathcal{L}[1] = \int_{0}^{\infty} e^{-st}\, dt$$&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 적분 계산&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 적분은 지수함수의 무한 적분임.&lt;br /&gt;때문에 수렴 조건을 먼저 확인하여 ROC를 구함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$\operatorname{Re}(s) &amp;gt; 0$ 일 때만 수렴.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;적분을 계산하면:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\int_{0}^{\infty} e^{-st}\, dt = \left[ \frac{e^{-st}}{-s} \right]_{0}^{\infty}$$&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. 극한 계산&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$t \to \infty$ 일 때 $\operatorname{Re}(s) &amp;gt; 0$이면 $e^{-st} \to 0$&lt;/li&gt;
&lt;li&gt;$t = 0$ 일 때 $e^{-st} = 1$&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음이 성립함:&lt;br /&gt;$$\int_{0}^{\infty} e^{-st}\, dt = \frac{0 - (1)}{-s} = \frac{1}{s}$$&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;5. 결론&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\boxed{\mathcal{L}[1] = \frac{1}{s}, \quad \operatorname{Re}(s) &amp;gt; 0}$$&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;같이보면 좋은 자료들&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/385&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2022.10.24 - [.../Signals and Systems] - [SS] Laplace Transform Table&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1761784449416&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;[SS] Laplace Transform Table&quot; data-og-description=&quot;SignalLaplace TransformRoC...1$u(t)$$\frac{1}{s}$$\text{Re}(s)&amp;gt;0$ 2$u(t)-u(t-a)$$\frac{1-e^{-as}}{s}$$\text{Re}(s)&amp;gt;0$ 3$\delta(t)$1all complex plane 4$\delta(t-a)$$e^{-as}$all complex plane 5$e^{-at}u(t)$$\frac{1}{s+a}$$\text{Re}(s)&amp;gt;-a$참고6$\cos\Omega_0&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/385&quot; data-og-url=&quot;https://dsaint31.tistory.com/385&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/c6SfLL/hyZMQvEEIl/MivQmVYhTYliwoHxgKQn50/img.png?width=800&amp;amp;height=402&amp;amp;face=0_0_800_402,https://scrap.kakaocdn.net/dn/1Zc7a/hyZLlqpdmQ/jZrsxkkrZE7uzHTJyWxhPK/img.png?width=800&amp;amp;height=402&amp;amp;face=0_0_800_402&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/385&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/385&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/c6SfLL/hyZMQvEEIl/MivQmVYhTYliwoHxgKQn50/img.png?width=800&amp;amp;height=402&amp;amp;face=0_0_800_402,https://scrap.kakaocdn.net/dn/1Zc7a/hyZLlqpdmQ/jZrsxkkrZE7uzHTJyWxhPK/img.png?width=800&amp;amp;height=402&amp;amp;face=0_0_800_402');&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;[SS] Laplace Transform Table&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;SignalLaplace TransformRoC...1$u(t)$$\frac{1}{s}$$\text{Re}(s)&amp;gt;0$ 2$u(t)-u(t-a)$$\frac{1-e^{-as}}{s}$$\text{Re}(s)&amp;gt;0$ 3$\delta(t)$1all complex plane 4$\delta(t-a)$$e^{-as}$all complex plane 5$e^{-at}u(t)$$\frac{1}{s+a}$$\text{Re}(s)&amp;gt;-a$참고6$\cos\Omega_0&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>.../Signals and Systems</category>
      <category>Laplace</category>
      <author>dsaint31x</author>
      <guid isPermaLink="true">https://dsaint31.tistory.com/943</guid>
      <comments>https://dsaint31.tistory.com/943#entry943comment</comments>
      <pubDate>Thu, 30 Oct 2025 09:34:32 +0900</pubDate>
    </item>
    <item>
      <title>Matrix Norm and Condition Number</title>
      <link>https://dsaint31.tistory.com/942</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;411&quot; data-origin-height=&quot;123&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dQGr6B/dJMcajtJVVL/tQkMhZWoJNGKpKQws7X6E1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dQGr6B/dJMcajtJVVL/tQkMhZWoJNGKpKQws7X6E1/img.png&quot; data-alt=&quot;https://en.wikipedia.org/wiki/Condition_number&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dQGr6B/dJMcajtJVVL/tQkMhZWoJNGKpKQws7X6E1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdQGr6B%2FdJMcajtJVVL%2FtQkMhZWoJNGKpKQws7X6E1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;411&quot; height=&quot;123&quot; data-origin-width=&quot;411&quot; data-origin-height=&quot;123&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;https://en.wikipedia.org/wiki/Condition_number&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Matrix Norm&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Vector의 Norm을 이용한 Matrix의 Norm의 정의는 다음과 같음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\|A\|=\underset{\textbf{x}\ne\textbf{0}}{\text{max}} \frac{\|A\textbf{x}\|}{\|\textbf{x}\|}$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$\textbf{x}$ : 임의의 column vector.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 Matrix의 Norm에 대한 정의로부터 다음이 성립.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\|A\textbf{x}\|\le\|A\|\|\textbf{x}\|$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;좀 더 자세히 말하면, 이는 Operator norm (or induced norm)이라고 불리는 것으로 matrix를 linear transform으로 보고 해당 변환이 얼마나 input vector의 norm을 &quot;증가시키는지&quot;를 norm으로 표현함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용하는 vector norm (L-p Norm에서 p의 값에 따라 다름)의 종류에 따라 값이 달라짐.&lt;/p&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 Norm 으로 더 많이 사용되는 것은 Frobenius norm임:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\|A\|_\text{Frobenius} = \sqrt{\sum_{i,j} |a_{i,j}|^2}$$&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;참고: Norm이란?&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/254#Norm%20(%EB%85%B8%EB%A6%84)-1-5&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://dsaint31.tistory.com/254#Norm%20(%EB%85%B8%EB%A6%84)-1-5&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1761727263117&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;[Math] Vector (1)&quot; data-og-description=&quot;Scalar오직 magnitude(크기)만을 가지는 물리량.숫자 하나.ndim=0, rank=02024.07.08 - [.../Linear Algebra] - [LA] Rank: Matrix의 속성&amp;nbsp;[LA] Rank: Matrix의 속성Definition: Rank ◁&amp;nbsp;matrix 속성The rank of a matrix $A$, denoted by rank $A&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/254#Norm%20(%EB%85%B8%EB%A6%84)-1-5&quot; data-og-url=&quot;https://dsaint31.tistory.com/254&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cEUiRs/hyZMNetQc7/5zQC159WJQ1gai37AkrkUk/img.png?width=674&amp;amp;height=293&amp;amp;face=0_0_674_293,https://scrap.kakaocdn.net/dn/b9Uv7k/hyZMIqKMii/LfIgZkDACHcOPFNnwTHblk/img.png?width=674&amp;amp;height=293&amp;amp;face=0_0_674_293,https://scrap.kakaocdn.net/dn/ggarq/hyZMVp4ueg/8UkJY5oiHc0ZfTf6hNUw9k/img.jpg?width=2053&amp;amp;height=568&amp;amp;face=0_0_2053_568&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/254#Norm%20(%EB%85%B8%EB%A6%84)-1-5&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/254#Norm%20(%EB%85%B8%EB%A6%84)-1-5&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cEUiRs/hyZMNetQc7/5zQC159WJQ1gai37AkrkUk/img.png?width=674&amp;amp;height=293&amp;amp;face=0_0_674_293,https://scrap.kakaocdn.net/dn/b9Uv7k/hyZMIqKMii/LfIgZkDACHcOPFNnwTHblk/img.png?width=674&amp;amp;height=293&amp;amp;face=0_0_674_293,https://scrap.kakaocdn.net/dn/ggarq/hyZMVp4ueg/8UkJY5oiHc0ZfTf6hNUw9k/img.jpg?width=2053&amp;amp;height=568&amp;amp;face=0_0_2053_568');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[Math] Vector (1)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Scalar오직 magnitude(크기)만을 가지는 물리량.숫자 하나.ndim=0, rank=02024.07.08 - [.../Linear Algebra] - [LA] Rank: Matrix의 속성&amp;nbsp;[LA] Rank: Matrix의 속성Definition: Rank ◁&amp;nbsp;matrix 속성The rank of a matrix $A$, denoted by rank $A&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Condition number (조건수)&lt;/b&gt;&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;행렬의 condition number는 &lt;br /&gt;방정식 $A\textbf{x}=\textbf{b}$ 의 민감도를 나타내는 지표임.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;행렬 $A$ 의 조건수가 크면 (&amp;larr;민감한 경우) 일정한 크기의 input의 상대 오차에 대해서 solution(해)의 상대 오차가 커질 수 있고 (ill-conditioned라고 한다),&lt;/li&gt;
&lt;li&gt;반대로 작으면 solution의 상대 오차도 작아지게됨(이 경우를 well-conditioned라고 부름).&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기계학습 적인 관점에서 말하면,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;condition number가 클 경우&lt;/b&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt; 작은 오차(혹은 noise)에 대해 매우 민감하게 반응하므로 &lt;/span&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;overfitting이 일어나기 쉽다&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;이는 &lt;u&gt;다른 데이터 셋으로 학습시 모델이 매우 다른 파라메터(solution에 해당)를 가지게 됨&lt;/u&gt;을 의미한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전통적인 linear system으로 애기하면,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;codition number가 클 경우, 사실상 ill-pose inverse problem과 같이 처리 (정확히는 ill conditioned problem)되기 싶다.&lt;/li&gt;
&lt;li&gt;well-posed라고 해도 연산과정에 피할 수 없는 &lt;a href=&quot;https://dsaint31.tistory.com/entry/Round-off-Error-vs-Truncation-Error-1&quot;&gt;round-off error&lt;/a&gt;로 인해 matrix가 singular로 바뀌기 쉽다는 애기임.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Condition Number(조건수) 유도.&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Linear system에서 input $\textbf{b}$가 오차가 발생하여, $(\textbf{b} +\Delta \textbf{b})$로 주어질 경우, solution $\textbf{x}$도 다음과 같은 출력오차를 가지게 됨 :&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$(\textbf{x}+\Delta \textbf{x})$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 아래의 등식이 성립.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$A(\textbf{x}+\Delta \textbf{x})=(\textbf{b} +\Delta \textbf{b}) \Rightarrow \Delta \textbf{x} = A^{-1}\Delta \textbf{b}$$&lt;/p&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의 Norm을 이용하면, 다음과 같은 부등식이 성립.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\Delta \textbf{x} = A^{-1}\Delta \textbf{b} \Rightarrow \| \Delta \textbf{x} \| \le \|A^{-1}\| \|\Delta \textbf{b}\| \tag{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;원래의 linear system에서 다음이 또한 성립.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$A\textbf{x}=\textbf{b} \Rightarrow \textbf{b}=A\textbf{x} \Rightarrow \|\textbf{b}\|=\|A\| \|\textbf{x}\| \tag{2}$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;부등식 1과 2로부터 다음이 성립함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\frac{\|\Delta \textbf{x}\|}{\|A\| \|\textbf{x}\|} \le \frac{ \|A^{-1}\| \|\Delta \textbf{b}\|}{ \|\textbf{b}\|} \\\\ \frac{\|\Delta \textbf{x}\|}{ \|\textbf{x}\|} \le \|A\| \|A^{-1}\| \frac{\|\Delta \textbf{b}\|}{ \|\textbf{b}\|}$$&lt;/p&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;input 의 상대오차$\frac{ \|\Delta \textbf{b}\|}{ \|\textbf{b}\|}$에 따른 solution의 상대오차 $\frac{\Delta \|\textbf{x}\|}{ \|\textbf{x}\|}$의 정도가 $\|A\| \|A^{-1}\|$에 의해서 결정되며 이를 Condition number (조건수)라고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\text{cond}(A) = \| A \| \| A^{-1}\| $$&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Singular value ratio: Condtion Number&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 설명은 개념을 반영한 설명이고,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가장 일반적으로 condtion number를 구하는 방법은 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;SVD(singular value decomposition)&lt;/b&gt;&lt;/span&gt;을 통한 singular value $\sigma$들을 구하고, 그중 최대값과 최소값의 ratio를 구하는 것임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\text{cond}(A) = \frac{| \sigma_\text{max}(A) |}{|\sigma_\text{min}(A)|}$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$\sigma(A)$ : Matrix $A$의 singular value.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Reference&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://ghebook.blogspot.com/2021/03/matrix-norm-and-condition-number.html&quot;&gt;https://ghebook.blogspot.com/2021/03/matrix-norm-and-condition-number.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1761727489258&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;행렬 노름과 조건수(Matrix Norm and Condition Number)&quot; data-og-description=&quot;물리학, 수학, 전자파&quot; data-og-host=&quot;ghebook.blogspot.com&quot; data-og-source-url=&quot;https://ghebook.blogspot.com/2021/03/matrix-norm-and-condition-number.html&quot; data-og-url=&quot;https://ghebook.blogspot.com/2021/03/matrix-norm-and-condition-number.html&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dmo2KH/hyZLbg0TTH/LF14MvJwJ3VeawgyfoNnNK/img.png?width=589&amp;amp;height=480&amp;amp;face=0_0_589_480&quot;&gt;&lt;a href=&quot;https://ghebook.blogspot.com/2021/03/matrix-norm-and-condition-number.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://ghebook.blogspot.com/2021/03/matrix-norm-and-condition-number.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dmo2KH/hyZLbg0TTH/LF14MvJwJ3VeawgyfoNnNK/img.png?width=589&amp;amp;height=480&amp;amp;face=0_0_589_480');&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;행렬 노름과 조건수(Matrix Norm and Condition Number)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;물리학, 수학, 전자파&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;ghebook.blogspot.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/entry/Round-off-Error-vs-Truncation-Error-1&quot;&gt;https://dsaint31.tistory.com/entry/Round-off-Error-vs-Truncation-Error-1&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1761727501463&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;Round-off Error vs. Truncation Error&quot; data-og-description=&quot;Round-off Error: 컴퓨터에서 수치를 저장하는 데이터 타입의 한계로 인한 에러.제한된 비트에 수치를 저장하기 때문에 발생하며 Finite word-length effect, Finite word-length error라고도 불림.주로 quantization에&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/entry/Round-off-Error-vs-Truncation-Error-1&quot; data-og-url=&quot;https://dsaint31.tistory.com/351&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/FaFax/hyZMpTRD7t/AAhuVkTDmbZNMKujJd6561/img.png?width=760&amp;amp;height=492&amp;amp;face=0_0_760_492,https://scrap.kakaocdn.net/dn/cbPrIJ/hyZMHSUHtH/QDi35tst6LZdwT0NxkAVHK/img.png?width=760&amp;amp;height=492&amp;amp;face=0_0_760_492,https://scrap.kakaocdn.net/dn/cySCC2/hyZLj0r2rA/EZ0pSbpuZ998aOghPGrPd1/img.png?width=760&amp;amp;height=492&amp;amp;face=0_0_760_492&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/entry/Round-off-Error-vs-Truncation-Error-1&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/entry/Round-off-Error-vs-Truncation-Error-1&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/FaFax/hyZMpTRD7t/AAhuVkTDmbZNMKujJd6561/img.png?width=760&amp;amp;height=492&amp;amp;face=0_0_760_492,https://scrap.kakaocdn.net/dn/cbPrIJ/hyZMHSUHtH/QDi35tst6LZdwT0NxkAVHK/img.png?width=760&amp;amp;height=492&amp;amp;face=0_0_760_492,https://scrap.kakaocdn.net/dn/cySCC2/hyZLj0r2rA/EZ0pSbpuZ998aOghPGrPd1/img.png?width=760&amp;amp;height=492&amp;amp;face=0_0_760_492');&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;Round-off Error vs. Truncation Error&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Round-off Error: 컴퓨터에서 수치를 저장하는 데이터 타입의 한계로 인한 에러.제한된 비트에 수치를 저장하기 때문에 발생하며 Finite word-length effect, Finite word-length error라고도 불림.주로 quantization에&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/entry/Math-ill-posed-well-posed-ill-conditioned-well-conditioned-matrix-or-problem&quot;&gt;https://dsaint31.tistory.com/entry/Math-ill-posed-well-posed-ill-conditioned-well-conditioned-matrix-or-problem&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1761727506460&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;[Math] ill-posed, well-posed, ill-conditioned, well-conditioned matrix (or problem)&quot; data-og-description=&quot;&amp;quot;well-posed&amp;quot; matrix and &amp;quot;well-conditioned&amp;quot; matrix$A\textbf{x}=\textbf{b}$와 같은 Linear System (연립방정식)에서 system matrix $A$가 invertible하다면 해당 linear system(달리 말하면 연립방정식)이 well-posed라고 할 수 있다.하&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/entry/Math-ill-posed-well-posed-ill-conditioned-well-conditioned-matrix-or-problem&quot; data-og-url=&quot;https://dsaint31.tistory.com/400&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bN1AHw/hyZMom58sR/RUI48VqLYBikGIgzSeXLO0/img.png?width=607&amp;amp;height=303&amp;amp;face=0_0_607_303,https://scrap.kakaocdn.net/dn/cfs4nk/hyZMdy7elC/Wvvp8ogj5uaceY2rsK3KP1/img.png?width=607&amp;amp;height=303&amp;amp;face=0_0_607_303,https://scrap.kakaocdn.net/dn/IdgD8/hyZLdsnTmb/auqY3U1WLbl43NWGK3YPtK/img.png?width=607&amp;amp;height=303&amp;amp;face=0_0_607_303&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/entry/Math-ill-posed-well-posed-ill-conditioned-well-conditioned-matrix-or-problem&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/entry/Math-ill-posed-well-posed-ill-conditioned-well-conditioned-matrix-or-problem&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bN1AHw/hyZMom58sR/RUI48VqLYBikGIgzSeXLO0/img.png?width=607&amp;amp;height=303&amp;amp;face=0_0_607_303,https://scrap.kakaocdn.net/dn/cfs4nk/hyZMdy7elC/Wvvp8ogj5uaceY2rsK3KP1/img.png?width=607&amp;amp;height=303&amp;amp;face=0_0_607_303,https://scrap.kakaocdn.net/dn/IdgD8/hyZLdsnTmb/auqY3U1WLbl43NWGK3YPtK/img.png?width=607&amp;amp;height=303&amp;amp;face=0_0_607_303');&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;[Math] ill-posed, well-posed, ill-conditioned, well-conditioned matrix (or problem)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&quot;well-posed&quot; matrix and &quot;well-conditioned&quot; matrix$A\textbf{x}=\textbf{b}$와 같은 Linear System (연립방정식)에서 system matrix $A$가 invertible하다면 해당 linear system(달리 말하면 연립방정식)이 well-posed라고 할 수 있다.하&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>.../Math</category>
      <category>condition number</category>
      <category>matrix norm</category>
      <category>norm</category>
      <author>dsaint31x</author>
      <guid isPermaLink="true">https://dsaint31.tistory.com/942</guid>
      <comments>https://dsaint31.tistory.com/942#entry942comment</comments>
      <pubDate>Wed, 29 Oct 2025 17:45:27 +0900</pubDate>
    </item>
    <item>
      <title>Lorentzian Function (or Cauchy distribution function)</title>
      <link>https://dsaint31.tistory.com/941</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Lorentzian 함수(로렌츠 함수)는 물리학과 신호처리, 특히 공명(resonance)과 푸리에 변환에서 자주 등장하는 함수.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. Definition&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Lorentzian function 또는 Cauchy distribution function은 다음과 같이 정의됨:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;L(x; x_0, \gamma) = \frac{1}{\pi}\frac{\gamma}{(x - x_0)^2 + \gamma^2}&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;where,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$x_0$: 중심(center). 주로 0으로 사용되는 경우도 많음.&lt;/li&gt;
&lt;li&gt;$\gamma$ &amp;gt; 0: 반치폭(half width at half maximum, HWHM)&lt;/li&gt;
&lt;li&gt;전체 면적 $\int_{-\infty}^{\infty} L(x),dx = 1$&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1029&quot; data-origin-height=&quot;649&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UghLW/dJMb9PzDKUU/OiSHfekOpfRL5CoowsGqV1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UghLW/dJMb9PzDKUU/OiSHfekOpfRL5CoowsGqV1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UghLW/dJMb9PzDKUU/OiSHfekOpfRL5CoowsGqV1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUghLW%2FdJMb9PzDKUU%2FOiSHfekOpfRL5CoowsGqV1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;252&quot; data-origin-width=&quot;1029&quot; data-origin-height=&quot;649&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음과 같이&amp;nbsp; $\frac{1}{\pi}$를 제거하고 $x_0=0$인 형태로도 자주 사용됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$L(x; \gamma) = \frac{\gamma}{x^2+\gamma^2}$$&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이 경우 면적은 $\pi$임.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://youtu.be/wbdGyUvvrjI&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://youtu.be/wbdGyUvvrjI&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=wbdGyUvvrjI&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/dd7t2E/hyZL3DiWNC/GZQpnvCOJj7uEUDS5VJVOK/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720,https://scrap.kakaocdn.net/dn/CbIIE/hyZLjlrvK9/6tvx9Z0ztNKiStbKZ72sHK/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;Lorentzian의 적분-넓이 구하기.&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/wbdGyUvvrjI&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;/div&gt;
&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. 주요 특징 (Properties)&lt;/h3&gt;
&lt;table data-ke-align=&quot;alignCenter&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;속성&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;설명&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;대칭성&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;$x_0$을 중심으로 even function(짝함수)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;최대값&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;$L(x_0) = 1/(\pi \gamma)$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;폭&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;$FWHM = 2\gamma$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;꼬리감소&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;$L(x) \sim \dfrac{1}{x^2}$ (heavy tail)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;평균/분산은 보통 정의되지 않음 (꼬리가 너무 느리게 감소하기 때문).&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3. Fourier 변환과의 관계&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Lorentzian 함수는 지수 감쇠 함수의 푸리에 변환으로 등장.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$e^{-\gamma|t|} \overset{\mathcal{F}} {\longleftrightarrow} \frac{2\gamma}{\gamma^2 + \omega^2}$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 $\frac{2\gamma}{\gamma^2 + \omega^2}$ 는 Lorentzian 형태임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 시간 영역에서 신호가 감쇠(or 진동)하면, &lt;br /&gt;주파수 영역에서 Lorentzian 모양의 스펙트럼이 발생함.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;때문에 Lorentzian은 &lt;br /&gt;공명(Resonance) 스펙트럼, 광선폭(Line width), &lt;br /&gt;NMR, X-ray, CT 등에서의 신호선폭 표현에 매우 자주 사용되는 함수임.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4. Impulse function(Dirac delta)와의 관계&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Lorentzian은 감쇠 파라미터 $\gamma$가 $0^+$로 갈수록 점점 뾰족해지며,Dirac delta 함수로 수렴함..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$&lt;br /&gt;\boxed{&lt;br /&gt;\lim_{\gamma \to 0^+} \frac{1}{\pi} \frac{\gamma}{x^2 + \gamma^2} = \delta(x)&lt;br /&gt;}&lt;br /&gt;$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이는 다음 두 가지 조건을 만족하기 때문입니다:&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;항상 양수: $L(x) \ge 0$&lt;/li&gt;
&lt;li&gt;면적이 1: $\displaystyle \int_{-\infty}^{\infty} L(x),dx = 1$&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 Lorentzian에서 $\underset{\gamma \to 0}{\lim}$을 취하면 &amp;ldquo;impulse function&amp;rdquo;으로 볼 수 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$\displaystyle \lim_{\gamma \to 0^+} \frac{\gamma}{x^2+\gamma^2} = \pi \delta(x)$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, Dirac delta 의 부드럽고 수학적으로 취급 가능한 approximation 임.&lt;/p&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://dsaint31.tistory.com/632&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2023.10.13 - [.../Signals and Systems] - [SS] Fourier Transform of Impulse Function (Dirac Delta)&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1761284325027&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;[SS] Fourier Transform of Impulse Function (Dirac Delta)&quot; data-og-description=&quot;Continuous Time Signal에서의 Impulse Function은 Dirac Delta Function $\delta(t)$임.이는 다음을 만족함.$$\delta(t)=\left\{ \begin{matrix} \infty &amp;amp;,t=0 \\ 0 &amp;amp;,t \ne 0 \end{matrix}\right. \\ \int^\infty_{-\infty} \delta(t)dt=1$$ 2022.08.29 - [...&quot; data-og-host=&quot;dsaint31.tistory.com&quot; data-og-source-url=&quot;https://dsaint31.tistory.com/632&quot; data-og-url=&quot;https://dsaint31.tistory.com/632&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cMUgPc/hyZMiFBMYJ/lxDCKyrDkmG4UW42L13DMk/img.png?width=624&amp;amp;height=448&amp;amp;face=0_0_624_448,https://scrap.kakaocdn.net/dn/cCqHPd/hyZLnVFyiM/3lSJUUMoFahy9axNv7oBlK/img.png?width=624&amp;amp;height=448&amp;amp;face=0_0_624_448,https://scrap.kakaocdn.net/dn/b69yAF/hyZL9XMZhF/2aHWFIahPVK3EGlLVYO1eK/img.png?width=624&amp;amp;height=448&amp;amp;face=0_0_624_448&quot;&gt;&lt;a href=&quot;https://dsaint31.tistory.com/632&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dsaint31.tistory.com/632&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cMUgPc/hyZMiFBMYJ/lxDCKyrDkmG4UW42L13DMk/img.png?width=624&amp;amp;height=448&amp;amp;face=0_0_624_448,https://scrap.kakaocdn.net/dn/cCqHPd/hyZLnVFyiM/3lSJUUMoFahy9axNv7oBlK/img.png?width=624&amp;amp;height=448&amp;amp;face=0_0_624_448,https://scrap.kakaocdn.net/dn/b69yAF/hyZL9XMZhF/2aHWFIahPVK3EGlLVYO1eK/img.png?width=624&amp;amp;height=448&amp;amp;face=0_0_624_448');&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;[SS] Fourier Transform of Impulse Function (Dirac Delta)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Continuous Time Signal에서의 Impulse Function은 Dirac Delta Function $\delta(t)$임.이는 다음을 만족함.$$\delta(t)=\left\{ \begin{matrix} \infty &amp;amp;,t=0 \\ 0 &amp;amp;,t \ne 0 \end{matrix}\right. \\ \int^\infty_{-\infty} \delta(t)dt=1$$ 2022.08.29 - [...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dsaint31.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4-1. 비교&lt;/h4&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;height: 146px;&quot; data-ke-align=&quot;alignCenter&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;구분&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Lorentzian&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Delta (Impulse)&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;height: 18px;&quot; align=&quot;center&quot;&gt;식&lt;/td&gt;
&lt;td style=&quot;height: 18px;&quot; align=&quot;center&quot;&gt;$\frac{1}{\pi}\frac{\gamma}{x^2+\gamma^2}$&lt;/td&gt;
&lt;td style=&quot;height: 18px;&quot; align=&quot;center&quot;&gt;$\delta(x)$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;height: 18px;&quot; align=&quot;center&quot;&gt;파라미터&lt;/td&gt;
&lt;td style=&quot;height: 18px;&quot; align=&quot;center&quot;&gt;$\gamma&amp;gt;0$: 폭 조절&lt;/td&gt;
&lt;td style=&quot;height: 18px;&quot; align=&quot;center&quot;&gt;없음&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;height: 18px;&quot; align=&quot;center&quot;&gt;폭&lt;/td&gt;
&lt;td style=&quot;height: 18px;&quot; align=&quot;center&quot;&gt;$\propto \gamma$&lt;/td&gt;
&lt;td style=&quot;height: 18px;&quot; align=&quot;center&quot;&gt;0 (이상적 점)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;height: 18px;&quot; align=&quot;center&quot;&gt;면적&lt;/td&gt;
&lt;td style=&quot;height: 18px;&quot; align=&quot;center&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;height: 18px;&quot; align=&quot;center&quot;&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;height: 18px;&quot; align=&quot;center&quot;&gt;극한 관계&lt;/td&gt;
&lt;td style=&quot;height: 18px;&quot; align=&quot;center&quot;&gt;$\lim_{\gamma\to 0^+} L(x)=\delta(x)$&lt;/td&gt;
&lt;td style=&quot;height: 18px;&quot; align=&quot;center&quot;&gt;자기 자신 $&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 18px;&quot;&gt;
&lt;td style=&quot;height: 18px;&quot; align=&quot;center&quot;&gt;물리적 의미&lt;/td&gt;
&lt;td style=&quot;height: 18px;&quot; align=&quot;center&quot;&gt;공명곡선, 라인폭, 감쇠&lt;/td&gt;
&lt;td style=&quot;height: 18px;&quot; align=&quot;center&quot;&gt;순간적 자극, 단위 에너지&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h4 style=&quot;text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;4-2. gamma와 dirac delta&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$\gamma$가 작을수록 Lorentzian은 더 뾰족하고 &amp;delta;에 가까워짐&lt;/li&gt;
&lt;li&gt;$\gamma$가 크면 넓게 퍼진 스펙트럼 &amp;rarr; 감쇠가 강한 시스템&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$e^{-\gamma|t|} \overset{\mathcal{F}}{\longrightarrow} \frac{2\gamma}{\gamma^2+\omega^2}$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 시간 영역에서 감쇠가 강할수록 주파수 영역에서 스펙트럼이 넓어짐..&lt;/p&gt;</description>
      <category>.../Signals and Systems</category>
      <author>dsaint31x</author>
      <guid isPermaLink="true">https://dsaint31.tistory.com/941</guid>
      <comments>https://dsaint31.tistory.com/941#entry941comment</comments>
      <pubDate>Fri, 24 Oct 2025 14:44:05 +0900</pubDate>
    </item>
  </channel>
</rss>