<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>세상은 내가 정하는 대로</title>
    <link>https://asidefine.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Thu, 9 Jul 2026 16:42:01 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>땽뚕</managingEditor>
    <image>
      <title>세상은 내가 정하는 대로</title>
      <url>https://tistory1.daumcdn.net/tistory/4927288/attach/2bc4ddfc213247548d0017aee3702800</url>
      <link>https://asidefine.tistory.com</link>
    </image>
    <item>
      <title>[Multimodal/VLM]  A Survey of State of the Art Large Vision Language Models: Alignment, Benchmark, Evaluations and Challenges (25.01)</title>
      <link>https://asidefine.tistory.com/368</link>
      <description>&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR'; color: #333333; text-align: center;&quot;&gt;[Multimodal/VLM]&lt;/span&gt;&amp;nbsp;A Survey of State of the Art Large Vision Language Models:&amp;nbsp;&lt;br /&gt;Alignment,&amp;nbsp;Benchmark,&amp;nbsp;Evaluations&amp;nbsp;and&amp;nbsp;Challenges&amp;nbsp;(25.01)&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;&lt;b&gt;+) GPT 5의 Deep Research가 필요한 부분 보충해줌&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;http://arxiv.org/abs/2501.02189&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;http://arxiv.org/abs/2501.02189&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1754791766982&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;A Survey of State of the Art Large Vision Language Models: Alignment, Benchmark, Evaluations and Challenges&quot; data-og-description=&quot;Multimodal Vision Language Models (VLMs) have emerged as a transformative topic at the intersection of computer vision and natural language processing, enabling machines to perceive and reason about the world through both visual and textual modalities. For&quot; data-og-host=&quot;arxiv.org&quot; data-og-source-url=&quot;http://arxiv.org/abs/2501.02189&quot; data-og-url=&quot;https://arxiv.org/abs/2501.02189v6&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cfbN4E/hyZuwZJcmG/W2PVtbIPkju0srTQBBvsw1/img.png?width=1200&amp;amp;height=700&amp;amp;face=0_0_1200_700,https://scrap.kakaocdn.net/dn/biY41K/hyZvxqjFD8/r7hb4CZkbMkTTsGLTk1sj1/img.png?width=1000&amp;amp;height=1000&amp;amp;face=0_0_1000_1000&quot;&gt;&lt;a href=&quot;http://arxiv.org/abs/2501.02189&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;http://arxiv.org/abs/2501.02189&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cfbN4E/hyZuwZJcmG/W2PVtbIPkju0srTQBBvsw1/img.png?width=1200&amp;amp;height=700&amp;amp;face=0_0_1200_700,https://scrap.kakaocdn.net/dn/biY41K/hyZvxqjFD8/r7hb4CZkbMkTTsGLTk1sj1/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;A Survey of State of the Art Large Vision Language Models: Alignment, Benchmark, Evaluations and Challenges&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Multimodal Vision Language Models (VLMs) have emerged as a transformative topic at the intersection of computer vision and natural language processing, enabling machines to perceive and reason about the world through both visual and textual modalities. For&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;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;VLM 아키텍처의 진화&amp;nbsp;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1675&quot; data-origin-height=&quot;942&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UYqlm/btsPNaSIYj4/IhX9kasebqfln0PfwWtTZ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UYqlm/btsPNaSIYj4/IhX9kasebqfln0PfwWtTZ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UYqlm/btsPNaSIYj4/IhX9kasebqfln0PfwWtTZ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUYqlm%2FbtsPNaSIYj4%2FIhX9kasebqfln0PfwWtTZ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1675&quot; height=&quot;942&quot; data-origin-width=&quot;1675&quot; data-origin-height=&quot;942&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;1세대 : &quot;T&lt;span style=&quot;color: oklch(0.374 0.01 67.558); text-align: start;&quot;&gt;rain from scratch&lt;/span&gt;&quot;&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;CLIP이나 BLIP으로 대표되는 &quot;&lt;span style=&quot;color: oklch(0.374 0.01 67.558); text-align: start;&quot;&gt;train from scratch&lt;/span&gt;&quot;들은 vision encoder와 text encoder가 분리된 형태로 구성되어 있고,
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;+) 까마득한 먼 옛날에 정리한 BLIP (&lt;a href=&quot;https://asidefine.tistory.com/239&quot;&gt;https://asidefine.tistory.com/239&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;동일한 임베딩 공간에서의 alignment를 위해서 Contrastive Learning을 Objective로 사용한다&amp;nbsp;&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;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;2세대 : &quot;Use Pre-trained LLM as a Backbone&quot;&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;LLaVA나 Qwen-VL와 같은 최근 모델에서는 Pretrained LLM을 Backbone으로 사용하고 있음&lt;/li&gt;
&lt;li&gt;Visual Feature의 경우는 MLP로 구성된 Projection Layer를 거쳐서 LLM의 Embedding space와 Align된다&amp;nbsp;&lt;/li&gt;
&lt;li&gt;그래서 최근의 VLM의 구성요소는 :&amp;nbsp;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;1. Vision Encoder : 이미지를&amp;nbsp;벡터(토큰&amp;nbsp;시퀀스)로&amp;nbsp;변환
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;예:&amp;nbsp;CLIP&amp;nbsp;ViT,&amp;nbsp;EVA,&amp;nbsp;SigLIP,&amp;nbsp;Swin&amp;nbsp;Transformer&amp;nbsp;등&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2. Text Encoder/LLM&amp;nbsp;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;멀티모달 토큰을 받아 reasoning, captioning, QA 등을 수행&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;3. Cross Modality Alignment Mechanism&lt;/li&gt;
&lt;li&gt;4. Projection Layer (Adapter, Projector)&amp;nbsp;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;고차원 시각적 표현을 텍스트 모달리티와 호환되는 컴팩트한 임베딩 토큰으로 변환&lt;/li&gt;
&lt;li data-end=&quot;527&quot; data-start=&quot;485&quot;&gt;Vision encoder 출력과 LLM 입력 차원을 맞춰주는 변환기
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Vision encoder 출력과 LLM 입력 차원을 맞춰주는 변환기&amp;nbsp;&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;1) cross modal objective를 최적화하기 위해 모델의 나머지 부분과 공동으로 훈련되거나,&lt;/li&gt;
&lt;li&gt;2) 사전 훈련된 지식을 보존하기 위해 LLM과 같은 모델의 특정 부분을 고정할 수 있음
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;LLaVA, Qwen2-VL, ....&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;MultiModal 모델의 구분과 Fusion 방식&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;멀티모달 모델의 태생은 1) 본디 VLM으로 태어났는지, 아니면 2) 나중에 마개조 당했는지에 따라 나뉜다&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;color: #333333; text-align: start; border-collapse: collapse; width: 100%; height: 200px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-start=&quot;744&quot; data-end=&quot;1276&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;height: 17px; width: 13.1395%;&quot;&gt;&lt;b&gt;Native Multimodal&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 17px; width: 47.5581%;&quot;&gt;아키텍처&amp;nbsp;설계&amp;nbsp;초기부터&amp;nbsp;이미지&amp;middot;텍스트(그리고&amp;nbsp;일부는&amp;nbsp;오디오)&amp;nbsp;처리를&amp;nbsp;통합적으로&amp;nbsp;고려한&amp;nbsp;모델&lt;/td&gt;
&lt;td style=&quot;height: 17px; width: 39.3023%;&quot;&gt;LLaMA 4, Gemini, Qwen2.5-Omni&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 183px;&quot;&gt;
&lt;td style=&quot;height: 183px; width: 13.1395%;&quot; data-start=&quot;816&quot; data-end=&quot;830&quot; data-col-size=&quot;sm&quot;&gt;&lt;b&gt;Bolt-on&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 183px; width: 47.5581%;&quot; data-col-size=&quot;md&quot; data-start=&quot;830&quot; data-end=&quot;885&quot;&gt;원래&amp;nbsp;텍스트&amp;nbsp;전용&amp;nbsp;LLM에&amp;nbsp;Vision&amp;nbsp;Encoder&amp;nbsp;+&amp;nbsp;Projection&amp;nbsp;Layer를&amp;nbsp;덧붙여&amp;nbsp;멀티모달&amp;nbsp;기능&amp;nbsp;추가&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;
&lt;td style=&quot;height: 183px; width: 39.3023%;&quot; data-col-size=&quot;sm&quot; data-start=&quot;927&quot; data-end=&quot;957&quot;&gt;LLaVA, MiniGPT-4, BLIP-2, Qwen2.5-VL, DeepSeek-VL v2, Kimi-VL, GPT-4(Vision)&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;b&gt;이미지와 텍스트를 어떻게 합치느냐&lt;/b&gt;임&lt;/p&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;1276&quot; data-start=&quot;744&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;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Dual Encoder &lt;/b&gt;&lt;/td&gt;
&lt;td&gt;이미지와 텍스트 인코더가 독립적으로 작동함(초기 상호작용 없음). &lt;br /&gt;&lt;br /&gt;각각이 공유 공간에서 임베딩을 생성하고, 모델은 이미지와 텍스트 임베딩 간의 유사성을 측정하는 방법을 학습함. 이는 대조 목표를 통해 이미지와 캡션 임베딩을 정렬하도록 훈련된 CLIP과 같은 모델에서 사용됨.&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;세밀한&amp;nbsp;cross-modal&amp;nbsp;reasoning&amp;nbsp;어려움&lt;/td&gt;
&lt;td&gt;CLIP, BLIP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Bolt-on&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;Vision&amp;nbsp;Encoder&amp;nbsp;출력&amp;nbsp;&amp;rarr;&amp;nbsp;Projection&amp;nbsp;Layer&amp;nbsp;&amp;rarr;&amp;nbsp;LLM&amp;nbsp;입력으로&amp;nbsp;삽입&amp;nbsp;(이미지&amp;nbsp;토큰을&amp;nbsp;LLM&amp;nbsp;토큰&amp;nbsp;시퀀스에&amp;nbsp;추가)&lt;/td&gt;
&lt;td&gt;기존&amp;nbsp;LLM&amp;nbsp;재사용,&amp;nbsp;구현&amp;nbsp;용이&lt;/td&gt;
&lt;td&gt;모달리티&amp;nbsp;간&amp;nbsp;깊은&amp;nbsp;상호작용&amp;nbsp;부족&lt;/td&gt;
&lt;td&gt;BLIP-2,&amp;nbsp;LLaVA-1.5,&amp;nbsp;Qwen2.5-VL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1081&quot; data-start=&quot;958&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;977&quot; data-start=&quot;958&quot;&gt;&lt;b&gt;Early Fusion&lt;/b&gt;&lt;/td&gt;
&lt;td data-end=&quot;1022&quot; data-start=&quot;977&quot; data-col-size=&quot;md&quot;&gt;Vision + Language를 transformer 레벨에서 초기에 통합&lt;br /&gt;&lt;br /&gt;예를 들어, 텍스트 토큰과 이미지 패치가 연결되어 둘 다에 대해 어텐션을 적용하&lt;br /&gt;는 단일 트랜스포머에 입력될 수 있음. &lt;br /&gt;&lt;br /&gt;이러한 초기 융합은 양식 간의 풍부한 상호작용을 허용함(텍스트가 특정 이미지 영역에 주의를 기울일 수 있음 등). 이는 세부적인 추론과 생성에 유용함. &lt;br /&gt;&lt;br /&gt;하지만 처음부터 통합된 다중모달 트랜스포머를 훈련하는 것은 복잡하고 자원 집약적임.&lt;/td&gt;
&lt;td data-end=&quot;1045&quot; data-start=&quot;1022&quot; data-col-size=&quot;sm&quot;&gt;깊은 cross-modal 학습 가능&lt;/td&gt;
&lt;td data-end=&quot;1059&quot; data-start=&quot;1045&quot; data-col-size=&quot;sm&quot;&gt;학습/데이터 비용 큼&lt;/td&gt;
&lt;td data-end=&quot;1081&quot; data-start=&quot;1059&quot; data-col-size=&quot;sm&quot;&gt;Kosmos-2, Flamingo, Gemma3,&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1276&quot; data-start=&quot;1162&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;1192&quot; data-start=&quot;1162&quot;&gt;&lt;b&gt;Unified Encoder-Decoder&lt;/b&gt;&lt;/td&gt;
&lt;td data-end=&quot;1219&quot; data-start=&quot;1192&quot; data-col-size=&quot;md&quot;&gt;모든 모달리티를 같은 토크나이저&amp;middot;모델로 처리&lt;/td&gt;
&lt;td data-end=&quot;1233&quot; data-start=&quot;1219&quot; data-col-size=&quot;sm&quot;&gt;궁극적인 통합 가능성&lt;/td&gt;
&lt;td data-end=&quot;1248&quot; data-start=&quot;1233&quot; data-col-size=&quot;sm&quot;&gt;토크나이징 설계 난이도&lt;/td&gt;
&lt;td data-end=&quot;1276&quot; data-start=&quot;1248&quot; data-col-size=&quot;sm&quot;&gt;Qwen2.5-Omni, Gemini 1.5&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;Objectives&lt;/blockquote&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. 이미지-텍스트 대조(ITC) 학습&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;해당하는 이미지와 텍스트를 공유 임베딩 공간에서 가깝게 배치&lt;/li&gt;
&lt;li&gt;일치하지 않는 쌍은 멀어지게 만드는 훈련&lt;/li&gt;
&lt;li&gt;InfoNCE 대조 손실 주로 사용&lt;/li&gt;
&lt;li&gt;예시: CLIP - 올바른 이미지-캡션 쌍 유사성 최대화, 잘못된 쌍 최소화&lt;/li&gt;
&lt;li&gt;결과: 제로샷 인식 가능한 모델 생성&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. 이미지-텍스트 매칭(ITM)&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이진 분류 작업 (일치 vs 불일치)&lt;/li&gt;
&lt;li&gt;캡션이 이미지를 올바르게 설명하는지 예측&lt;/li&gt;
&lt;li&gt;ALBEF, BLIP 등에서 활용&lt;/li&gt;
&lt;li&gt;세밀한 정렬 학습에 도움&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3. 마스크된 언어/이미지 모델링&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;마스크된 언어 모델링(MLM)&lt;/b&gt;: 이미지 보고 마스크된 단어 예측&lt;/li&gt;
&lt;li&gt;&lt;b&gt;마스크된 이미지 모델링(MIM)&lt;/b&gt;: 텍스트로 마스크된 이미지 패치 예측&lt;/li&gt;
&lt;li&gt;예시: FLAVA - MLM, MIM, 다중모달 마스킹 조합 사용&lt;/li&gt;
&lt;li&gt;이미지와 텍스트 공동 이해 개발&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4. 이미지 캡셔닝 사전 훈련&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이미지가 주어졌을 때 텍스트 설명 생성 훈련&lt;/li&gt;
&lt;li&gt;조건부 언어 모델로 취급&lt;/li&gt;
&lt;li&gt;예시: SimVLM, CoCa, BLIP&lt;/li&gt;
&lt;li&gt;BLIP의 2단계 접근: Captioner + 필터 &amp;rarr; 자체 데이터 부트스트랩&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5. 지시 조정(다중모달)&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이미지 + 사용자 쿼리 &amp;rarr; 답변 형태로 훈련&lt;/li&gt;
&lt;li&gt;상호작용적이고 도움이 되는 VLM 제작&lt;/li&gt;
&lt;li&gt;예시: LLaVA - GPT-4 생성 158K QA 쌍 활용&lt;/li&gt;
&lt;li&gt;인간 주석 또는 강한 모델에서 증류&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;6. 감독된 미세 조정(SFT)&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;특정 다운스트림 작업에 대한 기존 미세 조정&lt;/li&gt;
&lt;li&gt;예시: VQAv2 데이터셋에서 미세 조정&lt;/li&gt;
&lt;li&gt;장점: 특정 애플리케이션 적응&lt;/li&gt;
&lt;li&gt;단점: 모델을 좁게 만들거나 제로샷 능력 손실 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;7. 인간 피드백 정렬 - RLHF와 DPO&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;RLHF&lt;/b&gt;: 인간 피드백으로 강화 학습, PPO 알고리즘 사용&lt;/li&gt;
&lt;li&gt;&lt;b&gt;DPO&lt;/b&gt;: 직접 선호 최적화, 더 안정적 접근법&lt;/li&gt;
&lt;li&gt;바람직하지 않은 행동 줄이기&lt;/li&gt;
&lt;li&gt;예시: IDEFICS, Moonshot Kimi-VL&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;8. 다중작업 학습&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;여러 목표나 작업 동시 훈련&lt;/li&gt;
&lt;li&gt;가중 손실 합 최소화&lt;/li&gt;
&lt;li&gt;예시: OFA - 캡셔닝, VQA, 시각적 그라운딩, 이미지 생성 통합&lt;/li&gt;
&lt;li&gt;더 다재다능한 모델 생성&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;주요 손실 함수&lt;/h2&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;대조 손실&lt;/b&gt;: ITC용 (InfoNCE 손실)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;이진 교차 엔트로피&lt;/b&gt;: ITM 분류용&lt;/li&gt;
&lt;li&gt;&lt;b&gt;교차 엔트로피&lt;/b&gt;: 캡션 생성, 마스크된 토큰 예측용&lt;/li&gt;
&lt;li&gt;&lt;b&gt;강화 학습 손실&lt;/b&gt;: RLHF/DPO 정렬용&lt;/li&gt;
&lt;/ul&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;예시: ALBEF - 3가지 손실 조합
&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;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;VLM 아키텍처와 기술의 이정표&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비전-언어 모델은 최근 몇 년간 빠르게 발전했음. 여기서는 초기 시스템부터 최신 최첨단 모델까지 대표적인 모델들의 발전 과정을 개략적으로 설명하고 그들의 혁신을 강조함:&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1.&amp;nbsp; 초기 교차 모달 모델들 (2021년 이전): VisualBERT, ViLBERT 등&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;거대한 다중모달 모델의 시대 이전에, 연구자들은 2010년대 말에 텍스트 모델을 이미지를 처리하도록 확장하기 시작했음. VisualBERT(2019)는 영역 기반 시각적 특징(CNN 탐지기에서)을 BERT 모델에 삽입하고 마스크된 언어와 이미지-텍스트 매칭 손실로 훈련했음. 본질적으로 탐지된 이미지 영역을 문장의 추가 &quot;단어&quot;로 취급했음. ViLBERT(2019)와 LXMERT(2019)는 공동 어텐션 레이어를 통해 상호작용하는 별도의 비전과 텍스트 트랜스포머를 가진 투-스트림 접근법을 취했고, 관계 학습을 가능하게 했음(텍스트의 언급에 해당하는 객체처럼). 이러한 모델들은 비교적 작은 데이터(COCO, Visual Genome 등)에서 VQA와 캡셔닝에 적용되어 괜찮은 성공을 거두었지만, BERT 크기 아키텍처의 용량과 사전 계산된 영역 특징의 필요성으로 제한되었음.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 대조 학습 혁명: CLIP과 Align (2021)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;분수령이 된 순간은 OpenAI의 CLIP(2021)와 함께 왔음. CLIP는 웹에서 수집한 4억 개의 이미지-캡션 쌍을 사용하고 듀얼-인코더(이미지용 ViT, 텍스트용 트랜스포머)를 훈련하여 어떤 캡션이 어떤 이미지와 맞는지 예측했음(대조 손실). 결과는 뛰어난 제로샷 능력을 가진 모델이었음: 미세 조정 없이도, CLIP는 단순히 이미지를 각 클래스의 텍스트 라벨과 비교하여 이미지를 분류할 수 있었고, 종종 ImageNet에서 전통적인 감독 모델과 일치하거나 능가했음. CLIP는 효과적으로 이미지와 텍스트를 위한 풍부한 공유 의미 공간을 학습했음. 그 성공은 규모(4억 개의 노이즈가 많은 데이터)와 대조 학습의 힘을 보여줬음. 비슷한 시기에, Google의 ALIGN과 LiT가 유사한 접근법을 따랐음(ALIGN은 더 큰 데이터셋인 수십억 쌍을 사용). 하지만 이러한 모델들은 생성적이지 않았음 &amp;ndash; 새로운 캡션을 생성할 수 없고, 임베딩하고 비교만 할 수 있었음. 하지만 많은 후속 VLM의 기초가 되었음(종종 비전 인코더 구성 요소로서). CLIP의 영향은 엄청남: 많은 후속 모델들이 CLIP(또는 그 변형들)를 사전 훈련된 비전 백본으로 사용함. 예를 들어, LLaVA(2023)는 단순히 CLIP의 비전 인코더를 가져와 언어 모델에 연결했고, CLIP의 견고한 시각적 이해에 의존했음. 또한, CLIP의 데이터셋(또는 LAION 같은 그 파생물들)이 새로운 모델들을 훈련하는 기반이 되었음.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 다중모달 융합 모델들: ALBEF, SimVLM, OFA, FLAVA (2021&amp;ndash;2022)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;연구자들은 곧 검색 중심 모델을 넘어 이미지에 대한 언어를 이해하고 생성하는 모델들로 이동했음. ALBEF(ICCV 2021)는 그러한 모델 중 하나였고, 이미지와 텍스트 인코더 위에 다중모달 트랜스포머를 도입했음. ALBEF는 대조적 정렬(CLIP처럼)과 융합 인코딩의 조합을 사용했음: 먼저 전역 임베딩을 정렬한 다음, 교차 어텐션을 통해 토큰 수준 특징을 융합했음. 그렇게 함으로써, ALBEF는 검색을 처리할 수 있고 또한 VQA나 캡셔닝에 적합한 표현을 생성할 수 있었음. &quot;융합 전 정렬&quot;의 가치를 보여줬음 &amp;ndash; 대조 손실을 사용하여 양식들이 대략 정렬되도록 보장한 다음, 더 깊은 융합으로 정제함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;BLIP(2022)는 훈련 데이터를 부트스트랩하여 이 아이디어를 개선했음. BLIP는 이미지에 대한 합성 캡션을 생성하는 캡셔닝 모델과 나쁜 (이미지, 캡션) 쌍을 필터링하는 필터링 모델을 훈련했음. 이를 통해 원래 캡션을 넘어 더 넓은 범위의 웹 이미지를 활용할 수 있었음. BLIP의 아키텍처는 이미지 인코더, 텍스트 인코더, 그리고 텍스트 디코더를 포함하여 하나의 프레임워크에서 이해와 생성 작업을 모두 가능하게 했음. VQA, 캡셔닝을 위해 미세 조정될 수 있었고 또는 캡션을 직접 생성하는 데 사용될 수도 있었음. BLIP는 이 다중작업 사전 훈련(ITC, ITM, MLM, 캡셔닝 모두 하나에서) 때문에 작업들에서 강한 성능을 보여줬음. 그 후속 버전인 BLIP-2(2023)는 다른 방향을 택했음(곧 논의됨).&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;OFA(One-for-All, 2022)는 Microsoft에서 나온 것으로 많은 작업(이미지 캡셔닝, VQA, 시각적 그라운딩, 심지어 텍스트 전용 작업)을 단일 시퀀스-투-시퀀스 트랜스포머로 통합했음. 모든 작업을 다중모달 입력의 시퀀스를 입력받아 시퀀스 출력을 생성하도록 훈련하는 것으로 취급했음. 아키텍처를 통합하고 다양한 작업에서 훈련함으로써, OFA는 여러 벤치마크에서 동시에 최첨단을 달성했음. 이 범용 다중작업 다중모달 모델의 개념은 후의 &quot;Omni-모델&quot; 아이디어의 전조였음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또 다른 주목할 만한 2022년 모델은 Flamingo(DeepMind, 2022)였음 &amp;ndash; CNN 인코더에서 시각적 토큰을 수집하는 교차 어텐션 레이어가 삽입된 LLM(Chinchilla 기반). Flamingo의 설계는 이미지와 텍스트 쌍의 시퀀스를 받아 텍스트 생성을 계속할 수 있게 하여 다중모달 작업에서 퓨샷 학습을 가능하게 했음. 핵심은 이미지 특징을 언어 모델의 여러 지점에서 공급될 수 있는 작은 토큰 세트로 줄이는 Perceiver Resampler였음. 대용량의 이미지/비디오와 텍스트 말뭉치(YT 클립과 대본 등)에서 훈련된 Flamingo는 강한 퓨샷 VQA와 캡셔닝을 보여줬음 &amp;ndash; 맥락에서 몇 가지 예시를 주면 기울기 업데이트 없이 새로운 이미지에서 잘 수행할 수 있었음. Flamingo는 오픈소스되지 않았지만, 그 아이디어는 OpenFlamingo 같은 오픈 프로젝트에 영향을 주었고, 퓨샷 다중모달 학습을 위해 사전 훈련된 LLM과 학습된 시각적 인터페이스를 결합하는 효과를 보여줬음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SimVLM(2021)도 빠른 언급을 받을 만함: 생성적 비전-언어 모델을 스케일링하는 초기 예시였음. 이미지-캡션 쌍을 이미지를 구분하는 특별한 토큰이 있는 &quot;긴 문장&quot;으로 취급하고, 캡션을 예측하도록 트랜스포머를 훈련했음(언어 모델링). 단순했지만, 스케일되고(18억 매개변수) 18억 이미지-텍스트 쌍에서 훈련됐을 때, 캡셔닝에서 SOTA를 달성하고 VQA에서 경쟁력 있는 결과를 얻었음. SimVLM의 단순함(왼쪽에서 오른쪽으로의 디코더만)은 Google의 PaLI 시리즈 같은 후의 생성적 접근법에 영향을 주었음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;FLAVA(2022)는 진정한 다중모달 기초 모델이 되려고 시도한 연구 모델이었음 &amp;ndash; 별도의 이미지와 텍스트 인코더와 다중모달 인코더를 가지고 있었고, 단일모달과 다중모달 데이터 모두에서 손실의 칵테일(ITC, ITM, 마스크된 이미지, 마스크된 텍스트)로 훈련되었음. FLAVA는 이미지 전용 작업과 이미지+텍스트 작업 모두에서 좋은 성능을 내는 것을 목표로 했음. 규모는 적당했지만, 순수 비전, 순수 언어, 그리고 비전-언어 작업에서 괜찮은 단일 모델의 가능성을 보여줬음 &amp;ndash; 어떤 양식이든 소비하는 &quot;잡식성&quot; 모델을 향한 아이디어.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. 대규모 언어 모델로의 연결: BLIP-2, MiniGPT-4, LLaVA (2023)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2023년은 고정된 LLM과 비전을 연결하는 접근법의 급증을 보았고, GPT-3, OPT, 또는 LLaMA 같은 모델의 놀라운 언어 능력을 활용했음. 일반적인 레시피는: LLM을 그대로 유지하고(지식과 언어적 유창함을 보존하기 위해), 시각적 정보를 그것에 공급하는 경량 모듈을 훈련하는 것이었음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주요 예시는 BLIP-2(2023)임. BLIP-2는 비전 인코더와 LLM 사이에 위치하는 작은 Querying 트랜스포머(Q-Former)를 도입했음. Q-Former는 이미지 인코더의 출력(예: ViT 특징)에 어텐션하는 학습 가능한 쿼리 벡터 세트를 가진 트랜스포머임. 이미지-텍스트 쌍에 대한 훈련을 통해, 이러한 쿼리들은 이미지에서 가장 현저한 정보를 추출하는 방법을 학습함. 결과적인 쿼리 임베딩은 선형적으로 LLM의 토큰 임베딩 공간으로 투영되고 고정된 LLM(OPT나 Flan-T5 같은)에 공급됨. 본질적으로, BLIP-2는 &quot;통역사&quot; 역할을 함: 시각적 콘텐츠를 LLM이 이해할 수 있는 언어 친화적 임베딩으로 번역함. 이를 통해 BLIP-2는 처음부터 대규모 모델을 공동 훈련해야 하는 필요 없이 LLM의 장점(예: 상식, 유창한 생성)을 활용할 수 있었음. BLIP-2는 전체 다중모달 훈련이 필요로 하는 것보다 훨씬 적은 계산을 사용하면서 캡셔닝과 심지어 일부 추론 작업에서 강한 결과를 달성했음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 패러다임을 따라, 많은 &quot;GPT-4 비전 대안&quot;들이 오픈소스 커뮤니티에서 등장했음:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;LLaVA(2023년 4월)&lt;/b&gt;: LLaVA(Large Language and Vision Assistant)는 CLIP ViT-L 인코더(고정)와 LLaMA-7B 언어 모델을 가져와서, 1024-D 이미지 특징을 4096-D 언어 모델 임베딩 공간으로 매핑하는 간단한 선형 레이어를 추가했음. 이 최소한의 통합 후에, LLaVA는 이미지에 대한 생성된 QA 쌍에서 미세 조정되었음. 결과는 인상적이었음 &amp;ndash; 비교적 적은 데이터로 그리고 처음부터 새로운 기초를 훈련하지 않고 만들어진 괜찮은 다중모달 채팅 모델. LLaVA는 기본적으로 &quot;최소한의 접착제&quot;의 효과를 보여줬음: 선형 투영이 CLIP와 LLaMA를 작동하는 VQA 모델로 결합하기에 충분했음. 그 오픈 릴리스는 많은 파생물을 촉발했음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;MiniGPT-4(2023)&lt;/b&gt;: 이름에도 불구하고, 이것은 실제로 GPT-4가 아니라 Vicuna 개성을 가진 7B LLaMA 모델이었음. CLIP ViT-L과 쌍을 이루고 단지 ~1-2백만 매개변수의 투영 레이어 하나만 있었음. MiniGPT-4도 두 구성 요소를 고정하고 약 500만 이미지-텍스트 쌍에서 그 단일 선형 레이어를 훈련한 다음, 작은 고품질 이미지 설명 세트에서 2단계 조정을 수행했음. 이 작은 적응으로, MiniGPT-4는 놀랍도록 고급스러운 이미지 설명을 생성할 수 있었음(예: 밈 설명). 하지만 더 복잡한 추론이나 세부적인 계산에서는 어려움을 겪었고, 더 큰 규모의 다중모달 훈련 없는 제로샷 전이의 한계를 나타냈음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;PaLM-E(2023)&lt;/b&gt;: Google의 PaLM-E는 LLM-비전 통합에 다른 경로를 택했음. 대규모 사전 훈련된 언어 모델(PaLM)을 센서 임베딩(이미지, 로봇 등에서)을 텍스트 입력 시퀀스에 앞에 붙여 확장했음. PaLM-E는 로봇 센서 데이터와 이미지에서 훈련된 점이 주목할 만하며, 언어 모델은 대부분 고정되어 있었음. &quot;E&quot;는 체화(embodied)를 의미함. 적절한 인터페이스가 주어진다면 LLM이 여러 양식에 대한 일반적인 추론 엔진 역할을 할 수 있음을 보여줬음. PaLM-E는 언어를 통해 로봇 작업을 수행할 수 있었고, 단지 시각적 관찰을 프롬프트에 공급하는 것만으로. 이것은 다시 거대한 LLM이 비교적 작은 다중모달 미세 조정이 유용한 비전 기술을 부여할 수 있을 만큼 강력한 추론 사전을 가지고 있다는 것을 강화함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Flamingo와 OpenFlamingo (재방문)&lt;/b&gt;: Flamingo의 LLM 중간 레이어에 시각적 정보를 인터리빙하는 접근법도 &quot;볼트-온&quot; 방법으로 간주될 수 있음(단일 투영보다는 더 얽혀있지만). OpenFlamingo(LLaMA를 사용한 오픈 구현)가 이를 재현하려고 시도했음. 더 간단한 선형 레이어만큼 널리 성공적이지는 않았지만, 이러한 접근법들은 이미지가 여러 지점에서 텍스트와 맥락에서 처리될 수 있게 하여 잠재적으로 더 나은 세밀한 그라운딩으로 이어질 수 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;요약하면, 2023년의 트렌드는 모두 기존 LLM을 활용하는 것이었음. 처음부터 100억 매개변수 다중모달 모델을 훈련하는 것(극도로 비싸니까) 대신, 이미 똑똑한 10B 언어 모델을 사용하고 그것에게 보는 방법만 가르치면 어떨까? 이것은 BLIP-2, LLaVA, MiniGPT-4뿐만 아니라 유사한 청사진을 따르는 수많은 다른 모델들(종종 기발한 이름들을 가진)의 등장을 가져왔음(예: Otter, PandaGPT, X-LLM&amp;hellip; 목록이 매주 늘어남). 이들은 어떤 비전 인코더(CLIP vs. 다른 것들), 어떤 LLM(LLaMA vs. Falcon 등), 그리고 연결이 어떻게 만들어지는지(선형 vs. 작은 트랜스포머 vs. 어댑터 모듈)의 세부사항에서 다르지만, 일반적인 철학은 공유됨.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;5. 일반주의 다중모달 모델을 향해: 최신 오픈소스 VLM들 (2023년 말&amp;ndash;2024년)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오픈소스 커뮤니티와 산업 연구소들은 VLM 능력을 최첨단에 가깝게 밀어붙이기 위해 빠르게 반복하고 있음. 최근 모델들과 그들을 차별화하는 것들을 강조해보자:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Qwen-VL(2023)&lt;/b&gt;: Qwen-VL은 Alibaba의 Qwen LLM(7B/14B 매개변수 모델)의 비전-언어 버전임. Qwen-VL과 그 채팅 변형인 Qwen-VL-Chat은 캡셔닝, VQA, 심지어 대화와 같은 작업에서의 강한 성능으로 주목받았음. 기술적으로, Qwen-VL은 이미지 인코더로 비전 트랜스포머를 사용하고 텍스트용으로 Qwen 언어 모델을 사용함; 아마도 인터리빙 접근법이나 게이트된 교차 어텐션을 사용할 것임(논문의 세부사항은 비전 인코더가 부분적으로 훈련됨을 시사). 몇 가지 두드러진 특징: 다국어 이미지-텍스트 데이터(주로 영어와 중국어)에서 훈련되어 여러 언어로 응답할 수 있음. 또한 여러 이미지를 동시에 처리할 수 있음 &amp;ndash; 훈련 중에 관련 맥락과 함께 여러 이미지가 주어져 모델이 이미지들을 비교하거나 추론할 수 있게 함. 더욱이, 많은 전임자들보다 높은 해상도 이미지를 받아들여 더 나은 세밀한 인식을 제공함. 이 모든 것이 2023년 말 오픈 모델들 중 최첨단 결과를 가져왔고, Qwen-VL은 종종 그 크기에 대해 MME와 MMBench 같은 벤치마크에서 정상을 차지했음. 본질적으로 많은 평가 스위트에서 GPT-4V 성능의 ~70-80%에 도달하는 오픈 7B 모델이 보여줘서 GPT-4와의 격차를 좁혔음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;LLaVA-1.5(2023년 10월)&lt;/b&gt;: 이것은 개선된 LLaVA임. 팀은 이미지 인코더를 CLIP ViT-L/336(더 높은 해상도 능력)으로 업그레이드하고 간단한 선형 투영을 약간 더 깊은 MLP 투영으로 교체했음. 이러한 겉보기에 사소한 변화들이 성능을 눈에 띄게 향상시켰는데, 모델이 더 많은 시각적 세부사항을 활용하고 언어 공간으로의 더 나은 매핑을 할 수 있었기 때문임. LLaVA-1.5는 또한 2단계에서 학술 VQA 데이터셋(VQAv2, ScienceQA 등)에 대한 추가 훈련을 포함했음. 결과는 벤치마크 점수의 큰 개선이었음 &amp;ndash; 저자들은 LLaVA-1.5가 그 크기의 오픈 모델에 대해 ~11개의 다중모달 벤치마크에서 새로운 최첨단을 달성하여 원래 LLaVA를 크게 능가한다고 보고함. 본질적으로, 비전을 언어에 연결하는 &quot;볼트&quot;(투영)를 미세 조정하고 더 많은 감독 데이터를 추가함으로써, 모델 크기를 증가시키지 않고도 성능 경계를 밀어붙였음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;LLaVA-OneVision(2024년 8월)&lt;/b&gt;: 이것은 많은 비전 작업을 위한 단일 모델이 목표였던 흥미로운 개발임. LLaVA-OneVision(LLaVA 팀에서)은 &quot;단일 이미지, 다중 이미지, 비디오라는 세 가지 시나리오에서 동시에 오픈 모델의 성능을 밀어붙이는 첫 번째 단일 모델&quot;로 설명됨. 즉, 하나의 모델이 표준 이미지 Q&amp;amp;A, 다중 이미지 추론(예: 두 이미지 비교), 그리고 심지어 비디오 이해를 처리할 수 있음. 비전 작업 전이라는 아이디어를 활용함: 이미지에서 훈련한 다음 비디오 프레임을 여러 이미지처럼 취급하여 비디오에서 강한 제로샷 결과를 보여줌. 내부적으로, LLaVA-OneVision은 더 강한 비전 인코더(Google의 고성능 ViT인 SigLIP)를 사용하고 신중히 통합된 훈련 데이터(&quot;LLaVA-NeXT&quot; 시리즈)와 함께 Qwen-7B 언어 모델을 기반으로 함(프로젝트 페이지에 따르면). 교차 모달 전이를 보여줌: 이미지에서 학습한 지식이 명시적인 비디오 훈련 없이도 모델이 비디오에서 잘 수행하도록 도왔는데, 이는 놀라운 능력임. LLaVA-OneVision은 본질적으로 별도의 전문화된 모델을 갖는 것보다는 하나의 네트워크에서 비전 작업(그리고 심지어 양식들)을 통합하는 방향으로의 한 걸음을 표시함.&lt;/p&gt;
&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;PaLI와 PaLI-X/Gemini, 그리고 PaLI-Gemma2(2023&amp;ndash;24)&lt;/b&gt;: Google은 다중모달 모델에서도 활발히 활동하고 있음. PaLI(2022)는 100개 이상의 언어에서 100억 개의 이미지-텍스트 쌍에서 훈련된 대규모 다국어 비전-언어 모델(최대 17B 매개변수)이었음. 인코더-디코더 아키텍처(비전 인코더, 텍스트 디코더)를 사용했고 비영어를 포함한 많은 캡셔닝과 VQA 벤치마크에서 최첨단을 달성했음. 그 후속인 PaLI-X는 더욱 확장됨(~80B 매개변수 사용 보고). 하지만 이들은 주로 연구 모델이었고, 릴리스되지 않았음. 2023년에, Google은 Gemini(곧 출시될 다중모달 모델)를 발표했고 준비 과정에서 Gemma를 릴리스했음 &amp;ndash; 같은 기술로 구축된 더 작은 오픈소스 모델 패밀리. Gemma 2와 Gemma 3는 텍스트 전용 언어 모델(2B, 6B, 12B 등의 크기)로 효율적이고 비전으로 확장 가능하도록 의도됨. PaliGemma 2(2024년 12월)는 SigLIP 비전 인코더(CLIP와 유사)와 Gemma 2 언어 모델을 결합한 오픈 VLM임. 3B, 10B, 28B 매개변수 변형으로 제공되며 다국어 이미지-텍스트 데이터 혼합(WebLI 등)에서 훈련됨. 아키텍처는 이미지 인코더의 출력이 텍스트 디코더(Gemma)에 공급되는 인코더-디코더로, PaLI와 매우 유사하지만 축소된 버전임. &quot;경량&quot;임에도 불구하고, PaliGemma 2 모델들은 고품질이고 유연함 &amp;ndash; 여러 이미지 해상도를 지원하고 캡셔닝이나 VQA 같은 작업을 위해 쉽게 미세 조정될 수 있음. Google은 심지어 뛰어난 세부 캡셔닝 능력을 보여주는 미세 조정된 모델들의 예시(긴 이미지 설명 데이터셋인 DOCCI에서)도 제공했음. 본질적으로, PaliGemma 2는 허용적인 라이선싱과 함께 커뮤니티를 위한 PaLI 같은 모델을 민주화하려는 Google의 시도임. 한편, Gemma 3(2025)는 비전을 더 네이티브하게 통합할 것으로 예상됨(Google 블로그는 Gemma 3가 기본 모델 자체에 비전-언어 지원을 포함하여 다중모달 작업을 위해 더 &quot;자원 친화적&quot;으로 만든다고 암시). Gemma 3의 세부사항이 아직 나오고 있지만, 통합된 다중모달 기본 모델의 산업 트렌드와 일치함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;DeepSeek-VL과 DeepSeek-VL2(2024)&lt;/b&gt;: DeepSeek는 &quot;실제 세계 비전-언어 이해&quot;에 초점을 맞춘 또 다른 오픈 이니셔티브임. 첫 번째 DeepSeek-VL(2024년 3월)과 그 후속인&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt; DeepSeek-VL2는 대규모로 전문가 혼합을 채택했음.&lt;/b&gt;&lt;/span&gt; 실제로, DeepSeek-VL2는 특히 상당한 성능 향상을 달성하기 위해 MoE 트랜스포머를 사용함 &amp;ndash; Kimi-VL과 정신적으로 유사하지만 아마도 다른 세부사항들과 함께(DeepSeek는 또한 RLHF를 위한 GRPO와 같은 일부 새로운 정렬 기술을 개척한 것으로도 알려져 있음). 이러한 모델들은 OCR, 세부 Q&amp;amp;A 등과 같은 실용적인 작업에서 강한 성능을 강조하고, VLM을 효율적으로 확장하는 유망한 경로로서 MoE를 강조함. DeepSeek의 최신 &quot;R1&quot; 대규모 언어 모델과 VL 모델들은 추론 벤치마크에서 최고 폐쇄 모델들과 경쟁적이라고 언급되어, 오픈 연구가 따라잡고 있음을 강조함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;6. 2025년&lt;/h4&gt;
&lt;h3 data-end=&quot;197&quot; data-start=&quot;154&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. Gemma 3&lt;/b&gt; &amp;ndash; Google DeepMind (2025)&lt;/h3&gt;
&lt;p data-end=&quot;212&quot; data-start=&quot;198&quot; 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-end=&quot;570&quot; data-start=&quot;213&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;277&quot; data-start=&quot;213&quot;&gt;&lt;b&gt;멀티모달 통합&lt;/b&gt;: Gemma 시리즈 최초 이미지 입력 지원 (SigLIP Vision Encoder 탑재)&lt;/li&gt;
&lt;li data-end=&quot;345&quot; data-start=&quot;278&quot;&gt;&lt;b&gt;Pan&amp;amp;Scan 알고리즘&lt;/b&gt;: 고해상도 이미지(비정형 크기) &amp;rarr; 896&amp;times;896로 잘라 처리, 세부 정보 이해 강화&lt;/li&gt;
&lt;li data-end=&quot;407&quot; data-start=&quot;346&quot;&gt;&lt;b&gt;MultiModal Projector&lt;/b&gt;: 이미지 &amp;rarr; 256개의 소프트 토큰으로 압축, 추론 속도 향상&lt;/li&gt;
&lt;li data-end=&quot;465&quot; data-start=&quot;408&quot;&gt;&lt;b&gt;Local-Global Attention (5:1)&lt;/b&gt;: 장문 입력(128K 토큰) 메모리 절감&lt;/li&gt;
&lt;li data-end=&quot;510&quot; data-start=&quot;466&quot;&gt;&lt;b&gt;QK-Norm&lt;/b&gt;: 기존 soft-capping 대체, 정확도+속도 개선&lt;/li&gt;
&lt;li data-end=&quot;570&quot; data-start=&quot;511&quot;&gt;&lt;b&gt;다국어 성능 향상&lt;/b&gt;: Gemini와 동일한 26만 어휘 토크나이저, 병렬&amp;middot;다국어 데이터 비중 확대&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;586&quot; data-start=&quot;572&quot; 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-end=&quot;776&quot; data-start=&quot;587&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;608&quot; data-start=&quot;587&quot;&gt;&lt;b&gt;Bolt-on&lt;/b&gt; 후기 융합&lt;/li&gt;
&lt;li data-end=&quot;661&quot; data-start=&quot;609&quot;&gt;SigLIP ViT &amp;rarr; 4096 패치 토큰 생성 &amp;rarr; 선형 투사 &amp;rarr; LLM 임베딩 차원 맞춤&lt;/li&gt;
&lt;li data-end=&quot;722&quot; data-start=&quot;662&quot;&gt;압축된 256개 이미지 토큰을 &amp;lt;img&amp;gt; 위치에 삽입, 텍스트와 함께 autoregressive 처리&lt;/li&gt;
&lt;li data-end=&quot;776&quot; data-start=&quot;723&quot;&gt;비전 인코더와 언어 디코더 분리, 이미지 정보는 LLM 입력 토큰 시퀀스에 &lt;b&gt;지연 결합&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;781&quot; data-start=&quot;778&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;824&quot; data-start=&quot;783&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. Qwen 2.5-Omni&lt;/b&gt; &amp;ndash; Alibaba (2025)&lt;/h3&gt;
&lt;p data-end=&quot;839&quot; data-start=&quot;825&quot; 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-end=&quot;1064&quot; data-start=&quot;840&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;895&quot; data-start=&quot;840&quot;&gt;&lt;b&gt;완전 통합형 멀티모달&lt;/b&gt;: 텍스트&amp;middot;이미지&amp;middot;음성&amp;middot;동영상 4모달 입력 + 텍스트&amp;middot;음성 동시 출력&lt;/li&gt;
&lt;li data-end=&quot;935&quot; data-start=&quot;896&quot;&gt;&lt;b&gt;TMRoPE&lt;/b&gt;: 비디오&amp;middot;오디오 시간축 정렬을 위한 위치 인코딩&lt;/li&gt;
&lt;li data-end=&quot;1026&quot; data-start=&quot;936&quot;&gt;&lt;b&gt;Thinker&amp;ndash;Talker 이중 디코더&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1026&quot; data-start=&quot;967&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;984&quot; data-start=&quot;967&quot;&gt;Thinker: 텍스트 생성&lt;/li&gt;
&lt;li data-end=&quot;1026&quot; data-start=&quot;987&quot;&gt;Talker: Thinker 은닉 상태로부터 TTS 음성 토큰 생성&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;1064&quot; data-start=&quot;1027&quot;&gt;&lt;b&gt;스트리밍 대응&lt;/b&gt;: 블록단위 인코딩, 슬라이딩 윈도우 TTS&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1080&quot; data-start=&quot;1066&quot; 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-end=&quot;1316&quot; data-start=&quot;1081&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1098&quot; data-start=&quot;1081&quot;&gt;멀티 인코더 + 멀티 디코더&lt;/li&gt;
&lt;li data-end=&quot;1135&quot; data-start=&quot;1099&quot;&gt;이미지: CLIP계 ViT 인코더 + 프로젝션 &amp;rarr; LLM 입력&lt;/li&gt;
&lt;li data-end=&quot;1178&quot; data-start=&quot;1136&quot;&gt;음성: Conformer 기반 오디오 인코더 + 프로젝션 &amp;rarr; LLM 입력&lt;/li&gt;
&lt;li data-end=&quot;1214&quot; data-start=&quot;1179&quot;&gt;비디오: 시간블록 단위 프레임 처리, 오디오 토큰과 교차배열&lt;/li&gt;
&lt;li data-end=&quot;1268&quot; data-start=&quot;1215&quot;&gt;언어 디코더(Thinker)는 통합 Transformer, Talker는 TTS 전용 디코더&lt;/li&gt;
&lt;li data-end=&quot;1316&quot; data-start=&quot;1269&quot;&gt;&lt;b&gt;Bolt-on&lt;/b&gt; 기반이지만 시간축 정렬(TMRoPE)로 멀티모달 시퀀스 처리&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;1321&quot; data-start=&quot;1318&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;1362&quot; data-start=&quot;1323&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. Kimi-VL&lt;/b&gt; &amp;ndash; Moonshot AI (2025)&lt;/h3&gt;
&lt;p data-end=&quot;1377&quot; data-start=&quot;1363&quot; 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-end=&quot;1630&quot; data-start=&quot;1378&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1443&quot; data-start=&quot;1378&quot;&gt;&lt;b&gt;MoE Transformer&lt;/b&gt;: DeepSeek-VL2 계열, 추론 시 일부 전문가만 활성화 &amp;rarr; 효율 극대화&lt;/li&gt;
&lt;li data-end=&quot;1501&quot; data-start=&quot;1444&quot;&gt;&lt;b&gt;MoonViT&lt;/b&gt;: 네이티브 고해상도(최대 4K) 이미지 인코더, 계층적 어텐션으로 연산비 절감&lt;/li&gt;
&lt;li data-end=&quot;1532&quot; data-start=&quot;1502&quot;&gt;&lt;b&gt;128K 컨텍스트&lt;/b&gt;: 장문 멀티모달 입력 지원&lt;/li&gt;
&lt;li data-end=&quot;1578&quot; data-start=&quot;1533&quot;&gt;&lt;b&gt;에이전트 기능&lt;/b&gt;: OSWorld 등 도구 사용, JSON&amp;middot;좌표 출력 가능&lt;/li&gt;
&lt;li data-end=&quot;1630&quot; data-start=&quot;1579&quot;&gt;&lt;b&gt;Thinking 버전&lt;/b&gt;: 장문 CoT 튜닝으로 멀티모달 수학&amp;middot;추론 벤치마크 SOTA&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1646&quot; data-start=&quot;1632&quot; 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-end=&quot;1783&quot; data-start=&quot;1647&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1689&quot; data-start=&quot;1647&quot;&gt;Vision Transformer(MoonViT) + MoE 언어 디코더&lt;/li&gt;
&lt;li data-end=&quot;1718&quot; data-start=&quot;1690&quot;&gt;ViT 패치 토큰 &amp;rarr; 선형 투사 &amp;rarr; LLM 입력&lt;/li&gt;
&lt;li data-end=&quot;1751&quot; data-start=&quot;1719&quot;&gt;Bolt-on 후기 융합, 멀티 이미지&amp;middot;영상 입력 지원&lt;/li&gt;
&lt;li data-end=&quot;1783&quot; data-start=&quot;1752&quot;&gt;고해상도와 초장문 멀티모달 reasoning에 최적화&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;1788&quot; data-start=&quot;1785&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;1829&quot; data-start=&quot;1790&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;4. SmolVLM&lt;/b&gt; &amp;ndash; HuggingFace (2025)&lt;/h3&gt;
&lt;p data-end=&quot;1844&quot; data-start=&quot;1830&quot; 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-end=&quot;2087&quot; data-start=&quot;1845&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1912&quot; data-start=&quot;1845&quot;&gt;&lt;b&gt;초경량 VLM&lt;/b&gt;: 0.256B~2.2B 파라미터, 엣지 디바이스 구동 가능 (256M 모델, &amp;lt;1GB VRAM)&lt;/li&gt;
&lt;li data-end=&quot;1953&quot; data-start=&quot;1913&quot;&gt;대형 모델 대비 비슷하거나 우수한 성능 (Idefics 80B 초월)&lt;/li&gt;
&lt;li data-end=&quot;2016&quot; data-start=&quot;1954&quot;&gt;&lt;b&gt;토큰 압축 전략&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2016&quot; data-start=&quot;1972&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1982&quot; data-start=&quot;1972&quot;&gt;큰 패치 사이즈&lt;/li&gt;
&lt;li data-end=&quot;2016&quot; data-start=&quot;1985&quot;&gt;Pixel-shuffle 유사 연산으로 토큰 수 감소&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;2052&quot; data-start=&quot;2017&quot;&gt;&lt;b&gt;멀티모달 데이터 최적화&lt;/b&gt;: 소형 모델용 데이터셋 재설계&lt;/li&gt;
&lt;li data-end=&quot;2087&quot; data-start=&quot;2053&quot;&gt;&lt;b&gt;비디오 이해 가능&lt;/b&gt;: 동일 파이프라인으로 프레임 처리&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;2103&quot; data-start=&quot;2089&quot; 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-end=&quot;2215&quot; data-start=&quot;2104&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2152&quot; data-start=&quot;2104&quot;&gt;경량 ViT/ConvNeXt &amp;rarr; 피처맵 생성 &amp;rarr; 공간&amp;rarr;채널 재배열 &amp;rarr; 토큰 수 감소&lt;/li&gt;
&lt;li data-end=&quot;2185&quot; data-start=&quot;2153&quot;&gt;MLP 프로젝션 &amp;rarr; 텍스트 토큰과 concat/교차배열&lt;/li&gt;
&lt;li data-end=&quot;2215&quot; data-start=&quot;2186&quot;&gt;Bolt-on 후기 융합 구조, 효율 극대화 설계&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>AI/Multimodal</category>
      <category>multimodal</category>
      <category>VLM</category>
      <author>땽뚕</author>
      <guid isPermaLink="true">https://asidefine.tistory.com/368</guid>
      <comments>https://asidefine.tistory.com/368#entry368comment</comments>
      <pubDate>Sun, 10 Aug 2025 11:16:51 +0900</pubDate>
    </item>
    <item>
      <title>[2025 강화학습 Recap] Chapter 7. Deep Reinforcement Learning</title>
      <link>https://asidefine.tistory.com/366</link>
      <description>&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;[2025&amp;nbsp;강화학습&amp;nbsp;Recap]&amp;nbsp;Chapter&amp;nbsp;7.&amp;nbsp;Deep&amp;nbsp;Reinforcement&amp;nbsp;Learning&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;지금까지&lt;span&gt;&amp;nbsp;&lt;/span&gt;우리는 가치함수를 중심으로 강화학습을 이해해왔음. 상태의 가치를 정확히 추정하고, 그를 바탕으로 최선의 행동을 선택하는 방식이었음. 하지만 잠깐, 정말로 가치함수가 필요할까? 우리의 궁극적 목표는 최적 정책을 찾는 것인데, 굳이 가치함수라는 중간 단계를 거쳐야 할까?&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9584&quot; data-ke-size=&quot;size16&quot;&gt;때로는 더 직접적인 접근이 효과적일 수 있음. 마치 목적지에 가는 데 지도를 자세히 그리는 대신 바로 방향을 찾아가는 것처럼 말임. 특히 연속 행동 공간에서는 &quot;어떤 행동이 얼마나 좋은가&quot;를 모두 계산하기보다는 &quot;어떤 행동을 선택할 확률을 높일까&quot;를 직접 학습하는 것이 더 자연스러움.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9585&quot; data-ke-size=&quot;size16&quot;&gt;이것이 바로 정책 경사법(Policy Gradient)의 핵심 아이디어임.&lt;span&gt;&amp;nbsp;&lt;/span&gt;정책을 매개변수화된 함수로 표현하고, 성능을 직접 최적화하는 방법임.&lt;span&gt;&amp;nbsp;&lt;/span&gt;가치함수라는 우회로 대신 정책 공간에서 바로 최적해를 향해 나아가는 것.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9586&quot; data-ke-size=&quot;size16&quot;&gt;이 장에서는 정책을 직접 학습하는 다양한 방법들을 살펴볼 예정임. REINFORCE라는 기본적인 정책 경사 알고리즘부터 시작해서, Actor-Critic처럼 가치함수와 정책을 함께 사용하는 하이브리드 방법까지 다룰 것임. 그 과정에서 왜 정책 기반 방법이 때로는 가치 기반 방법보다 뛰어난지, 어떤 상황에서 어떤 방법을 선택해야 하는지도 명확해질 것임.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9587&quot; data-ke-size=&quot;size16&quot;&gt;가치에서 정책으로. 강화학습의 또 다른 차원을 탐험해보자.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9588&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9589&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9590&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1 id=&quot;Chapter-7%3A-Policy-Gradient-Methods&quot; style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9591&quot;&gt;Chapter 7: Policy Gradient Methods&lt;/h1&gt;
&lt;h2 id=&quot;1.-Chapter-6%EC%97%90%EC%84%9C-Chapter-7%EB%A1%9C%3A-%EA%B0%80%EC%B9%98%EC%97%90%EC%84%9C-%EC%A0%95%EC%B1%85%EC%9C%BC%EB%A1%9C&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9592&quot; data-ke-size=&quot;size26&quot;&gt;1. Chapter 6에서 Chapter 7로: 가치에서 정책으로&lt;/h2&gt;
&lt;h3 id=&quot;1.1-%EC%A7%80%EA%B8%88%EA%B9%8C%EC%A7%80%EC%9D%98-%EC%97%AC%EC%A0%95&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9593&quot; data-ke-size=&quot;size23&quot;&gt;1.1 지금까지의 여정&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9594&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Value-based 접근법의 성과:&lt;/b&gt;&lt;br /&gt;✅ Q-Learning, SARSA로 최적 정책 학습&lt;br /&gt;✅ 함수 근사로 큰 상태 공간 처리&lt;br /&gt;✅ 이론적으로 완성된 프레임워크&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9595&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;하지만 남은 한계들:&lt;/b&gt;&lt;br /&gt;❌ 연속 행동 공간에서의 어려움&lt;br /&gt;❌ 확률적 정책 표현의 제약&lt;br /&gt;❌ 가치함수라는 우회 경로의 비효율성&lt;/p&gt;
&lt;h3 id=&quot;1.2-%EC%83%88%EB%A1%9C%EC%9A%B4-%EC%A7%88%EB%AC%B8%3A-%22%EC%A0%95%EB%A7%90-%EA%B0%80%EC%B9%98%ED%95%A8%EC%88%98%EA%B0%80-%ED%95%84%EC%9A%94%ED%95%9C%EA%B0%80%3F%22&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9596&quot; data-ke-size=&quot;size23&quot;&gt;1.2 새로운 질문: &quot;정말 가치함수가 필요한가?&quot;&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9597&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;기존 접근법의 우회 경로:&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;9598&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-nodeid=&quot;9599&quot;&gt;환경과 상호작용&lt;/li&gt;
&lt;li data-nodeid=&quot;9601&quot;&gt;가치함수 학습 (Q(s,a) 추정)&lt;/li&gt;
&lt;li data-nodeid=&quot;9603&quot;&gt;가치함수로부터 정책 유도 (&amp;pi;(s) = argmax Q(s,a))&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9605&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;직접적 접근법의 가능성:&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;9606&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-nodeid=&quot;9607&quot;&gt;환경과 상호작용&lt;/li&gt;
&lt;li data-nodeid=&quot;9609&quot;&gt;정책 직접 최적화 (&amp;pi;를 바로 개선)&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;1.3-%EC%A0%95%EC%B1%85-%EA%B8%B0%EB%B0%98-%EB%B0%A9%EB%B2%95%EC%9D%B4-%ED%95%84%EC%9A%94%ED%95%9C-%EC%9D%B4%EC%9C%A0&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9611&quot; data-ke-size=&quot;size23&quot;&gt;1.3 정책 기반 방법이 필요한 이유&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9612&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 연속 행동 공간 문제&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;makefile&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;9613&quot;&gt;&lt;code&gt;로봇 팔 제어: 관절 각도가 실수값 연속 공간
자율주행: 핸들 각도, 가속도가 연속값&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;9614&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;9615&quot;&gt;Value-based: argmax_a Q(s,a)에서 a가 무한개&lt;/li&gt;
&lt;li data-nodeid=&quot;9617&quot;&gt;Policy-based: &amp;pi;(a|s)로 연속 분포 직접 모델링&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9619&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. 확률적 정책의 필요성&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;makefile&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;9620&quot;&gt;&lt;code&gt;가위바위보: 예측 가능한 결정론적 정책은 불리
포커: 블러핑을 위한 확률적 전략 필요&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;9621&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;9622&quot;&gt;Value-based: 결정론적 greedy 정책만 자연스럽게 표현&lt;/li&gt;
&lt;li data-nodeid=&quot;9624&quot;&gt;Policy-based: &amp;pi;(a|s) 확률 분포로 자연스럽게 표현&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9626&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. 부분 관측 환경&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;makefile&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;9627&quot;&gt;&lt;code&gt;포커: 상대방 카드를 모르는 상황
로봇 탐험: 센서로 일부만 관측 가능&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;9628&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;9629&quot;&gt;같은 관측에서도 다른 행동이 최적일 수 있음&lt;/li&gt;
&lt;li data-nodeid=&quot;9631&quot;&gt;확률적 정책이 더 robust함&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9633&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9634&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;2.-%EC%A0%95%EC%B1%85-%EB%A7%A4%EA%B0%9C%EB%B3%80%EC%88%98%ED%99%94%EC%99%80-%EB%AA%A9%EC%A0%81%ED%95%A8%EC%88%98&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9635&quot; data-ke-size=&quot;size26&quot;&gt;2. 정책 매개변수화와 목적함수&lt;/h2&gt;
&lt;h3 id=&quot;2.1-%EC%A0%95%EC%B1%85%EC%9D%98-%EB%A7%A4%EA%B0%9C%EB%B3%80%EC%88%98%ED%99%94&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9636&quot; data-ke-size=&quot;size23&quot;&gt;2.1 정책의 매개변수화&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9637&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;기본 아이디어:&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;9638&quot;&gt;&lt;code&gt;&amp;pi;(a|s) &amp;rarr; &amp;pi;&amp;theta;(a|s)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9639&quot; data-ke-size=&quot;size16&quot;&gt;정책을 매개변수 &amp;theta;로 표현되는 함수로 모델링&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9640&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;연속 행동: 가우시안 정책&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;excel&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;9641&quot;&gt;&lt;code&gt;&amp;pi;&amp;theta;(a|s) = N(&amp;mu;&amp;theta;(s), &amp;sigma;&amp;theta;&amp;sup2;(s))&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;9642&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;9643&quot;&gt;&amp;mu;&amp;theta;(s): 평균 (신경망으로 근사)&lt;/li&gt;
&lt;li data-nodeid=&quot;9645&quot;&gt;&amp;sigma;&amp;theta;(s): 표준편차 (학습 가능하거나 고정)&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9647&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;이산 행동: 소프트맥스 정책&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;9648&quot;&gt;&lt;code&gt;&amp;pi;&amp;theta;(a|s) = exp(h&amp;theta;(s,a)) / &amp;Sigma;_a' exp(h&amp;theta;(s,a'))&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;9649&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;9650&quot;&gt;h&amp;theta;(s,a): preference function (신경망으로 근사)&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9652&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;2.2-%EC%84%B1%EB%8A%A5-%EC%B8%A1%EC%A0%95%3A-%EB%AA%A9%EC%A0%81%ED%95%A8%EC%88%98-%EC%A0%95%EC%9D%98&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9653&quot; data-ke-size=&quot;size23&quot;&gt;2.2 성능 측정: 목적함수 정의&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9654&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;에피소드 환경에서의 목적함수:&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;excel&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;9655&quot;&gt;&lt;code&gt;J(&amp;theta;) = E[G0] = E[&amp;Sigma;_{t=0}^T &amp;gamma;^t R_{t+1}]&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9656&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;연속 환경에서의 목적함수:&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;9657&quot;&gt;&lt;code&gt;J(&amp;theta;) = &amp;Sigma;_s d&amp;pi;(s) &amp;Sigma;_a &amp;pi;&amp;theta;(a|s) R(s,a)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;9658&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;9659&quot;&gt;d&amp;pi;(s): 정책 &amp;pi; 하에서 상태 s의 정상 분포&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9661&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목표:&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;isbl&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;9662&quot;&gt;&lt;code&gt;&amp;theta;* = argmax_&amp;theta; J(&amp;theta;)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9663&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;2.3-%EC%A0%95%EC%B1%85-%EA%B2%BD%EC%82%AC-%EC%A0%95%EB%A6%AC-(Policy-Gradient-Theorem)&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9664&quot; data-ke-size=&quot;size23&quot;&gt;2.3 정책 경사 정리 (Policy Gradient Theorem)&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9665&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;핵심 질문:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&amp;nabla;&amp;theta; J(&amp;theta;)를 어떻게 계산할까?&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9666&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;단순한 시도 (틀림):&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;9667&quot;&gt;&lt;code&gt;&amp;nabla;&amp;theta; J(&amp;theta;) = &amp;nabla;&amp;theta; &amp;Sigma;_s d&amp;pi;(s) &amp;Sigma;_a &amp;pi;&amp;theta;(a|s) R(s,a)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9668&quot; data-ke-size=&quot;size16&quot;&gt;문제: d&amp;pi;(s)도 &amp;theta;에 의존함 (정책이 바뀌면 상태 분포도 바뀜)&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9669&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;정책 경사 정리:&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;9670&quot;&gt;&lt;code&gt;&amp;nabla;&amp;theta; J(&amp;theta;) = E[&amp;nabla;&amp;theta; log &amp;pi;&amp;theta;(At|St) Gt]&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9671&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;증명 스케치:&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;9672&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-nodeid=&quot;9673&quot;&gt;궤적 확률을 정책과 환경 역학으로 분해&lt;/li&gt;
&lt;li data-nodeid=&quot;9675&quot;&gt;환경 역학은 &amp;theta;와 무관하므로 상수 취급&lt;/li&gt;
&lt;li data-nodeid=&quot;9677&quot;&gt;log-derivative trick 적용: &amp;nabla;&amp;theta; p = p &amp;nabla;&amp;theta; log p&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9679&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;핵심 통찰:&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;9680&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;9681&quot;&gt;상태 분포의 복잡한 &amp;theta; 의존성이 사라짐&lt;/li&gt;
&lt;li data-nodeid=&quot;9683&quot;&gt;샘플링으로 기댓값 근사 가능&lt;/li&gt;
&lt;li data-nodeid=&quot;9685&quot;&gt;환경 모델 불필요&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9687&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9688&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;3.-REINFORCE-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9689&quot; data-ke-size=&quot;size26&quot;&gt;3. REINFORCE 알고리즘&lt;/h2&gt;
&lt;h3 id=&quot;3.1-%EC%A0%95%EC%B1%85-%EA%B2%BD%EC%82%AC-%EC%A0%95%EB%A6%AC%EC%9D%98-%EA%B5%AC%ED%98%84&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9690&quot; data-ke-size=&quot;size23&quot;&gt;3.1 정책 경사 정리의 구현&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9691&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;REINFORCE 업데이트 규칙:&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;1c&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;9692&quot;&gt;&lt;code&gt;&amp;theta; &amp;larr; &amp;theta; + &amp;alpha; &amp;nabla;&amp;theta; log &amp;pi;&amp;theta;(At|St) Gt&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9693&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;구성요소:&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;9694&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;9695&quot;&gt;&amp;nabla;&amp;theta; log &amp;pi;&amp;theta;(At|St): 정책 경사 방향&lt;/li&gt;
&lt;li data-nodeid=&quot;9697&quot;&gt;Gt: 실제 Return (성능 신호)&lt;/li&gt;
&lt;li data-nodeid=&quot;9699&quot;&gt;&amp;alpha;: 학습률&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;3.2-REINFORCE-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%83%81%EC%84%B8&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9701&quot; data-ke-size=&quot;size23&quot;&gt;3.2 REINFORCE 알고리즘 상세&lt;/h3&gt;
&lt;pre class=&quot;armasm&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;9702&quot;&gt;&lt;code&gt;1. 정책 &amp;pi;&amp;theta; 초기화
2. 각 에피소드에 대해:
   a) 정책 &amp;pi;&amp;theta;를 따라 궤적 생성: S0,A0,R1,S1,A1,R2,...,ST
   b) 각 시점 t에 대해:
      - Gt 계산: &amp;Sigma;_{k=t+1}^T &amp;gamma;^{k-t-1} R_k
      - &amp;theta; 업데이트: &amp;theta; &amp;larr; &amp;theta; + &amp;alpha; &amp;gamma;^t &amp;nabla;&amp;theta; log &amp;pi;&amp;theta;(At|St) Gt&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&quot;3.3-REINFORCE%EC%9D%98-%EC%A7%81%EA%B4%80%EC%A0%81-%EC%9D%B4%ED%95%B4&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9703&quot; data-ke-size=&quot;size23&quot;&gt;3.3 REINFORCE의 직관적 이해&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9704&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;높은 Return을 받은 행동 강화:&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;1c&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;9705&quot;&gt;&lt;code&gt;Gt &amp;gt; 0이고 클수록: &amp;theta;를 &amp;nabla;&amp;theta; log &amp;pi;&amp;theta;(At|St) 방향으로 크게 업데이트
&amp;rarr; 해당 행동의 확률 증가&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9706&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;낮은 Return을 받은 행동 약화:&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;1c&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;9707&quot;&gt;&lt;code&gt;Gt &amp;lt; 0이고 작을수록: &amp;theta;를 -&amp;nabla;&amp;theta; log &amp;pi;&amp;theta;(At|St) 방향으로 업데이트  
&amp;rarr; 해당 행동의 확률 감소&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9708&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;3.4-REINFORCE%EC%9D%98-%ED%8A%B9%EC%A7%95&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9709&quot; data-ke-size=&quot;size23&quot;&gt;3.4 REINFORCE의 특징&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9710&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;장점:&lt;/b&gt;&lt;br /&gt;✅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Unbiased&lt;/b&gt;: 정확한 정책 경사 추정&lt;br /&gt;✅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Model-free&lt;/b&gt;: 환경 모델 불필요&lt;br /&gt;✅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;연속 행동&lt;/b&gt;: 자연스럽게 처리&lt;br /&gt;✅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;확률적 정책&lt;/b&gt;: 직접 학습&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9711&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;단점:&lt;/b&gt;&lt;br /&gt;❌&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;High variance&lt;/b&gt;: Monte Carlo 특성상 변동성 큼&lt;br /&gt;❌&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Sample inefficient&lt;/b&gt;: 각 샘플을 한 번만 사용&lt;br /&gt;❌&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Slow convergence&lt;/b&gt;: 높은 분산으로 인한 느린 학습&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9712&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;3.5-%EB%B6%84%EC%82%B0-%EB%AC%B8%EC%A0%9C%EC%9D%98-%EC%8B%AC%EA%B0%81%EC%84%B1&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9713&quot; data-ke-size=&quot;size23&quot;&gt;3.5 분산 문제의 심각성&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9714&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;예시: 간단한 2-arm bandit&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;yaml&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;9715&quot;&gt;&lt;code&gt;행동 A1: 보상 100 (확률 0.1), 보상 0 (확률 0.9)
행동 A2: 보상 1 (확률 1.0)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9716&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;REINFORCE 업데이트의 분산:&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;9717&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;9718&quot;&gt;A1 선택 시: 90% 확률로 -100, 10% 확률로 +100&lt;/li&gt;
&lt;li data-nodeid=&quot;9720&quot;&gt;매우 불안정한 학습 과정&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9722&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9723&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;4.-%EB%B6%84%EC%82%B0-%EA%B0%90%EC%86%8C-%EA%B8%B0%EB%B2%95%EB%93%A4&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9724&quot; data-ke-size=&quot;size26&quot;&gt;4. 분산 감소 기법들&lt;/h2&gt;
&lt;h3 id=&quot;4.1-%EB%B2%A0%EC%9D%B4%EC%8A%A4%EB%9D%BC%EC%9D%B8-(Baseline)&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9725&quot; data-ke-size=&quot;size23&quot;&gt;4.1 베이스라인 (Baseline)&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9726&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;아이디어:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;절대적 Return 대신 상대적 이점 사용&lt;/p&gt;
&lt;pre class=&quot;stata&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;9727&quot;&gt;&lt;code&gt;&amp;theta; &amp;larr; &amp;theta; + &amp;alpha; &amp;nabla;&amp;theta; log &amp;pi;&amp;theta;(At|St) (Gt - b(St))&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9728&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;베이스라인의 조건:&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;9729&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;9730&quot;&gt;&amp;theta;와 무관해야 함: &amp;nabla;&amp;theta; b(St) = 0&lt;/li&gt;
&lt;li data-nodeid=&quot;9732&quot;&gt;편향성 보존: E[&amp;nabla;&amp;theta; log &amp;pi;&amp;theta;(At|St) b(St)] = 0&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9734&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;일반적인 베이스라인:&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;9735&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-nodeid=&quot;9736&quot;&gt;&lt;b&gt;상수 베이스라인:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;b = 평균 Return&lt;/li&gt;
&lt;li data-nodeid=&quot;9738&quot;&gt;&lt;b&gt;상태 가치 베이스라인:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;b(s) = V(s)&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9740&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;4.2-%EC%83%81%ED%83%9C-%EA%B0%80%EC%B9%98-%EB%B2%A0%EC%9D%B4%EC%8A%A4%EB%9D%BC%EC%9D%B8%3A-REINFORCE-with-Baseline&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9741&quot; data-ke-size=&quot;size23&quot;&gt;4.2 상태 가치 베이스라인: REINFORCE with Baseline&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9742&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;핵심 아이디어:&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;avrasm&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;9743&quot;&gt;&lt;code&gt;Gt - V(St) &amp;asymp; Advantage = &quot;평균보다 얼마나 좋은가&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9744&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;알고리즘:&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;stata&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;9745&quot;&gt;&lt;code&gt;1. 정책 &amp;pi;&amp;theta;와 가치함수 Vw 초기화
2. 각 에피소드에 대해:
   a) 궤적 생성
   b) 각 시점 t에 대해:
      - 정책 업데이트: &amp;theta; &amp;larr; &amp;theta; + &amp;alpha; (Gt - Vw(St)) &amp;nabla;&amp;theta; log &amp;pi;&amp;theta;(At|St)
      - 가치함수 업데이트: w &amp;larr; w + &amp;beta; (Gt - Vw(St)) &amp;nabla;w Vw(St)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9746&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;분산 감소 효과:&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;9747&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;9748&quot;&gt;Var[Gt - V(St)] &amp;lt;&amp;lt; Var[Gt]&lt;/li&gt;
&lt;li data-nodeid=&quot;9750&quot;&gt;V(St)가 정확할수록 분산 더 감소&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9752&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;4.3-%EC%9E%90%EC%97%B0-%EC%A0%95%EC%B1%85-%EA%B2%BD%EC%82%AC-(Natural-Policy-Gradient)&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9753&quot; data-ke-size=&quot;size23&quot;&gt;4.3 자연 정책 경사 (Natural Policy Gradient)&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9754&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;일반 경사하강법은 매개변수 공간에서의 거리 사용&lt;/p&gt;
&lt;pre class=&quot;haxe&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;9755&quot;&gt;&lt;code&gt;&amp;theta;_{new} = &amp;theta; + &amp;alpha; &amp;nabla;&amp;theta; J(&amp;theta;)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9756&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;개선:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;정책 공간에서의 거리 사용&lt;/p&gt;
&lt;pre class=&quot;haxe&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;9757&quot;&gt;&lt;code&gt;&amp;theta;_{new} = &amp;theta; + &amp;alpha; F^{-1} &amp;nabla;&amp;theta; J(&amp;theta;)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;9758&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;9759&quot;&gt;F: Fisher Information Matrix&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9761&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;직관:&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;9762&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;9763&quot;&gt;매개변수 변화량이 같아도 정책 변화는 다를 수 있음&lt;/li&gt;
&lt;li data-nodeid=&quot;9765&quot;&gt;정책 공간에서 일정한 크기로 업데이트&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9767&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9768&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;5.-Actor-Critic-%EB%B0%A9%EB%B2%95%EB%93%A4&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9769&quot; data-ke-size=&quot;size26&quot;&gt;5. Actor-Critic 방법들&lt;/h2&gt;
&lt;h3 id=&quot;5.1-Actor-Critic%EC%9D%98-%EA%B8%B0%EB%B3%B8-%EC%95%84%EC%9D%B4%EB%94%94%EC%96%B4&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9770&quot; data-ke-size=&quot;size23&quot;&gt;5.1 Actor-Critic의 기본 아이디어&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9771&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;두 개의 함수 근사:&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;9772&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;9773&quot;&gt;&lt;b&gt;Actor&lt;/b&gt;: 정책 &amp;pi;&amp;theta;(a|s) 매개변수화&lt;/li&gt;
&lt;li data-nodeid=&quot;9775&quot;&gt;&lt;b&gt;Critic&lt;/b&gt;: 가치함수 Vw(s) 또는 Qw(s,a) 매개변수화&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9777&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;상호 보완적 역할:&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;9778&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;9779&quot;&gt;Actor: 정책 개선 담당&lt;/li&gt;
&lt;li data-nodeid=&quot;9781&quot;&gt;Critic: 성능 평가 담당&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9783&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;5.2-One-step-Actor-Critic&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9784&quot; data-ke-size=&quot;size23&quot;&gt;5.2 One-step Actor-Critic&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9785&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;TD Error를 이용한 즉시 업데이트:&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;isbl&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;9786&quot;&gt;&lt;code&gt;&amp;delta;t = Rt+1 + &amp;gamma;Vw(St+1) - Vw(St)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9787&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;업데이트 규칙:&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;9788&quot;&gt;&lt;code&gt;&amp;theta; &amp;larr; &amp;theta; + &amp;alpha; &amp;delta;t &amp;nabla;&amp;theta; log &amp;pi;&amp;theta;(At|St)  (Actor)
w &amp;larr; w + &amp;beta; &amp;delta;t &amp;nabla;w Vw(St)          (Critic)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9789&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;장점:&lt;/b&gt;&lt;br /&gt;✅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;낮은 분산&lt;/b&gt;: TD error가 Monte Carlo Return보다 안정적&lt;br /&gt;✅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;온라인 학습&lt;/b&gt;: 매 스텝 업데이트 가능&lt;br /&gt;✅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;빠른 학습&lt;/b&gt;: 즉시 피드백&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9790&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;단점:&lt;/b&gt;&lt;br /&gt;❌&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;편향성&lt;/b&gt;: Bootstrap으로 인한 bias&lt;br /&gt;❌&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;초기값 의존&lt;/b&gt;: Critic 초기화에 민감&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9791&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;5.3-Actor-Critic-vs-%EA%B8%B0%EC%A1%B4-%EB%B0%A9%EB%B2%95%EB%93%A4&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9792&quot; data-ke-size=&quot;size23&quot;&gt;5.3 Actor-Critic vs 기존 방법들&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9793&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;vs REINFORCE:&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;9794&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;9795&quot;&gt;REINFORCE: 높은 분산, 낮은 편향&lt;/li&gt;
&lt;li data-nodeid=&quot;9797&quot;&gt;Actor-Critic: 낮은 분산, 높은 편향&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9799&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;vs Value-based 방법:&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;9800&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;9801&quot;&gt;Value-based: 정책이 가치함수에 의존&lt;/li&gt;
&lt;li data-nodeid=&quot;9803&quot;&gt;Actor-Critic: 정책과 가치함수 독립적 학습&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9805&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;5.4-Advanced-Actor-Critic%3A-A3C%2C-A2C&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9806&quot; data-ke-size=&quot;size23&quot;&gt;5.4 Advanced Actor-Critic: A3C, A2C&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9807&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;A3C (Asynchronous Advantage Actor-Critic):&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;9808&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;9809&quot;&gt;여러 에이전트가 병렬로 학습&lt;/li&gt;
&lt;li data-nodeid=&quot;9811&quot;&gt;비동기적 매개변수 업데이트&lt;/li&gt;
&lt;li data-nodeid=&quot;9813&quot;&gt;n-step Return 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9815&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;A2C (Advantage Actor-Critic):&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;9816&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;9817&quot;&gt;A3C의 동기화 버전&lt;/li&gt;
&lt;li data-nodeid=&quot;9819&quot;&gt;Advantage 함수 명시적 사용: A(s,a) = Q(s,a) - V(s)&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9821&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9822&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9823&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;6.-%EC%97%B0%EC%86%8D-%ED%96%89%EB%8F%99-%EA%B3%B5%EA%B0%84%EC%97%90%EC%84%9C%EC%9D%98-%EC%A0%95%EC%B1%85-%EA%B2%BD%EC%82%AC&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9824&quot; data-ke-size=&quot;size26&quot;&gt;6. 연속 행동 공간에서의 정책 경사&lt;/h2&gt;
&lt;h3 id=&quot;6.1-%EA%B0%80%EC%9A%B0%EC%8B%9C%EC%95%88-%EC%A0%95%EC%B1%85%EC%9D%98-%EA%B5%AC%ED%98%84&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9825&quot; data-ke-size=&quot;size23&quot;&gt;6.1 가우시안 정책의 구현&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9826&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;매개변수화:&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;excel&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;9827&quot;&gt;&lt;code&gt;&amp;pi;&amp;theta;(a|s) = N(&amp;mu;&amp;theta;(s), &amp;sigma;&amp;sup2;)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9828&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;로그 확률 경사:&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;9829&quot;&gt;&lt;code&gt;&amp;nabla;&amp;theta; log &amp;pi;&amp;theta;(a|s) = &amp;nabla;&amp;theta; &amp;mu;&amp;theta;(s) &amp;middot; (a - &amp;mu;&amp;theta;(s))/&amp;sigma;&amp;sup2;&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9830&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;직관:&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;9831&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;9832&quot;&gt;높은 Return 시: a 방향으로 &amp;mu;&amp;theta;(s) 이동&lt;/li&gt;
&lt;li data-nodeid=&quot;9834&quot;&gt;낮은 Return 시: a 반대 방향으로 &amp;mu;&amp;theta;(s) 이동&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9836&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;6.2-%EA%B2%B0%EC%A0%95%EB%A1%A0%EC%A0%81-%EC%A0%95%EC%B1%85-%EA%B2%BD%EC%82%AC-(Deterministic-Policy-Gradient)&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9837&quot; data-ke-size=&quot;size23&quot;&gt;6.2 결정론적 정책 경사 (Deterministic Policy Gradient)&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9838&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;아이디어:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;확률적 정책 대신 결정론적 정책 사용&lt;/p&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;9839&quot;&gt;&lt;code&gt;&amp;pi;&amp;theta;(s) = a  (단일 행동 출력)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9840&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;정책 경사:&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;9841&quot;&gt;&lt;code&gt;&amp;nabla;&amp;theta; J(&amp;theta;) = E[&amp;nabla;&amp;theta; &amp;pi;&amp;theta;(s) &amp;nabla;a Q(s,a)|a=&amp;pi;&amp;theta;(s)]&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9842&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;장점:&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;9843&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;9844&quot;&gt;더 효율적인 탐색&lt;/li&gt;
&lt;li data-nodeid=&quot;9846&quot;&gt;연속 행동에서 자연스러운 표현&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9848&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9849&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;7.-%EC%8B%A4%EC%A0%9C-%EA%B5%AC%ED%98%84-%EA%B3%A0%EB%A0%A4%EC%82%AC%ED%95%AD&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9850&quot; data-ke-size=&quot;size26&quot;&gt;7. 실제 구현 고려사항&lt;/h2&gt;
&lt;h3 id=&quot;7.1-%ED%95%99%EC%8A%B5%EB%A5%A0-%EC%84%A0%ED%83%9D&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9851&quot; data-ke-size=&quot;size23&quot;&gt;7.1 학습률 선택&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9852&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;정책과 가치함수의 서로 다른 학습률:&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;angelscript&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;9853&quot;&gt;&lt;code&gt;&amp;alpha;&amp;theta; (정책): 보통 작은 값 (0.0001~0.001)
&amp;alpha;w (가치함수): 상대적으로 큰 값 (0.01~0.1)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9854&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;이유:&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;9855&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;9856&quot;&gt;정책 변화는 전체 성능에 큰 영향&lt;/li&gt;
&lt;li data-nodeid=&quot;9858&quot;&gt;가치함수는 상대적으로 안정적 학습 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;7.2-%ED%83%90%ED%97%98-vs-%ED%99%9C%EC%9A%A9&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9860&quot; data-ke-size=&quot;size23&quot;&gt;7.2 탐험 vs 활용&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9861&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;정책 기반 방법의 자연스러운 탐험:&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;9862&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;9863&quot;&gt;확률적 정책 자체가 탐험 제공&lt;/li&gt;
&lt;li data-nodeid=&quot;9865&quot;&gt;별도의 &amp;epsilon;-greedy 불필요&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9867&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;탐험 제어 방법:&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;9868&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-nodeid=&quot;9869&quot;&gt;&lt;b&gt;엔트로피 정규화&lt;/b&gt;: 정책의 무작위성 유지&lt;/li&gt;
&lt;li data-nodeid=&quot;9871&quot;&gt;&lt;b&gt;온도 매개변수&lt;/b&gt;: 소프트맥스의 뾰족함 조절&lt;/li&gt;
&lt;li data-nodeid=&quot;9873&quot;&gt;&lt;b&gt;노이즈 추가&lt;/b&gt;: 행동에 직접 노이즈 주입&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;7.3-%EC%88%98%EC%B9%98%EC%A0%81-%EC%95%88%EC%A0%95%EC%84%B1&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9875&quot; data-ke-size=&quot;size23&quot;&gt;7.3 수치적 안정성&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9876&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;로그 확률의 수치적 문제:&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;livecodeserver&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;9877&quot;&gt;&lt;code&gt;log &amp;pi;&amp;theta;(a|s) &amp;rarr; -&amp;infin; when &amp;pi;&amp;theta;(a|s) &amp;rarr; 0&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9878&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;해결 방법:&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;9879&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-nodeid=&quot;9880&quot;&gt;&lt;b&gt;Clipping&lt;/b&gt;: 너무 작은 확률값 제한&lt;/li&gt;
&lt;li data-nodeid=&quot;9882&quot;&gt;&lt;b&gt;정규화&lt;/b&gt;: 매개변수 범위 제한&lt;/li&gt;
&lt;li data-nodeid=&quot;9884&quot;&gt;&lt;b&gt;적응적 학습률&lt;/b&gt;: 경사 크기에 따른 조절&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9886&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9887&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;8.-%EC%A0%95%EC%B1%85-%EA%B8%B0%EB%B0%98-vs-%EA%B0%80%EC%B9%98-%EA%B8%B0%EB%B0%98-%EB%B0%A9%EB%B2%95-%EB%B9%84%EA%B5%90&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9888&quot; data-ke-size=&quot;size26&quot;&gt;8. 정책 기반 vs 가치 기반 방법 비교&lt;/h2&gt;
&lt;h3 id=&quot;8.1-%EC%A2%85%ED%95%A9%EC%A0%81-%EB%B9%84%EA%B5%90%ED%91%9C&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9889&quot; data-ke-size=&quot;size23&quot;&gt;8.1 종합적 비교표&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특성Value-basedPolicy-basedActor-Critic&lt;/p&gt;
&lt;table style=&quot;background-color: #ffffff; color: #000000; text-align: start; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-nodeid=&quot;9891&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody data-nodeid=&quot;9903&quot;&gt;
&lt;tr data-nodeid=&quot;9904&quot;&gt;
&lt;td data-nodeid=&quot;9905&quot;&gt;&lt;b&gt;수렴성&lt;/b&gt;&lt;/td&gt;
&lt;td data-nodeid=&quot;9906&quot;&gt;강함&lt;/td&gt;
&lt;td data-nodeid=&quot;9907&quot;&gt;보통&lt;/td&gt;
&lt;td data-nodeid=&quot;9908&quot;&gt;보통&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-nodeid=&quot;9909&quot;&gt;
&lt;td data-nodeid=&quot;9910&quot;&gt;&lt;b&gt;샘플 효율성&lt;/b&gt;&lt;/td&gt;
&lt;td data-nodeid=&quot;9911&quot;&gt;높음&lt;/td&gt;
&lt;td data-nodeid=&quot;9912&quot;&gt;낮음&lt;/td&gt;
&lt;td data-nodeid=&quot;9913&quot;&gt;보통&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-nodeid=&quot;9914&quot;&gt;
&lt;td data-nodeid=&quot;9915&quot;&gt;&lt;b&gt;연속 행동&lt;/b&gt;&lt;/td&gt;
&lt;td data-nodeid=&quot;9916&quot;&gt;어려움&lt;/td&gt;
&lt;td data-nodeid=&quot;9917&quot;&gt;자연스러움&lt;/td&gt;
&lt;td data-nodeid=&quot;9918&quot;&gt;자연스러움&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-nodeid=&quot;9919&quot;&gt;
&lt;td data-nodeid=&quot;9920&quot;&gt;&lt;b&gt;확률적 정책&lt;/b&gt;&lt;/td&gt;
&lt;td data-nodeid=&quot;9921&quot;&gt;어려움&lt;/td&gt;
&lt;td data-nodeid=&quot;9922&quot;&gt;자연스러움&lt;/td&gt;
&lt;td data-nodeid=&quot;9923&quot;&gt;자연스러움&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-nodeid=&quot;9924&quot;&gt;
&lt;td data-nodeid=&quot;9925&quot;&gt;&lt;b&gt;구현 복잡도&lt;/b&gt;&lt;/td&gt;
&lt;td data-nodeid=&quot;9926&quot;&gt;보통&lt;/td&gt;
&lt;td data-nodeid=&quot;9927&quot;&gt;단순&lt;/td&gt;
&lt;td data-nodeid=&quot;9928&quot;&gt;복잡&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-nodeid=&quot;9929&quot;&gt;
&lt;td data-nodeid=&quot;9930&quot;&gt;&lt;b&gt;분산&lt;/b&gt;&lt;/td&gt;
&lt;td data-nodeid=&quot;9931&quot;&gt;낮음&lt;/td&gt;
&lt;td data-nodeid=&quot;9932&quot;&gt;높음&lt;/td&gt;
&lt;td data-nodeid=&quot;9933&quot;&gt;보통&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&quot;8.2-%EC%84%A0%ED%83%9D-%EA%B0%80%EC%9D%B4%EB%93%9C%EB%9D%BC%EC%9D%B8&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9934&quot; data-ke-size=&quot;size23&quot;&gt;8.2 선택 가이드라인&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9935&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Value-based 선호 상황:&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;9936&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;9937&quot;&gt;이산 행동 공간&lt;/li&gt;
&lt;li data-nodeid=&quot;9939&quot;&gt;샘플 효율성이 중요&lt;/li&gt;
&lt;li data-nodeid=&quot;9941&quot;&gt;안정적 수렴 필요&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9943&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Policy-based 선호 상황:&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;9944&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;9945&quot;&gt;연속 행동 공간&lt;/li&gt;
&lt;li data-nodeid=&quot;9947&quot;&gt;확률적 정책 필요&lt;/li&gt;
&lt;li data-nodeid=&quot;9949&quot;&gt;부분 관측 환경&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9951&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Actor-Critic 선호 상황:&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;9952&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;9953&quot;&gt;두 방법의 장점 결합 필요&lt;/li&gt;
&lt;li data-nodeid=&quot;9955&quot;&gt;복잡한 연속 제어 문제&lt;/li&gt;
&lt;li data-nodeid=&quot;9957&quot;&gt;실시간 학습 환경&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9959&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9960&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;9.-%EC%B5%9C%EC%8B%A0-%EB%B0%9C%EC%A0%84-%EB%B0%A9%ED%96%A5%EB%93%A4&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9961&quot; data-ke-size=&quot;size26&quot;&gt;9. 최신 발전 방향들&lt;/h2&gt;
&lt;h3 id=&quot;9.1-Trust-Region-Methods&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9962&quot; data-ke-size=&quot;size23&quot;&gt;9.1 Trust Region Methods&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9963&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;정책 업데이트가 너무 클 때 성능 급격히 저하&lt;br /&gt;&lt;b&gt;해결:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;업데이트 크기를 제한하는 신뢰 영역 설정&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9964&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;TRPO (Trust Region Policy Optimization):&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;sqf&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;9965&quot;&gt;&lt;code&gt;maximize  E[&amp;pi;&amp;theta;_new/&amp;pi;&amp;theta;_old &amp;middot; A(s,a)]
subject to KL(&amp;pi;&amp;theta;_old, &amp;pi;&amp;theta;_new) &amp;le; &amp;delta;&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9966&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;9.2-Proximal-Policy-Optimization-(PPO)&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9967&quot; data-ke-size=&quot;size23&quot;&gt;9.2 Proximal Policy Optimization (PPO)&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9968&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;TRPO의 단순화 버전:&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;stylus&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;9969&quot;&gt;&lt;code&gt;L(&amp;theta;) = E[min(rt(&amp;theta;)A(s,a), clip(rt(&amp;theta;), 1-&amp;epsilon;, 1+&amp;epsilon;)A(s,a))]&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;9970&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;9971&quot;&gt;rt(&amp;theta;) = &amp;pi;&amp;theta;(a|s)/&amp;pi;&amp;theta;_old(a|s)&lt;/li&gt;
&lt;li data-nodeid=&quot;9973&quot;&gt;clip으로 업데이트 크기 제한&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9975&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;9.3-Soft-Actor-Critic-(SAC)&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9976&quot; data-ke-size=&quot;size23&quot;&gt;9.3 Soft Actor-Critic (SAC)&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9977&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;엔트로피 정규화된 목적함수:&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;stata&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;9978&quot;&gt;&lt;code&gt;J(&amp;theta;) = E[&amp;Sigma;_t &amp;gamma;^t (R(st,at) + &amp;alpha;H(&amp;pi;&amp;theta;(&amp;middot;|st)))]&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;9979&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;9980&quot;&gt;H(&amp;pi;): 정책의 엔트로피&lt;/li&gt;
&lt;li data-nodeid=&quot;9982&quot;&gt;&amp;alpha;: 탐험-활용 균형 매개변수&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9984&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9985&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;10.-Chapter-7-%EC%A0%95%EB%A6%AC-%EB%B0%8F-%EB%8B%A4%EC%9D%8C-%EB%8B%A8%EA%B3%84&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9986&quot; data-ke-size=&quot;size26&quot;&gt;10. Chapter 7 정리 및 다음 단계&lt;/h2&gt;
&lt;h3 id=&quot;10.1-%EC%A0%95%EC%B1%85-%EA%B8%B0%EB%B0%98-%EB%B0%A9%EB%B2%95%EC%9D%B4-%ED%95%B4%EA%B2%B0%ED%95%9C-%EA%B2%83&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9987&quot; data-ke-size=&quot;size23&quot;&gt;10.1 정책 기반 방법이 해결한 것&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9988&quot; data-ke-size=&quot;size16&quot;&gt;✅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;연속 행동 공간&lt;/b&gt;: 자연스러운 매개변수화로 해결&lt;br /&gt;✅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;확률적 정책&lt;/b&gt;: 직접적인 확률 분포 학습&lt;br /&gt;✅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;직접 최적화&lt;/b&gt;: 가치함수 우회 없는 정책 개선&lt;br /&gt;✅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;이론적 기초&lt;/b&gt;: 정책 경사 정리로 견고한 토대&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9989&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;10.2-%EB%82%A8%EC%9D%80-%EB%8F%84%EC%A0%84%EA%B3%BC%EC%A0%9C&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9990&quot; data-ke-size=&quot;size23&quot;&gt;10.2 남은 도전과제&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9991&quot; data-ke-size=&quot;size16&quot;&gt;❌&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;높은 분산&lt;/b&gt;: 여전히 샘플 효율성 문제&lt;br /&gt;❌&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;수렴 보장&lt;/b&gt;: 함수 근사 시 안정성 이슈&lt;br /&gt;❌&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;탐험 문제&lt;/b&gt;: 효과적인 탐험 전략 필요&lt;br /&gt;❌&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;계산 효율성&lt;/b&gt;: 실시간 제어에서의 한계&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9992&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;10.3-%ED%98%84%EB%8C%80-%EA%B0%95%ED%99%94%ED%95%99%EC%8A%B5%EC%97%90%EC%84%9C%EC%9D%98-%EC%9C%84%EC%B9%98&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;9993&quot; data-ke-size=&quot;size23&quot;&gt;10.3 현대 강화학습에서의 위치&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;9994&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Deep RL의 핵심 구성요소:&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;9995&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;9996&quot;&gt;PPO, SAC 등 현대 알고리즘의 기초&lt;/li&gt;
&lt;li data-nodeid=&quot;9998&quot;&gt;OpenAI Five, AlphaStar 등 실제 성공 사례&lt;/li&gt;
&lt;li data-nodeid=&quot;10000&quot;&gt;로봇 제어, 자율주행 등 실용적 응용&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;10002&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;10.4-%EB%8B%A4%EC%9D%8C-%EB%8B%A8%EA%B3%84%EB%93%A4&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;10003&quot; data-ke-size=&quot;size23&quot;&gt;10.4 다음 단계들&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;10004&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;발전 방향:&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;10005&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-nodeid=&quot;10006&quot;&gt;&lt;b&gt;Hierarchical RL&lt;/b&gt;: 복잡한 장기 계획 문제&lt;/li&gt;
&lt;li data-nodeid=&quot;10008&quot;&gt;&lt;b&gt;Multi-agent RL&lt;/b&gt;: 여러 에이전트 상호작용&lt;/li&gt;
&lt;li data-nodeid=&quot;10010&quot;&gt;&lt;b&gt;Meta-learning&lt;/b&gt;: 빠른 적응 능력&lt;/li&gt;
&lt;li data-nodeid=&quot;10012&quot;&gt;&lt;b&gt;Safe RL&lt;/b&gt;: 안전 제약 하에서 학습&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;10014&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;10015&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;10016&quot; data-ke-size=&quot;size16&quot;&gt;이 장에서 우리는 강화학습의 완전히 새로운 패러다임을 경험했음. 가치함수라는 중간 단계 없이 정책을 직접 최적화하는 방법을 배웠고, 이것이 왜 때로는 더 효과적인지 이해했음. 특히 연속 행동 공간이나 확률적 정책이 필요한 상황에서 정책 경사법의 진가를 확인할 수 있었음.&lt;br /&gt;REINFORCE의 단순함에서 시작해서 Actor-Critic의 정교함까지, 각 방법이 가진 고유한 특성과 적용 영역을 파악했음. 높은 분산이라는 정책 경사법의 고질적 문제도 베이스라인, 자연 정책 경사, Actor-Critic 등 다양한 기법으로 해결할 수 있다는 것을 보았음.&lt;br /&gt;가장 중요한 통찰은 가치 기반과 정책 기반 방법이 경쟁 관계가 아니라 상호 보완적이라는 점임. Actor-Critic 구조에서 보듯이, 두 접근법을 결합하면 각각의 장점을 살리고 단점을 보완할 수 있음. 이런 하이브리드 접근법이 현대 강화학습의 주류가 된 것도 우연이 아님.&lt;br /&gt;이제 우리는 강화학습의 거의 모든 기본 도구를 갖추었음. Tabular 방법부터 함수 근사, 가치 기반부터 정책 기반까지. 하지만 이들을 어떻게 실제 복잡한 문제에 적용할까? 어떤 상황에서 어떤 방법을 선택해야 할까? 계산 효율성과 샘플 효율성은 어떻게 개선할까?&lt;br /&gt;앞으로의 여정에서는 이런 실용적 고려사항들과 최신 발전 방향들을 다루게 될 것임. Deep Deterministic Policy Gradient(DDPG), Proximal Policy Optimization(PPO), Soft Actor-Critic(SAC) 같은 현대적 알고리즘들이 어떻게 여기서 배운 기본 원리들을 발전시켰는지 보게 될 것임.&lt;br /&gt;정책 공간에서의 직접 최적화라는 새로운 관점을 얻었음. 이제 정말로 현실 세계의 복잡한 제어 문제들에 도전할 준비가 완료되었음.&lt;/p&gt;</description>
      <category>AI/Reinforcement Learning</category>
      <author>땽뚕</author>
      <guid isPermaLink="true">https://asidefine.tistory.com/366</guid>
      <comments>https://asidefine.tistory.com/366#entry366comment</comments>
      <pubDate>Sun, 10 Aug 2025 10:52:35 +0900</pubDate>
    </item>
    <item>
      <title>[2025 강화학습 Recap] Chapter 6. Value Function Approximation</title>
      <link>https://asidefine.tistory.com/365</link>
      <description>&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;[2025&amp;nbsp;강화학습&amp;nbsp;Recap]&amp;nbsp;Chapter&amp;nbsp;6.&amp;nbsp;Value&amp;nbsp;Function&amp;nbsp;Approximation&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;지금까지의 여정을 돌아보면, 우리는 강화학습의 완벽한 이론적 토대를 구축했음. MDP로 문제를 정의하고, Dynamic Programming으로 이상적 해법을 찾고, Model-free 방법으로 현실적 학습을 구현했음. 하지만 모든 것이 하나의 큰 가정 위에 세워져 있었음. 바로 상태와 행동의 개수가 충분히 작아서 테이블로 관리할 수 있다는 것.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8571&quot; data-ke-size=&quot;size16&quot;&gt;현실은 그렇지 않음. 자율주행차가 마주하는 상황의 수는? 바둑판의 가능한 배치는? 로봇이 취할 수 있는 연속적인 행동은? 이런 문제들 앞에서 테이블 기반 방법은 무력해짐. 메모리도 부족하고, 학습 시간도 천문학적으로 늘어남.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8572&quot; data-ke-size=&quot;size16&quot;&gt;하지만 인간은 어떻게 복잡한 상황을 처리할까?&lt;span&gt;&amp;nbsp;&lt;/span&gt;우리는 모든 경우를 외우지 않고 패턴을 인식하고 일반화함. &quot;비슷한 상황에서는 비슷한 가치를 가질 것&quot;이라고 추론함. 이것이 바로 함수 근사(Function Approximation)의 핵심 아이디어임.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8573&quot; data-ke-size=&quot;size16&quot;&gt;이 장에서는 가치함수를 테이블이 아닌 매개변수화된 함수로 표현하는 방법을 다룸. 선형 함수부터 시작해서 신경망까지,&lt;span&gt;&amp;nbsp;&lt;/span&gt;어떻게 무한한 상태 공간을 유한한 매개변수로 압축할 수 있는지 알아볼 예정임. 하지만 이 과정에서 새로운 도전들이 등장함. 수렴성은 보장될까? 안정성은? 어떤 특성을 근사해야 할까?&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8574&quot; data-ke-size=&quot;size16&quot;&gt;지금까지 배운 모든 알고리즘들이 함수 근사와 만나면서 진짜 실용적인 도구로 거듭나는 순간을 함께 경험해보자.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8575&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8576&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;1.-Chapter-5%EC%97%90%EC%84%9C-Chapter-6%EC%9C%BC%EB%A1%9C%3A-Tabular%EC%97%90%EC%84%9C-%EC%8B%A4%EC%A0%9C-%EC%84%B8%EA%B3%84%EB%A1%9C&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8577&quot; data-ke-size=&quot;size26&quot;&gt;1. Chapter 5에서 Chapter 6으로: Tabular에서 실제 세계로&lt;/h2&gt;
&lt;h3 id=&quot;1.1-%EC%A7%80%EA%B8%88%EA%B9%8C%EC%A7%80-%EB%8B%AC%EC%84%B1%ED%95%9C-%EA%B2%83&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8578&quot; data-ke-size=&quot;size23&quot;&gt;1.1 지금까지 달성한 것&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8579&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Tabular Methods의 성공&lt;/b&gt;: ✅ Model-Free Prediction: MC, TD로 가치 추정 ✅ Model-Free Control: SARSA, Q-Learning으로 최적 정책 학습 ✅ 이론적 완성도: 작은 문제에서는 완벽한 해법&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8580&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;1.2-%ED%98%84%EC%8B%A4%EC%9D%98-%EB%B2%BD%3A-Curse-of-Dimensionality&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8581&quot; data-ke-size=&quot;size23&quot;&gt;1.2 현실의 벽: Curse of Dimensionality&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8582&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Tabular Methods의 전제 조건&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;8583&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;8584&quot;&gt;상태와 행동을 테이블로 저장 가능&lt;/li&gt;
&lt;li data-nodeid=&quot;8586&quot;&gt;각 상태-행동 쌍을 개별적으로 학습&lt;/li&gt;
&lt;li data-nodeid=&quot;8588&quot;&gt;유한하고 작은 상태/행동 공간&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8590&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;현실 세계의 문제들&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;8591&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;8592&quot;&gt;&lt;b&gt;바둑&lt;/b&gt;: 상태 수 &amp;asymp; 10^170 (우주 원자 수보다 많음)&lt;/li&gt;
&lt;li data-nodeid=&quot;8594&quot;&gt;&lt;b&gt;로봇 제어&lt;/b&gt;: 관절 각도, 속도 등 연속 변수들&lt;/li&gt;
&lt;li data-nodeid=&quot;8596&quot;&gt;&lt;b&gt;자율주행&lt;/b&gt;: 센서 데이터, 위치, 속도 등 고차원 상태&lt;/li&gt;
&lt;li data-nodeid=&quot;8598&quot;&gt;&lt;b&gt;게임 AI&lt;/b&gt;: 픽셀 단위 화면 정보 (Atari: 210&amp;times;160&amp;times;3)&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8600&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;1.3-Tabular-Methods%EC%9D%98-%ED%95%9C%EA%B3%84&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8601&quot; data-ke-size=&quot;size23&quot;&gt;1.3 Tabular Methods의 한계&lt;/h3&gt;
&lt;h4 id=&quot;%EB%A9%94%EB%AA%A8%EB%A6%AC-%EB%AC%B8%EC%A0%9C&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8602&quot; data-ke-size=&quot;size20&quot;&gt;메모리 문제&lt;/h4&gt;
&lt;pre class=&quot;angelscript&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;8603&quot;&gt;&lt;code&gt;상태 수: 10^6개
행동 수: 10개
&amp;rarr; Q-table 크기: 10^7개 엔트리
&amp;rarr; 메모리: 수십 MB (아직 괜찮음)

상태 수: 10^10개 (현실적)
&amp;rarr; Q-table 크기: 10^11개 엔트리  
&amp;rarr; 메모리: 수 TB (불가능!)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;h4 id=&quot;%ED%95%99%EC%8A%B5-%EC%8B%9C%EA%B0%84-%EB%AC%B8%EC%A0%9C&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8604&quot; data-ke-size=&quot;size20&quot;&gt;학습 시간 문제&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;8605&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;8606&quot;&gt;각 상태-행동 쌍을 개별 학습&lt;/li&gt;
&lt;li data-nodeid=&quot;8608&quot;&gt;방문하지 않은 상태는 영원히 학습 안 됨&lt;/li&gt;
&lt;li data-nodeid=&quot;8610&quot;&gt;비슷한 상태들 간 지식 공유 불가&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;%EC%9D%BC%EB%B0%98%ED%99%94-%EB%8A%A5%EB%A0%A5-%EB%B6%80%EC%9E%AC&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8612&quot; data-ke-size=&quot;size20&quot;&gt;일반화 능력 부재&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;8613&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;8614&quot;&gt;새로운 상태에서 완전히 무력함&lt;/li&gt;
&lt;li data-nodeid=&quot;8616&quot;&gt;유사한 상태에서의 경험을 활용하지 못함&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8618&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;1.4-%ED%95%B4%EA%B2%B0%EC%B1%85%3A-Function-Approximation&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8619&quot; data-ke-size=&quot;size23&quot;&gt;1.4 해결책: Function Approximation&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8620&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;핵심 아이디어&lt;/b&gt;: &quot;테이블 대신 함수로 가치를 표현하자!&quot;&lt;/p&gt;
&lt;div data-nodeid=&quot;8621&quot;&gt;&lt;b&gt;Before (Tabular)&lt;/b&gt;:&lt;/div&gt;
&lt;pre class=&quot;reasonml&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;8622&quot;&gt;&lt;code&gt;V(s1) = 3.2
V(s2) = 2.8  
V(s3) = 4.1
...
V(s백만) = ?&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div data-nodeid=&quot;8623&quot;&gt;&lt;b&gt;After (Function Approximation)&lt;/b&gt;:&lt;/div&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;8624&quot;&gt;&lt;code&gt;V(s) &amp;asymp; V̂(s, w) = w₁&amp;times;특징₁(s) + w₂&amp;times;특징₂(s) + ...
하나의 함수로 모든 상태의 가치 표현&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8625&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;2.-Function-Approximation%EC%9D%98-%EA%B8%B0%EB%B3%B8-%EA%B0%9C%EB%85%90&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8626&quot; data-ke-size=&quot;size26&quot;&gt;2. Function Approximation의 기본 개념&lt;/h2&gt;
&lt;h3 id=&quot;2.1-%ED%95%B5%EC%8B%AC-%EC%95%84%EC%9D%B4%EB%94%94%EC%96%B4&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8627&quot; data-ke-size=&quot;size23&quot;&gt;2.1 핵심 아이디어&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8628&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;매개변수화된 함수&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;8629&quot;&gt;&lt;code&gt;V̂(s, w) &amp;asymp; V(s)
Q̂(s, a, w) &amp;asymp; Q(s, a)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8630&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;핵심 구성요소&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;8631&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;8632&quot;&gt;&lt;b&gt;특징 벡터&lt;/b&gt;: &amp;phi;(s) (상태의 특징 표현)&lt;/li&gt;
&lt;li data-nodeid=&quot;8634&quot;&gt;&lt;b&gt;매개변수&lt;/b&gt;: w (학습 가능한 가중치)&lt;/li&gt;
&lt;li data-nodeid=&quot;8636&quot;&gt;&lt;b&gt;함수 형태&lt;/b&gt;: 선형, 신경망 등&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8638&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;2.2-%ED%8A%B9%EC%A7%95-%ED%91%9C%ED%98%84-(Feature-Representation)&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8639&quot; data-ke-size=&quot;size23&quot;&gt;2.2 특징 표현 (Feature Representation)&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8640&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;상태를 벡터로 변환&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;8641&quot;&gt;&lt;code&gt;상태 s &amp;rarr; 특징벡터 &amp;phi;(s) = [&amp;phi;₁(s), &amp;phi;₂(s), ..., &amp;phi;ₙ(s)]ᵀ&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8642&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;예시: GridWorld&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;angelscript&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;8643&quot;&gt;&lt;code&gt;위치 (3,4) &amp;rarr; &amp;phi;(s) = [3, 4, 거리_목표, 벽_근처, ...]ᵀ&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8644&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;예시: 자율주행&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;haxe&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;8645&quot;&gt;&lt;code&gt;센서 데이터 &amp;rarr; &amp;phi;(s) = [속도, 앞차_거리, 차선_위치, ...]ᵀ&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8646&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;2.3-Function-Approximation%EC%9D%98-%EC%9E%A5%EC%A0%90&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8647&quot; data-ke-size=&quot;size23&quot;&gt;2.3 Function Approximation의 장점&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8648&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 메모리 효율성&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;angelscript&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;8649&quot;&gt;&lt;code&gt;상태 10^10개 &amp;rarr; 매개변수 10^3개
테이블: 10^10 메모리 &amp;rarr; 함수: 10^3 메모리&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8650&quot; 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; color: #222222;&quot; data-nodeid=&quot;8651&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;8652&quot;&gt;비슷한 상태들이 비슷한 가치를 가짐&lt;/li&gt;
&lt;li data-nodeid=&quot;8654&quot;&gt;새로운 상태에서도 합리적인 추정 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8656&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. 온라인 학습&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;8657&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;8658&quot;&gt;매개변수만 업데이트하면 됨&lt;/li&gt;
&lt;li data-nodeid=&quot;8660&quot;&gt;실시간 학습 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8662&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;3.-%EC%84%A0%ED%98%95-%ED%95%A8%EC%88%98-%EA%B7%BC%EC%82%AC-(Linear-Function-Approximation)&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8663&quot; data-ke-size=&quot;size26&quot;&gt;3. 선형 함수 근사 (Linear Function Approximation)&lt;/h2&gt;
&lt;h3 id=&quot;3.1-%EC%84%A0%ED%98%95-%ED%95%A8%EC%88%98%EC%9D%98-%ED%98%95%ED%83%9C&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8664&quot; data-ke-size=&quot;size23&quot;&gt;3.1 선형 함수의 형태&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8665&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;State Value Function&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;8666&quot;&gt;&lt;code&gt;V̂(s, w) = &amp;phi;(s)ᵀw = &amp;Sigma;ᵢ &amp;phi;ᵢ(s)wᵢ&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8667&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Action Value Function&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;8668&quot;&gt;&lt;code&gt;Q̂(s, a, w) = &amp;phi;(s, a)ᵀw = &amp;Sigma;ᵢ &amp;phi;ᵢ(s, a)wᵢ&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8669&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;특징&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;8670&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;8671&quot;&gt;매개변수 w에 대해 선형&lt;/li&gt;
&lt;li data-nodeid=&quot;8673&quot;&gt;특징 &amp;phi;(s)에 대해서는 비선형 가능&lt;/li&gt;
&lt;li data-nodeid=&quot;8675&quot;&gt;간단하고 이론적 성질이 좋음&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8677&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;3.2-%EC%84%A0%ED%98%95-%ED%95%A8%EC%88%98-%EA%B7%BC%EC%82%AC%EC%9D%98-%EC%98%88%EC%8B%9C&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8678&quot; data-ke-size=&quot;size23&quot;&gt;3.2 선형 함수 근사의 예시&lt;/h3&gt;
&lt;h4 id=&quot;%EB%8B%A4%ED%95%AD%EC%8B%9D-%EA%B8%B0%EC%A0%80-(Polynomial-Basis)&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8679&quot; data-ke-size=&quot;size20&quot;&gt;다항식 기저 (Polynomial Basis)&lt;/h4&gt;
&lt;pre class=&quot;gml&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;8680&quot;&gt;&lt;code&gt;상태 s = [x, y] (2차원 위치)
&amp;phi;(s) = [1, x, y, x&amp;sup2;, y&amp;sup2;, xy]ᵀ
V̂(s, w) = w₀ + w₁x + w₂y + w₃x&amp;sup2; + w₄y&amp;sup2; + w₅xy&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;h4 id=&quot;RBF-(Radial-Basis-Functions)&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8681&quot; data-ke-size=&quot;size20&quot;&gt;RBF (Radial Basis Functions)&lt;/h4&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;8682&quot;&gt;&lt;code&gt;&amp;phi;ᵢ(s) = exp(-||s - cᵢ||&amp;sup2;/2&amp;sigma;&amp;sup2;)  (가우시안 기저)
V̂(s, w) = &amp;Sigma;ᵢ wᵢ &amp;phi;ᵢ(s)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;h4 id=&quot;%ED%83%80%EC%9D%BC-%EC%BD%94%EB%94%A9-(Tile-Coding)&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8683&quot; data-ke-size=&quot;size20&quot;&gt;타일 코딩 (Tile Coding)&lt;/h4&gt;
&lt;pre class=&quot;angelscript&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;8684&quot;&gt;&lt;code&gt;상태 공간을 여러 타일로 분할
각 타일 내에서는 상수 값
&amp;phi;ᵢ(s) = 1 if s가 타일 i 안에 있음, 0 otherwise&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&quot;3.3-%EC%84%A0%ED%98%95-%ED%95%A8%EC%88%98%EC%9D%98-%EC%9E%A5%EC%A0%90%EA%B3%BC-%ED%95%9C%EA%B3%84&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8685&quot; data-ke-size=&quot;size23&quot;&gt;3.3 선형 함수의 장점과 한계&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8686&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;장점&lt;/b&gt;: ✅ 계산 효율적 ✅ 수렴 보장 (조건 하에) ✅ 이론적 분석 용이 ✅ 해석 가능&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8687&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;한계&lt;/b&gt;: ❌ 표현력 제한 (복잡한 함수 근사 어려움) ❌ 특징 설계에 크게 의존 ❌ 비선형 패턴 포착 한계&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8688&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8689&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;4.-%EB%A7%A4%EA%B0%9C%EB%B3%80%EC%88%98-%ED%95%99%EC%8A%B5%3A-Gradient-Descent&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8690&quot; data-ke-size=&quot;size26&quot;&gt;4. 매개변수 학습: Gradient Descent&lt;/h2&gt;
&lt;h3 id=&quot;4.1-%EB%AA%A9%EC%A0%81-%ED%95%A8%EC%88%98-%EC%A0%95%EC%9D%98&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8691&quot; data-ke-size=&quot;size23&quot;&gt;4.1 목적 함수 정의&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8692&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;이상적인 목적 함수&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(지도 학습에서):&lt;/p&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;8693&quot;&gt;&lt;code&gt;J(w) = E[(V(s) - V̂(s, w))&amp;sup2;]
       &amp;uarr; 참값 (하지만 모름!)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8694&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;강화학습에서의 문제&lt;/b&gt;: 참값 V(s)를 모름!&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8695&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;4.2-Gradient-Descent%EC%9D%98-%EA%B8%B0%EB%B3%B8-%EC%9B%90%EB%A6%AC&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8696&quot; data-ke-size=&quot;size23&quot;&gt;4.2 Gradient Descent의 기본 원리&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8697&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목적&lt;/b&gt;: J(w)를 최소화하는 w 찾기&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8698&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;업데이트 규칙&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;isbl&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;8699&quot;&gt;&lt;code&gt;w &amp;larr; w - &amp;alpha; &amp;nabla;J(w)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8700&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;선형 함수에서&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;8701&quot;&gt;&lt;code&gt;&amp;nabla;w V̂(s, w) = &amp;phi;(s)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8702&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;4.3-Stochastic-vs-Batch-Gradient-Descent&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8703&quot; data-ke-size=&quot;size23&quot;&gt;4.3 Stochastic vs Batch Gradient Descent&lt;/h3&gt;
&lt;h4 id=&quot;Stochastic-Gradient-Descent-(SGD)&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8704&quot; data-ke-size=&quot;size20&quot;&gt;Stochastic Gradient Descent (SGD)&lt;/h4&gt;
&lt;pre class=&quot;apache&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;8705&quot;&gt;&lt;code&gt;w &amp;larr; w - &amp;alpha; &amp;nabla;w [목적함수의 샘플 추정]&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8706&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;장점&lt;/b&gt;: 온라인 학습, 빠른 업데이트&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;단점&lt;/b&gt;: 노이지한 업데이트&lt;/p&gt;
&lt;h4 id=&quot;Batch-Gradient-Descent&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8707&quot; data-ke-size=&quot;size20&quot;&gt;Batch Gradient Descent&lt;/h4&gt;
&lt;pre class=&quot;less&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;8708&quot;&gt;&lt;code&gt;w &amp;larr; w - &amp;alpha; (1/n) &amp;Sigma;ᵢ &amp;nabla;w [각 샘플의 목적함수]&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8709&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;장점&lt;/b&gt;: 안정적 업데이트&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;단점&lt;/b&gt;: 메모리 요구량 크고 느림&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8710&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;강화학습에서는 SGD 주로 사용&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(온라인 특성상)&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8711&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8712&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;5.-Value-Function-Approximation&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8713&quot; data-ke-size=&quot;size26&quot;&gt;5. Value Function Approximation&lt;/h2&gt;
&lt;h3 id=&quot;5.1-%EB%AC%B8%EC%A0%9C-%EC%A0%95%EC%9D%98&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8714&quot; data-ke-size=&quot;size23&quot;&gt;5.1 문제 정의&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8715&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목표&lt;/b&gt;: 정책 &amp;pi;에 대해 V^&amp;pi;(s) &amp;asymp; V̂(s, w) 학습&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8716&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;핵심 도전&lt;/b&gt;: 참값 V^&amp;pi;(s) 모름 &amp;rarr; Target 필요!&lt;/p&gt;
&lt;h3 id=&quot;5.2-Target-%EC%84%A0%ED%83%9D%EC%97%90-%EB%94%B0%EB%A5%B8-%EB%B0%A9%EB%B2%95%EB%93%A4&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8717&quot; data-ke-size=&quot;size23&quot;&gt;5.2 Target 선택에 따른 방법들&lt;/h3&gt;
&lt;h4 id=&quot;Monte-Carlo-Function-Approximation&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8718&quot; data-ke-size=&quot;size20&quot;&gt;Monte Carlo Function Approximation&lt;/h4&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8719&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Target&lt;/b&gt;: 실제 Return Gt&lt;/p&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;8720&quot;&gt;&lt;code&gt;목적함수: J(w) = E[(Gt - V̂(s, w))&amp;sup2;]
업데이트: w &amp;larr; w + &amp;alpha;[Gt - V̂(St, w)]&amp;phi;(St)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8721&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;특징&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;8722&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;8723&quot;&gt;Unbiased target (Gt는 실제 값)&lt;/li&gt;
&lt;li data-nodeid=&quot;8725&quot;&gt;High variance&lt;/li&gt;
&lt;li data-nodeid=&quot;8727&quot;&gt;에피소드 완료 후 업데이트&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;TD-Function-Approximation&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8729&quot; data-ke-size=&quot;size20&quot;&gt;TD Function Approximation&lt;/h4&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8730&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Target&lt;/b&gt;: TD Target (R_{t+1} + &amp;gamma;V̂(S_{t+1}, w))&lt;/p&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;8731&quot;&gt;&lt;code&gt;목적함수: J(w) = E[(R_{t+1} + &amp;gamma;V̂(S_{t+1}, w) - V̂(St, w))&amp;sup2;]
업데이트: w &amp;larr; w + &amp;alpha;[R_{t+1} + &amp;gamma;V̂(S_{t+1}, w) - V̂(St, w)]&amp;phi;(St)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8732&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;특징&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;8733&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;8734&quot;&gt;Biased target (추정값 사용)&lt;/li&gt;
&lt;li data-nodeid=&quot;8736&quot;&gt;Low variance&lt;/li&gt;
&lt;li data-nodeid=&quot;8738&quot;&gt;매 스텝 업데이트 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;5.3-%EC%88%98%EB%A0%B4%EC%84%B1-%EB%B6%84%EC%84%9D&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8740&quot; data-ke-size=&quot;size23&quot;&gt;5.3 수렴성 분석&lt;/h3&gt;
&lt;h4 id=&quot;Linear-Function-Approximation&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8741&quot; data-ke-size=&quot;size20&quot;&gt;Linear Function Approximation&lt;/h4&gt;
&lt;div data-nodeid=&quot;8742&quot;&gt;&lt;b&gt;Monte Carlo&lt;/b&gt;: 항상 global optimum으로 수렴&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;TD(0)&lt;/b&gt;: local optimum으로 수렴 (하지만 좋은 해)&lt;/div&gt;
&lt;h4 id=&quot;Non-linear-Function-Approximation&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8743&quot; data-ke-size=&quot;size20&quot;&gt;Non-linear Function Approximation&lt;/h4&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8744&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제점&lt;/b&gt;: 수렴 보장 없음, 발산 가능&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;해결책&lt;/b&gt;: 경험 재생, 타겟 네트워크 등&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8745&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8746&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;6.-Action-Value-Function-Approximation&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8747&quot; data-ke-size=&quot;size26&quot;&gt;6. Action Value Function Approximation&lt;/h2&gt;
&lt;h3 id=&quot;6.1-%EC%99%9C-Action-Value-Function%EC%9D%B8%EA%B0%80%3F&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8748&quot; data-ke-size=&quot;size23&quot;&gt;6.1 왜 Action Value Function인가?&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8749&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Control 문제를 위해서&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;vbnet&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;8750&quot;&gt;&lt;code&gt;정책 개선: &amp;pi;'(s) = argmax_a Q̂(s, a, w)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8751&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Model-Free 특성&lt;/b&gt;: 환경 모델 없이도 정책 개선 가능&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8752&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;6.2-Action-Value%EC%9D%98-%ED%8A%B9%EC%A7%95-%ED%91%9C%ED%98%84&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8753&quot; data-ke-size=&quot;size23&quot;&gt;6.2 Action Value의 특징 표현&lt;/h3&gt;
&lt;h4 id=&quot;%EB%B0%A9%EB%B2%95-1%3A-State-Action-%ED%8A%B9%EC%A7%95&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8754&quot; data-ke-size=&quot;size20&quot;&gt;방법 1: State-Action 특징&lt;/h4&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;8755&quot;&gt;&lt;code&gt;&amp;phi;(s, a) = [&amp;phi;₁(s,a), &amp;phi;₂(s,a), ..., &amp;phi;ₙ(s,a)]ᵀ
Q̂(s, a, w) = &amp;phi;(s, a)ᵀw&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;h4 id=&quot;%EB%B0%A9%EB%B2%95-2%3A-%ED%96%89%EB%8F%99%EB%B3%84-%EB%B6%84%EB%A6%AC-%ED%8A%B9%EC%A7%95&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8756&quot; data-ke-size=&quot;size20&quot;&gt;방법 2: 행동별 분리 특징&lt;/h4&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;8757&quot;&gt;&lt;code&gt;&amp;phi;(s) = [&amp;phi;₁(s), &amp;phi;₂(s), ..., &amp;phi;ₙ(s)]ᵀ
Q̂(s, a, w) = &amp;phi;(s)ᵀwa  (행동 a마다 다른 가중치)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8758&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;6.3-Control-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EB%93%A4%EC%9D%98-Function-Approximation&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8759&quot; data-ke-size=&quot;size23&quot;&gt;6.3 Control 알고리즘들의 Function Approximation&lt;/h3&gt;
&lt;h4 id=&quot;Monte-Carlo-Control-with-Function-Approximation&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8760&quot; data-ke-size=&quot;size20&quot;&gt;Monte Carlo Control with Function Approximation&lt;/h4&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;8761&quot;&gt;&lt;code&gt;목적함수: J(w) = E[(Gt - Q̂(s, a, w))&amp;sup2;]
업데이트: w &amp;larr; w + &amp;alpha;[Gt - Q̂(St, At, w)]&amp;nabla;w Q̂(St, At, w)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;h4 id=&quot;SARSA-with-Function-Approximation&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8762&quot; data-ke-size=&quot;size20&quot;&gt;SARSA with Function Approximation&lt;/h4&gt;
&lt;pre class=&quot;angelscript&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;8763&quot;&gt;&lt;code&gt;Target: R_{t+1} + &amp;gamma;Q̂(S_{t+1}, A_{t+1}, w)
업데이트: w &amp;larr; w + &amp;alpha;[R_{t+1} + &amp;gamma;Q̂(S_{t+1}, A_{t+1}, w) - Q̂(St, At, w)]&amp;nabla;w Q̂(St, At, w)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;h4 id=&quot;Q-Learning-with-Function-Approximation&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8764&quot; data-ke-size=&quot;size20&quot;&gt;Q-Learning with Function Approximation&lt;/h4&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;8765&quot;&gt;&lt;code&gt;Target: R_{t+1} + &amp;gamma; max_a Q̂(S_{t+1}, a, w)
업데이트: w &amp;larr; w + &amp;alpha;[R_{t+1} + &amp;gamma; max_a Q̂(S_{t+1}, a, w) - Q̂(St, At, w)]&amp;nabla;w Q̂(St, At, w)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8766&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;6.4-%EA%B0%81-%EB%B0%A9%EB%B2%95%EC%9D%98-%ED%8A%B9%EC%84%B1-%EB%B9%84%EA%B5%90&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8767&quot; data-ke-size=&quot;size23&quot;&gt;6.4 각 방법의 특성 비교&lt;/h3&gt;
&lt;pre class=&quot;less&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;8768&quot;&gt;&lt;code&gt;방법TargetBiasVariance수렴성MCGt없음높음보장SARSAR+&amp;gamma;Q̂(s',a')있음낮음조건부Q-LearningR+&amp;gamma;max Q̂(s',a)있음낮음어려움&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8769&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8770&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8771&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;7.-%EC%8B%A4%EC%A0%9C-%EA%B5%AC%ED%98%84-%EA%B3%A0%EB%A0%A4%EC%82%AC%ED%95%AD&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8772&quot; data-ke-size=&quot;size26&quot;&gt;7. 실제 구현 고려사항&lt;/h2&gt;
&lt;h3 id=&quot;7.1-%ED%8A%B9%EC%A7%95-%EC%84%A4%EA%B3%84-(Feature-Engineering)&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8773&quot; data-ke-size=&quot;size23&quot;&gt;7.1 특징 설계 (Feature Engineering)&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8774&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;좋은 특징의 조건&lt;/b&gt;:&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; color: #222222;&quot; data-nodeid=&quot;8775&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-nodeid=&quot;8776&quot;&gt;&lt;b&gt;관련성&lt;/b&gt;: 가치와 밀접한 관련&lt;/li&gt;
&lt;li data-nodeid=&quot;8778&quot;&gt;&lt;b&gt;차별성&lt;/b&gt;: 다른 상태들을 구분 가능&lt;/li&gt;
&lt;li data-nodeid=&quot;8780&quot;&gt;&lt;b&gt;일반화&lt;/b&gt;: 유사한 상태들에 일관된 표현&lt;/li&gt;
&lt;li data-nodeid=&quot;8782&quot;&gt;&lt;b&gt;효율성&lt;/b&gt;: 계산 비용 고려&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8784&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;특징 설계 방법들&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;8785&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;8786&quot;&gt;&lt;b&gt;도메인 지식 활용&lt;/b&gt;: 전문가가 직접 설계&lt;/li&gt;
&lt;li data-nodeid=&quot;8788&quot;&gt;&lt;b&gt;자동 특징 추출&lt;/b&gt;: 원시 데이터에서 자동 생성&lt;/li&gt;
&lt;li data-nodeid=&quot;8790&quot;&gt;&lt;b&gt;표현 학습&lt;/b&gt;: 특징과 가치를 동시에 학습&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;7.2-%ED%95%99%EC%8A%B5%EB%A5%A0-%EC%84%A4%EC%A0%95&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8792&quot; data-ke-size=&quot;size23&quot;&gt;7.2 학습률 설정&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8793&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;적응적 학습률&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;excel&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;8794&quot;&gt;&lt;code&gt;&amp;alpha;_t = &amp;alpha;_0 / (1 + t)  또는  &amp;alpha;_t = &amp;alpha;_0 / &amp;radic;t&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8795&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;조건&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;8796&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;8797&quot;&gt;&amp;Sigma; &amp;alpha;_t = &amp;infin; (충분한 학습)&lt;/li&gt;
&lt;li data-nodeid=&quot;8799&quot;&gt;&amp;Sigma; &amp;alpha;_t&amp;sup2; &amp;lt; &amp;infin; (수렴 보장)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;7.3-%EC%95%88%EC%A0%95%EC%84%B1-%EA%B0%9C%EC%84%A0-%EA%B8%B0%EB%B2%95&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8801&quot; data-ke-size=&quot;size23&quot;&gt;7.3 안정성 개선 기법&lt;/h3&gt;
&lt;h4 id=&quot;Experience-Replay&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8802&quot; data-ke-size=&quot;size20&quot;&gt;Experience Replay&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;8803&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;8804&quot;&gt;과거 경험을 버퍼에 저장&lt;/li&gt;
&lt;li data-nodeid=&quot;8806&quot;&gt;랜덤 샘플링으로 배치 학습&lt;/li&gt;
&lt;li data-nodeid=&quot;8808&quot;&gt;데이터 효율성과 안정성 개선&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;Target-Network&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8810&quot; data-ke-size=&quot;size20&quot;&gt;Target Network&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;8811&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;8812&quot;&gt;별도의 타겟 네트워크 유지&lt;/li&gt;
&lt;li data-nodeid=&quot;8814&quot;&gt;주기적으로 메인 네트워크 복사&lt;/li&gt;
&lt;li data-nodeid=&quot;8816&quot;&gt;Q-Learning의 발산 문제 완화&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8818&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8819&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;8.-%ED%95%A8%EC%88%98-%EA%B7%BC%EC%82%AC%EC%9D%98-%ED%95%9C%EA%B3%84%EC%99%80-%EB%8F%84%EC%A0%84&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8820&quot; data-ke-size=&quot;size26&quot;&gt;8. 함수 근사의 한계와 도전&lt;/h2&gt;
&lt;h3 id=&quot;8.1-%EA%B7%BC%EC%82%AC-%EC%98%A4%EC%B0%A8-(Approximation-Error)&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8821&quot; data-ke-size=&quot;size23&quot;&gt;8.1 근사 오차 (Approximation Error)&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8822&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;불가피한 오차&lt;/b&gt;: 유한한 매개변수로 복잡한 함수 근사의 한계&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8823&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Deadly Triad&lt;/b&gt;:&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; color: #222222;&quot; data-nodeid=&quot;8824&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-nodeid=&quot;8825&quot;&gt;&lt;b&gt;Function Approximation&lt;/b&gt;: 근사 오차&lt;/li&gt;
&lt;li data-nodeid=&quot;8827&quot;&gt;&lt;b&gt;Bootstrapping&lt;/b&gt;: 추정값으로 추정값 업데이트&lt;/li&gt;
&lt;li data-nodeid=&quot;8829&quot;&gt;&lt;b&gt;Off-policy&lt;/b&gt;: 행동 정책과 학습 정책 불일치&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8831&quot; data-ke-size=&quot;size16&quot;&gt;&amp;rarr; 이 세 요소가 결합되면 발산 위험 급증&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8832&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8833&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;8.2-%EC%B0%A8%EC%9B%90%EC%9D%98-%EC%A0%80%EC%A3%BC-(Curse-of-Dimensionality)&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8834&quot; data-ke-size=&quot;size23&quot;&gt;8.2 차원의 저주 (Curse of Dimensionality)&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8835&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제&lt;/b&gt;: 특징 차원이 증가하면 필요한 데이터 기하급수적 증가&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8836&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;해결 방향&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;8837&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;8838&quot;&gt;&lt;b&gt;차원 축소&lt;/b&gt;: PCA, autoencoder 등&lt;/li&gt;
&lt;li data-nodeid=&quot;8840&quot;&gt;&lt;b&gt;정규화&lt;/b&gt;: L1, L2 regularization&lt;/li&gt;
&lt;li data-nodeid=&quot;8842&quot;&gt;&lt;b&gt;특징 선택&lt;/b&gt;: 중요한 특징만 선별&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8844&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8845&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;8.3-%ED%83%90%ED%97%98%EA%B3%BC-%ED%95%A8%EC%88%98-%EA%B7%BC%EC%82%AC&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8846&quot; data-ke-size=&quot;size23&quot;&gt;8.3 탐험과 함수 근사&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8847&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제&lt;/b&gt;: 함수 근사 시 탐험 전략 복잡해짐&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8848&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;UCB의 확장&lt;/b&gt;: 불확실성 추정이 어려움&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;해결책&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;8849&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;8850&quot;&gt;Bayesian 접근법&lt;/li&gt;
&lt;li data-nodeid=&quot;8852&quot;&gt;Ensemble 방법&lt;/li&gt;
&lt;li data-nodeid=&quot;8854&quot;&gt;Dropout을 이용한 불확실성 추정&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8856&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;9.-Chapter-6-%EC%A0%95%EB%A6%AC-%EB%B0%8F-%EB%8B%A4%EC%9D%8C-%EB%8B%A8%EA%B3%84&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8857&quot; data-ke-size=&quot;size26&quot;&gt;9. Chapter 6 정리 및 다음 단계&lt;/h2&gt;
&lt;h3 id=&quot;9.1-Function-Approximation%EC%9D%B4-%ED%95%B4%EA%B2%B0%ED%95%9C-%EA%B2%83&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8858&quot; data-ke-size=&quot;size23&quot;&gt;9.1 Function Approximation이 해결한 것&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8859&quot; data-ke-size=&quot;size16&quot;&gt;✅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;확장성&lt;/b&gt;: 큰 상태 공간 처리 가능 ✅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;일반화&lt;/b&gt;: 새로운 상태에서도 합리적 성능 ✅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;메모리 효율&lt;/b&gt;: 고정된 크기의 매개변수 ✅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;실용성&lt;/b&gt;: 현실 문제에 적용 가능&lt;/p&gt;
&lt;h3 id=&quot;9.2-%EC%84%A0%ED%98%95-%ED%95%A8%EC%88%98-%EA%B7%BC%EC%82%AC%EC%9D%98-%EC%84%B1%EA%B3%BC%EC%99%80-%ED%95%9C%EA%B3%84&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8860&quot; data-ke-size=&quot;size23&quot;&gt;9.2 선형 함수 근사의 성과와 한계&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8861&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;성과&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;8862&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;8863&quot;&gt;이론적 보장 (수렴성)&lt;/li&gt;
&lt;li data-nodeid=&quot;8865&quot;&gt;계산 효율성&lt;/li&gt;
&lt;li data-nodeid=&quot;8867&quot;&gt;해석 가능성&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8869&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;한계&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;8870&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;8871&quot;&gt;표현력 제한&lt;/li&gt;
&lt;li data-nodeid=&quot;8873&quot;&gt;특징 설계에 의존&lt;/li&gt;
&lt;li data-nodeid=&quot;8875&quot;&gt;복잡한 패턴 학습 어려움&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;9.3-%EB%82%A8%EC%9D%80-%EB%8F%84%EC%A0%84%EA%B3%BC%EC%A0%9C&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8877&quot; data-ke-size=&quot;size23&quot;&gt;9.3 남은 도전과제&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8878&quot; data-ke-size=&quot;size16&quot;&gt;❌&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;표현력&lt;/b&gt;: 더 복잡한 함수 근사 필요 ❌&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;특징 학습&lt;/b&gt;: 자동 특징 추출 ❌&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;안정성&lt;/b&gt;: 비선형 함수 근사의 수렴 보장 ❌&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;샘플 효율성&lt;/b&gt;: 더 적은 데이터로 학습&lt;/p&gt;
&lt;h3 id=&quot;9.4-%EB%8B%A4%EC%9D%8C-%EB%8B%A8%EA%B3%84%3A-Deep-Reinforcement-Learning&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8879&quot; data-ke-size=&quot;size23&quot;&gt;9.4 다음 단계: Deep Reinforcement Learning&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8880&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;해결하고 싶은 문제들&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;8881&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;8882&quot;&gt;&quot;더 복잡한 함수는?&quot; &amp;rarr; 신경망 (Deep RL)&lt;/li&gt;
&lt;li data-nodeid=&quot;8884&quot;&gt;&quot;특징을 자동으로 학습하려면?&quot; &amp;rarr; End-to-end 학습&lt;/li&gt;
&lt;li data-nodeid=&quot;8886&quot;&gt;&quot;이미지/텍스트 처리는?&quot; &amp;rarr; CNN, RNN 등&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8888&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;핵심 연결점&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;8889&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;8890&quot;&gt;Function Approximation &amp;rarr; Neural Network&lt;/li&gt;
&lt;li data-nodeid=&quot;8892&quot;&gt;Q-Learning + Function Approximation &amp;rarr; DQN&lt;/li&gt;
&lt;li data-nodeid=&quot;8894&quot;&gt;Policy Gradient + Function Approximation &amp;rarr; Actor-Critic&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;9.5-%ED%98%84%EB%8C%80-AI%EC%99%80%EC%9D%98-%EC%97%B0%EA%B2%B0%EA%B3%A0%EB%A6%AC&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8896&quot; data-ke-size=&quot;size23&quot;&gt;9.5 현대 AI와의 연결고리&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8897&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;이 Chapter가 특히 중요한 이유&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;8898&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;8899&quot;&gt;&lt;b&gt;LLM의 RLHF&lt;/b&gt;: 함수 근사로 가치/정책 학습&lt;/li&gt;
&lt;li data-nodeid=&quot;8901&quot;&gt;&lt;b&gt;ChatGPT&lt;/b&gt;: Q-function을 신경망으로 근사&lt;/li&gt;
&lt;li data-nodeid=&quot;8903&quot;&gt;&lt;b&gt;AlphaGo&lt;/b&gt;: 가치 네트워크와 정책 네트워크&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8905&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;9.6-%ED%95%B5%EC%8B%AC-%EB%A9%94%EC%8B%9C%EC%A7%80&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;8906&quot; data-ke-size=&quot;size23&quot;&gt;9.6 핵심 메시지&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8907&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Function Approximation은 실용적 강화학습의 시작&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;8908&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;8909&quot;&gt;Tabular 방법의 한계 극복&lt;/li&gt;
&lt;li data-nodeid=&quot;8911&quot;&gt;현실 문제 적용 가능성 제공&lt;/li&gt;
&lt;li data-nodeid=&quot;8913&quot;&gt;현대 Deep RL의 이론적 기초&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8915&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&quot;이제 강화학습이 진짜 실세계 문제를 풀 준비가 되었다!&quot;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8916&quot; data-ke-size=&quot;size16&quot;&gt;함수 근사는 강화학습을 장난감 문제에서 실제 응용으로 끌어올린 핵심 기술이며, 현재 우리가 사용하는 모든 Deep RL 알고리즘의 이론적 토대임.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8917&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8918&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8919&quot; data-ke-size=&quot;size16&quot;&gt;이 장에서 우리는 강화학습의 확장성 문제를 해결하는 핵심 도구를 손에 넣었음. 함수 근사를 통해 무한한 상태 공간도 유한한 매개변수로 다룰 수 있게 되었고, 일반화 능력을 통해 미경험 상황에서도 합리적인 판단을 할 수 있게 되었음.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8920&quot; data-ke-size=&quot;size16&quot;&gt;선형 함수 근사에서 시작해서 신경망까지, 각각의 방법이 가진 장단점을 이해했음. 특히 안정성과 수렴성이라는 새로운 도전 과제들을 만났지만, 이를 해결하는 다양한 기법들도 배웠음. Gradient TD, Experience Replay, Target Networks 등은 모두 함수 근사의 불안정성을 극복하려는 노력의 결과임.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8921&quot; data-ke-size=&quot;size16&quot;&gt;하지만 여전히 한 가지 아쉬운 점이 있음. 지금까지는 가치함수만 근사했지만, 정책 자체를 직접 근사하는 방법도 있음. 특히 연속 행동 공간에서는 정책을 직접 매개변수화하는 것이 더 자연스러울 수 있음. 또한 가치 기반 방법과 정책 기반 방법을 결합한 Actor-Critic 구조도 강력한 도구임.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8922&quot; data-ke-size=&quot;size16&quot;&gt;다음 장에서는 이런 정책 기반 방법들을 살펴볼 예정임. Policy Gradient부터 시작해서 REINFORCE, Actor-Critic까지, 가치함수 없이도 직접 최적 정책을 학습하는 방법들을 알아보자. 함수 근사와 정책 기반 방법이 만나면, 연속 제어 같은 더 복잡한 문제들도 해결할 수 있게 됨.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8923&quot; data-ke-size=&quot;size16&quot;&gt;테이블에서 함수로, 가치에서 정책으로. 강화학습의 지평이 계속 넓어지고 있음. 이제 정말로 현실 세계의 복잡한 문제들에 도전할 준비가 되었음.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8924&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;8925&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>AI/Reinforcement Learning</category>
      <author>땽뚕</author>
      <guid isPermaLink="true">https://asidefine.tistory.com/365</guid>
      <comments>https://asidefine.tistory.com/365#entry365comment</comments>
      <pubDate>Sun, 10 Aug 2025 10:52:01 +0900</pubDate>
    </item>
    <item>
      <title>[2025 강화학습 Recap] Chapter 5. Model-Free Control</title>
      <link>https://asidefine.tistory.com/364</link>
      <description>&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;[2025&amp;nbsp;강화학습&amp;nbsp;Recap]&amp;nbsp;Chapter&amp;nbsp;5.&amp;nbsp;Model-Free&amp;nbsp;Control&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;Chapter 4에서 주어진 정책의 가치를 추정하는 방법을 배웠지만, 여전히 핵심 질문이 남아있음. &quot;이제 가치를 구할 수 있으니, 어떻게 더 나은 정책을 찾을까?&quot;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6974&quot; data-ke-size=&quot;size16&quot;&gt;지금까지는 &quot;이 정책을 따르면 얼마나 좋을까?&quot;라는 평가 문제만 해결했음. 하지만 강화학습의 진짜 목표는 &quot;어떤 정책이 가장 좋을까?&quot;를 찾는 것임. 환경의 모델도 모르는 상황에서 어떻게 최적 정책을 학습할 수 있을까?&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6975&quot; data-ke-size=&quot;size16&quot;&gt;답은 Chapter 3에서 배운 Generalized Policy Iteration 구조에 있음. 평가(Evaluation)와 개선(Improvement)을 반복하되, 이제 모든 것을 실제 경험으로 대체하는 것임. 하지만 여기에는 새로운 도전이 기다리고 있음. 모델 없이 어떻게 정책을 개선할까? 탐험과 활용의 딜레마는 어떻게 해결할까?&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6976&quot; data-ke-size=&quot;size16&quot;&gt;이 장에서는 Monte Carlo부터 시작해서 SARSA, Q-Learning까지 차례로 살펴보며 Model-free Control의 완전한 그림을 그려볼 예정임. 특히 On-policy와 Off-policy라는 두 가지 근본적으로 다른 접근법의 차이점과 각각의 장단점을 명확히 이해하게 될 것임.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6977&quot; data-ke-size=&quot;size16&quot;&gt;드디어 환경과 직접 상호작용하면서 스스로 최적 정책을 찾아가는 진짜 강화학습의 세계로 들어가보자.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6978&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6979&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;1.-Chapter-4%EC%97%90%EC%84%9C-Chapter-5%EB%A1%9C%3A-Prediction%EC%97%90%EC%84%9C-Control%EB%A1%9C&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;6980&quot; data-ke-size=&quot;size26&quot;&gt;1. Chapter 4에서 Chapter 5로: Prediction에서 Control로&lt;/h2&gt;
&lt;h3 id=&quot;1.1-Chapter-4%EC%97%90%EC%84%9C-%EB%8B%AC%EC%84%B1%ED%95%9C-%EA%B2%83&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;6981&quot; data-ke-size=&quot;size23&quot;&gt;1.1 Chapter 4에서 달성한 것&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6982&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Model-Free Prediction 문제 해결&lt;/b&gt;: ✅ 환경 모델 없이도 정책의 가치 추정 가능 ✅ Monte Carlo: 전체 에피소드로 실제 Return 사용 ✅ Temporal Difference: 한 스텝 + 추정값으로 즉시 업데이트&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6983&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;1.2-%EB%82%A8%EC%9D%80-%EB%AC%B8%EC%A0%9C%3A-Control&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;6984&quot; data-ke-size=&quot;size23&quot;&gt;1.2 남은 문제: Control&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6985&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;현재 상황&lt;/b&gt;: &quot;주어진 정책의 가치는 구할 수 있다&quot;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;다음 단계&lt;/b&gt;: &quot;어떻게 더 나은 정책을 찾을까?&quot;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6986&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Control 문제의 핵심&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;6987&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;6988&quot;&gt;Prediction: v&amp;pi;(s) 또는 q&amp;pi;(s,a) 구하기 ✅&lt;/li&gt;
&lt;li data-nodeid=&quot;6990&quot;&gt;&lt;b&gt;Control&lt;/b&gt;: 최적 정책 &amp;pi;* 찾기 ❓&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6992&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;1.3-Chatper-3.-DP%EC%97%90%EC%84%9C-%EB%B0%B0%EC%9A%B4-GPI-(Generalized-Policy-Iteration)&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;6993&quot; data-ke-size=&quot;size23&quot;&gt;1.3 Chatper 3. DP에서 배운 GPI (Generalized Policy Iteration)&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6994&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;기본 아이디어&lt;/b&gt;: Evaluation &amp;harr; Improvement 반복&lt;/p&gt;
&lt;pre class=&quot;julia&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;6995&quot;&gt;&lt;code&gt;&amp;pi;0 &amp;rarr; E &amp;rarr; &amp;pi;1 &amp;rarr; E &amp;rarr; &amp;pi;2 &amp;rarr; E &amp;rarr; ... &amp;rarr; &amp;pi;*&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6996&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Model-Free에서의 도전&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;6997&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;6998&quot;&gt;Evaluation: MC/TD로 해결 가능 ✅&lt;/li&gt;
&lt;li data-nodeid=&quot;7000&quot;&gt;Improvement: 모델 없이 어떻게? ❓&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7002&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7003&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;2.-Model-Free-Control%EC%9D%98-%EA%B8%B0%EB%B3%B8-%EC%9B%90%EB%A6%AC%EC%99%80-%EC%A0%91%EA%B7%BC%EB%B2%95%EB%93%A4&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7004&quot; data-ke-size=&quot;size26&quot;&gt;2. Model-Free Control의 기본 원리와 접근법들&lt;/h2&gt;
&lt;h3 id=&quot;2.1-Control-%EB%AC%B8%EC%A0%9C-%EC%A0%95%EC%9D%98&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7005&quot; data-ke-size=&quot;size23&quot;&gt;2.1 Control 문제 정의&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7006&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목표&lt;/b&gt;: 환경 모델 없이 최적 정책 &amp;pi;* 찾기&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7007&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;주어진 것&lt;/b&gt;: 환경과의 상호작용만 가능&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;찾아야 할 것&lt;/b&gt;: 최적 정책 &amp;pi;*(s) = argmax_a Q*(s,a)&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7008&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;2.2-%EC%99%9C-Model-Free-Control%EC%9D%B4-%EC%96%B4%EB%A0%A4%EC%9A%B4%EA%B0%80%3F&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7009&quot; data-ke-size=&quot;size23&quot;&gt;2.2 왜 Model-Free Control이 어려운가?&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7010&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;DP에서 Policy Improvement&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;7011&quot;&gt;&lt;code&gt;&amp;pi;'(s) = argmax_a &amp;Sigma; P(s'|s,a)[R(s,a) + &amp;gamma;v(s')]
                  &amp;uarr; 모델 필요!&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7012&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Model-Free에서는&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7013&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7014&quot;&gt;P(s'|s,a): 전이확률 모름&lt;/li&gt;
&lt;li data-nodeid=&quot;7016&quot;&gt;R(s,a): 보상함수 모름&lt;/li&gt;
&lt;li data-nodeid=&quot;7018&quot;&gt;직접 경험만 사용 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7020&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;rarr; 어떻게 정책을 개선할 것인가?&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7021&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;2.3-%EB%91%90-%EA%B0%80%EC%A7%80-%EA%B0%80%EB%8A%A5%ED%95%9C-%EC%A0%91%EA%B7%BC%EB%B2%95&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7022&quot; data-ke-size=&quot;size23&quot;&gt;2.3 두 가지 가능한 접근법&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7023&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Chapter 4에서 배운 두 방법을 Control에 적용&lt;/b&gt;:&lt;/p&gt;
&lt;h4 id=&quot;%EC%A0%91%EA%B7%BC%EB%B2%95-1%3A-Monte-Carlo-%EA%B8%B0%EB%B0%98&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7024&quot; data-ke-size=&quot;size20&quot;&gt;접근법 1: Monte Carlo 기반&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7025&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7026&quot;&gt;&lt;b&gt;장점&lt;/b&gt;: 개념적으로 단순, 정확한 추정&lt;/li&gt;
&lt;li data-nodeid=&quot;7028&quot;&gt;&lt;b&gt;단점&lt;/b&gt;: 에피소드 완료까지 대기 필요&lt;/li&gt;
&lt;li data-nodeid=&quot;7030&quot;&gt;&lt;b&gt;적용&lt;/b&gt;: Monte Carlo Control&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;%EC%A0%91%EA%B7%BC%EB%B2%95-2%3A-Temporal-Difference-%EA%B8%B0%EB%B0%98&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7032&quot; data-ke-size=&quot;size20&quot;&gt;접근법 2: Temporal Difference 기반&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7033&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7034&quot;&gt;&lt;b&gt;장점&lt;/b&gt;: 실시간 학습, 빠른 업데이트&lt;/li&gt;
&lt;li data-nodeid=&quot;7036&quot;&gt;&lt;b&gt;단점&lt;/b&gt;: 추정값 사용으로 편향 가능&lt;/li&gt;
&lt;li data-nodeid=&quot;7038&quot;&gt;&lt;b&gt;적용&lt;/b&gt;: SARSA, Q-Learning&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7040&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;2.4-%EC%99%9C-Monte-Carlo%EB%B6%80%ED%84%B0-%EC%8B%9C%EC%9E%91%ED%95%98%EB%8A%94%EA%B0%80%3F&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7041&quot; data-ke-size=&quot;size23&quot;&gt;2.4 왜 Monte Carlo부터 시작하는가?&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7042&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;교육적 순서&lt;/b&gt;:&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; color: #222222;&quot; data-nodeid=&quot;7043&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-nodeid=&quot;7044&quot;&gt;&lt;b&gt;개념적 단순함&lt;/b&gt;: MC는 실제 Return을 사용해서 이해하기 쉬움&lt;/li&gt;
&lt;li data-nodeid=&quot;7046&quot;&gt;&lt;b&gt;DP와의 연결&lt;/b&gt;: Policy Iteration 구조를 그대로 활용&lt;/li&gt;
&lt;li data-nodeid=&quot;7048&quot;&gt;&lt;b&gt;점진적 발전&lt;/b&gt;: MC의 한계를 통해 TD 방법의 필요성 부각&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7050&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;실제 발전 과정&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;routeros&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;7051&quot;&gt;&lt;code&gt;DP Policy Iteration &amp;rarr; MC Policy Iteration &amp;rarr; MC Control &amp;rarr; SARSA &amp;rarr; Q-Learning&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7052&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;3.-Monte-Carlo-Control&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7053&quot; data-ke-size=&quot;size26&quot;&gt;3. Monte Carlo Control&lt;/h2&gt;
&lt;h3 id=&quot;3.1-DP-Policy-Iteration%EC%97%90%EC%84%9C-MC-Policy-Iteration%EC%9C%BC%EB%A1%9C&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7054&quot; data-ke-size=&quot;size23&quot;&gt;3.1 DP Policy Iteration에서 MC Policy Iteration으로&lt;/h3&gt;
&lt;div data-nodeid=&quot;7055&quot;&gt;&lt;b&gt;DP Policy Iteration 구조 (복습)&lt;/b&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;(Chapter 3에서 배웠던 Model-Based Control 해결 방법)&lt;/b&gt;&lt;/div&gt;
&lt;pre class=&quot;routeros&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;7056&quot;&gt;&lt;code&gt;1. Policy Evaluation: 벨만 방정식으로 v&amp;pi;(s) 계산
2. Policy Improvement: &amp;pi;'(s) = argmax_a &amp;Sigma; P(s'|s,a)[R(s,a) + &amp;gamma;v&amp;pi;(s')]
3. 수렴할 때까지 반복&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7057&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;MC Policy Iteration 아이디어&lt;/b&gt;: &quot;DP와 같은 구조를 사용하되, 벨만 방정식 대신 MC로 가치 추정하자!&quot;&lt;/p&gt;
&lt;pre class=&quot;routeros&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;7058&quot;&gt;&lt;code&gt;1. Policy Evaluation: MC로 q&amp;pi;(s,a) 추정 &amp;larr; 모델 불필요!
2. Policy Improvement: &amp;pi;'(s) = argmax_a q&amp;pi;(s,a) &amp;larr; 모델 불필요!
3. 수렴할 때까지 반복&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7059&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;핵심 통찰&lt;/b&gt;: Action-Value Function Q(s,a)를 사용하면 모델 없이도 정책 개선 가능!&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7060&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;3.2-MC-Control%EC%9D%B4-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EB%B2%A8%EB%A7%8C-%EB%B0%A9%EC%A0%95%EC%8B%9D&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7061&quot; data-ke-size=&quot;size23&quot;&gt;3.2 MC Control이 사용하는 벨만 방정식&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7062&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;중요한 구분&lt;/b&gt;: MC Control은 어떤 벨만 방정식을 사용하는가?&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7063&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Bellman Expectation Equation 사용&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;7064&quot;&gt;&lt;code&gt;q&amp;pi;(s,a) = E[R + &amp;gamma; &amp;Sigma; &amp;pi;(a'|s') q&amp;pi;(s',a')]
          &amp;uarr; 현재 정책 &amp;pi;에 대한 가치&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7065&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;왜 Bellman Optimality가 아닌가?&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7066&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7067&quot;&gt;
&lt;div data-nodeid=&quot;7068&quot;&gt;MC Control은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Policy Iteration 구조&lt;/b&gt;를 따름&lt;/div&gt;
&lt;/li&gt;
&lt;li data-nodeid=&quot;7069&quot;&gt;현재 정책의 가치를 정확히 추정한 후 개선&lt;/li&gt;
&lt;li data-nodeid=&quot;7071&quot;&gt;Bellman Optimality는 나중에 Q-Learning에서 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7073&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;3.3-Monte-Carlo-Policy-Iteration%EC%9D%98-3%EA%B0%80%EC%A7%80-%EB%AC%B8%EC%A0%9C%EC%A0%90&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7074&quot; data-ke-size=&quot;size23&quot;&gt;3.3 Monte Carlo Policy Iteration의 3가지 문제점&lt;/h3&gt;
&lt;h4 id=&quot;%EB%AC%B8%EC%A0%9C-1%3A-Value-Function-%EC%84%A0%ED%83%9D&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7075&quot; data-ke-size=&quot;size20&quot;&gt;문제 1: Value Function 선택&lt;/h4&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7076&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;State Value vs Action Value&lt;/b&gt;:&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7077&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;State Value Function 사용 시 문제&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;7078&quot;&gt;&lt;code&gt;&amp;pi;'(s) = argmax_a &amp;Sigma; P(s'|s,a)[R(s,a) + &amp;gamma;v(s')]
                  &amp;uarr; 모델 필요!&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7079&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;해결책: Action Value Function 사용&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;vbnet&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;7080&quot;&gt;&lt;code&gt;&amp;pi;'(s) = argmax_a q(s,a)  &amp;larr; 모델 불필요!&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7081&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Action Value의 장점&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7082&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7083&quot;&gt;모델 없이도 정책 개선 가능&lt;/li&gt;
&lt;li data-nodeid=&quot;7085&quot;&gt;행동 간 직접 비교 가능&lt;/li&gt;
&lt;li data-nodeid=&quot;7087&quot;&gt;Model-Free Control의 핵심&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;%EB%AC%B8%EC%A0%9C-2%3A-Exploration-%EB%B6%80%EC%A1%B1&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7089&quot; data-ke-size=&quot;size20&quot;&gt;문제 2: Exploration 부족&lt;/h4&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7090&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Pure Greedy Policy의 문제&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;7091&quot;&gt;&lt;code&gt;&amp;pi;(s) = argmax_a Q(s,a)  &amp;larr; 항상 최선만 선택&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7092&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제점&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7093&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7094&quot;&gt;탐험 부족으로 local optimum에 빠질 위험&lt;/li&gt;
&lt;li data-nodeid=&quot;7096&quot;&gt;미경험 상태-행동 쌍을 학습하지 못함&lt;/li&gt;
&lt;li data-nodeid=&quot;7098&quot;&gt;초기 추정이 잘못되면 개선 어려움&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7100&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;해결책: &amp;epsilon;-Greedy Policy&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;7101&quot;&gt;&lt;code&gt;&amp;pi;(a|s) = {
  1-&amp;epsilon;+&amp;epsilon;/|A|  if a = argmax Q(s,a)  (탐욕적 행동)
  &amp;epsilon;/|A|      otherwise              (탐험적 행동)
}&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7102&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;epsilon;-Greedy의 특징&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7103&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7104&quot;&gt;&amp;epsilon; 확률로 랜덤 행동 (exploration)&lt;/li&gt;
&lt;li data-nodeid=&quot;7106&quot;&gt;1-&amp;epsilon; 확률로 최선 행동 (exploitation)&lt;/li&gt;
&lt;li data-nodeid=&quot;7108&quot;&gt;모든 행동에 양수 확률 보장&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;%EB%AC%B8%EC%A0%9C-3%3A-Policy-Evaluation%EC%9D%98-%EB%B9%84%ED%9A%A8%EC%9C%A8%EC%84%B1&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7110&quot; data-ke-size=&quot;size20&quot;&gt;문제 3: Policy Evaluation의 비효율성&lt;/h4&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7111&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;완전한 Policy Evaluation 문제&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7112&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7113&quot;&gt;수렴할 때까지 기다리면 너무 오래 걸림&lt;/li&gt;
&lt;li data-nodeid=&quot;7115&quot;&gt;실제로는 완전한 수렴 불필요&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7117&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;해결책: 제한된 Evaluation&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7118&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7119&quot;&gt;한 에피소드만 실행하고 바로 개선&lt;/li&gt;
&lt;li data-nodeid=&quot;7121&quot;&gt;Value Iteration과 유사한 아이디어&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7123&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;3.3-Monte-Carlo-Control-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7124&quot; data-ke-size=&quot;size23&quot;&gt;3.3 Monte Carlo Control 알고리즘&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7125&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;최종 알고리즘&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;7126&quot;&gt;&lt;code&gt;1. 임의의 &amp;epsilon;-greedy 정책으로 초기화
2. 반복:
   a) 현재 정책으로 에피소드 실행
   b) 모든 (s,a) 쌍에 대해 Q(s,a) 업데이트
   c) 각 상태에서 &amp;epsilon;-greedy로 정책 개선&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7127&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;3.4-GLIE-(Greedy-in-the-Limit-with-Infinite-Exploration)&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7128&quot; data-ke-size=&quot;size23&quot;&gt;3.4 GLIE (Greedy in the Limit with Infinite Exploration)&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7129&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;정의&lt;/b&gt;: 무한한 탐험 후 탐욕적 정책으로 수렴&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7130&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;GLIE 조건&lt;/b&gt;:&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; color: #222222;&quot; data-nodeid=&quot;7131&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-nodeid=&quot;7132&quot;&gt;모든 상태-행동 쌍이 무한히 탐험됨&lt;/li&gt;
&lt;li data-nodeid=&quot;7134&quot;&gt;정책이 탐욕적 정책으로 수렴&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7136&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;epsilon;-Greedy with Decaying &amp;epsilon;&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;excel&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;7137&quot;&gt;&lt;code&gt;&amp;epsilon;_t = 1/t  (또는 다른 감소 함수)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7138&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;왜 GLIE가 중요한가?&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7139&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7140&quot;&gt;초기에는 충분한 탐험 보장&lt;/li&gt;
&lt;li data-nodeid=&quot;7142&quot;&gt;나중에는 최적 정책으로 수렴&lt;/li&gt;
&lt;li data-nodeid=&quot;7144&quot;&gt;이론적 수렴 보장의 기반&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7146&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;4.-Temporal-Difference-Control%3A-SARSA&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7147&quot; data-ke-size=&quot;size26&quot;&gt;4. Temporal Difference Control: SARSA&lt;/h2&gt;
&lt;h3 id=&quot;4.1-SARSA%EC%9D%98-%EB%93%B1%EC%9E%A5-%EB%B0%B0%EA%B2%BD&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7148&quot; data-ke-size=&quot;size23&quot;&gt;4.1 SARSA의 등장 배경&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7149&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Monte Carlo Control의 한계&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7150&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7151&quot;&gt;에피소드가 끝날 때까지 기다려야 함&lt;/li&gt;
&lt;li data-nodeid=&quot;7153&quot;&gt;긴 에피소드나 연속 태스크에 부적합&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7155&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;SARSA의 아이디어&lt;/b&gt;: &quot;TD(0)를 Action Value Function에 적용하면?&quot;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7156&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;4.2-SARSA%EA%B0%80-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EB%B2%A8%EB%A7%8C-%EB%B0%A9%EC%A0%95%EC%8B%9D&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7157&quot; data-ke-size=&quot;size23&quot;&gt;4.2 SARSA가 사용하는 벨만 방정식&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7158&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Bellman Expectation Equation의 TD 버전&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;7159&quot;&gt;&lt;code&gt;q&amp;pi;(s,a) = E[R + &amp;gamma;q&amp;pi;(s',a')] where a' ~ &amp;pi;(&amp;middot;|s')&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7160&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;SARSA 업데이트&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;stata&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;7161&quot;&gt;&lt;code&gt;Q(St,At) &amp;larr; Q(St,At) + &amp;alpha;[Rt+1 + &amp;gamma;Q(St+1,At+1) - Q(St,At)]
                                     &amp;uarr; 실제 정책이 선택한 행동&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7162&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;핵심&lt;/b&gt;: 현재 정책이 실제로 선택할 다음 행동 At+1을 사용&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;이름의 유래&lt;/b&gt;: State-Action-Reward-State-Action&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7163&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;업데이트 규칙&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;stata&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;7164&quot;&gt;&lt;code&gt;Q(St,At) &amp;larr; Q(St,At) + &amp;alpha;[Rt+1 + &amp;gamma;Q(St+1,At+1) - Q(St,At)]&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7165&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;구성요소&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7166&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7167&quot;&gt;&lt;b&gt;TD Target&lt;/b&gt;: Rt+1 + &amp;gamma;Q(St+1,At+1)&lt;/li&gt;
&lt;li data-nodeid=&quot;7169&quot;&gt;&lt;b&gt;TD Error&lt;/b&gt;: Rt+1 + &amp;gamma;Q(St+1,At+1) - Q(St,At)&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7171&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;4.3-SARSA%EC%9D%98-%ED%8A%B9%EC%A7%95&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7172&quot; data-ke-size=&quot;size23&quot;&gt;4.3 SARSA의 특징&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7173&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;On-Policy 학습&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7174&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7175&quot;&gt;학습하는 정책 = 행동하는 정책&lt;/li&gt;
&lt;li data-nodeid=&quot;7177&quot;&gt;실제 따르는 정책의 가치를 학습&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7179&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;알고리즘 구조&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;dns&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;7180&quot;&gt;&lt;code&gt;1. 상태 S에서 정책에 따라 행동 A 선택
2. 행동 A 실행, 보상 R과 다음 상태 S' 관찰  
3. S'에서 정책에 따라 다음 행동 A' 선택
4. Q(S,A) 업데이트: Q(S,A) &amp;larr; Q(S,A) + &amp;alpha;[R + &amp;gamma;Q(S',A') - Q(S,A)]
5. S &amp;larr; S', A &amp;larr; A'로 이동&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&quot;4.4-SARSA-vs-Monte-Carlo&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7181&quot; data-ke-size=&quot;size23&quot;&gt;4.4 SARSA vs Monte Carlo&lt;/h3&gt;
&lt;pre class=&quot;stata&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;7182&quot;&gt;&lt;code&gt;특성Monte CarloSARSA학습 속도에피소드 후매 스텝적용 범위Episodic만모든 태스크Bias/VarianceUnbiased/High VarBiased/Low Var수렴성보장조건부&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7183&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7184&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;5.-Off-Policy-Learning&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7185&quot; data-ke-size=&quot;size26&quot;&gt;5. Off-Policy Learning&lt;/h2&gt;
&lt;h3 id=&quot;5.1-On-Policy-vs-Off-Policy&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7186&quot; data-ke-size=&quot;size23&quot;&gt;5.1 On-Policy vs Off-Policy&lt;/h3&gt;
&lt;h4 id=&quot;On-Policy-Learning&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7187&quot; data-ke-size=&quot;size20&quot;&gt;On-Policy Learning&lt;/h4&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7188&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;정의&lt;/b&gt;: 학습하는 정책 = 행동하는 정책&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;예시&lt;/b&gt;: SARSA&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;특징&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7189&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7190&quot;&gt;실제 따르는 정책의 성능 학습&lt;/li&gt;
&lt;li data-nodeid=&quot;7192&quot;&gt;안전하고 안정적&lt;/li&gt;
&lt;li data-nodeid=&quot;7194&quot;&gt;탐험과 활용의 딜레마&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;Off-Policy-Learning&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7196&quot; data-ke-size=&quot;size20&quot;&gt;Off-Policy Learning&lt;/h4&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7197&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;정의&lt;/b&gt;: 학습하는 정책 &amp;ne; 행동하는 정책&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;예시&lt;/b&gt;: Q-Learning&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;특징&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7198&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7199&quot;&gt;한 정책으로 행동하며 다른 정책 학습&lt;/li&gt;
&lt;li data-nodeid=&quot;7201&quot;&gt;과거 경험 재활용 가능&lt;/li&gt;
&lt;li data-nodeid=&quot;7203&quot;&gt;더 효율적인 학습 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7205&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;5.2-Off-Policy%EC%9D%98-%EC%9E%A5%EC%A0%90&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7206&quot; data-ke-size=&quot;size23&quot;&gt;5.2 Off-Policy의 장점&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7207&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 탐험과 학습 분리&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7208&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7209&quot;&gt;Behavior Policy: 탐험 중심 (&amp;epsilon;-greedy)&lt;/li&gt;
&lt;li data-nodeid=&quot;7211&quot;&gt;Target Policy: 최적화 중심 (greedy)&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7213&quot; 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; color: #222222;&quot; data-nodeid=&quot;7214&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7215&quot;&gt;다른 에이전트의 경험 활용&lt;/li&gt;
&lt;li data-nodeid=&quot;7217&quot;&gt;과거 정책의 데이터 재사용&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7219&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. 안전한 학습&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7220&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7221&quot;&gt;보수적으로 행동하며 공격적으로 학습&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7223&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;5.3-Importance-Sampling&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7224&quot; data-ke-size=&quot;size23&quot;&gt;5.3 Importance Sampling&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7225&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;핵심 아이디어&lt;/b&gt;: 한 분포의 샘플로 다른 분포의 기댓값 추정&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7226&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;수학적 원리&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;perl&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;7227&quot;&gt;&lt;code&gt;E_p[X] = E_q[X &amp;middot; p(X)/q(X)]&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7228&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;강화학습 적용&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;ada&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;7229&quot;&gt;&lt;code&gt;E_&amp;pi;[Return] = E_&amp;mu;[Return &amp;middot; &amp;pi;(trajectory)/&amp;mu;(trajectory)]&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7230&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;5.4-Off-Policy-Monte-Carlo&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7231&quot; data-ke-size=&quot;size23&quot;&gt;5.4 Off-Policy Monte Carlo&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7232&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;기본 아이디어&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7233&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7234&quot;&gt;Behavior Policy &amp;mu;로 데이터 수집&lt;/li&gt;
&lt;li data-nodeid=&quot;7236&quot;&gt;Target Policy &amp;pi;에 대한 가치 학습&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7238&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Importance Sampling Ratio&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;x86asm&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;7239&quot;&gt;&lt;code&gt;&amp;rho; = &amp;prod;(&amp;pi;(At|St)/&amp;mu;(At|St))  (전체 궤적에 대해)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7240&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;업데이트&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;7241&quot;&gt;&lt;code&gt;V(s) &amp;larr; V(s) + &amp;alpha;[&amp;rho;&amp;middot;Gt - V(s)]&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7242&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제점&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7243&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7244&quot;&gt;&amp;mu;(a|s) = 0이면 사용 불가&lt;/li&gt;
&lt;li data-nodeid=&quot;7246&quot;&gt;High variance (여러 확률의 곱)&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7248&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;5.5-Off-Policy-TD-Learning&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7249&quot; data-ke-size=&quot;size23&quot;&gt;5.5 Off-Policy TD Learning&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7250&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;개선점&lt;/b&gt;: 한 스텝만 Importance Sampling&lt;/p&gt;
&lt;pre class=&quot;x86asm&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;7251&quot;&gt;&lt;code&gt;&amp;rho; = &amp;pi;(At|St)/&amp;mu;(At|St)  (한 스텝만)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7252&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;업데이트&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;7253&quot;&gt;&lt;code&gt;V(s) &amp;larr; V(s) + &amp;alpha;&amp;rho;[Rt+1 + &amp;gamma;V(St+1) - V(St)]&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7254&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;여전한 문제&lt;/b&gt;: Importance Sampling으로 인한 variance&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7255&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7256&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;6.-Q-Learning%3A-Off-Policy-TD-Control&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7257&quot; data-ke-size=&quot;size26&quot;&gt;6. Q-Learning: Off-Policy TD Control&lt;/h2&gt;
&lt;h3 id=&quot;6.1-Q-Learning%EC%9D%98-%ED%95%B5%EC%8B%AC-%EC%95%84%EC%9D%B4%EB%94%94%EC%96%B4&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7258&quot; data-ke-size=&quot;size23&quot;&gt;6.1 Q-Learning의 핵심 아이디어&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7259&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제 해결&lt;/b&gt;: &quot;Importance Sampling 없이 Off-Policy 가능한가?&quot;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7260&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;해답&lt;/b&gt;: Action Value Function + 다른 정책으로 다음 행동 선택&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7261&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;6.2-Q-Learning%EC%9D%B4-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EB%B2%A8%EB%A7%8C-%EB%B0%A9%EC%A0%95%EC%8B%9D&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7262&quot; data-ke-size=&quot;size23&quot;&gt;6.2 Q-Learning이 사용하는 벨만 방정식&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7263&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Bellman Optimality Equation의 TD 버전&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;7264&quot;&gt;&lt;code&gt;q*(s,a) = E[R + &amp;gamma; max_a' q*(s',a')]
                 &amp;uarr; 최적 행동 선택&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7265&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Q-Learning 업데이트&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;stata&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;7266&quot;&gt;&lt;code&gt;Q(St,At) &amp;larr; Q(St,At) + &amp;alpha;[Rt+1 + &amp;gamma; max_a Q(St+1,a) - Q(St,At)]
                                     &amp;uarr; 최선 행동의 가치&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7267&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;핵심 차이점&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7268&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7269&quot;&gt;
&lt;div data-nodeid=&quot;7270&quot;&gt;&lt;b&gt;SARSA (Bellman Expectation)&lt;/b&gt;: 실제 선택한 행동 사용&lt;/div&gt;
&lt;/li&gt;
&lt;li data-nodeid=&quot;7271&quot;&gt;
&lt;div data-nodeid=&quot;7272&quot;&gt;&lt;b&gt;Q-Learning (Bellman Optimality)&lt;/b&gt;: 최선 행동 사용&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7273&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;6.3-%EC%9D%B4%EA%B2%83%EC%9D%B4-Off-Policy%EC%9D%B8-%EC%9D%B4%EC%9C%A0&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7274&quot; data-ke-size=&quot;size23&quot;&gt;6.3 이것이 Off-Policy인 이유&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7275&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Two Different Policies&lt;/b&gt;:&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; color: #222222;&quot; data-nodeid=&quot;7276&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-nodeid=&quot;7277&quot;&gt;&lt;b&gt;Behavior Policy&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(행동 선택): &amp;epsilon;-greedy로 실제 행동&lt;/li&gt;
&lt;li data-nodeid=&quot;7279&quot;&gt;&lt;b&gt;Target Policy&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(가치 학습): greedy로 최적 가치 학습&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7281&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;수식으로 보는 차이&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;routeros&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;7282&quot;&gt;&lt;code&gt;행동 선택: At ~ &amp;epsilon;-greedy(Q(St,&amp;middot;))     &amp;larr; Behavior Policy
가치 업데이트: max_a Q(St+1,a)        &amp;larr; Target Policy (greedy)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7283&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;업데이트 규칙&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;stata&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;7284&quot;&gt;&lt;code&gt;Q(St,At) &amp;larr; Q(St,At) + &amp;alpha;[Rt+1 + &amp;gamma; max_a Q(St+1,a) - Q(St,At)]&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7285&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;핵심 차이점&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7286&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7287&quot;&gt;&lt;b&gt;SARSA&lt;/b&gt;: Rt+1 + &amp;gamma;Q(St+1,At+1) &amp;larr; 실제 선택한 행동&lt;/li&gt;
&lt;li data-nodeid=&quot;7289&quot;&gt;&lt;b&gt;Q-Learning&lt;/b&gt;: Rt+1 + &amp;gamma; max_a Q(St+1,a) &amp;larr; 최선 행동&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7291&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;6.3-Q-Learning%EC%9D%98-%EA%B5%AC%EC%A1%B0&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7292&quot; data-ke-size=&quot;size23&quot;&gt;6.3 Q-Learning의 구조&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7293&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Two-Policy 구조&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7294&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7295&quot;&gt;&lt;b&gt;Behavior Policy&lt;/b&gt;: &amp;epsilon;-greedy w.r.t. Q(s,a) (탐험용)&lt;/li&gt;
&lt;li data-nodeid=&quot;7297&quot;&gt;&lt;b&gt;Target Policy&lt;/b&gt;: greedy w.r.t. Q(s,a) (학습용)&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7299&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;알고리즘 흐름&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;dns&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;7300&quot;&gt;&lt;code&gt;1. 상태 S에서 &amp;epsilon;-greedy로 행동 A 선택 (behavior policy)
2. 행동 A 실행, 보상 R과 다음 상태 S' 관찰
3. Q(S,A) 업데이트: Q(S,A) &amp;larr; Q(S,A) + &amp;alpha;[R + &amp;gamma; max_a Q(S',a) - Q(S,A)]
   (target policy로 다음 행동 가치 계산)
4. S &amp;larr; S'로 이동&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7301&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;6.4-Chapter-2%EC%9D%98-%EA%B5%AC%EB%B6%84%EA%B3%BC-%EC%8B%A4%EC%A0%9C-Model-Free%EC%9D%98-%EC%B0%A8%EC%9D%B4&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7302&quot; data-ke-size=&quot;size23&quot;&gt;6.4 Chapter 2의 구분과 실제 Model-Free의 차이&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7303&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Chapter 2에서 배운 명확한 구분&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;armasm&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;7304&quot;&gt;&lt;code&gt;Prediction 문제 &amp;rarr; Bellman Expectation Equation
Control 문제 &amp;rarr; Bellman Optimality Equation&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7305&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;하지만 Model-Free에서는 더 복잡함&lt;/b&gt;:&lt;/p&gt;
&lt;h4 id=&quot;Control-%EB%AC%B8%EC%A0%9C%EB%A5%BC-%ED%91%B8%EB%8A%94-%EB%91%90-%EA%B0%80%EC%A7%80-%EB%B0%A9%EC%8B%9D&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7306&quot; data-ke-size=&quot;size20&quot;&gt;Control 문제를 푸는 두 가지 방식&lt;/h4&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7307&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;방식 1: Policy Iteration 스타일 (MC Control, SARSA)&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;angelscript&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;7308&quot;&gt;&lt;code&gt;1. Bellman Expectation으로 현재 정책 평가 (Prediction)
2. 정책 개선 (Policy Improvement)  
3. 반복 &amp;rarr; 결과적으로 Control 해결&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7309&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;방식 2: Value Iteration 스타일 (Q-Learning)&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;armasm&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;7310&quot;&gt;&lt;code&gt;Bellman Optimality로 최적 가치 직접 학습 &amp;rarr; Control 해결&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;h4 id=&quot;%EC%99%9C-%EC%9D%B4%EB%9F%B0-%EC%B0%A8%EC%9D%B4%EA%B0%80-%EC%83%9D%EA%B8%B0%EB%8A%94%EA%B0%80%3F&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7311&quot; data-ke-size=&quot;size20&quot;&gt;왜 이런 차이가 생기는가?&lt;/h4&gt;
&lt;div data-nodeid=&quot;7312&quot;&gt;&lt;b&gt;이론 (Chapter 2)&lt;/b&gt;:&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7313&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7314&quot;&gt;명확한 구분 가능 (완벽한 모델 있음)&lt;/li&gt;
&lt;li data-nodeid=&quot;7316&quot;&gt;Control = Bellman Optimality 직접 적용&lt;/li&gt;
&lt;/ul&gt;
&lt;div data-nodeid=&quot;7318&quot;&gt;&lt;b&gt;실제 (Model-Free)&lt;/b&gt;:&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7319&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7320&quot;&gt;환경과 상호작용하며 점진적 학습&lt;/li&gt;
&lt;li data-nodeid=&quot;7322&quot;&gt;&lt;b&gt;안전한 방법&lt;/b&gt;: 현재 정책 평가 후 개선 (MC, SARSA)&lt;/li&gt;
&lt;li data-nodeid=&quot;7324&quot;&gt;&lt;b&gt;직접적 방법&lt;/b&gt;: 최적 가치 바로 추정 (Q-Learning)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;%ED%95%B5%EC%8B%AC-%ED%86%B5%EC%B0%B0&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7326&quot; data-ke-size=&quot;size20&quot;&gt;핵심 통찰&lt;/h4&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7327&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Control 문제 = 두 가지 해법&lt;/b&gt;:&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; color: #222222;&quot; data-nodeid=&quot;7328&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-nodeid=&quot;7329&quot;&gt;&lt;b&gt;간접적&lt;/b&gt;: Prediction(평가) + Improvement(개선) 반복&lt;/li&gt;
&lt;li data-nodeid=&quot;7331&quot;&gt;&lt;b&gt;직접적&lt;/b&gt;: Bellman Optimality로 최적 가치 직접 학습&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7333&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Model-Free에서는 둘 다 유용함&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7334&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7335&quot;&gt;MC/SARSA: 안정적이지만 느림&lt;/li&gt;
&lt;li data-nodeid=&quot;7337&quot;&gt;Q-Learning: 빠르지만 복잡함&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;6.5-%EB%B2%A8%EB%A7%8C-%EB%B0%A9%EC%A0%95%EC%8B%9D-%EA%B4%80%EC%A0%90%EC%97%90%EC%84%9C-%EB%B3%B4%EB%8A%94-%EC%A0%84%EC%B2%B4-%EA%B7%B8%EB%A6%BC&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7339&quot; data-ke-size=&quot;size23&quot;&gt;6.5 벨만 방정식 관점에서 보는 전체 그림&lt;/h3&gt;
&lt;pre class=&quot;mathematica&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;7340&quot;&gt;&lt;code&gt;방법사용하는 벨만 방정식Control 해결 방식정책 타입MC ControlBellman Expectation평가 + 개선 반복On-PolicySARSABellman Expectation평가 + 개선 반복On-PolicyQ-LearningBellman Optimality최적 가치 직접 학습Off-Policy&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7341&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Chapter 2 vs Model-Free 비교&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7342&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7343&quot;&gt;&lt;b&gt;Chapter 2&lt;/b&gt;: Control = Bellman Optimality (이론적)&lt;/li&gt;
&lt;li data-nodeid=&quot;7345&quot;&gt;&lt;b&gt;Model-Free&lt;/b&gt;: Control = 두 가지 방식 (실용적)
&lt;ul style=&quot;list-style-type: circle; color: #222222;&quot; data-nodeid=&quot;7347&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li data-nodeid=&quot;7348&quot;&gt;간접적: Bellman Expectation + Policy Improvement&lt;/li&gt;
&lt;li data-nodeid=&quot;7350&quot;&gt;직접적: Bellman Optimality&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7352&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;6.5-Q-Learning%EC%9D%98-%EC%9E%A5%EC%A0%90&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7353&quot; data-ke-size=&quot;size23&quot;&gt;6.5 Q-Learning의 장점&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7354&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. Importance Sampling 불필요&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7355&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7356&quot;&gt;확률비 계산 없음&lt;/li&gt;
&lt;li data-nodeid=&quot;7358&quot;&gt;Variance 문제 해결&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7360&quot; 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; color: #222222;&quot; data-nodeid=&quot;7361&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7362&quot;&gt;Target policy가 항상 greedy&lt;/li&gt;
&lt;li data-nodeid=&quot;7364&quot;&gt;수렴 시 최적 Q* 함수 획득&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7366&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. 데이터 효율성&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7367&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7368&quot;&gt;모든 경험을 최적 정책 학습에 활용&lt;/li&gt;
&lt;li data-nodeid=&quot;7370&quot;&gt;Off-policy의 모든 장점 보유&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7372&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;6.5-SARSA-vs-Q-Learning%3A-Cliff-Walking-%EC%98%88%EC%A0%9C&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7373&quot; data-ke-size=&quot;size23&quot;&gt;6.5 SARSA vs Q-Learning: Cliff Walking 예제&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7374&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;환경 설정&lt;/b&gt;: 절벽이 있는 격자 세계&lt;/p&gt;
&lt;div data-nodeid=&quot;7375&quot;&gt;&lt;b&gt;SARSA (On-Policy)&lt;/b&gt;:&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7376&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7377&quot;&gt;실제 &amp;epsilon;-greedy 정책의 가치 학습&lt;/li&gt;
&lt;li data-nodeid=&quot;7379&quot;&gt;절벽 근처에서 조심스러운 경로 학습&lt;/li&gt;
&lt;li data-nodeid=&quot;7381&quot;&gt;안전한 길로 우회&lt;/li&gt;
&lt;/ul&gt;
&lt;div data-nodeid=&quot;7383&quot;&gt;&lt;b&gt;Q-Learning (Off-Policy)&lt;/b&gt;:&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7384&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7385&quot;&gt;최적 greedy 정책의 가치 학습&lt;/li&gt;
&lt;li data-nodeid=&quot;7387&quot;&gt;절벽 바로 옆의 최단 경로 학습&lt;/li&gt;
&lt;li data-nodeid=&quot;7389&quot;&gt;위험하지만 최적인 경로&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7391&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;실제 성능&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7392&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7393&quot;&gt;SARSA: 안전하지만 느린 경로&lt;/li&gt;
&lt;li data-nodeid=&quot;7395&quot;&gt;Q-Learning: 위험하지만 빠른 경로&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7397&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;7.-n-step-Methods%EC%99%80-Eligibility-Traces&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7398&quot; data-ke-size=&quot;size26&quot;&gt;7. n-step Methods와 Eligibility Traces&lt;/h2&gt;
&lt;h3 id=&quot;7.1-TD%EC%99%80-MC%EC%9D%98-%EC%A4%91%EA%B0%84-%EC%A7%80%EC%A0%90&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7399&quot; data-ke-size=&quot;size23&quot;&gt;7.1 TD와 MC의 중간 지점&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7400&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제 인식&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7401&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7402&quot;&gt;TD(0): 빠르지만 높은 bias&lt;/li&gt;
&lt;li data-nodeid=&quot;7404&quot;&gt;MC: 정확하지만 높은 variance&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7406&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;해결 아이디어&lt;/b&gt;: &quot;n-step만큼 실제 경험 후 추정&quot;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7407&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;7.2-n-step-TD-Prediction&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7408&quot; data-ke-size=&quot;size23&quot;&gt;7.2 n-step TD Prediction&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7409&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;n-step Return&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;excel&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;7410&quot;&gt;&lt;code&gt;G(n)t = Rt+1 + &amp;gamma;Rt+2 + ... + &amp;gamma;^(n-1)Rt+n + &amp;gamma;^n V(St+n)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7411&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;업데이트&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;7412&quot;&gt;&lt;code&gt;V(St) &amp;larr; V(St) + &amp;alpha;[G(n)t - V(St)]&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7413&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;특성&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7414&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7415&quot;&gt;n=1: TD(0)&lt;/li&gt;
&lt;li data-nodeid=&quot;7417&quot;&gt;n=&amp;infin;: Monte Carlo&lt;/li&gt;
&lt;li data-nodeid=&quot;7419&quot;&gt;n 증가 시: bias 감소, variance 증가&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7421&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;7.3-%CE%BB-Return%3A-Forward-View&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7422&quot; data-ke-size=&quot;size23&quot;&gt;7.3 &amp;lambda;-Return: Forward View&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7423&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제&lt;/b&gt;: &quot;어떤 n이 최적인가?&quot;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7424&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;해결책&lt;/b&gt;: 모든 n-step return의 가중평균&lt;/p&gt;
&lt;pre class=&quot;excel&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;7425&quot;&gt;&lt;code&gt;G^&amp;lambda;_t = (1-&amp;lambda;) &amp;Sigma; &amp;lambda;^(n-1) G(n)t&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7426&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;특성&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7427&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7428&quot;&gt;&amp;lambda;=0: TD(0)&lt;/li&gt;
&lt;li data-nodeid=&quot;7430&quot;&gt;&amp;lambda;=1: Monte Carlo&lt;/li&gt;
&lt;li data-nodeid=&quot;7432&quot;&gt;Geometric weighting으로 모든 n 조합&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7434&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;7.4-n-step-SARSA&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7435&quot; data-ke-size=&quot;size23&quot;&gt;7.4 n-step SARSA&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7436&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;n-step Action Value&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;excel&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;7437&quot;&gt;&lt;code&gt;G(n)t = Rt+1 + &amp;gamma;Rt+2 + ... + &amp;gamma;^(n-1)Rt+n + &amp;gamma;^n Q(St+n,At+n)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div data-nodeid=&quot;7438&quot;&gt;&lt;b&gt;SARSA(&amp;lambda;)&lt;/b&gt;:&lt;/div&gt;
&lt;pre class=&quot;excel&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;7439&quot;&gt;&lt;code&gt;G^&amp;lambda;_t = (1-&amp;lambda;) &amp;Sigma; &amp;lambda;^(n-1) G(n)t&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7440&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7441&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;8.-%EC%8B%A4%EC%A0%9C-%EA%B5%AC%ED%98%84-%EA%B3%A0%EB%A0%A4%EC%82%AC%ED%95%AD&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7442&quot; data-ke-size=&quot;size26&quot;&gt;8. 실제 구현 고려사항&lt;/h2&gt;
&lt;h3 id=&quot;8.1-%ED%95%99%EC%8A%B5%EB%A5%A0-%EC%84%A4%EC%A0%95&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7443&quot; data-ke-size=&quot;size23&quot;&gt;8.1 학습률 설정&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7444&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;SARSA&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7445&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7446&quot;&gt;수렴 조건: &amp;Sigma;&amp;alpha;=&amp;infin;, &amp;Sigma;&amp;alpha;&amp;sup2;&amp;lt;&amp;infin;&lt;/li&gt;
&lt;li data-nodeid=&quot;7448&quot;&gt;실제: &amp;alpha;=0.01~0.1 고정&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7450&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Q-Learning&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7451&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7452&quot;&gt;더 안정적인 수렴&lt;/li&gt;
&lt;li data-nodeid=&quot;7454&quot;&gt;상대적으로 큰 학습률 사용 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;8.2-%ED%83%90%ED%97%98-%EC%A0%84%EB%9E%B5&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7456&quot; data-ke-size=&quot;size23&quot;&gt;8.2 탐험 전략&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7457&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;epsilon;-Greedy 변형들&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7458&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7459&quot;&gt;&lt;b&gt;Decaying &amp;epsilon;&lt;/b&gt;: &amp;epsilon;_t = &amp;epsilon;_0/t&lt;/li&gt;
&lt;li data-nodeid=&quot;7461&quot;&gt;&lt;b&gt;Boltzmann&lt;/b&gt;: 확률적 선택 with temperature&lt;/li&gt;
&lt;li data-nodeid=&quot;7463&quot;&gt;&lt;b&gt;UCB&lt;/b&gt;: 불확실성 기반 탐험&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;8.3-%ED%95%A8%EC%88%98-%EA%B7%BC%EC%82%AC&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7465&quot; data-ke-size=&quot;size23&quot;&gt;8.3 함수 근사&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7466&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;큰 상태 공간 문제&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7467&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7468&quot;&gt;Q-table &amp;rarr; Q-function 근사&lt;/li&gt;
&lt;li data-nodeid=&quot;7470&quot;&gt;선형 함수, 신경망 등 활용&lt;/li&gt;
&lt;li data-nodeid=&quot;7472&quot;&gt;Deep Q-Learning의 기초&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7474&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7475&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;9.-Chapter-5-%EC%A0%95%EB%A6%AC-%EB%B0%8F-%EB%8B%A4%EC%9D%8C-%EB%8B%A8%EA%B3%84&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7476&quot; data-ke-size=&quot;size26&quot;&gt;9. Chapter 5 정리 및 다음 단계&lt;/h2&gt;
&lt;h3 id=&quot;9.1-Model-Free-Control%EC%9D%B4-%ED%95%B4%EA%B2%B0%ED%95%9C-%EA%B2%83&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7477&quot; data-ke-size=&quot;size23&quot;&gt;9.1 Model-Free Control이 해결한 것&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7478&quot; data-ke-size=&quot;size16&quot;&gt;✅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;환경 모델 없이 최적 정책 학습&lt;/b&gt;: Action Value Function 활용 ✅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;탐험과 활용 균형&lt;/b&gt;: &amp;epsilon;-greedy, GLIE 등 ✅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;온라인 학습&lt;/b&gt;: SARSA로 실시간 개선 ✅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;데이터 효율성&lt;/b&gt;: Q-Learning으로 off-policy 학습&lt;/p&gt;
&lt;h3 id=&quot;9.2-%EC%A3%BC%EC%9A%94-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%B9%84%EA%B5%90&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7479&quot; data-ke-size=&quot;size23&quot;&gt;9.2 주요 알고리즘 비교&lt;/h3&gt;
&lt;pre class=&quot;cmake&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;7480&quot;&gt;&lt;code&gt;알고리즘정책학습 방식특징MC ControlOn-Policy에피소드 단위안정적, 느림SARSAOn-Policy매 스텝실제 정책 학습Q-LearningOff-Policy매 스텝최적 정책 학습&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&quot;9.3-%EB%82%A8%EC%9D%80-%EB%8F%84%EC%A0%84%EA%B3%BC%EC%A0%9C&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7481&quot; data-ke-size=&quot;size23&quot;&gt;9.3 남은 도전과제&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7482&quot; data-ke-size=&quot;size16&quot;&gt;❌&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;함수 근사&lt;/b&gt;: 큰 상태 공간 처리 방법 ❌&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;수렴 보장&lt;/b&gt;: 함수 근사 시 안정성 ❌&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;샘플 효율성&lt;/b&gt;: 더 적은 경험으로 빠른 학습 ❌&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;연속 행동 공간&lt;/b&gt;: 무한한 행동 처리&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7483&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;9.4-%EB%8B%A4%EC%9D%8C-%EB%8B%A8%EA%B3%84%3A-Function-Approximation-(Chapter-6)&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7484&quot; data-ke-size=&quot;size23&quot;&gt;9.4 다음 단계: Function Approximation (Chapter 6)&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7485&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;해결하고 싶은 문제들&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7486&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7487&quot;&gt;&quot;상태가 백만 개면 어떻게 하지?&quot; &amp;rarr; 함수 근사&lt;/li&gt;
&lt;li data-nodeid=&quot;7489&quot;&gt;&quot;연속 상태/행동 공간은?&quot; &amp;rarr; 매개변수화된 정책&lt;/li&gt;
&lt;li data-nodeid=&quot;7491&quot;&gt;&quot;딥러닝과 결합하면?&quot; &amp;rarr; Deep Reinforcement Learning&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7493&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;9.5-%ED%95%B5%EC%8B%AC-%EB%A9%94%EC%8B%9C%EC%A7%80&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;7494&quot; data-ke-size=&quot;size23&quot;&gt;9.5 핵심 메시지&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7495&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Model-Free Control은 실용적 강화학습의 핵심&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;7496&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;7497&quot;&gt;환경 모델 없이도 최적 정책 학습 가능&lt;/li&gt;
&lt;li data-nodeid=&quot;7499&quot;&gt;Action Value Function이 핵심 도구&lt;/li&gt;
&lt;li data-nodeid=&quot;7501&quot;&gt;On-Policy vs Off-Policy의 trade-off 이해&lt;/li&gt;
&lt;li data-nodeid=&quot;7503&quot;&gt;탐험과 활용의 균형이 성공의 열쇠&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7505&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&quot;이제 tabular 방법은 완성했다. 실제 복잡한 문제를 위해 함수 근사로 확장해보자!&quot;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7506&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7507&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7508&quot; data-ke-size=&quot;size16&quot;&gt;이 장에서 우리는 강화학습의 가장 중요한 단계를 완료했음. 환경의 모델을 전혀 모르는 상황에서도 실제 경험만으로 최적 정책을 학습할 수 있다는 것을 보여줬음. Monte Carlo Control의 직관적 접근법부터 SARSA의 안정적인 온라인 학습, Q-Learning의 효율적인 오프폴리시 학습까지, 각각이 서로 다른 상황에서 빛을 발하는 도구들임.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7509&quot; data-ke-size=&quot;size16&quot;&gt;특히 Action-Value Function Q(s,a)가 Model-free Control의 핵심이라는 점을 기억해야 함. 이것이 있어야 모델 없이도 정책을 개선할 수 있고, 탐험과 활용의 균형을 맞출 수 있음. SARSA와 Q-Learning의 차이도 명확함. 안전하고 실제적인 성능을 원하면 SARSA를, 최적성과 데이터 효율성을 원하면 Q-Learning을 선택하면 됨.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7510&quot; data-ke-size=&quot;size16&quot;&gt;하지만 지금까지 다룬 방법들은 모두 테이블 기반이었음. 상태와 행동이 유한하고 적은 경우에만 적용 가능함. 현실의 복잡한 문제들은 어떨까? 자율주행차의 무수한 센서 데이터, 바둑의 천문학적인 상태 공간, 로봇의 연속적인 관절 제어... 이런 문제들을 해결하려면 새로운 도구가 필요함.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7511&quot; data-ke-size=&quot;size16&quot;&gt;다음 장에서는 함수 근사(Function Approximation)를 통해 이런 현실적 제약을 뛰어넘는 방법을 알아볼 예정임. 선형 함수부터 시작해서 신경망까지, 강화학습이 어떻게 복잡한 실세계 문제에 적용되는지 보게 될 것임. 지금까지 배운 모든 알고리즘들이 함수 근사와 결합되면서 진짜 실용적인 도구로 거듭나게 됨.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7512&quot; data-ke-size=&quot;size16&quot;&gt;Tabular 강화학습의 여정이 끝났음. 이제 무한한 가능성의 세계로 확장해보자.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7513&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;7514&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>AI/Reinforcement Learning</category>
      <author>땽뚕</author>
      <guid isPermaLink="true">https://asidefine.tistory.com/364</guid>
      <comments>https://asidefine.tistory.com/364#entry364comment</comments>
      <pubDate>Sun, 10 Aug 2025 10:51:28 +0900</pubDate>
    </item>
    <item>
      <title>[2025 강화학습 Recap] Chapter 4. Model-Free Prediction</title>
      <link>https://asidefine.tistory.com/363</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;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;[2025&amp;nbsp;강화학습&amp;nbsp;Recap]&amp;nbsp;Chapter&amp;nbsp;4.&amp;nbsp;Model-Free&amp;nbsp;Prediction&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Chapter 3에서 Dynamic Programming의 우아한 이론을 배웠지만, 현실 세계로 나오면 벽에 부딪힘. 자율주행차가 &quot;비 올 때 브레이크 밟으면 미끄러질 확률이 정확히 0.23&quot;이라고 미리 알 수 있을까? 게임 AI가 상대방의 모든 전략과 확률을 사전에 계산할 수 있을까?&lt;br /&gt;대부분의 실제 문제에서는 환경의 완벽한 모델을 알 수 없음. 전이확률 P(s'|s,a)도, 보상함수 R(s,a)도 모르는 상황에서 어떻게 학습할 수 있을까?&lt;br /&gt;답은 간단함. &quot;모르면 직접 해보자.&quot; 모델을 추측하는 대신 환경과 실제로 상호작용하면서 경험을 쌓고, 그 경험으로부터 가치함수를 추정하는 것. 이것이 바로 Model-free 강화학습의 핵심 아이디어임.&lt;br /&gt;이 장에서는 주어진 정책을 평가하는 문제(Prediction)를 Model-free 방식으로 해결하는 두 가지 근본적 접근법을 다룸. Monte Carlo 방법은 완전한 에피소드 경험을 활용하고, Temporal Difference 방법은 한 스텝씩 점진적으로 학습함. 각각의 장단점과 언제 어떤 방법을 써야 하는지도 알아볼 예정임.&lt;br /&gt;이론에서 실제로, 계획에서 학습으로 넘어가는 중요한 전환점임. 불완전한 정보로도 똑똑하게 학습하는 방법을 찾아보자.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5752&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5753&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;1.-Chapter-3%EC%97%90%EC%84%9C-Chapter-4%EB%A1%9C%3A-%EC%9D%B4%EC%83%81%EC%97%90%EC%84%9C-%ED%98%84%EC%8B%A4%EB%A1%9C&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5754&quot; data-ke-size=&quot;size26&quot;&gt;1. Chapter 3에서 Chapter 4로: 이상에서 현실로&lt;/h2&gt;
&lt;h3 id=&quot;1.1-Dynamic-Programming%EC%9D%98-%EC%84%B1%EA%B3%BC%EC%99%80-%ED%95%9C%EA%B3%84&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5755&quot; data-ke-size=&quot;size23&quot;&gt;1.1 Dynamic Programming의 성과와 한계&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5756&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Chapter 3에서 달성한 것&lt;/b&gt;: ✅ 완벽한 모델(P, R)이 있을 때 최적 해법 ✅ 벨만 방정식을 실제 알고리즘으로 구현 ✅ Prediction과 Control 문제의 체계적 해결&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5757&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;하지만 현실적 한계들&lt;/b&gt;: ❌&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;완벽한 모델 필요&lt;/b&gt;: 실제로는 전이확률 P(s'|s,a)와 보상함수 R(s,a)를 모름 ❌&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;상호작용 없음&lt;/b&gt;: 환경과 직접 경험하지 않고 모델로만 계산 ❌&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;사전 지식 의존&lt;/b&gt;: 환경에 대한 완벽한 사전 지식 필요&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5758&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;1.2-%ED%98%84%EC%8B%A4-%EC%84%B8%EA%B3%84%EC%9D%98-%EB%AC%B8%EC%A0%9C%EB%93%A4&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5759&quot; data-ke-size=&quot;size23&quot;&gt;1.2 현실 세계의 문제들&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5760&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;실제 상황들&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;5761&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;5762&quot;&gt;&lt;b&gt;자율주행&lt;/b&gt;: &quot;비 올 때 브레이크 밟으면 미끄러질 확률&quot;을 정확히 아는가?&lt;/li&gt;
&lt;li data-nodeid=&quot;5764&quot;&gt;&lt;b&gt;게임 AI&lt;/b&gt;: 상대방의 모든 전략과 확률을 미리 알 수 있는가?&lt;/li&gt;
&lt;li data-nodeid=&quot;5766&quot;&gt;&lt;b&gt;로봇 제어&lt;/b&gt;: 모터의 정확한 응답 특성을 완벽히 모델링할 수 있는가?&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5768&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;rarr; 대부분의 실제 문제에서는 모델을 모르거나 불완전함!&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5769&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;1.3-Model-Free-RL%EC%9D%98-%EB%93%B1%EC%9E%A5-%EB%B0%B0%EA%B2%BD&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5770&quot; data-ke-size=&quot;size23&quot;&gt;1.3 Model-Free RL의 등장 배경&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5771&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;핵심 아이디어&lt;/b&gt;: &quot;모델을 모르니까 직접 경험해서 배우자!&quot;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5772&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Model-Free 접근법&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;5773&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;5774&quot;&gt;&lt;b&gt;환경과 상호작용&lt;/b&gt;: 실제로 행동하고 결과를 관찰&lt;/li&gt;
&lt;li data-nodeid=&quot;5776&quot;&gt;&lt;b&gt;경험으로 학습&lt;/b&gt;: 관찰된 데이터로 가치함수/정책 개선&lt;/li&gt;
&lt;li data-nodeid=&quot;5778&quot;&gt;&lt;b&gt;점진적 개선&lt;/b&gt;: 더 많은 경험으로 점점 더 나은 성능&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5780&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5781&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;2.-Model-Free-vs-Model-Based-%EB%B9%84%EA%B5%90&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5782&quot; data-ke-size=&quot;size26&quot;&gt;2. Model-Free vs Model-Based 비교&lt;/h2&gt;
&lt;h3 id=&quot;2.1-%EA%B7%BC%EB%B3%B8%EC%A0%81-%EC%B0%A8%EC%9D%B4%EC%A0%90&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5783&quot; data-ke-size=&quot;size23&quot;&gt;2.1 근본적 차이점&lt;/h3&gt;
&lt;pre class=&quot;gams&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;5784&quot;&gt;&lt;code&gt;특성Model-Based (DP)Model-Free환경 지식완벽한 모델 필요모델 불필요학습 방식계산 (Planning)경험 (Learning)상호작용없음필수데이터사전 지식샘플링된 경험업데이트정확한 기댓값샘플 기반 추정&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5785&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;2.2-%EB%B2%A8%EB%A7%8C-%EB%B0%A9%EC%A0%95%EC%8B%9D%EC%9D%98-%EB%B3%80%ED%99%94&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5786&quot; data-ke-size=&quot;size23&quot;&gt;2.2 벨만 방정식의 변화&lt;/h3&gt;
&lt;div data-nodeid=&quot;5787&quot;&gt;&lt;b&gt;Model-Based (DP)&lt;/b&gt;:&lt;/div&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;5788&quot;&gt;&lt;code&gt;v(s) = &amp;Sigma; &amp;pi;(a|s) &amp;Sigma; P(s'|s,a) [R(s,a) + &amp;gamma;v(s')]
       전체 합계 (정확한 기댓값)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5789&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Model-Free&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;stylus&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;5790&quot;&gt;&lt;code&gt;v(s) &amp;larr; 샘플된 경험으로 추정
      (불완전하지만 실제 경험 기반)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5791&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;2.3-%EB%91%90-%EA%B0%80%EC%A7%80-%EC%A0%91%EA%B7%BC%EB%B2%95&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5792&quot; data-ke-size=&quot;size23&quot;&gt;2.3 두 가지 접근법&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5793&quot; data-ke-size=&quot;size16&quot;&gt;Model-Free에서 벨만 방정식을 근사하는 두 가지 방법:&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; color: #222222;&quot; data-nodeid=&quot;5794&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-nodeid=&quot;5795&quot;&gt;&lt;b&gt;Monte Carlo&lt;/b&gt;: 전체 에피소드 경험으로 실제 Return 계산&lt;/li&gt;
&lt;li data-nodeid=&quot;5797&quot;&gt;&lt;b&gt;Temporal Difference&lt;/b&gt;: 부분 경험 + 추정값으로 즉시 업데이트&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5799&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5800&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;3.-Prediction-%EB%AC%B8%EC%A0%9C%3A-%EC%A0%95%EC%B1%85-%ED%8F%89%EA%B0%80%ED%95%98%EA%B8%B0&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5801&quot; data-ke-size=&quot;size26&quot;&gt;3. Prediction 문제: 정책 평가하기&lt;/h2&gt;
&lt;h3 id=&quot;3.1-%EB%AC%B8%EC%A0%9C-%EC%A0%95%EC%9D%98&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5802&quot; data-ke-size=&quot;size23&quot;&gt;3.1 문제 정의&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5803&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목표&lt;/b&gt;: 주어진 정책 &amp;pi;에 대해 v&amp;pi;(s)를 모든 상태에서 구하기&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;제약&lt;/b&gt;: 환경 모델(P, R)을 모르는 상황&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5804&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;DP와의 차이&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;5805&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;5806&quot;&gt;DP: 정확한 벨만 방정식으로 계산&lt;/li&gt;
&lt;li data-nodeid=&quot;5808&quot;&gt;Model-Free: 샘플링된 경험으로 추정&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5810&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;3.2-%ED%95%B5%EC%8B%AC-%EC%95%84%EC%9D%B4%EB%94%94%EC%96%B4&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5811&quot; data-ke-size=&quot;size23&quot;&gt;3.2 핵심 아이디어&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5812&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;경험적 평균으로 기댓값 근사&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;less&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;5813&quot;&gt;&lt;code&gt;E[X] &amp;asymp; (x1 + x2 + ... + xn) / n&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5814&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;강화학습에 적용&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;gauss&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;5815&quot;&gt;&lt;code&gt;v&amp;pi;(s) = E[Gt | St = s] &amp;asymp; 상태 s에서 관찰된 Return들의 평균&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5816&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5817&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;4.-Monte-Carlo-%EB%B0%A9%EB%B2%95&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5818&quot; data-ke-size=&quot;size26&quot;&gt;4. Monte Carlo 방법&lt;/h2&gt;
&lt;h3 id=&quot;4.1-Monte-Carlo%EB%9E%80%3F&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5819&quot; data-ke-size=&quot;size23&quot;&gt;4.1 Monte Carlo란?&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5820&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;정의&lt;/b&gt;: 무작위 샘플링을 통해 수치적 결과를 얻는 방법&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5821&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;강화학습에서 Monte Carlo&lt;/b&gt;: &quot;정책을 따라 실제로 여러 에피소드를 실행해보고, 각 상태에서 받은 Return들의 평균을 구하자&quot;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5822&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;4.2-Monte-Carlo-Prediction-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5823&quot; data-ke-size=&quot;size23&quot;&gt;4.2 Monte Carlo Prediction 알고리즘&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5824&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;기본 아이디어&lt;/b&gt;:&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; color: #222222;&quot; data-nodeid=&quot;5825&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-nodeid=&quot;5826&quot;&gt;정책 &amp;pi;를 따라 완전한 에피소드 실행&lt;/li&gt;
&lt;li data-nodeid=&quot;5828&quot;&gt;각 상태에서 받은 실제 Return 계산: Gt = Rt+1 + &amp;gamma;Rt+2 + &amp;gamma;&amp;sup2;Rt+3 + ...&lt;/li&gt;
&lt;li data-nodeid=&quot;5830&quot;&gt;해당 상태의 가치 추정값을 Return으로 업데이트&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5832&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;수식&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;5833&quot;&gt;&lt;code&gt;V(St) &amp;larr; V(St) + &amp;alpha;[Gt - V(St)]&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5834&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;4.3-First-Visit-vs-Every-Visit-MC&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5835&quot; data-ke-size=&quot;size23&quot;&gt;4.3 First-Visit vs Every-Visit MC&lt;/h3&gt;
&lt;h4 id=&quot;First-Visit-Monte-Carlo&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5836&quot; data-ke-size=&quot;size20&quot;&gt;First-Visit Monte Carlo&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;5837&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;5838&quot;&gt;&lt;b&gt;규칙&lt;/b&gt;: 한 에피소드에서 상태를 처음 방문했을 때만 Return 기록&lt;/li&gt;
&lt;li data-nodeid=&quot;5840&quot;&gt;&lt;b&gt;장점&lt;/b&gt;: 이론적으로 깔끔함, 수렴 보장&lt;/li&gt;
&lt;li data-nodeid=&quot;5842&quot;&gt;&lt;b&gt;사용&lt;/b&gt;: 대부분의 이론적 분석&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;Every-Visit-Monte-Carlo&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5844&quot; data-ke-size=&quot;size20&quot;&gt;Every-Visit Monte Carlo&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;5845&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;5846&quot;&gt;&lt;b&gt;규칙&lt;/b&gt;: 상태를 방문할 때마다 Return 기록&lt;/li&gt;
&lt;li data-nodeid=&quot;5848&quot;&gt;&lt;b&gt;장점&lt;/b&gt;: 더 많은 데이터 활용, 실제로 더 빠른 수렴&lt;/li&gt;
&lt;li data-nodeid=&quot;5850&quot;&gt;&lt;b&gt;사용&lt;/b&gt;: 실제 구현에서 선호&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5852&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;예시&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;armasm&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;5853&quot;&gt;&lt;code&gt;에피소드: S1 &amp;rarr; S2 &amp;rarr; S1 &amp;rarr; S3 (terminal)
First-Visit: S1의 첫 방문(step 1)만 기록
Every-Visit: S1의 두 방문(step 1, 3) 모두 기록&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5854&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;4.4-Incremental-Mean-%EC%97%85%EB%8D%B0%EC%9D%B4%ED%8A%B8&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5855&quot; data-ke-size=&quot;size23&quot;&gt;4.4 Incremental Mean 업데이트&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5856&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제&lt;/b&gt;: 모든 Return을 저장하고 평균 계산하면 메모리/계산 비효율&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5857&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;해결&lt;/b&gt;: 점진적 평균 업데이트&lt;/p&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;5858&quot;&gt;&lt;code&gt;평균 &amp;larr; 이전평균 + 학습률 &amp;times; (새값 - 이전평균)
V(s) &amp;larr; V(s) + &amp;alpha;[Gt - V(s)]&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5859&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;학습률 &amp;alpha;의 역할&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;5860&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;5861&quot;&gt;&lt;b&gt;&amp;alpha; = 1/N(s)&lt;/b&gt;: 완전한 평균 (stationary)&lt;/li&gt;
&lt;li data-nodeid=&quot;5863&quot;&gt;&lt;b&gt;&amp;alpha; = 상수&lt;/b&gt;: 최근 경험에 더 가중치 (non-stationary)&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5865&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;4.5-Monte-Carlo%EC%9D%98-%ED%8A%B9%EC%A7%95&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5866&quot; data-ke-size=&quot;size23&quot;&gt;4.5 Monte Carlo의 특징&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5867&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;장점&lt;/b&gt;: ✅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Unbiased&lt;/b&gt;: 편향 없음 (실제 Return 사용) ✅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Model-free&lt;/b&gt;: 환경 모델 불필요 ✅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Simple&lt;/b&gt;: 개념과 구현이 단순 ✅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Convergence&lt;/b&gt;: 수렴 보장 (큰 수의 법칙)&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5868&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;단점&lt;/b&gt;: ❌&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;High Variance&lt;/b&gt;: 에피소드마다 큰 변동 ❌&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Episodic only&lt;/b&gt;: 종료되는 태스크에만 적용 ❌&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Slow&lt;/b&gt;: 에피소드 끝까지 기다려야 학습 ❌&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Memory&lt;/b&gt;: 긴 에피소드는 메모리 소모&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5869&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;4.6-Monte-Carlo-%EC%98%88%EC%8B%9C%3A-GridWorld&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5870&quot; data-ke-size=&quot;size23&quot;&gt;4.6 Monte Carlo 예시: GridWorld&lt;/h3&gt;
&lt;pre class=&quot;angelscript&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;5871&quot;&gt;&lt;code&gt;정책: 목표까지 랜덤 이동
에피소드 1: S1 &amp;rarr; S2 &amp;rarr; S3 &amp;rarr; Goal, Return = 10
에피소드 2: S1 &amp;rarr; S4 &amp;rarr; S2 &amp;rarr; Goal, Return = 8  
에피소드 3: S1 &amp;rarr; S1 &amp;rarr; S3 &amp;rarr; Goal, Return = 7

V(S1) = (10 + 8 + 7) / 3 = 8.33
V(S2) = (8 + 6) / 2 = 7 (두 번째, 세 번째 에피소드)
V(S3) = (6 + 5) / 2 = 5.5 (첫 번째, 세 번째 에피소드)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5872&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;5.-Temporal-Difference-(TD)-%EB%B0%A9%EB%B2%95&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5873&quot; data-ke-size=&quot;size26&quot;&gt;5. Temporal Difference (TD) 방법&lt;/h2&gt;
&lt;h3 id=&quot;5.1-TD%EC%9D%98-%ED%95%B5%EC%8B%AC-%EC%95%84%EC%9D%B4%EB%94%94%EC%96%B4&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5874&quot; data-ke-size=&quot;size23&quot;&gt;5.1 TD의 핵심 아이디어&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5875&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Monte Carlo의 한계&lt;/b&gt;: 에피소드가 끝날 때까지 기다려야 함&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5876&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;TD의 해법&lt;/b&gt;: &quot;한 스텝만 가보고 나머지는 현재 추정값 사용&quot;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5877&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;핵심 통찰&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;angelscript&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;5878&quot;&gt;&lt;code&gt;실제 Return: Gt = Rt+1 + &amp;gamma;Rt+2 + &amp;gamma;Rt+3 + ...
TD 추정: Rt+1 + &amp;gamma;V(St+1)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5879&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;5.2-TD(0)-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5880&quot; data-ke-size=&quot;size23&quot;&gt;5.2 TD(0) 알고리즘&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5881&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;가장 간단한 TD 방법&lt;/b&gt;: 한 스텝만 실제 경험, 나머지는 추정&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5882&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;업데이트 규칙&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;avrasm&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;5883&quot;&gt;&lt;code&gt;V(St) &amp;larr; V(St) + &amp;alpha;[Rt+1 + &amp;gamma;V(St+1) - V(St)]&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5884&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;구성요소&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;5885&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;5886&quot;&gt;&lt;b&gt;TD Target&lt;/b&gt;: Rt+1 + &amp;gamma;V(St+1)&lt;/li&gt;
&lt;li data-nodeid=&quot;5888&quot;&gt;&lt;b&gt;TD Error&lt;/b&gt;: Rt+1 + &amp;gamma;V(St+1) - V(St)&lt;/li&gt;
&lt;li data-nodeid=&quot;5890&quot;&gt;&lt;b&gt;학습률&lt;/b&gt;: &amp;alpha;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;5.3-TD-Target%EA%B3%BC-TD-Error&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5892&quot; data-ke-size=&quot;size23&quot;&gt;5.3 TD Target과 TD Error&lt;/h3&gt;
&lt;h4 id=&quot;TD-Target-(r-%2B-%CE%B3V(St%2B1))&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5893&quot; data-ke-size=&quot;size20&quot;&gt;TD Target (r + &amp;gamma;V(St+1))&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;5894&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;5895&quot;&gt;&lt;b&gt;즉시 보상&lt;/b&gt;: Rt+1 (실제 관찰)&lt;/li&gt;
&lt;li data-nodeid=&quot;5897&quot;&gt;&lt;b&gt;미래 가치&lt;/b&gt;: &amp;gamma;V(St+1) (현재 추정값)&lt;/li&gt;
&lt;li data-nodeid=&quot;5899&quot;&gt;&lt;b&gt;의미&lt;/b&gt;: &quot;한 스텝 후 상태의 추정 가치&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;TD-Error-(%CE%B4t)&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5901&quot; data-ke-size=&quot;size20&quot;&gt;TD Error (&amp;delta;t)&lt;/h4&gt;
&lt;pre class=&quot;isbl&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;5902&quot;&gt;&lt;code&gt;&amp;delta;t = Rt+1 + &amp;gamma;V(St+1) - V(St)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;5903&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;5904&quot;&gt;&lt;b&gt;양수&lt;/b&gt;: 현재 추정이 너무 낮음 &amp;rarr; 가치 증가&lt;/li&gt;
&lt;li data-nodeid=&quot;5906&quot;&gt;&lt;b&gt;음수&lt;/b&gt;: 현재 추정이 너무 높음 &amp;rarr; 가치 감소&lt;/li&gt;
&lt;li data-nodeid=&quot;5908&quot;&gt;&lt;b&gt;영역&lt;/b&gt;: 추정이 정확함&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5910&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;5.4-TD%EC%9D%98-%ED%8A%B9%EC%A7%95&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5911&quot; data-ke-size=&quot;size23&quot;&gt;5.4 TD의 특징&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5912&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;장점&lt;/b&gt;: ✅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Online&lt;/b&gt;: 매 스텝마다 즉시 학습 ✅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Low Variance&lt;/b&gt;: Monte Carlo보다 안정적 ✅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Continuing&lt;/b&gt;: 무한히 계속되는 태스크에도 적용 ✅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Efficient&lt;/b&gt;: 빠른 학습 속도&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5913&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;단점&lt;/b&gt;: ❌&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Biased&lt;/b&gt;: 추정값 사용으로 편향 발생 ❌&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Initial Value Sensitive&lt;/b&gt;: 초기값에 민감 ❌&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Convergence&lt;/b&gt;: 수렴 보장이 약함 (조건부)&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5914&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;5.5-Bootstrapping%EC%9D%98-%EA%B0%9C%EB%85%90&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5915&quot; data-ke-size=&quot;size23&quot;&gt;5.5 Bootstrapping의 개념&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5916&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;정의&lt;/b&gt;: 추정값으로 추정값을 업데이트하는 것&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5917&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;TD에서 Bootstrapping&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;isbl&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;5918&quot;&gt;&lt;code&gt;V(St) &amp;larr; ... + &amp;gamma;V(St+1)
     현재 추정   미래 추정값 사용&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5919&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;DP vs TD Bootstrapping&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;5920&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;5921&quot;&gt;&lt;b&gt;DP&lt;/b&gt;: 정확한 벨만 방정식으로 부트스트래핑&lt;/li&gt;
&lt;li data-nodeid=&quot;5923&quot;&gt;&lt;b&gt;TD&lt;/b&gt;: 샘플 기반 부트스트래핑&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5925&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;5.6-TD-%EC%98%88%EC%8B%9C%3A-GridWorld&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5926&quot; data-ke-size=&quot;size23&quot;&gt;5.6 TD 예시: GridWorld&lt;/h3&gt;
&lt;pre class=&quot;angelscript&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;5927&quot;&gt;&lt;code&gt;현재 상태: S1, V(S1) = 5
행동 후: S2로 이동, 보상 = -1, V(S2) = 3, &amp;gamma; = 0.9

TD Target = -1 + 0.9 &amp;times; 3 = 1.7
TD Error = 1.7 - 5 = -3.3
V(S1) &amp;larr; 5 + 0.1 &amp;times; (-3.3) = 4.67&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&quot;6.-Monte-Carlo-vs-Temporal-Difference&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5928&quot; data-ke-size=&quot;size26&quot;&gt;6. Monte Carlo vs Temporal Difference&lt;/h2&gt;
&lt;h3 id=&quot;6.1-%EB%B9%84%EA%B5%90-%EC%9A%94%EC%95%BD%ED%91%9C&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5929&quot; data-ke-size=&quot;size23&quot;&gt;6.1 비교 요약표&lt;/h3&gt;
&lt;pre class=&quot;mipsasm&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;5930&quot;&gt;&lt;code&gt;특성Monte CarloTemporal Difference데이터 요구완전한 에피소드한 스텝 전이학습 속도느림빠름Bias없음 (Unbiased)있음 (Biased)Variance높음낮음수렴성보장됨조건부초기값 민감도낮음높음적용 범위Episodic만모든 태스크&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5931&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;6.2-Bias-vs-Variance-Trade-off&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5932&quot; data-ke-size=&quot;size23&quot;&gt;6.2 Bias vs Variance Trade-off&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5933&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Monte Carlo&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;5934&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;5935&quot;&gt;&lt;b&gt;Unbiased&lt;/b&gt;: 실제 Return을 사용하므로 편향 없음&lt;/li&gt;
&lt;li data-nodeid=&quot;5937&quot;&gt;&lt;b&gt;High Variance&lt;/b&gt;: 에피소드마다 큰 변동성&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5939&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Temporal Difference&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;5940&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;5941&quot;&gt;&lt;b&gt;Biased&lt;/b&gt;: 추정값(V(St+1))을 사용하므로 편향 있음&lt;/li&gt;
&lt;li data-nodeid=&quot;5943&quot;&gt;&lt;b&gt;Low Variance&lt;/b&gt;: 한 스텝만 실제 경험하므로 변동성 적음&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5945&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;6.3-%EC%8B%9C%EA%B0%81%EC%A0%81-%EC%9D%B4%ED%95%B4%3A-Bias-vs-Variance&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5946&quot; data-ke-size=&quot;size23&quot;&gt;6.3 시각적 이해: Bias vs Variance&lt;/h3&gt;
&lt;pre class=&quot;ldif&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;5947&quot;&gt;&lt;code&gt;Target (참값): ●

Monte Carlo: 편향 없지만 퍼져있음
  ○ ○     ○
    ○ ● ○
  ○     ○ ○

TD: 편향 있지만 모여있음  
      ◇◇◇
      ◇◇◇  ● 
      ◇◇◇&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5948&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;6.4-%EC%96%B8%EC%A0%9C-%EB%AC%B4%EC%97%87%EC%9D%84-%EC%82%AC%EC%9A%A9%ED%95%A0%EA%B9%8C%3F&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5949&quot; data-ke-size=&quot;size23&quot;&gt;6.4 언제 무엇을 사용할까?&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5950&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Monte Carlo 선호 상황&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;5951&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;5952&quot;&gt;에피소드가 짧을 때&lt;/li&gt;
&lt;li data-nodeid=&quot;5954&quot;&gt;정확한 추정이 중요할 때&lt;/li&gt;
&lt;li data-nodeid=&quot;5956&quot;&gt;Non-Markov 환경&lt;/li&gt;
&lt;li data-nodeid=&quot;5958&quot;&gt;충분한 데이터가 있을 때&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5960&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;TD 선호 상황&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;5961&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;5962&quot;&gt;실시간 학습이 필요할 때&lt;/li&gt;
&lt;li data-nodeid=&quot;5964&quot;&gt;에피소드가 길거나 무한할 때&lt;/li&gt;
&lt;li data-nodeid=&quot;5966&quot;&gt;빠른 초기 개선이 중요할 때&lt;/li&gt;
&lt;li data-nodeid=&quot;5968&quot;&gt;제한된 데이터 상황&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5970&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;6.5-Markov-Property%EC%99%80%EC%9D%98-%EA%B4%80%EA%B3%84&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5971&quot; data-ke-size=&quot;size23&quot;&gt;6.5 Markov Property와의 관계&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5972&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;TD&lt;/b&gt;: Markov 환경에 최적화&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;5973&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;5974&quot;&gt;현재 상태만으로 미래 예측 가능&lt;/li&gt;
&lt;li data-nodeid=&quot;5976&quot;&gt;부트스트래핑이 효과적&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5978&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Monte Carlo&lt;/b&gt;: Non-Markov 환경에도 robust&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;5979&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;5980&quot;&gt;전체 궤적 정보 활용&lt;/li&gt;
&lt;li data-nodeid=&quot;5982&quot;&gt;Markov 가정에 덜 의존&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5984&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5985&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;7.-%EC%84%B8-%EB%B0%A9%EB%B2%95%EC%9D%98-%ED%86%B5%ED%95%A9%EC%A0%81-%EC%9D%B4%ED%95%B4&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5986&quot; data-ke-size=&quot;size26&quot;&gt;7. 세 방법의 통합적 이해&lt;/h2&gt;
&lt;h3 id=&quot;7.1-Sampling-vs-Bootstrapping&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5987&quot; data-ke-size=&quot;size23&quot;&gt;7.1 Sampling vs Bootstrapping&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;5988&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;두 가지 핵심 아이디어&lt;/b&gt;:&lt;/p&gt;
&lt;h4 id=&quot;Sampling&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5989&quot; data-ke-size=&quot;size20&quot;&gt;Sampling&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;5990&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;5991&quot;&gt;&lt;b&gt;정의&lt;/b&gt;: 모든 가능성을 계산하지 않고 실제 경험만 사용&lt;/li&gt;
&lt;li data-nodeid=&quot;5993&quot;&gt;&lt;b&gt;장점&lt;/b&gt;: 모델 불필요, 실제 환경 적용 가능&lt;/li&gt;
&lt;li data-nodeid=&quot;5995&quot;&gt;&lt;b&gt;단점&lt;/b&gt;: 노이즈, 변동성&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;Bootstrapping&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;5997&quot; data-ke-size=&quot;size20&quot;&gt;Bootstrapping&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;5998&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;5999&quot;&gt;&lt;b&gt;정의&lt;/b&gt;: 추정값으로 추정값을 업데이트&lt;/li&gt;
&lt;li data-nodeid=&quot;6001&quot;&gt;&lt;b&gt;장점&lt;/b&gt;: 빠른 학습, 적은 데이터 필요&lt;/li&gt;
&lt;li data-nodeid=&quot;6003&quot;&gt;&lt;b&gt;단점&lt;/b&gt;: 편향, 초기값 의존성&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6005&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;7.2-%EC%84%B8-%EB%B0%A9%EB%B2%95%EC%9D%98-%ED%8A%B9%EC%84%B1-%EB%A7%A4%ED%8A%B8%EB%A6%AD%EC%8A%A4&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;6006&quot; data-ke-size=&quot;size23&quot;&gt;7.2 세 방법의 특성 매트릭스&lt;/h3&gt;
&lt;pre class=&quot;&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;6007&quot;&gt;&lt;code&gt;방법SamplingBootstrapping특징DP❌✅정확하지만 모델 필요MC✅❌정확하지만 느림TD✅✅빠르지만 편향&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6008&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;7.3-%EC%8B%A4%EC%A0%9C-%EC%84%B1%EB%8A%A5-%EB%B9%84%EA%B5%90&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;6009&quot; data-ke-size=&quot;size23&quot;&gt;7.3 실제 성능 비교&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6010&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;학습 곡선 특성&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;groovy&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;6011&quot;&gt;&lt;code&gt;성능
 &amp;uarr;
 │    TD: 빠른 초기 개선, 조기 수렴
 │   ╱╱╱╱╱╱╱━━━━━━
 │  ╱
 │ ╱     MC: 느린 개선, 높은 최종 성능  
 │╱      ╱╱╱╱╱╱╱╱╱╱╱╱╱
 └────────────────────────&amp;rarr; 시간&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6012&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;7.4-%ED%95%98%EC%9D%B4%EB%B8%8C%EB%A6%AC%EB%93%9C-%EC%A0%91%EA%B7%BC%EB%B2%95%EB%93%A4&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;6013&quot; data-ke-size=&quot;size23&quot;&gt;7.4 하이브리드 접근법들&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6014&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;lambda;-Return&lt;/b&gt;: MC와 TD의 조합&lt;/p&gt;
&lt;pre class=&quot;excel&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;6015&quot;&gt;&lt;code&gt;G&amp;lambda;t = (1-&amp;lambda;)&amp;sum;&amp;lambda;ⁿ⁻&amp;sup1;G(n)t&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6016&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Experience Replay&lt;/b&gt;: 과거 경험을 반복 학습&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Eligibility Traces&lt;/b&gt;: 여러 스텝의 정보 조합&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6017&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;8.-%EC%8B%A4%EC%A0%9C-%EA%B5%AC%ED%98%84-%EA%B3%A0%EB%A0%A4%EC%82%AC%ED%95%AD&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;6018&quot; data-ke-size=&quot;size26&quot;&gt;8. 실제 구현 고려사항&lt;/h2&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6019&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;8.1-%ED%95%99%EC%8A%B5%EB%A5%A0-(Learning-Rate)-%EC%84%A0%ED%83%9D&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;6020&quot; data-ke-size=&quot;size23&quot;&gt;8.1 학습률 (Learning Rate) 선택&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6021&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;이론적 조건&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(수렴 보장):&lt;/p&gt;
&lt;pre class=&quot;excel&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;6022&quot;&gt;&lt;code&gt;&amp;sum;&amp;alpha; = &amp;infin;, &amp;sum;&amp;alpha;&amp;sup2; &amp;lt; &amp;infin;
예: &amp;alpha; = 1/N(s) 또는 &amp;alpha; = 1/t&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6023&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;실제 사용&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;6024&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;6025&quot;&gt;&lt;b&gt;상수 학습률&lt;/b&gt;: &amp;alpha; = 0.01~0.1 (non-stationary 환경)&lt;/li&gt;
&lt;li data-nodeid=&quot;6027&quot;&gt;&lt;b&gt;감소 학습률&lt;/b&gt;: &amp;alpha; = 1/N(s) (stationary 환경)&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6029&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;8.2-%EC%B4%88%EA%B8%B0%EA%B0%92-%EC%84%A4%EC%A0%95&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;6030&quot; data-ke-size=&quot;size23&quot;&gt;8.2 초기값 설정&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6031&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Monte Carlo&lt;/b&gt;: 초기값 영향 적음&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;TD&lt;/b&gt;: 초기값이 학습에 큰 영향&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6032&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;초기값 전략&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;6033&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;6034&quot;&gt;&lt;b&gt;Optimistic&lt;/b&gt;: 높은 초기값으로 탐험 유도&lt;/li&gt;
&lt;li data-nodeid=&quot;6036&quot;&gt;&lt;b&gt;Realistic&lt;/b&gt;: 도메인 지식 기반 설정&lt;/li&gt;
&lt;li data-nodeid=&quot;6038&quot;&gt;&lt;b&gt;Zero&lt;/b&gt;: 간단하지만 편향 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6040&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;8.3-%ED%83%90%ED%97%98-vs-%ED%99%9C%EC%9A%A9-(Exploration-vs-Exploitation)&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;6041&quot; data-ke-size=&quot;size23&quot;&gt;8.3 탐험 vs 활용 (Exploration vs Exploitation)&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6042&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제&lt;/b&gt;: 정책 평가 중에도 탐험 필요&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6043&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;해결법&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;6044&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;6045&quot;&gt;&lt;b&gt;&amp;epsilon;-greedy&lt;/b&gt;: 확률적 탐험&lt;/li&gt;
&lt;li data-nodeid=&quot;6047&quot;&gt;&lt;b&gt;Soft policies&lt;/b&gt;: 모든 행동에 양수 확률&lt;/li&gt;
&lt;li data-nodeid=&quot;6049&quot;&gt;&lt;b&gt;Importance sampling&lt;/b&gt;: 다른 정책으로 수집한 데이터 활용&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6051&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;9.-Chapter-4-%EC%A0%95%EB%A6%AC-%EB%B0%8F-%EB%8B%A4%EC%9D%8C-%EB%8B%A8%EA%B3%84&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;6052&quot; data-ke-size=&quot;size26&quot;&gt;9. Chapter 4 정리 및 다음 단계&lt;/h2&gt;
&lt;h3 id=&quot;9.1-Model-Free-RL%EC%9D%B4-%ED%95%B4%EA%B2%B0%ED%95%9C-%EA%B2%83&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;6053&quot; data-ke-size=&quot;size23&quot;&gt;9.1 Model-Free RL이 해결한 것&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6054&quot; data-ke-size=&quot;size16&quot;&gt;✅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;모델 독립성&lt;/b&gt;: 환경 모델 없이도 학습 가능 ✅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;실제 적용성&lt;/b&gt;: 현실 환경에서 사용 가능 ✅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;온라인 학습&lt;/b&gt;: 상호작용하면서 실시간 개선 ✅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;경험 기반&lt;/b&gt;: 실제 데이터로 점진적 개선&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6055&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;9.2-%EB%82%A8%EC%9D%80-%EB%AC%B8%EC%A0%9C%EB%93%A4&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;6056&quot; data-ke-size=&quot;size23&quot;&gt;9.2 남은 문제들&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6057&quot; data-ke-size=&quot;size16&quot;&gt;❌&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Prediction만 해결&lt;/b&gt;: Control 문제 (최적 정책 찾기) 미해결 ❌&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;정책이 주어진 경우만&lt;/b&gt;: 어떻게 정책을 개선할 것인가? ❌&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;탐험 문제&lt;/b&gt;: 어떻게 효과적으로 탐험할 것인가?&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6058&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;9.3-%EB%8B%A4%EC%9D%8C-%EB%8B%A8%EA%B3%84%3A-Model-Free-Control-(Chapter-5)&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;6059&quot; data-ke-size=&quot;size23&quot;&gt;9.3 다음 단계: Model-Free Control (Chapter 5)&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6060&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;해결하고 싶은 문제들&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;6061&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;6062&quot;&gt;&quot;정책을 어떻게 개선할까?&quot; &amp;rarr; Q-Learning, SARSA&lt;/li&gt;
&lt;li data-nodeid=&quot;6064&quot;&gt;&quot;탐험을 어떻게 할까?&quot; &amp;rarr; &amp;epsilon;-greedy, UCB&lt;/li&gt;
&lt;li data-nodeid=&quot;6066&quot;&gt;&quot;On-policy vs Off-policy?&quot; &amp;rarr; 데이터 효율성&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6068&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;활용할 핵심 아이디어들&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;6069&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;6070&quot;&gt;
&lt;div data-nodeid=&quot;6071&quot;&gt;&lt;b&gt;GPI (Generalized Policy Iteration)&lt;/b&gt;: Chapter 3에서 배운 평가&amp;harr;개선 반복&lt;/div&gt;
&lt;/li&gt;
&lt;li data-nodeid=&quot;6072&quot;&gt;&lt;b&gt;MC/TD Prediction&lt;/b&gt;: Chapter 4에서 배운 가치 추정 방법&lt;/li&gt;
&lt;li data-nodeid=&quot;6074&quot;&gt;&lt;b&gt;Action-Value Function&lt;/b&gt;: 정책 개선을 위한 Q(s,a) 활용&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6076&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;9.4-%ED%95%B5%EC%8B%AC-%EB%A9%94%EC%8B%9C%EC%A7%80&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;6077&quot; data-ke-size=&quot;size23&quot;&gt;9.4 핵심 메시지&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6078&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Model-Free Prediction은 실제 강화학습의 첫 걸음&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;6079&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;6080&quot;&gt;환경 모델 없이도 가치를 추정할 수 있음을 보여줌&lt;/li&gt;
&lt;li data-nodeid=&quot;6082&quot;&gt;MC와 TD라는 두 가지 근본적 접근법 제시&lt;/li&gt;
&lt;li data-nodeid=&quot;6084&quot;&gt;Bias-Variance trade-off라는 중요한 개념 도입&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6086&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&quot;이제 가치를 추정할 수 있으니, 이를 바탕으로 정책을 어떻게 개선할까?&quot;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6087&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6088&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6089&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6090&quot; data-ke-size=&quot;size16&quot;&gt;이 장에서 우리는 강화학습의 실용성을 크게 한 걸음 전진시켰음. 환경의 완벽한 모델 없이도 실제 경험만으로 가치함수를 추정할 수 있다는 것을 보여줬음. Monte Carlo는 편향 없는 정확한 추정을, Temporal Difference는 빠르고 효율적인 학습을 제공함.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6091&quot; data-ke-size=&quot;size16&quot;&gt;하지만 여전히 한 가지 큰 문제가 남아있음. 지금까지는 정책이 주어진 상황에서 그 정책을 평가하는 방법만 배웠음. &quot;이 정책을 따르면 얼마나 좋을까?&quot;라는 질문에는 답할 수 있지만, &quot;어떤 정책이 가장 좋을까?&quot;라는 더 중요한 질문은 아직 해결하지 못했음.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6092&quot; data-ke-size=&quot;size16&quot;&gt;다음 장에서는 이 마지막 퍼즐 조각을 맞춰볼 예정임. Model-free 환경에서 어떻게 정책을 개선하고 최적 정책을 찾을 수 있는지 알아보자. MC와 TD에서 배운 가치 추정 방법들이 이제 정책 개선의 도구로 변신하게 됨.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6093&quot; data-ke-size=&quot;size16&quot;&gt;Generalized Policy Iteration의 구조(평가 &amp;harr; 개선)는 그대로 유지되지만, 이제 모든 것이 실제 경험 기반으로 바뀜. Q-Learning과 SARSA 같은 강력한 알고리즘들이 등장하면서, 강화학습은 비로소 실용적인 문제 해결 도구로 완성될 것임.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6094&quot; data-ke-size=&quot;size16&quot;&gt;가치를 추정하는 방법을 배웠으니, 이제 그 가치를 바탕으로 더 나은 행동을 선택하는 방법을 찾아보자&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;6095&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>AI/Reinforcement Learning</category>
      <author>땽뚕</author>
      <guid isPermaLink="true">https://asidefine.tistory.com/363</guid>
      <comments>https://asidefine.tistory.com/363#entry363comment</comments>
      <pubDate>Sun, 10 Aug 2025 10:50:57 +0900</pubDate>
    </item>
    <item>
      <title>[2025 강화학습 Recap] Chapter 3. Model-based Prediction &amp;amp; Control</title>
      <link>https://asidefine.tistory.com/362</link>
      <description>&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;[2025&amp;nbsp;강화학습&amp;nbsp;Recap]&amp;nbsp;Chapter&amp;nbsp;3.&amp;nbsp;Model-based&amp;nbsp;Prediction&amp;nbsp;&amp;amp;&amp;nbsp;Control&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;Chapter 2에서 MDP의 수학적 구조와 벨만 방정식을 배웠지만, 한 가지 중요한 질문이 남아있음. &quot;이론적으로는 완벽하지만, 실제로는 어떻게 풀까?&quot;&lt;br /&gt;벨만 방정식은 최적 정책과 최적 가치 함수가 만족해야 하는 조건을 명확하게 제시하지만, 이를 직접 계산하는 방법은 별도로 필요함. 마치 &quot;x&amp;sup2; = 4&quot;라는 방정식이 해가 &amp;plusmn;2라는 걸 알려주지만, 실제로 그 해를 구하는 과정은 따로 있는 것과 같음.&lt;br /&gt;이 장에서는 가장 이상적인 조건에서 MDP를 푸는 방법인 동적계획법(Dynamic Programming)을 다룸. 여기서 &quot;이상적&quot;이라는 것은 환경의 모델(전이확률과 보상함수)을 완벽하게 알고 있다는 뜻임. 현실적이지 않아 보일 수 있지만, 이는 강화학습 알고리즘의 이론적 기준점 역할을 함.&lt;br /&gt;Policy Iteration과 Value Iteration이라는 두 가지 핵심 알고리즘을 통해 벨만 방정식을 실제로 풀어볼 예정임. 이 과정에서 &quot;평가(Evaluation)&quot;와 &quot;개선(Improvement)&quot;이 번갈아 일어나는 패턴을 발견하게 될 것인데, 이는 이후 모든 강화학습 알고리즘의 기본 구조가 됨.&lt;br /&gt;완벽한 조건에서의 완벽한 해법을 먼저 이해해야, 불완전한 현실에서 근사적 해법을 설계할 수 있음. Dynamic Programming은 그 출발점임.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4454&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4455&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;1.-Chapter-2%EC%97%90%EC%84%9C-Chapter-3%EB%A1%9C%3A-%EC%9D%B4%EB%A1%A0%EC%97%90%EC%84%9C-%EC%8B%A4%EC%A0%9C%EB%A1%9C&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4456&quot; data-ke-size=&quot;size26&quot;&gt;1. Chapter 2에서 Chapter 3로: 이론에서 실제로&lt;/h2&gt;
&lt;h3 id=&quot;1.1-Chapter-2%EC%97%90%EC%84%9C-%EC%9A%B0%EB%A6%AC%EA%B0%80-%EC%96%BB%EC%9D%80-%EA%B2%83&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4457&quot; data-ke-size=&quot;size23&quot;&gt;1.1 Chapter 2에서 우리가 얻은 것&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4458&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;벨만 방정식이라는 완벽한 이론적 해답&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;4459&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;4460&quot;&gt;&lt;b&gt;Prediction&lt;/b&gt;: v&amp;pi;(s) = &amp;Sigma; &amp;pi;(a|s) [R(s,a) + &amp;gamma; &amp;Sigma; P(s'|s,a) v&amp;pi;(s')]&lt;/li&gt;
&lt;li data-nodeid=&quot;4462&quot;&gt;&lt;b&gt;Control&lt;/b&gt;: v*(s) = max_a [R(s,a) + &amp;gamma; &amp;Sigma; P(s'|s,a) v*(s')]&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;1.2-%EB%82%A8%EC%9D%80-%EB%AC%B8%EC%A0%9C%3A-%22%EC%96%B4%EB%96%BB%EA%B2%8C-%EC%8B%A4%EC%A0%9C%EB%A1%9C-%ED%92%80-%EA%B2%83%EC%9D%B8%EA%B0%80%3F%22&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4464&quot; data-ke-size=&quot;size23&quot;&gt;1.2 남은 문제: &quot;어떻게 실제로 풀 것인가?&quot;&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4465&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;벨만 방정식을 만족하는 해를 어떻게 구할까?&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4466&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;가장 단순한 경우부터 시작하자&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;4467&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;4468&quot;&gt;✅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Model을 완벽히 안다&lt;/b&gt;: P(전이확률), R(보상함수) 모두 알고 있음&lt;/li&gt;
&lt;li data-nodeid=&quot;4470&quot;&gt;✅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;상태 수가 적다&lt;/b&gt;: 계산 가능한 크기&lt;/li&gt;
&lt;li data-nodeid=&quot;4472&quot;&gt;✅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;충분한 시간&lt;/b&gt;: 실시간 제약 없음&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4474&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;rarr; 이런 이상적 조건에서 벨만 방정식을 어떻게 풀까? &amp;rarr; Dynamic Programming!&lt;/b&gt;&lt;/p&gt;
&lt;h3 id=&quot;1.3-Dynamic-Programming%EC%9D%98-%EB%93%B1%EC%9E%A5-%EB%B0%B0%EA%B2%BD&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4475&quot; data-ke-size=&quot;size23&quot;&gt;1.3 Dynamic Programming의 등장 배경&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4476&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;왜 DP가 MDP에 적합한가?&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; color: #222222;&quot; data-nodeid=&quot;4477&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-nodeid=&quot;4478&quot;&gt;&lt;b&gt;최적 부분구조&lt;/b&gt;: 최적 정책의 부분도 최적 (Principle of Optimality)&lt;/li&gt;
&lt;li data-nodeid=&quot;4480&quot;&gt;&lt;b&gt;중복 부분문제&lt;/b&gt;: 같은 상태의 가치를 여러 번 계산&lt;/li&gt;
&lt;li data-nodeid=&quot;4482&quot;&gt;&lt;b&gt;재귀적 구조&lt;/b&gt;: 벨만 방정식 자체가 재귀적&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4484&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;rarr; DP의 핵심 아이디어와 MDP의 구조가 완벽하게 일치!&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4485&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4486&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;2.-Dynamic-Programming-%EA%B8%B0%EB%B3%B8-%EA%B0%9C%EB%85%90&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4487&quot; data-ke-size=&quot;size26&quot;&gt;2. Dynamic Programming 기본 개념&lt;/h2&gt;
&lt;h3 id=&quot;2.1-Dynamic-Programming%EC%9D%B4%EB%9E%80%3F&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4488&quot; data-ke-size=&quot;size23&quot;&gt;2.1 Dynamic Programming이란?&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4489&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;정의&lt;/b&gt;: 복잡한 문제를 더 간단한 부분 문제들로 나누어 해결하고, 그 결과를 저장하여 재사용하는 방법&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4490&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;핵심 원리&lt;/b&gt;:&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; color: #222222;&quot; data-nodeid=&quot;4491&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-nodeid=&quot;4492&quot;&gt;&lt;b&gt;분할&lt;/b&gt;: 큰 문제를 작은 문제들로 나눔&lt;/li&gt;
&lt;li data-nodeid=&quot;4494&quot;&gt;&lt;b&gt;정복&lt;/b&gt;: 작은 문제들을 해결&lt;/li&gt;
&lt;li data-nodeid=&quot;4496&quot;&gt;&lt;b&gt;저장&lt;/b&gt;: 해결한 결과를 메모리에 저장 (Memoization)&lt;/li&gt;
&lt;li data-nodeid=&quot;4498&quot;&gt;&lt;b&gt;재사용&lt;/b&gt;: 같은 문제가 나오면 저장된 결과 사용&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;2.2-MDP%EC%97%90%EC%84%9C-DP%EC%9D%98-%EC%A0%81%EC%9A%A9&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4500&quot; data-ke-size=&quot;size23&quot;&gt;2.2 MDP에서 DP의 적용&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4501&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;MDP에서 DP가 가능한 조건&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;4502&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;4503&quot;&gt;&lt;b&gt;완벽한 모델&lt;/b&gt;: P(s'|s,a), R(s,a) 모두 알고 있음&lt;/li&gt;
&lt;li data-nodeid=&quot;4505&quot;&gt;&lt;b&gt;유한한 상태/행동 공간&lt;/b&gt;: 계산 가능한 크기&lt;/li&gt;
&lt;li data-nodeid=&quot;4507&quot;&gt;&lt;b&gt;마르코프 성질&lt;/b&gt;: 미래가 현재에만 의존&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4509&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;DP = Planning&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;4510&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;4511&quot;&gt;&lt;b&gt;Planning&lt;/b&gt;: 환경과 상호작용 없이 모델만으로 계산&lt;/li&gt;
&lt;li data-nodeid=&quot;4513&quot;&gt;&lt;b&gt;Learning&lt;/b&gt;: 환경과 상호작용하면서 학습 (Chapter 4에서 다룰 예정)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;2.3-%EB%B2%A8%EB%A7%8C-%EB%B0%A9%EC%A0%95%EC%8B%9D%EA%B3%BC-DP%EC%9D%98-%EA%B4%80%EA%B3%84&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4515&quot; data-ke-size=&quot;size23&quot;&gt;2.3 벨만 방정식과 DP의 관계&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4516&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;벨만 방정식의 재귀적 구조&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;fix&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;4517&quot;&gt;&lt;code&gt;현재 상태 가치 = 즉시 보상 + 할인된 다음 상태들의 가치&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4518&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;DP의 활용&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;4519&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;4520&quot;&gt;&lt;b&gt;부분 문제&lt;/b&gt;: 각 상태의 가치 계산&lt;/li&gt;
&lt;li data-nodeid=&quot;4522&quot;&gt;&lt;b&gt;재귀 관계&lt;/b&gt;: 벨만 방정식&lt;/li&gt;
&lt;li data-nodeid=&quot;4524&quot;&gt;&lt;b&gt;저장&lt;/b&gt;: Value Function Table&lt;/li&gt;
&lt;li data-nodeid=&quot;4526&quot;&gt;&lt;b&gt;반복&lt;/b&gt;: 수렴할 때까지 업데이트&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4528&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4529&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;3.-DP%EC%9D%98-%EB%91%90-%EA%B0%80%EC%A7%80-%EB%AC%B8%EC%A0%9C%3A-Prediction-vs-Control&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4530&quot; data-ke-size=&quot;size26&quot;&gt;3. DP의 두 가지 문제: Prediction vs Control&lt;/h2&gt;
&lt;h3 id=&quot;3.1-%EB%AC%B8%EC%A0%9C-%EB%B6%84%EB%A5%98&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4531&quot; data-ke-size=&quot;size23&quot;&gt;3.1 문제 분류&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4532&quot; data-ke-size=&quot;size16&quot;&gt;Chapter 2에서 정의한 두 가지 문제를 DP로 해결:&lt;/p&gt;
&lt;h4 id=&quot;Prediction-(Policy-Evaluation)&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4533&quot; data-ke-size=&quot;size20&quot;&gt;Prediction (Policy Evaluation)&lt;/h4&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4534&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제&lt;/b&gt;: &quot;주어진 정책 &amp;pi;의 가치는 얼마인가?&quot;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;4535&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;4536&quot;&gt;&lt;b&gt;입력&lt;/b&gt;: 정책 &amp;pi;, MDP model&lt;/li&gt;
&lt;li data-nodeid=&quot;4538&quot;&gt;&lt;b&gt;출력&lt;/b&gt;: v&amp;pi;(s) for all s&lt;/li&gt;
&lt;li data-nodeid=&quot;4540&quot;&gt;&lt;b&gt;방법&lt;/b&gt;: Iterative Policy Evaluation&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;Control-(Policy-Optimization)&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4542&quot; data-ke-size=&quot;size20&quot;&gt;Control (Policy Optimization)&lt;/h4&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4543&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제&lt;/b&gt;: &quot;최적 정책과 최적 가치는 무엇인가?&quot;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;4544&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;4545&quot;&gt;&lt;b&gt;입력&lt;/b&gt;: MDP model&lt;/li&gt;
&lt;li data-nodeid=&quot;4547&quot;&gt;&lt;b&gt;출력&lt;/b&gt;: &amp;pi;*(s), v*(s) for all s&lt;/li&gt;
&lt;li data-nodeid=&quot;4549&quot;&gt;&lt;b&gt;방법&lt;/b&gt;: Policy Iteration, Value Iteration&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;3.2-%EC%99%9C-Prediction%EB%B6%80%ED%84%B0%3F&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4551&quot; data-ke-size=&quot;size23&quot;&gt;3.2 왜 Prediction부터?&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal; color: #222222;&quot; data-nodeid=&quot;4552&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-nodeid=&quot;4553&quot;&gt;&lt;b&gt;더 간단함&lt;/b&gt;: 정책이 주어져 있어서 최적화 불필요&lt;/li&gt;
&lt;li data-nodeid=&quot;4555&quot;&gt;&lt;b&gt;Control의 구성요소&lt;/b&gt;: Control 과정에서 Prediction이 필요&lt;/li&gt;
&lt;li data-nodeid=&quot;4557&quot;&gt;&lt;b&gt;단계적 학습&lt;/b&gt;: 쉬운 것부터 차근차근&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4559&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4560&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;4.-Prediction%3A-Iterative-Policy-Evaluation&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4561&quot; data-ke-size=&quot;size26&quot;&gt;4. Prediction: Iterative Policy Evaluation&lt;/h2&gt;
&lt;h3 id=&quot;4.1-%EB%AA%A9%ED%91%9C&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4562&quot; data-ke-size=&quot;size23&quot;&gt;4.1 목표&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4563&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;주어진 정책 &amp;pi;에 대해 v&amp;pi;(s)를 모든 상태 s에서 구하기&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4564&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;4.2-%ED%95%B5%EC%8B%AC-%EC%95%84%EC%9D%B4%EB%94%94%EC%96%B4&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4565&quot; data-ke-size=&quot;size23&quot;&gt;4.2 핵심 아이디어&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4566&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;벨만 방정식을 반복적으로 적용하여 수렴시키기&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4567&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;벨만 방정식 (복습)&lt;/b&gt;: v&amp;pi;(s) = &amp;Sigma; &amp;pi;(a|s) [R(s,a) + &amp;gamma; &amp;Sigma; P(s'|s,a) v&amp;pi;(s')]&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4568&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;4.3-Iterative-Policy-Evaluation-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4569&quot; data-ke-size=&quot;size23&quot;&gt;4.3 Iterative Policy Evaluation 알고리즘&lt;/h3&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;4570&quot;&gt;&lt;code&gt;1. 모든 상태의 가치를 임의로 초기화: v0(s) for all s
2. k번째 반복에서:
   vk+1(s) = &amp;Sigma; &amp;pi;(a|s) [R(s,a) + &amp;gamma; &amp;Sigma; P(s'|s,a) vk(s')]
3. 수렴할 때까지 반복: |vk+1(s) - vk(s)| &amp;lt; &amp;theta; for all s&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4571&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;4.4-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EC%9D%98-%ED%8A%B9%EC%A7%95&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4572&quot; data-ke-size=&quot;size23&quot;&gt;4.4 알고리즘의 특징&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4573&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;수렴성&lt;/b&gt;: &amp;gamma; &amp;lt; 1이면 항상 참값 v&amp;pi;(s)로 수렴 보장&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4574&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;업데이트 방식&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;4575&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;4576&quot;&gt;&lt;b&gt;Synchronous&lt;/b&gt;: 모든 상태를 동시에 업데이트&lt;/li&gt;
&lt;li data-nodeid=&quot;4578&quot;&gt;&lt;b&gt;Asynchronous&lt;/b&gt;: 상태를 하나씩 순차적으로 업데이트&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4580&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;계산 복잡도&lt;/b&gt;: O(|S|&amp;sup2;|A|) per iteration&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4581&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;4.5-%EC%8B%A4%EC%A0%9C-%EC%98%88%EC%8B%9C%3A-GridWorld&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4582&quot; data-ke-size=&quot;size23&quot;&gt;4.5 실제 예시: GridWorld&lt;/h3&gt;
&lt;pre class=&quot;angelscript&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;4583&quot;&gt;&lt;code&gt;3x3 격자, 목표: 오른쪽 하단 도달
정책: 각 상태에서 4방향으로 균등하게 이동 (&amp;pi;(a|s) = 0.25)

초기값: v0(s) = 0 for all s
1회 반복 후: 목표 근처 상태들의 가치가 증가
여러 반복 후: 목표에서 멀수록 낮은 가치로 수렴&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4584&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;4.6-Policy-Evaluation%EC%9D%98-%EC%9D%98%EB%AF%B8&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4585&quot; data-ke-size=&quot;size23&quot;&gt;4.6 Policy Evaluation의 의미&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4586&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;결과 해석&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;4587&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;4588&quot;&gt;&lt;b&gt;높은 가치&lt;/b&gt;: 이 상태에서 시작하면 정책 &amp;pi;를 따라 좋은 결과&lt;/li&gt;
&lt;li data-nodeid=&quot;4590&quot;&gt;&lt;b&gt;낮은 가치&lt;/b&gt;: 이 상태에서는 정책 &amp;pi;가 별로&lt;/li&gt;
&lt;li data-nodeid=&quot;4592&quot;&gt;&lt;b&gt;가치 gradient&lt;/b&gt;: 어느 방향이 더 유리한지 보여줌&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4594&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;5.-Control%3A-%EC%B5%9C%EC%A0%81-%EC%A0%95%EC%B1%85-%EC%B0%BE%EA%B8%B0&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4595&quot; data-ke-size=&quot;size26&quot;&gt;5. Control: 최적 정책 찾기&lt;/h2&gt;
&lt;h3 id=&quot;5.1-Control-%EB%AC%B8%EC%A0%9C%EC%9D%98-%EC%A0%91%EA%B7%BC%EB%B2%95&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4596&quot; data-ke-size=&quot;size23&quot;&gt;5.1 Control 문제의 접근법&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4597&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;기본 아이디어&lt;/b&gt;: Prediction과 Policy Improvement를 번갈아 수행&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4598&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div data-nodeid=&quot;4599&quot;&gt;&lt;b&gt;Generalized Policy Iteration (GPI)&lt;/b&gt;:&lt;/div&gt;
&lt;pre class=&quot;julia&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;4600&quot;&gt;&lt;code&gt;&amp;pi;0 &amp;rarr; E &amp;rarr; &amp;pi;1 &amp;rarr; E &amp;rarr; &amp;pi;2 &amp;rarr; E &amp;rarr; ... &amp;rarr; &amp;pi;*&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;4601&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;4602&quot;&gt;E: Evaluation (가치 계산)&lt;/li&gt;
&lt;li data-nodeid=&quot;4604&quot;&gt;&amp;rarr;: Policy Improvement (정책 개선)&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4606&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;5.2-Policy-Improvement-%EC%9B%90%EB%A6%AC&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4607&quot; data-ke-size=&quot;size23&quot;&gt;5.2 Policy Improvement 원리&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4608&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;현재 정책 &amp;pi;에서 더 나은 정책 &amp;pi;'를 만들기&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4609&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Greedy Policy&lt;/b&gt;: &amp;pi;'(s) = argmax_a q&amp;pi;(s,a)&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4610&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Policy Improvement Theorem&lt;/b&gt;: 만약 q&amp;pi;(s,&amp;pi;'(s)) &amp;ge; v&amp;pi;(s) for all s라면, v&amp;pi;'(s) &amp;ge; v&amp;pi;(s) for all s&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4611&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;직관&lt;/b&gt;: &quot;각 상태에서 가장 좋은 행동만 선택하면 전체적으로 더 좋아진다&quot;&lt;/p&gt;
&lt;h2 id=&quot;6.-Policy-Iteration&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4612&quot; data-ke-size=&quot;size26&quot;&gt;6. Policy Iteration&lt;/h2&gt;
&lt;h3 id=&quot;6.1-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EA%B5%AC%EC%A1%B0&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4613&quot; data-ke-size=&quot;size23&quot;&gt;6.1 알고리즘 구조&lt;/h3&gt;
&lt;pre class=&quot;routeros&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;4614&quot;&gt;&lt;code&gt;1. 임의의 정책 &amp;pi;0로 초기화
2. 반복:
   a) Policy Evaluation: v&amp;pi;를 정확히 계산
   b) Policy Improvement: &amp;pi;'(s) = argmax_a &amp;Sigma; P(s'|s,a)[R(s,a) + &amp;gamma;v&amp;pi;(s')]
   c) &amp;pi; &amp;larr; &amp;pi;'
3. 정책이 변하지 않을 때까지 반복&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4615&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;6.2-Policy-Iteration%EC%9D%98-%ED%8A%B9%EC%A7%95&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4616&quot; data-ke-size=&quot;size23&quot;&gt;6.2 Policy Iteration의 특징&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4617&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;수렴성&lt;/b&gt;: 유한 MDP에서 항상 최적 정책으로 수렴&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4618&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;단조성&lt;/b&gt;: 정책이 단조적으로 개선됨 (v&amp;pi;k+1 &amp;ge; v&amp;pi;k)&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4619&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;유한성&lt;/b&gt;: 정책 수가 유한하므로 유한 시간에 수렴&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4620&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;계산량&lt;/b&gt;: 각 iteration에서 Policy Evaluation이 비쌈&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4621&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;6.3-Policy-Iteration%EC%9D%98-%EA%B3%BC%EC%A0%95-%EC%98%88%EC%8B%9C&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4622&quot; data-ke-size=&quot;size23&quot;&gt;6.3 Policy Iteration의 과정 예시&lt;/h3&gt;
&lt;pre class=&quot;angelscript&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;4623&quot;&gt;&lt;code&gt;초기 정책: 모든 상태에서 랜덤 행동
1차 반복: 이 정책의 가치 계산 &amp;rarr; 각 상태에서 최선 행동 선택
2차 반복: 개선된 정책의 가치 계산 &amp;rarr; 또 다시 개선
...
수렴: 더 이상 개선할 수 없는 최적 정책 도달&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4624&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;6.4-Policy-Evaluation%EC%9D%98-%EC%A0%95%ED%99%95%EB%8F%84&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4625&quot; data-ke-size=&quot;size23&quot;&gt;6.4 Policy Evaluation의 정확도&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4626&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;완전한 평가 vs 부분 평가&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;4627&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;4628&quot;&gt;&lt;b&gt;완전&lt;/b&gt;: 수렴할 때까지 Policy Evaluation&lt;/li&gt;
&lt;li data-nodeid=&quot;4630&quot;&gt;&lt;b&gt;부분&lt;/b&gt;: 몇 번만 반복하고 Policy Improvement&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4632&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Modified Policy Iteration&lt;/b&gt;: Policy Evaluation을 일정 횟수만 수행&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;4633&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;4634&quot;&gt;더 빠르지만 수렴 보장이 약해질 수 있음&lt;/li&gt;
&lt;li data-nodeid=&quot;4636&quot;&gt;극단적 경우: 1번만 &amp;rarr; Value Iteration&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4638&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;7.-Value-Iteration&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4639&quot; data-ke-size=&quot;size26&quot;&gt;7. Value Iteration&lt;/h2&gt;
&lt;h3 id=&quot;7.1-%EA%B8%B0%EB%B3%B8-%EC%95%84%EC%9D%B4%EB%94%94%EC%96%B4&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4640&quot; data-ke-size=&quot;size23&quot;&gt;7.1 기본 아이디어&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4641&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&quot;Policy Evaluation을 한 번만 하고 바로 개선하면?&quot;&lt;/b&gt;&lt;/p&gt;
&lt;div data-nodeid=&quot;4642&quot;&gt;&lt;b&gt;핵심 통찰&lt;/b&gt;: 벨만 최적성 방정식을 직접 반복 적용 vk+1(s) = max_a [R(s,a) + &amp;gamma; &amp;Sigma; P(s'|s,a) vk(s')]&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4643&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;7.2-Value-Iteration-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4644&quot; data-ke-size=&quot;size23&quot;&gt;7.2 Value Iteration 알고리즘&lt;/h3&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;4645&quot;&gt;&lt;code&gt;1. 모든 상태의 가치를 임의로 초기화: v0(s)
2. k번째 반복에서:
   vk+1(s) = max_a [R(s,a) + &amp;gamma; &amp;Sigma; P(s'|s,a) vk(s')]
3. 수렴할 때까지 반복
4. 최적 정책 추출: &amp;pi;*(s) = argmax_a [R(s,a) + &amp;gamma; &amp;Sigma; P(s'|s,a) v*(s')]&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4646&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;7.3-Value-Iteration%EC%9D%98-%ED%8A%B9%EC%A7%95&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4647&quot; data-ke-size=&quot;size23&quot;&gt;7.3 Value Iteration의 특징&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4648&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;수렴성&lt;/b&gt;: &amp;gamma; &amp;lt; 1이면 v*로 수렴 보장&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4649&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;효율성&lt;/b&gt;: Policy Iteration보다 각 iteration이 빠름&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4650&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;구조&lt;/b&gt;: Evaluation과 Improvement가 동시에 일어남&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4651&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;정책 추출&lt;/b&gt;: 마지막에 최적 정책을 greedy하게 추출&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4652&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;7.4-Principle-of-Optimality&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4653&quot; data-ke-size=&quot;size23&quot;&gt;7.4 Principle of Optimality&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4654&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;벨만의 최적성 원리&lt;/b&gt;: &quot;최적 정책의 어떤 부분도 그 자체로 최적이어야 한다&quot;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4655&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;MDP에서의 적용&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;4656&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;4657&quot;&gt;최적 정책 &amp;pi;가 상태 s에서 행동 a를 선택했다면&lt;/li&gt;
&lt;li data-nodeid=&quot;4659&quot;&gt;a* 이후의 정책도 해당 부분 문제에서 최적이어야 함&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4661&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Value Iteration의 정당성&lt;/b&gt;: 이 원리가 Value Iteration의 수렴을 보장&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4662&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4663&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;8.-Policy-Iteration-vs-Value-Iteration&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4664&quot; data-ke-size=&quot;size26&quot;&gt;8. Policy Iteration vs Value Iteration&lt;/h2&gt;
&lt;h3 id=&quot;8.1-%EB%B9%84%EA%B5%90%ED%91%9C&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4665&quot; data-ke-size=&quot;size23&quot;&gt;8.1 비교표&lt;/h3&gt;
&lt;pre class=&quot;armasm&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;4666&quot;&gt;&lt;code&gt;특성Policy IterationValue Iteration각 iteration오래 걸림빠름iteration 수적음많음전체 시간비슷비슷메모리정책 + 가치 저장가치만 저장중간 정책의미 있음의미 없음구현복잡단순&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4667&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;8.2-%EC%96%B8%EC%A0%9C-%EB%AC%B4%EC%97%87%EC%9D%84-%EC%82%AC%EC%9A%A9%ED%95%A0%EA%B9%8C%3F&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4668&quot; data-ke-size=&quot;size23&quot;&gt;8.2 언제 무엇을 사용할까?&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4669&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Policy Iteration 선호&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;4670&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;4671&quot;&gt;좋은 초기 정책이 있을 때&lt;/li&gt;
&lt;li data-nodeid=&quot;4673&quot;&gt;중간 정책도 활용하고 싶을 때&lt;/li&gt;
&lt;li data-nodeid=&quot;4675&quot;&gt;행동 공간이 클 때&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4677&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Value Iteration 선호&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;4678&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;4679&quot;&gt;구현 단순성을 원할 때&lt;/li&gt;
&lt;li data-nodeid=&quot;4681&quot;&gt;메모리 제약이 있을 때&lt;/li&gt;
&lt;li data-nodeid=&quot;4683&quot;&gt;최종 정책만 필요할 때&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4685&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;8.3-%EC%8B%9C%EA%B0%84-%EB%B3%B5%EC%9E%A1%EB%8F%84-%EB%B6%84%EC%84%9D&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4686&quot; data-ke-size=&quot;size23&quot;&gt;8.3 시간 복잡도 분석&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4687&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;State Value Function 사용 시&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;4688&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;4689&quot;&gt;Policy Iteration: O(|S|&amp;sup2;|A|) per evaluation + O(|S||A|) per improvement&lt;/li&gt;
&lt;li data-nodeid=&quot;4691&quot;&gt;Value Iteration: O(|S|&amp;sup2;|A|) per iteration&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4693&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Action Value Function 사용 시&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;4694&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;4695&quot;&gt;더 높은 복잡도: O(|S||A|&amp;sup2;)&lt;/li&gt;
&lt;li data-nodeid=&quot;4697&quot;&gt;하지만 정책 추출이 더 간단: &amp;pi;(s) = argmax_a Q(s,a)&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4699&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4700&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;9.-%EC%8B%A4%EC%A0%9C-%EA%B5%AC%ED%98%84-%EA%B3%A0%EB%A0%A4%EC%82%AC%ED%95%AD&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4701&quot; data-ke-size=&quot;size26&quot;&gt;9. 실제 구현 고려사항&lt;/h2&gt;
&lt;h3 id=&quot;9.1-%EC%88%98%EB%A0%B4-%ED%8C%90%EC%A0%95&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4702&quot; data-ke-size=&quot;size23&quot;&gt;9.1 수렴 판정&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4703&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Value Function 기준&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;4704&quot;&gt;&lt;code&gt;max_s |vk+1(s) - vk(s)| &amp;lt; &amp;theta;&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4705&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Policy 기준&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(Policy Iteration):&lt;/p&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8;&quot; data-nodeid=&quot;4706&quot;&gt;&lt;code&gt;&amp;pi;k+1(s) = &amp;pi;k(s) for all s&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4707&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;9.2-%EC%B4%88%EA%B8%B0%ED%99%94-%EC%A0%84%EB%9E%B5&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4708&quot; data-ke-size=&quot;size23&quot;&gt;9.2 초기화 전략&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4709&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Value Function&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;4710&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;4711&quot;&gt;v0(s) = 0 (일반적)&lt;/li&gt;
&lt;li data-nodeid=&quot;4713&quot;&gt;도메인 지식 활용한 좋은 초기값&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4715&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Policy&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;4716&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;4717&quot;&gt;균등 정책 (uniform random)&lt;/li&gt;
&lt;li data-nodeid=&quot;4719&quot;&gt;휴리스틱 기반 정책&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4721&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;9.3-%EC%97%85%EB%8D%B0%EC%9D%B4%ED%8A%B8-%EC%88%9C%EC%84%9C&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4722&quot; data-ke-size=&quot;size23&quot;&gt;9.3 업데이트 순서&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4723&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Synchronous&lt;/b&gt;: 모든 상태 동시 업데이트&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Asynchronous&lt;/b&gt;: 상태별 순차 업데이트&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;4724&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;4725&quot;&gt;In-place 업데이트로 메모리 절약&lt;/li&gt;
&lt;li data-nodeid=&quot;4727&quot;&gt;수렴 속도 개선 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4729&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;9.4-%EC%8B%A4%EC%A0%9C-%EC%A0%81%EC%9A%A9-%EC%8B%9C-%ED%95%9C%EA%B3%84&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4730&quot; data-ke-size=&quot;size23&quot;&gt;9.4 실제 적용 시 한계&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4731&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;상태 공간 폭발&lt;/b&gt;: 상태 수가 기하급수적 증가&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Model 요구사항&lt;/b&gt;: 완벽한 P, R 필요&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;계산 복잡도&lt;/b&gt;: 큰 문제에는 비현실적&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4732&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4733&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;10.-DP%EC%9D%98-%ED%99%95%EC%9E%A5%EA%B3%BC-%EC%9D%91%EC%9A%A9&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4734&quot; data-ke-size=&quot;size26&quot;&gt;10. DP의 확장과 응용&lt;/h2&gt;
&lt;h3 id=&quot;10.1-Asynchronous-DP&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4735&quot; data-ke-size=&quot;size23&quot;&gt;10.1 Asynchronous DP&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4736&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;In-place Value Iteration&lt;/b&gt;: 같은 배열에서 즉시 업데이트&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Prioritized Sweeping&lt;/b&gt;: 변화가 큰 상태 우선 업데이트&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Real-time DP&lt;/b&gt;: 현재 상태 주변만 업데이트&lt;/p&gt;
&lt;h3 id=&quot;10.2-Approximate-DP&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4737&quot; data-ke-size=&quot;size23&quot;&gt;10.2 Approximate DP&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4738&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Function Approximation&lt;/b&gt;: 가치 함수를 함수로 근사&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;State Aggregation&lt;/b&gt;: 비슷한 상태들을 묶어서 처리&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Linear Programming&lt;/b&gt;: DP를 선형계획법으로 변환&lt;/p&gt;
&lt;h3 id=&quot;10.3-Partial-Observable-MDP&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4739&quot; data-ke-size=&quot;size23&quot;&gt;10.3 Partial Observable MDP&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4740&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Belief State&lt;/b&gt;: 확률 분포로 상태 표현&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Point-based DP&lt;/b&gt;: 대표적인 belief state들만 계산&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4741&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;11.-Chapter-3-%EC%A0%95%EB%A6%AC-%EB%B0%8F-%EB%8B%A4%EC%9D%8C-%EB%8B%A8%EA%B3%84&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4742&quot; data-ke-size=&quot;size26&quot;&gt;11. Chapter 3 정리 및 다음 단계&lt;/h2&gt;
&lt;h3 id=&quot;11.1-DP%EA%B0%80-%ED%95%B4%EA%B2%B0%ED%95%9C-%EA%B2%83&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4743&quot; data-ke-size=&quot;size23&quot;&gt;11.1 DP가 해결한 것&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4744&quot; data-ke-size=&quot;size16&quot;&gt;✅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;완벽한 모델에서 최적 해법&lt;/b&gt;: 벨만 방정식을 실제로 풀 수 있음 ✅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;이론의 구현&lt;/b&gt;: MDP 이론을 실제 알고리즘으로 변환 ✅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;두 가지 접근법&lt;/b&gt;: Policy Iteration과 Value Iteration&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4745&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;11.2-DP%EC%9D%98-%ED%95%9C%EA%B3%84&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4746&quot; data-ke-size=&quot;size23&quot;&gt;11.2 DP의 한계&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4747&quot; data-ke-size=&quot;size16&quot;&gt;❌&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;완벽한 모델 필요&lt;/b&gt;: 실제로는 P, R을 모르는 경우가 많음 ❌&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;계산 복잡도&lt;/b&gt;: 상태 수가 많으면 불가능 ❌&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;실시간 제약&lt;/b&gt;: 계획 단계에서만 사용 가능&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4748&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;11.3-%EB%8B%A4%EC%9D%8C-%EB%8B%A8%EA%B3%84%3A-Model-free-RL-(Chapter-4)&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4749&quot; data-ke-size=&quot;size23&quot;&gt;11.3 다음 단계: Model-free RL (Chapter 4)&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4750&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;해결하고 싶은 문제들&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;4751&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;4752&quot;&gt;&quot;모델을 모를 때는 어떻게 하지?&quot; &amp;rarr; Monte Carlo, TD Learning&lt;/li&gt;
&lt;li data-nodeid=&quot;4754&quot;&gt;&quot;실시간으로 학습하려면?&quot; &amp;rarr; Online Learning&lt;/li&gt;
&lt;li data-nodeid=&quot;4756&quot;&gt;&quot;상태가 너무 많으면?&quot; &amp;rarr; Function Approximation&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4758&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;DP에서 배운 핵심 아이디어들&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;4759&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;4760&quot;&gt;
&lt;div data-nodeid=&quot;4761&quot;&gt;&lt;b&gt;GPI (Generalized Policy Iteration)&lt;/b&gt;: Evaluation &amp;harr; Improvement 반복&lt;/div&gt;
&lt;/li&gt;
&lt;li data-nodeid=&quot;4762&quot;&gt;&lt;b&gt;Bootstrapping&lt;/b&gt;: 추정값으로 추정값 업데이트&lt;/li&gt;
&lt;li data-nodeid=&quot;4764&quot;&gt;&lt;b&gt;Bellman Backup&lt;/b&gt;: 벨만 방정식 기반 업데이트&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4766&quot; data-ke-size=&quot;size16&quot;&gt;&amp;rarr; 이들이 Model-free RL의 핵심 구성요소가 됨!&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4767&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;11.4-%ED%95%B5%EC%8B%AC-%EB%A9%94%EC%8B%9C%EC%A7%80&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;4768&quot; data-ke-size=&quot;size23&quot;&gt;11.4 핵심 메시지&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4769&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Dynamic Programming은 강화학습의 이론적 토대&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;4770&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;4771&quot;&gt;MDP 이론을 실제 알고리즘으로 구현하는 방법&lt;/li&gt;
&lt;li data-nodeid=&quot;4773&quot;&gt;완벽한 조건에서의 최적 해법&lt;/li&gt;
&lt;li data-nodeid=&quot;4775&quot;&gt;실제 RL 알고리즘들의 원형과 영감의 원천&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4777&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&quot;이상적 조건에서 완벽한 해법을 알았으니, 이제 현실적 제약에서 근사적 해법을 찾아보자!&quot;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4778&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4779&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4780&quot; data-ke-size=&quot;size16&quot;&gt;Dynamic Programming은 강화학습 여행의 첫 번째 목적지였음. 완벽한 지도(환경 모델)를 가지고 최적의 경로(정책)를 찾는 방법을 배웠음. Policy Iteration과 Value Iteration을 통해 벨만 방정식이 단순한 이론이 아니라 실제로 풀 수 있는 문제라는 것을 확인했음.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4781&quot; data-ke-size=&quot;size16&quot;&gt;하지만 현실은 그리 호락호락하지 않음. 대부분의 실제 문제에서는 환경의 완벽한 모델을 알 수 없고, 상태 공간은 계산하기 어려울 만큼 크며, 실시간으로 학습해야 하는 경우가 많음. DP는 이런 현실적 제약들 앞에서 한계를 드러냄.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4782&quot; data-ke-size=&quot;size16&quot;&gt;그럼에도 불구하고 DP에서 배운 핵심 아이디어들은 앞으로의 여정에서 계속 등장할 예정임. 평가와 개선을 반복하는 Generalized Policy Iteration의 구조, 추정값으로 추정값을 업데이트하는 Bootstrapping, 벨만 방정식을 기반으로 한 업데이트 방식 등은 모든 강화학습 알고리즘의 DNA가 됨.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4783&quot; data-ke-size=&quot;size16&quot;&gt;다음 장에서는 모델 없이도 학습할 수 있는 Model-free 방법들을 살펴볼 예정임. 완벽한 지도 없이 시행착오를 통해 길을 찾아가는 방법들 말임. DP가 제시한 이론적 기준점을 바탕으로, 이제 현실적인 해법들을 하나씩 탐험해보자.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4784&quot; data-ke-size=&quot;size16&quot;&gt;완벽한 조건에서의 완벽한 해법을 알았으니, 이제 불완전한 세상에서 통하는 실용적인 방법들을 찾아갈 차례임.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4785&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;4786&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>AI/Reinforcement Learning</category>
      <author>땽뚕</author>
      <guid isPermaLink="true">https://asidefine.tistory.com/362</guid>
      <comments>https://asidefine.tistory.com/362#entry362comment</comments>
      <pubDate>Sun, 10 Aug 2025 10:50:19 +0900</pubDate>
    </item>
    <item>
      <title>[2025 강화학습 Recap] Chapter 2: Markov Decision Processes</title>
      <link>https://asidefine.tistory.com/361</link>
      <description>&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;[2025&amp;nbsp;강화학습&amp;nbsp;Recap]&amp;nbsp;Chapter&amp;nbsp;2:&amp;nbsp;Markov&amp;nbsp;Decision&amp;nbsp;Processes&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;강화학습의 핵심은 불확실한 환경에서 순차적 의사결정을 통해 누적 보상을 최대화하는 것임. 하지만 이런 문제를 어떻게 수학적으로 표현하고 분석할 수 있을까?&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;1847&quot; data-ke-size=&quot;size16&quot;&gt;이 장에서는 강화학습 문제를 정형화하는 표준 프레임워크인 마르코프 결정 과정(Markov Decision Process, MDP)을 다룸. MDP는 에이전트와 환경 간의 상호작용을 상태, 행동, 보상, 전이확률이라는 명확한 수학적 개념으로 모델링함.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;1848&quot; data-ke-size=&quot;size16&quot;&gt;MDP의 핵심 가정인 마르코프 성질부터 시작해서, 정책과 가치함수의 정의, 그리고 최적해를 특성화하는 벨만 방정식까지 살펴볼 예정임. 이러한 이론적 토대는 이후 장에서 다룰 모든 강화학습 알고리즘의 근간이 됨.&lt;br /&gt;단순해 보이는 이 프레임워크가 어떻게 복잡한 현실 문제들을 효과적으로 모델링할 수 있는지, 그리고 왜 강화학습 연구의 출발점이 되는지 함께 알아보자.&lt;/p&gt;
&lt;h2 id=&quot;1.-Markov-Property-(%EB%A7%88%EB%A5%B4%EC%BD%94%ED%94%84-%EC%84%B1%EC%A7%88)&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;1849&quot; data-ke-size=&quot;size26&quot;&gt;1. Markov Property (마르코프 성질)&lt;/h2&gt;
&lt;h3 id=&quot;1.1-%EA%B8%B0%EB%B3%B8-%EA%B0%9C%EB%85%90&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;1850&quot; data-ke-size=&quot;size23&quot;&gt;1.1 기본 개념&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;1851&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&quot;미래는 과거에 독립적이며, 오직 현재에만 의존한다&quot;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;1852&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;수학적 정의&lt;/b&gt;: P(St+1|St) = P(St+1|S1, S2, ..., St)&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;1853&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;직관적 이해&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;1854&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1855&quot;&gt;현재 상태가 과거의 모든 정보를 충분히 담고 있음&lt;/li&gt;
&lt;li data-nodeid=&quot;1857&quot;&gt;다음 상태를 예측하는 데 과거 히스토리는 불필요&lt;/li&gt;
&lt;li data-nodeid=&quot;1859&quot;&gt;&quot;현재가 과거와 미래를 분리한다&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;1861&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;실생활 예시&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;1862&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1863&quot;&gt;&lt;b&gt;체스&lt;/b&gt;: 현재 말의 배치만 알면 충분 (이전 수순은 중요하지 않음)&lt;/li&gt;
&lt;li data-nodeid=&quot;1865&quot;&gt;&lt;b&gt;날씨&lt;/b&gt;: 현재 기상 상태로 내일 날씨 예측 (일주일 전 날씨는 무관)&lt;/li&gt;
&lt;li data-nodeid=&quot;1867&quot;&gt;&lt;b&gt;주식&lt;/b&gt;: 현재 주가 상태 (과거 주가 히스토리보다 현재 상황이 중요)&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;1869&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Markov Property 위반 사례&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;1870&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1871&quot;&gt;&lt;b&gt;포커&lt;/b&gt;: 상대방이 이전에 어떻게 플레이했는지(블러핑 패턴)가 중요&lt;/li&gt;
&lt;li data-nodeid=&quot;1873&quot;&gt;&lt;b&gt;대화&lt;/b&gt;: 현재 문장만으로는 맥락 파악 불가, 이전 대화 내용 필요&lt;/li&gt;
&lt;li data-nodeid=&quot;1875&quot;&gt;&lt;b&gt;주가 기술적 분석&lt;/b&gt;: 과거 차트 패턴이 미래 예측에 중요하다고 믿는 경우&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;1.2-State-Transition-Matrix-(%EC%83%81%ED%83%9C-%EC%A0%84%EC%9D%B4-%ED%96%89%EB%A0%AC)&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;1877&quot; data-ke-size=&quot;size23&quot;&gt;1.2 State Transition Matrix (상태 전이 행렬)&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;1878&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1879&quot;&gt;&lt;b&gt;정의&lt;/b&gt;: 현재 상태 s에서 다음 상태 s'로 갈 확률을 담은 행렬&lt;/li&gt;
&lt;li data-nodeid=&quot;1881&quot;&gt;&lt;b&gt;특성&lt;/b&gt;: 각 행의 합이 1 (확률의 총합 = 1)&lt;/li&gt;
&lt;li data-nodeid=&quot;1883&quot;&gt;&lt;b&gt;표기&lt;/b&gt;: P_ss' = P(St+1 = s' | St = s)&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;1885&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;예시&lt;/b&gt;: 날씨 예측&lt;/p&gt;
&lt;pre class=&quot;angelscript&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;1886&quot;&gt;&lt;code&gt;        내일
오늘    맑음  비   흐림
맑음    0.7  0.2   0.1    &amp;larr; 오늘 맑으면 내일도 맑을 확률 70%
비      0.3  0.4   0.3    &amp;larr; 비가 오면 내일도 비 올 확률 40%
흐림    0.4  0.3   0.3    &amp;larr; 흐리면 내일 확률이 고르게 분포&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;1887&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;중요한 성질들&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;1888&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1889&quot;&gt;&lt;b&gt;각 행의 합 = 1&lt;/b&gt;: 확률의 기본 성질&lt;/li&gt;
&lt;li data-nodeid=&quot;1891&quot;&gt;&lt;b&gt;Stationary&lt;/b&gt;: 시간이 지나도 전이 확률 불변&lt;/li&gt;
&lt;li data-nodeid=&quot;1893&quot;&gt;&lt;b&gt;Irreducible&lt;/b&gt;: 모든 상태에서 다른 모든 상태로 갈 수 있음 (연결성)&lt;/li&gt;
&lt;li data-nodeid=&quot;1895&quot;&gt;&lt;b&gt;Aperiodic&lt;/b&gt;: 특정 주기 없이 상태 방문 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;2.-Markov-Process-(%EB%A7%88%EB%A5%B4%EC%BD%94%ED%94%84-%EA%B3%BC%EC%A0%95)-%3CS%2C-P%3E&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;1897&quot; data-ke-size=&quot;size26&quot;&gt;2. Markov Process (마르코프 과정) &amp;lt;S, P&amp;gt;&lt;/h2&gt;
&lt;h3 id=&quot;2.1-%EC%A0%95%EC%9D%98&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;1898&quot; data-ke-size=&quot;size23&quot;&gt;2.1 정의&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;1899&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&quot;상태들과 전이 확률로만 구성된 확률적 과정&quot;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;1900&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;구성요소&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;1901&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1902&quot;&gt;&lt;b&gt;S&lt;/b&gt;: 상태들의 집합 (finite or infinite)&lt;/li&gt;
&lt;li data-nodeid=&quot;1904&quot;&gt;&lt;b&gt;P&lt;/b&gt;: 상태 전이 확률 행렬&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;2.2-%ED%8A%B9%EC%A7%95&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;1906&quot; data-ke-size=&quot;size23&quot;&gt;2.2 특징&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;1907&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1908&quot;&gt;&lt;b&gt;Memoryless&lt;/b&gt;: 기억이 없는 확률 과정&lt;/li&gt;
&lt;li data-nodeid=&quot;1910&quot;&gt;&lt;b&gt;Stochastic&lt;/b&gt;: 확률에 기반한 랜덤 과정&lt;/li&gt;
&lt;li data-nodeid=&quot;1912&quot;&gt;&lt;b&gt;시간 독립적&lt;/b&gt;: 전이 확률이 시간에 따라 변하지 않음&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;1914&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;실생활 예시&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;1915&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1916&quot;&gt;웹 페이지 간 사용자 이동 패턴&lt;/li&gt;
&lt;li data-nodeid=&quot;1918&quot;&gt;고객의 브랜드 선호도 변화&lt;/li&gt;
&lt;li data-nodeid=&quot;1920&quot;&gt;게임 내 캐릭터 상태 변화&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;1922&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Random Walk 예제&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;angelscript&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;1923&quot;&gt;&lt;code&gt;상태: [1] &amp;harr; [2] &amp;harr; [3] &amp;harr; [4] &amp;harr; [5]
각 상태에서 좌우로 0.5 확률씩 이동
양 끝에서는 제자리 또는 안쪽으로만 이동&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;1924&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;장기 행동 분석&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;1925&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1926&quot;&gt;&lt;b&gt;Stationary Distribution&lt;/b&gt;: 충분한 시간 후 각 상태에 있을 확률&lt;/li&gt;
&lt;li data-nodeid=&quot;1928&quot;&gt;&lt;b&gt;Mean Return Time&lt;/b&gt;: 특정 상태로 돌아오는 데 걸리는 평균 시간&lt;/li&gt;
&lt;li data-nodeid=&quot;1930&quot;&gt;&lt;b&gt;Absorption Probability&lt;/b&gt;: 흡수 상태에 도달할 확률&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;3.-Markov-Reward-Process-(MRP)-%3CS%2C-P%2C-R%2C-%CE%B3%3E&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;1932&quot; data-ke-size=&quot;size26&quot;&gt;3. Markov Reward Process (MRP) &amp;lt;S, P, R, &amp;gamma;&amp;gt;&lt;/h2&gt;
&lt;h3 id=&quot;3.1-%EC%99%9C-MRP%EA%B0%80-%ED%95%84%EC%9A%94%ED%95%9C%EA%B0%80%3F&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;1933&quot; data-ke-size=&quot;size23&quot;&gt;3.1 왜 MRP가 필요한가?&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;1934&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Markov Process의 한계&lt;/b&gt;: 단순히 상태만 변하는 것을 관찰할 뿐, **&quot;어떤 상태가 좋은가?&quot;**를 알 수 없음&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;1935&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;MRP의 목표&lt;/b&gt;: &quot;각 상태의 가치를 평가하자!&quot;&lt;/p&gt;
&lt;h3 id=&quot;3.2-%EC%A0%95%EC%9D%98&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;1936&quot; data-ke-size=&quot;size23&quot;&gt;3.2 정의&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;1937&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&quot;보상과 할인율이 추가된 마르코프 과정&quot;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;1938&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;구성요소&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;1939&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1940&quot;&gt;&lt;b&gt;S&lt;/b&gt;: 상태 집합&lt;/li&gt;
&lt;li data-nodeid=&quot;1942&quot;&gt;&lt;b&gt;P&lt;/b&gt;: 상태 전이 확률 행렬&lt;/li&gt;
&lt;li data-nodeid=&quot;1944&quot;&gt;&lt;b&gt;R&lt;/b&gt;: 보상 함수 (각 상태에서 받는 즉시 보상)&lt;/li&gt;
&lt;li data-nodeid=&quot;1946&quot;&gt;&lt;b&gt;&amp;gamma;&lt;/b&gt;: 할인율 (0 &amp;le; &amp;gamma; &amp;le; 1)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;3.3-Return-(%EC%88%98%EC%9D%B5)&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;1948&quot; data-ke-size=&quot;size23&quot;&gt;3.3 Return (수익)&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;1949&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;정의&lt;/b&gt;: Gt = Rt+1 + &amp;gamma;Rt+2 + &amp;gamma;&amp;sup2;Rt+3 + ... = &amp;Sigma;(&amp;gamma;ᵏRt+k+1)&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;1950&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;할인율이 필요한 이유&lt;/b&gt;:&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;1951&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-nodeid=&quot;1952&quot;&gt;&lt;b&gt;수렴성 보장&lt;/b&gt;: 무한한 보상의 합을 유한하게 만듦&lt;/li&gt;
&lt;li data-nodeid=&quot;1954&quot;&gt;&lt;b&gt;불확실성 반영&lt;/b&gt;: 미래는 불확실하므로 현재 가치로 할인&lt;/li&gt;
&lt;li data-nodeid=&quot;1956&quot;&gt;&lt;b&gt;즉시성 선호&lt;/b&gt;: 나중의 보상보다 지금의 보상이 더 가치 있음&lt;/li&gt;
&lt;li data-nodeid=&quot;1958&quot;&gt;&lt;b&gt;수학적 편의&lt;/b&gt;: 계산을 단순화&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;1960&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;할인율의 의미&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;1961&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1962&quot;&gt;&lt;b&gt;&amp;gamma; = 0&lt;/b&gt;: 극도로 근시안적 (즉시 보상만 고려)&lt;/li&gt;
&lt;li data-nodeid=&quot;1964&quot;&gt;&lt;b&gt;&amp;gamma; = 1&lt;/b&gt;: 극도로 원시안적 (모든 미래 보상 동등하게 고려)&lt;/li&gt;
&lt;li data-nodeid=&quot;1966&quot;&gt;&lt;b&gt;&amp;gamma; = 0.9&lt;/b&gt;: 10스텝 후 보상은 현재 가치의 약 35%&lt;/li&gt;
&lt;li data-nodeid=&quot;1968&quot;&gt;&lt;b&gt;&amp;gamma; = 0.99&lt;/b&gt;: 100스텝 후 보상은 현재 가치의 약 37%&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;1970&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;할인율 선택 가이드&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;1971&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1972&quot;&gt;&lt;b&gt;Episode가 짧은 경우&lt;/b&gt;: &amp;gamma; = 0.9 ~ 0.95&lt;/li&gt;
&lt;li data-nodeid=&quot;1974&quot;&gt;&lt;b&gt;Episode가 긴 경우&lt;/b&gt;: &amp;gamma; = 0.99 ~ 0.999&lt;/li&gt;
&lt;li data-nodeid=&quot;1976&quot;&gt;&lt;b&gt;실시간 제어&lt;/b&gt;: &amp;gamma; = 0.8 ~ 0.9 (빠른 반응 중요)&lt;/li&gt;
&lt;li data-nodeid=&quot;1978&quot;&gt;&lt;b&gt;장기 계획&lt;/b&gt;: &amp;gamma; = 0.95 ~ 0.99 (미래 고려 중요)&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;1980&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;경제학적 해석&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;1981&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1982&quot;&gt;&lt;b&gt;이자율과 유사&lt;/b&gt;: 할인율 = 1/(1+이자율)&lt;/li&gt;
&lt;li data-nodeid=&quot;1984&quot;&gt;&lt;b&gt;Risk Premium&lt;/b&gt;: 불확실성에 대한 추가 할인&lt;/li&gt;
&lt;li data-nodeid=&quot;1986&quot;&gt;&lt;b&gt;Time Preference&lt;/b&gt;: 개인의 시간 선호도 반영&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;3.4-State-Value-Function-(%EC%83%81%ED%83%9C-%EA%B0%80%EC%B9%98-%ED%95%A8%EC%88%98)&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;1988&quot; data-ke-size=&quot;size23&quot;&gt;3.4 State Value Function (상태 가치 함수)&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;1989&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;정의&lt;/b&gt;: v(s) = E[Gt | St = s]&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;1990&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;의미&lt;/b&gt;: 상태 s에서 시작해서 끝까지 받을 것으로 예상되는 총 보상&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;1991&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;실용적 해석&lt;/b&gt;: &quot;이 상태가 얼마나 좋은가?&quot;&lt;/p&gt;
&lt;h3 id=&quot;3.5-Bellman-Equation-for-MRP&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;1992&quot; data-ke-size=&quot;size23&quot;&gt;3.5 Bellman Equation for MRP&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;1993&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;해결하고 싶은 문제&lt;/b&gt;: &quot;각 상태의 가치를 어떻게 계산할까?&quot;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;1994&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;핵심 아이디어&lt;/b&gt;: 현재 가치 = 즉시 보상 + 할인된 다음 상태들의 기댓값&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;1995&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;수식&lt;/b&gt;: v(s) = R(s) + &amp;gamma; &amp;Sigma; P(s'|s) v(s')&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;1996&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;직관적 이해&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;1997&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1998&quot;&gt;현재 상태의 가치는 두 부분으로 나뉨&lt;/li&gt;
&lt;li data-nodeid=&quot;2000&quot;&gt;
&lt;ol style=&quot;list-style-type: decimal; color: #222222;&quot; data-nodeid=&quot;2001&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-nodeid=&quot;2002&quot;&gt;지금 당장 받는 보상&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li data-nodeid=&quot;2004&quot;&gt;2. 다음에 갈 수 있는 모든 상태들의 할인된 가치&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2006&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;벡터 형태&lt;/b&gt;: v = R + &amp;gamma;Pv&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2007&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2008&quot;&gt;이를 풀면: v = (I - &amp;gamma;P)⁻&amp;sup1;R (행렬의 역원이 존재할 때)&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2010&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;해결 방법들&lt;/b&gt;:&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2011&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-nodeid=&quot;2012&quot;&gt;&lt;b&gt;직접 해법&lt;/b&gt;: 연립방정식으로 풀기 (상태 수가 적을 때)&lt;/li&gt;
&lt;li data-nodeid=&quot;2014&quot;&gt;&lt;b&gt;반복 해법&lt;/b&gt;: v_{k+1} = R + &amp;gamma;Pv_k (수렴할 때까지 반복)&lt;/li&gt;
&lt;li data-nodeid=&quot;2016&quot;&gt;&lt;b&gt;Monte Carlo&lt;/b&gt;: 실제 샘플 궤적으로 추정&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2018&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;계산 복잡도&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2019&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2020&quot;&gt;직접 해법: O(n&amp;sup3;) - 행렬 역원 계산&lt;/li&gt;
&lt;li data-nodeid=&quot;2022&quot;&gt;반복 해법: O(n&amp;sup2;) per iteration - 행렬-벡터 곱셈&lt;/li&gt;
&lt;li data-nodeid=&quot;2024&quot;&gt;n이 클 때는 반복 해법이 유리&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2026&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;수렴 조건&lt;/b&gt;: &amp;gamma; &amp;lt; 1이면 항상 수렴 보장&lt;/p&gt;
&lt;h2 id=&quot;4.-Markov-Decision-Process-(MDP)-%3CS%2C-A%2C-P%2C-R%2C-%CE%B3%3E&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2027&quot; data-ke-size=&quot;size26&quot;&gt;4. Markov Decision Process (MDP) &amp;lt;S, A, P, R, &amp;gamma;&amp;gt;&lt;/h2&gt;
&lt;h3 id=&quot;4.1-MRP%EC%9D%98-%ED%95%9C%EA%B3%84%EC%99%80-MDP%EC%9D%98-%ED%95%84%EC%9A%94%EC%84%B1&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2028&quot; data-ke-size=&quot;size23&quot;&gt;4.1 MRP의 한계와 MDP의 필요성&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2029&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;MRP의 한계&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2030&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2031&quot;&gt;환경이 상태를 바꿔주기만 하고, 우리는 수동적으로 관찰만 함&lt;/li&gt;
&lt;li data-nodeid=&quot;2033&quot;&gt;&quot;더 좋은 상태로 가고 싶은데 어떻게 해야 할까?&quot; &amp;rarr; 답이 없음&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2035&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;MDP의 아이디어&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2036&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2037&quot;&gt;&quot;내가 행동을 선택해서 더 좋은 상태로 갈 수 있다면?&quot;&lt;/li&gt;
&lt;li data-nodeid=&quot;2039&quot;&gt;&lt;b&gt;의사결정권을 Agent에게 주자!&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;4.2-%EC%A0%95%EC%9D%98&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2041&quot; data-ke-size=&quot;size23&quot;&gt;4.2 정의&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2042&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&quot;의사결정(행동 선택)이 추가된 마르코프 보상 과정&quot;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2043&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;구성요소&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2044&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2045&quot;&gt;&lt;b&gt;S&lt;/b&gt;: 상태 집합&lt;/li&gt;
&lt;li data-nodeid=&quot;2047&quot;&gt;&lt;b&gt;A&lt;/b&gt;: 행동 집합&lt;/li&gt;
&lt;li data-nodeid=&quot;2049&quot;&gt;&lt;b&gt;P&lt;/b&gt;: 상태 전이 확률 (이제 행동에 의존)&lt;/li&gt;
&lt;li data-nodeid=&quot;2051&quot;&gt;&lt;b&gt;R&lt;/b&gt;: 보상 함수 (상태와 행동에 의존)&lt;/li&gt;
&lt;li data-nodeid=&quot;2053&quot;&gt;&lt;b&gt;&amp;gamma;&lt;/b&gt;: 할인율&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2055&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;핵심 차이점&lt;/b&gt;: Agent가 행동을 선택할 수 있음!&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2056&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;MDP vs MRP 비교&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;2057&quot;&gt;&lt;code&gt;MRPMDP제어없음 (수동적)있음 (능동적)전이고정된 확률행동에 따라 변함목표예측 (Prediction)제어 (Control)해법벡터 연산최적화 문제&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2058&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;실제 응용 예시&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2059&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2060&quot;&gt;&lt;b&gt;로봇 제어&lt;/b&gt;: 상태(위치), 행동(모터 명령), 보상(목표 달성)&lt;/li&gt;
&lt;li data-nodeid=&quot;2062&quot;&gt;&lt;b&gt;게임 AI&lt;/b&gt;: 상태(게임 상황), 행동(플레이어 선택), 보상(점수)&lt;/li&gt;
&lt;li data-nodeid=&quot;2064&quot;&gt;&lt;b&gt;금융&lt;/b&gt;: 상태(시장 상황), 행동(투자 결정), 보상(수익)&lt;/li&gt;
&lt;li data-nodeid=&quot;2066&quot;&gt;&lt;b&gt;자율주행&lt;/b&gt;: 상태(센서 정보), 행동(조향/가속), 보상(안전한 주행)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;4.3-Policy-(%EC%A0%95%EC%B1%85)&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2068&quot; data-ke-size=&quot;size23&quot;&gt;4.3 Policy (정책)&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2069&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;정의&lt;/b&gt;: &amp;pi;(a|s) = P(At = a | St = s)&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2070&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;의미&lt;/b&gt;: &quot;각 상태에서 어떤 행동을 선택할 것인가?&quot;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2071&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;특징&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2072&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2073&quot;&gt;&lt;b&gt;Stationary&lt;/b&gt;: 시간에 독립적 (같은 상태에서는 항상 같은 확률 분포)&lt;/li&gt;
&lt;li data-nodeid=&quot;2075&quot;&gt;&lt;b&gt;Markovian&lt;/b&gt;: 현재 상태에만 의존 (히스토리 무관)&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2077&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;정책의 종류&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2078&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2079&quot;&gt;&lt;b&gt;Deterministic Policy&lt;/b&gt;: &amp;pi;(s) = a (확정적)&lt;/li&gt;
&lt;li data-nodeid=&quot;2081&quot;&gt;&lt;b&gt;Stochastic Policy&lt;/b&gt;: &amp;pi;(a|s) (확률적)&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2083&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;왜 확률적 정책이 필요한가?&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2084&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2085&quot;&gt;게임 이론에서 혼합 전략&lt;/li&gt;
&lt;li data-nodeid=&quot;2087&quot;&gt;탐험을 위한 랜덤성&lt;/li&gt;
&lt;li data-nodeid=&quot;2089&quot;&gt;연속 행동 공간에서의 자연스러운 표현&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2091&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;정책의 특성&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2092&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2093&quot;&gt;&lt;b&gt;Memoryless&lt;/b&gt;: 현재 상태만 고려 (과거 행동 무관)&lt;/li&gt;
&lt;li data-nodeid=&quot;2095&quot;&gt;&lt;b&gt;Stationary&lt;/b&gt;: 시간이 지나도 같은 정책 (시간 독립적)&lt;/li&gt;
&lt;li data-nodeid=&quot;2097&quot;&gt;&lt;b&gt;Complete&lt;/b&gt;: 모든 상태에서 행동이 정의됨&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2099&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;정책 표현 방법&lt;/b&gt;:&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2100&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-nodeid=&quot;2101&quot;&gt;&lt;b&gt;Table&lt;/b&gt;: 작은 상태 공간에서 직접 저장&lt;/li&gt;
&lt;li data-nodeid=&quot;2103&quot;&gt;&lt;b&gt;Linear&lt;/b&gt;: &amp;pi;(a|s) = softmax(&amp;theta;ᵀ&amp;phi;(s,a))&lt;/li&gt;
&lt;li data-nodeid=&quot;2105&quot;&gt;&lt;b&gt;Neural Network&lt;/b&gt;: 딥러닝으로 복잡한 정책 표현&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2107&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;정책 평가의 어려움&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2108&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2109&quot;&gt;같은 정책도 환경의 확률성 때문에 다른 결과&lt;/li&gt;
&lt;li data-nodeid=&quot;2111&quot;&gt;여러 번 실행해서 평균을 구해야 함&lt;/li&gt;
&lt;li data-nodeid=&quot;2113&quot;&gt;탐험 부족으로 일부 상태는 방문하지 못할 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2115&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h2 id=&quot;5.-%EC%9E%A0%EA%B9%90%EB%A7%8C!&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2116&quot; data-ke-size=&quot;size26&quot;&gt;5. 잠깐만!&lt;/h2&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2117&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1단계: 문제 정의&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;avrasm&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;2118&quot;&gt;&lt;code&gt;MRP: &quot;이 환경에서 가만히 있으면 얼마나 좋을까?&quot; (수동적)
MDP: &quot;내가 행동을 선택할 수 있다면 얼마나 좋을까?&quot; (능동적)&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2119&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;MDP를 정의했으니 이제&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;실제로 해결하고 싶은 문제&lt;/b&gt;가 무엇인지 명확히 하자.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2120&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2단계: 해결하고 싶은 질문들&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2121&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2122&quot;&gt;&lt;b&gt;Prediction 문제&lt;/b&gt;: &quot;주어진 정책이 얼마나 좋은가?&quot;&lt;/li&gt;
&lt;li data-nodeid=&quot;2124&quot;&gt;&lt;b&gt;Control 문제&lt;/b&gt;: &quot;가장 좋은 정책은 무엇인가?&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2126&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3단계: 자연스러운 접근&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;armasm&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;2127&quot;&gt;&lt;code&gt;Prediction &amp;rarr; Bellman Expectation Equation 
&quot;정책을 따를 때 가치를 어떻게 계산하지?&quot;

Control &amp;rarr; Bellman Optimality Equation
&quot;최적 정책을 어떻게 찾지?&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2128&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;왜 이 순서인가?&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2129&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-nodeid=&quot;2130&quot;&gt;&lt;b&gt;Prediction이 Control보다 쉬움&lt;/b&gt;: 정책이 주어지면 단순히 계산 문제&lt;/li&gt;
&lt;li data-nodeid=&quot;2132&quot;&gt;&lt;b&gt;Control은 Prediction을 포함&lt;/b&gt;: 최적 정책을 찾으려면 각 정책을 평가할 수 있어야 함&lt;/li&gt;
&lt;li data-nodeid=&quot;2134&quot;&gt;&lt;b&gt;점진적 확장&lt;/b&gt;: MRP 개념을 MDP로 확장하는 자연스러운 과정&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2136&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;실제 사고 과정&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;lsl&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;2137&quot;&gt;&lt;code&gt;1. &quot;MDP에서 정책을 평가하려면?&quot; &amp;rarr; Bellman Expectation
2. &quot;그럼 최고의 정책은?&quot; &amp;rarr; Bellman Optimality  
3. &quot;이걸 어떻게 풀지?&quot; &amp;rarr; Dynamic Programming, RL 알고리즘들&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2138&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h2 id=&quot;6.-Bellman-Expectation-Equation-(%EC%98%88%EC%B8%A1-%EB%AC%B8%EC%A0%9C%EC%9D%98-%ED%95%B4%EB%B2%95)&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2139&quot; data-ke-size=&quot;size26&quot;&gt;6. Bellman Expectation Equation (예측 문제의 해법)&lt;/h2&gt;
&lt;h3 id=&quot;6.1-%EB%AC%B8%EC%A0%9C-%EC%A0%95%EC%9D%98&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2140&quot; data-ke-size=&quot;size23&quot;&gt;6.1 문제 정의&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2141&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;해결하려는 문제&lt;/b&gt;: &quot;정책 &amp;pi;가 주어졌을 때, 각 상태의 가치는 얼마인가?&quot;&lt;/p&gt;
&lt;h3 id=&quot;6.2-Value-Functions&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2142&quot; data-ke-size=&quot;size23&quot;&gt;6.2 Value Functions&lt;/h3&gt;
&lt;h4 id=&quot;State-Value-Function&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2143&quot; data-ke-size=&quot;size20&quot;&gt;State Value Function&lt;/h4&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2144&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;정의&lt;/b&gt;: v&amp;pi;(s) = E_&amp;pi;[Gt | St = s]&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;의미&lt;/b&gt;: 정책 &amp;pi;를 따를 때 상태 s에서 시작해서 받을 기댓값&lt;/p&gt;
&lt;h4 id=&quot;Action-Value-Function-(Q-function)&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2145&quot; data-ke-size=&quot;size20&quot;&gt;Action Value Function (Q-function)&lt;/h4&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2146&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;정의&lt;/b&gt;: q&amp;pi;(s,a) = E_&amp;pi;[Gt | St = s, At = a]&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;의미&lt;/b&gt;: 상태 s에서 행동 a를 한 후 정책 &amp;pi;를 따를 때의 기댓값&lt;/p&gt;
&lt;h3 id=&quot;6.3-Bellman-Expectation-Equations&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2147&quot; data-ke-size=&quot;size23&quot;&gt;6.3 Bellman Expectation Equations&lt;/h3&gt;
&lt;h4 id=&quot;State-Value&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2148&quot; data-ke-size=&quot;size20&quot;&gt;State Value&lt;/h4&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2149&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;수식&lt;/b&gt;: v&amp;pi;(s) = &amp;Sigma; &amp;pi;(a|s) [R(s,a) + &amp;gamma; &amp;Sigma; P(s'|s,a) v&amp;pi;(s')]&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2150&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;두 단계 분해&lt;/b&gt;:&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2151&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-nodeid=&quot;2152&quot;&gt;&lt;b&gt;정책에 따른 행동 선택&lt;/b&gt;: 정책 &amp;pi;에 따라 행동들의 가중평균&lt;/li&gt;
&lt;li data-nodeid=&quot;2154&quot;&gt;&lt;b&gt;환경의 응답&lt;/b&gt;: 선택한 행동에 대한 환경의 확률적 응답&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&quot;Action-Value&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2156&quot; data-ke-size=&quot;size20&quot;&gt;Action Value&lt;/h4&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2157&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;수식&lt;/b&gt;: q&amp;pi;(s,a) = R(s,a) + &amp;gamma; &amp;Sigma; P(s'|s,a) &amp;Sigma; &amp;pi;(a'|s') q&amp;pi;(s',a')&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2158&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;관계식&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2159&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2160&quot;&gt;v&amp;pi;(s) = &amp;Sigma; &amp;pi;(a|s) q&amp;pi;(s,a)&lt;/li&gt;
&lt;li data-nodeid=&quot;2162&quot;&gt;q&amp;pi;(s,a) = R(s,a) + &amp;gamma; &amp;Sigma; P(s'|s,a) v&amp;pi;(s')&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;6.4-%EB%B2%A8%EB%A7%8C-%EB%B0%A9%EC%A0%95%EC%8B%9D%EC%9D%98-%ED%95%B4%EC%84%9D&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2164&quot; data-ke-size=&quot;size23&quot;&gt;6.4 벨만 방정식의 해석&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2165&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;State Value 관점&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;fix&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;2166&quot;&gt;&lt;code&gt;현재 상태 가치 = 정책에 따른 행동들의 가중평균 가치&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2167&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Action Value 관점&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;fix&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;2168&quot;&gt;&lt;code&gt;상태-행동 가치 = 즉시 보상 + 다음 상태에서의 정책 따라 행동할 때의 할인된 가치&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2169&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;벨만 방정식의 기하학적 해석&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2170&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2171&quot;&gt;&lt;b&gt;고정점 정리&lt;/b&gt;: 벨만 연산자의 고정점이 해&lt;/li&gt;
&lt;li data-nodeid=&quot;2173&quot;&gt;&lt;b&gt;수축 연산자&lt;/b&gt;: &amp;gamma; &amp;lt; 1이면 유일한 해 존재&lt;/li&gt;
&lt;li data-nodeid=&quot;2175&quot;&gt;&lt;b&gt;반복 개선&lt;/b&gt;: 임의의 초기값에서 시작해도 수렴&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2177&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;실제 계산 시 고려사항&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2178&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2179&quot;&gt;&lt;b&gt;Bootstrap&lt;/b&gt;: 추정값으로 추정값을 개선 (순환 참조)&lt;/li&gt;
&lt;li data-nodeid=&quot;2181&quot;&gt;&lt;b&gt;Bias vs Variance&lt;/b&gt;: 정확도와 안정성의 트레이드오프&lt;/li&gt;
&lt;li data-nodeid=&quot;2183&quot;&gt;&lt;b&gt;Sample Complexity&lt;/b&gt;: 정확한 추정에 필요한 샘플 수&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2185&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;벨만 방정식의 한계&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2186&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2187&quot;&gt;&lt;b&gt;차원의 저주&lt;/b&gt;: 상태 수가 기하급수적으로 증가&lt;/li&gt;
&lt;li data-nodeid=&quot;2189&quot;&gt;&lt;b&gt;모델 의존성&lt;/b&gt;: 전이 확률과 보상 함수를 알아야 함&lt;/li&gt;
&lt;li data-nodeid=&quot;2191&quot;&gt;&lt;b&gt;연속 공간&lt;/b&gt;: 무한한 상태/행동 공간에서는 직접 적용 어려움&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2193&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h2 id=&quot;7.-Bellman-Optimality-Equation-(%EC%A0%9C%EC%96%B4-%EB%AC%B8%EC%A0%9C%EC%9D%98-%ED%95%B4%EB%B2%95)&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2194&quot; data-ke-size=&quot;size26&quot;&gt;7. Bellman Optimality Equation (제어 문제의 해법)&lt;/h2&gt;
&lt;h3 id=&quot;7.1-%EB%AC%B8%EC%A0%9C-%EC%A0%95%EC%9D%98&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2195&quot; data-ke-size=&quot;size23&quot;&gt;7.1 문제 정의&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2196&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;해결하려는 문제&lt;/b&gt;: &quot;가장 좋은 정책은 무엇이고, 그때의 최대 가치는 얼마인가?&quot;&lt;/p&gt;
&lt;h3 id=&quot;7.2-Optimal-Policy&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2197&quot; data-ke-size=&quot;size23&quot;&gt;7.2 Optimal Policy&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2198&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;정의&lt;/b&gt;: &amp;pi;* &amp;ge; &amp;pi; for all &amp;pi; if v&amp;pi;*(s) &amp;ge; v&amp;pi;(s) for all s&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2199&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;특성&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2200&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2201&quot;&gt;항상 존재함 (유한 MDP에서)&lt;/li&gt;
&lt;li data-nodeid=&quot;2203&quot;&gt;여러 개일 수 있음 (같은 최적 가치를 갖는 서로 다른 정책)&lt;/li&gt;
&lt;li data-nodeid=&quot;2205&quot;&gt;최적 가치 함수는 유일함&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2207&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;최적 정책의 구조&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2208&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2209&quot;&gt;&lt;b&gt;Deterministic&lt;/b&gt;: 확률적 정책보다 결정적 정책이 항상 존재&lt;/li&gt;
&lt;li data-nodeid=&quot;2211&quot;&gt;&lt;b&gt;Stationary&lt;/b&gt;: 시간에 독립적인 정책으로 충분&lt;/li&gt;
&lt;li data-nodeid=&quot;2213&quot;&gt;&lt;b&gt;Greedy&lt;/b&gt;: 최적 가치 함수에 대해 탐욕적 선택&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2215&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;최적 정책 찾기의 어려움&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2216&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2217&quot;&gt;&lt;b&gt;탐험 딜레마&lt;/b&gt;: 최적을 찾으려면 탐험 필요, 하지만 탐험은 비최적&lt;/li&gt;
&lt;li data-nodeid=&quot;2219&quot;&gt;&lt;b&gt;지역 최적&lt;/b&gt;: 정책 공간에서 지역 최적에 빠질 위험&lt;/li&gt;
&lt;li data-nodeid=&quot;2221&quot;&gt;&lt;b&gt;계산 복잡도&lt;/b&gt;: 일반적으로 NP-hard 문제&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2223&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;실무에서의 접근&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2224&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2225&quot;&gt;&lt;b&gt;&amp;epsilon;-optimal&lt;/b&gt;: 거의 최적인 정책으로 타협&lt;/li&gt;
&lt;li data-nodeid=&quot;2227&quot;&gt;&lt;b&gt;Approximation&lt;/b&gt;: 함수 근사로 실용적 해 구하기&lt;/li&gt;
&lt;li data-nodeid=&quot;2229&quot;&gt;&lt;b&gt;Online Learning&lt;/b&gt;: 경험하면서 점진적으로 개선&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;7.3-Optimal-Value-Functions&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2231&quot; data-ke-size=&quot;size23&quot;&gt;7.3 Optimal Value Functions&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2232&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Optimal State Value&lt;/b&gt;: v*(s) = max_&amp;pi; v&amp;pi;(s)&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Optimal Action Value&lt;/b&gt;: q*(s,a) = max_&amp;pi; q&amp;pi;(s,a)&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2233&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;관계식&lt;/b&gt;: v*(s) = max_a q*(s,a)&lt;/p&gt;
&lt;h3 id=&quot;7.4-Bellman-Optimality-Equations&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2234&quot; data-ke-size=&quot;size23&quot;&gt;7.4 Bellman Optimality Equations&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2235&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;State Value&lt;/b&gt;: v*(s) = max_a [R(s,a) + &amp;gamma; &amp;Sigma; P(s'|s,a) v*(s')]&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2236&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Action Value&lt;/b&gt;: q*(s,a) = R(s,a) + &amp;gamma; &amp;Sigma; P(s'|s,a) max_a' q*(s',a')&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2237&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;핵심 차이점&lt;/b&gt;: 기댓값(평균) &amp;rarr; 최댓값(최적화)&lt;/p&gt;
&lt;h3 id=&quot;7.5-%EC%B5%9C%EC%A0%81%EC%84%B1-%EB%B0%A9%EC%A0%95%EC%8B%9D%EC%9D%98-%EC%9D%98%EB%AF%B8&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2238&quot; data-ke-size=&quot;size23&quot;&gt;7.5 최적성 방정식의 의미&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2239&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2240&quot;&gt;&lt;b&gt;탐욕적 선택&lt;/b&gt;: 각 상태에서 가장 좋은 행동만 선택&lt;/li&gt;
&lt;li data-nodeid=&quot;2242&quot;&gt;&lt;b&gt;일관성&lt;/b&gt;: 부분 문제의 최적해가 전체 문제의 최적해를 구성&lt;/li&gt;
&lt;li data-nodeid=&quot;2244&quot;&gt;&lt;b&gt;동적 계획법의 원리&lt;/b&gt;: Principle of Optimality&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2246&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;8.-%EB%B2%A8%EB%A7%8C-%EB%B0%A9%EC%A0%95%EC%8B%9D%EC%9D%98-%ED%95%9C%EA%B3%84%EC%99%80-%EC%8B%A4%EC%A0%9C-%ED%95%B4%EA%B2%B0%EC%9D%98-%EC%96%B4%EB%A0%A4%EC%9B%80&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2247&quot; data-ke-size=&quot;size26&quot;&gt;8. 벨만 방정식의 한계와 실제 해결의 어려움&lt;/h2&gt;
&lt;h3 id=&quot;8.1-%EC%9D%B4%EB%A1%A0%EC%9D%80-%EC%99%84%EB%B2%BD%ED%95%9C%EB%8D%B0-%EC%8B%A4%EC%A0%9C%EB%A1%9C%EB%8A%94...&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2248&quot; data-ke-size=&quot;size23&quot;&gt;8.1 이론은 완벽한데 실제로는...&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2249&quot; data-ke-size=&quot;size16&quot;&gt;벨만 방정식을 통해&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;이론적으로는&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;완벽한 해답을 얻었음:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2250&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2251&quot;&gt;&lt;b&gt;Prediction&lt;/b&gt;: v&amp;pi;(s) = &amp;Sigma; &amp;pi;(a|s) [R(s,a) + &amp;gamma; &amp;Sigma; P(s'|s,a) v&amp;pi;(s')]&lt;/li&gt;
&lt;li data-nodeid=&quot;2253&quot;&gt;&lt;b&gt;Control&lt;/b&gt;: v*(s) = max_a [R(s,a) + &amp;gamma; &amp;Sigma; P(s'|s,a) v*(s')]&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2255&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;하지만 실제로 풀려면...&lt;/b&gt;&lt;/p&gt;
&lt;h4 id=&quot;%EB%AC%B8%EC%A0%9C-1%3A-%EA%B3%84%EC%82%B0-%EB%B3%B5%EC%9E%A1%EB%8F%84&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2256&quot; data-ke-size=&quot;size20&quot;&gt;문제 1: 계산 복잡도&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2257&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2258&quot;&gt;&lt;b&gt;상태 수가 많으면&lt;/b&gt;: 체스(10^40), 바둑(10^170) &amp;rarr; 불가능&lt;/li&gt;
&lt;li data-nodeid=&quot;2260&quot;&gt;&lt;b&gt;연립방정식&lt;/b&gt;: n개 상태면 n&amp;times;n 행렬 연산 필요&lt;/li&gt;
&lt;li data-nodeid=&quot;2262&quot;&gt;&lt;b&gt;실시간 요구&lt;/b&gt;: 로봇은 1ms 내에 결정해야 함&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;%EB%AC%B8%EC%A0%9C-2%3A-%EB%AA%A8%EB%8D%B8%EC%9D%84-%EB%AA%A8%EB%A6%84&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2264&quot; data-ke-size=&quot;size20&quot;&gt;문제 2: 모델을 모름&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2265&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2266&quot;&gt;&lt;b&gt;전이확률 P&lt;/b&gt;: 실제 환경에서는 모르는 경우가 대부분&lt;/li&gt;
&lt;li data-nodeid=&quot;2268&quot;&gt;&lt;b&gt;보상함수 R&lt;/b&gt;: 명확하지 않거나 복잡함&lt;/li&gt;
&lt;li data-nodeid=&quot;2270&quot;&gt;&lt;b&gt;예시&lt;/b&gt;: 자율주행에서 &quot;비 올 때 브레이크 밟으면 미끄러질 확률&quot;을 정확히 아는가?&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;%EB%AC%B8%EC%A0%9C-3%3A-%EC%97%B0%EC%86%8D-%EA%B3%B5%EA%B0%84&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2272&quot; data-ke-size=&quot;size20&quot;&gt;문제 3: 연속 공간&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2273&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2274&quot;&gt;&lt;b&gt;상태 공간&lt;/b&gt;: 로봇 팔의 각도(무한한 실수값)&lt;/li&gt;
&lt;li data-nodeid=&quot;2276&quot;&gt;&lt;b&gt;행동 공간&lt;/b&gt;: 자동차의 스티어링 각도(연속값)&lt;/li&gt;
&lt;li data-nodeid=&quot;2278&quot;&gt;&lt;b&gt;벨만 방정식&lt;/b&gt;: 이산적 합계 기반 &amp;rarr; 적용 어려움&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;8.2-%EA%B7%B8%EB%9F%BC-%EC%96%B4%EB%96%BB%EA%B2%8C-%ED%95%B4%EA%B2%B0%ED%95%A0%EA%B9%8C%3F&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2280&quot; data-ke-size=&quot;size23&quot;&gt;8.2 그럼 어떻게 해결할까?&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2281&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;접근 방향들&lt;/b&gt;:&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2282&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-nodeid=&quot;2283&quot;&gt;&lt;b&gt;모델을 알 때&lt;/b&gt;: Dynamic Programming 사용&lt;/li&gt;
&lt;li data-nodeid=&quot;2285&quot;&gt;&lt;b&gt;모델을 모를 때&lt;/b&gt;: 경험으로 학습 (Model-free)&lt;/li&gt;
&lt;li data-nodeid=&quot;2287&quot;&gt;&lt;b&gt;상태가 많을 때&lt;/b&gt;: 함수 근사 (Function Approximation)&lt;/li&gt;
&lt;li data-nodeid=&quot;2289&quot;&gt;&lt;b&gt;연속 공간&lt;/b&gt;: 샘플링이나 근사 기법&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2291&quot; data-ke-size=&quot;size16&quot;&gt;이제 구체적인 해결 방법들을 알아보자.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2292&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h2 id=&quot;9.-MDP-%ED%95%B4%EA%B2%B0-%EB%B0%A9%EB%B2%95&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2293&quot; data-ke-size=&quot;size26&quot;&gt;9. MDP 해결 방법&lt;/h2&gt;
&lt;h3 id=&quot;9.1-Dynamic-Programming-(%EB%AA%A8%EB%8D%B8-%EA%B8%B0%EB%B0%98)&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2294&quot; data-ke-size=&quot;size23&quot;&gt;9.1 Dynamic Programming (모델 기반)&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2295&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;언제 사용&lt;/b&gt;: 전이확률 P와 보상함수 R을 정확히 아는 경우&lt;/p&gt;
&lt;h4 id=&quot;Value-Iteration&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2296&quot; data-ke-size=&quot;size20&quot;&gt;Value Iteration&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2297&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2298&quot;&gt;&lt;b&gt;아이디어&lt;/b&gt;: 벨만 최적성 방정식을 반복적으로 적용&lt;/li&gt;
&lt;li data-nodeid=&quot;2300&quot;&gt;&lt;b&gt;알고리즘&lt;/b&gt;: v_{k+1}(s) = max_a [R(s,a) + &amp;gamma; &amp;Sigma; P(s'|s,a) v_k(s')]&lt;/li&gt;
&lt;li data-nodeid=&quot;2302&quot;&gt;&lt;b&gt;장점&lt;/b&gt;: 구현 간단, 수렴 보장&lt;/li&gt;
&lt;li data-nodeid=&quot;2304&quot;&gt;&lt;b&gt;단점&lt;/b&gt;: 각 iteration마다 모든 상태 업데이트 필요&lt;/li&gt;
&lt;li data-nodeid=&quot;2306&quot;&gt;&lt;b&gt;복잡도&lt;/b&gt;: 메모리 O(|S|), 시간 O(|S|&amp;sup2;|A|) per iteration&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;Policy-Iteration&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2308&quot; data-ke-size=&quot;size20&quot;&gt;Policy Iteration&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2309&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2310&quot;&gt;&lt;b&gt;아이디어&lt;/b&gt;: 정책 평가 &amp;rarr; 정책 개선 반복&lt;/li&gt;
&lt;li data-nodeid=&quot;2312&quot;&gt;&lt;b&gt;단계&lt;/b&gt;:
&lt;ol style=&quot;list-style-type: decimal; color: #222222;&quot; data-nodeid=&quot;2314&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-nodeid=&quot;2315&quot;&gt;Policy Evaluation: 현재 정책의 가치 계산&lt;/li&gt;
&lt;li data-nodeid=&quot;2317&quot;&gt;Policy Improvement: 가치 기반으로 정책 개선&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li data-nodeid=&quot;2319&quot;&gt;&lt;b&gt;장점&lt;/b&gt;: 보통 Value Iteration보다 빠름&lt;/li&gt;
&lt;li data-nodeid=&quot;2321&quot;&gt;&lt;b&gt;단점&lt;/b&gt;: 각 iteration에서 정책 평가가 비쌈&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2323&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Dynamic Programming의 한계&lt;/b&gt;: 모델을 알아야 하고, 상태 수가 많으면 불가능&lt;/p&gt;
&lt;h3 id=&quot;9.2-Model-free-Methods-(%EB%AA%A8%EB%8D%B8-%EB%AA%A8%EB%A6%84)&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2324&quot; data-ke-size=&quot;size23&quot;&gt;9.2 Model-free Methods (모델 모름)&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2325&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;동기&lt;/b&gt;: &quot;실제 환경에서는 P와 R을 모르는데, 어떻게 학습하지?&quot;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2326&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;핵심 아이디어&lt;/b&gt;: 환경과 상호작용해서 경험으로 학습&lt;/p&gt;
&lt;h4 id=&quot;Monte-Carlo&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2327&quot; data-ke-size=&quot;size20&quot;&gt;Monte Carlo&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2328&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2329&quot;&gt;&lt;b&gt;아이디어&lt;/b&gt;: 실제 궤적을 여러 번 실행해서 Return 평균 계산&lt;/li&gt;
&lt;li data-nodeid=&quot;2331&quot;&gt;&lt;b&gt;방법&lt;/b&gt;: v(s) &amp;asymp; 상태 s에서 시작한 여러 episode들의 Return 평균&lt;/li&gt;
&lt;li data-nodeid=&quot;2333&quot;&gt;&lt;b&gt;장점&lt;/b&gt;: Unbiased (편향 없음), 간단한 개념&lt;/li&gt;
&lt;li data-nodeid=&quot;2335&quot;&gt;&lt;b&gt;단점&lt;/b&gt;: High variance, Episode 끝나야 학습 가능&lt;/li&gt;
&lt;li data-nodeid=&quot;2337&quot;&gt;&lt;b&gt;예시&lt;/b&gt;: 게임을 100번 해보고 각 상황의 평균 점수 계산&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;Temporal-Difference-(TD)&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2339&quot; data-ke-size=&quot;size20&quot;&gt;Temporal Difference (TD)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2340&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2341&quot;&gt;&lt;b&gt;아이디어&lt;/b&gt;: 부트스트래핑으로 실시간 가치 업데이트&lt;/li&gt;
&lt;li data-nodeid=&quot;2343&quot;&gt;&lt;b&gt;핵심&lt;/b&gt;: v(s) &amp;larr; v(s) + &amp;alpha;[r + &amp;gamma;v(s') - v(s)]&lt;/li&gt;
&lt;li data-nodeid=&quot;2345&quot;&gt;&lt;b&gt;장점&lt;/b&gt;: Online 학습, Low variance&lt;/li&gt;
&lt;li data-nodeid=&quot;2347&quot;&gt;&lt;b&gt;단점&lt;/b&gt;: Biased (편향 있음), 수렴 조건 까다로움&lt;/li&gt;
&lt;li data-nodeid=&quot;2349&quot;&gt;&lt;b&gt;예시&lt;/b&gt;: 한 스텝만 가보고 바로 예측 업데이트&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2351&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Model-free의 핵심&lt;/b&gt;: 실제 경험 데이터로 벨만 방정식을 근사적으로 풀기&lt;/p&gt;
&lt;h3 id=&quot;9.3-%EB%8C%80%EA%B7%9C%EB%AA%A8-%EB%AC%B8%EC%A0%9C%EB%A5%BC-%EC%9C%84%ED%95%9C-%EA%B7%BC%EC%82%AC-%EB%B0%A9%EB%B2%95&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2352&quot; data-ke-size=&quot;size23&quot;&gt;9.3 대규모 문제를 위한 근사 방법&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2353&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;동기&lt;/b&gt;: &quot;상태가 백만 개인데 어떻게 테이블로 저장하지?&quot;&lt;/p&gt;
&lt;h4 id=&quot;Function-Approximation&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2354&quot; data-ke-size=&quot;size20&quot;&gt;Function Approximation&lt;/h4&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2355&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문제&lt;/b&gt;: 상태 수가 10^6 이상이면 table 방식 불가능&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2356&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;해결책&lt;/b&gt;: 가치 함수를 함수로 근사&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2357&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2358&quot;&gt;&lt;b&gt;Linear&lt;/b&gt;: v(s) &amp;asymp; &amp;theta;ᵀ&amp;phi;(s) (feature의 가중합)&lt;/li&gt;
&lt;li data-nodeid=&quot;2360&quot;&gt;&lt;b&gt;Neural Network&lt;/b&gt;: v(s) &amp;asymp; NN(s; &amp;theta;) (딥러닝)&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2362&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;장단점&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2363&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2364&quot;&gt;Linear: 빠르고 수렴 보장, 하지만 표현력 제한&lt;/li&gt;
&lt;li data-nodeid=&quot;2366&quot;&gt;Non-linear: 표현력 좋지만 수렴 보장 어려움&lt;/li&gt;
&lt;li data-nodeid=&quot;2368&quot;&gt;Deep RL: 복잡한 환경에서 성공, 하지만 불안정&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;%EC%B0%A8%EC%9B%90-%EC%B6%95%EC%86%8C-%EB%B0%A9%EB%B2%95%EB%93%A4&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2370&quot; data-ke-size=&quot;size20&quot;&gt;차원 축소 방법들&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2371&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2372&quot;&gt;&lt;b&gt;Feature Engineering&lt;/b&gt;: 중요한 특징만 추출&lt;/li&gt;
&lt;li data-nodeid=&quot;2374&quot;&gt;&lt;b&gt;계층적 강화학습&lt;/b&gt;: 큰 문제를 작은 문제들로 분할&lt;/li&gt;
&lt;li data-nodeid=&quot;2376&quot;&gt;&lt;b&gt;State Abstraction&lt;/b&gt;: 비슷한 상태들을 묶어서 처리&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;10.-%EC%A0%95%EB%A6%AC%3A-%EC%9D%B4%EB%A1%A0%EC%97%90%EC%84%9C-%EC%8B%A4%EC%A0%9C%EB%A1%9C&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2378&quot; data-ke-size=&quot;size26&quot;&gt;10. 정리: 이론에서 실제로&lt;/h2&gt;
&lt;h3 id=&quot;10.1-MDP%EC%9D%98-%EA%B3%84%EC%B8%B5-%EA%B5%AC%EC%A1%B0&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2379&quot; data-ke-size=&quot;size23&quot;&gt;10.1 MDP의 계층 구조&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2380&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-nodeid=&quot;2381&quot;&gt;&lt;b&gt;Markov Property&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&amp;rarr; 기본 가정&lt;/li&gt;
&lt;li data-nodeid=&quot;2383&quot;&gt;&lt;b&gt;Markov Process&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&amp;rarr; 상태 전이만&lt;/li&gt;
&lt;li data-nodeid=&quot;2385&quot;&gt;&lt;b&gt;Markov Reward Process&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&amp;rarr; 보상 추가 &amp;rarr; &quot;어떤 상태가 좋은가?&quot;&lt;/li&gt;
&lt;li data-nodeid=&quot;2387&quot;&gt;&lt;b&gt;Markov Decision Process&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&amp;rarr; 의사결정 추가 &amp;rarr; &quot;어떻게 행동해야 하는가?&quot;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;10.2-%EB%AC%B8%EC%A0%9C-%ED%95%B4%EA%B2%B0%EC%9D%98-%ED%9D%90%EB%A6%84&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2389&quot; data-ke-size=&quot;size23&quot;&gt;10.2 문제 해결의 흐름&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2390&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-nodeid=&quot;2391&quot;&gt;&lt;b&gt;Prediction&lt;/b&gt;: &quot;주어진 정책이 얼마나 좋은가?&quot; &amp;rarr; Bellman Expectation&lt;/li&gt;
&lt;li data-nodeid=&quot;2393&quot;&gt;&lt;b&gt;Control&lt;/b&gt;: &quot;가장 좋은 정책은 무엇인가?&quot; &amp;rarr; Bellman Optimality&lt;/li&gt;
&lt;li data-nodeid=&quot;2395&quot;&gt;&lt;b&gt;Implementation&lt;/b&gt;: &quot;실제로 어떻게 풀 것인가?&quot; &amp;rarr; RL 알고리즘들&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;10.3-%EC%9D%B4%EB%A1%A0%EA%B3%BC-%EC%8B%A4%EC%A0%9C%EC%9D%98-%EA%B0%84%EA%B7%B9%EC%9D%84-%EB%A9%94%EC%9A%B0%EB%8A%94-%EB%B0%A9%EB%B2%95%EB%93%A4&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2397&quot; data-ke-size=&quot;size23&quot;&gt;10.3 이론과 실제의 간극을 메우는 방법들&lt;/h3&gt;
&lt;pre class=&quot;gcode&quot; style=&quot;background-color: #f4f7f8; color: #222222; text-align: start;&quot; data-nodeid=&quot;2398&quot;&gt;&lt;code&gt;완벽한 이론 (벨만 방정식)
      &amp;darr;
실제 한계들 (계산복잡도, 모델 무지, 대규모 공간)
      &amp;darr;  
해결 방법들 (DP, Model-free, Function Approximation)
      &amp;darr;
현대 강화학습 알고리즘들&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot; data-testid=&quot;CopyButton_SvgIcon&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&quot;10.4-%ED%95%B5%EC%8B%AC-%ED%86%B5%EC%B0%B0&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2399&quot; data-ke-size=&quot;size23&quot;&gt;10.4 핵심 통찰&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2400&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2401&quot;&gt;Bellman 방정식은 &quot;현재 = 즉시 + 할인된 미래&quot;의 구조&lt;/li&gt;
&lt;li data-nodeid=&quot;2403&quot;&gt;최적성은 탐욕적 선택으로 달성 가능&lt;/li&gt;
&lt;li data-nodeid=&quot;2405&quot;&gt;&lt;b&gt;이론은 방향을 제시하고, 실제 방법들은 근사적으로 구현&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;10.5-MDP%EC%97%90%EC%84%9C-%EC%8B%A4%EC%A0%9C-RL%EB%A1%9C&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2407&quot; data-ke-size=&quot;size23&quot;&gt;10.5 MDP에서 실제 RL로&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2408&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-nodeid=&quot;2409&quot;&gt;&lt;b&gt;Model-free&lt;/b&gt;: 환경과 상호작용하며 학습&lt;/li&gt;
&lt;li data-nodeid=&quot;2411&quot;&gt;&lt;b&gt;Function Approximation&lt;/b&gt;: 큰 상태 공간 처리&lt;/li&gt;
&lt;li data-nodeid=&quot;2413&quot;&gt;&lt;b&gt;Online Learning&lt;/b&gt;: 실시간 개선&lt;/li&gt;
&lt;li data-nodeid=&quot;2415&quot;&gt;&lt;b&gt;Generalization&lt;/b&gt;: 미경험 상태 처리&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;10.6-%ED%98%84%EB%8C%80-%EA%B0%95%ED%99%94%ED%95%99%EC%8A%B5%EC%9D%98-%EB%8F%84%EC%A0%84&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2417&quot; data-ke-size=&quot;size23&quot;&gt;10.6 현대 강화학습의 도전&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2418&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2419&quot;&gt;&lt;b&gt;Sample Efficiency&lt;/b&gt;: 적은 경험으로 빠른 학습&lt;/li&gt;
&lt;li data-nodeid=&quot;2421&quot;&gt;&lt;b&gt;Transfer Learning&lt;/b&gt;: 다른 환경으로 지식 전이&lt;/li&gt;
&lt;li data-nodeid=&quot;2423&quot;&gt;&lt;b&gt;Multi-agent&lt;/b&gt;: 여러 에이전트가 동시에 학습&lt;/li&gt;
&lt;li data-nodeid=&quot;2425&quot;&gt;&lt;b&gt;Partial Observability&lt;/b&gt;: 불완전한 관측 환경&lt;/li&gt;
&lt;li data-nodeid=&quot;2427&quot;&gt;&lt;b&gt;Continuous Control&lt;/b&gt;: 연속적 행동 공간&lt;/li&gt;
&lt;li data-nodeid=&quot;2429&quot;&gt;&lt;b&gt;Safety&lt;/b&gt;: 학습 중 안전성 보장&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;10.7-%EC%8B%A4%EB%AC%B4-%ED%8C%81&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-nodeid=&quot;2431&quot; data-ke-size=&quot;size23&quot;&gt;10.7 실무 팁&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2432&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2433&quot;&gt;&lt;b&gt;간단한 환경부터&lt;/b&gt;: Gridworld &amp;rarr; Cartpole &amp;rarr; Atari&lt;/li&gt;
&lt;li data-nodeid=&quot;2435&quot;&gt;&lt;b&gt;시각화&lt;/b&gt;: 가치 함수와 정책을 그래프로 확인&lt;/li&gt;
&lt;li data-nodeid=&quot;2437&quot;&gt;&lt;b&gt;하이퍼파라미터&lt;/b&gt;: 할인율부터 신중하게 선택&lt;/li&gt;
&lt;li data-nodeid=&quot;2439&quot;&gt;&lt;b&gt;디버깅&lt;/b&gt;: 이론적 예상과 실제 결과 비교&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2441&quot; data-ke-size=&quot;size16&quot;&gt;MDP는 강화학습의 수학적 기초이며, 실제 알고리즘들은 모두 이 이론에서 출발함. **&quot;왜 이 개념이 필요한가?&quot;**부터 시작해서 자연스럽게 벨만 방정식에 도달하고, **&quot;이론은 좋은데 실제로는 어떻게?&quot;**라는 질문으로 구체적 해결 방법들까지 연결되는 것이 핵심임.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2442&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h1 id=&quot;%2B)-%EC%9A%A9%EC%96%B4&quot; style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-nodeid=&quot;2443&quot;&gt;+) 용어&lt;/h1&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #222222; text-align: start;&quot; data-nodeid=&quot;2444&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2445&quot;&gt;Trajectory
&lt;ul style=&quot;list-style-type: circle; color: #222222;&quot; data-nodeid=&quot;2447&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li data-nodeid=&quot;2448&quot;&gt;에이전트는 이따금 자신의 상태에 따른 보상(reward)을 받는다. 에이전트가 지나온 일련의 상태와 행동을 궤적(trajectory)이라고도 한다. 에이전트가 상태에서 보상을 받았다고 할 때, 이 보상으로 이끈 궤적은 S_0,a_0,S_1,a_1,S_2가 된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-nodeid=&quot;2450&quot;&gt;Rollout
&lt;ul style=&quot;list-style-type: circle; color: #222222;&quot; data-nodeid=&quot;2452&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li data-nodeid=&quot;2453&quot;&gt;데이터 transition {(s,a,s',r)}을 얻기 위해 에이전트와 환경이 1번(or n번) 상호작용 하는 것(sample)을 의미한다. trajectory의 경우 한 에피소드 전체를 바라보고, reward가 포함되어 있지 않지만, Rollout은 한번의 상호작용을 하고, reward를 포함한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>AI/Reinforcement Learning</category>
      <author>땽뚕</author>
      <guid isPermaLink="true">https://asidefine.tistory.com/361</guid>
      <comments>https://asidefine.tistory.com/361#entry361comment</comments>
      <pubDate>Sun, 10 Aug 2025 10:48:45 +0900</pubDate>
    </item>
    <item>
      <title>[2025 강화학습 Recap] Chapter 1. Introduction to Reinforcement Learning</title>
      <link>https://asidefine.tistory.com/360</link>
      <description>&lt;div style=&quot;background-color: #ffffff; color: #222222; text-align: start;&quot; data-testid=&quot;WikiDetailPageLayout&quot;&gt;
&lt;div data-testid=&quot;WikiDetailPageContent&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div style=&quot;color: #222222;&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-nodeid=&quot;1006&quot; data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;[2025&amp;nbsp;강화학습&amp;nbsp;Recap]&amp;nbsp;Chapter&amp;nbsp;1.&amp;nbsp;Introduction&amp;nbsp;to&amp;nbsp;Reinforcement&amp;nbsp;Learning&lt;/span&gt;&lt;/blockquote&gt;
&lt;h2 style=&quot;color: #333333;&quot; data-nodeid=&quot;1006&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;1.-%EA%B0%95%ED%99%94%ED%95%99%EC%8A%B5%EC%9D%98-%EA%B8%B0%EB%B3%B8-%EA%B0%9C%EB%85%90&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1006&quot; data-ke-size=&quot;size26&quot;&gt;1. 강화학습의 기본 개념&lt;/h2&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;1007&quot; data-ke-size=&quot;size16&quot;&gt;인공지능이 체스에서 세계 챔피언을 이기고, 복잡한 비디오 게임을 마스터하며, 자율주행차를 운전하는 모습을 본 적이 있을 것임. 이런 성과들의 공통점은 무엇일까? 바로 시행착오를 통해 스스로 학습한다는 점임.&lt;br /&gt;강화학습은 정답이 주어지지 않은 상황에서 환경과의 상호작용을 통해 최적의 행동을 학습하는 방법임. 지도학습처럼 &quot;이것이 정답이다&quot;라고 알려주는 대신, 오직 &quot;좋다&quot; 또는 &quot;나쁘다&quot;는 보상 신호만으로 학습함. 마치 아기가 걸음마를 배우듯, 넘어지고 일어서기를 반복하면서 점점 더 나은 방법을 찾아가는 과정임.&lt;br /&gt;이 장에서는 강화학습의 기본 개념과 구조를 전반적으로 살펴볼 예정임. 에이전트와 환경이라는 핵심 요소부터 시작해서, 상태, 행동, 보상이라는 기본 구성요소들을 이해하고, 탐험과 활용의 딜레마 같은 강화학습만의 특별한 도전과제들도 다룰 것임.&lt;br /&gt;복잡해 보이지만 핵심 아이디어는 단순함. 좋은 결과를 가져다주는 행동은 더 자주 하고, 나쁜 결과를 가져다주는 행동은 덜 하는 것. 이 간단한 원리가 어떻게 놀라운 지능적 행동으로 발전하는지 함께 알아보자.&lt;/p&gt;
&lt;h3 id=&quot;1.1-%EA%B0%95%ED%99%94%ED%95%99%EC%8A%B5%EC%9D%B4%EB%9E%80&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1008&quot; data-ke-size=&quot;size23&quot;&gt;1.1 강화학습이란&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;1009&quot; data-ke-size=&quot;size16&quot;&gt;강화학습은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;환경과의 상호작용을 통해 최적의 행동을 학습하는 방법&lt;/b&gt;임. 지도학습과 달리 정답 데이터가 없고, 오직 보상(reward) 신호만으로 학습함.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;1010&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;실생활 예시&lt;/b&gt;: 아기가 걸음마를 배우는 과정&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;1011&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1012&quot;&gt;아기(Agent)가 여러 움직임을 시도해봄&lt;/li&gt;
&lt;li data-nodeid=&quot;1014&quot;&gt;넘어지면 불편함(음수 보상), 잘 걸으면 기쁨(양수 보상)&lt;/li&gt;
&lt;li data-nodeid=&quot;1016&quot;&gt;점차 더 나은 걸음걸이를 학습&lt;/li&gt;
&lt;li data-nodeid=&quot;1018&quot;&gt;누구도 &quot;이렇게 걸어야 한다&quot;고 정답을 알려주지 않음&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;1.2-%EA%B0%95%ED%99%94%ED%95%99%EC%8A%B5%EC%9D%98-4%EA%B0%80%EC%A7%80-%ED%95%B5%EC%8B%AC-%ED%8A%B9%EC%A7%95&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1020&quot; data-ke-size=&quot;size23&quot;&gt;1.2 강화학습의 4가지 핵심 특징&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal; color: #222222;&quot; data-nodeid=&quot;1021&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-nodeid=&quot;1022&quot;&gt;&lt;b&gt;감독자 없음&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;- 오직 reward signal만 존재
&lt;ul style=&quot;list-style-type: circle; color: #222222;&quot; data-nodeid=&quot;1024&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li data-nodeid=&quot;1025&quot;&gt;지도학습처럼 &quot;정답&quot;이 주어지지 않음&lt;/li&gt;
&lt;li data-nodeid=&quot;1027&quot;&gt;좋고 나쁨만 알 수 있음 (점수로만 피드백)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-nodeid=&quot;1029&quot;&gt;&lt;b&gt;지연된 피드백&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;- 행동의 결과가 즉시 나타나지 않음
&lt;ul style=&quot;list-style-type: circle; color: #222222;&quot; data-nodeid=&quot;1031&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li data-nodeid=&quot;1032&quot;&gt;체스에서 초반 수가 승부에 영향을 주지만 바로 알 수 없음&lt;/li&gt;
&lt;li data-nodeid=&quot;1034&quot;&gt;Credit Assignment Problem: 어떤 행동이 최종 결과에 기여했는지 파악하기 어려움&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-nodeid=&quot;1036&quot;&gt;&lt;b&gt;시간의 중요성&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;- 연속적이며 독립적이지 않은 데이터
&lt;ul style=&quot;list-style-type: circle; color: #222222;&quot; data-nodeid=&quot;1038&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li data-nodeid=&quot;1039&quot;&gt;이전 행동이 현재 상황에 영향을 줌&lt;/li&gt;
&lt;li data-nodeid=&quot;1041&quot;&gt;순서가 바뀌면 완전히 다른 문제가 됨&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-nodeid=&quot;1043&quot;&gt;&lt;b&gt;행동의 영향&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;- Agent의 행동이 이후 받는 데이터에 영향을 줌
&lt;ul style=&quot;list-style-type: circle; color: #222222;&quot; data-nodeid=&quot;1045&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li data-nodeid=&quot;1046&quot;&gt;Active Learning: Agent가 직접 데이터를 생성&lt;/li&gt;
&lt;li data-nodeid=&quot;1048&quot;&gt;잘못된 탐험으로 나쁜 상태에 빠질 위험&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;2.-%EA%B0%95%ED%99%94%ED%95%99%EC%8A%B5%EC%9D%98-%EA%B5%AC%EC%A1%B0&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1050&quot; data-ke-size=&quot;size26&quot;&gt;2. 강화학습의 구조&lt;/h2&gt;
&lt;h3 id=&quot;2.1-%ED%95%B5%EC%8B%AC-%EA%B5%AC%EC%84%B1%EC%9A%94%EC%86%8C&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1051&quot; data-ke-size=&quot;size23&quot;&gt;2.1 핵심 구성요소&lt;/h3&gt;
&lt;h4 id=&quot;Agent-(%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8)&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1052&quot; data-ke-size=&quot;size20&quot;&gt;Agent (에이전트)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;1053&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1054&quot;&gt;학습하고 결정을 내리는 주체&lt;/li&gt;
&lt;li data-nodeid=&quot;1056&quot;&gt;Environment와 상호작용하며 경험을 쌓음&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;Environment-(%ED%99%98%EA%B2%BD)&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1058&quot; data-ke-size=&quot;size20&quot;&gt;Environment (환경)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;1059&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1060&quot;&gt;Agent가 행동하는 외부 세계&lt;/li&gt;
&lt;li data-nodeid=&quot;1062&quot;&gt;Agent의 행동에 대해 새로운 상태와 보상을 제공&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;State-(%EC%83%81%ED%83%9C)&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1064&quot; data-ke-size=&quot;size20&quot;&gt;State (상태)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;1065&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1066&quot;&gt;현재 상황에 대한 정보&lt;/li&gt;
&lt;li data-nodeid=&quot;1068&quot;&gt;다음 행동을 결정하는 데 필요한 정보&lt;/li&gt;
&lt;li data-nodeid=&quot;1070&quot;&gt;&lt;b&gt;핵심&lt;/b&gt;: 상태는 미래 예측에 필요한 모든 정보를 담아야 함&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;Action-(%ED%96%89%EB%8F%99)&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1072&quot; data-ke-size=&quot;size20&quot;&gt;Action (행동)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;1073&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1074&quot;&gt;Agent가 취할 수 있는 행위&lt;/li&gt;
&lt;li data-nodeid=&quot;1076&quot;&gt;환경에 영향을 주어 상태 변화를 일으킴&lt;/li&gt;
&lt;li data-nodeid=&quot;1078&quot;&gt;&lt;b&gt;Discrete Action&lt;/b&gt;: 체스의 말 이동 (유한한 선택지)&lt;/li&gt;
&lt;li data-nodeid=&quot;1080&quot;&gt;&lt;b&gt;Continuous Action&lt;/b&gt;: 로봇 팔의 관절 각도 (무한한 실수값)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;Reward-(%EB%B3%B4%EC%83%81)&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1082&quot; data-ke-size=&quot;size20&quot;&gt;Reward (보상)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;1083&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1084&quot;&gt;행동에 대한 피드백 신호 (스칼라 값)&lt;/li&gt;
&lt;li data-nodeid=&quot;1086&quot;&gt;Agent가 얼마나 잘 수행했는지를 나타냄&lt;/li&gt;
&lt;li data-nodeid=&quot;1088&quot;&gt;&lt;b&gt;Reward Hypothesis&lt;/b&gt;: 모든 목표는 누적 보상의 최대화로 표현 가능&lt;/li&gt;
&lt;li data-nodeid=&quot;1090&quot;&gt;&lt;b&gt;Reward Shaping&lt;/b&gt;: 학습을 돕기 위해 중간 보상을 설계하는 기법&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;2.2-%EC%83%81%ED%83%9C(State)%EC%9D%98-%EC%A2%85%EB%A5%98&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1092&quot; data-ke-size=&quot;size23&quot;&gt;2.2 상태(State)의 종류&lt;/h3&gt;
&lt;h4 id=&quot;Environment-State&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1093&quot; data-ke-size=&quot;size20&quot;&gt;Environment State&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;1094&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1095&quot;&gt;환경의 내부적 표현&lt;/li&gt;
&lt;li data-nodeid=&quot;1097&quot;&gt;보통 Agent에게는 보이지 않음&lt;/li&gt;
&lt;li data-nodeid=&quot;1099&quot;&gt;보인다 해도 불필요한 정보가 포함될 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;Agent-State&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1101&quot; data-ke-size=&quot;size20&quot;&gt;Agent State&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;1102&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1103&quot;&gt;Agent의 내부적 표현&lt;/li&gt;
&lt;li data-nodeid=&quot;1105&quot;&gt;다음 행동을 결정할 때 사용하는 정보&lt;/li&gt;
&lt;li data-nodeid=&quot;1107&quot;&gt;강화학습에서 가장 중요한 상태&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;Markov-State&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1109&quot; data-ke-size=&quot;size20&quot;&gt;Markov State&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;1110&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1111&quot;&gt;미래 예측에 필요한 모든 정보를 포함&lt;/li&gt;
&lt;li data-nodeid=&quot;1113&quot;&gt;과거 히스토리가 아닌 현재 상태만으로 미래를 예측 가능&lt;/li&gt;
&lt;li data-nodeid=&quot;1115&quot;&gt;&lt;b&gt;Markov Property&lt;/b&gt;: P(St+1|St) = P(St+1|S1,...,St)&lt;/li&gt;
&lt;li data-nodeid=&quot;1117&quot;&gt;&lt;b&gt;직관적 이해&lt;/b&gt;: &quot;현재가 과거와 미래를 분리한다&quot;&lt;/li&gt;
&lt;li data-nodeid=&quot;1119&quot;&gt;예시: 체스에서 현재 말의 배치만 알면 충분 (이전 수순은 중요하지 않음)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;2.3-%ED%99%98%EA%B2%BD%EC%9D%98-%EC%A2%85%EB%A5%98&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1121&quot; data-ke-size=&quot;size23&quot;&gt;2.3 환경의 종류&lt;/h3&gt;
&lt;h4 id=&quot;Fully-Observable-Environment-(%EC%99%84%EC%A0%84-%EA%B4%80%EC%B8%A1-%ED%99%98%EA%B2%BD)&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1122&quot; data-ke-size=&quot;size20&quot;&gt;Fully Observable Environment (완전 관측 환경)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;1123&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1124&quot;&gt;Agent가 Environment State를 직접 관찰 가능&lt;/li&gt;
&lt;li data-nodeid=&quot;1126&quot;&gt;Environment State = Agent State = Markov State&lt;/li&gt;
&lt;li data-nodeid=&quot;1128&quot;&gt;**Markov Decision Process (MDP)**로 모델링&lt;/li&gt;
&lt;li data-nodeid=&quot;1130&quot;&gt;예시: 체스, 바둑 같은 완전정보게임&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;Partially-Observable-Environment-(%EB%B6%80%EB%B6%84-%EA%B4%80%EC%B8%A1-%ED%99%98%EA%B2%BD)&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1132&quot; data-ke-size=&quot;size20&quot;&gt;Partially Observable Environment (부분 관측 환경)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;1133&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1134&quot;&gt;Agent가 Environment State를 간접적으로만 관찰 가능&lt;/li&gt;
&lt;li data-nodeid=&quot;1136&quot;&gt;Environment State &amp;ne; Agent State&lt;/li&gt;
&lt;li data-nodeid=&quot;1138&quot;&gt;**Partially Observable MDP (POMDP)**로 모델링&lt;/li&gt;
&lt;li data-nodeid=&quot;1140&quot;&gt;예시: 포커 (상대방 카드를 모름), 자율주행 (모든 센서 정보가 제한적)&lt;/li&gt;
&lt;li data-nodeid=&quot;1142&quot;&gt;&lt;b&gt;해결 방법&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: circle; color: #222222;&quot; data-nodeid=&quot;1144&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li data-nodeid=&quot;1145&quot;&gt;과거 관측들을 기억 (RNN 사용)&lt;/li&gt;
&lt;li data-nodeid=&quot;1147&quot;&gt;확률적 추정 (Belief State)&lt;/li&gt;
&lt;li data-nodeid=&quot;1149&quot;&gt;Attention 메커니즘&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;3.-Agent%EC%9D%98-%EA%B5%AC%EC%84%B1%EC%9A%94%EC%86%8C&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1151&quot; data-ke-size=&quot;size26&quot;&gt;3. Agent의 구성요소&lt;/h2&gt;
&lt;h3 id=&quot;3.1-Policy-(%EC%A0%95%EC%B1%85)&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1152&quot; data-ke-size=&quot;size23&quot;&gt;3.1 Policy (정책)&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;1153&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1154&quot;&gt;&lt;b&gt;상태에서 행동으로의 매핑 함수&lt;/b&gt;&lt;/li&gt;
&lt;li data-nodeid=&quot;1156&quot;&gt;Agent의 행동 전략을 정의&lt;/li&gt;
&lt;li data-nodeid=&quot;1158&quot;&gt;&lt;b&gt;Deterministic Policy&lt;/b&gt;: 각 상태에서 하나의 행동만 선택
&lt;ul style=&quot;list-style-type: circle; color: #222222;&quot; data-nodeid=&quot;1160&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li data-nodeid=&quot;1161&quot;&gt;&amp;pi;(s) = a (상태 s에서 항상 행동 a)&lt;/li&gt;
&lt;li data-nodeid=&quot;1163&quot;&gt;예시: 틱택토에서 &quot;가운데가 비어있으면 항상 가운데 선택&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-nodeid=&quot;1165&quot;&gt;&lt;b&gt;Stochastic Policy&lt;/b&gt;: 각 상태에서 행동을 확률적으로 선택
&lt;ul style=&quot;list-style-type: circle; color: #222222;&quot; data-nodeid=&quot;1167&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li data-nodeid=&quot;1168&quot;&gt;&amp;pi;(a|s) = P(행동=a|상태=s)&lt;/li&gt;
&lt;li data-nodeid=&quot;1170&quot;&gt;예시: &quot;상황에 따라 60% 공격, 40% 수비&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-nodeid=&quot;1172&quot;&gt;&lt;b&gt;왜 확률적 정책이 필요한가&lt;/b&gt;: 상대방이 예측하기 어렵게 만들기 위해&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;3.2-Value-Function-(%EA%B0%80%EC%B9%98-%ED%95%A8%EC%88%98)&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1174&quot; data-ke-size=&quot;size23&quot;&gt;3.2 Value Function (가치 함수)&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;1175&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1176&quot;&gt;&lt;b&gt;각 상태 또는 상태-행동 쌍의 가치를 평가&lt;/b&gt;&lt;/li&gt;
&lt;li data-nodeid=&quot;1178&quot;&gt;현재부터 종료까지의 예상 누적 보상&lt;/li&gt;
&lt;li data-nodeid=&quot;1180&quot;&gt;정책의 좋고 나쁨을 판단하는 기준&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;1182&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;두 가지 주요 타입&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;1183&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1184&quot;&gt;&lt;b&gt;State Value Function V(s)&lt;/b&gt;: 상태 s에서 시작해서 정책 &amp;pi;를 따를 때의 기댓값&lt;/li&gt;
&lt;li data-nodeid=&quot;1186&quot;&gt;&lt;b&gt;Action Value Function Q(s,a)&lt;/b&gt;: 상태 s에서 행동 a를 취한 후 정책 &amp;pi;를 따를 때의 기댓값&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;1188&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;직관적 이해&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;1189&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1190&quot;&gt;V(s)는 &quot;이 위치가 얼마나 좋은가&quot;&lt;/li&gt;
&lt;li data-nodeid=&quot;1192&quot;&gt;Q(s,a)는 &quot;이 위치에서 이 행동이 얼마나 좋은가&quot;&lt;/li&gt;
&lt;li data-nodeid=&quot;1194&quot;&gt;부동산으로 비유하면 V(s)는 동네 가치, Q(s,a)는 특정 집의 가치&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;3.3-Model-(%EB%AA%A8%EB%8D%B8)&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1196&quot; data-ke-size=&quot;size23&quot;&gt;3.3 Model (모델)&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;1197&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1198&quot;&gt;&lt;b&gt;환경에 대한 Agent의 표현&lt;/b&gt;&lt;/li&gt;
&lt;li data-nodeid=&quot;1200&quot;&gt;다음 상태와 보상을 예측&lt;/li&gt;
&lt;li data-nodeid=&quot;1202&quot;&gt;계획(Planning)에 사용됨&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;4.-Agent%EC%9D%98-%EB%B6%84%EB%A5%98&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1204&quot; data-ke-size=&quot;size26&quot;&gt;4. Agent의 분류&lt;/h2&gt;
&lt;h3 id=&quot;4.1-%EA%B0%80%EC%B9%98-%EA%B8%B0%EB%B0%98-vs-%EC%A0%95%EC%B1%85-%EA%B8%B0%EB%B0%98&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1205&quot; data-ke-size=&quot;size23&quot;&gt;4.1 가치 기반 vs 정책 기반&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;1206&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1207&quot;&gt;&lt;b&gt;Value-based&lt;/b&gt;: 가치 함수 학습, 암시적 정책 사용&lt;/li&gt;
&lt;li data-nodeid=&quot;1209&quot;&gt;&lt;b&gt;Policy-based&lt;/b&gt;: 정책 직접 학습, 가치 함수 없음&lt;/li&gt;
&lt;li data-nodeid=&quot;1211&quot;&gt;&lt;b&gt;Actor-Critic&lt;/b&gt;: 정책과 가치 함수 모두 학습&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;4.2-%EB%AA%A8%EB%8D%B8-%EA%B8%B0%EB%B0%98-vs-%EB%AA%A8%EB%8D%B8-%ED%94%84%EB%A6%AC&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1213&quot; data-ke-size=&quot;size23&quot;&gt;4.2 모델 기반 vs 모델 프리&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;1214&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1215&quot;&gt;&lt;b&gt;Model-based&lt;/b&gt;: 환경 모델을 명시적으로 학습&lt;/li&gt;
&lt;li data-nodeid=&quot;1217&quot;&gt;&lt;b&gt;Model-free&lt;/b&gt;: 환경 모델 없이 경험으로만 학습&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;5.-%ED%95%B5%EC%8B%AC-%EA%B0%9C%EB%85%90%EB%93%A4&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1219&quot; data-ke-size=&quot;size26&quot;&gt;5. 핵심 개념들&lt;/h2&gt;
&lt;h3 id=&quot;5.1-Exploration-vs-Exploitation&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1220&quot; data-ke-size=&quot;size23&quot;&gt;5.1 Exploration vs Exploitation&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;1221&quot; data-ke-size=&quot;size16&quot;&gt;강화학습의 핵심 딜레마&lt;/p&gt;
&lt;h4 id=&quot;Exploration-(%ED%83%90%ED%97%98)&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1222&quot; data-ke-size=&quot;size20&quot;&gt;Exploration (탐험)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;1223&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1224&quot;&gt;환경에 대한 새로운 정보 수집&lt;/li&gt;
&lt;li data-nodeid=&quot;1226&quot;&gt;더 좋은 행동을 발견할 가능성&lt;/li&gt;
&lt;li data-nodeid=&quot;1228&quot;&gt;단기적으로는 손해를 볼 수 있음&lt;/li&gt;
&lt;li data-nodeid=&quot;1230&quot;&gt;&lt;b&gt;예시&lt;/b&gt;: 새로운 식당을 가보기 (맛없을 수도 있지만 더 맛있는 곳을 발견할 수도)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;Exploitation-(%ED%99%9C%EC%9A%A9)&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1232&quot; data-ke-size=&quot;size20&quot;&gt;Exploitation (활용)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;1233&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1234&quot;&gt;현재 알고 있는 정보로 최선의 선택&lt;/li&gt;
&lt;li data-nodeid=&quot;1236&quot;&gt;단기적 보상 최대화&lt;/li&gt;
&lt;li data-nodeid=&quot;1238&quot;&gt;더 좋은 선택을 놓칠 위험&lt;/li&gt;
&lt;li data-nodeid=&quot;1240&quot;&gt;&lt;b&gt;예시&lt;/b&gt;: 항상 같은 맛집만 가기 (안전하지만 더 좋은 곳을 놓칠 수 있음)&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;1242&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;균형점 찾기가 중요함&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;1243&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;해결 방법들&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;1244&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1245&quot;&gt;&lt;b&gt;&amp;epsilon;-greedy&lt;/b&gt;: &amp;epsilon; 확률로 랜덤 행동, (1-&amp;epsilon;) 확률로 최선 행동&lt;/li&gt;
&lt;li data-nodeid=&quot;1247&quot;&gt;&lt;b&gt;Upper Confidence Bound (UCB)&lt;/b&gt;: 불확실성까지 고려한 선택&lt;/li&gt;
&lt;li data-nodeid=&quot;1249&quot;&gt;&lt;b&gt;Thompson Sampling&lt;/b&gt;: 베이지안 방법론 활용&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;5.2-Prediction-vs-Control&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1251&quot; data-ke-size=&quot;size23&quot;&gt;5.2 Prediction vs Control&lt;/h3&gt;
&lt;h4 id=&quot;Prediction-(%EC%98%88%EC%B8%A1)&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1252&quot; data-ke-size=&quot;size20&quot;&gt;Prediction (예측)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;1253&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1254&quot;&gt;&lt;b&gt;주어진 정책에 대해 가치 함수 계산&lt;/b&gt;&lt;/li&gt;
&lt;li data-nodeid=&quot;1256&quot;&gt;&quot;이 정책을 따르면 얼마나 좋을까?&quot;&lt;/li&gt;
&lt;li data-nodeid=&quot;1258&quot;&gt;Policy Evaluation 과정&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;Control-(%EC%A0%9C%EC%96%B4)&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1260&quot; data-ke-size=&quot;size20&quot;&gt;Control (제어)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;1261&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1262&quot;&gt;&lt;b&gt;최적 정책을 찾는 과정&lt;/b&gt;&lt;/li&gt;
&lt;li data-nodeid=&quot;1264&quot;&gt;&quot;어떤 정책이 가장 좋을까?&quot;&lt;/li&gt;
&lt;li data-nodeid=&quot;1266&quot;&gt;Policy Improvement 과정&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;6.-Sequential-Decision-Making&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1268&quot; data-ke-size=&quot;size26&quot;&gt;6. Sequential Decision Making&lt;/h2&gt;
&lt;h3 id=&quot;6.1-%ED%8A%B9%EC%A7%95&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1269&quot; data-ke-size=&quot;size23&quot;&gt;6.1 특징&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;1270&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1271&quot;&gt;미래의 총 보상을 최대화하는 행동 선택&lt;/li&gt;
&lt;li data-nodeid=&quot;1273&quot;&gt;행동들이 장기적 결과를 가질 수 있음&lt;/li&gt;
&lt;li data-nodeid=&quot;1275&quot;&gt;즉시 보상을 희생하여 장기 보상을 얻을 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;1277&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;핵심 개념들&lt;/b&gt;:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;1278&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1279&quot;&gt;&lt;b&gt;Discount Factor (&amp;gamma;)&lt;/b&gt;: 미래 보상을 현재 가치로 할인
&lt;ul style=&quot;list-style-type: circle; color: #222222;&quot; data-nodeid=&quot;1281&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li data-nodeid=&quot;1282&quot;&gt;&amp;gamma; = 0: 근시안적 (즉시 보상만 고려)&lt;/li&gt;
&lt;li data-nodeid=&quot;1284&quot;&gt;&amp;gamma; = 1: 원시안적 (모든 미래 보상 동등하게 고려)&lt;/li&gt;
&lt;li data-nodeid=&quot;1286&quot;&gt;보통 0.9-0.99 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-nodeid=&quot;1288&quot;&gt;&lt;b&gt;Return&lt;/b&gt;: 할인된 미래 보상들의 합&lt;/li&gt;
&lt;li data-nodeid=&quot;1290&quot;&gt;&lt;b&gt;Episodic vs Continuing&lt;/b&gt;: 종료가 있는 작업 vs 무한히 계속되는 작업&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;6.2-Planning-vs-Reinforcement-Learning&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1292&quot; data-ke-size=&quot;size23&quot;&gt;6.2 Planning vs Reinforcement Learning&lt;/h3&gt;
&lt;h4 id=&quot;Planning&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1293&quot; data-ke-size=&quot;size20&quot;&gt;Planning&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;1294&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1295&quot;&gt;환경 모델이 알려져 있음&lt;/li&gt;
&lt;li data-nodeid=&quot;1297&quot;&gt;모델을 이용한 계산&lt;/li&gt;
&lt;li data-nodeid=&quot;1299&quot;&gt;외부 상호작용 없음&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;Reinforcement-Learning&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1301&quot; data-ke-size=&quot;size20&quot;&gt;Reinforcement Learning&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;1302&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1303&quot;&gt;환경 모델이 알려져 있지 않음&lt;/li&gt;
&lt;li data-nodeid=&quot;1305&quot;&gt;환경과의 상호작용 필요&lt;/li&gt;
&lt;li data-nodeid=&quot;1307&quot;&gt;경험을 통한 학습&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;7.-%EC%A3%BC%EC%9A%94-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%B6%84%EB%A5%98&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1309&quot; data-ke-size=&quot;size26&quot;&gt;7. 주요 알고리즘 분류&lt;/h2&gt;
&lt;h3 id=&quot;7.1-Model-free-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1310&quot; data-ke-size=&quot;size23&quot;&gt;7.1 Model-free 알고리즘&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;1311&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1312&quot;&gt;&lt;b&gt;Value-based&lt;/b&gt;: Q-Learning, SARSA, DQN
&lt;ul style=&quot;list-style-type: circle; color: #222222;&quot; data-nodeid=&quot;1314&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li data-nodeid=&quot;1315&quot;&gt;Q-Learning: Off-policy, 최적 정책 직접 학습&lt;/li&gt;
&lt;li data-nodeid=&quot;1317&quot;&gt;SARSA: On-policy, 현재 정책을 따라 학습&lt;/li&gt;
&lt;li data-nodeid=&quot;1319&quot;&gt;DQN: 딥러닝 + Q-Learning (Atari 게임에서 유명)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-nodeid=&quot;1321&quot;&gt;&lt;b&gt;Policy-based&lt;/b&gt;: Policy Gradient, REINFORCE
&lt;ul style=&quot;list-style-type: circle; color: #222222;&quot; data-nodeid=&quot;1323&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li data-nodeid=&quot;1324&quot;&gt;정책을 직접 최적화&lt;/li&gt;
&lt;li data-nodeid=&quot;1326&quot;&gt;연속 행동 공간에 유리&lt;/li&gt;
&lt;li data-nodeid=&quot;1328&quot;&gt;안정적이지만 학습이 느림&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-nodeid=&quot;1330&quot;&gt;&lt;b&gt;Actor-Critic&lt;/b&gt;: A3C, PPO, SAC
&lt;ul style=&quot;list-style-type: circle; color: #222222;&quot; data-nodeid=&quot;1332&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li data-nodeid=&quot;1333&quot;&gt;Policy-based + Value-based의 장점 결합&lt;/li&gt;
&lt;li data-nodeid=&quot;1335&quot;&gt;Actor: 정책 학습, Critic: 가치 함수 학습&lt;/li&gt;
&lt;li data-nodeid=&quot;1337&quot;&gt;현재 가장 인기 있는 방법들&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;7.2-Model-based-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1339&quot; data-ke-size=&quot;size23&quot;&gt;7.2 Model-based 알고리즘&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;1340&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1341&quot;&gt;&lt;b&gt;Dynamic Programming&lt;/b&gt;: Value Iteration, Policy Iteration
&lt;ul style=&quot;list-style-type: circle; color: #222222;&quot; data-nodeid=&quot;1343&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li data-nodeid=&quot;1344&quot;&gt;환경 모델이 완전히 알려져 있을 때 사용&lt;/li&gt;
&lt;li data-nodeid=&quot;1346&quot;&gt;이론적으로 완벽하지만 실제로는 제한적&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-nodeid=&quot;1348&quot;&gt;&lt;b&gt;Monte Carlo Tree Search&lt;/b&gt;
&lt;ul style=&quot;list-style-type: circle; color: #222222;&quot; data-nodeid=&quot;1350&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li data-nodeid=&quot;1351&quot;&gt;알파고에서 사용된 기법&lt;/li&gt;
&lt;li data-nodeid=&quot;1353&quot;&gt;트리 탐색 + 몬테카를로 시뮬레이션&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-nodeid=&quot;1355&quot;&gt;&lt;b&gt;Model-based RL&lt;/b&gt;: Dyna-Q, PILCO
&lt;ul style=&quot;list-style-type: circle; color: #222222;&quot; data-nodeid=&quot;1357&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li data-nodeid=&quot;1358&quot;&gt;환경 모델을 학습하면서 동시에 정책 학습&lt;/li&gt;
&lt;li data-nodeid=&quot;1360&quot;&gt;Sample efficiency가 높지만 모델 오차 문제&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;8.-%EC%8B%A4%EC%A0%9C-%EA%B5%AC%ED%98%84%EC%8B%9C-%EA%B3%A0%EB%A0%A4%EC%82%AC%ED%95%AD&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1362&quot; data-ke-size=&quot;size26&quot;&gt;8. 실제 구현시 고려사항&lt;/h2&gt;
&lt;h3 id=&quot;8.1-%EC%A3%BC%EC%9A%94-%EB%8F%84%EC%A0%84%EA%B3%BC%EC%A0%9C&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1363&quot; data-ke-size=&quot;size23&quot;&gt;8.1 주요 도전과제&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;1364&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1365&quot;&gt;&lt;b&gt;Sample Efficiency&lt;/b&gt;: 적은 데이터로 효과적 학습&lt;/li&gt;
&lt;li data-nodeid=&quot;1367&quot;&gt;&lt;b&gt;Generalization&lt;/b&gt;: 학습하지 않은 상황에서도 동작&lt;/li&gt;
&lt;li data-nodeid=&quot;1369&quot;&gt;&lt;b&gt;Stability&lt;/b&gt;: 학습 과정에서 성능이 요동치지 않게&lt;/li&gt;
&lt;li data-nodeid=&quot;1371&quot;&gt;&lt;b&gt;Safety&lt;/b&gt;: 학습 중 위험한 행동 방지&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;8.2-%ED%95%98%EC%9D%B4%ED%8D%BC%ED%8C%8C%EB%9D%BC%EB%AF%B8%ED%84%B0-%ED%8A%9C%EB%8B%9D&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;1373&quot; data-ke-size=&quot;size23&quot;&gt;8.2 하이퍼파라미터 튜닝&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;1374&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;1375&quot;&gt;&lt;b&gt;Learning Rate&lt;/b&gt;: 너무 크면 불안정, 너무 작으면 느림&lt;/li&gt;
&lt;li data-nodeid=&quot;1377&quot;&gt;&lt;b&gt;Batch Size&lt;/b&gt;: 클수록 안정적이지만 메모리 많이 사용&lt;/li&gt;
&lt;li data-nodeid=&quot;1379&quot;&gt;&lt;b&gt;Network Architecture&lt;/b&gt;: 문제에 따라 적절한 구조 선택&lt;/li&gt;
&lt;li data-nodeid=&quot;1381&quot;&gt;&lt;b&gt;Reward Engineering&lt;/b&gt;: 좋은 보상 함수 설계가 성공의 열쇠&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;1383&quot; data-ke-size=&quot;size16&quot;&gt;강화학습은 이론적으로는 간단하지만 실제 구현과 적용에서는 많은 고려사항들이 있음. 특히 exploration-exploitation 균형과 sample efficiency가 주요 도전과제임.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #222222; text-align: start;&quot; data-testid=&quot;WikiDetailPageLayout&quot;&gt;&amp;nbsp;&lt;/div&gt;</description>
      <category>AI/Reinforcement Learning</category>
      <author>땽뚕</author>
      <guid isPermaLink="true">https://asidefine.tistory.com/360</guid>
      <comments>https://asidefine.tistory.com/360#entry360comment</comments>
      <pubDate>Sun, 10 Aug 2025 10:48:09 +0900</pubDate>
    </item>
    <item>
      <title>Understanding Reasoning LLMs 번역</title>
      <link>https://asidefine.tistory.com/359</link>
      <description>&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;2503&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2504&quot;&gt;[원문]&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://magazine.sebastianraschka.com/p/understanding-reasoning-llms&quot;&gt;https://magazine.sebastianraschka.com/p/understanding-reasoning-llms&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2506&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2507&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2508&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1 id=&quot;%EC%B6%94%EB%A1%A0-LLM-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0&quot; style=&quot;color: #000000;&quot; data-nodeid=&quot;2509&quot;&gt;추론 LLM 이해하기&lt;/h1&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2510&quot; data-ke-size=&quot;size16&quot;&gt;이 아티클은 추론 모델을 구축하는 네 가지 주요 접근법, 즉 LLM에 추론 능력을 향상시키는 방법에 대해 설명함. 이 글이 가치 있는 통찰을 제공하고 이 주제를 둘러싼 빠르게 발전하는 문헌과 과대광고를 탐색하는 데 도움이 되길 바람.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2511&quot; data-ke-size=&quot;size16&quot;&gt;2024년에 LLM 분야는 점점 더 전문화되는 모습을 보임. 사전 훈련과 파인튜닝을 넘어서, RAG부터 코드 어시스턴트까지 전문화된 애플리케이션의 부상을 목격함. 이 트렌드가 2025년에도 가속화될 것으로 예상되며, 도메인과 애플리케이션 특화 최적화(즉, &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;1272&quot; data-origin-height=&quot;660&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GDlqr/btsPMK05UFl/0zFSZNlgbF7skAHzWABMR1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GDlqr/btsPMK05UFl/0zFSZNlgbF7skAHzWABMR1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GDlqr/btsPMK05UFl/0zFSZNlgbF7skAHzWABMR1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGDlqr%2FbtsPMK05UFl%2F0zFSZNlgbF7skAHzWABMR1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1272&quot; height=&quot;660&quot; data-origin-width=&quot;1272&quot; data-origin-height=&quot;660&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2511&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;1-3단계가 LLM 개발의 일반적인 단계들임. 4단계는 특정 사용 사례를 위해 LLM을 전문화함.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2512&quot; data-ke-size=&quot;size16&quot;&gt;추론 모델의 개발은 이러한 전문화 중 하나임. 이는 퍼즐, 고급 수학, 코딩 챌린지와 같이 중간 단계가 있어야 가장 잘 해결되는 복잡한 작업에서 뛰어난 성과를 내도록 LLM을 개선한다는 의미임. 하지만 이 전문화가 다른 LLM 애플리케이션을 대체하는 것은 아님. LLM을 추론 모델로 변환하는 것도 나중에 논의할 특정 단점들을 도입하기 때문임.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2513&quot; data-ke-size=&quot;size16&quot;&gt;아래 내용을 간략히 살펴보면, 이 글에서 다룰 내용들:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;2514&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2515&quot;&gt;&quot;추론 모델&quot;의 의미 설명&lt;/li&gt;
&lt;li data-nodeid=&quot;2517&quot;&gt;추론 모델의 장단점 논의&lt;/li&gt;
&lt;li data-nodeid=&quot;2519&quot;&gt;DeepSeek R1 뒤의 방법론 개요&lt;/li&gt;
&lt;li data-nodeid=&quot;2521&quot;&gt;추론 모델을 구축하고 개선하는 네 가지 주요 접근법 설명&lt;/li&gt;
&lt;li data-nodeid=&quot;2523&quot;&gt;DeepSeek V3와 R1 출시 이후 LLM 환경에 대한 생각 공유&lt;/li&gt;
&lt;li data-nodeid=&quot;2525&quot;&gt;제한된 예산으로 추론 모델을 개발하는 팁 제공&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2527&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2528&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2529&quot; data-ke-size=&quot;size16&quot;&gt;AI가 올해 급속한 발전을 계속하는 가운데 이 글이 유용하길 바람!&lt;/p&gt;
&lt;h2 id=&quot;%22%EC%B6%94%EB%A1%A0-%EB%AA%A8%EB%8D%B8%22%EC%9D%84-%EC%96%B4%EB%96%BB%EA%B2%8C-%EC%A0%95%EC%9D%98%ED%95%A0%EA%B9%8C%3F&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;2530&quot; data-ke-size=&quot;size26&quot;&gt;&quot;추론 모델&quot;을 어떻게 정의할까?&lt;/h2&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2531&quot; data-ke-size=&quot;size16&quot;&gt;AI(또는 일반적으로 머신러닝) 분야에서 일한다면, 모호하고 격렬하게 논쟁되는 정의들에 익숙할 것임. &quot;추론 모델&quot;이라는 용어도 예외가 아님. 결국 누군가가 논문에서 공식적으로 정의하고, 다음 논문에서 다시 정의되고, 이런 식으로 계속됨.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2532&quot; data-ke-size=&quot;size16&quot;&gt;이 글에서는 &quot;추론&quot;을 중간 단계가 필요한 복잡하고 다단계 생성을 요구하는 질문에 답하는 과정으로 정의함. 예를 들어, &quot;프랑스의 수도는 무엇인가?&quot;와 같은 사실적 질문 답변은 추론을 포함하지 않음. 반면, &quot;기차가 시속 60마일로 움직이며 3시간 동안 여행한다면, 얼마나 멀리 갈까?&quot;와 같은 질문은 간단한 추론이 필요함. 예를 들어, 답에 도달하기 전에 거리, 속도, 시간 간의 관계를 인식해야 함.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1272&quot; data-origin-height=&quot;732&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d5zs9h/btsPOnw5IkF/jRKojH2YTBdTA9YMTNIbYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d5zs9h/btsPOnw5IkF/jRKojH2YTBdTA9YMTNIbYK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d5zs9h/btsPOnw5IkF/jRKojH2YTBdTA9YMTNIbYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd5zs9h%2FbtsPOnw5IkF%2FjRKojH2YTBdTA9YMTNIbYK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1272&quot; height=&quot;732&quot; data-origin-width=&quot;1272&quot; data-origin-height=&quot;732&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2532&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;일반적인 LLM은 짧은 답만 제공할 수 있지만(왼쪽에 표시된 것처럼), 추론 모델은 일반적으로 사고 과정의 일부를 드러내는 중간 단계를 포함함. (추론 작업을 위해 특별히 개발되지 않은 많은 LLM들도 답변에서 중간 추론 단계를 제공할 수 있다는 점 참고.)&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2533&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2534&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2535&quot; data-ke-size=&quot;size16&quot;&gt;대부분의 현대 LLM들은 기본적인 추론이 가능하며 &quot;기차가 시속 60마일로 움직이며 3시간 동안 여행한다면, 얼마나 멀리 갈까?&quot;와 같은 질문에 답할 수 있음. 그래서 오늘날 추론 모델이라고 할 때는 일반적으로 퍼즐 해결, 수수께끼, 수학적 증명과 같은 더 복잡한 추론 작업에서 뛰어난 LLM을 의미함.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2536&quot; data-ke-size=&quot;size16&quot;&gt;또한, 오늘날 추론 모델로 브랜딩된 대부분의 LLM들은 응답의 일부로 &quot;사고&quot; 또는 &quot;생각&quot; 과정을 포함함. LLM이 실제로 &quot;생각&quot;하는지와 어떻게 생각하는지는 별개의 논의임.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2537&quot; data-ke-size=&quot;size16&quot;&gt;추론 모델의 중간 단계는 두 가지 방식으로 나타날 수 있음. 첫째, 이전 그림에서 보여진 것처럼 응답에 명시적으로 포함될 수 있음. 둘째, OpenAI의 o1과 같은 일부 추론 LLM은 사용자에게 보여지지 않는 중간 단계를 가진 여러 반복을 실행함.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2537&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1456&quot; data-origin-height=&quot;767&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EwAyv/btsPMXlGqn7/paAo9fZFLxBoxI5miYZuwK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EwAyv/btsPMXlGqn7/paAo9fZFLxBoxI5miYZuwK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EwAyv/btsPMXlGqn7/paAo9fZFLxBoxI5miYZuwK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEwAyv%2FbtsPMXlGqn7%2FpaAo9fZFLxBoxI5miYZuwK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1456&quot; height=&quot;767&quot; data-origin-width=&quot;1456&quot; data-origin-height=&quot;767&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2537&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&quot;추론&quot;은 두 가지 다른 수준에서 사용됨: 1) 입력을 처리하고 여러 중간 단계를 통해 생성하는 것과 2) 사용자에게 응답의 일부로 어떤 종류의 추론을 제공하는 것.&lt;/p&gt;
&lt;h2 id=&quot;%EC%96%B8%EC%A0%9C-%EC%B6%94%EB%A1%A0-%EB%AA%A8%EB%8D%B8%EC%9D%84-%EC%82%AC%EC%9A%A9%ED%95%B4%EC%95%BC-%ED%95%A0%EA%B9%8C%3F&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;2538&quot; data-ke-size=&quot;size26&quot;&gt;언제 추론 모델을 사용해야 할까?&lt;/h2&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2539&quot; data-ke-size=&quot;size16&quot;&gt;추론 모델을 정의했으니, 이제 더 흥미로운 부분으로 넘어갈 수 있음: 추론 작업을 위해 LLM을 구축하고 개선하는 방법. 하지만 기술적 세부사항에 들어가기 전에, 추론 모델이 실제로 언제 필요한지 고려하는 것이 중요함.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2540&quot; data-ke-size=&quot;size16&quot;&gt;언제 추론 모델이 필요할까? 추론 모델은 퍼즐 해결, 고급 수학 문제, 도전적인 코딩 작업과 같은 복잡한 작업에 좋도록 설계됨. 하지만 요약, 번역, 또는 지식 기반 질문 답변과 같은 간단한 작업에는 필요하지 않음. 실제로 모든 것에 추론 모델을 사용하는 것은 비효율적이고 비쌀 수 있음. 예를 들어, 추론 모델은 일반적으로 사용하기 더 비싸고, 더 장황하며, &quot;과도한 사고&quot; 때문에 때때로 오류에 더 취약함. 여기서도 간단한 규칙이 적용됨: 작업에 적합한 도구(또는 LLM의 유형)를 사용하라.&lt;br /&gt;추론 모델의 주요 강점과 제한사항이 아래 그림에 요약되어 있음.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1352&quot; data-origin-height=&quot;524&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bYO1gd/btsPNdIu4fb/tIf2EUnURJZ9wfIQXxsbJ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bYO1gd/btsPNdIu4fb/tIf2EUnURJZ9wfIQXxsbJ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bYO1gd/btsPNdIu4fb/tIf2EUnURJZ9wfIQXxsbJ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYO1gd%2FbtsPNdIu4fb%2FtIf2EUnURJZ9wfIQXxsbJ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1352&quot; height=&quot;524&quot; data-origin-width=&quot;1352&quot; data-origin-height=&quot;524&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2541&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;추론 모델의 주요 강점과 약점.&lt;/p&gt;
&lt;h2 id=&quot;DeepSeek-%ED%9B%88%EB%A0%A8-%ED%8C%8C%EC%9D%B4%ED%94%84%EB%9D%BC%EC%9D%B8-%EA%B0%84%EB%9E%B5%ED%9E%88-%EC%82%B4%ED%8E%B4%EB%B3%B4%EA%B8%B0&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;2542&quot; data-ke-size=&quot;size26&quot;&gt;DeepSeek 훈련 파이프라인 간략히 살펴보기&lt;/h2&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2543&quot; data-ke-size=&quot;size16&quot;&gt;다음 섹션에서 추론 모델을 구축하고 개선하는 네 가지 주요 접근법을 논의하기 전에, DeepSeek R1 기술 보고서에 설명된 DeepSeek R1 파이프라인을 간략히 설명하고 싶음. 이 보고서는 흥미로운 사례 연구이자 추론 LLM 개발을 위한 청사진 역할을 함.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2544&quot; data-ke-size=&quot;size16&quot;&gt;DeepSeek은 단일 R1 추론 모델을 출시한 것이 아니라 세 가지 서로 다른 변형을 도입했음: DeepSeek-R1-Zero, DeepSeek-R1, DeepSeek-R1-Distill.&lt;br /&gt;기술 보고서의 설명을 바탕으로, 아래 다이어그램에서 이러한 모델들의 개발 과정을 요약함.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1456&quot; data-origin-height=&quot;1101&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/co0AL4/btsPMIhUyuI/B2ln4KJZkjm7eMz6KmNyP1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/co0AL4/btsPMIhUyuI/B2ln4KJZkjm7eMz6KmNyP1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/co0AL4/btsPMIhUyuI/B2ln4KJZkjm7eMz6KmNyP1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fco0AL4%2FbtsPMIhUyuI%2FB2ln4KJZkjm7eMz6KmNyP1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1456&quot; height=&quot;1101&quot; data-origin-width=&quot;1456&quot; data-origin-height=&quot;1101&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2544&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;DeepSeek R1 기술 보고서에서 논의된 DeepSeek의 세 가지 다른 추론 모델의 개발 과정.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2545&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2546&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2547&quot; data-ke-size=&quot;size16&quot;&gt;다음으로, 위 다이어그램에 표시된 과정을 간략히 살펴보겠음. 더 자세한 내용은 추론 모델을 구축하고 개선하는 네 가지 주요 접근법을 논의하는 다음 섹션에서 다룰 예정임.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2548&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;(1) DeepSeek-R1-Zero&lt;/b&gt;: 이 모델은 2024년 12월에 출시된 671B 사전 훈련된 DeepSeek-V3 기본 모델을 기반으로 함. 연구팀은&lt;span&gt;&amp;nbsp;&lt;/span&gt;두 가지 유형의 보상을 사용하여 강화학습(RL)으로 훈련시킴. 이 접근법은 일반적으로 인간 피드백을 통한 강화학습(RLHF)의 일부인&lt;span&gt;&amp;nbsp;&lt;/span&gt;지도 파인튜닝(SFT) 단계를 포함하지 않았기 때문에 &quot;콜드 스타트&quot; 훈련이라고 불림.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2549&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;(2) DeepSeek-R1&lt;/b&gt;: 이것은 DeepSeek-R1-Zero를 기반으로 구축된 DeepSeek의 플래그십 추론 모델임. 팀은&lt;span&gt;&amp;nbsp;&lt;/span&gt;추가적인 SFT 단계와 추가 RL 훈련으로 더욱 개선하여, &quot;콜드 스타트&quot;된 R1-Zero 모델을 향상시킴.&lt;br /&gt;&lt;b&gt;(3) DeepSeek-R1-Distill:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;이전 단계에서 생성된 SFT 데이터를 사용하여, DeepSeek 팀은 Qwen과 Llama 모델을 파인튜닝하여 추론 능력을 향상시킴. 전통적인 의미의 증류는 아니지만,&lt;span&gt;&amp;nbsp;&lt;/span&gt;이 과정은 더 큰 DeepSeek-R1 671B 모델의 출력으로 더 작은 모델들(Llama 8B와 70B, Qwen 1.5B-30B)을 훈련시키는 것을 포함함.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2550&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;%EC%B6%94%EB%A1%A0-%EB%AA%A8%EB%8D%B8%EC%9D%84-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B3%A0-%EA%B0%9C%EC%84%A0%ED%95%98%EB%8A%94-4%EA%B0%80%EC%A7%80-%EC%A3%BC%EC%9A%94-%EB%B0%A9%EB%B2%95&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;2551&quot; data-ke-size=&quot;size26&quot;&gt;추론 모델을 구축하고 개선하는 4가지 주요 방법&lt;/h2&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2552&quot; data-ke-size=&quot;size16&quot;&gt;이 섹션에서는 LLM의 추론 능력을 향상시키고 DeepSeek-R1, OpenAI의 o1 &amp;amp; o3와 같은 전문화된 추론 모델을 구축하는 데 현재 사용되는 핵심 기술들을 개괄할 것임.&lt;br /&gt;참고: o1과 o3의 정확한 작동 방식은 OpenAI 외부에서는 알려지지 않음. 하지만 추론과 훈련 기법의 조합을 활용한다는 소문이 있음.&lt;/p&gt;
&lt;h3 id=&quot;1)-%EC%B6%94%EB%A1%A0-%EC%8B%9C%EA%B0%84-%EC%8A%A4%EC%BC%80%EC%9D%BC%EB%A7%81&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;2553&quot; data-ke-size=&quot;size23&quot;&gt;1) 추론 시간 스케일링&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2554&quot; data-ke-size=&quot;size16&quot;&gt;LLM의 추론 능력(또는 일반적으로 모든 능력)을 향상시키는 한 가지 방법은 추론 시간 스케일링임. 이 용어는 여러 의미를 가질 수 있지만, 이 맥락에서는 추론 중에 계산 자원을 늘려 출력 품질을 향상시키는 것을 의미함.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2555&quot; data-ke-size=&quot;size16&quot;&gt;대략적인 비유로, 인간들이 복잡한 문제를 생각할 시간을 더 많이 받으면 더 나은 응답을 생성하는 경향이 있음. 마찬가지로, LLM이 답을 생성하는 동안 더 &quot;생각&quot;하도록 격려하는 기법들을 적용할 수 있음. (물론 LLM이 실제로 &quot;생각&quot;하는지는 다른 논의임.)&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2556&quot; data-ke-size=&quot;size16&quot;&gt;추론 시간 스케일링의 한 가지 직접적인 접근법은 영리한 프롬프트 엔지니어링임. 전형적인 예는 연쇄 사고(CoT) 프롬프팅으로, 입력 프롬프트에 &quot;단계별로 생각해보세요&quot;와 같은 구문을 포함함. 이는 모델이 최종 답으로 직접 뛰어넘기보다는 중간 추론 단계를 생성하도록 격려하며, 이는 종종(항상은 아니지만) 더 복잡한 문제에서 더 정확한 결과로 이어질 수 있음. (&quot;프랑스의 수도는 무엇인가?&quot;와 같은 간단한 지식 기반 질문에는 이 전략을 사용하는 것이 의미가 없다는 점 참고. 이는 다시 주어진 입력 쿼리에서 추론 모델이 의미가 있는지 알아내는 좋은 경험칙임.)&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2557&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1456&quot; data-origin-height=&quot;381&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/n7MzD/btsPLiYClSP/ueFKNMfhinrLpKYGuQq2wk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/n7MzD/btsPLiYClSP/ueFKNMfhinrLpKYGuQq2wk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/n7MzD/btsPLiYClSP/ueFKNMfhinrLpKYGuQq2wk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fn7MzD%2FbtsPLiYClSP%2FueFKNMfhinrLpKYGuQq2wk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1456&quot; height=&quot;381&quot; data-origin-width=&quot;1456&quot; data-origin-height=&quot;381&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2559&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;2022년 Large Language Models are Zero-Shot Reasoners 논문의 고전적인 CoT 프롬프팅 예시.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2560&quot; data-ke-size=&quot;size16&quot;&gt;앞서 언급한 CoT 접근법은 더 많은 출력 토큰을 생성하여 추론을 더 비싸게 만들기 때문에 추론 시간 스케일링으로 볼 수 있음.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2561&quot; data-ke-size=&quot;size16&quot;&gt;추론 시간 스케일링의 또 다른 접근법은 투표와 검색 전략의 사용임. 간단한 예는 다수결 투표로, LLM이 여러 답을 생성하게 하고 다수결 투표로 올바른 답을 선택함. 마찬가지로, 빔 서치와 다른 검색 알고리즘을 사용하여 더 나은 응답을 생성할 수 있음.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1456&quot; data-origin-height=&quot;836&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kxOYc/btsPObwQt3s/ngcQ8UEH70XKSlWM3uqei0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kxOYc/btsPObwQt3s/ngcQ8UEH70XKSlWM3uqei0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kxOYc/btsPObwQt3s/ngcQ8UEH70XKSlWM3uqei0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkxOYc%2FbtsPObwQt3s%2FngcQ8UEH70XKSlWM3uqei0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1456&quot; height=&quot;836&quot; data-origin-width=&quot;1456&quot; data-origin-height=&quot;836&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2562&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;다양한 검색 기반 방법들은 최고의 답을 선택하기 위해 프로세스 보상 기반 모델에 의존함. LLM Test-Time Compute 논문의 주석이 달린 그림.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2563&quot; data-ke-size=&quot;size16&quot;&gt;DeepSeek R1 기술 보고서는 일반적인 추론 시간 스케일링 방법들(프로세스 보상 모델 기반 및 몬테카를로 트리 검색 기반 접근법 등)을 &quot;실패한 시도들&quot; 아래로 분류함. 이는 DeepSeek이 V3 기본 모델에 비해 암시적인 추론 시간 스케일링 형태 역할을 하는 더 긴 응답을 생성하는 R1 모델의 자연스러운 경향을 넘어서는 이러한 기법들을 명시적으로 사용하지 않았음을 시사함.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2564&quot; data-ke-size=&quot;size16&quot;&gt;하지만 명시적인 추론 시간 스케일링은 종종 LLM 자체 내에서가 아니라 애플리케이션 계층에서 구현되므로, DeepSeek도 여전히 앱 내에서 그러한 기법들을 적용할 수 있음.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2565&quot; data-ke-size=&quot;size16&quot;&gt;OpenAI의 o1과 o3 모델이 추론 시간 스케일링을 사용한다고 의심하며, 이는 GPT-4o와 같은 모델에 비해 상대적으로 비싼 이유를 설명할 것임. 추론 시간 스케일링에 더해, o1과 o3는 아마도 DeepSeek R1에 사용된 것과 유사한 RL 파이프라인을 사용하여 훈련되었을 것임. 아래 다음 두 섹션에서 강화학습에 대해 더 다룰 예정임.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2566&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;2)-%EC%88%9C%EC%88%98-%EA%B0%95%ED%99%94%ED%95%99%EC%8A%B5(RL)&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;2567&quot; data-ke-size=&quot;size23&quot;&gt;2) 순수 강화학습(RL)&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2568&quot; data-ke-size=&quot;size16&quot;&gt;DeepSeek R1 논문에서 개인적으로 가장 흥미로운 부분 중 하나는 순수 강화학습(RL)에서 추론이 행동으로 나타난다는 발견임. 이것이 더 자세히 무엇을 의미하는지 탐구해보겠음.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2569&quot; data-ke-size=&quot;size16&quot;&gt;앞서 개괄한 바와 같이, DeepSeek은 세 가지 유형의 R1 모델을 개발함. 첫 번째인 DeepSeek-R1-Zero는 2024년 12월에 출시한 표준 사전 훈련된 LLM인 DeepSeek-V3 기본 모델 위에 구축됨. RL 전에 지도 파인튜닝(SFT)이 적용되는 일반적인 RL 파이프라인과 달리, DeepSeek-R1-Zero는 아래 다이어그램에서 강조된 바와 같이 초기 SFT 단계 없이 독점적으로 강화학습으로만 훈련됨.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1456&quot; data-origin-height=&quot;1087&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c2krCz/btsPLNKLgFJ/oPZ8nFdqQ4YcYSNidNFz1k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c2krCz/btsPLNKLgFJ/oPZ8nFdqQ4YcYSNidNFz1k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c2krCz/btsPLNKLgFJ/oPZ8nFdqQ4YcYSNidNFz1k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc2krCz%2FbtsPLNKLgFJ%2FoPZ8nFdqQ4YcYSNidNFz1k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1456&quot; height=&quot;1087&quot; data-origin-width=&quot;1456&quot; data-origin-height=&quot;1087&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2570&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;DeepSeek-R1-Zero 모델의 개발 과정.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2571&quot; data-ke-size=&quot;size16&quot;&gt;여전히 이 RL 과정은 LLM을 선호도 튜닝하는 데 일반적으로 사용되는 RLHF 접근법과 유사함. (RLHF에 대해서는 LLM Training: RLHF and Its Alternatives 글에서 더 자세히 다룸.) 하지만 위에서 언급했듯이, DeepSeek-R1-Zero의 주요 차이점은 명령어 튜닝을 위한 지도 파인튜닝(SFT) 단계를 건너뛰었다는 것임. 이것이 &quot;순수&quot; RL이라고 부르는 이유임. (비록 LLM 맥락에서의 RL은 전통적인 RL과 상당히 다르며, 이는 다른 시점의 주제임.)&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2572&quot; data-ke-size=&quot;size16&quot;&gt;보상의 경우, 인간 선호도로 훈련된 보상 모델을 사용하는 대신, 두 가지 유형의 보상을 사용함: 정확도 보상과 형식 보상.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;2573&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2574&quot;&gt;&lt;b&gt;정확도 보상&lt;/b&gt;은 LeetCode 컴파일러를 사용하여 코딩 답을 검증하고 수학적 응답을 평가하는 결정론적 시스템을 사용함.&lt;/li&gt;
&lt;li data-nodeid=&quot;2576&quot;&gt;&lt;b&gt;형식 보상&lt;/b&gt;은 LLM 판사에 의존하여 응답이 추론 단계를 &amp;lt;think&amp;gt; 태그 안에 배치하는 것과 같은 예상 형식을 따르는지 확인함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2578&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2579&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2580&quot; data-ke-size=&quot;size16&quot;&gt;놀랍게도, 이 접근법은 LLM이 기본적인 추론 기술을 개발하기에 충분함. 연구자들은 모델이 명시적으로 그렇게 하도록 훈련받지 않았음에도 불구하고 응답의 일부로 추론 추적을 생성하기 시작하는 &quot;아하!&quot; 순간을 관찰함. 아래 그림에서 보여지는 것처럼.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2582&quot; data-ke-size=&quot;size16&quot;&gt;&quot;아하&quot; 순간의 출현을 보여주는 DeepSeek R1 기술 보고서의 그림.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2583&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2584&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2585&quot; data-ke-size=&quot;size16&quot;&gt;R1-Zero는 최고 성능의 추론 모델은 아니지만, 위 그림에서 보여지는 것처럼 중간 &quot;생각&quot; 단계를 생성하여 추론 능력을 보여줌. 이는 순수 RL을 사용하여 추론 모델을 개발하는 것이 가능하다는 것을 확인하며, DeepSeek 팀이 이 접근법을 최초로 증명(또는 적어도 발표)함.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2586&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1456&quot; data-origin-height=&quot;927&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PnR5J/btsPO6ojyzX/Ru1kOW28gUrNQRzLFqkVkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PnR5J/btsPO6ojyzX/Ru1kOW28gUrNQRzLFqkVkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PnR5J/btsPO6ojyzX/Ru1kOW28gUrNQRzLFqkVkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPnR5J%2FbtsPO6ojyzX%2FRu1kOW28gUrNQRzLFqkVkk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1456&quot; height=&quot;927&quot; data-origin-width=&quot;1456&quot; data-origin-height=&quot;927&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2588&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;3)-%EC%A7%80%EB%8F%84-%ED%8C%8C%EC%9D%B8%ED%8A%9C%EB%8B%9D%EA%B3%BC-%EA%B0%95%ED%99%94%ED%95%99%EC%8A%B5-(SFT-%2B-RL)&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;2589&quot; data-ke-size=&quot;size23&quot;&gt;3) 지도 파인튜닝과 강화학습 (SFT + RL)&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2590&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2591&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2592&quot; data-ke-size=&quot;size16&quot;&gt;다음으로, 추론 모델 구축을 위한 청사진 역할을 하는 DeepSeek의 플래그십 추론 모델인 DeepSeek-R1의 개발을 살펴보겠음. 이 모델은 추론 성능을 향상시키기 위해 추가적인 지도 파인튜닝(SFT)과 강화학습(RL)을 통합하여 DeepSeek-R1-Zero를 개선함.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2593&quot; data-ke-size=&quot;size16&quot;&gt;실제로 표준 RLHF 파이프라인에서 볼 수 있듯이&lt;span&gt;&amp;nbsp;&lt;/span&gt;RL 전에 SFT 단계를 포함하는 것은 일반적임.&lt;span&gt;&amp;nbsp;&lt;/span&gt;OpenAI의 o1도 유사한 접근법을 사용하여 개발되었을 가능성이 높음.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1456&quot; data-origin-height=&quot;1085&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0Wvdg/btsPMNXM9tU/ywu3HEtowkc2tu94goOMxk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0Wvdg/btsPMNXM9tU/ywu3HEtowkc2tu94goOMxk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0Wvdg/btsPMNXM9tU/ywu3HEtowkc2tu94goOMxk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0Wvdg%2FbtsPMNXM9tU%2Fywu3HEtowkc2tu94goOMxk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1456&quot; height=&quot;1085&quot; data-origin-width=&quot;1456&quot; data-origin-height=&quot;1085&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2594&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;DeepSeek-R1 모델의 개발 과정.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2595&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; color: #222222;&quot; data-nodeid=&quot;2596&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-nodeid=&quot;2597&quot;&gt;위 다이어그램에서 보여지는 것처럼, DeepSeek 팀은 DeepSeek-R1-Zero를 사용하여 &quot;콜드 스타트&quot; SFT 데이터라고 부르는 것을 생성함. &quot;콜드 스타트&quot;라는 용어는 이 데이터가 자체적으로 지도 파인튜닝(SFT) 데이터로 훈련받지 않은 DeepSeek-R1-Zero에 의해 생성되었다는 사실을 의미함.&lt;/li&gt;
&lt;li data-nodeid=&quot;2599&quot;&gt;
&lt;div data-nodeid=&quot;2600&quot;&gt;이 콜드 스타트 SFT 데이터를 사용하여, DeepSeek은 명령어 파인튜닝을 통해 모델을 훈련시킨 후, 또 다른 강화학습(RL) 단계를 거침.&lt;span&gt;&amp;nbsp;&lt;/span&gt;이 RL 단계는 DeepSeek-R1-Zero의 RL 과정에서 사용된 동일한 정확도와 형식 보상을 유지함. 하지만 응답 내에서 여러 언어를 전환하는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;언어 혼합을 방지하기 위해 일관성 보상을 추가&lt;/b&gt;함.&lt;/div&gt;
&lt;/li&gt;
&lt;li data-nodeid=&quot;2601&quot;&gt;RL 단계 다음에는 또 다른 SFT 데이터 수집 라운드가 이어짐. 이 단계에서는 가장 최근의 모델 체크포인트를 사용하여 600K 연쇄 사고(CoT) SFT 예시를 생성하고, DeepSeek-V3 기본 모델을 사용하여 추가로 200K 지식 기반 SFT 예시를 생성함.
&lt;ul style=&quot;list-style-type: circle; color: #222222;&quot; data-nodeid=&quot;2603&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li data-nodeid=&quot;2604&quot;&gt;이 600K + 200K SFT 샘플들은 최종 RL 라운드를 따르기 전에 DeepSeek-V3 기본을 명령어 파인튜닝하는 데 사용됨. 이&lt;span&gt;&amp;nbsp;&lt;/span&gt;단계에서 수학과 코딩 질문에는 다시 정확도 보상을 위한 규칙 기반 방법을 사용하고, 다른 질문 유형에는 인간 선호도 라벨을 사용함. 전체적으로 이는 SFT 데이터에 (더 많은) CoT 예시가 포함되어 있다는 것을 제외하고는 일반적인 RLHF와 매우 유사함. 그리고 RL은 인간 선호도 기반 보상에 더해 검증 가능한 보상을 가짐.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2606&quot; data-ke-size=&quot;size16&quot;&gt;최종 모델인 DeepSeek-R1은 아래 표에서 보여지는 것처럼 추가적인 SFT와 RL 단계 덕분에 DeepSeek-R1-Zero에 비해 눈에 띄는 성능 향상을 보임.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2607&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1456&quot; data-origin-height=&quot;459&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AlJJh/btsPMZDOqHI/pT2A8yLcWagsQoL7dL0Tzk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AlJJh/btsPMZDOqHI/pT2A8yLcWagsQoL7dL0Tzk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AlJJh/btsPMZDOqHI/pT2A8yLcWagsQoL7dL0Tzk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAlJJh%2FbtsPMZDOqHI%2FpT2A8yLcWagsQoL7dL0Tzk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1456&quot; height=&quot;459&quot; data-origin-width=&quot;1456&quot; data-origin-height=&quot;459&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2609&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;OpenAI O1과 DeepSeek R1 모델들의 벤치마크 비교. DeepSeek-R1 기술 보고서의 주석이 달린 그림.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2610&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;4)-%EC%88%9C%EC%88%98-%EC%A7%80%EB%8F%84-%ED%8C%8C%EC%9D%B8%ED%8A%9C%EB%8B%9D(SFT)%EA%B3%BC-%EC%A6%9D%EB%A5%98&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;2611&quot; data-ke-size=&quot;size23&quot;&gt;4) 순수 지도 파인튜닝(SFT)과 증류&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2612&quot; data-ke-size=&quot;size16&quot;&gt;지금까지 추론 모델을 구축하고 개선하는 세 가지 핵심 접근법을 다룸:&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; color: #222222;&quot; data-nodeid=&quot;2613&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-nodeid=&quot;2614&quot;&gt;기본 모델을 훈련하거나 수정하지 않고 추론 능력을 향상시키는 기법인 추론 시간 스케일링.&lt;/li&gt;
&lt;li data-nodeid=&quot;2616&quot;&gt;DeepSeek-R1-Zero에서처럼 지도 파인튜닝 없이도 추론이 학습된 행동으로 나타날 수 있음을 보여준 순수 강화학습(RL).&lt;/li&gt;
&lt;li data-nodeid=&quot;2618&quot;&gt;DeepSeek의 플래그십 추론 모델인 DeepSeek-R1로 이어진 지도 파인튜닝(SFT) + RL.&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2620&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2621&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2622&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;그럼 남은 것은? 모델 &quot;증류&quot;임.&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2623&quot; data-ke-size=&quot;size16&quot;&gt;놀랍게도, DeepSeek은 증류라고 부르는 과정을 통해 훈련된 더 작은 모델들도 출시함. 하지만 LLM의 맥락에서 증류는 딥러닝에서 사용되는 고전적인 지식 증류 접근법을 반드시 따르지는 않음. 전통적으로, 지식 증류에서는(Machine Learning Q and AI 책의 6장에서 간략히 설명된 바와 같이), 더 작은 학생 모델이 더 큰 교사 모델의 로짓과 타겟 데이터셋 모두로 훈련됨.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2624&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2625&quot; data-ke-size=&quot;size16&quot;&gt;대신, 여기서 증류는 Llama 8B와 70B, Qwen 2.5 모델(0.5B부터 32B까지)과 같은 더 작은 LLM들을 더 큰 LLM들에 의해 생성된 SFT 데이터셋으로 명령어 파인튜닝하는 것을 의미함. 구체적으로, 이러한 더 큰 LLM들은 DeepSeek-V3와 DeepSeek-R1의 중간 체크포인트임. 실제로, 이 증류 과정에 사용된 SFT 데이터는 이전 섹션에서 설명한 대로 DeepSeek-R1을 훈련하는 데 사용된 동일한 데이터셋임.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2626&quot; 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;1444&quot; data-origin-height=&quot;1174&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XxkPj/btsPMQmGW2x/WXszS2mwKyvMfsKXLyZen0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XxkPj/btsPMQmGW2x/WXszS2mwKyvMfsKXLyZen0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XxkPj/btsPMQmGW2x/WXszS2mwKyvMfsKXLyZen0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXxkPj%2FbtsPMQmGW2x%2FWXszS2mwKyvMfsKXLyZen0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1444&quot; height=&quot;1174&quot; data-origin-width=&quot;1444&quot; data-origin-height=&quot;1174&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2628&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2629&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;DeepSeek-R1-Distill 모델들의 개발 과정.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2630&quot; data-ke-size=&quot;size16&quot;&gt;왜 이러한 증류된 모델들을 개발했을까? 개인적으로 두 가지 핵심 이유가 있다고 생각함:&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; color: #222222;&quot; data-nodeid=&quot;2631&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-nodeid=&quot;2632&quot;&gt;더 작은 모델들이 더 효율적임. 이는 실행 비용이 더 저렴하다는 의미이지만, 또한 더 낮은 사양의 하드웨어에서도 실행할 수 있어서 나와 같은 많은 연구자들과 개발자들에게 특히 흥미로움.&lt;/li&gt;
&lt;li data-nodeid=&quot;2634&quot;&gt;순수 SFT의 사례 연구. 이러한 증류된 모델들은 강화학습 없이 순수 지도 파인튜닝(SFT)만으로 모델이 어디까지 갈 수 있는지를 보여주는 흥미로운 벤치마크 역할을 함.&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2636&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2637&quot; data-ke-size=&quot;size16&quot;&gt;아래 표는 이러한 증류된 모델들의 성능을 다른 인기 모델들뿐만 아니라 DeepSeek-R1-Zero와 DeepSeek-R1과 비교함.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1168&quot; data-origin-height=&quot;604&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ARZq6/btsPLO30N5o/krpJJrCRXs6ALoK9DgUrJ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ARZq6/btsPLO30N5o/krpJJrCRXs6ALoK9DgUrJ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ARZq6/btsPLO30N5o/krpJJrCRXs6ALoK9DgUrJ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FARZq6%2FbtsPLO30N5o%2FkrpJJrCRXs6ALoK9DgUrJ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1168&quot; height=&quot;604&quot; data-origin-width=&quot;1168&quot; data-origin-height=&quot;604&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2638&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;증류된 모델 대 비증류된 모델의 벤치마크 비교. DeepSeek-R1 기술 보고서의 주석이 달린 그림.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2639&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2640&quot; data-ke-size=&quot;size16&quot;&gt;보다시피, 증류된 모델들은 DeepSeek-R1보다는 눈에 띄게 약하지만, 규모가 몇 배 작음에도 불구하고 DeepSeek-R1-Zero에 비해서는 놀랍도록 강함. 또한 이러한 모델들이 o1 mini와 비교해서 얼마나 잘 수행하는지도 흥미로움 (o1-mini 자체도 o1의 유사하게 증류된 버전일 수 있다고 의심함).&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2641&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2642&quot; data-ke-size=&quot;size16&quot;&gt;이 섹션을 결론으로 마무리하기 전에, 언급할 가치가 있는 한 가지 더 흥미로운 비교가 있음. DeepSeek 팀은 DeepSeek-R1-Zero에서 보인 창발적 추론 행동이 더 작은 모델들에서도 나타날 수 있는지 테스트함. 이를 조사하기 위해, DeepSeek-R1-Zero와 동일한 순수 RL 접근법을 Qwen-32B에 직접 적용함.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2643&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2644&quot; data-ke-size=&quot;size16&quot;&gt;이 실험의 결과는 아래 표에 요약되어 있으며, QwQ-32B-Preview는 Qwen 팀이 Qwen 2.5 32B를 기반으로 개발한 참조 추론 모델 역할을 함 (훈련 세부사항은 공개되지 않았다고 생각함). 이 비교는 순수 RL만으로도 DeepSeek-R1-Zero보다 훨씬 작은 모델에서 추론 능력을 유도할 수 있는지에 대한 추가적인 통찰을 제공함.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1448&quot; data-origin-height=&quot;408&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cPq3Bu/btsPNnYEU8p/E9lpGYDq1wo2HBYcyaHv41/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cPq3Bu/btsPNnYEU8p/E9lpGYDq1wo2HBYcyaHv41/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cPq3Bu/btsPNnYEU8p/E9lpGYDq1wo2HBYcyaHv41/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcPq3Bu%2FbtsPNnYEU8p%2FE9lpGYDq1wo2HBYcyaHv41%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1448&quot; height=&quot;408&quot; data-origin-width=&quot;1448&quot; data-origin-height=&quot;408&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2645&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;더 작은 32B 모델에서의 증류와 RL 벤치마크 비교. DeepSeek-R1 기술 보고서의 주석이 달린 그림.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2646&quot; data-ke-size=&quot;size16&quot;&gt;흥미롭게도, 결과들은 증류가 더 작은 모델들에게는 순수 RL보다 훨씬 더 효과적임을 시사함.&lt;span&gt;&amp;nbsp;&lt;/span&gt;이는 RL만으로는 이 규모의 모델에서 강한 추론 능력을 유도하기에 충분하지 않을 수 있는 반면, 고품질 추론 데이터에 대한 SFT는 작은 모델로 작업할 때 더 효과적인 전략이 될 수 있다는 아이디어와 일치함.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2647&quot; data-ke-size=&quot;size16&quot;&gt;완성도를 위해, 표에서 추가적인 비교들을 보는 것이 유용했을 것임:&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2648&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; color: #222222;&quot; data-nodeid=&quot;2649&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-nodeid=&quot;2650&quot;&gt;DeepSeek-R1이 개발된 방식과 유사하게 SFT + RL로 훈련된 Qwen-32B. 이는 순수 RL과 순수 SFT에 비해 RL이 SFT와 결합될 때 얼마나 개선될 수 있는지 결정하는 데 도움이 될 것임.&lt;/li&gt;
&lt;li data-nodeid=&quot;2652&quot;&gt;증류된 모델들이 생성된 방식과 유사하게 순수 SFT로 훈련된 DeepSeek-V3. 이는 RL + SFT가 순수 SFT에 비해 얼마나 효과적인지 직접 비교할 수 있게 해줄 것임.&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2654&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2655&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;%EA%B2%B0%EB%A1%A0&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;2656&quot; data-ke-size=&quot;size26&quot;&gt;결론&lt;/h2&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2657&quot; data-ke-size=&quot;size16&quot;&gt;이 섹션에서는 추론 모델을 구축하고 개선하는 네 가지 다른 전략을 탐구함:&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; color: #222222;&quot; data-nodeid=&quot;2658&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-nodeid=&quot;2659&quot;&gt;&lt;b&gt;추론 시간 스케일링&lt;/b&gt;은 추가 훈련이 필요하지 않지만 추론 비용을 증가시켜서 사용자 수나 쿼리 볼륨이 증가함에 따라 대규모 배포를 더 비싸게 만듦. 그럼에도 불구하고, 이미 강한 모델의 성능을 향상시키는 데는 여전히 당연한 선택임. o1이 추론 시간 스케일링을 활용한다고 강하게 의심하며, 이는 DeepSeek-R1에 비해 토큰당 더 비싼 이유를 설명하는 데 도움이 됨.&lt;/li&gt;
&lt;li data-nodeid=&quot;2661&quot;&gt;&lt;b&gt;순수 RL&lt;/b&gt;은 추론을 창발적 행동으로서의 통찰을 제공하기 때문에 연구 목적으로는 흥미로움. 하지만 실용적인 모델 개발에서는 RL + SFT가 더 강한 추론 모델로 이어지므로 선호되는 접근법임. o1도 RL + SFT를 사용하여 훈련되었다고 강하게 의심함. 더 정확히 말하면, o1은 DeepSeek-R1보다 더 약하고 작은 기본 모델에서 시작하지만 RL + SFT와 추론 시간 스케일링으로 보상한다고 믿음.&lt;/li&gt;
&lt;li data-nodeid=&quot;2663&quot;&gt;위에서 언급했듯이,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;RL + SFT&lt;/b&gt;는 고성능 추론 모델을 구축하는 핵심 접근법임. DeepSeek-R1은 이것이 어떻게 이루어질 수 있는지를 보여주는 좋은 청사진임.&lt;/li&gt;
&lt;li data-nodeid=&quot;2665&quot;&gt;&lt;b&gt;증류&lt;/b&gt;는 특히 더 작고 효율적인 모델을 만드는 데 매력적인 접근법임. 하지만 한계는 증류가 혁신을 주도하거나 차세대 추론 모델을 생산하지 않는다는 것임. 예를 들어, 증류는 항상 지도 파인튜닝(SFT) 데이터를 생성하기 위해 기존의 더 강한 모델에 의존함.&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2667&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div data-nodeid=&quot;2668&quot;&gt;다음에 보게 될 흥미로운 측면 중 하나는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;RL + SFT(접근법 3)와 추론 시간 스케일링(접근법 1)을 결합&lt;/b&gt;하는 것임. 이는 아마도 OpenAI o1이 하고 있는 것으로, DeepSeek-R1보다 더 약한 기본 모델을 기반으로 하고 있을 것이며, 이는 DeepSeek-R1이 추론 시간에 상대적으로 저렴하면서도 그렇게 잘 수행하는 이유를 설명함.&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2669&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;DeepSeek-R1%EC%97%90-%EB%8C%80%ED%95%9C-%EC%83%9D%EA%B0%81&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;2670&quot; data-ke-size=&quot;size26&quot;&gt;DeepSeek R1에 대한 생각&lt;/h2&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2671&quot; data-ke-size=&quot;size16&quot;&gt;최근 몇 주 동안 많은 사람들이 DeepSeek-R1 모델에 대한 생각을 물어봄. 간단히 말해서, 이들은 놀라운 성취라고 생각함. 연구 엔지니어로서, 내가 배울 수 있는 방법론에 대한 통찰을 제공하는 상세한 기술 보고서를 특히 높이 평가함.&lt;br /&gt;가장 매력적인 결론 중 하나는 순수 RL에서 추론이 행동으로 나타났다는 것임. 그리고 DeepSeek이 Meta의 Llama 모델보다도 더 적은 제한이 있는 허용적인 오픈소스 MIT 라이선스 하에 모델들을 오픈소스화한 것도 인상적임.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2672&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;o1%EA%B3%BC-%EC%96%B4%EB%96%BB%EA%B2%8C-%EB%B9%84%EA%B5%90%EB%90%A0%EA%B9%8C%3F&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;2673&quot; data-ke-size=&quot;size23&quot;&gt;o1과 어떻게 비교될까?&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2674&quot; data-ke-size=&quot;size16&quot;&gt;DeepSeek-R1이 o1보다 나을까? 대략 비슷한 수준이라고 말하겠음. 하지만 눈에 띄는 것은 DeepSeek-R1이 추론 시간에 더 효율적이라는 것임. 이는 DeepSeek이 훈련 과정에 더 많이 투자한 반면, OpenAI는 o1을 위해 추론 시간 스케일링에 더 의존했을 수 있음을 시사함.&lt;br /&gt;그렇긴 하지만, OpenAI가 o1에 대해 많은 것을 공개하지 않았기 때문에 o1과 DeepSeek-R1을 직접 비교하기는 어려움. 예를 들어, 우리는 다음을 모름:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;2675&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2676&quot;&gt;o1도 전문가 혼합(MoE)인가?&lt;/li&gt;
&lt;li data-nodeid=&quot;2678&quot;&gt;o1은 얼마나 큰가?&lt;/li&gt;
&lt;li data-nodeid=&quot;2680&quot;&gt;o1이 단지 최소한의 RL + SFT와 광범위한 추론 시간 스케일링만을 가진 GPT-4o의 약간 개선된 버전일 수 있을까?&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2682&quot; data-ke-size=&quot;size16&quot;&gt;이러한 세부사항들을 모르면, 직접 비교는 여전히 사과와 오렌지를 비교하는 것임.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2683&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;DeepSeek-R1%EC%9D%98-%ED%9B%88%EB%A0%A8-%EB%B9%84%EC%9A%A9&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;2684&quot; data-ke-size=&quot;size23&quot;&gt;DeepSeek-R1의 훈련 비용&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2685&quot; data-ke-size=&quot;size16&quot;&gt;또 다른 논의점은 DeepSeek-R1 개발 비용이었음. 일부는 약 600만 달러의 훈련 비용을 언급했지만, 아마도 DeepSeek-V3(작년 12월에 출시된 기본 모델)와 DeepSeek-R1을 혼동했을 것임.&lt;br /&gt;600만 달러 추정치는 가정된 GPU 시간당 2달러와 2024년 12월에 원래 논의된 DeepSeek-V3의 최종 훈련 실행에 필요한 GPU 시간 수를 기반으로 함.&lt;br /&gt;하지만 DeepSeek 팀은 R1의 정확한 GPU 시간이나 개발 비용을 공개한 적이 없으므로, 모든 비용 추정치는 순전한 추측임.&lt;br /&gt;어쨌든, 궁극적으로 DeepSeek-R1은 오픈 웨이트 추론 모델의 주요 이정표이며, 추론 시간의 효율성은 OpenAI의 o1에 대한 흥미로운 대안이 됨.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2686&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2687&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;%EC%A0%9C%ED%95%9C%EB%90%9C-%EC%98%88%EC%82%B0%EC%9C%BC%EB%A1%9C-%EC%B6%94%EB%A1%A0-%EB%AA%A8%EB%8D%B8-%EA%B0%9C%EB%B0%9C%ED%95%98%EA%B8%B0&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;2688&quot; data-ke-size=&quot;size26&quot;&gt;제한된 예산으로 추론 모델 개발하기&lt;/h2&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2689&quot; data-ke-size=&quot;size16&quot;&gt;DeepSeek-V3와 같은 오픈 웨이트 기본 모델에서 시작하더라도 DeepSeek-R1 수준의 추론 모델을 개발하는 데는 수십만에서 수백만 달러가 필요할 가능성이 높음. 이는 제한된 예산으로 작업하는 연구자나 엔지니어들에게는 낙담스럽게 느껴질 수 있음.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2690&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;%EC%A2%8B%EC%9D%80-%EC%86%8C%EC%8B%9D%3A-%EC%A6%9D%EB%A5%98%EA%B0%80-%ED%81%B0-%EB%8F%84%EC%9B%80%EC%9D%B4-%EB%90%A8&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;2691&quot; data-ke-size=&quot;size23&quot;&gt;좋은 소식: 증류가 큰 도움이 됨&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2692&quot; data-ke-size=&quot;size16&quot;&gt;다행히도, 모델 증류는 더 비용 효율적인 대안을 제공함. DeepSeek 팀은 DeepSeek-R1보다 상당히 작음에도 불구하고 놀랍도록 강한 추론 성능을 달성하는 R1-증류 모델들로 이를 입증함. 하지만 이 접근법도 완전히 저렴하지는 않음. 그들의 증류 과정은 상당한 컴퓨팅을 요구하는 800K SFT 샘플을 사용함.&lt;br /&gt;흥미롭게도, DeepSeek-R1이 출시되기 불과 며칠 전에, 소규모 팀이 단 17K SFT 샘플만을 사용하여 오픈 웨이트 32B 모델을 훈련시킨 매력적인 프로젝트인 Sky-T1에 대한 글을 발견함. 총 비용은? 단 450달러로, 대부분의 AI 컨퍼런스 등록비보다도 적음.&lt;br /&gt;이 예시는 대규모 훈련이 여전히 비싸지만, 더 작고 타겟팅된 파인튜닝 노력들은 여전히 비용의 일부로 인상적인 결과를 낼 수 있음을 강조함.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1364&quot; data-origin-height=&quot;570&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhI2vW/btsPLij1vju/slEni0umgsKtKEQmCMfOtK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhI2vW/btsPLij1vju/slEni0umgsKtKEQmCMfOtK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhI2vW/btsPLij1vju/slEni0umgsKtKEQmCMfOtK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhI2vW%2FbtsPLij1vju%2FslEni0umgsKtKEQmCMfOtK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1364&quot; height=&quot;570&quot; data-origin-width=&quot;1364&quot; data-origin-height=&quot;570&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2694&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&quot;Sky-T1: Train your own O1 preview model within $450&quot; 글의 그림.&lt;br /&gt;그들의 벤치마크에 따르면, Sky-T1은 낮은 훈련 비용을 고려할 때 인상적인 o1과 대략 동등한 성능을 보임.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2695&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;%EC%98%88%EC%82%B0-%EB%82%B4-%EC%88%9C%EC%88%98-RL%3A-TinyZero&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;2696&quot; data-ke-size=&quot;size23&quot;&gt;예산 내 순수 RL: TinyZero&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2697&quot; data-ke-size=&quot;size16&quot;&gt;Sky-T1이 모델 증류에 초점을 맞춘 반면, &quot;순수 RL&quot; 공간에서도 흥미로운 작업을 발견함. 주목할 만한 예는 DeepSeek-R1-Zero 접근법을 복제하는 3B 파라미터 모델인 TinyZero임 (부수적으로, 훈련 비용이 30달러 미만임).&lt;br /&gt;놀랍게도 단 3B 파라미터에서도 TinyZero는 일부 창발적 자기 검증 능력을 보여주며, 이는 순수 RL을 통해 추론이 나타날 수 있다는 아이디어를, 심지어 작은 모델에서도 지원함.&lt;br /&gt;TinyZero 저장소는 연구 보고서가 아직 작업 중이라고 언급하며, 더 자세한 내용을 확실히 주목하고 있을 것임.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1456&quot; data-origin-height=&quot;869&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bxGuLq/btsPO62U8Zy/W1pARJfe0tJhJjQaM4eV6k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bxGuLq/btsPO62U8Zy/W1pARJfe0tJhJjQaM4eV6k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bxGuLq/btsPO62U8Zy/W1pARJfe0tJhJjQaM4eV6k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbxGuLq%2FbtsPO62U8Zy%2FW1pARJfe0tJhJjQaM4eV6k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1456&quot; height=&quot;869&quot; data-origin-width=&quot;1456&quot; data-origin-height=&quot;869&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2698&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;모델이 자기 검증이 가능함을 보여주는 TinyZero 저장소의 그림. (비교를 위해 기본 모델의 응답을 보는 것이 흥미로웠을 것임.)&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2699&quot; data-ke-size=&quot;size16&quot;&gt;위에서 언급한 두 프로젝트는 제한된 예산으로도 추론 모델에 대한 흥미로운 작업이 가능함을 보여줌. 두 접근법 모두 DeepSeek-R1의 방법들을 복제하는데, 하나는 순수 RL(TinyZero)에, 다른 하나는 순수 SFT(Sky-T1)에 초점을 맞추고 있어, 이러한 아이디어들이 어떻게 더 확장될 수 있는지 탐구하는 것이 매력적일 것임.&lt;br /&gt;논문의 핵심 아이디어는 &quot;지름길 학습&quot;의 대안으로서 **&quot;여정 학습&quot;**임.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2700&quot; data-ke-size=&quot;size16&quot;&gt;지름길 학습은 모델이 올바른 해결 경로만을 사용하여 훈련되는 명령어 파인튜닝의 전통적인 접근법을 의미함.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2701&quot; data-ke-size=&quot;size16&quot;&gt;반면 여정 학습은 잘못된 해결 경로도 포함하여 모델이 실수로부터 학습할 수 있게 함.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2702&quot; data-ke-size=&quot;size16&quot;&gt;이 접근법은 TinyZero의 순수 RL 훈련에서 관찰된 자기 검증 능력과 어느 정도 관련이 있지만, 전적으로 SFT를 통해 모델을 개선하는 데 초점을 맞춤.&lt;span&gt;&amp;nbsp;&lt;/span&gt;모델을 잘못된 추론 경로와 그 수정에 노출시킴으로써, 여정 학습은 또한 자기 수정 능력을 강화할 수 있어, 잠재적으로 추론 모델을 이런 방식으로 더 신뢰할 수 있게 만들 수 있음.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1456&quot; data-origin-height=&quot;707&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ck1tBO/btsPNOn8xaU/6aUBkd1JUjIkDRk1ec17x0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ck1tBO/btsPNOn8xaU/6aUBkd1JUjIkDRk1ec17x0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ck1tBO/btsPNOn8xaU/6aUBkd1JUjIkDRk1ec17x0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fck1tBO%2FbtsPNOn8xaU%2F6aUBkd1JUjIkDRk1ec17x0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1456&quot; height=&quot;707&quot; data-origin-width=&quot;1456&quot; data-origin-height=&quot;707&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2705&quot; data-ke-size=&quot;size16&quot;&gt;전통적인 지름길 학습과 달리 SFT 데이터에 잘못된 해결 경로를 포함하는 여정 학습. O1 Replication Journey: A Strategic Progress Report &amp;ndash; Part 1의 주석이 달린 그림.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2706&quot; data-ke-size=&quot;size16&quot;&gt;이는 특히 RL 기반 접근법이 계산적으로 비실용적일 수 있는 저예산 추론 모델 개발을 위한 흥미로운 미래 작업 방향이 될 수 있음.&lt;br /&gt;어쨌든, 추론 모델 분야에서 현재 많은 흥미로운 작업이 일어나고 있으며, 앞으로 몇 달 안에 더 많은 흥미진진한 작업을 보게 될 것이 확실함!&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2707&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;2708&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2709&quot;&gt;논문은 또한 추론 모델을 프롬프팅하는 방법에 대한 몇 가지 통찰을 포함함:&lt;br /&gt;(1) 제로샷이 퓨샷보다 우수함 - 그들의 광범위한 테스트는 퓨샷 프롬프팅이 전통적인 LLM 모범 사례와 달리 일관되게 모델 성능을 저하시킨다는 것을 밝혀냄.(3) 언어 일관성이 중요함 - 프롬프트 전체에서 동일한 언어를 사용하는 것이 중요한데, 프롬프트에 여러 언어가 포함되어 있을 때 모델이 추론 체인에서 언어를 혼합할 수 있기 때문임.&lt;/li&gt;
&lt;li data-nodeid=&quot;2504&quot;&gt;[원문]&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://magazine.sebastianraschka.com/p/understanding-reasoning-llms&quot;&gt;https://magazine.sebastianraschka.com/p/understanding-reasoning-llms&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;color: #000000;&quot; data-nodeid=&quot;2711&quot;&gt;(2) 직접적인 문제 설명이 승리함 - 모델은 사용자가 단순히 문제를 명시하고 출력 형식을 지정할 때 최고의 성능을 보이며, 복잡한 프롬프팅 패턴을 피함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2506&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2507&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2508&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1 id=&quot;%EC%B6%94%EB%A1%A0-LLM-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0&quot; style=&quot;color: #000000;&quot; data-nodeid=&quot;2509&quot;&gt;추론 LLM 이해하기&lt;/h1&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2510&quot; data-ke-size=&quot;size16&quot;&gt;이 아티클은 추론 모델을 구축하는 네 가지 주요 접근법, 즉 LLM에 추론 능력을 향상시키는 방법에 대해 설명함. 이 글이 가치 있는 통찰을 제공하고 이 주제를 둘러싼 빠르게 발전하는 문헌과 과대광고를 탐색하는 데 도움이 되길 바람.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2511&quot; data-ke-size=&quot;size16&quot;&gt;2024년에 LLM 분야는 점점 더 전문화되는 모습을 보임. 사전 훈련과 파인튜닝을 넘어서, RAG부터 코드 어시스턴트까지 전문화된 애플리케이션의 부상을 목격함. 이 트렌드가 2025년에도 가속화될 것으로 예상되며, 도메인과 애플리케이션 특화 최적화(즉, &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;1272&quot; data-origin-height=&quot;660&quot;&gt;&lt;span data-url=&quot;https://nhnent.dooray.com/wikis/4025164417824588773/files/4126900324915705858&quot; data-phocus=&quot;https://nhnent.dooray.com/wikis/4025164417824588773/files/4126900324915705858&quot;&gt;&lt;img src=&quot;https://nhnent.dooray.com/wikis/4025164417824588773/files/4126900324915705858&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fnhnent.dooray.com%2Fwikis%2F4025164417824588773%2Ffiles%2F4126900324915705858&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1272&quot; height=&quot;660&quot; data-origin-width=&quot;1272&quot; data-origin-height=&quot;660&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2511&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;1-3단계가 LLM 개발의 일반적인 단계들임. 4단계는 특정 사용 사례를 위해 LLM을 전문화함.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2512&quot; data-ke-size=&quot;size16&quot;&gt;추론 모델의 개발은 이러한 전문화 중 하나임. 이는 퍼즐, 고급 수학, 코딩 챌린지와 같이 중간 단계가 있어야 가장 잘 해결되는 복잡한 작업에서 뛰어난 성과를 내도록 LLM을 개선한다는 의미임. 하지만 이 전문화가 다른 LLM 애플리케이션을 대체하는 것은 아님. LLM을 추론 모델로 변환하는 것도 나중에 논의할 특정 단점들을 도입하기 때문임.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2513&quot; data-ke-size=&quot;size16&quot;&gt;아래 내용을 간략히 살펴보면, 이 글에서 다룰 내용들:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222;&quot; data-nodeid=&quot;2514&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-nodeid=&quot;2515&quot;&gt;&quot;추론 모델&quot;의 의미 설명&lt;/li&gt;
&lt;li data-nodeid=&quot;2517&quot;&gt;추론 모델의 장단점 논의&lt;/li&gt;
&lt;li data-nodeid=&quot;2519&quot;&gt;DeepSeek R1 뒤의 방법론 개요&lt;/li&gt;
&lt;li data-nodeid=&quot;2521&quot;&gt;추론 모델을 구축하고 개선하는 네 가지 주요 접근법 설명&lt;/li&gt;
&lt;li data-nodeid=&quot;2523&quot;&gt;DeepSeek V3와 R1 출시 이후 LLM 환경에 대한 생각 공유&lt;/li&gt;
&lt;li data-nodeid=&quot;2525&quot;&gt;제한된 예산으로 추론 모델을 개발하는 팁 제공&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2527&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2528&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2529&quot; data-ke-size=&quot;size16&quot;&gt;AI가 올해 급속한 발전을 계속하는 가운데 이 글이 유용하길 바람!&lt;/p&gt;
&lt;h2 id=&quot;%22%EC%B6%94%EB%A1%A0-%EB%AA%A8%EB%8D%B8%22%EC%9D%84-%EC%96%B4%EB%96%BB%EA%B2%8C-%EC%A0%95%EC%9D%98%ED%95%A0%EA%B9%8C%3F&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;2530&quot; data-ke-size=&quot;size26&quot;&gt;&quot;추론 모델&quot;을 어떻게 정의할까?&lt;/h2&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2531&quot; data-ke-size=&quot;size16&quot;&gt;AI(또는 일반적으로 머신러닝) 분야에서 일한다면, 모호하고 격렬하게 논쟁되는 정의들에 익숙할 것임. &quot;추론 모델&quot;이라는 용어도 예외가 아님. 결국 누군가가 논문에서 공식적으로 정의하고, 다음 논문에서 다시 정의되고, 이런 식으로 계속됨.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2532&quot; data-ke-size=&quot;size16&quot;&gt;이 글에서는 &quot;추론&quot;을 중간 단계가 필요한 복잡하고 다단계 생성을 요구하는 질문에 답하는 과정으로 정의함. 예를 들어, &quot;프랑스의 수도는 무엇인가?&quot;와 같은 사실적 질문 답변은 추론을 포함하지 않음. 반면, &quot;기차가 시속 60마일로 움직이며 3시간 동안 여행한다면, 얼마나 멀리 갈까?&quot;와 같은 질문은 간단한 추론이 필요함. 예를 들어, 답에 도달하기 전에 거리, 속도, 시간 간의 관계를 인식해야 함.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1272&quot; data-origin-height=&quot;732&quot;&gt;&lt;span data-url=&quot;https://nhnent.dooray.com/wikis/4025164417824588773/files/4126900989687975540&quot; data-phocus=&quot;https://nhnent.dooray.com/wikis/4025164417824588773/files/4126900989687975540&quot;&gt;&lt;img src=&quot;https://nhnent.dooray.com/wikis/4025164417824588773/files/4126900989687975540&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fnhnent.dooray.com%2Fwikis%2F4025164417824588773%2Ffiles%2F4126900989687975540&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1272&quot; height=&quot;732&quot; data-origin-width=&quot;1272&quot; data-origin-height=&quot;732&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2532&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;일반적인 LLM은 짧은 답만 제공할 수 있지만(왼쪽에 표시된 것처럼), 추론 모델은 일반적으로 사고 과정의 일부를 드러내는 중간 단계를 포함함. (추론 작업을 위해 특별히 개발되지 않은 많은 LLM들도 답변에서 중간 추론 단계를 제공할 수 있다는 점 참고.)&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2533&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2534&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2535&quot; data-ke-size=&quot;size16&quot;&gt;대부분의 현대 LLM들은 기본적인 추론이 가능하며 &quot;기차가 시속 60마일로 움직이며 3시간 동안 여행한다면, 얼마나 멀리 갈까?&quot;와 같은 질문에 답할 수 있음. 그래서 오늘날 추론 모델이라고 할 때는 일반적으로 퍼즐 해결, 수수께끼, 수학적 증명과 같은 더 복잡한 추론 작업에서 뛰어난 LLM을 의미함.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2536&quot; data-ke-size=&quot;size16&quot;&gt;또한, 오늘날 추론 모델로 브랜딩된 대부분의 LLM들은 응답의 일부로 &quot;사고&quot; 또는 &quot;생각&quot; 과정을 포함함. LLM이 실제로 &quot;생각&quot;하는지와 어떻게 생각하는지는 별개의 논의임.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2537&quot; data-ke-size=&quot;size16&quot;&gt;추론 모델의 중간 단계는 두 가지 방식으로 나타날 수 있음. 첫째, 이전 그림에서 보여진 것처럼 응답에 명시적으로 포함될 수 있음. 둘째, OpenAI의 o1과 같은 일부 추론 LLM은 사용자에게 보여지지 않는 중간 단계를 가진 여러 반복을 실행함.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1456&quot; data-origin-height=&quot;767&quot;&gt;&lt;span data-url=&quot;https://nhnent.dooray.com/wikis/4025164417824588773/files/4126925164832691485&quot; data-phocus=&quot;https://nhnent.dooray.com/wikis/4025164417824588773/files/4126925164832691485&quot;&gt;&lt;img src=&quot;https://nhnent.dooray.com/wikis/4025164417824588773/files/4126925164832691485&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fnhnent.dooray.com%2Fwikis%2F4025164417824588773%2Ffiles%2F4126925164832691485&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1456&quot; height=&quot;767&quot; data-origin-width=&quot;1456&quot; data-origin-height=&quot;767&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2537&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&quot;추론&quot;은 두 가지 다른 수준에서 사용됨: 1) 입력을 처리하고 여러 중간 단계를 통해 생성하는 것과 2) 사용자에게 응답의 일부로 어떤 종류의 추론을 제공하는 것.&lt;/p&gt;
&lt;h2 id=&quot;%EC%96%B8%EC%A0%9C-%EC%B6%94%EB%A1%A0-%EB%AA%A8%EB%8D%B8%EC%9D%84-%EC%82%AC%EC%9A%A9%ED%95%B4%EC%95%BC-%ED%95%A0%EA%B9%8C%3F&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;2538&quot; data-ke-size=&quot;size26&quot;&gt;언제 추론 모델을 사용해야 할까?&lt;/h2&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2539&quot; data-ke-size=&quot;size16&quot;&gt;추론 모델을 정의했으니, 이제 더 흥미로운 부분으로 넘어갈 수 있음: 추론 작업을 위해 LLM을 구축하고 개선하는 방법. 하지만 기술적 세부사항에 들어가기 전에, 추론 모델이 실제로 언제 필요한지 고려하는 것이 중요함.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2540&quot; data-ke-size=&quot;size16&quot;&gt;언제 추론 모델이 필요할까? 추론 모델은 퍼즐 해결, 고급 수학 문제, 도전적인 코딩 작업과 같은 복잡한 작업에 좋도록 설계됨. 하지만 요약, 번역, 또는 지식 기반 질문 답변과 같은 간단한 작업에는 필요하지 않음. 실제로 모든 것에 추론 모델을 사용하는 것은 비효율적이고 비쌀 수 있음. 예를 들어, 추론 모델은 일반적으로 사용하기 더 비싸고, 더 장황하며, &quot;과도한 사고&quot; 때문에 때때로 오류에 더 취약함. 여기서도 간단한 규칙이 적용됨: 작업에 적합한 도구(또는 LLM의 유형)를 사용하라.&lt;br /&gt;추론 모델의 주요 강점과 제한사항이 아래 그림에 요약되어 있음.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1352&quot; data-origin-height=&quot;524&quot;&gt;&lt;span data-url=&quot;https://nhnent.dooray.com/wikis/4025164417824588773/files/4126925402158083645&quot; data-phocus=&quot;https://nhnent.dooray.com/wikis/4025164417824588773/files/4126925402158083645&quot;&gt;&lt;img src=&quot;https://nhnent.dooray.com/wikis/4025164417824588773/files/4126925402158083645&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fnhnent.dooray.com%2Fwikis%2F4025164417824588773%2Ffiles%2F4126925402158083645&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1352&quot; height=&quot;524&quot; data-origin-width=&quot;1352&quot; data-origin-height=&quot;524&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2541&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;추론 모델의 주요 강점과 약점.&lt;/p&gt;
&lt;h2 id=&quot;DeepSeek-%ED%9B%88%EB%A0%A8-%ED%8C%8C%EC%9D%B4%ED%94%84%EB%9D%BC%EC%9D%B8-%EA%B0%84%EB%9E%B5%ED%9E%88-%EC%82%B4%ED%8E%B4%EB%B3%B4%EA%B8%B0&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;2542&quot; data-ke-size=&quot;size26&quot;&gt;DeepSeek 훈련 파이프라인 간략히 살펴보기&lt;/h2&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2543&quot; data-ke-size=&quot;size16&quot;&gt;다음 섹션에서 추론 모델을 구축하고 개선하는 네 가지 주요 접근법을 논의하기 전에, DeepSeek R1 기술 보고서에 설명된 DeepSeek R1 파이프라인을 간략히 설명하고 싶음. 이 보고서는 흥미로운 사례 연구이자 추론 LLM 개발을 위한 청사진 역할을 함.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2544&quot; data-ke-size=&quot;size16&quot;&gt;DeepSeek은 단일 R1 추론 모델을 출시한 것이 아니라 세 가지 서로 다른 변형을 도입했음: DeepSeek-R1-Zero, DeepSeek-R1, DeepSeek-R1-Distill.&lt;br /&gt;기술 보고서의 설명을 바탕으로, 아래 다이어그램에서 이러한 모델들의 개발 과정을 요약함.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1456&quot; data-origin-height=&quot;1101&quot;&gt;&lt;span data-url=&quot;https://nhnent.dooray.com/wikis/4025164417824588773/files/4126927089445692468&quot; data-phocus=&quot;https://nhnent.dooray.com/wikis/4025164417824588773/files/4126927089445692468&quot;&gt;&lt;img src=&quot;https://nhnent.dooray.com/wikis/4025164417824588773/files/4126927089445692468&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fnhnent.dooray.com%2Fwikis%2F4025164417824588773%2Ffiles%2F4126927089445692468&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1456&quot; height=&quot;1101&quot; data-origin-width=&quot;1456&quot; data-origin-height=&quot;1101&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2544&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;DeepSeek R1 기술 보고서에서 논의된 DeepSeek의 세 가지 다른 추론 모델의 개발 과정.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2545&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2546&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2547&quot; data-ke-size=&quot;size16&quot;&gt;다음으로, 위 다이어그램에 표시된 과정을 간략히 살펴보겠음. 더 자세한 내용은 추론 모델을 구축하고 개선하는 네 가지 주요 접근법을 논의하는 다음 섹션에서 다룰 예정임.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2548&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;(1) DeepSeek-R1-Zero&lt;/b&gt;: 이 모델은 2024년 12월에 출시된 671B 사전 훈련된 DeepSeek-V3 기본 모델을 기반으로 함. 연구팀은&lt;span&gt;&amp;nbsp;&lt;/span&gt;두 가지 유형의 보상을 사용하여 강화학습(RL)으로 훈련시킴. 이 접근법은 일반적으로 인간 피드백을 통한 강화학습(RLHF)의 일부인&lt;span&gt;&amp;nbsp;&lt;/span&gt;지도 파인튜닝(SFT) 단계를 포함하지 않았기 때문에 &quot;콜드 스타트&quot; 훈련이라고 불림.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2549&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;(2) DeepSeek-R1&lt;/b&gt;: 이것은 DeepSeek-R1-Zero를 기반으로 구축된 DeepSeek의 플래그십 추론 모델임. 팀은&lt;span&gt;&amp;nbsp;&lt;/span&gt;추가적인 SFT 단계와 추가 RL 훈련으로 더욱 개선하여, &quot;콜드 스타트&quot;된 R1-Zero 모델을 향상시킴.&lt;br /&gt;&lt;b&gt;(3) DeepSeek-R1-Distill:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;이전 단계에서 생성된 SFT 데이터를 사용하여, DeepSeek 팀은 Qwen과 Llama 모델을 파인튜닝하여 추론 능력을 향상시킴. 전통적인 의미의 증류는 아니지만,&lt;span&gt;&amp;nbsp;&lt;/span&gt;이 과정은 더 큰 DeepSeek-R1 671B 모델의 출력으로 더 작은 모델들(Llama 8B와 70B, Qwen 1.5B-30B)을 훈련시키는 것을 포함함.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2550&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;%EC%B6%94%EB%A1%A0-%EB%AA%A8%EB%8D%B8%EC%9D%84-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B3%A0-%EA%B0%9C%EC%84%A0%ED%95%98%EB%8A%94-4%EA%B0%80%EC%A7%80-%EC%A3%BC%EC%9A%94-%EB%B0%A9%EB%B2%95&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;2551&quot; data-ke-size=&quot;size26&quot;&gt;추론 모델을 구축하고 개선하는 4가지 주요 방법&lt;/h2&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2552&quot; data-ke-size=&quot;size16&quot;&gt;이 섹션에서는 LLM의 추론 능력을 향상시키고 DeepSeek-R1, OpenAI의 o1 &amp;amp; o3와 같은 전문화된 추론 모델을 구축하는 데 현재 사용되는 핵심 기술들을 개괄할 것임.&lt;br /&gt;참고: o1과 o3의 정확한 작동 방식은 OpenAI 외부에서는 알려지지 않음. 하지만 추론과 훈련 기법의 조합을 활용한다는 소문이 있음.&lt;/p&gt;
&lt;h3 id=&quot;1)-%EC%B6%94%EB%A1%A0-%EC%8B%9C%EA%B0%84-%EC%8A%A4%EC%BC%80%EC%9D%BC%EB%A7%81&quot; style=&quot;color: #333333;&quot; data-nodeid=&quot;2553&quot; data-ke-size=&quot;size23&quot;&gt;1) 추론 시간 스케일링&lt;/h3&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2554&quot; data-ke-size=&quot;size16&quot;&gt;LLM의 추론 능력(또는 일반적으로 모든 능력)을 향상시키는 한 가지 방법은 추론 시간 스케일링임. 이 용어는 여러 의미를 가질 수 있지만, 이 맥락에서는 추론 중에 계산 자원을 늘려 출력 품질을 향상시키는 것을 의미함.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2555&quot; data-ke-size=&quot;size16&quot;&gt;대략적인 비유로, 인간들이 복잡한 문제를 생각할 시간을 더 많이 받으면 더 나은 응답을 생성하는 경향이 있음. 마찬가지로, LLM이 답을 생성하는 동안 더 &quot;생각&quot;하도록 격려하는 기법들을 적용할 수 있음. (물론 LLM이 실제로 &quot;생각&quot;하는지는 다른 논의임.)&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2556&quot; data-ke-size=&quot;size16&quot;&gt;추론 시간 스케일링의 한 가지 직접적인 접근법은 영리한 프롬프트 엔지니어링임. 전형적인 예는 연쇄 사고(CoT) 프롬프팅으로, 입력 프롬프트에 &quot;단계별로 생각해보세요&quot;와 같은 구문을 포함함. 이는 모델이 최종 답으로 직접 뛰어넘기보다는 중간 추론 단계를 생성하도록 격려하며, 이는 종종(항상은 아니지만) 더 복잡한 문제에서 더 정확한 결과로 이어질 수 있음. (&quot;프랑스의 수도는 무엇인가?&quot;와 같은 간단한 지식 기반 질문에는 이 전략을 사용하는 것이 의미가 없다는 점 참고. 이는 다시 주어진 입력 쿼리에서 추론 모델이 의미가 있는지 알아내는 좋은 경험칙임.)&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2557&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2558&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1456&quot; data-origin-height=&quot;381&quot;&gt;&lt;span data-url=&quot;https://nhnent.dooray.com/wikis/4025164417824588773/files/4126934501598291785&quot; data-phocus=&quot;https://nhnent.dooray.com/wikis/4025164417824588773/files/4126934501598291785&quot;&gt;&lt;img src=&quot;https://nhnent.dooray.com/wikis/4025164417824588773/files/4126934501598291785&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fnhnent.dooray.com%2Fwikis%2F4025164417824588773%2Ffiles%2F4126934501598291785&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1456&quot; height=&quot;381&quot; data-origin-width=&quot;1456&quot; data-origin-height=&quot;381&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2559&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;2022년 Large Language Models are Zero-Shot Reasoners 논문의 고전적인 CoT 프롬프팅 예시.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2560&quot; data-ke-size=&quot;size16&quot;&gt;앞서 언급한 CoT 접근법은 더 많은 출력 토큰을 생성하여 추론을 더 비싸게 만들기 때문에 추론 시간 스케일링으로 볼 수 있음.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2561&quot; data-ke-size=&quot;size16&quot;&gt;추론 시간 스케일링의 또 다른 접근법은 투표와 검색 전략의 사용임. 간단한 예는 다수결 투표로, LLM이 여러 답을 생성하게 하고 다수결 투표로 올바른 답을 선택함. 마찬가지로, 빔 서치와 다른 검색 알고리즘을 사용하여 더 나은 응답을 생성할 수 있음.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1456&quot; data-origin-height=&quot;836&quot;&gt;&lt;span data-url=&quot;https://nhnent.dooray.com/wikis/4025164417824588773/files/4126935028137958436&quot; data-phocus=&quot;https://nhnent.dooray.com/wikis/4025164417824588773/files/4126935028137958436&quot;&gt;&lt;img src=&quot;https://nhnent.dooray.com/wikis/4025164417824588773/files/4126935028137958436&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fnhnent.dooray.com%2Fwikis%2F4025164417824588773%2Ffiles%2F4126935028137958436&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1456&quot; height=&quot;836&quot; data-origin-width=&quot;1456&quot; data-origin-height=&quot;836&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2562&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;다양한 검색 기반 방법들은 최고의 답을 선택하기 위해 프로세스 보상 기반 모델에 의존함. LLM Test-Time Compute 논문의 주석이 달린 그림.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2563&quot; data-ke-size=&quot;size16&quot;&gt;DeepSeek R1 기술 보고서는 일반적인 추론 시간 스케일링 방법들(프로세스 보상 모델 기반 및 몬테카를로 트리 검색 기반 접근법 등)을 &quot;실패한 시도들&quot; 아래로 분류함. 이는 DeepSeek이 V3 기본 모델에 비해 암시적인 추론 시간 스케일링 형태 역할을 하는 더 긴 응답을 생성하는 R1 모델의 자연스러운 경향을 넘어서는 이러한 기법들을 명시적으로 사용하지 않았음을 시사함.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2564&quot; data-ke-size=&quot;size16&quot;&gt;하지만 명시적인 추론 시간 스케일링은 종종 LLM 자체 내에서가 아니라 애플리케이션 계층에서 구현되므로, DeepSeek도 여전히 앱 내에서 그러한 기법들을 적용할 수 있음.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-nodeid=&quot;2565&quot; data-ke-size=&quot;size16&quot;&gt;OpenAI의 o1과 o3 모델이 추론 시간 스케일링을 사용한다고 의심하며, 이는 GPT-4o와 같은 모델에 비해 상대적으로 비싼 이유를 설명할 것임. 추론 시간 스케일링에 더해, o1과 o3는 아마도 D&lt;/p&gt;</description>
      <category>AI/NLP</category>
      <author>땽뚕</author>
      <guid isPermaLink="true">https://asidefine.tistory.com/359</guid>
      <comments>https://asidefine.tistory.com/359#entry359comment</comments>
      <pubDate>Sun, 10 Aug 2025 10:47:11 +0900</pubDate>
    </item>
    <item>
      <title>MoE (Mixture of Experts) 알아보기 2 - 최신 MoE 기반의 LLM들</title>
      <link>https://asidefine.tistory.com/358</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;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;MoE&amp;nbsp;(Mixture&amp;nbsp;of&amp;nbsp;Experts)&amp;nbsp;알아보기&amp;nbsp;2&amp;nbsp;-&amp;nbsp;최신&amp;nbsp;MoE&amp;nbsp;기반의&amp;nbsp;LLM들&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;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-end=&quot;102&quot; data-start=&quot;62&quot; data-ke-style=&quot;style2&quot;&gt;DeepSeek-V2: 대규모 MoE 기반 LLM의 효율적 확장&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;DeepSeek-V2는 DeepSeek-AI에서 공개한 Mixture-of-Experts(MoE) 구조의 대규모 언어 모델
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;2360억개의 파라미터 중 210억개만 토큰마다 활성화&lt;/b&gt;되는 &lt;b&gt;스파스(sparse) LLM&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;모델 아키텍처 핵심은 두 가지 혁신으로 요약&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;1) MLA (Multi-Head Latent Attention) &amp;ndash; 키/밸류(KV) 캐시를 저차원 잠재 벡터로 압축하여 긴 문맥 추론 시 메모리와 속도 병목을 제거&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;&lt;b&gt;(2) DeepSeekMoE&lt;/b&gt; &amp;ndash; &lt;b&gt;피드포워드 층을 전부 MoE 레이어로 대체&lt;/b&gt;하여 훈련 비용을 낮추면서 높은 표현력을 확보한&amp;nbsp; 점&amp;nbsp;&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;&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;1139&quot; data-origin-height=&quot;918&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b0bltw/btsPBj9ZrI0/CECuI3PdI0m5XkKwQrfhi0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b0bltw/btsPBj9ZrI0/CECuI3PdI0m5XkKwQrfhi0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b0bltw/btsPBj9ZrI0/CECuI3PdI0m5XkKwQrfhi0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb0bltw%2FbtsPBj9ZrI0%2FCECuI3PdI0m5XkKwQrfhi0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1139&quot; height=&quot;918&quot; data-origin-width=&quot;1139&quot; data-origin-height=&quot;918&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;DeepSeekMoE&lt;/b&gt;&lt;/b&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;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;FFN 대신 도입된 MoE 층에서는 각 층마다 64개의 전문가(Expert)가 존재하며 이 중&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;상위 6개 전문가만 토큰당 활성화&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;&lt;b&gt;또한&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;2개의 공유 전문가&lt;/b&gt;를 별도로 두어 모든 토큰에 항상 적용되도록 함으로써, 공통 상식이나 일반 지식을 담당하게 설계&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Expert Choice (EC) 알고리즘&lt;/b&gt;으로 불리는 기법을 사용&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&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;Expert Collapse를 방지하기 위해, &lt;b&gt;토큰을 다양한 전문가에 고르게 분배하도록 하는 보조 손실&lt;/b&gt;을 훈련에 도입&lt;/li&gt;
&lt;/ul&gt;
&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;1400&quot; data-origin-height=&quot;457&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/baReNd/btsPBlfHUvz/P24KZHcLoSd3IeYfhSbtH1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/baReNd/btsPBlfHUvz/P24KZHcLoSd3IeYfhSbtH1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/baReNd/btsPBlfHUvz/P24KZHcLoSd3IeYfhSbtH1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbaReNd%2FbtsPBlfHUvz%2FP24KZHcLoSd3IeYfhSbtH1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;735&quot; height=&quot;240&quot; data-origin-width=&quot;1400&quot; data-origin-height=&quot;457&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://likejazz.com/deepseek-v3/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://likejazz.com/deepseek-v3/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1754176808161&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;DeepSeek V3 MoE 구조 리뷰 &amp;middot; likejazz.com&quot; data-og-description=&quot;HOME &amp;raquo; ARTICLES &amp;raquo; DeepSeek V3 MoE 구조 리뷰 DeepSeek V3 MoE 구조 리뷰 01 Apr 2025 딥시크 (DeepSeek) V3의 모델을 리뷰하고, 특히 MoE 구조 중심으로 정리한다. Apr 1, 2025 참고 DeepSeek V3 계열의 모델링 코드는 다음&quot; data-og-host=&quot;likejazz.com&quot; data-og-source-url=&quot;https://likejazz.com/deepseek-v3/&quot; data-og-url=&quot;https://likejazz.com/deepseek-v3/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bG5E52/hyZuGzS62k/4F8rW8JaanNSkgy1V2N4w1/img.png?width=792&amp;amp;height=772&amp;amp;face=0_0_792_772&quot;&gt;&lt;a href=&quot;https://likejazz.com/deepseek-v3/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://likejazz.com/deepseek-v3/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bG5E52/hyZuGzS62k/4F8rW8JaanNSkgy1V2N4w1/img.png?width=792&amp;amp;height=772&amp;amp;face=0_0_792_772');&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;DeepSeek V3 MoE 구조 리뷰 &amp;middot; likejazz.com&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;HOME &amp;raquo; ARTICLES &amp;raquo; DeepSeek V3 MoE 구조 리뷰 DeepSeek V3 MoE 구조 리뷰 01 Apr 2025 딥시크 (DeepSeek) V3의 모델을 리뷰하고, 특히 MoE 구조 중심으로 정리한다. Apr 1, 2025 참고 DeepSeek V3 계열의 모델링 코드는 다음&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;likejazz.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;color: #666666; text-align: left;&quot; data-ke-style=&quot;style2&quot;&gt;Kimi-K2: Moonshot AI의 1조 파라미터 에이전트형 LLM&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;2025년 Moonshot AI에서 발표한 초거대 혼합전문가 MoE 언어모델로, 총 1조 파라미터 중 320억만 활성화
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;극단적 sparsity (3.2% 사용) : DeepSeek-V2가 약 9%를 활성화했던 것과 비교하면 Kimi-K2는 &lt;b&gt;약 3.2%만 사용&lt;/b&gt;하는 셈&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Kimi-K2의 기본 아키텍처를 살펴보면, &lt;b&gt;Layer 61개 중 단 1개만 밀집 FFN이고 나머지를 MoE로 구성&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;각 MoE 층에는 &lt;b&gt;384개의 전문가&lt;/b&gt;가 있으며 이 중 &lt;b&gt;8개를 토큰당 선택&lt;/b&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;또한&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;각 층마다 1개의 공유 전문가&lt;/b&gt;를 두어 DeepSeek과 유사하게 공통 지식을 담당&lt;/b&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;로드 밸런싱 최적화&lt;/b&gt;를 통해 &lt;b&gt;특정 전문가의 독점 현상을 방지&lt;/b&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;&lt;b&gt;&lt;b&gt;&lt;b&gt;1조 파라미터 모델에서 3%만 쓰이는 극단적인 sparsity에도 불구하고, **특수한 최적화 기법(MuonClip 옵티마이저 등)**으로 훈련 불안정성을 억제하여 &lt;b&gt;전문가들의 고른 활용&amp;nbsp;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://likejazz.com/llm-comparison/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://likejazz.com/llm-comparison/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1754176814880&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;LLM 아키텍처 비교 &amp;middot; likejazz.com&quot; data-og-description=&quot;HOME &amp;raquo; ARTICLES &amp;raquo; LLM 아키텍처 비교 LLM 아키텍처 비교 01 Aug 2025 Aug 1, 2025 개요 그간 LLM 아키텍처에 대해 좋은 글을 많이 올려주던 세바스찬 라슈카가 이번에 본인의 서브스택에 유명 LLM 아키텍처 설&quot; data-og-host=&quot;likejazz.com&quot; data-og-source-url=&quot;https://likejazz.com/llm-comparison/&quot; data-og-url=&quot;https://likejazz.com/llm-comparison/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/jX0eW/hyZqXXA2TN/monzH9eIOY2JrZqFJ6zJj1/img.png?width=792&amp;amp;height=772&amp;amp;face=0_0_792_772&quot;&gt;&lt;a href=&quot;https://likejazz.com/llm-comparison/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://likejazz.com/llm-comparison/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/jX0eW/hyZqXXA2TN/monzH9eIOY2JrZqFJ6zJj1/img.png?width=792&amp;amp;height=772&amp;amp;face=0_0_792_772');&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;LLM 아키텍처 비교 &amp;middot; likejazz.com&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;HOME &amp;raquo; ARTICLES &amp;raquo; LLM 아키텍처 비교 LLM 아키텍처 비교 01 Aug 2025 Aug 1, 2025 개요 그간 LLM 아키텍처에 대해 좋은 글을 많이 올려주던 세바스찬 라슈카가 이번에 본인의 서브스택에 유명 LLM 아키텍처 설&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;likejazz.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;Mixture-of-Recursions (MoR)&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;2025년 KAIST&amp;middot;Mila&amp;middot;Google 연구진이 제안한 &lt;b&gt;새로운 LLM 아키텍처 패러다임&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기존에는 파라미터 효율화를 위해 층 재활용 기법(예: ALBERT의 레이어 타이ying 등)이나, 계산 효율화를 위해 토큰별 조기 종료(early exiting) 등이 각각 연구돼왔지만, 두 측면을 단일 프레임워크에서 통합한 사례 거의 없었음&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;MoR은 이를 위해 Recursive Transformer 도입 &lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;고정된 한 세트의 Transformer 레이어들을 여러 번 반복 적용하여 깊이를 증가시키되, 각 토큰마다 몇 번의 재귀를 거칠지를 경량 라우터가 동적으로 결정&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;쉽게 말해, 어떤 쉬운 토큰은 적은 단계만 처리하고 바로 종료하는 반면, 어려운 토큰은 같은 층셋을 여러 번 통과하며 더 깊은 표현을 얻도록 &lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;**토큰별 가변 처리(depth-adaptive)**는 MoE의 &amp;ldquo;전문가 선택&amp;rdquo; 개념을 *&amp;ldquo;계산 횟수 선택&amp;rdquo;*으로 확장한 것으로 볼 수 있음&amp;nbsp;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;MoE에서는 여러 병렬 전문가 중 일부를 선택했다면, MoR에서는 하나의 공유 전문가(레이어 스택)를 몇 번 반복할지를 토큰별로 조절&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;따라서 모델 파라미터 수는 공유로 억제되면서도, 토큰마다 필요한만큼 연산을 할당하여 효율을 극대화&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;MoR 구조에서 라우팅 메커니즘은 다음과 같음&amp;nbsp;&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;입력 토큰들이 최초 재귀 1단계를 모두 거친 뒤, 경량 라우터가 각 토큰의 상태를 평가하여 &amp;ldquo;추가 연산이 필요한지&amp;rdquo; 여부를 결정&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;추가 연산이 필요하다고 판단된 토큰들만 재귀 2단계(같은 레이어 세트를 다시 적용)에 투입되고, 그렇지 않은 토큰들은 일찍 종료되어 더 이상 처리하지 않음&amp;nbsp;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;이 과정을 최대 N번 반복하며 (토큰마다 다를 수 있음), 각 재귀 단계마다 남은 토큰끼리만 Self-Attention을 수행함&amp;nbsp;&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;이때 주목할 점은, 재귀 단계가 깊어질수록 토큰 수가 감소하므로 쿼드러틱 자원 소모의 어텐션 연산량이 자동으로 경감된다는 것&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;또한 각 단계에서 해당 단계까지 남은 토큰들의 KV 캐시만 유지하면 되므로, 메모리 사용도 효율적으로 관리&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;연구진은 추가로, KV Sharing이라는 변형을 제안하여 첫 재귀 단계의 KV를 이후 단계들이 재활용하도록 함으로써 초기 프리필(prefill) 지연 시간을 크게 줄이는 방법도 소개&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;MoR의 이러한 설계는 파라미터 재활용(parameter sharing)과 동적 계산 할당(adaptive compute)을 완벽히 결합한 것으로, *사실상 &amp;ldquo;필요할 때만 깊어지는 Transformer&amp;rdquo;*를 구현한 셈&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;Ref.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://huggingface.co/deepseek-ai/DeepSeek-V2#8-license#:~:text=DeepSeek,economical%20training%20and%20efficient%20inference%EF%BC%9A&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://huggingface.co/deepseek-ai/DeepSeek-V2#8-license#:~:text=DeepSeek,economical%20training%20and%20efficient%20inference%EF%BC%9A&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1753582415009&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;deepseek-ai/DeepSeek-V2 &amp;middot; Hugging Face&quot; data-og-description=&quot;Model Download | Evaluation Results | Model Architecture | API Platform | License | Citation Paper Link ️ DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model 1. Introduction Today, we&amp;rsquo;re introducing DeepSeek-V2, a stro&quot; data-og-host=&quot;huggingface.co&quot; data-og-source-url=&quot;https://huggingface.co/deepseek-ai/DeepSeek-V2#8-license#:~:text=DeepSeek,economical%20training%20and%20efficient%20inference%EF%BC%9A&quot; data-og-url=&quot;https://huggingface.co/deepseek-ai/DeepSeek-V2&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bXLJvM/hyZq0SWGbC/3Fu75SdtGbu33S0ebN2S4K/img.png?width=1200&amp;amp;height=648&amp;amp;face=0_0_1200_648,https://scrap.kakaocdn.net/dn/rrp1u/hyZnjfynJ6/2r0yWGwOhcZlG06rQKbrP1/img.png?width=1200&amp;amp;height=648&amp;amp;face=0_0_1200_648&quot;&gt;&lt;a href=&quot;https://huggingface.co/deepseek-ai/DeepSeek-V2#8-license#:~:text=DeepSeek,economical%20training%20and%20efficient%20inference%EF%BC%9A&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://huggingface.co/deepseek-ai/DeepSeek-V2#8-license#:~:text=DeepSeek,economical%20training%20and%20efficient%20inference%EF%BC%9A&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bXLJvM/hyZq0SWGbC/3Fu75SdtGbu33S0ebN2S4K/img.png?width=1200&amp;amp;height=648&amp;amp;face=0_0_1200_648,https://scrap.kakaocdn.net/dn/rrp1u/hyZnjfynJ6/2r0yWGwOhcZlG06rQKbrP1/img.png?width=1200&amp;amp;height=648&amp;amp;face=0_0_1200_648');&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;deepseek-ai/DeepSeek-V2 &amp;middot; Hugging Face&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Model Download | Evaluation Results | Model Architecture | API Platform | License | Citation Paper Link ️ DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model 1. Introduction Today, we&amp;rsquo;re introducing DeepSeek-V2, a stro&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;huggingface.co&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://medium.com/@niejam/deep-dive-into-moe-routing-in-deepseek-1fa6f4777097&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://medium.com/@niejam/deep-dive-into-moe-routing-in-deepseek-1fa6f4777097&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1753582789999&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;Deep Dive into MoE Routing in DeepSeek&quot; data-og-description=&quot;Editor: KNB&quot; data-og-host=&quot;medium.com&quot; data-og-source-url=&quot;https://medium.com/@niejam/deep-dive-into-moe-routing-in-deepseek-1fa6f4777097&quot; data-og-url=&quot;https://medium.com/@niejam/deep-dive-into-moe-routing-in-deepseek-1fa6f4777097&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/zeFDJ/hyZqZT1Plg/8kSnargC1d5WbPeug7KQ30/img.jpg?width=1024&amp;amp;height=1024&amp;amp;face=0_0_1024_1024&quot;&gt;&lt;a href=&quot;https://medium.com/@niejam/deep-dive-into-moe-routing-in-deepseek-1fa6f4777097&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://medium.com/@niejam/deep-dive-into-moe-routing-in-deepseek-1fa6f4777097&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/zeFDJ/hyZqZT1Plg/8kSnargC1d5WbPeug7KQ30/img.jpg?width=1024&amp;amp;height=1024&amp;amp;face=0_0_1024_1024');&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 Dive into MoE Routing in DeepSeek&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Editor: KNB&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;medium.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/MoonshotAI/Kimi-K2&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/MoonshotAI/Kimi-K2&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1753583251012&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - MoonshotAI/Kimi-K2: Kimi K2 is the large language model series developed by Moonshot AI team&quot; data-og-description=&quot;Kimi K2 is the large language model series developed by Moonshot AI team - MoonshotAI/Kimi-K2&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/MoonshotAI/Kimi-K2&quot; data-og-url=&quot;https://github.com/MoonshotAI/Kimi-K2&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/c5xNgK/hyZrnHfrAM/XZ3wfQagVuqxn2OGFvI0dk/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/eTYb0/hyZnmi3YR8/RY6edw1A1SQuiEECjq6FsK/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/MoonshotAI/Kimi-K2&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/MoonshotAI/Kimi-K2&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/c5xNgK/hyZrnHfrAM/XZ3wfQagVuqxn2OGFvI0dk/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/eTYb0/hyZnmi3YR8/RY6edw1A1SQuiEECjq6FsK/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;GitHub - MoonshotAI/Kimi-K2: Kimi K2 is the large language model series developed by Moonshot AI team&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Kimi K2 is the large language model series developed by Moonshot AI team - MoonshotAI/Kimi-K2&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://arxiv.org/abs/2507.10524#:~:text=simultaneously.%20We%20introduce%20Mixture,KV%20pairs%20from%20the%20first&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://arxiv.org/abs/2507.10524#:~:text=simultaneously.%20We%20introduce%20Mixture,KV%20pairs%20from%20the%20first&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1753583678842&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;Mixture-of-Recursions: Learning Dynamic Recursive Depths for Adaptive Token-Level Computation&quot; data-og-description=&quot;Scaling language models unlocks impressive capabilities, but the accompanying computational and memory demands make both training and deployment expensive. Existing efficiency efforts typically target either parameter sharing or adaptive computation, leavi&quot; data-og-host=&quot;arxiv.org&quot; data-og-source-url=&quot;https://arxiv.org/abs/2507.10524#:~:text=simultaneously.%20We%20introduce%20Mixture,KV%20pairs%20from%20the%20first&quot; data-og-url=&quot;https://arxiv.org/abs/2507.10524v2&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dl4Q19/hyZqVYpmCd/fP81SiJuBUwJJie6n5wSDk/img.png?width=1200&amp;amp;height=700&amp;amp;face=0_0_1200_700,https://scrap.kakaocdn.net/dn/bjm5CC/hyZnb2Tce7/THjkMM2r0QF2jxDDvqRQb1/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/2507.10524#:~:text=simultaneously.%20We%20introduce%20Mixture,KV%20pairs%20from%20the%20first&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://arxiv.org/abs/2507.10524#:~:text=simultaneously.%20We%20introduce%20Mixture,KV%20pairs%20from%20the%20first&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dl4Q19/hyZqVYpmCd/fP81SiJuBUwJJie6n5wSDk/img.png?width=1200&amp;amp;height=700&amp;amp;face=0_0_1200_700,https://scrap.kakaocdn.net/dn/bjm5CC/hyZnb2Tce7/THjkMM2r0QF2jxDDvqRQb1/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;Mixture-of-Recursions: Learning Dynamic Recursive Depths for Adaptive Token-Level Computation&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Scaling language models unlocks impressive capabilities, but the accompanying computational and memory demands make both training and deployment expensive. Existing efficiency efforts typically target either parameter sharing or adaptive computation, leavi&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;</description>
      <category>AI/NLP</category>
      <category>AI</category>
      <category>deepseek</category>
      <category>Kimi-K2</category>
      <category>LLM</category>
      <category>Mixture of Experts</category>
      <category>Moe</category>
      <category>NLP</category>
      <author>땽뚕</author>
      <guid isPermaLink="true">https://asidefine.tistory.com/358</guid>
      <comments>https://asidefine.tistory.com/358#entry358comment</comments>
      <pubDate>Sat, 26 Jul 2025 21:24:07 +0900</pubDate>
    </item>
  </channel>
</rss>