<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Stacking Intelligence</title>
    <link>https://gwlim3012.tistory.com/</link>
    <description>공부한 내용 정리, 기록용 블로그</description>
    <language>ko</language>
    <pubDate>Tue, 12 May 2026 14:43:58 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>gwlim3012</managingEditor>
    <item>
      <title>삼성전자 DS 2026년 대학생 인턴 직무적합성평가 &amp;amp; SW역량테스트 후기</title>
      <link>https://gwlim3012.tistory.com/46</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;서류 지원&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4학년 1학기, 바쁜 일상을 보내던 중 삼성전자 대학생 인턴 모집 공고를 발견했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마감 일주일 전에 공고를 봤지만 대학생 신분일 때만 도전해볼 수 있는 기회라는 생각에 한번 해보자 하는 마음으로 지원했고, 운 좋게 서류 합격까지 하게 되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1143&quot; data-origin-height=&quot;457&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Yryi9/dJMcacQgev3/mAXeC00xQQsUE2dmlFv9XK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Yryi9/dJMcacQgev3/mAXeC00xQQsUE2dmlFv9XK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Yryi9/dJMcacQgev3/mAXeC00xQQsUE2dmlFv9XK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYryi9%2FdJMcacQgev3%2FmAXeC00xQQsUE2dmlFv9XK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;753&quot; height=&quot;301&quot; data-origin-width=&quot;1143&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;평소 인공지능을 주전공으로, 반도체를 부전공으로 공부하고 있었기에 반도체 팹에서의 데이터 분석과 edge AI 기반의 공정 최적화에 관심이 많았다. 직무기술서를 꼼꼼히 살펴보면서 나에게 가장 핏이 맞을 것 같은 직무를 골라 지원했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자기소개서에는 나의 가치관을 진솔하게 담으려 노력했다. 예시로 나는 인공지능 전공이지만, '인공지능 알고리즘 연구와 응용은 다르고, 엔지니어는 응용을 하는 사람이다'라는 확고한 가치관이 있기 때문에 그 부분을 자연스럽게 녹여내려 노력했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인공지능 모델이 반도체 팹과 같은 실제 산업 시스템에서 사용되려면, 시스템 안의 하나의 부품처럼 신뢰성 있게 잘 맞물려 동작해야 한다는 생각을 했고, 2번과 4번 문항에서 이 관점을 내가 직접 해온 경험들과 엮어서 풀어냈다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;코딩 테스트 (SW역량검사)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;솔직히 나는 평소에 백준이나 프로그래머스 같은 알고리즘 문제를 거의 안 풀었다. 내 알고리즘 지식은 학교에서 들은 알고리즘 수업이 전부였다. 알고리즘은 뭔가 재미가 없어서 AI 해커톤이나 프로젝트만 많이 하고 손이 안갔는데, 뒤늦게 중요성을 체감하고 백준을 풀어보니 내 실력은 대충 실버 4~3 정도로 처참했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;코테까지 2주도 안 남은 시점이었지만, 앞으로 삼성전자 뿐만 아니라 다른 기업을 지원할 때에도 코딩테스트를 공부해두면 좋을 것 이기에 이참에 제대로 해보자는 생각으로 2주 간은 하루에 적어도 4-5시간씩은 코딩테스트 공부에 매진했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;삼성 코테는 4시간 동안 2문제를 풀고, 보통 1문제를 완벽히 풀면 합격권이고 이걸 1솔이라고 하는 것 같았다. 그래서 1번 문항만 공부해서 맞춰보자는 전략을 세웠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1번 문제는 BFS, 시뮬레이션 유형이 많아서 처음 5일 정도는 백준에서 BFS, 시뮬레이션 관련 문제를 계속 풀고 이 유형에 익숙해지려고 노력했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 시험이 일주일 남은 시점에서는 코드트리 삼성 기출문제를 계속 반복해서 풀었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;시험 당일&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;2746&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AHbUx/dJMcabX71Yd/fGAgX8dKJLmRYQ7F3WNSk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AHbUx/dJMcabX71Yd/fGAgX8dKJLmRYQ7F3WNSk0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AHbUx/dJMcabX71Yd/fGAgX8dKJLmRYQ7F3WNSk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAHbUx%2FdJMcabX71Yd%2FfGAgX8dKJLmRYQ7F3WNSk0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;665&quot; height=&quot;2746&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;2746&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;시험은 동탄 ds에듀센터에서 진행되었고, 도착하니 입구에서 직원 분들이 친절하게 안내해주셨다. 스마트폰과 모든 전자기기는 들어가는 시점부터 사용할 수 없었고, 물이나 음식도 먹을 수 없었다. 물을 마시려면 중간에 화장실을 가면서 정수기에서 마셔야 했다. 배고픈 건 괜찮았는데 4시간 동안 물을 못 마시는 건 조금 아쉬웠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시험장은 생각보다 시설이 좋았다. 오픽 시험장 같은 느낌을 생각하고 갔는데 34인치 와이드 모니터가 모니터암에 달려 있었고 책상 공간도 널널해서 응시 환경은 쾌적했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제는 지난 코드트리 기출문제와 비슷한 난이도로 나왔는데, 가서 긴장한 상태로 익숙하지 않은 환경에서 풀다보니 생각보다 속도가 나오지 않았다. 전역 변수 오류나 사소한 오타 같은 별거 아닌 실수로 시간을 너무 많이 허비했다. 공부할 때는 이해했다고 생각했던 부분들도 막상 실전에서 마주하니 헷갈리는 지점이 많았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;경로를 매번 탐색하여 업데이트할 것인가, 아니면 미리 저장해 두고 사용할 것인가?&lt;/li&gt;
&lt;li&gt;이 문제에서 가장 효율적인 자료구조는 무엇인가?&lt;/li&gt;
&lt;li&gt;동시에 움직이는지, 순차적으로 움직이는지에 따라 어떻게 구현할 것인가?&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;등등..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제를 읽고 이런 전략을 명확하고 빠르게 정하는 능력이 아직 많이 부족했다. 중간에 자료구조를 잘못 설계했음을 깨닫고 자료구조를 바꾸느라 시간을 많이 허비했고, 결국 끝까지 디버깅하다 테스트 케이스를 다 못 맞춘 채 제출했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘 오전에 시험이었는데 벌써 코드트리에 내가 풀었던 문제와 비슷한 기출이 올라왔다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.codetree.ai/ko/frequent-problems/samsung-sw/problems/a-little-sea-turtles-big-adventure/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.codetree.ai/ko/frequent-problems/samsung-sw/problems/a-little-sea-turtles-big-adventure/description&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1776004882693&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;코딩테스트 기출 문제 설명: 아기 바다거북의 대모험: 해저 화산 지대 | 코드트리&quot; data-og-description=&quot;코딩테스트 기출 문제 아기 바다거북의 대모험: 해저 화산 지대의 상세 설명입니다. 문제 요구사항을 정확히 파악하고 효율적인 알고리즘을 설계해보세요.&quot; data-og-host=&quot;www.codetree.ai&quot; data-og-source-url=&quot;https://www.codetree.ai/ko/frequent-problems/samsung-sw/problems/a-little-sea-turtles-big-adventure/description&quot; data-og-url=&quot;https://www.codetree.ai/ko/frequent-problems/samsung-sw/problems/a-little-sea-turtles-big-adventure/description&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/vEzQM/dJMb8VNwCyv/pagdudrKyo5ShlXeXOwHN1/img.png?width=1400&amp;amp;height=1400&amp;amp;face=0_0_1400_1400&quot;&gt;&lt;a href=&quot;https://www.codetree.ai/ko/frequent-problems/samsung-sw/problems/a-little-sea-turtles-big-adventure/description&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.codetree.ai/ko/frequent-problems/samsung-sw/problems/a-little-sea-turtles-big-adventure/description&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/vEzQM/dJMb8VNwCyv/pagdudrKyo5ShlXeXOwHN1/img.png?width=1400&amp;amp;height=1400&amp;amp;face=0_0_1400_1400');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;코딩테스트 기출 문제 설명: 아기 바다거북의 대모험: 해저 화산 지대 | 코드트리&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;코딩테스트 기출 문제 아기 바다거북의 대모험: 해저 화산 지대의 상세 설명입니다. 문제 요구사항을 정확히 파악하고 효율적인 알고리즘을 설계해보세요.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.codetree.ai&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;회고&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기출문제를 풀 때 급한 마음에 짧은 시간 내 많은 문제를 풀기 위해서 1시간 정도 고민하고 풀리지 않으면 검색이나 AI를 활용해서 풀고 이해했는데, 이게 독이 된 것 같다. 코드를 이해하고 넘어가면 괜찮을 것이라고 생각했는데, 이해하는 것과 디버깅하며 코드로 구현하는 능력은 별개라는 점을 많이 느꼈다. 시간이 오래 걸리더라도 스스로 끝까지 풀어보는게 중요한 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비록 0솔로 첫 코테를 마무리했지만 대기업 코테를 경험해보며 내가 부족하다는 점을 많이 느꼈고, 알고리즘 공부를 더 해야겠다는 생각을 했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 글을 보시는 다른 분들은 꼭 합격하시길 바랍니다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;후기 끝&lt;/p&gt;</description>
      <category>기타</category>
      <author>gwlim3012</author>
      <guid isPermaLink="true">https://gwlim3012.tistory.com/46</guid>
      <comments>https://gwlim3012.tistory.com/46#entry46comment</comments>
      <pubDate>Mon, 13 Apr 2026 00:03:00 +0900</pubDate>
    </item>
    <item>
      <title>Zero-IF 수신기</title>
      <link>https://gwlim3012.tistory.com/44</link>
      <description>&lt;h3 data-path-to-node=&quot;3&quot; data-ke-size=&quot;size23&quot;&gt;전통적인 수신기의 딜레마&lt;/h3&gt;
&lt;p data-path-to-node=&quot;4&quot; data-ke-size=&quot;size16&quot;&gt;안테나를 타고 들어오는 무선 통신 신호는 수 GHz 대역의 엄청난 고주파다. 이 미친 듯이 빠른 신호를 디지털 회로가 곧바로 처리하는 것은 불가능에 가깝다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;4&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;그래서 전통적인 무선 수신기는 한 번에 속도를 늦추지 않고, '중간 기착지'를 거치는 방식을 택했다. 고주파(RF) 신호를 다루기 쉬운 중간 주파수(Intermediate Frequency, IF)로 한 단계 내린 다음, 거기서 원하는 채널만 걸러내고 최종적으로 기저대역(Baseband)으로 내리는 것이다. 이를 &lt;b data-index-in-node=&quot;180&quot; data-path-to-node=&quot;5&quot;&gt;슈퍼헤테로다인(Superheterodyne)&lt;/b&gt; 구조라고 부른다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;5&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;634&quot; data-origin-height=&quot;216&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b9g0SQ/dJMcaibrRpy/MRGWyWuHrfdIZ0TnN5TArK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b9g0SQ/dJMcaibrRpy/MRGWyWuHrfdIZ0TnN5TArK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b9g0SQ/dJMcaibrRpy/MRGWyWuHrfdIZ0TnN5TArK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb9g0SQ%2FdJMcaibrRpy%2FMRGWyWuHrfdIZ0TnN5TArK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;634&quot; height=&quot;216&quot; data-origin-width=&quot;634&quot; data-origin-height=&quot;216&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;6&quot; data-ke-size=&quot;size16&quot;&gt;문제는 이 IF 단계에서 원하는 신호만 골라내려면 꽤 까다로운 필터링이 필요하다는 점이다. 특정 주파수 대역만 통과시키는 대역통과필터(BPF, Band-Pass Filter)가 필요한데, 과거에는 SAW 필터 같은 거대한 외부 부품을 칩 바깥(Off-chip)에 따로 달아야만 했다. 스마트폰이나 초소형 엣지 디바이스처럼 칩 하나에 모든 것을 우겨넣고 전력 소모를 극한으로 줄여야 하는 시스템에서는 뼈아픈 약점이었다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;6&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;6&quot; data-ke-size=&quot;size23&quot;&gt;Zero-IF 구조: IF를 0으로 만들자&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;583&quot; data-origin-height=&quot;372&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sD4K6/dJMcahXTb79/QOjd6pcxkCy4l0mMTJkn30/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sD4K6/dJMcahXTb79/QOjd6pcxkCy4l0mMTJkn30/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sD4K6/dJMcahXTb79/QOjd6pcxkCy4l0mMTJkn30/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsD4K6%2FdJMcahXTb79%2FQOjd6pcxkCy4l0mMTJkn30%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;583&quot; height=&quot;372&quot; data-origin-width=&quot;583&quot; data-origin-height=&quot;372&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;이러한 물리적 한계를 정면으로 돌파한 아이디어가 바로 &lt;b data-index-in-node=&quot;30&quot; data-path-to-node=&quot;8&quot;&gt;제로-IF(Zero-IF, 직접 변환)&lt;/b&gt; 수신기다. 복잡하게 중간 기착지를 거치지 말고, 고주파 신호를 곧바로 도착지로 내리꽂자는 발상이다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;9&quot; data-ke-size=&quot;size16&quot;&gt;방법은 의외로 단순하다. 수신기 내부에서 만들어내는 주파수(Local Oscillator, &lt;span data-index-in-node=&quot;51&quot; data-math=&quot;f_{LO}&quot;&gt;$f_{LO}$&lt;/span&gt;)를 안테나로 들어온 수신 주파수(&lt;span data-index-in-node=&quot;76&quot; data-math=&quot;f_{RF}&quot;&gt;$f_{RF}$&lt;/span&gt;)와 한 치의 오차도 없이 똑같이 맞춘다. 그리고 이 두 신호를 믹서(Mixer)에서 곱해버리면 주파수의 차이가 0이 되면서, 수 GHz의 고주파 신호가 0Hz 근처의 기저대역으로 떨어진다.&lt;/p&gt;
&lt;div data-math=&quot;f_{IF} = f_{RF} - f_{LO} = 0&quot;&gt;$$f_{IF} = f_{RF} - f_{LO} = 0$$&lt;/div&gt;
&lt;div data-math=&quot;f_{IF} = f_{RF} - f_{LO} = 0&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;신호가 0Hz 근처로 떨어지면, 중간에 떠 있는 특정 주파수만 걸러내야 했던 복잡한 대역통과필터가 더 이상 필요 없어진다. 그저 0Hz 주변의 신호는 통과시키고, 위쪽에 남아있는 고주파 찌꺼기 노이즈들만 뭉툭하게 잘라내는 &lt;b data-index-in-node=&quot;153&quot; data-path-to-node=&quot;12&quot;&gt;저역통과필터(LPF, Low-Pass Filter)&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;이 LPF는 BPF에 비해 구조가 훨씬 단순하여 실리콘 칩 내부에 구현하기가 용이하다.&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;능동 소스 축퇴(Active Source Degeneration)나 스위치드 커패시터(SC)를 이용해 거대한 물리적 저항을 대체하고,&lt;/li&gt;
&lt;li&gt;밀러 효과(Miller Effect)를 역이용해 작은 커패시터를 거대한 커패시터처럼 뻥튀기한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 기법들을 조합하면, 과거 칩 바깥에 매달아야 했던 거대한 필터들을 작은 칩 안의 트랜지스터 몇 개로 대체할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;17&quot; data-ke-size=&quot;size16&quot;&gt;결과적으로 제로-IF 구조는 &lt;b&gt;신호의 혼합(Mixing)과 필터링(Filtering)을 하나의 칩 안에서 단일화&lt;/b&gt;해 낸다. 오프칩 부품이 완전히 사라지면서 전체 시스템의 크기와 전력 소모가 극적으로 줄어든다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;17&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;18&quot; data-ke-size=&quot;size16&quot;&gt;오늘날 우리가 사용하는 Wi-Fi, 블루투스 등 대부분의 모바일 무선 통신 칩셋이 바로 이 제로-IF 구조를 채택하고 있다. 외부 환경의 아날로그 신호를 끌어모아 AI 연산 장치(NPU)로 끊임없이 넘겨줘야 하는 초저전력 엣지 디바이스 환경에서, 제로-IF는 공간과 전력의 한계를 극복하는 하드웨어 타협안이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>공부/회로&amp;middot;반도체</category>
      <author>gwlim3012</author>
      <guid isPermaLink="true">https://gwlim3012.tistory.com/44</guid>
      <comments>https://gwlim3012.tistory.com/44#entry44comment</comments>
      <pubDate>Tue, 10 Mar 2026 10:01:00 +0900</pubDate>
    </item>
    <item>
      <title>스위치드 커패시터(Switched-Capacitor, SC)</title>
      <link>https://gwlim3012.tistory.com/43</link>
      <description>&lt;h3 data-path-to-node=&quot;0&quot; data-ke-size=&quot;size23&quot;&gt;스위치드&amp;nbsp;커패시터(Switched-Capacitor,&amp;nbsp;SC)&lt;/h3&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-path-to-node=&quot;0&quot;&gt;지난번 글에서 '칩 위에 거대한 수동 저항을 올리는 것은 공간 낭비가 심하다'는 아날로그 설계의 고질적인 문제를 다루었다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-path-to-node=&quot;0&quot;&gt;이 문제를 해결하기 위해 능동 소스 축퇴처럼 트랜지스터를 활용하기도 하지만, 아예 발상을 전환해&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b data-path-to-node=&quot;0&quot; data-index-in-node=&quot;127&quot;&gt;스위치와 커패시터만으로 저항을 흉내 내는 방식&lt;/b&gt;이 있다. 바로&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b data-path-to-node=&quot;0&quot; data-index-in-node=&quot;163&quot;&gt;스위치드 커패시터(Switched-Capacitor, SC) 회로&lt;/b&gt;이다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;0&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-path-to-node=&quot;6&quot; data-ke-size=&quot;size20&quot;&gt;등가 저항의 수학적 원리&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;665&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ryX6I/dJMcagLsVMQ/mYSOSGmHevoZyEXytA9Y9k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ryX6I/dJMcagLsVMQ/mYSOSGmHevoZyEXytA9Y9k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ryX6I/dJMcagLsVMQ/mYSOSGmHevoZyEXytA9Y9k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FryX6I%2FdJMcagLsVMQ%2FmYSOSGmHevoZyEXytA9Y9k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;629&quot; height=&quot;327&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;665&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-path-to-node=&quot;7&quot; data-ke-size=&quot;size16&quot;&gt;전압이 &lt;span data-index-in-node=&quot;4&quot; data-math=&quot;V_1&quot;&gt;$V_1$&lt;/span&gt;인 노드와 &lt;span data-index-in-node=&quot;13&quot; data-math=&quot;V_2&quot;&gt;$V_2$&lt;/span&gt;인 노드 사이에 스위치 1, 커패시터 &lt;span data-index-in-node=&quot;37&quot; data-math=&quot;C&quot;&gt;$C$&lt;/span&gt;, 스위치 2가 직렬로 연결되어 있다고 가정해 보자. 두 스위치는 서로 겹치지 않는(Non-overlapping) 클럭 $f_{clk}$에 의해 번갈아 가며 켜지고 꺼진다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-path-to-node=&quot;8&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8,0,0&quot;&gt;스위치 1이 닫힐 때:&lt;/b&gt; 커패시터는 &lt;span data-index-in-node=&quot;19&quot; data-math=&quot;V_1&quot;&gt;$V_1$&lt;/span&gt; 전압으로 충전된다. 이때 저장된 전하량은 &lt;span data-index-in-node=&quot;46&quot; data-math=&quot;Q_1 = C \cdot V_1&quot;&gt;$Q_1 = C \cdot V_1$&lt;/span&gt; 이다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8,1,0&quot;&gt;스위치 2가 닫힐 때:&lt;/b&gt; 커패시터는 &lt;span data-index-in-node=&quot;19&quot; data-math=&quot;V_2&quot;&gt;$V_2$&lt;/span&gt; 전압과 연결되며 전하를 이동시킨다. 이때 전하량은 &lt;span data-index-in-node=&quot;51&quot; data-math=&quot;Q_2 = C \cdot V_2&quot;&gt;$Q_2 = C \cdot V_2$&lt;/span&gt; 가 된다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-path-to-node=&quot;9&quot; data-ke-size=&quot;size16&quot;&gt;한 번의 클럭 주기(&lt;span data-index-in-node=&quot;11&quot; data-math=&quot;T_{clk}&quot;&gt;$T_{clk}$&lt;/span&gt;) 동안 노드 1에서 노드 2로 이동한 전하량의 차이 &lt;span data-index-in-node=&quot;48&quot; data-math=&quot;\Delta Q&quot;&gt;$\Delta Q$&lt;/span&gt;는 다음과 같다.&lt;/p&gt;
&lt;div data-path-to-node=&quot;10&quot;&gt;
&lt;div data-math=&quot;\Delta Q = C(V_1 - V_2)&quot;&gt;$$\Delta Q = C(V_1 - V_2)$$&lt;/div&gt;
&lt;/div&gt;
&lt;p data-path-to-node=&quot;11&quot; data-ke-size=&quot;size16&quot;&gt;전류(&lt;span data-index-in-node=&quot;3&quot; data-math=&quot;I&quot;&gt;$I$&lt;/span&gt;)는 단위 시간당 이동한 전하량이므로, 이 과정에서 흐른 평균 전류는 다음과 같이 계산된다.&lt;/p&gt;
&lt;div data-path-to-node=&quot;12&quot;&gt;
&lt;div data-math=&quot;I = \frac{\Delta Q}{T_{clk}} = \frac{C(V_1 - V_2)}{T_{clk}}&quot;&gt;$$I = \frac{\Delta Q}{T_{clk}} = \frac{C(V_1 - V_2)}{T_{clk}}$$&lt;/div&gt;
&lt;/div&gt;
&lt;p data-path-to-node=&quot;13&quot; data-ke-size=&quot;size16&quot;&gt;옴의 법칙(&lt;span data-index-in-node=&quot;6&quot; data-math=&quot;R = \frac{V}{I}&quot;&gt;$R = \frac{V}{I}$&lt;/span&gt;)에 따라, 이 회로가 만들어내는 등가 저항(&lt;span data-index-in-node=&quot;48&quot; data-math=&quot;R_{eq}&quot;&gt;$R_{eq}$&lt;/span&gt;)을 구해보면 아주 직관적인 결과가 나온다. 주기 $T_{clk}$는 주파수 $f_{clk}$의 역수이므로 식은 다음과 같이 정리된다.&lt;/p&gt;
&lt;div data-path-to-node=&quot;14&quot;&gt;
&lt;div data-math=&quot;R_{eq} = \frac{V_1 - V_2}{I} = \frac{T_{clk}}{C} = \frac{1}{f_{clk}C}&quot;&gt;$$R_{eq} = \frac{V_1 - V_2}{I} = \frac{T_{clk}}{C} = \frac{1}{f_{clk}C}$$&lt;/div&gt;
&lt;/div&gt;
&lt;p data-path-to-node=&quot;15&quot; data-ke-size=&quot;size16&quot;&gt;즉, &lt;b data-index-in-node=&quot;3&quot; data-path-to-node=&quot;15&quot;&gt;클럭 주파수(&lt;span data-index-in-node=&quot;10&quot; data-math=&quot;f_{clk}&quot;&gt;$f_{clk}$&lt;/span&gt;)와 커패시턴스(&lt;span data-index-in-node=&quot;26&quot; data-math=&quot;C&quot;&gt;$C$&lt;/span&gt;)를 조절하면 원하는 저항값을 마음대로 만들어낼 수 있다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-path-to-node=&quot;15&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;15&quot; data-ke-size=&quot;size16&quot;&gt;이를 쉽게 설명하면 스위치를 빠르게 번갈아 켜고 끄면, 커패시터를 통해 이동하는 초당 전하량(평균 전류)이 일정하게 조절되어, 외부에서 보기에는 마치 거대한 전기 저항이 버티고 있는 것과 전기적으로 동일한 효과를 낸다고 이해할 수 있다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;15&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-path-to-node=&quot;16&quot; data-ke-size=&quot;size20&quot;&gt;왜 굳이 이렇게 복잡하게 만들까?&lt;/h4&gt;
&lt;p data-path-to-node=&quot;17&quot; data-ke-size=&quot;size16&quot;&gt;가만히 있는 수동 저항을 쓰면 될 것을, 굳이 클럭을 주고 스위치를 끄고 켜는 수고로움을 감수하는 이유는 반도체 공정(CMOS)의 현실적인 특성 때문이다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;17&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;18&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;18&quot;&gt;1. 압도적인 면적 효율&lt;/b&gt;&lt;/p&gt;
&lt;p data-path-to-node=&quot;18&quot; data-ke-size=&quot;size16&quot;&gt;앞서 유도한 공식&lt;/p&gt;
&lt;div data-path-to-node=&quot;19&quot;&gt;
&lt;div data-math=&quot;R_{eq} = \frac{1}{f_{clk}C}&quot;&gt;$$R_{eq} = \frac{1}{f_{clk}C}$$&lt;/div&gt;
&lt;/div&gt;
&lt;p data-path-to-node=&quot;20&quot; data-ke-size=&quot;size16&quot;&gt;을 보자. 높은 주파수의 클럭을 사용하면, 아주 작은 &lt;span data-index-in-node=&quot;31&quot; data-math=&quot;C&quot;&gt;$C$&lt;/span&gt; 값만으로도 엄청나게 큰 저항을 흉내 낼 수 있다. 수 mm&amp;sup2;를 차지하던 메가옴 단위의 수동 저항을 눈에 보이지도 않을 만큼 작은 커패시터와 스위치 몇 개로 대체하여 칩 크기를 극적으로 줄일 수 있다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;20&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;21&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;21&quot;&gt;2. 공정 오차에 대한 강건함 (PVT Variation 극복)&lt;/b&gt;&lt;/p&gt;
&lt;p data-path-to-node=&quot;21&quot; data-ke-size=&quot;size16&quot;&gt;반도체를 찍어낼 때, 저항이나 커패시터의 '절댓값'은 온도나 공정 편차에 따라 최대 20%까지도 흔들린다. 하지만 칩 내부에 나란히 배치된 두 소자의 '상대적인 비율(Ratio)'은 0.1% 이하의 오차로 매우 정밀하게 맞출 수 있다. SC 회로로 필터나 증폭기를 만들면, 그 특성이 개별 소자의 절댓값이 아닌 커패시터들의 비율(&lt;span data-index-in-node=&quot;226&quot; data-math=&quot;C_1/C_2&quot;&gt;$C_1/C_2$&lt;/span&gt;)에 의해 결정되므로 수율과 신뢰성이 비약적으로 상승한다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;21&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;22&quot; data-ke-size=&quot;size23&quot;&gt;엣지 디바이스와 아날로그-디지털의 경계&lt;/h3&gt;
&lt;p data-path-to-node=&quot;23&quot; data-ke-size=&quot;size16&quot;&gt;이러한 스위치드 커패시터 회로는 아날로그 신호를 디지털로 변환하는 ADC(Analog-to-Digital Converter)의 핵심 설계 기술이다. 외부 환경(온도, 소리, 시각 등)의 미세한 아날로그 센서 신호를 딥러닝 모델이 연산할 수 있는 디지털 데이터로 변환하려면, 제한된 전력과 면적 안에서 정밀하게 신호를 샘플링하고 증폭해야 하기 때문이다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;23&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;24&quot; data-ke-size=&quot;size16&quot;&gt;스위치드 커패시터는 연속적인 아날로그의 세계를 불연속적인 이산 시간(Discrete-time)의 영역으로 끌어들여, 하드웨어 효율을 극대화하는 공학적 타협안이다.&lt;/p&gt;</description>
      <category>공부/회로&amp;middot;반도체</category>
      <author>gwlim3012</author>
      <guid isPermaLink="true">https://gwlim3012.tistory.com/43</guid>
      <comments>https://gwlim3012.tistory.com/43#entry43comment</comments>
      <pubDate>Tue, 10 Mar 2026 10:00:39 +0900</pubDate>
    </item>
    <item>
      <title>인버터 기반 증폭기와 능동 소스 축퇴 (Active Source Degeneration)</title>
      <link>https://gwlim3012.tistory.com/42</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;* 이쪽 전공이 아니고, 공부하면서 적은 글이라 오류가 있을 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최근 온디바이스 AI나 엣지 컴퓨팅 환경을 살펴보면, 제한된 자원 안에서 모델을 경량화하는 소프트웨어적인 접근만큼이나 하드웨어 레벨에서의 초저전력 설계가 핵심적인 이슈로 떠오른다. 특히 엣지 기기의 센서에서 들어오는 미세한 아날로그 신호를 처리하려면 증폭기가 필수적인데, 여기서 재미있는 발상의 전환이 쓰인다. 바로 디지털 회로의 기본 부품인 CMOS 인버터를 아날로그 증폭기로 탈바꿈시키는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;디지털 부품을 증폭기로&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;486&quot; data-origin-height=&quot;288&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cKCIq1/dJMcagxTqS1/W8kmckfuAo6kbI7xlfjJFk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cKCIq1/dJMcagxTqS1/W8kmckfuAo6kbI7xlfjJFk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cKCIq1/dJMcagxTqS1/W8kmckfuAo6kbI7xlfjJFk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcKCIq1%2FdJMcagxTqS1%2FW8kmckfuAo6kbI7xlfjJFk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;449&quot; height=&quot;266&quot; data-origin-width=&quot;486&quot; data-origin-height=&quot;288&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;CMOS 인버터는 원래 디지털 회로의 부품이다. PMOS와 NMOS를 직렬로 쌓아, 입력이 HIGH면 출력을 LOW로, LOW면 HIGH로 뒤집어주는 스위치다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 이 인버터를 완전히 켜거나 끄지 않고, 두 트랜지스터가 동시에 절반쯤 켜진 &lt;b&gt;전이 영역&lt;/b&gt;에 묶어두면 전혀 다른 소자가 된다. 입력 전압의 작은 변화에 출력이 크게 반응하는, 고이득 반전 증폭기다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;방법은 간단하다. 입력과 출력 사이에 큰 저항 $R_b$&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; 하나를 피드백으로 연결하면, 인버터가 스스로 그 동작점을 찾아 안착한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이득은 두 트랜지스터의 $g_m$&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;이 합산되어 나온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-pm-slice=&quot;1 1 []&quot; data-ke-size=&quot;size16&quot;&gt;$$Av​=&amp;minus;(g_{mn}​+g_{mp}​)(r_{on}​∥r_{op}​)$$&lt;/p&gt;
&lt;p data-pm-slice=&quot;1 1 []&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-pm-slice=&quot;1 1 []&quot; data-ke-size=&quot;size16&quot;&gt;NMOS는 신호를 증폭하고, PMOS는 능동 부하로 동작하면서 둘 다 이득에 기여한다. 같은 전류로 단일 트랜지스터 증폭기보다 $g_m$을 두 배 가까이 뽑아낼 수 있다. 트랜지스터 두 개가 전부이니 면적도 거의 차지하지 않는다.&lt;/p&gt;
&lt;p data-pm-slice=&quot;1 1 []&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-pm-slice=&quot;1 1 []&quot; data-ke-size=&quot;size23&quot;&gt;문제: Gain이 제멋대로 변한다&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전력을 극도로 아끼려면 트랜지스터를 아주 약한 전류, 문턱 전압 아래의 Subthreshold 영역에서 동작시켜야 한다. 여기서 문제가 생긴다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 영역에서 트랜지스터에 흐르는 전류는 입력 전압에 지수함수적으로 반응한다. 신호가 조금만 커져도 전류가 크게 출렁이고, 전류가 출렁이면 $g_m$&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;도 흔들린다. $g_m$&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;이 흔들리면 이득도 따라서 변한다.&lt;/p&gt;
&lt;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;비선형성(Nonlinearity)&lt;/b&gt; 이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;해결책: 소스 축퇴 (Source Degeneration)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 문제를 잡는 고전적인 방법이 &lt;b&gt;소스 축퇴(Source Degeneration)&lt;/b&gt;다. 트랜지스터의 소스 단자와 GND 사이에 저항 $R_s$를 하나 끼워 넣는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;동작 원리는 일종의 '자동 브레이크(네거티브 피드백)'와 같다. &amp;nbsp;입력 신호가 커져서 전류가 확 흐르려 하면, $R_s$&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;에 걸리는 전압도 같이 올라간다. 소스 전압이 올라가면 트랜지스터를 켜는 실질적인 힘인 $V_{gs}$가 줄어들면서 전류 증가를 스스로 억제한다.&lt;/p&gt;
&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 data-index-in-node=&quot;36&quot; data-math=&quot;g_{m,eff}&quot;&gt;$g_{m,eff}$&lt;/span&gt;)은 다소 낮아지게 되는데, 수식으로 보면 다음과 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;$$g_{m,\mathrm{eff}}=\frac{g_m}{1+g_m R_s}$$&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&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 data-index-in-node=&quot;34&quot; data-math=&quot;g_m R_s \gg 1&quot;&gt;$g_m R_s \gg 1$&lt;/span&gt;이 되게 만들면, 수식은 다음과 같이 단순해진다.&lt;/p&gt;
&lt;div data-math=&quot;g_{m,eff} \approx \frac{1}{R_s}&quot;&gt;$$g_{m,eff} \approx \frac{1}{R_s}$$&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;새로운 문제: 저항이 너무 크다&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앞서 보았듯 소스 축퇴가 제 역할을 하려면 &lt;span data-index-in-node=&quot;51&quot; data-math=&quot;g_m R_s \gg 1&quot;&gt;$g_m R_s \gg 1$&lt;/span&gt;이라는 조건을 만족해야 한다. 그런데 엣지 기기를 위해 초저전력(Subthreshold 영역)으로 동작하는 트랜지스터는 기본적으로 &lt;span data-index-in-node=&quot;132&quot; data-math=&quot;g_m&quot;&gt;$g_m$&lt;/span&gt; 값 자체가 매우 작다. 이 작은 &lt;span data-index-in-node=&quot;159&quot; data-math=&quot;g_m&quot;&gt;$g_m$&lt;/span&gt;을 곱해서 1보다 훨씬 큰 값을 만들려면, &lt;b data-index-in-node=&quot;186&quot; data-path-to-node=&quot;14&quot;&gt;저항 &lt;span data-index-in-node=&quot;189&quot; data-math=&quot;R_s&quot;&gt;$R_s$&lt;/span&gt;가 수십 M&amp;Omega;(메가옴)에 달할 정도로 어마어마하게 커져야 한다.&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;문제는 반도체 실리콘 칩 위에 그 정도 크기의 수동 저항을 물리적으로 새겨 넣으려면 수 mm&amp;sup2;에 달하는 칩 면적이 필요하다는 것이다. 기껏 인버터 두 개로 증폭기를 초소형으로 만들어 놨는데, 꼬리로 달린 수동 저항이 배보다 배꼽이 더 커지는 황당한 상황이 벌어졌다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;능동 소스 축퇴&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 공간만 차지하는 수동 저항을 과감히 버리고, 그 자리에 '또 다른 트랜지스터'를 투입한다. 이것이 &lt;b&gt;능동 소스 축퇴(Active Source Degeneration)&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;트랜지스터의 게이트에 일정한 전압을 가해 전류원(Current Source)처럼 동작하도록 소스에 달아두면, 아주 훌륭한 고저항 역할을 한다. 그런데 트랜지스터의 등가 저항, 즉 출력 저항 &lt;span data-index-in-node=&quot;98&quot; data-math=&quot;r_o&quot;&gt;$r_o$&lt;/span&gt;&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;는 다음과 같이 정의된다.&lt;/p&gt;
&lt;div data-math=&quot;r_o = \frac{1}{\lambda I_D}&quot;&gt;$$r_o = \frac{1}{\lambda I_D}$$&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 &lt;span data-index-in-node=&quot;4&quot; data-math=&quot;\lambda&quot;&gt;$\lambda$&lt;/span&gt;(채널 길이 변조 계수)는 아주 작은 값이고, 초저전력이라 흐르는 전류 &lt;span data-index-in-node=&quot;51&quot; data-math=&quot;I_D&quot;&gt;$I_D$&lt;/span&gt;도 매우 작다. 분모가 극도로 작아지니, 결과적으로 &lt;span data-index-in-node=&quot;85&quot; data-math=&quot;r_o&quot;&gt;$r_o$&lt;/span&gt;는 &lt;b data-index-in-node=&quot;90&quot; data-path-to-node=&quot;20&quot;&gt;수백 k&amp;Omega;에서 수 M&amp;Omega;에 달하는 엄청난 저항값&lt;/b&gt;을 가지게 된다. 수동 저항으로는 칩에 올리기 불가능한 값을, 트랜지스터 하나로 구현하는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;게다가 게이트 전압을 조절하면 등가 저항값을 전기적으로 바꿀 수 있다. 칩을 다시 만들지 않아도 이득을 조정할 수 있다는 뜻이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결론적으로&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;22&quot;&gt;,&lt;/b&gt; 초저전력 인버터 증폭기에 '능동 소스 축퇴'를 결합하는 것은, 작은 칩 면적과 높은 전력 효율을 모두 지켜내면서 아날로그의 고질병인 비선형성까지 크게 개선한 조합이다.&lt;/p&gt;</description>
      <category>공부/회로&amp;middot;반도체</category>
      <author>gwlim3012</author>
      <guid isPermaLink="true">https://gwlim3012.tistory.com/42</guid>
      <comments>https://gwlim3012.tistory.com/42#entry42comment</comments>
      <pubDate>Mon, 9 Mar 2026 10:01:37 +0900</pubDate>
    </item>
    <item>
      <title>밀러 효과 (Miller Effect)와 밀러 효과의 역이용</title>
      <link>https://gwlim3012.tistory.com/41</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;밀러 효과란&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반전 증폭기의 입출력 사이에 커패시터가 하나 달려 있을 때, 입력단에서 바라보면 그 커패시터가 실제보다 훨씬 크게 느껴지는 현상이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 그림처럼 이득이 $-A_v$&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;인 반전 증폭기 입출력 사이에 커패시터 C가 연결되어 있다고 하자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;432&quot; data-origin-height=&quot;182&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/djuyMQ/dJMcadnCe2S/fGdqhhCvTPFOcBqZllBL30/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/djuyMQ/dJMcadnCe2S/fGdqhhCvTPFOcBqZllBL30/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/djuyMQ/dJMcadnCe2S/fGdqhhCvTPFOcBqZllBL30/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdjuyMQ%2FdJMcadnCe2S%2FfGdqhhCvTPFOcBqZllBL30%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;432&quot; height=&quot;182&quot; data-origin-width=&quot;432&quot; data-origin-height=&quot;182&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;입력 전압이 &lt;span&gt;&lt;span&gt;+1V&lt;/span&gt;&lt;/span&gt;&amp;nbsp;올라가는 순간을 생각해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;증폭기가 신호를 반전시키므로 출력은 반대 방향으로 $-A_v$만큼 내려간다. 커패시터 왼쪽은 &lt;span&gt;&lt;span&gt;+1V&lt;/span&gt;&lt;/span&gt;, 오른쪽은 $-A_v$가 되면서 양단의 전압 차이가 다음과 같이 커진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;$$&amp;Delta;V=1+A_v$$&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;커패시터에 쌓이는 전하량은 $Q=C&amp;sdot;&amp;Delta;V$이므로, 전압 차이가 $(1+A_v)$배 벌어진 만큼 필요한 전하량도 똑같이 늘어난다. 입력단 입장에서는 마치 다음과 같은 거대한 커패시터가 GND 사이에 버티고 있는 것처럼 느껴진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$$C_M = C&amp;times;(1+A_v)$$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어 gain이 29인 증폭기에 1pF짜리 커패시터를 달면, 입력단에서는 이게 &lt;b&gt;30pF&lt;/b&gt;처럼 보인다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;이게 왜 골칫거리인가?&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;트랜지스터 내부에는 게이트와 드레인 사이에 &lt;b&gt;기생 커패시턴스&lt;span style=&quot;background-color: #ffffff; color: #202122; text-align: start;&quot;&gt;(parasitic capacitance) &lt;/span&gt;$C_{gd}$&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt; 가 존재한다. 설계자가 의도하지 않아도 물리적 구조상 필연적으로 생겨나는 커패시터다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;공통 소스 증폭기는 반전 증폭기이므로, $C_{gd}$는 정확히 밀러 효과가 작동하는 조건에 놓여 있다. 이득이 $A_v$&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;라면 입력단에서 바라본 등가 커패시턴스는 다음과 같이 불어난다.&lt;/p&gt;
&lt;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;&lt;span&gt;&lt;span&gt;$$C_M = C_{gd} \times (1 + A_v)$$&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이득을 높일수록 커패시턴스도 함께 커지는 구조다. 즉, 고이득 증폭기일수록 밀러 효과에 더 크게 시달린다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제는 이 $C_M$&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;이 신호원(입력단)이 기본적으로 가지고 있는 내부 저항 $R_s$와 만나 &lt;b&gt;저역통과 필터(LPF)&lt;/b&gt; 를 형성한다는 점이다. 차단 주파수는 다음과 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;$$f_c = \frac{1}{2\pi R_s C_M}$$&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;$C_M$​&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;이 클수록 $f_c$&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;는 낮아지고, 그 이상의 고주파 신호는 증폭기에 제대로 전달되지 못한다. 결국 &lt;b&gt;대역폭이 심각하게 좁아진다.&lt;/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;캐스코드(Cascode) 구조는 이 문제를 억제하기 위해 도입된 대표적인 해결책이다. 캐스코드는 드레인 전압의 변동폭을 억눌러 $C_{gd}$양단의 전압 차이가 크게 벌어지지 못하게 막는다. 밀러 효과의 뿌리를 직접 차단하는 방식이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;밀러 효과의 역이용&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 설계자들은 이 현상을 단순히 억제하는 데 그치지 않고, 역으로 칩 면적을 줄이는 데 활용하기도 한다. 아날로그 집적 회로(IC)에서 주파수 응답을 제어하거나 위상을 보상하기 위해서는 종종 큰 용량의 커패시터가 필요하다. 그러나 수동 커패시터의 용량을 물리적으로 키우려면 실리콘 칩 위에서 상당한 면적을 차지하게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때 밀러 효과를 의도적으로 발생시키면 물리적인 면적 문제를 해결할 수 있다. 고이득 반전 증폭기의 입력과 출력 사이에 상대적으로 작은 용량의 커패시터를 연결하면, 입력단에서 바라본 등가 커패시턴스는 밀러 효과에 의해 $(1+A_v)$배로 증폭되어 동작한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결과적으로, 신호의 대역폭을 좁히며 고주파 특성을 저하시켰던 밀러 효과의 단점을 역이용해, 제한된 칩 면적 내에서 작은 소자만으로 대용량 온칩(On-chip) 커패시터를 구현하는 유용한 설계 기법으로 활용할 수 있다.&lt;/p&gt;</description>
      <category>공부/회로&amp;middot;반도체</category>
      <author>gwlim3012</author>
      <guid isPermaLink="true">https://gwlim3012.tistory.com/41</guid>
      <comments>https://gwlim3012.tistory.com/41#entry41comment</comments>
      <pubDate>Mon, 9 Mar 2026 10:00:53 +0900</pubDate>
    </item>
    <item>
      <title>N-경로 필터 (N-Path Filter)란?</title>
      <link>https://gwlim3012.tistory.com/40</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;회로이론을 배우다 보면 특정 주파수 대역만 통과시키는 대역통과 필터(Band-Pass Filter, BPF)를 설계할 때 필연적으로 인덕터와 커패시터의 공진을 이용하게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Band-Pass Filter (대역통과 필터)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 Band-Pass Filter에 대해 간단히 짚고 넘어가보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Band-Pass Filter 는 특정 주파수 범위(대역)의 신호만 통과시키고, 그보다 낮거나 높은 주파수의 신호는 차단하는 필터다. 중심 주파수 $f_c$를 기준으로 그 주변의 신호만 살아남으며, 통과시키는 범위를 대역폭(Bandwidth, BW)이라고 부른다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1156&quot; data-origin-height=&quot;795&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dJwo69/dJMcafMzbt7/azFnXtWumH2Hp0iKqDjaik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dJwo69/dJMcafMzbt7/azFnXtWumH2Hp0iKqDjaik/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dJwo69/dJMcafMzbt7/azFnXtWumH2Hp0iKqDjaik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdJwo69%2FdJMcafMzbt7%2FazFnXtWumH2Hp0iKqDjaik%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;604&quot; height=&quot;415&quot; data-origin-width=&quot;1156&quot; data-origin-height=&quot;795&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저역통과 필터(LPF)와 고역통과 필터(HPF)를 직렬로 연결한 구조로 이해할 수도 있고, LC 공진 회로처럼 특정 주파수에서 임피던스가 최소가 되는 공진 현상을 이용해 구현하기도 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;음성 인식 시스템에서는 여러 개의 BPF를 병렬로 묶은 필터뱅크(Filterbank) 형태로 활용되는데, 각 필터가 서로 다른 주파수 대역을 담당해 음성 신호의 주파수별 에너지를 동시에 분석할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 반도체 설계로 넘어오면 문제가 발생한다. 온칩 인덕터는 필요한 인덕턴스를 얻기 위해 넓은 면적이 필요하기 때문이다. 이런 면적 부담은 초소형 엣지 기기에서 생산 비용과 집적 효율을 떨어뜨린다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.nature.com/articles/s41467-025-65032-3?utm_source=chatgpt.com&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.nature.com/articles/s41467-025-65032-3&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;N-Path Filter (N-경로 필터)&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;기본 구조&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;N-Path Filter는 이름 그대로 N개의 병렬 경로(Path)로 구성된 필터다. 인덕터를 완전히 배제하고 &lt;b&gt;저항(R), 커패시터(C), 스위치&lt;/b&gt; 세 가지만으로 이루어진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;358&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ES478/dJMcaiJdYvK/H5UFPNpevCaMKYecq9KLBK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ES478/dJMcaiJdYvK/H5UFPNpevCaMKYecq9KLBK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ES478/dJMcaiJdYvK/H5UFPNpevCaMKYecq9KLBK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FES478%2FdJMcaiJdYvK%2FH5UFPNpevCaMKYecq9KLBK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;691&quot; height=&quot;291&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;358&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가장 널리 쓰이는 4-Path 구조를 예로 들면, 입력단 저항 $R_s$&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;뒤로 4개의 스위치-커패시터 쌍이 병렬로 매달려 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 스위치는 클럭 주파수 $f_{clk}$에 맞춰 90도씩 위상이 엇갈린 신호로 순서대로 켜진다. 한 스위치가 켜져 있는 동안 나머지 세 개는 꺼져 있으며, 이 과정이 끊임없이 반복된다.&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;어떻게 BPF로 동작하는가&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저항과 커패시터만 있으면 원래 저역통과 필터(LPF)가 되어야 한다. 그런데 어떻게 BPF로 동작하는 걸까? 핵심은 스위치의 &lt;b&gt;믹서(Mixer) 역할&lt;/b&gt;에 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;757&quot; data-origin-height=&quot;544&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/exvU2z/dJMcafFMifd/xgWacLE6I84IEMSuMbqUKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/exvU2z/dJMcafFMifd/xgWacLE6I84IEMSuMbqUKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/exvU2z/dJMcafFMifd/xgWacLE6I84IEMSuMbqUKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FexvU2z%2FdJMcafFMifd%2FxgWacLE6I84IEMSuMbqUKk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;483&quot; height=&quot;347&quot; data-origin-width=&quot;757&quot; data-origin-height=&quot;544&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스위치가 $f_{clk}$로 빠르게 켜지고 꺼지는 동작은, 수학적으로 입력 신호에 클럭 신호를 &lt;b&gt;곱하는 것&lt;/b&gt;과 동일하다. 이 곱셈 연산이 입력 신호의 주파수를 이동시킨다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;입력 주파수 = $f_{clk}$인 경우 &lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스위치가 닫히는 순간마다 입력 신호의 위상이 거의 같다. 커패시터에는 매 사이클마다 같은 극성의 전하가 차곡차곡 쌓인다. 결과적으로 해당 신호는 0Hz(DC) 근방의 기저대역으로 내려와 LPF를 온전히 통과한다. 신호가 살아남는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;입력 주파수 &amp;ne; $f_{clk}$인 경우 &lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스위치가 닫히는 순간마다 입력 신호의 위상이 계속 달라진다. 어떤 순간에는 양(+)의 전하가, 다른 순간에는 음(-)의 전하가 커패시터로 들어온다. 장기적으로 서로 상쇄되어 커패시터 전압의 평균이 0에 수렴한다. 신호가 사라지는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결과적으로 N-Path Filter는 기저대역의 LPF 특성을 $f_{clk}$를 중심으로 좌우로 복사해 이동시킨 것과 같은 BPF 특성을 만들어낸다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;왜 현대 회로 설계에서 쓰이는가?&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;면적 절감&lt;/b&gt;: 부피가 큰 인덕터를 완전히 제거하여 초소형 칩 설계에 최적화되어 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;소프트웨어적 주파수 튜닝&lt;/b&gt;: 물리적인 소자(&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;R&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;이나 &lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;C&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;)를 바꾸지 않아도 된다. 클럭 주파수 $f_{clk}$만 바꾸면 필터의 중심 주파수가 즉각적으로 따라 이동한다. 수십 Hz부터 GHz 대역까지 프로그래밍 가능한 유연성을 제공한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;PVT 안정성&lt;/b&gt;: 공정, 전압, 온도가 변하는 환경에서도 클럭 주파수만 정확하다면 중심 주파수가 틀어지지 않는다. 트랜지스터 특성에 민감하게 반응하는 $g_m-C$ 필터와 비교했을 때 결정적인 강점이다.&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;단점: 고조파 에일리어싱 (Aliasing)&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;768&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cSMmik/dJMcad2cFmo/pDloufCOw7qiOJxHA8QswK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cSMmik/dJMcad2cFmo/pDloufCOw7qiOJxHA8QswK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cSMmik/dJMcad2cFmo/pDloufCOw7qiOJxHA8QswK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcSMmik%2FdJMcad2cFmo%2FpDloufCOw7qiOJxHA8QswK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;468&quot; height=&quot;351&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;768&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스위치를 켜고 끄는 클럭은 사각파(Square Wave)다. 사각파를 푸리에 급수로 전개하면 기본 주파수 $f_{clk}$&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;외에 $3f_{clk}$&lt;span&gt;&lt;span&gt;, $5f_{clk}$&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;등 홀수 고조파 성분이 함께 존재한다. 따라서 N-Path Filter는 목표 주파수 $f_{clk}$&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; 주변뿐 아니라 원치 않는 $3f_{clk}$, $5f_{clk}$ 주변의 신호도 함께 통과시켜 버리는 &lt;b&gt;에일리어싱(Aliasing)&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;이를 억제하기 위해 실제 설계에서는 앞단에 안티 에일리어싱 필터를 추가하거나, N의 개수를 늘려(예: 8-Path) 고조파 영향을 더 높은 주파수 대역으로 밀어내는 방법을 쓴다. N이 커질수록 에일리어싱은 줄어들지만, 클럭 생성 회로의 복잡도와 전력 소모가 함께 올라가는 트레이드오프가 존재한다.&lt;/p&gt;</description>
      <category>공부/회로&amp;middot;반도체</category>
      <author>gwlim3012</author>
      <guid isPermaLink="true">https://gwlim3012.tistory.com/40</guid>
      <comments>https://gwlim3012.tistory.com/40#entry40comment</comments>
      <pubDate>Sun, 8 Mar 2026 23:15:55 +0900</pubDate>
    </item>
    <item>
      <title>[논문 리뷰] Feature Extraction using Spiking Convolutional Neural Networks</title>
      <link>https://gwlim3012.tistory.com/39</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;Feature Extraction using Spiking Convolutional Neural Networks&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Ruthvik Vaila, John N Chiasson, Vishal Saxena&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;ICONS '19&lt;/b&gt; (International Conference on Neuromorphic Systems)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;DOI: &lt;a style=&quot;color: #333333;&quot; href=&quot;https://doi.org/10.1145/3354265.3354279&quot;&gt;10.1145/3354265.3354279&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1772843248073&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;Chapter&quot; data-og-title=&quot;Feature Extraction using Spiking Convolutional Neural Networks | Proceedings of the International Conference on Neuromorphic Sys&quot; data-og-description=&quot;Brain-inspired learning models attempt to mimic the computations performed in the neurons and synapses constituting the human brain to achieve its efficiency in cognitive tasks. In this work, we propose Spike Timing Dependent Plasticity-based ...&quot; data-og-host=&quot;dl.acm.org&quot; data-og-source-url=&quot;https://doi.org/10.1145/3354265.3354279&quot; data-og-url=&quot;https://dl.acm.org/doi/10.1145/3354265.3354279&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bZiG0B/dJMb8T9XpnB/ZGqPF7j900Sx6fTWG6Z731/img.jpg?width=132&amp;amp;height=171&amp;amp;face=0_0_132_171&quot;&gt;&lt;a href=&quot;https://doi.org/10.1145/3354265.3354279&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://doi.org/10.1145/3354265.3354279&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bZiG0B/dJMb8T9XpnB/ZGqPF7j900Sx6fTWG6Z731/img.jpg?width=132&amp;amp;height=171&amp;amp;face=0_0_132_171');&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;Feature Extraction using Spiking Convolutional Neural Networks | Proceedings of the International Conference on Neuromorphic Sys&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Brain-inspired learning models attempt to mimic the computations performed in the neurons and synapses constituting the human brain to achieve its efficiency in cognitive tasks. In this work, we propose Spike Timing Dependent Plasticity-based ...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dl.acm.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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;요약&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;STDP(Spike Timing Dependent Plasticity)로 비지도 학습된 스파이킹 CNN의 특징 추출 능력을 MNIST/N-MNIST에서 검증하고, catastrophic forgetting에 대한 내성과 과훈련 문제를 분석한 논문&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;문제 정의&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존 딥러닝(DCNN)은 높은 정확도를 달성하지만, 학습과 추론 모두에서 막대한 메모리와 에너지를 소모한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1179&quot; data-origin-height=&quot;465&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1sQGu/dJMcafMyB8E/TsYGwAAMfljroMn3TkTmrk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1sQGu/dJMcafMyB8E/TsYGwAAMfljroMn3TkTmrk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1sQGu/dJMcafMyB8E/TsYGwAAMfljroMn3TkTmrk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1sQGu%2FdJMcafMyB8E%2FTsYGwAAMfljroMn3TkTmrk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;708&quot; height=&quot;279&quot; data-origin-width=&quot;1179&quot; data-origin-height=&quot;465&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Spiking Neural Networks(SNN)&lt;/b&gt;은 생물학적 신경망을 모사한 대안으로, Intel의 Loihi 같은 뉴로모픽 칩 위에서 비동기적으로 동작하며 저전력으로 연산할 수 있다는 장점이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 논문은 기존 CNN의 backpropagation 대신 &lt;b&gt;STDP라는 생물학적 학습 규칙&lt;/b&gt;으로 컨볼루션 레이어를 비지도 학습시킨 뒤, 추출된 특징으로 분류 성능을 달성할 수 있는지를 탐구한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;핵심 아이디어 &amp;mdash; STDP 기반 비지도 특징 추출&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;네트워크 구조&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1224&quot; data-origin-height=&quot;547&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bAMdrw/dJMb99ZSoiW/wu9PpQAgCIUhcKKRFo4aFK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bAMdrw/dJMb99ZSoiW/wu9PpQAgCIUhcKKRFo4aFK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bAMdrw/dJMb99ZSoiW/wu9PpQAgCIUhcKKRFo4aFK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbAMdrw%2FdJMb99ZSoiW%2Fwu9PpQAgCIUhcKKRFo4aFK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;658&quot; height=&quot;294&quot; data-origin-width=&quot;1224&quot; data-origin-height=&quot;547&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;L1(입력 스파이크 이미지, ON/OFF 센터 2채널) &amp;rarr; L2(30개 맵, 5&amp;times;5 커널 컨볼루션) &amp;rarr; L3(2&amp;times;2 max pooling) &amp;rarr; L4(flatten + 분류기)의 구조다. 핵심은 &lt;b&gt;L1&amp;rarr;L2의 컨볼루션 커널이 STDP로 비지도 학습&lt;/b&gt;된다는 점이다. 분류는 마지막 레이어에서만 backprop 또는 SVM으로 수행한다.&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;STDP 학습 규칙&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;입력 뉴런(pre-synaptic)이 출력 뉴런(post-synaptic)보다 먼저 스파이크하면 시냅스 가중치를 증가시키고, 반대면 감소시킨다. 수식으로는 $&amp;Delta;w = &amp;plusmn;a&amp;middot;w(1&amp;minus;w)$ 형태로, 가중치가 0~1 사이에 자연스럽게 바운딩된다. 시간 차이의 크기에 의존하지 않는 단순화된 STDP 모델을 사용했다.&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;Lateral Inhibition과 STDP Competition&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;같은 위치 (u,v)에서 여러 맵의 뉴런이 동시에 threshold를 넘으면, 가장 높은 membrane potential을 가진 뉴런만 스파이크하고 나머지는 억제된다(lateral inhibition). 추가로 STDP competition에서는 11&amp;times;11 영역 내에서 모든 맵을 걸쳐 최대 하나의 뉴런만 스파이크할 수 있다. 이를 통해 각 맵이 서로 다른 특징을 학습하도록 유도하고, 스파이크의 희소성(sparsity)을 유지한다.&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;R-STDP (Reward-modulated STDP)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SVM이나 backprop 분류기 대신, 보상/벌칙 신호로 마지막 레이어를 학습하는 방식이다. 정답이면 STDP 방향으로, 오답이면 반대 방향으로 가중치를 업데이트한다. STDP가 구분하기 어려운 유사 특징(예: &quot;1&quot;과 &quot;7&quot;)을 더 잘 분리할 수 있다고 알려져 있으나, 과적합 경향이 있고 가중치 초기화에 민감하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;실험 결과&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;MNIST 분류:&lt;/b&gt; 단일 컨볼루션/풀링 레이어 + SVM(RBF)으로 &lt;b&gt;98.8%&lt;/b&gt; test accuracy를 달성했다. 2-layer backprop 분류기로는 98.4%였다. STDP로 비지도 학습된 특징이 단순한 선형/SVM 분류기만으로도 높은 정확도를 만든다는 점에서, STDP가 입력을 고차원에서 쉽게 분리 가능한 표현으로 변환한다는 주장을 뒷받침한다.&lt;/p&gt;
&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;N-MNIST:&lt;/b&gt; MNIST로 학습한 커널을 그대로 사용해 N-MNIST(이벤트 카메라 데이터)에 적용한 결과, SVM으로 98.32%를 달성했다. 도메인 간 전이 가능성을 보여준다.&lt;/p&gt;
&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;Catastrophic Forgetting:&lt;/b&gt; 가장 흥미로운 실험이다. {0,1,2,3,4}를 학습한 뒤 {5,6,7,8,9}를 학습시켰을 때, 기존 CNN은 첫 번째 세트의 정확도가 10%(랜덤 수준)으로 폭락한 반면, 스파이킹 CNN은 77%를 유지했다. 10%의 이전 데이터를 재학습에 포함시키면 95.1%까지 회복되었다. 논문의 표현대로 &quot;잊기는 하지만, 재앙적으로 잊지는 않는다.&quot;&lt;/p&gt;
&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; 2층 컨볼루션 네트워크에서 학습을 오래 진행하면 커널 가중치가 0 또는 1로 포화되면서 학습된 특징이 단순해지는 현상을 관찰했다. 가중치 차이의 시간적 변화를 모니터링하면 과훈련 시작점(약 80~100 샘플 시점)을 탐지할 수 있음을 보여준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;R-STDP 한계:&lt;/b&gt; R-STDP 분류기는 90.1%에 그쳐, backprop 분류기(98.4%)나 SVM(98.8%)에 크게 뒤처졌다. Backprop으로 학습된 좋은 가중치로 초기화해도 결국 90%로 수렴하여, R-STDP 자체의 최적화 능력 한계를 시사한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;강점 및 한계&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;강점&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;STDP 비지도 학습으로 추출한 특징만으로 98.8% 정확도를 달성한 점&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Catastrophic forgetting 실험이 CNN과의 직접 비교로 설계되어 SNN의 구조적 이점이 명확히 드러난다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;과훈련 탐지를 위한 가중치 변화 모니터링도 실용적인 기여다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;한계&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실험이 MNIST/N-MNIST에 한정되어 있어, 더 복잡한 데이터셋(CIFAR-10, ImageNet 등)에서의 확장성은 검증되지 않았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;R-STDP의 성능이 기대에 못 미쳤고, 2층 컨볼루션으로 확장하면 오히려 정확도가 떨어지는 문제도 해결되지 않았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;STDP의 학습률 스케줄링, threshold 설정 등 하이퍼파라미터 민감도에 대한 체계적 분석도 부족하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Backpropagation 없이 생물학적 학습 규칙만으로 CNN급 특징 추출이 가능하다는 것을 보여준 논문이다. 특히 catastrophic forgetting에 대한 자연적 내성은 continual learning 관점에서 주목할 만하다. 뉴로모픽 칩(Loihi 등) 위에서의 초저전력 추론을 목표로 하는 연구라면, STDP 기반 비지도 특징 추출이 backprop의 대안이 될 수 있음을 시사한다.&lt;/p&gt;</description>
      <category>논문리뷰</category>
      <author>gwlim3012</author>
      <guid isPermaLink="true">https://gwlim3012.tistory.com/39</guid>
      <comments>https://gwlim3012.tistory.com/39#entry39comment</comments>
      <pubDate>Sun, 8 Mar 2026 10:00:50 +0900</pubDate>
    </item>
    <item>
      <title>[논문 리뷰] Distilling Step-by-Step! Outperforming Larger Language Models with Less Training Data and Smaller Model Sizes</title>
      <link>https://gwlim3012.tistory.com/38</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;b&gt; Distilling Step-by-Step! Outperforming Larger Language Models with Less Training Data and Smaller Model Sizes&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;Cheng-Yu Hsieh, Chun-Liang Li, Chih-Kuan Yeh, Hootan Nakhost, Yasuhisa Fujii, Alexander Ratner, Ranjay Krishna, Chen-Yu Lee, Tomas Pfister&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt; arXiv:2305.02301 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;b&gt;ACL 2023&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;요약&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;LLM에서 label 뿐 아니라 rationale까지 추출하여 소형 모델을 multi-task로 학습시키면, 기존 finetuning이나 distillation보다 훨씬 적은 데이터와 작은 모델로도 LLM을 능가할 수 있다는 것을 보인 논문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;문제 정의&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;726&quot; data-origin-height=&quot;329&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TwjgR/dJMcahcu60l/v5AMGrxIgKDXnIDkSfG671/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TwjgR/dJMcahcu60l/v5AMGrxIgKDXnIDkSfG671/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TwjgR/dJMcahcu60l/v5AMGrxIgKDXnIDkSfG671/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTwjgR%2FdJMcahcu60l%2Fv5AMGrxIgKDXnIDkSfG671%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;598&quot; height=&quot;271&quot; data-origin-width=&quot;726&quot; data-origin-height=&quot;329&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;540B PaLM 같은 대규모 LLM을 서빙하려면 수백 GB의 GPU 메모리와 특수 인프라가 필요하다. 현실적으로 대부분의 서비스 팀은 이런 자원을 감당할 수 없으므로, 작은 task-specific 모델을 배포하는 것이 일반적이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;작은 모델을 만드는 기존 방법은 두 가지다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Standard finetuning&lt;/b&gt;은 사람이 만든 레이블로 사전학습 모델을 미세조정하고, &lt;b&gt;Standard distillation&lt;/b&gt;은 LLM이 생성한 pseudo label로 학습한다. 문제는 두 방법 모두 LLM 수준의 성능에 도달하려면 &lt;b&gt;대량의 학습 데이터&lt;/b&gt;가 필요하다는 점이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 논문의 핵심 통찰은 관점의 전환에 있다. LLM을 단순히 &quot;노이즈 있는 레이블 생성기&quot;로 보는 대신, &quot;추론할 수 있는 에이전트&quot;로 바라본다. LLM은 Chain-of-Thought(CoT) 프롬프팅으로 답뿐만 아니라 그 답에 도달한 이유(rationale)까지 생성할 수 있고, 이 rationale에는 소형 모델이 많은 데이터를 통해서야 겨우 학습할 수 있는 task knowledge가 담겨 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;핵심 아이디어 - Rationale을 Student의 추가적인 감독 신호로 쓰자&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1470&quot; data-origin-height=&quot;745&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/52G7m/dJMcadgSjcV/B1ziBSITvnBcsyk9Kr12z0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/52G7m/dJMcadgSjcV/B1ziBSITvnBcsyk9Kr12z0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/52G7m/dJMcadgSjcV/B1ziBSITvnBcsyk9Kr12z0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F52G7m%2FdJMcadgSjcV%2FB1ziBSITvnBcsyk9Kr12z0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;669&quot; height=&quot;339&quot; data-origin-width=&quot;1470&quot; data-origin-height=&quot;745&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Step 1: LLM에서 Rationale 추출&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Few-shot CoT 프롬프팅으로 LLM(540B PaLM)에 입력을 넣으면, 레이블과 함께 자연어 rationale이 생성된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어, &quot;골프 장비를 들고 있는 사람이 어디로 갈까?&quot;라는 질문에 대해 LLM은 &quot;골프에 사용되는 곳이어야 하고, 선택지 중 클럽만 골프에 해당한다&quot;라는 rationale과 함께 &quot;club&quot;이라는 답을 출력한다.&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;Step 2: Multi-task Learning으로 소형 모델 학습&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;추출한 rationale을 활용하는 방법이 핵심이다. Rationale을 추가 입력으로 넣는 방식은 추론 시에도 LLM이 필요하므로 배포 문제가 해결되지 않는다. 또한 rationale과 label을 단일 시퀀스로 이어 붙여 하나의 타겟으로 학습하는 single-task 방식은 오히려 성능을 해칠 수 있다.&lt;/p&gt;
&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;multi-task learning&lt;/b&gt;을 택한다. 입력에 task prefix([label] 또는 [rationale])를 붙여, 하나의 모델이 레이블 예측과 rationale 생성을 동시에 학습한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;$$L=L_{label}+&amp;lambda;&amp;middot;L_{rationale}$$&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;핵심은 &lt;b&gt;추론 시에는 [label] prefix만 사용&lt;/b&gt;하므로 LLM 없이 소형 모델만으로 예측이 가능하다는 점이다. Rationale 생성 태스크는 학습 시에만 보조 감독 신호로 작용하여, 모델이 입력과 출력 사이의 관계를 더 깊이 이해하도록 유도한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;실험 결과&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4개 NLP 벤치마크(e-SNLI, ANLI, CQA, SVAMP), Teacher LLM은 540B PaLM, Student는 T5(220M/770M/11B)로 실험했다.&lt;/p&gt;
&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; 220M T5 기준, Distilling Step-by-Step은 e-SNLI에서 전체 데이터의 12.5%만으로 standard finetuning(100% 데이터)을 능가했다. 평균적으로 50% 이상의 데이터 절감을 달성했다.&lt;/p&gt;
&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; 540B PaLM의 Few-shot CoT를 e-SNLI에서 220M T5로 능가했고, ANLI에서는 770M T5(700배 이상 작은)로 능가했다. 레이블 없이 unlabeled 데이터만 사용해도 3/4 데이터셋에서 LLM을 넘어섰다.&lt;/p&gt;
&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; ANLI에서 770M T5 + 80% 데이터만으로 540B PaLM을 능가한 반면, standard finetuning은 100% 데이터를 써도 따라잡지 못했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Ablation:&lt;/b&gt; Multi-task 학습이 single-task(rationale+label 이어 붙이기) 대비 일관되게 우수했다. Single-task는 ANLI, CQA에서 standard finetuning보다 오히려 성능이 떨어지기도 했다. 또한 20B GPT-NeoX에서 추출한 rationale로도 성능 향상이 있었지만, 540B PaLM 대비 향상 폭이 작아 rationale 품질이 중요함을 보여준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;강점 및 한계&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;강점&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;LLM의 추론 능력을 &quot;학습 신호&quot;로 재활용한다는 발상&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Hinton의 original KD가 soft target으로 오답 간 확률 구조를 전달했다면, 이 논문은 자연어 rationale로 명시적 추론 과정을 전달한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Multi-task 프레임워크 덕분에 추론 시 LLM이 불필요하다는 점이 실용적이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;한계&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Few-shot CoT 프롬프트 구성에 사람의 개입(약 10개 예시)이 필요하며, LLM이 복잡한 추론에서 한계를 보일 경우 rationale 품질이 저하될 수 있다. Teacher의 bias가 student에 그대로 전이되는 문제도 남아 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실제로 지금 하고 있는 연구 과제에 이 논문의 방법론을 직접 적용해보았는데, teacher에서 나온 rationale의 품질과 few-shot 프롬프트의 품질에 크게 의존하는 경향을 보였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Teacher가 내뱉는 rationale의 퀄리티가 달라지면 student에 distill 하였을 때의 성능도 큰 변동이 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 논문에서는 540B PaLM, 그리고 20B GPT-NeoX을 사용했지만, 실제로 7.8B 모델을 teacher model로 사용하여 실험해보았을 때 student model을 그냥 fine-tuning 하는 것보다 더 정확도가 떨어지는 모습을 보였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼에도 multi-task loss를 통해 rationale을 명시적으로 학습 신호에 포함시키는 것만으로, 추론 시점에서 모델 파라미터에 추론 능력이 내재화된다는 점을 보여준 논문이라고 생각한다.&lt;/p&gt;</description>
      <category>논문리뷰</category>
      <author>gwlim3012</author>
      <guid isPermaLink="true">https://gwlim3012.tistory.com/38</guid>
      <comments>https://gwlim3012.tistory.com/38#entry38comment</comments>
      <pubDate>Sun, 8 Mar 2026 10:00:23 +0900</pubDate>
    </item>
    <item>
      <title>[논문 리뷰] Distilling the Knowledge in a Neural Network</title>
      <link>https://gwlim3012.tistory.com/37</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;b&gt; Distilling the Knowledge in a Neural Network&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;Geoffrey Hinton, Oriol Vinyals, Jeff Dean&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;arXiv:1503.02531 (2015)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;b&gt;NIPS 2014 Deep Learning Workshop&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;요약&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;크고 무거운 모델(또는 앙상블)의 &quot;지식&quot;을 softmax temperature를 높여 만든 &lt;b&gt;soft target&lt;/b&gt;으로 작고 가벼운 모델에 전이하는 &lt;b&gt;Knowledge Distillation&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;Knowledge Distillation의 시초가 된 논문.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;문제 정의&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;논문은 곤충의 비유로 시작한다. 곤충은 영양을 흡수하는 데 최적화된 유충 형태와 이동&amp;middot;번식에 최적화된 성체 형태가 완전히 다르다. 마찬가지로 머신러닝에서도 학습 단계와 배포 단계의 요구사항은 크게 다르다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;학습은 대규모 데이터에서 구조를 추출해야 하므로 거대한 모델이나 앙상블이 유리하지만, 배포는 지연과 연산 자원의 제약이 엄격하다. 앙상블은 성능을 올리는 가장 단순한 방법이지만 추론 비용이 너무 크다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼, &lt;b&gt;앙상블 또는 대형 모델이 학습한 &quot;지식&quot;을 배포 가능한 단일 소형 모델로 옮길 수 있는가?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;핵심 아이디어 - Soft Target&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;논문은 &quot;지식은 파라미터가 아니라 일반화 방식이다&quot; 라는 문장으로 시작한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모델의 지식을 파라미터 값 자체로 보면, 모델 구조가 달라지는 순간 지식 전이가 불가능해 보인다. 하지만 Hinton은 지식을 &lt;b&gt;입력에서 출력으로의 매핑&lt;/b&gt;, 특히 &lt;b&gt;오답 클래스에 부여하는 확률의 상대적 비율&lt;/b&gt;로 재정의한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어, BMW 이미지가 쓰레기차로 오분류될 확률이 당근으로 오분류될 확률보다 훨씬 높다. 이 &quot;틀린 답들의 상대적 확률&quot;이야말로 모델이 학습한 유사도 구조(similarity structure)를 담고 있다. Hard label(0 또는 1)로는 이 정보가 전달되지 않는다.&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;Temperature Scaling&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;표준 softmax에서 temperature T를 높이면 출력 확률 분포가 부드러워진다. 이렇게 만든 soft target에는 오답 클래스 간의 상대적 관계 정보가 풍부하게 담긴다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;$$q_i = \frac{\exp(z_i / T)}{\sum_j \exp(z_j / T)}$$&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;944&quot; data-origin-height=&quot;299&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oMDE5/dJMcadVq5HN/7L2KIfglRwVvwM7bBOIDj0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oMDE5/dJMcadVq5HN/7L2KIfglRwVvwM7bBOIDj0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oMDE5/dJMcadVq5HN/7L2KIfglRwVvwM7bBOIDj0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoMDE5%2FdJMcadVq5HN%2F7L2KIfglRwVvwM7bBOIDj0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;658&quot; height=&quot;208&quot; data-origin-width=&quot;944&quot; data-origin-height=&quot;299&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;T=1이면 일반적인 softmax이고, T가 클수록 분포가 uniform에 가까워지면서 클래스 간 관계 정보가 드러난다.&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;Distillation 학습&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Student 모델은 두 가지 목적함수의 가중합으로 학습한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫째는 Teacher의 soft target과의 cross-entropy(높은 T 사용), 둘째는 정답 hard label과의 cross-entropy(T=1).&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;논문에서는 hard label의 가중치를 상대적으로 낮게 설정하는 것이 좋다고 한다. soft target의 gradient가 &lt;span style=&quot;letter-spacing: 0px;&quot;&gt;$\frac{1}{T^2}$&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로 스케일링되므로, $T&amp;sup2;$를 곱해줘야 두 항의 상대적 기여가 일정하게 유지된다.&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;Logit Matching과의 관계&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;T가 충분히 높고 logit이 zero-mean이면, distillation의 gradient는 $\frac{(z_i - v_i)}{NT^2} $로 근사된다. 즉 &lt;b&gt;높은 temperature의 distillation은 logit 간 L2 distance를 최소화하는 것과 동치&lt;/b&gt;다. Caruana et al.의 logit matching이 distillation의 특수 케이스임을 수학적으로 보인 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;실험 결과&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;MNIST&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Teacher(1200 units &amp;times; 2 layers, dropout): 67 test errors.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;같은 크기의 Student를 hard label로만 학습하면 146 errors, soft target(T=20)으로 distillation하면 74 errors.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;더 놀라운 건, transfer set에서 숫자 3을 완전히 제거해도 distilled 모델이 test 3의 98.6%를 맞춘다는 점이다. &lt;b&gt;soft target 안에 &quot;3은 8이나 5와 비슷하다&quot;는 구조적 정보가 암묵적으로 담겨 있기 때문&lt;/b&gt;이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Speech Recognition (ASR)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Android 음성 검색에 쓰이는 85M 파라미터 DNN 음향 모델 기준, 10개 모델 앙상블이 달성한 개선(Frame Accuracy 58.9% &amp;rarr; 61.1%, WER 10.9% &amp;rarr; 10.7%)의 80% 이상을 단일 distilled 모델이 회복했다(60.8%, 10.7%).&lt;/p&gt;
&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;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Soft Target의 정규화 효과&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가장 인상적인 실험은 학습 데이터의 3%만 사용한 경우다. hard target으로 학습하면 심한 과적합(test accuracy 44.5%)이 발생하지만, soft target으로 학습하면 57.0%까지 올라간다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전체 데이터(58.9%) 대비 2%p 차이밖에 안 나는 것이다.&lt;b&gt; Soft target 자체가 강력한 정규화 역할을 한다&lt;/b&gt;는 것을 보여준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Specialist Models (JFT)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1억 장, 15,000 클래스의 JFT 데이터셋에서는 전체 앙상블 학습이 비현실적이다. 대신 generalist 모델 1개 + 혼동하기 쉬운 클래스 그룹별 specialist 모델 61개를 조합하여 4.4%의 상대적 정확도 향상을 달성했다. specialist는 며칠 만에 학습 가능하고 완전 병렬화 가능하다는 점이 실용적이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;강점 및 한계&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;강점&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;지식 = soft target의 확률 분포&quot;라는 재정의, Knowledge Distillation의 개념적 토대를 세운 사실상의 원조 논문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Temperature 하나의 하이퍼파라미터 추가만으로 앙상블의 지식을 단일 모델로 전이할 수 있고, 수학적으로도 logit matching의 일반화임을 보였다. 3% 데이터 실험은 soft target의 정규화 효과를 극적으로 보여주었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;한계&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MNIST와 ASR 위주의 실험으로, vision 분류 등 다른 도메인에서의 일반화 검증이 부족하다. Temperature 선택에 대한 체계적 가이드라인 없이 경험적으로 탐색해야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후 많은 KD 연구에서 이 논문의 soft target + temperature 프레임워크 위에서 많은 개선을 이루고 있다.&lt;/p&gt;</description>
      <category>논문리뷰</category>
      <author>gwlim3012</author>
      <guid isPermaLink="true">https://gwlim3012.tistory.com/37</guid>
      <comments>https://gwlim3012.tistory.com/37#entry37comment</comments>
      <pubDate>Sat, 7 Mar 2026 09:03:21 +0900</pubDate>
    </item>
    <item>
      <title>[논문 리뷰] TaskSense: A Translation-like Approach for Tasking Heterogeneous Sensor Systems with LLMs</title>
      <link>https://gwlim3012.tistory.com/36</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #666666;&quot;&gt; TaskSense: A Translation-like Approach for Tasking Heterogeneous Sensor Systems with LLMs&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;Kaiwei Liu, Bufang Yang, Lilin Xu, Yunqi Guo, Guoliang Xing, Xian Shuai, Xiaozhe Ren, Xin Jiang, Zhenyu Yan&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;SenSys '25&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;DOI: &lt;a style=&quot;color: #666666;&quot; href=&quot;https://doi.org/10.1145/3715014.3722070&quot;&gt;10.1145/3715014.3722070&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;요약&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용자의 자연어 질의를 센서 언어(Sensor Language)로 번역하여, 이종 센서 시스템을 자동으로 조율, 실행, 응답까지 수행하는 LLM 기반 시스템 구축&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;문제 정의&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1578&quot; data-origin-height=&quot;518&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Sh0at/dJMcacoJCyv/MCkDDR4owLV4R2YYm04zXk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Sh0at/dJMcacoJCyv/MCkDDR4owLV4R2YYm04zXk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Sh0at/dJMcacoJCyv/MCkDDR4owLV4R2YYm04zXk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSh0at%2FdJMcacoJCyv%2FMCkDDR4owLV4R2YYm04zXk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;765&quot; height=&quot;251&quot; data-origin-width=&quot;1578&quot; data-origin-height=&quot;518&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;스마트홈, 스마트팩토리 같은 환경에는 RGB 카메라, 깊이 센서, 오디오 센서, 온습도 센서 등 다양한 센서 시스템이 공존한다. 사용자가 &quot;아기가 괜찮은지 확인해줘&quot;라고 물으면, 시스템은 오디오 센서로 울음을 감지하고 비디오 센서로 넘어짐을 확인하고, 두 결과를 조합해 답변해야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존 시스템의 한계는 크게 세 가지다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;첫째, 규칙 기반 (rule-based) 시스템의 확장성 부족&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Home Assistant 같은 플랫폼은 자동화 스크립트를 사람이 직접 정의해야 한다. 디바이스 조합이 늘어나면 rule-based 방식이 비현실적으로 복잡해진다.&lt;/p&gt;
&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;둘째, 기존 LLM agent의 센서 이해 부족&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;HuggingGPT나 ControlLLM 같은 연구는 LLM이 외부 AI 모델을 호출해 복잡한 작업을 수행할 수 있음을 보여줬다. 하지만 이들은 주로 소프트웨어 도구(계산기, Wikipedia, 이미지 생성 모델 등)를 대상으로 하며, 실제 센서 시스템의 물리적 제약과 데이터 의존 관계를 이해하지 못한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;셋째, 실세계 환경의 불확실성.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;조명 변화, 가림(occlusion), 센서 고장 같은 요인은 정확한 계획이 있더라도 실행 실패를 유발한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GPT-3.5와 GPT-4로 HuggingGPT 프레임워크를 돌렸을 때, &lt;b&gt;정답률은 20~45% 수준&lt;/b&gt;에 불과했다. 오류의 가장 큰 비중은 &quot;풀 수 없는 질의를 풀 수 있다고 판단하는 것(Solvability 오류)&quot;이었고, 그 다음이 잘못된 도구 의존 관계를 생성하는 Plan Error였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;핵심 아이디어 - Sensor Language&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;TaskSense의 핵심은 &lt;b&gt;센서 시스템의 기능과 의존 관계를 하나의 &quot;언어&quot;로 정의&lt;/b&gt;하고, &lt;b&gt;사용자의 자연어 질의를 이 센서 언어로 &quot;번역&quot;하는 것&lt;/b&gt;이다. 기계번역에서 parallel corpora를 사용하듯, Query-Plan pair를 예시 라이브러리로 구성해 LLM의 번역 능력을 활용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;센서 언어는 두 가지 구성 요소로 이루어진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;736&quot; data-origin-height=&quot;496&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bx44SZ/dJMcaaqVu7G/juioGL8kfWnP3L0Zr7ZTS1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bx44SZ/dJMcaaqVu7G/juioGL8kfWnP3L0Zr7ZTS1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bx44SZ/dJMcaaqVu7G/juioGL8kfWnP3L0Zr7ZTS1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbx44SZ%2FdJMcaaqVu7G%2FjuioGL8kfWnP3L0Zr7ZTS1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;516&quot; height=&quot;348&quot; data-origin-width=&quot;736&quot; data-origin-height=&quot;496&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Vocabulary Set:&lt;/b&gt; 각 도구의 메타데이터를 정의한다. 도구 이름, 소속 디바이스, 기능 설명, 입력/출력 형식, 지원 레이블 목록까지 포함된다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;834&quot; data-origin-height=&quot;506&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bRaxoV/dJMcafsdvoh/jKwcRtzsF17TTkyAaTiW8K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bRaxoV/dJMcafsdvoh/jKwcRtzsF17TTkyAaTiW8K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bRaxoV/dJMcafsdvoh/jKwcRtzsF17TTkyAaTiW8K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbRaxoV%2FdJMcafsdvoh%2FjKwcRtzsF17TTkyAaTiW8K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;577&quot; height=&quot;350&quot; data-origin-width=&quot;834&quot; data-origin-height=&quot;506&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Sensor Grammar (문법 규칙):&lt;/b&gt; 도구 간의 유효한 의존 관계를 DAG(Directed Acyclic Graph)로 정의한다. 데이터 의존성(한 도구의 출력이 다른 도구의 입력이 되는 관계)과 제어 의존성(특정 도구의 실행 전제 조건)으로 나뉜다. 예를 들어, 얼굴 인식 도구는 반드시 얼굴 탐지 도구 뒤에 와야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 설계의 핵심 이점은 &lt;b&gt;자동 초기화&lt;/b&gt;가 가능하다는 점이다. 기존 HuggingGPT나 Sasha는 도구 집합을 수동으로 정의해야 하지만, TaskSense는 소스 코드나 API 문서를 LLM에 넣어 few-shot prompting으로 Vocabulary와 Grammar를 자동 생성한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; font-size: 1.44em; letter-spacing: -1px;&quot;&gt;시스템 아키텍처&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1620&quot; data-origin-height=&quot;634&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dd9Ovb/dJMcadHTVZd/ogkCDXHp9Qw4S4b4X01oFK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dd9Ovb/dJMcadHTVZd/ogkCDXHp9Qw4S4b4X01oFK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dd9Ovb/dJMcadHTVZd/ogkCDXHp9Qw4S4b4X01oFK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdd9Ovb%2FdJMcadHTVZd%2FogkCDXHp9Qw4S4b4X01oFK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;730&quot; height=&quot;286&quot; data-origin-width=&quot;1620&quot; data-origin-height=&quot;634&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;TaskSense의 전체 파이프라인은 네 단계로 구성된다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;시스템 초기화 (&amp;sect;5.1)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;센서 시스템이 배포되면, Vocabulary Set과 Sensor Grammar를 자동으로 구성하고, Example Library를 만든다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;795&quot; data-origin-height=&quot;461&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/X4wEB/dJMcag5KxaV/k6X2Ihm633xuHSgcnilOhk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/X4wEB/dJMcag5KxaV/k6X2Ihm633xuHSgcnilOhk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/X4wEB/dJMcag5KxaV/k6X2Ihm633xuHSgcnilOhk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FX4wEB%2FdJMcag5KxaV%2Fk6X2Ihm633xuHSgcnilOhk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;586&quot; height=&quot;340&quot; data-origin-width=&quot;795&quot; data-origin-height=&quot;461&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Example Library는 기계번역의 parallel corpora 역할을 하며, 각 예시는 사용자 질의와 그에 대응하는 실행 계획의 쌍이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Example Library의 설계에서 주목할 점은 두 가지다.&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;풀 수 없는(Unsolvable) 예시의 포함:&lt;/b&gt; &quot;Bob의 혈당을 요약해줘&quot;처럼 혈당 측정기가 없는 환경에서 답할 수 없는 질의에 대해 빈 계획(Empty Plan)을 매칭한 예시를 포함시킨다. 이를 통해 LLM의 hallucination을 방지한다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;자동 증강(Augmentation):&lt;/b&gt; 동일한 의미의 질의를 다양한 표현 스타일로 LLM을 활용해 재작성 함으로써, 사용자의 다양한 표현에 대한 강건성을 높인다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Plan Generation (&amp;sect;5.2)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용자 질의가 들어오면, 텍스트 임베딩 기반으로 Example Library에서 유사한 예시를 검색(retrieval)하고, Vocabulary Set + Grammar + 검색된 예시를 포함한 프롬프트로 LLM이 실행 계획을 생성한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;생성된 계획은 두 가지 검증을 거친다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Solvability Check:&lt;/b&gt; 질의의 목표 레이블이 Vocabulary Set에 존재하는지 확인한다. 없으면 &quot;풀 수 없음&quot;으로 처리한다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Grammar Check:&lt;/b&gt; 생성된 계획의 DAG가 Sensor Grammar DAG의 부분 그래프인지 서브그래프 매칭으로 검증한다. 잘못된 의존 관계나 존재하지 않는 도구를 잡아낸다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Runtime Plan Adaptation (&amp;sect;5.3)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 논문에서 가장 흥미로운 부분이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;841&quot; data-origin-height=&quot;557&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NOutL/dJMcacWyohn/09l0IrGTo0NPnBtglPW4l0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NOutL/dJMcacWyohn/09l0IrGTo0NPnBtglPW4l0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NOutL/dJMcacWyohn/09l0IrGTo0NPnBtglPW4l0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNOutL%2FdJMcacWyohn%2F09l0IrGTo0NPnBtglPW4l0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;619&quot; height=&quot;410&quot; data-origin-width=&quot;841&quot; data-origin-height=&quot;557&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정적인 계획은 실세계에서 자주 실패한다. 조명이 어두워지면 RGB 카메라 기반 경로가 먹통이 되지만, 깊이 카메라 기반 경로는 영향을 받지 않을 수 있다. TaskSense는 이런 상보성(complementarity)을 활용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;798&quot; data-origin-height=&quot;489&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/o1Jf6/dJMcadnBBEG/YkKhCGj2L0sSKaJVKQ5IAK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/o1Jf6/dJMcadnBBEG/YkKhCGj2L0sSKaJVKQ5IAK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/o1Jf6/dJMcadnBBEG/YkKhCGj2L0sSKaJVKQ5IAK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fo1Jf6%2FdJMcadnBBEG%2FYkKhCGj2L0sSKaJVKQ5IAK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;565&quot; height=&quot;346&quot; data-origin-width=&quot;798&quot; data-origin-height=&quot;489&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;동작 방식은 다음과 같다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;대안 그룹 인식:&lt;/b&gt; 유사한 기능의 도구들을 그룹으로 묶어 &quot;적응 가능 그룹(Adaptable Group)&quot; pool을 사전에 구성한다. 예: RGB HAR vs. Depth HAR vs. Thermal HAR.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Pre-execution Filtering:&lt;/b&gt; 각 시간 구간에서 대안 경로의 센서 데이터 가용성과 품질을 확인한다. 데이터가 누락되었거나 SNR이 극히 낮으면 해당 경로를 건너뛴다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Post-execution Selection:&lt;/b&gt; 실행 후 결과가 비어 있거나 유효하지 않으면 다른 대안 경로로 전환한다.&lt;/li&gt;
&lt;/ol&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;1337&quot; data-origin-height=&quot;548&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vJQr6/dJMcaaxHn4o/KSBgfmEm0PfIcElkuMgxc1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vJQr6/dJMcaaxHn4o/KSBgfmEm0PfIcElkuMgxc1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vJQr6/dJMcaaxHn4o/KSBgfmEm0PfIcElkuMgxc1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvJQr6%2FdJMcaaxHn4o%2FKSBgfmEm0PfIcElkuMgxc1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;685&quot; height=&quot;281&quot; data-origin-width=&quot;1337&quot; data-origin-height=&quot;548&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1326&quot; data-origin-height=&quot;446&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xoScp/dJMcaioXO8h/qyRpTqT1qvlONMrSH6tGt1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xoScp/dJMcaioXO8h/qyRpTqT1qvlONMrSH6tGt1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xoScp/dJMcaioXO8h/qyRpTqT1qvlONMrSH6tGt1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxoScp%2FdJMcaioXO8h%2FqyRpTqT1qvlONMrSH6tGt1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;692&quot; height=&quot;317&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1326&quot; data-origin-height=&quot;446&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;논문의 Figure 9에서 보여준 end-to-end 예시가 인상적이다. &quot;Bob이 오후에 화장실 휴식 없이 너무 오래 일했나?&quot;라는 질의에 대해, 12시에는 RGB 경로, 1시에는 조명이 어두워져 깊이 카메라 경로로 자동 전환되고, 위생 모니터링 시스템은 별도의 적응 그룹으로 처리되는 과정을 보여준다.&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;Response Generation (&amp;sect;5.4)&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1316&quot; data-origin-height=&quot;156&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cWA8vJ/dJMcagLsgxE/A9sg5SWG96nfQULQpPKKj0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cWA8vJ/dJMcagLsgxE/A9sg5SWG96nfQULQpPKKj0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cWA8vJ/dJMcagLsgxE/A9sg5SWG96nfQULQpPKKj0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcWA8vJ%2FdJMcagLsgxE%2FA9sg5SWG96nfQULQpPKKj0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;725&quot; height=&quot;86&quot; data-origin-width=&quot;1316&quot; data-origin-height=&quot;156&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실행 결과를 사용자에게 답변하는 단계다. 여기서의 기술적 기여는 &lt;b&gt;Outcome-wise ID&lt;/b&gt;와 &lt;b&gt;Results Format Conversion&lt;/b&gt;이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 도구의 출력 항목에 고유 ID를 부여하고, ID 연결 관계를 통해 결과 트리를 구성한다. 그 다음 LCA(Lowest Common Ancestor) 알고리즘으로 객체와 속성을 매칭하여 구조화된 테이블로 변환한다. LLM의 토큰 한계와 수치 연산 한계를 극복하기 위해, 이 테이블에서 SQL-like 쿼리로 필요한 정보만 추출하여 응답을 생성한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;실험 결과&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4개 데이터셋(In-lab HAR, DAHLIA, Synthetic, Real-world), 베이스라인 HuggingGPT&amp;middot;Sasha, 6개 LLM으로 평가했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GPT-4 기준 핵심 수치만 뽑으면, In-lab에서 Planning Accuracy 0.97 / Response Accuracy 0.73, Real-world에서 0.82 / 0.75로 베이스라인 대비 최대 &lt;b&gt;3배의 Planning Accuracy, 1.75배의 Response Accuracy&lt;/b&gt; 향상을 달성했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6개 LLM 전부에서 일관되게 우위를 보였고, 오픈소스 Mistral Large에서도 Planning Accuracy 0.97로 상용 모델 수준의 성능이 나왔다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Ablation Study에서 가장 중요한 발견은 &lt;b&gt;Example Library가 성능에 가장 큰 영향을 미친다&lt;/b&gt;는 점이다. 제거 시 Planning Accuracy가 0.96 &amp;rarr; 0.58로 급락했다. 규칙(Grammar/Checking)보다 예시가 LLM의 센서 언어 학습에 더 결정적이라는 것으로, 기계번역에서 parallel corpora의 중요성과 일맥상통한다. RAG 대비로는 최대 19% 높은 Planning Score를 더 낮은 연산량으로 달성했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;강점 및 한계&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;강점&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;센서 조율 문제를 기계번역으로 재정의한 발상(Vocabulary = 도구, Grammar = 의존 관계, Parallel Corpora = Example Library)이 직관적이다. &quot;올바른 계획도 실세계에서 실패한다&quot;는 센서 시스템의 문제를 Dynamic Plan Adaptation으로 대응한 점과, Solvability + Grammar의 이중 검증 설계도 체계적이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;한계&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;도구가 task-specific 모델에 국한되어 foundation model 통합 시 Grammar 복잡도가 올라갈 수 있고, 매 질의마다 LLM API 호출이 필요해 비용&amp;middot;지연 이슈가 남아 있다. Seed Example의 초기 구축에도 여전히 사람의 개입이 필요하다.&lt;/p&gt;</description>
      <category>논문리뷰</category>
      <author>gwlim3012</author>
      <guid isPermaLink="true">https://gwlim3012.tistory.com/36</guid>
      <comments>https://gwlim3012.tistory.com/36#entry36comment</comments>
      <pubDate>Sat, 7 Mar 2026 07:40:15 +0900</pubDate>
    </item>
  </channel>
</rss>