<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>john8538 님의 블로그</title>
    <link>https://john8538.tistory.com/</link>
    <description>john8538 님의 블로그 입니다.</description>
    <language>ko</language>
    <pubDate>Tue, 21 Jul 2026 12:50:36 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>john8538</managingEditor>
    <image>
      <title>john8538 님의 블로그</title>
      <url>https://tistory1.daumcdn.net/tistory/7244113/attach/fba079679a5942ab864f9efb9c088cdd</url>
      <link>https://john8538.tistory.com</link>
    </image>
    <item>
      <title>AWS Korea와 코드트리가 함께하는 코딩 기초 챌린지 후기: &amp;quot;코딩 테스트, 이제 헤매지 않고 '0부터 100까지' 준비해요!&amp;quot;</title>
      <link>https://john8538.tistory.com/25</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;이번 챌린지에 새롭게 추가된 블로그 작성 미션을 통해 제가 직접 경험한 코드트리의 매력과 학습 효과를 공유하고자 합니다.&lt;/p&gt;
&lt;p data-sourcepos=&quot;5:1-5:33&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.codetree.ai/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.codetree.ai/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1747050217271&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;Codetree: Master Coding Interviews - Data Structures &amp;amp; Algorithms&quot; data-og-description=&quot;Master algorithms, ace tech interviews, and elevate your coding skills with Codetree's systematic curriculum and expert-crafted problem sets.&quot; data-og-host=&quot;www.codetree.ai&quot; data-og-source-url=&quot;https://www.codetree.ai/&quot; data-og-url=&quot;https://www.codetree.ai/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/b2Pivc/hyYRpz8PJu/wkzFMeCrGpXNlImoCvKPCK/img.png?width=1400&amp;amp;height=1400&amp;amp;face=0_0_1400_1400,https://scrap.kakaocdn.net/dn/nfY0z/hyYU1j5Q9o/NY24cSPqUHde7F0DkfKveK/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/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.codetree.ai/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/b2Pivc/hyYRpz8PJu/wkzFMeCrGpXNlImoCvKPCK/img.png?width=1400&amp;amp;height=1400&amp;amp;face=0_0_1400_1400,https://scrap.kakaocdn.net/dn/nfY0z/hyYU1j5Q9o/NY24cSPqUHde7F0DkfKveK/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;Codetree: Master Coding Interviews - Data Structures &amp;amp; Algorithms&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Master algorithms, ace tech interviews, and elevate your coding skills with Codetree's systematic curriculum and expert-crafted problem sets.&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-sourcepos=&quot;5:1-5:33&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;코딩 테스트 준비, 막막함 속에서 발견한 한 줄기 빛&lt;/b&gt;&lt;/p&gt;
&lt;p data-sourcepos=&quot;7:1-7:291&quot; data-ke-size=&quot;size16&quot;&gt;코딩의 중요성은 항상 인지하고 있었지만, 본격적으로 코딩 테스트(이하 코테)를 준비하려고 하니 어디서부터 어떻게 시작해야 할지 막막했습니다. 기존에는 프로그래머스, 백준과 같은 여러 문제 풀이 사이트를 기웃거리며 흩어져 있는 문제들을 정리하고, 필요한 개념들을 찾아다니느라 시간을 많이 허비했습니다. 마치 망망대해에서 홀로 등대를 찾아 헤매는 기분이었습니다. 양질의 문제는 많았지만, 그것들을 체계적으로 엮어 저의 실력을 '0부터 100까지' 끌어올려 줄 수 있는 가이드라인이 절실했습니다.&lt;/p&gt;
&lt;p data-sourcepos=&quot;7:1-7:291&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-sourcepos=&quot;9:1-9:42&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;코드트리 챌린지, '체계적인 학습'과 '개념 중심의 이해'를 선물하다&lt;/b&gt;&lt;/p&gt;
&lt;p data-sourcepos=&quot;11:1-11:84&quot; data-ke-size=&quot;size16&quot;&gt;이런 고민을 안고 있던 저에게 코드트리 챌린지는 그야말로 사막의 오아시스 같았습니다. 챌린지를 통해 제가 느낀 가장 큰 변화와 장점은 다음과 같습니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-sourcepos=&quot;13:1-24:0&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-sourcepos=&quot;13:1-15:0&quot;&gt;&lt;b&gt;혼자 공부할 때보다 훨씬 체계적인 학습이 가능해요.&lt;/b&gt; 코드트리는 마치 잘 짜인 로드맵처럼 단계별 학습 과정을 제공합니다. 기초 문법부터 시작해 자료구조, 알고리즘의 핵심 개념으로 자연스럽게 이어지는 커리큘럼은 &quot;다음에 무엇을 공부해야 하지?&quot;라는 고민을 말끔히 해결해 주었습니다. 혼자 공부할 때는 무엇을, 어느 깊이까지 파고들어야 할지 감을 잡기 어려웠는데, 코드트리는 명확한 길을 제시해주어 학습 효율을 크게 높여주었습니다.&lt;/li&gt;
&lt;li data-sourcepos=&quot;16:1-18:0&quot;&gt;&lt;b&gt;단순 문제 풀이를 넘어, 핵심 개념이 머릿속에 남아요.&lt;/b&gt; 이전에는 문제의 정답을 맞히는 데만 급급했다면, 코드트리에서는 각 문제와 강의가 어떤 핵심 개념을 목표로 하는지 명확히 제시해줍니다. 단순히 코드를 따라 치는 것이 아니라, '왜 이렇게 풀어야 하는지', '이 개념이 다른 문제에는 어떻게 적용될 수 있는지'를 스스로 고민하게 만듭니다. 덕분에 문제 풀이 후에도 관련 개념들이 머릿속에 더 오래, 그리고 더 선명하게 남는 것을 경험하고 있습니다.&lt;/li&gt;
&lt;li data-sourcepos=&quot;19:1-21:0&quot;&gt;&lt;b&gt;매일 미션 해결을 통해 코딩과 자연스럽게 친숙해져요.&lt;/b&gt; '매일 조금씩이라도 꾸준히 하는 것'이 얼마나 중요한지 알면서도 실천하기 어려웠습니다. 하지만 코드트리 챌린지는 매일 해결해야 할 명확한 미션을 제공하고, 이를 완수했을 때의 성취감을 느낄 수 있게 해줍니다. 매일 코딩을 접하고, 작은 성공들을 쌓아가면서 코딩에 대한 부담감은 줄어들고 익숙함과 자신감은 커지고 있습니다.&lt;/li&gt;
&lt;li data-sourcepos=&quot;22:1-24:0&quot;&gt;&lt;b&gt;함께하는 동료들 덕분에 동기부여가 확실해요!&lt;/b&gt; 챌린지에서 제공하는 디스코드 채널은 정말 큰 힘이 됩니다. 혼자서는 쉽게 지칠 수 있는 학습 과정이지만, 비슷한 목표를 가진 다른 참가자들과 질문을 주고받고, 서로의 성장을 응원하면서 강력한 동기부여를 얻고 있습니다. 마치 스터디 그룹에 참여하는 것처럼 긍정적인 에너지를 주고받으며 함께 나아가는 느낌입니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-sourcepos=&quot;25:1-25:39&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;코드트리, 코테 준비의 'A to Z'를 책임지는 든든한 동반자&lt;/b&gt;&lt;/p&gt;
&lt;p data-sourcepos=&quot;27:1-27:119&quot; data-ke-size=&quot;size16&quot;&gt;앞서 언급했듯이, 제가 기존에 느꼈던 가장 큰 어려움은 코테 준비를 위한 '체계적인 공간의 부재'였습니다. 여러 플랫폼에서 좋은 문제들을 찾아다니며 정보를 취합하는 과정은 비효율적이었고, 때로는 지치기도 했습니다.&lt;/p&gt;
&lt;p data-sourcepos=&quot;29:1-29:239&quot; data-ke-size=&quot;size16&quot;&gt;하지만 코드트리 챌린지를 경험하면서, 드디어 코딩의 기초부터 심화, 그리고 실전 코테 대비까지 '0부터 100까지' 모든 것을 아우를 수 있는 든든한 학습 공간이 생겼다는 확신을 갖게 되었습니다. 아직 코드트리를 경험해보지 못한 분들이 계시다면, 특히 코딩 공부를 어떻게 시작해야 할지, 코테 준비를 어떻게 체계적으로 해야 할지 고민이신 분들이라면 이번 챌린지를 통해 코드트리의 진가를 꼭 한번 경험해보시기를 강력히 추천합니다.&lt;/p&gt;</description>
      <category>일기장</category>
      <category>알고리즘</category>
      <category>자료구조</category>
      <category>코드트리</category>
      <category>코딩테스트</category>
      <author>john8538</author>
      <guid isPermaLink="true">https://john8538.tistory.com/25</guid>
      <comments>https://john8538.tistory.com/25#entry25comment</comments>
      <pubDate>Mon, 12 May 2025 17:45:01 +0900</pubDate>
    </item>
    <item>
      <title>[논문 리뷰] Your Diffusion Model is Secretly a Zero-Shot Classifier</title>
      <link>https://john8538.tistory.com/24</link>
      <description>&lt;blockquote data-ke-style=&quot;style3&quot;&gt;https://arxiv.org/abs/2303.16203&lt;br /&gt;&lt;br /&gt;대규모 텍스트-이미지 확산 모델이 이미지 생성뿐만 아니라 추가적인 학습 없이 zero-shot classification를 수행가능함을 보여주는 연구&lt;/blockquote&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Abstract&lt;/h2&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;기존 Diffusion 모델의 한계극복&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기존에는 이미지 생성에만 집중하였다.&lt;/li&gt;
&lt;li&gt;그러나 Diffusion 모델의 조건부 밀도 추정을 활용하면 이미지 분류와 같은 다운스트림 작업이 가능하다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Diffusion Classifier&lt;/b&gt; 제안
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Stable Diffusion 같은 모델을 활용하여 추가적인 학습 없이 zero-shot classification가 가능&lt;/li&gt;
&lt;li&gt;기존의 지식 추출방법보다 우수한 성과를 보임&lt;/li&gt;
&lt;li&gt;ImageNet에서 학습된 Class-Conditional Diffusion Model을 활용해 학습을 진행하였다.&lt;/li&gt;
&lt;li&gt;그 결과 기존 모델 대비 Distribution Shift에 대한 강건성(Robustness)이 향상되었다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Introduction&lt;/h2&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;Diffusion model의 개요&lt;/b&gt;: &lt;br /&gt;확률기반 생성모델로 데이터를 점진적으로 노이즈화(Forward Process)를 한 이후 이를 복원(Backward Process)하는 방식으로 학습을 진행한다. Variational Objective를 사용해여 ELBO(Evidence Lower Bound)를 최적화한다. 일반적으로 Noise Prediction 방식을 사용하여 노이즈를 예측하고 제거하는 과정을 거친다.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Diffusion model을 활용한 이미지 분류:&lt;br /&gt;&lt;/b&gt;Diffusion 모델은 조건부 생성 모델이다. 조건부 생성모델은 입력 &lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;x&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;와 선택하려는 클래스(유한한 클래스의 집합) c가 주어졌을때 클래스가 주어진 이미지 확률인 &lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;p&amp;theta;(x|c)&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;를 계산가능하다. 이때 베이즈 정리를 적용하면 이미지가 주어졌을 때 클래스의 확률인 $&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;p(c|x)$&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;를 추론할 수 있다.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;$p(c \mid x) = \frac{p_{\theta}(x \mid c) p(c)}{p(x)}$&lt;/li&gt;
&lt;/ol&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;$p&amp;theta;(x|c)$: Diffusion 모델을 활용한 클래스 조건부 확률&lt;/li&gt;
&lt;li&gt;$p(c)$: 클래스에 대한 사전 확률 (보통 균등 분포로 가정)&lt;/li&gt;
&lt;li&gt;$p(x)$: 전체 데이터 분포 (정규화 상수)&lt;br /&gt;&lt;br /&gt;일반적인 조건부 Diffusion 모델에서는 클래스의 인덱스나 프롬프트를 추가적으로 입력값으로 사용한다.&lt;br /&gt;이때 ELBO를 활용하여 클래스 조건부 로그 확률도 계산이 가능하다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;=&lt;span data-token-index=&quot;1&quot;&gt; 즉 모델이 특정 클래스 c에서 생성한 데이터의 유사도를 추정하는 방식&lt;/span&gt;으로 분류가 가능하다.&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;다시 한번 정리하자면&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;각 클래스 $c$에 대해, 입력 $x$와의 클래스 조건부 확률 $p&amp;theta;(x∣c)$을 계산&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;베이즈 정리를 적용하여 사후 확률 $p(c∣x)$을 추정&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;클래스 $c$ 중 가장 높은 확률을 가진 클래스를 최종 예측값으로 선택&lt;/span&gt;&lt;/b&gt;&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Diffusion 모델에서는 분류 확률을 직접 계산하는것은 매우 어렵다. 이때 Monte Carlo 추정을 활용한다. 각 클래스 $c$에 대해 여러 번 샘플링을 수행하고 $&amp;epsilon;-prediction loss$(노이즈 복원 오차)를 측정하여 비교한다.&lt;/li&gt;
&lt;li&gt;이후 &lt;b&gt;오차가 작은 클래스 일수록 더 높은 확률&lt;/b&gt;을 할당하는 것이다.&lt;/li&gt;
&lt;li&gt;이 과정에서 발생하는 분산을 줄이는 전략 뿐만아니라 추론 속도를 최적화하는 기법도 함께 연구하였다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Figure 1. Overview of our Diffusion Classifier approach&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;image.png&quot; data-origin-width=&quot;744&quot; data-origin-height=&quot;306&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bGmgr2/btsMPj61ZkM/EIkKzo23waSZskncMKuIt1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bGmgr2/btsMPj61ZkM/EIkKzo23waSZskncMKuIt1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bGmgr2/btsMPj61ZkM/EIkKzo23waSZskncMKuIt1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbGmgr2%2FbtsMPj61ZkM%2FEIkKzo23waSZskncMKuIt1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;744&quot; height=&quot;306&quot; data-filename=&quot;image.png&quot; data-origin-width=&quot;744&quot; data-origin-height=&quot;306&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 자세히 수식과 설명하기 전에 Figure 1을 보면서 간단하게 전체 패턴을 파악해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Diffusion Classifier&lt;/b&gt;는 다음과 같은 과정을 통해 입력 데이터를 분류한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&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;입력 이미지 $x$ 와 후보 클래스 $c$ 집합이 주어짐&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;예를 들어 &lt;b&gt;Stable Diffusion&lt;/b&gt;에서는 후보 클래스가 &lt;b&gt;텍스트 프롬프트&lt;/b&gt;가 되고,&lt;/li&gt;
&lt;li&gt;&lt;b&gt;DiT (Diffusion Transformer)&lt;/b&gt; 같은 &lt;b&gt;클래스 조건부 Diffusion Model&lt;/b&gt;에서는 &lt;b&gt;클래스 인덱스&lt;/b&gt;가 후보가 됨.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;각 클래스 ccc 에 대해 Diffusion Model이 예측한 노이즈 복원 오류(ELBO)를 계산&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Diffusion Model이 특정 클래스 $c$ 를 조건으로 주어진 $x$ 를 얼마나 잘 복원하는지 평가&lt;/li&gt;
&lt;li&gt;이를 위해 &lt;b&gt;ELBO를 기반으로 $log p_{\theta}(x | c)$ 를 근사&lt;/b&gt;함.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;가장 적합한 클래스 $c^*$ 선택&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;즉 &lt;b&gt;노이즈 복원 오류가 가장 작은&lt;/b&gt; (가장 적합한) 클래스를 선택&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Stable Diffusion의 경우:&lt;/b&gt; 가장 적절한 &lt;b&gt;텍스트 프롬프트&lt;/b&gt;를 찾음 &amp;rarr; Zero-Shot Classification&lt;/li&gt;
&lt;li&gt;&lt;b&gt;DiT (ImageNet Diffusion Transformer) 모델의 경우:&lt;/b&gt; 가장 적절한 &lt;b&gt;클래스 인덱스&lt;/b&gt;를 찾음 &amp;rarr; Supervised Classification&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Method&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3.1에서는 Diffusion Model의 기본 개념에 대해서 설명을한다.&lt;/b&gt; &lt;br /&gt;&lt;a href=&quot;https://arxiv.org/abs/2006.11239&quot;&gt;https://arxiv.org/abs/2006.11239&lt;/a&gt; 을 먼저 읽고 온다면 조금 더 이해가 수월할 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 간략하게 이부분을 소개할 예정이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Diffusion Model은 Markov Chain 구조를 가지는 생성 모델이다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Forward Process:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;초기 깨끗한 이미지 $X_0$에 점진적으로 가우지안 노이즈를 추가하여 완전한 노이즈인 $X_t$ 형태로 변환하는 과정이다.&lt;/li&gt;
&lt;li&gt;고정적인 확률 분포를 따르고 학습되지 않는다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Reverse Process:
&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;특정 조건 $c$(아까말했던 클래스 인덱스나 텍스트 프롬프트)를 입력받아 이를 기반으로 복원한다&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;Diffusion Model이 특정 조건 $c$ 를 기반으로 원본 이미지를 생성할 확률 $p&amp;theta;(x0|c)$를 추정할 수 있다면 이를 이용해 분류 문제를 해결할 수도 있음.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;이 확률을 직접 계산하는 것은 매우 어렵기 때문에 ELBO(Evidence Lower Bound) 근사를 활용하여 최적화함.&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;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;3.2 에서는 Diffusion 모델을 이용한 분류에 대해 조금더 자세히 공식을 활용하여 설명한다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;아이디어 1. 베이즈 정리를 활용한 분류 가능성 계산&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;일반적인 생성 모델을 이용한 분류는 아래와 같은 베이즈 공식을 활용하여 수행한다.&lt;br /&gt;&lt;br /&gt;$p_{\theta}(c_i | x) = \frac{p(c_i) p_{\theta}(x | c_i)}{\sum_{j} p(c_j) p_{\theta}(x | c_j)}$&lt;br /&gt;&lt;br /&gt;모델 예측과 레이블에 대한 &lt;span&gt;c&lt;/span&gt;클래스의 확률(prior &lt;span&gt;p(c)&lt;/span&gt;) 베이즈 정리&lt;/li&gt;
&lt;li&gt;만약 사전확률 $p(ci)$이 균등 분포라면 분모의 모든 $p(c)$가 상쇄되어 단순한 형태로 변형이 된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;아이디어 2. Diffusion Model을 사용한 분류&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기존 생성 모델과 다르게 Diffusion Model에서는 &lt;b&gt;$p&amp;theta;(x0|c)$&lt;b&gt;를 직접 계산하는 것이 비현실적&lt;/b&gt;이다. (계산이 어렵고 계산량이 많기 때문)&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;이를 ELBO를 활용하여 근사적으로 분류 가능성을 계산한다.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;746&quot; data-origin-height=&quot;160&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2Ynm1/btsMRdw7mQP/MP6f4khcfuP921KEZay7L1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2Ynm1/btsMRdw7mQP/MP6f4khcfuP921KEZay7L1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2Ynm1/btsMRdw7mQP/MP6f4khcfuP921KEZay7L1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2Ynm1%2FbtsMRdw7mQP%2FMP6f4khcfuP921KEZay7L1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;317&quot; height=&quot;68&quot; data-origin-width=&quot;746&quot; data-origin-height=&quot;160&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;&lt;span style=&quot;background-color: #fbf3db;&quot; data-token-index=&quot;0&quot;&gt;즉 입력 이미지 &lt;/span&gt;&lt;span style=&quot;background-color: #fbf3db;&quot;&gt;x&lt;/span&gt;&lt;span style=&quot;background-color: #fbf3db;&quot; data-token-index=&quot;2&quot;&gt;에 대해 각 클래스 &lt;/span&gt;&lt;span style=&quot;background-color: #fbf3db;&quot;&gt;c&lt;/span&gt;&lt;span style=&quot;background-color: #fbf3db;&quot; data-token-index=&quot;4&quot;&gt;를 조건으로 주었을 때 Diffusion Model이 얼마나 정확하게 노이즈를 복원할 수 있는지를 기반으로 분류한다.&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;&lt;b&gt;Monte Carlo 추정 (Sampling 기반 계산)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기대값 $\mathbb{E}_{t, \varepsilon}$ 를 직접 계산하는 것은 어렵기 때문에 &lt;b&gt;Monte Carlo 방법&lt;/b&gt;을 활용함.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;랜덤 샘플링된 $t$ 와 $&amp;epsilon;$에 대해 반복적으로 평가하여 확률을 근사&lt;/b&gt;함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;이 방법의 장점:&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;기존의 Diffusion Model을 그대로 활용 가능&lt;/b&gt; &amp;rarr; 추가적인 학습 없이 Zero-Shot 분류 가능!&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Stable Diffusion 같은 Text-to-Image 모델에서도 활용 가능&lt;/b&gt; (Zero-Shot Text Classification)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;DiT 같은 클래스 조건부 모델에서는 기존 분류기처럼 활용 가능&lt;/b&gt; (Supervised Classification)&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;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;3.3 에서는 분산 감소 기법에 대해 설명한다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재의 문제점은 Monte Carlo 방법을 사용하려면 기대값을 근사해야하는데 이를 위해서는 수천 개의 샘플이 필요할 수 있다는 점이다. 계산 비용이 크고 샘플 변동성(Variance)이 너무 커서 안정적인 분류가 어려울 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 해결하기 위해 Difference Testing 기법을 도입한다.&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;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;S = \{ (t_i, \varepsilon_i) \}_{i=1}^{N}$&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot; data-token-index=&quot;2&quot;&gt; 을 사용하여 모든 클래스 c 에 대해 동일한 샘플을 평가&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot; data-token-index=&quot;2&quot;&gt;즉 &lt;span&gt;c&lt;/span&gt; 가 바뀌어도 &lt;span data-token-index=&quot;3&quot;&gt;같은 노이즈 샘플 &lt;/span&gt;&lt;span&gt;&amp;epsilon;&lt;/span&gt;&lt;span data-token-index=&quot;5&quot;&gt; 과 타임스텝 &lt;/span&gt;&lt;span&gt;t&lt;/span&gt;&lt;span data-token-index=&quot;7&quot;&gt; 를 사용하여 평가&lt;/span&gt;하면, 개별 샘플의 변동성(Variance)을 줄일 수 있음.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;결과적으로 통계적 검정과 유사한 원리로 분산을 줄였다.&lt;br /&gt;같은 샘플을 비교하므로 차이를 더 정확하게 측정할 수 있으며 실험결과 적은 샘플 수로도 분류가 가능해졌다.&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;image.png&quot; data-origin-width=&quot;354&quot; data-origin-height=&quot;299&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FvDRv/btsMPLvaW2x/0jOACpGCTiGb3es4KLdrlk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FvDRv/btsMPLvaW2x/0jOACpGCTiGb3es4KLdrlk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FvDRv/btsMPLvaW2x/0jOACpGCTiGb3es4KLdrlk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFvDRv%2FbtsMPLvaW2x%2F0jOACpGCTiGb3es4KLdrlk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;368&quot; height=&quot;311&quot; data-filename=&quot;image.png&quot; data-origin-width=&quot;354&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 data-token-index=&quot;0&quot;&gt;그림 2&lt;/span&gt;는 이 아이디어를 시각화한 예시로 &quot;Samoyed&quot;와 &quot;Great Pyrenees&quot;라는 두 가지 프롬프트에 대해&lt;span data-token-index=&quot;2&quot;&gt;Great Pyrenees &lt;/span&gt;이미지를 사용하여 ϵ-예측 오류를 보여준니다. 각 서브플롯은 하나의 ϵi에 해당하며, 오류는 $&lt;span&gt;t&amp;isin;{1,2,&amp;hellip;,1000}$&lt;/span&gt; 에서 평가된다. &lt;br /&gt;&lt;br /&gt;주목할 점은 서로 다른 ϵi 샘플에 대한 ϵ-예측 오류의 분산이 상당히 크지만, 두 프롬프트 간 오류 차이의 분산은 훨씬 더 작다는 것이다. 이는 예측 오류의 차이가 클래스 간 구분을 위해 더 일관되고 신뢰할 수 있음을 나타낸다. 따라서 모든 조건부 입력에 대해 동일한 $&lt;span&gt;(ti,ϵi)$&lt;/span&gt;를 사용함으로써 $&lt;span&gt;p_{\theta}(c_i | x)$&lt;/span&gt;의 추정이 훨씬 더 정확해진다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Practical Considerations&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Diffusion Classifier&lt;/b&gt;는 이미지를 분류하기 위해 각 클래스마다 반복적인 오류 예측 평가가 필요하다. 이러한 평가는 &lt;b&gt;3.3절&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;&lt;b&gt;1. 시간 단계의 효과 (Effect of timestep)&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;Diffusion Classifier&lt;/b&gt;는 $p_{\theta}(c_i | x)$를 추정하기 위해 시간 단계 $t$에 대해 균일 분포를 사용하여 &lt;b&gt;&amp;epsilon;-예측 오류&lt;/b&gt;를 추정한. 다른 &lt;b&gt;시간 분포&lt;/b&gt;를 사용하면 더 정확한 결과를 얻을 수 있는지 확인한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;image.png&quot; data-origin-width=&quot;366&quot; data-origin-height=&quot;165&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wXbfO/btsMQAM62md/5d8iK4AEeKodhNcTT6rHHk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wXbfO/btsMQAM62md/5d8iK4AEeKodhNcTT6rHHk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wXbfO/btsMQAM62md/5d8iK4AEeKodhNcTT6rHHk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwXbfO%2FbtsMQAM62md%2F5d8iK4AEeKodhNcTT6rHHk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;366&quot; height=&quot;165&quot; data-filename=&quot;image.png&quot; data-origin-width=&quot;366&quot; data-origin-height=&quot;165&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span data-token-index=&quot;0&quot;&gt;그림 3&lt;/span&gt;은 각 클래스마다 단일 시간 단계만을 평가하여 Pets 데이터셋에 대한 정확도를 보여주는데, 직관적으로 정확도는 중간 시간 단계 &lt;span&gt;t&amp;asymp;500&lt;/span&gt;일 때 가장 높다. &lt;br /&gt;이는 다음과 같은 질문을 제기한다: &lt;span data-token-index=&quot;4&quot;&gt;중간 시간 단계&lt;/span&gt;를 &lt;span data-token-index=&quot;6&quot;&gt;과샘플링&lt;/span&gt;하고, &lt;span data-token-index=&quot;8&quot;&gt;낮거나 높은 시간 단계&lt;/span&gt;를 &lt;span data-token-index=&quot;10&quot;&gt;저샘플링&lt;/span&gt;함으로써 정확도를 개선할 수 있을까?&amp;nbsp; 이에 저자는 여러 가지 시간 단계 샘플링 전략을 시도한다:&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;image.png&quot; data-origin-width=&quot;352&quot; data-origin-height=&quot;239&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bGpieI/btsMReJyQso/r7BnD35muQwD80x1xedvx1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bGpieI/btsMReJyQso/r7BnD35muQwD80x1xedvx1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bGpieI/btsMReJyQso/r7BnD35muQwD80x1xedvx1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbGpieI%2FbtsMReJyQso%2Fr7BnD35muQwD80x1xedvx1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;352&quot; height=&quot;239&quot; data-filename=&quot;image.png&quot; data-origin-width=&quot;352&quot; data-origin-height=&quot;239&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;그림 4&lt;/b&gt;는 다양한 전략에서 샘플을 더 많이 사용할 때 평균 오류가 개선됨을 보여준다. 특히 &lt;b&gt;균등 간격 시간 단계&lt;/b&gt;를 사용하는 것이 가장 효과적임을 확인할 수 있다. 또한 &lt;b&gt;소수의 $t_i$를 반복적으로 사용하는&lt;/b&gt; 것이 ELBO 추정에 편향을 줄 수 있기 때문에 &lt;b&gt;효율성이 떨어진다고 가설을 세운다&lt;/b&gt;.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. 효율적인 분류 (Efficient Classification)&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;평가를 여러 단계로 나누어&lt;/b&gt; 각 단계에서 남아있는 클래스들을 일정 횟수만큼 시도하고 가장 큰 평균 오류를 보이는 클래스를 제외하는 방식으로 최적화를 진행하였다. 이 방법은 &lt;b&gt;최종 출력이 아닌 클래스&lt;/b&gt;를 효율적으로 제거하고, &lt;b&gt;합리적인 클래스들에 대해 더 많은 계산을 할당&lt;/b&gt;할 수 있게 해준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어, &lt;b&gt;Pets 데이터셋&lt;/b&gt;에서는 &lt;b&gt;Nstages = 2&lt;/b&gt;로 설정하여 첫 번째 단계에서는 각 클래스를 25번 시도하고 평균 오류가 작은 5개의 클래스를 선택한다. 두 번째 단계에서는 남은 5개의 클래스에 대해 225번을 추가로 시도다. 이 방식으로 분류하는 데 걸리는 시간은 &lt;b&gt;RTX 3090 GPU에서 18초로 확인되었다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이러한 평가 전략을 통해 &lt;b&gt;이미지넷&lt;/b&gt;과 같이 &lt;b&gt;1000개 클래스&lt;/b&gt;가 있는 경우에도 적응형 전략을 사용하더라도 분류 시간이 &lt;b&gt;약 1000초&lt;/b&gt;에 이르는 문제가 있지만 &lt;b&gt;더 빠른 추론 시간&lt;/b&gt;을 위한 &lt;b&gt;향후 연구가 필요&lt;/b&gt;하다고 말한다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dze2jI/btsMP8Dy600/Yc9NRgjjVKITdQiiHQqKrK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dze2jI/btsMP8Dy600/Yc9NRgjjVKITdQiiHQqKrK/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;720&quot; data-origin-height=&quot;135&quot; data-filename=&quot;image.png&quot; style=&quot;width: 69.325%; margin-right: 10px;&quot; data-widthpercent=&quot;70.14&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dze2jI/btsMP8Dy600/Yc9NRgjjVKITdQiiHQqKrK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdze2jI%2FbtsMP8Dy600%2FYc9NRgjjVKITdQiiHQqKrK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;720&quot; height=&quot;135&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cVjODE/btsMPvTEa9A/vbkGXEa8fKkz0ECXXg0B51/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cVjODE/btsMPvTEa9A/vbkGXEa8fKkz0ECXXg0B51/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;361&quot; data-origin-height=&quot;159&quot; data-filename=&quot;image.png&quot; style=&quot;width: 29.5122%;&quot; data-widthpercent=&quot;29.86&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cVjODE/btsMPvTEa9A/vbkGXEa8fKkz0ECXXg0B51/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcVjODE%2FbtsMPvTEa9A%2FvbkGXEa8fKkz0ECXXg0B51%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;361&quot; height=&quot;159&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;주요 결과&lt;/b&gt;: Diffusion Classifier는 추가적인 학습이나 레이블 없이도 Synthetic SD Data와 같은 대체 제로샷 접근 방식과 SD Features(전체 레이블된 학습 데이터를 사용한 감독 학습된 분류기)를 초과하는 성능을 보인다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;비교&lt;/b&gt;: Diffusion Classifier는 CLIP ResNet-50과 OpenCLIP ViT-H와 경쟁할 만큼 뛰어난 성능을 보였으며 이는 생성적 모델에서 큰 발전을 나타낸다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;핵심&lt;/b&gt;: Stable Diffusion의 훈련 데이터셋이 더 다양하게 확장된다면 성능이 더 향상될 가능성이 있습니다. (예: LAION-5B보다 덜 선별된 데이터셋으로 훈련)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mpnZ0/btsMPotzc65/OWgZpUdMXlL5yR3as7LZvK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mpnZ0/btsMPotzc65/OWgZpUdMXlL5yR3as7LZvK/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;361&quot; data-origin-height=&quot;159&quot; data-filename=&quot;image.png&quot; style=&quot;width: 60.1921%; margin-right: 10px;&quot; data-widthpercent=&quot;60.9&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mpnZ0/btsMPotzc65/OWgZpUdMXlL5yR3as7LZvK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmpnZ0%2FbtsMPotzc65%2FOWgZpUdMXlL5yR3as7LZvK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;361&quot; height=&quot;159&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/blzmab/btsMQROBcld/nPKYoWQD3MXr2DRJSGAYLK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/blzmab/btsMQROBcld/nPKYoWQD3MXr2DRJSGAYLK/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;379&quot; data-origin-height=&quot;260&quot; data-filename=&quot;image.png&quot; style=&quot;width: 38.6451%;&quot; data-widthpercent=&quot;39.1&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/blzmab/btsMQROBcld/nPKYoWQD3MXr2DRJSGAYLK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fblzmab%2FbtsMQROBcld%2FnPKYoWQD3MXr2DRJSGAYLK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;379&quot; height=&quot;260&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Winoground 벤치마크&lt;/b&gt;: Diffusion Classifier는 CLIP과 같은 대비 모델에 비해 객체 및 관계 교환 작업과 같은 구성적 추론 과제에서 현저히 우수한 성능을 보인다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;핵심&lt;/b&gt;: Diffusion Classifier는 더 나은 교차 모달 결합을 통해 구성적 추론 능력이 뛰어난 성능을 보였고Stable Diffusion이 훈련 없이도 강력한 분류기와 추론기로 변환될 수 있음을 보여준다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;image.png&quot; data-origin-width=&quot;366&quot; data-origin-height=&quot;217&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/diGm8n/btsMQG0Ie9J/EXZopnWeekDw89A79Tm6Y1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/diGm8n/btsMQG0Ie9J/EXZopnWeekDw89A79Tm6Y1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/diGm8n/btsMQG0Ie9J/EXZopnWeekDw89A79Tm6Y1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdiGm8n%2FbtsMQG0Ie9J%2FEXZopnWeekDw89A79Tm6Y1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;366&quot; height=&quot;217&quot; data-filename=&quot;image.png&quot; data-origin-width=&quot;366&quot; data-origin-height=&quot;217&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;비교&lt;/b&gt;: Diffusion Classifier는 ImageNet에서 훈련된 ViT와 ResNet 모델들과 비교했을 때, 성능 면에서 우위를 점한다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;핵심&lt;/b&gt;: Diffusion Classifier는 256&amp;sup2; 해상도에서 77.5%, 512&amp;sup2; 해상도에서 79.1%의 정확도를 기록하며, 생성 모델이 분류 성능에서도 우수하다는 점을 보인다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;image.png&quot; data-origin-width=&quot;376&quot; data-origin-height=&quot;241&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ptcm7/btsMPkLBwpn/SDKxkmEdinkMcyBBksURJK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ptcm7/btsMPkLBwpn/SDKxkmEdinkMcyBBksURJK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ptcm7/btsMPkLBwpn/SDKxkmEdinkMcyBBksURJK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fptcm7%2FbtsMPkLBwpn%2FSDKxkmEdinkMcyBBksURJK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;376&quot; height=&quot;241&quot; data-filename=&quot;image.png&quot; data-origin-width=&quot;376&quot; data-origin-height=&quot;241&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;주요 결과&lt;/b&gt;: Diffusion Classifier는 고급 데이터 증강 기법 없이도 안정적인 훈련이 가능하며 과적합을 방지하면서 높은 정확도를 기록했다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;핵심&lt;/b&gt;: ViT 훈련의 불안정성과 비교했을 때 Diffusion Classifier는 학습 안정성에서 큰 장점을 보인다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Conclusion&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;제로샷 및 표준 분류 성능&lt;/b&gt;: Diffusion Classifier는 제로샷 및 표준 분류에서 최신 discriminative 방법들과의 격차를 줄였으며 멀티모달 구성 추론에서는 이들을 상당히 능가하는 성능을 보였다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;배포 변화에 대한 강력한 성능&lt;/b&gt;: Diffusion Classifier는 배포 변화(Distribution Shift)에 대해서도 기존 모델들보다 뛰어난 &lt;b&gt;효과적인 강건성&lt;/b&gt;을 나타냈다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;출처 : &lt;a href=&quot;https://arxiv.org/abs/2303.16203&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://arxiv.org/abs/2303.16203&lt;/a&gt;&lt;/p&gt;</description>
      <category>AI/논문</category>
      <category>Classification</category>
      <category>Diffusion</category>
      <category>zero-shot classification</category>
      <category>베이즈 정리</category>
      <author>john8538</author>
      <guid isPermaLink="true">https://john8538.tistory.com/24</guid>
      <comments>https://john8538.tistory.com/24#entry24comment</comments>
      <pubDate>Thu, 20 Mar 2025 00:04:38 +0900</pubDate>
    </item>
    <item>
      <title>다국어 영수증 OCR</title>
      <link>https://john8538.tistory.com/23</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;Github:&lt;span&gt; &lt;a href=&quot;https://github.com/boostcampaitech7/level2-cv-datacentric-cv-05&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/boostcampaitech7/level2-cv-datacentric-cv-05&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1739274462018&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - boostcampaitech7/level2-cv-datacentric-cv-05: level2-cv-datacentric-cv-05 created by GitHub Classroom&quot; data-og-description=&quot;level2-cv-datacentric-cv-05 created by GitHub Classroom - boostcampaitech7/level2-cv-datacentric-cv-05&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/boostcampaitech7/level2-cv-datacentric-cv-05&quot; data-og-url=&quot;https://github.com/boostcampaitech7/level2-cv-datacentric-cv-05&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bvn9AJ/hyYfWjD09t/AjssioREfUM8bOXigNcv21/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/bWUo9t/hyYfUTEstp/1na1On8A0lbDhedaZVk0fk/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/boostcampaitech7/level2-cv-datacentric-cv-05&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/boostcampaitech7/level2-cv-datacentric-cv-05&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bvn9AJ/hyYfWjD09t/AjssioREfUM8bOXigNcv21/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/bWUo9t/hyYfUTEstp/1na1On8A0lbDhedaZVk0fk/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;GitHub - boostcampaitech7/level2-cv-datacentric-cv-05: level2-cv-datacentric-cv-05 created by GitHub Classroom&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;level2-cv-datacentric-cv-05 created by GitHub Classroom - boostcampaitech7/level2-cv-datacentric-cv-05&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt; &lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Light'; text-align: start;&quot;&gt;본 내용은 네이버 부스트캠프 7기에서 진행한 세번째 프로젝트 내용에 대해 정리한 내용입니다. 모든 관련 저작권은 네이버 부스트캠프에 있음을 밝힙니다.&lt;/span&gt;&lt;/b&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;프로젝트 개요&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #404040; text-align: start;&quot;&gt;이번 프로젝트는 다국어 영수증에서 글자를 검출하기 위해 OCR(Optical Character Recognition) 기술을 활용하는 것이 목표였습니다. 특히 데이터 중심(Data-Centric) 접근법을 통해 학습 데이터를 추가하고 수정하며 모델의 성능을 향상시키는 데 초점을 맞췄습니다. CV-05조는 다양한 실험과 데이터 라벨링을 통해 최적의 모델을 구축하고 최종적으로 높은 성능을 달성하는 것을 목표로 했습니다.&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;1548&quot; data-origin-height=&quot;356&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DjcV3/btsMebO8JyM/foNAKfbjkzhbKQIP77HdL0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DjcV3/btsMebO8JyM/foNAKfbjkzhbKQIP77HdL0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DjcV3/btsMebO8JyM/foNAKfbjkzhbKQIP77HdL0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDjcV3%2FbtsMebO8JyM%2FfoNAKfbjkzhbKQIP77HdL0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1548&quot; height=&quot;356&quot; data-origin-width=&quot;1548&quot; data-origin-height=&quot;356&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;프로젝트 진행 과정&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h3 style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;1. 초기 설정 및 EDA (Exploratory Data Analysis)&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #404040; text-align: start;&quot;&gt;프로젝트 초기에는 데이터셋을 분석하고 이를 바탕으로 모델을 설계하기 위한 기초 작업을 진행했습니다. 데이터셋은 중국어, 일본어, 태국어, 베트남어 영수증으로 구성되어 있었으며 각 언어별로 100개의 이미지가 제공되었습니다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #404040; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;데이터셋 특성 분석&lt;/b&gt;: 영수증 이미지의 특성을 분석한 결과 세로로 긴 이미지가 많았으며 특히 태국어와 베트남어의 경우 가로로 긴 이미지도 존재했습니다. 또한, Bounding Box(BBox)의 개수는 태국어와 베트남어가 중국어와 일본어보다 평균적으로 더 많았습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;학습에 방해되는 요소&lt;/b&gt;: 휘어진 영수증, 복잡한 배경, 촬영자의 그림자 등이 학습에 방해가 될 수 있는 요소로 확인되었습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cXsl8h/btsMekE98DL/7S4KCJOzX30goEOgUSNrrK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cXsl8h/btsMekE98DL/7S4KCJOzX30goEOgUSNrrK/img.png&quot; data-origin-width=&quot;1369&quot; data-origin-height=&quot;541&quot; data-is-animation=&quot;false&quot; style=&quot;width: 48.9828%; margin-right: 10px;&quot; data-widthpercent=&quot;49.56&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cXsl8h/btsMekE98DL/7S4KCJOzX30goEOgUSNrrK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcXsl8h%2FbtsMekE98DL%2F7S4KCJOzX30goEOgUSNrrK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1369&quot; height=&quot;541&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c955a2/btsMd43RseK/qFVKJrl924k8IfhjkYf6zK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c955a2/btsMd43RseK/qFVKJrl924k8IfhjkYf6zK/img.png&quot; data-origin-width=&quot;1347&quot; data-origin-height=&quot;523&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.8544%;&quot; data-widthpercent=&quot;50.44&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c955a2/btsMd43RseK/qFVKJrl924k8IfhjkYf6zK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc955a2%2FbtsMd43RseK%2FqFVKJrl924k8IfhjkYf6zK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1347&quot; height=&quot;523&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dDSBI1/btsMdHA3c0Z/ZjPrQ245bJuxMp9b3SKsd0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dDSBI1/btsMdHA3c0Z/ZjPrQ245bJuxMp9b3SKsd0/img.png&quot; data-origin-width=&quot;806&quot; data-origin-height=&quot;494&quot; data-is-animation=&quot;false&quot; style=&quot;width: 53.4119%; margin-right: 10px;&quot; data-widthpercent=&quot;54.04&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dDSBI1/btsMdHA3c0Z/ZjPrQ245bJuxMp9b3SKsd0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdDSBI1%2FbtsMdHA3c0Z%2FZjPrQ245bJuxMp9b3SKsd0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;806&quot; height=&quot;494&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bNQNjj/btsMfNsvV6d/KKXEZc8JUkvPqOGubaXfwK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bNQNjj/btsMfNsvV6d/KKXEZc8JUkvPqOGubaXfwK/img.png&quot; data-origin-width=&quot;784&quot; data-origin-height=&quot;565&quot; data-is-animation=&quot;false&quot; style=&quot;width: 45.4253%;&quot; data-widthpercent=&quot;45.96&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bNQNjj/btsMfNsvV6d/KKXEZc8JUkvPqOGubaXfwK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbNQNjj%2FbtsMfNsvV6d%2FKKXEZc8JUkvPqOGubaXfwK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;784&quot; height=&quot;565&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;2. 모델 실험 및 가설 설정&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;프로젝트는 총 4차에 걸쳐 가설을 설정하고 실험을 진행했습니다.&lt;/p&gt;
&lt;h4 style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;1차 가설: 구분선 및 잘린 텍스트 삭제, 새로운 데이터셋 추가&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;데이터 라벨링 과정에서 직접 데이터셋을 검토하고 오류를 수정했습니다. 특히 구분선과 잘린 텍스트가 모델의 성능에 부정적인 영향을 미치는 것을 확인하고 이를 제거하는 작업을 진행했습니다.&lt;/p&gt;
&lt;p style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이 과정에서 정제기준을 엄격하게 잡았습니다. 점선을 제외한 특수문자 패턴(++++,====)의 경우는 BBOX를 유지했습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #404040; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;구분선 및 잘린 텍스트 삭제&lt;/b&gt;: Baseline 추론 시 구분선과 잘린 텍스트가 잘 인식되지 않아 이를 삭제했습니다. 구분선 BBox를 제거하고 원본 글씨에서 25% 이상 잘린 글씨의 BBox도 제거했습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;새로운 데이터셋 추가&lt;/b&gt;: &lt;b&gt;각 언어별로 50개의 새로운 데이터&lt;/b&gt;(구글링 노가다, 데이터셋 사이트... 등등)를 추가하여 데이터셋을 확장했습니다. 이를 통해 모델의 일반화 성능을 향상시키고 Validation loss를 개선할 수 있었습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cGYAxG/btsMfaPlk7T/yrOKiKVtstSaQnktijoWRK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cGYAxG/btsMfaPlk7T/yrOKiKVtstSaQnktijoWRK/img.png&quot; data-origin-width=&quot;341&quot; data-origin-height=&quot;637&quot; data-is-animation=&quot;false&quot; style=&quot;width: 19.9873%; margin-right: 10px;&quot; data-widthpercent=&quot;20.46&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cGYAxG/btsMfaPlk7T/yrOKiKVtstSaQnktijoWRK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcGYAxG%2FbtsMfaPlk7T%2FyrOKiKVtstSaQnktijoWRK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;341&quot; height=&quot;637&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RWCpe/btsMekSJyTI/QTb8Fpelk0Rb5UF3tv0zs0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RWCpe/btsMekSJyTI/QTb8Fpelk0Rb5UF3tv0zs0/img.png&quot; data-origin-width=&quot;498&quot; data-origin-height=&quot;371&quot; data-is-animation=&quot;false&quot; style=&quot;width: 50.118%; margin-right: 10px;&quot; data-widthpercent=&quot;51.31&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RWCpe/btsMekSJyTI/QTb8Fpelk0Rb5UF3tv0zs0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRWCpe%2FbtsMekSJyTI%2FQTb8Fpelk0Rb5UF3tv0zs0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;498&quot; height=&quot;371&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b7kxhh/btsMeb2LYUJ/CCVXnzaB0XFdk7qBTIXdI0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b7kxhh/btsMeb2LYUJ/CCVXnzaB0XFdk7qBTIXdI0/img.png&quot; data-origin-width=&quot;477&quot; data-origin-height=&quot;646&quot; data-is-animation=&quot;false&quot; style=&quot;width: 27.5692%;&quot; data-widthpercent=&quot;28.23&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b7kxhh/btsMeb2LYUJ/CCVXnzaB0XFdk7qBTIXdI0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb7kxhh%2FbtsMeb2LYUJ%2FCCVXnzaB0XFdk7qBTIXdI0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;477&quot; height=&quot;646&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b6NbkE/btsMeSan7xn/1F2CT8OxHIKZ26jd2fFjYk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b6NbkE/btsMeSan7xn/1F2CT8OxHIKZ26jd2fFjYk/img.png&quot; data-origin-width=&quot;333&quot; data-origin-height=&quot;630&quot; data-is-animation=&quot;false&quot; style=&quot;width: 20.4793%; margin-right: 10px;&quot; data-widthpercent=&quot;20.97&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b6NbkE/btsMeSan7xn/1F2CT8OxHIKZ26jd2fFjYk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb6NbkE%2FbtsMeSan7xn%2F1F2CT8OxHIKZ26jd2fFjYk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;333&quot; height=&quot;630&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VqNdE/btsMer5mgVc/HTIxey4uNypFwlDFJAwz5k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VqNdE/btsMer5mgVc/HTIxey4uNypFwlDFJAwz5k/img.png&quot; data-origin-width=&quot;466&quot; data-origin-height=&quot;380&quot; data-is-animation=&quot;false&quot; style=&quot;width: 47.5132%; margin-right: 10px;&quot; data-widthpercent=&quot;48.64&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VqNdE/btsMer5mgVc/HTIxey4uNypFwlDFJAwz5k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVqNdE%2FbtsMer5mgVc%2FHTIxey4uNypFwlDFJAwz5k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;466&quot; height=&quot;380&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/diYjbO/btsMfNMOes2/mAWESXCCHDSI6C16n8zfLK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/diYjbO/btsMfNMOes2/mAWESXCCHDSI6C16n8zfLK/img.png&quot; data-origin-width=&quot;488&quot; data-origin-height=&quot;637&quot; style=&quot;width: 29.6819%;&quot; data-widthpercent=&quot;30.39&quot; data-is-animation=&quot;false&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/diYjbO/btsMfNMOes2/mAWESXCCHDSI6C16n8zfLK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdiYjbO%2FbtsMfNMOes2%2FmAWESXCCHDSI6C16n8zfLK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;488&quot; height=&quot;637&quot;/&gt;&lt;/span&gt;&lt;/div&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;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1497&quot; data-origin-height=&quot;211&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cgz08W/btsMffXnd0i/qoCcCtebgUg3yMykG8Zfok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cgz08W/btsMffXnd0i/qoCcCtebgUg3yMykG8Zfok/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cgz08W/btsMffXnd0i/qoCcCtebgUg3yMykG8Zfok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcgz08W%2FbtsMffXnd0i%2FqoCcCtebgUg3yMykG8Zfok%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1497&quot; height=&quot;211&quot; data-origin-width=&quot;1497&quot; data-origin-height=&quot;211&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;점수또한 향상되었습니다. Precision, Recall, f1 score 모두 올라갔습니다.&lt;/p&gt;
&lt;p style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;그러나 새로운 Datasets을 추가했을때는 큰 향상이&amp;nbsp; 있지는 않았습니다. 추가한 데이터가 다양성이 있지 않았거나, 모델의 학습에 불필요했다고 판단하였습니다.&lt;/p&gt;
&lt;p style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;2차 가설: 구분선 모델과 텍스트 모델의 구분, BBox 최적화&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;2차 가설에서는 구분선 모델과 텍스트 모델을 분리하여 학습시키고 BBox 크기를 최적화하는 실험을 진행했습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #404040; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;구분선 모델과 텍스트 모델 분리&lt;/b&gt;: 구분선과 텍스트의 특성 차이를 고려하여 각각의 모델을 학습시켰습니다. 이를 통해 Recall을 향상시키고, 텍스트 매칭 정확도를 높일 수 있었습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BBox 크기 최적화&lt;/b&gt;: 작은 BBox와 큰 BBox의 문제점을 해결하기 위해, 라벨링 기준을 개선하고, 구부러진 텍스트는 다중 BBox를 적용하는 등의 방법을 사용했습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;3차 가설: Ensemble을 통한 성능 향상&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;3차 가설에서는 여러 모델의 결과를 Ensemble하여 개별 모델의 약점을 보완하고 성능을 향상시키는 실험을 진행했습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;973&quot; data-origin-height=&quot;259&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/k7iSb/btsMf4ANltA/JDexOkxIwMEVvxWqkyZMH1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/k7iSb/btsMf4ANltA/JDexOkxIwMEVvxWqkyZMH1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/k7iSb/btsMf4ANltA/JDexOkxIwMEVvxWqkyZMH1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk7iSb%2FbtsMf4ANltA%2FJDexOkxIwMEVvxWqkyZMH1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;973&quot; height=&quot;259&quot; data-origin-width=&quot;973&quot; data-origin-height=&quot;259&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #404040; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Ensemble 방법&lt;/b&gt;: 여러 모델의 결과를 IOU(Intersection over Union)를 기준으로 그룹화하고, 투표 수를 통해 최종 BBox를 결정했습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1584&quot; data-origin-height=&quot;479&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dfFEtO/btsMfkRKwjD/409kZC9GYdjucVoPJrHBlk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dfFEtO/btsMfkRKwjD/409kZC9GYdjucVoPJrHBlk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dfFEtO/btsMfkRKwjD/409kZC9GYdjucVoPJrHBlk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdfFEtO%2FbtsMfkRKwjD%2F409kZC9GYdjucVoPJrHBlk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1584&quot; height=&quot;479&quot; data-origin-width=&quot;1584&quot; data-origin-height=&quot;479&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #404040; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;결과&lt;/b&gt;: Ensemble을 통해 Precision, Recall, F1 score가 모두 향상되었습니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;iou 0.5 vote 2: Precision 0.9387, Recall 0.8821, F1 score 0.9095&lt;/li&gt;
&lt;li&gt;iou 0.4 vote 2: Precision 0.9384, Recall 0.8832, F1 score 0.9099&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한 앙상블을 진행한 결과에 의해 재 앙상블을 진행해보았는데요.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1566&quot; data-origin-height=&quot;372&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cG31Ug/btsMfexm72A/31blBul4EMOmFqLA2ywjl1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cG31Ug/btsMfexm72A/31blBul4EMOmFqLA2ywjl1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cG31Ug/btsMfexm72A/31blBul4EMOmFqLA2ywjl1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcG31Ug%2FbtsMfexm72A%2F31blBul4EMOmFqLA2ywjl1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1566&quot; height=&quot;372&quot; data-origin-width=&quot;1566&quot; data-origin-height=&quot;372&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;/p&gt;
&lt;h4 style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;4차 가설: 구분선 예측 모델 구축&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;4차 가설에서는 구분선만을 예측하는 모델을 구축하여 기존 OCR 모델과의 Ensemble을 통해 성능을 더욱 향상시키는 실험을 진행했습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #404040; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;구분선 예측 모델&lt;/b&gt;: 구분선만을 BBox로 표기한 데이터셋을 활용하여 Fine-tuning을 진행했습니다. 이를 통해 구분선을 더 정확하게 예측할 수 있었습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1407&quot; data-origin-height=&quot;475&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cxNgci/btsMemJPzYC/3WUccOiqk1DyaIRJz14c61/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cxNgci/btsMemJPzYC/3WUccOiqk1DyaIRJz14c61/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cxNgci/btsMemJPzYC/3WUccOiqk1DyaIRJz14c61/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcxNgci%2FbtsMemJPzYC%2F3WUccOiqk1DyaIRJz14c61%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1407&quot; height=&quot;475&quot; data-origin-width=&quot;1407&quot; data-origin-height=&quot;475&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1426&quot; data-origin-height=&quot;483&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/M0ty0/btsMe2Yktx0/1yrEzOPoR8YzwFoeJJjGc0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/M0ty0/btsMe2Yktx0/1yrEzOPoR8YzwFoeJJjGc0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/M0ty0/btsMe2Yktx0/1yrEzOPoR8YzwFoeJJjGc0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FM0ty0%2FbtsMe2Yktx0%2F1yrEzOPoR8YzwFoeJJjGc0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1426&quot; height=&quot;483&quot; data-origin-width=&quot;1426&quot; data-origin-height=&quot;483&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;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;960&quot; data-origin-height=&quot;553&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dGhVWJ/btsMejfe3jT/2wyBCMWfk62vGrjSyBFSV1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dGhVWJ/btsMejfe3jT/2wyBCMWfk62vGrjSyBFSV1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dGhVWJ/btsMejfe3jT/2wyBCMWfk62vGrjSyBFSV1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdGhVWJ%2FbtsMejfe3jT%2F2wyBCMWfk62vGrjSyBFSV1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;960&quot; height=&quot;553&quot; data-origin-width=&quot;960&quot; data-origin-height=&quot;553&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt; 결과: 구분선 예측 모델을 통해 중복 예측을 줄이고, 구분선 위의 지저분한 BBox 생성을 방지할 수 있었습니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;이후 이 구분선 예측모델과 기존의 앙상블 모델을 합쳐 제출하였습니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1071&quot; data-origin-height=&quot;280&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qHz3d/btsMeeryJ4l/1AmkKAB3lreYvSIWa6cH70/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qHz3d/btsMeeryJ4l/1AmkKAB3lreYvSIWa6cH70/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qHz3d/btsMeeryJ4l/1AmkKAB3lreYvSIWa6cH70/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqHz3d%2FbtsMeeryJ4l%2F1AmkKAB3lreYvSIWa6cH70%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1071&quot; height=&quot;280&quot; data-origin-width=&quot;1071&quot; data-origin-height=&quot;280&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;public에서는 5등, private에서는 3등을 달성하였습니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;프로젝트의 성과 및 아쉬운 점&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;성과&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; color: #404040; text-align: start;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;다양한 가설 설정과 실험&lt;/b&gt;: 다양한 가설을 설정하고 실험을 통해 최적의 모델과 파이프라인을 구축했습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Overfitting 없이 프로젝트 완료&lt;/b&gt;: Private 데이터셋에서도 좋은 성능을 보이며, Overfitting 없이 프로젝트를 완료했습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;높은 성능 달성&lt;/b&gt;: 최종적으로 Public LB Score 0.9196, Private LB Score 0.9196을 달성하며 높은 성능을 기록했습니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;아쉬운 점&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; color: #404040; text-align: start;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;시간 부족&lt;/b&gt;: 계획했던 실험을 모두 완수하지 못했고 더 많은 Ensemble 조합을 시도하지 못한 점이 아쉬웠습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;구분선 이슈 해결 미흡&lt;/b&gt;: 구분선 예측 모델을 완벽하게 구축하지 못해 구분선 관련 이슈를 완전히 해결하지 못한 점이 아쉬웠습니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;결론&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;이번 프로젝트를 통해 다국어 영수증에서 글자를 검출하기 위해 OCR 기술을 활용하는 과정을 체계적으로 경험할 수 있었습니다. 데이터 중심 접근법을 통해 학습 데이터를 추가하고 수정하며 모델의 성능을 향상시키는 과정에서 많은 것을 배울 수 있었습니다. 특히, GitHub를 통한 협업과 체계적인 실험 설계는 향후 프로젝트에서도 유용하게 활용할 수 있을 것입니다. 아쉬운 점도 있었지만 이를 통해 더 나은 프로젝트를 진행하기 위한 교훈을 얻을 수 있었습니다. 감사합니다.&lt;/p&gt;</description>
      <category>AI/Naver_Boostcamp AI Tech</category>
      <category>OCR</category>
      <category>네이버부스트 캠프</category>
      <category>다국어 ocr</category>
      <category>영수증 ocr</category>
      <author>john8538</author>
      <guid isPermaLink="true">https://john8538.tistory.com/23</guid>
      <comments>https://john8538.tistory.com/23#entry23comment</comments>
      <pubDate>Tue, 11 Feb 2025 21:10:21 +0900</pubDate>
    </item>
    <item>
      <title>재활용 품목 분류를 위한 Object Detection</title>
      <link>https://john8538.tistory.com/22</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Github: &lt;a href=&quot;https://github.com/lexxsh/level2-objectdetection-cv-05&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/lexxsh/level2-objectdetection-cv-05&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1739267496358&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - lexxsh/level2-objectdetection-cv-05: level2-objectdetection-cv-05 created by GitHub Classroom&quot; data-og-description=&quot;level2-objectdetection-cv-05 created by GitHub Classroom - lexxsh/level2-objectdetection-cv-05&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/lexxsh/level2-objectdetection-cv-05&quot; data-og-url=&quot;https://github.com/lexxsh/level2-objectdetection-cv-05&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://github.com/lexxsh/level2-objectdetection-cv-05&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/lexxsh/level2-objectdetection-cv-05&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;GitHub - lexxsh/level2-objectdetection-cv-05: level2-objectdetection-cv-05 created by GitHub Classroom&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;level2-objectdetection-cv-05 created by GitHub Classroom - lexxsh/level2-objectdetection-cv-05&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;div style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt; &lt;span style=&quot;font-family: 'Noto Sans Light'; text-align: start;&quot;&gt;본 내용은 네이버 부스트캠프 7기에서 진행한 두번째 프로젝트 내용에 대해 정리한 내용입니다. 모든 관련 저작권은 네이버 부스트캠프에 있음을 밝힙니다.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;프로젝트 개요&lt;/h2&gt;
&lt;a id=&quot;user-content-️-프로젝트-개요&quot; style=&quot;color: #000000;&quot; href=&quot;https://github.com/lexxsh/level2-objectdetection-cv-05#%EF%B8%8F-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EA%B0%9C%EC%9A%94&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;본 프로젝트는 재활용 품목을 자동으로 분류하기 위한 Object Detection 시스템을 개발하는 것을 목표로 했습니다. 다양한 최신 딥러닝 모델들을 실험하고 앙상블하여 높은 정확도를 달성했으며, 특히 데이터의 특성을 고려한 augmentation 기법들을 적용하여 성능을 향상시켰습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1031&quot; data-origin-height=&quot;387&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bQSuIQ/btsMemplHtC/iXKbt0h1mXcRQJC5VC0CKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bQSuIQ/btsMemplHtC/iXKbt0h1mXcRQJC5VC0CKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bQSuIQ/btsMemplHtC/iXKbt0h1mXcRQJC5VC0CKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQSuIQ%2FbtsMemplHtC%2FiXKbt0h1mXcRQJC5VC0CKk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1031&quot; height=&quot;387&quot; data-origin-width=&quot;1031&quot; data-origin-height=&quot;387&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;프로젝트 구조 및 협업방식&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;GitHub를 통한 협업&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로젝트의 효율적인 관리를 위해 GitHub를 활용한 체계적인 협업 시스템을 구축했습니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;브랜치 전략&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;main: 최종 배포용 브랜치&lt;/li&gt;
&lt;li&gt;develop: 개발 단계 브랜치&lt;/li&gt;
&lt;li&gt;개인 브랜치: 각 팀원별 작업 브랜치&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;이슈 관리&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기능 개발, 버그 수정 등의 작업을 이슈로 등록하여 관리&lt;/li&gt;
&lt;li&gt;명확한 작업 내용과 진행 상황 공유&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;커밋 컨벤션&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Udacity 커밋 컨벤션을 활용하여 일관된 커밋 메시지 작성&lt;/li&gt;
&lt;li&gt;기능별 명확한 커밋 메시지로 히스토리 관련&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;개선사항&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;feature 브랜치 활용: 기능별 브랜치 관리로 더 효율적인 개발 가능&lt;/li&gt;
&lt;li&gt;템플릿 활용: 이슈와 PR의 표준화된 양식으로 의사소통 개선&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;프로젝트 진행 과정&lt;/h2&gt;
&lt;h3 style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;1. 초기 설정 및 EDA (Exploratory Data Analysis)&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #404040; text-align: start;&quot;&gt;프로젝트 초기에는 데이터셋을 분석하고, 이를 바탕으로 모델을 설계하기 위한 기초 작업을 진행했습니다. 데이터셋은 한 이미지 안에 여러 개의 Bounding Box가 존재하며, 특히 10개 이상의 Bounding Box가 있는 이미지도 다수 존재했습니다. 또한, 클래스 불균형 문제가 있었는데, 일반 쓰레기(0), 종이(1), 플라스틱(5), 비닐(7) 등의 클래스가 상대적으로 많았습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brsopx/btsMeMgZAQD/g92CWkpykchxPV5H1NO7jk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brsopx/btsMeMgZAQD/g92CWkpykchxPV5H1NO7jk/img.png&quot; data-origin-width=&quot;1153&quot; data-origin-height=&quot;572&quot; data-is-animation=&quot;false&quot; style=&quot;width: 60.2724%; margin-right: 10px;&quot; data-widthpercent=&quot;60.98&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brsopx/btsMeMgZAQD/g92CWkpykchxPV5H1NO7jk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbrsopx%2FbtsMeMgZAQD%2Fg92CWkpykchxPV5H1NO7jk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1153&quot; height=&quot;572&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDCpNv/btsMe07dtnD/Y04QYaP6eYQYZTpBrKkwxk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDCpNv/btsMe07dtnD/Y04QYaP6eYQYZTpBrKkwxk/img.png&quot; data-origin-width=&quot;730&quot; data-origin-height=&quot;566&quot; data-is-animation=&quot;false&quot; style=&quot;width: 38.5648%;&quot; data-widthpercent=&quot;39.02&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDCpNv/btsMe07dtnD/Y04QYaP6eYQYZTpBrKkwxk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDCpNv%2FbtsMe07dtnD%2FY04QYaP6eYQYZTpBrKkwxk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;566&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #404040; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Bounding Box 분포&lt;/b&gt;: 대부분의 Bounding Box는 이미지의 중앙에 위치해 있었으며, 배터리와 같은 작은 물체는 작은 Bounding Box를, 옷과 같은 큰 물체는 큰 Bounding Box를 가지고 있었습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;데이터 클렌징 필요성&lt;/b&gt;: 이미지 내에 Bounding Box가 많거나 겹치는 경우, 작은 Bounding Box를 학습하는 데 어려움이 있을 것으로 판단되어 데이터 클렌징의 필요성이 대두되었습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KhQ1g/btsMew6oCCc/0cBa19vgHBSRKmgIkvWNak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KhQ1g/btsMew6oCCc/0cBa19vgHBSRKmgIkvWNak/img.png&quot; data-origin-width=&quot;1382&quot; data-origin-height=&quot;620&quot; data-is-animation=&quot;false&quot; width=&quot;521&quot; height=&quot;234&quot; style=&quot;width: 38.045%; margin-right: 10px;&quot; data-widthpercent=&quot;38.95&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KhQ1g/btsMew6oCCc/0cBa19vgHBSRKmgIkvWNak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKhQ1g%2FbtsMew6oCCc%2F0cBa19vgHBSRKmgIkvWNak%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1382&quot; height=&quot;620&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDhyrb/btsMeswkShz/pdk4TNbdiJY5g3ZT1YC5zK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDhyrb/btsMeswkShz/pdk4TNbdiJY5g3ZT1YC5zK/img.png&quot; data-origin-width=&quot;1160&quot; data-origin-height=&quot;611&quot; data-is-animation=&quot;false&quot; width=&quot;401&quot; style=&quot;width: 32.404%; margin-right: 10px;&quot; data-widthpercent=&quot;33.18&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDhyrb/btsMeswkShz/pdk4TNbdiJY5g3ZT1YC5zK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDhyrb%2FbtsMeswkShz%2Fpdk4TNbdiJY5g3ZT1YC5zK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1160&quot; height=&quot;611&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IhqBm/btsMfc7qjVs/ykuMnnSd9ezePTZPbk08t0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IhqBm/btsMfc7qjVs/ykuMnnSd9ezePTZPbk08t0/img.png&quot; data-origin-width=&quot;981&quot; data-origin-height=&quot;615&quot; data-is-animation=&quot;false&quot; style=&quot;width: 27.2255%;&quot; data-widthpercent=&quot;27.87&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IhqBm/btsMfc7qjVs/ykuMnnSd9ezePTZPbk08t0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIhqBm%2FbtsMfc7qjVs%2FykuMnnSd9ezePTZPbk08t0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;981&quot; height=&quot;615&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;2. 데이터 라벨링&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;데이터 라벨링 과정에서 GitHub의 'labeling' 툴을 활용하여 직접 데이터셋을 검토하고 오류를 수정했습니다. 수정 기준은 다음과 같았습니다:&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; color: #404040; text-align: start;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;Bounding Box가 15개 미만인 이미지만 수정&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Loose wrapping (느슨하게 감싸진 경우) 수정&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Unclear labels (명확하지 않은 라벨) 삭제&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Add labels (라벨이 누락된 경우 추가)&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Incorrect labels (잘못된 라벨) 수정&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;하지만, 데이터 포맷을 VOC에서 COCO로 변경하는 과정에서 문제가 발생하여 mAP가 0.001로 나오는 오류가 발생했습니다. 시간 부족으로 인해 해당 데이터셋을 사용하지 않기로 결정했습니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qoOlz/btsMfa2Os0N/cwsDIQnyoAeQX5jO6bEvqk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qoOlz/btsMfa2Os0N/cwsDIQnyoAeQX5jO6bEvqk/img.png&quot; data-origin-width=&quot;721&quot; data-origin-height=&quot;445&quot; data-is-animation=&quot;false&quot; style=&quot;width: 53.8384%; margin-right: 10px;&quot; data-widthpercent=&quot;54.47&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qoOlz/btsMfa2Os0N/cwsDIQnyoAeQX5jO6bEvqk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqoOlz%2FbtsMfa2Os0N%2FcwsDIQnyoAeQX5jO6bEvqk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;721&quot; height=&quot;445&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/X5eSl/btsMfOdNSBX/bNq9XyiHlycGFSex9yp6r1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/X5eSl/btsMfOdNSBX/bNq9XyiHlycGFSex9yp6r1/img.png&quot; data-origin-width=&quot;757&quot; data-origin-height=&quot;559&quot; data-is-animation=&quot;false&quot; style=&quot;width: 44.9988%;&quot; data-widthpercent=&quot;45.53&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/X5eSl/btsMfOdNSBX/bNq9XyiHlycGFSex9yp6r1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FX5eSl%2FbtsMfOdNSBX%2FbNq9XyiHlycGFSex9yp6r1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;757&quot; height=&quot;559&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FpVRN/btsMfaBK20L/YYUk9bifvjcEC3KmixeGP1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FpVRN/btsMfaBK20L/YYUk9bifvjcEC3KmixeGP1/img.png&quot; data-origin-width=&quot;717&quot; data-origin-height=&quot;470&quot; data-is-animation=&quot;false&quot; style=&quot;width: 47.633%; margin-right: 10px; margin-top: 10px;&quot; data-widthpercent=&quot;48.19&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FpVRN/btsMfaBK20L/YYUk9bifvjcEC3KmixeGP1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFpVRN%2FbtsMfaBK20L%2FYYUk9bifvjcEC3KmixeGP1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;717&quot; height=&quot;470&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4UjtD/btsMftHJ78Y/vHSTctTRCYIo1oBl7xJE40/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4UjtD/btsMftHJ78Y/vHSTctTRCYIo1oBl7xJE40/img.png&quot; data-origin-width=&quot;715&quot; data-origin-height=&quot;436&quot; data-is-animation=&quot;false&quot; style=&quot;width: 51.2042%; margin-top: 10px;&quot; data-widthpercent=&quot;51.81&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4UjtD/btsMftHJ78Y/vHSTctTRCYIo1oBl7xJE40/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4UjtD%2FbtsMftHJ78Y%2FvHSTctTRCYIo1oBl7xJE40%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;715&quot; height=&quot;436&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;3.&amp;nbsp;모델 실험 및 가설 설정&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;프로젝트는 총 3차에 걸쳐 가설을 설정하고 실험을 진행했습니다.&lt;/p&gt;
&lt;p style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;1차 가설: SOTA 모델을 바탕으로 Baseline 모델 선정&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;1차 가설에서는 SOTA(State-of-the-Art) 모델을 탐색하고, 이를 바탕으로 Baseline 모델을 선정했습니다. 주요 모델로는 Detectron2, mmdetection, YOLO 등을 실험했습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #404040; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Detectron2&lt;/b&gt;: 최신 버전의 Config 파일 수정이 어려웠고, 학습은 성공했으나 Baseline과 유사한 성능(mAP 0.47)을 보여 추가 실험을 진행하지 않았습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;mmdetection&lt;/b&gt;: CO-DETR 모델이 가장 좋은 성능을 보였습니다. Image Size에 대한 실험은 2차 가설에서 진행했습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;YOLO&lt;/b&gt;: YOLOv8, YOLOv9, YOLOv10, YOLOv11 등 다양한 버전을 실험했습니다. YOLOv8은 CSPDarknet 개선 구조와 C2f 모듈을 도입하여 뛰어난 실시간 처리 능력을 보였습니다. YOLOv9은 GELAN 구조와 Programmable Gradient Information을 적용하여 추론 속도와 정확도를 높였습니다. YOLOv10은 EMO(Efficient Multi-scale Optimization)와 Dynamic Head를 도입하여 다양한 크기의 객체를 탐지할 수 있었습니다.&lt;/li&gt;
&lt;li&gt;&lt;s&gt;&lt;b&gt;InterImage-H&lt;/b&gt;: CUDA 설정 관련 오류&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;&lt;b&gt;EVA&lt;/b&gt;: Mask Data가 필요하여 코드를 수정하였으나 실패&amp;nbsp;&lt;/s&gt;&lt;/li&gt;
&lt;li&gt;&lt;s&gt;&lt;b&gt;ATSS(dyhead)&lt;/b&gt;: Config 설정 오류로 낮은 성능이 나와 실패&lt;/s&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/q18Af/btsMf5sRHYL/XhtKdMPwNuqQtXWqtS6hd1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/q18Af/btsMf5sRHYL/XhtKdMPwNuqQtXWqtS6hd1/img.png&quot; data-origin-width=&quot;1362&quot; data-origin-height=&quot;526&quot; data-is-animation=&quot;false&quot; style=&quot;width: 51.0237%; margin-right: 10px;&quot; data-widthpercent=&quot;51.62&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/q18Af/btsMf5sRHYL/XhtKdMPwNuqQtXWqtS6hd1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fq18Af%2FbtsMf5sRHYL%2FXhtKdMPwNuqQtXWqtS6hd1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1362&quot; height=&quot;526&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b9Wa1S/btsMeJxMBKY/PU2RcPN1AM8jW8Wf5YIFI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b9Wa1S/btsMeJxMBKY/PU2RcPN1AM8jW8Wf5YIFI1/img.png&quot; data-origin-width=&quot;1138&quot; data-origin-height=&quot;469&quot; data-is-animation=&quot;false&quot; style=&quot;width: 47.8135%;&quot; data-widthpercent=&quot;48.38&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b9Wa1S/btsMeJxMBKY/PU2RcPN1AM8jW8Wf5YIFI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb9Wa1S%2FbtsMeJxMBKY%2FPU2RcPN1AM8jW8Wf5YIFI1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1138&quot; height=&quot;469&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1568&quot; data-origin-height=&quot;469&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgIw39/btsMd61r8Vh/H683IcQEIE9U2HGkl2Vjc0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgIw39/btsMd61r8Vh/H683IcQEIE9U2HGkl2Vjc0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgIw39/btsMd61r8Vh/H683IcQEIE9U2HGkl2Vjc0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgIw39%2FbtsMd61r8Vh%2FH683IcQEIE9U2HGkl2Vjc0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;599&quot; height=&quot;179&quot; data-origin-width=&quot;1568&quot; data-origin-height=&quot;469&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;이후 기존 데이터셋에서는 BBOX에 대한 정보만 존재하였기에 Mask Data를 추출하려 시도하였습니다. 구현은 완료하였으나, 시간부족과 실제 모델 적용의 오류가 있어 놔주었습니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1304&quot; data-origin-height=&quot;512&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4ok6W/btsMfDXNkX2/sAmdRlMHWkD29Rpkf1Zj90/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4ok6W/btsMfDXNkX2/sAmdRlMHWkD29Rpkf1Zj90/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4ok6W/btsMfDXNkX2/sAmdRlMHWkD29Rpkf1Zj90/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4ok6W%2FbtsMfDXNkX2%2FsAmdRlMHWkD29Rpkf1Zj90%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;547&quot; height=&quot;215&quot; data-origin-width=&quot;1304&quot; data-origin-height=&quot;512&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;2차 가설: Augmentations &amp;amp; TTA(Test Time Augmentation) 파이프라인 구축&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;2차 가설에서는 데이터셋의 특성을 반영한 Augmentations와 TTA를 활용한 Test 파이프라인을 구축했습니다.&lt;/p&gt;
&lt;p style=&quot;color: #404040; text-align: start;&quot; 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;Objects가 겹치고 가려진 경우 다수&lt;/li&gt;
&lt;li&gt;Bounding Box 대부분이 Image 중앙에 위치&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;832&quot; data-origin-height=&quot;427&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/luTSk/btsMfYUUWnz/x61iENqvKrDNfoWN7uNSXk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/luTSk/btsMfYUUWnz/x61iENqvKrDNfoWN7uNSXk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/luTSk/btsMfYUUWnz/x61iENqvKrDNfoWN7uNSXk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FluTSk%2FbtsMfYUUWnz%2Fx61iENqvKrDNfoWN7uNSXk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;464&quot; height=&quot;238&quot; data-origin-width=&quot;832&quot; data-origin-height=&quot;427&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 통해 가설 두가지를 작성했습니다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;b&gt;Image의 해상도를 높이면 성능이 향상될 것이다!&lt;/b&gt;&lt;br /&gt;&lt;b&gt;특정 BBOX에 학습을 집중 시켜보자!&lt;br /&gt;&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그후 이 가설에 맞게 실험을 진행하기로 하였습니다. 진행한 실험은 아래와 같습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #404040; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Super Resolution 실험&lt;/b&gt;: 이미지 해상도를 높이는 것이 성능에 미치는 영향을 실험했습니다. Image Size가 커질수록 성능이 좋아지는 것을 확인했습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Crop 실험&lt;/b&gt;: RandomCrop, RandomCenterCrop 등의 기법을 활용하여 이미지를 무작위로 크롭하고, Bounding Box가 포함된 영역을 우선적으로 크롭했습니다. 이를 통해 원본 Train 데이터셋 4,883장을 Augmentation 후 29,126장으로 확장했습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Heavy Augmentation&lt;/b&gt;: Mosaic, RandomFlip, RandomAffine, PhotoMetricDistortion 등을 적용하여 다양한 크기의 객체가 모델에 잘 학습되도록 했습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TTA(Test Time Augmentation)&lt;/b&gt;: Test 데이터셋에 Augmentation을 적용하여 다양한 크기의 객체를 효과적으로 인식할 수 있도록 했습니다. 특히, Multi Size Image를 활용한 TTA가 성능 향상에 도움이 되었습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결과는 아래와 같습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1140&quot; data-origin-height=&quot;436&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xqyyI/btsMf5Gp3xs/8llYC3kzdBTrZLqNrxnfG0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xqyyI/btsMf5Gp3xs/8llYC3kzdBTrZLqNrxnfG0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xqyyI/btsMf5Gp3xs/8llYC3kzdBTrZLqNrxnfG0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxqyyI%2FbtsMf5Gp3xs%2F8llYC3kzdBTrZLqNrxnfG0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;216&quot; data-origin-width=&quot;1140&quot; data-origin-height=&quot;436&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가설 1은 성공적으로 입증이 되었습니다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후 가설 2에 대해 진행하였는데요.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1459&quot; data-origin-height=&quot;602&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vZNxG/btsMfr4gGO0/xOxdK6swQ64e6bqAjlxE01/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vZNxG/btsMfr4gGO0/xOxdK6swQ64e6bqAjlxE01/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vZNxG/btsMfr4gGO0/xOxdK6swQ64e6bqAjlxE01/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvZNxG%2FbtsMfr4gGO0%2FxOxdK6swQ64e6bqAjlxE01%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;676&quot; height=&quot;279&quot; data-origin-width=&quot;1459&quot; data-origin-height=&quot;602&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런 방식으로 진행을 하였고 Random Crop을 활용하여 Offline Augmentation을 한결과 &lt;b&gt;원본 데이터셋 4,883장에서 29,126장 까지 증가시켰습니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;결과는 아래와 같습니다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1543&quot; data-origin-height=&quot;386&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bMkcmg/btsMfYUU4o6/s0i0LNDDwKrXVrzYDrvFcK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bMkcmg/btsMfYUU4o6/s0i0LNDDwKrXVrzYDrvFcK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bMkcmg/btsMfYUU4o6/s0i0LNDDwKrXVrzYDrvFcK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMkcmg%2FbtsMfYUU4o6%2Fs0i0LNDDwKrXVrzYDrvFcK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;672&quot; height=&quot;168&quot; data-origin-width=&quot;1543&quot; data-origin-height=&quot;386&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후 추가적으로 다양한 Aumentations을 실험하였습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저희는 Heavy Augmentation을 구성하였는데요. &lt;b&gt;대부분의 Object Detection에서는 많은 노이즈로 인한 다양한 Aumentations을 적용하는것이 결과가 좋다는 논문과 여러 캐글의 자료를 통하여 내린 결과입니다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKHGcV/btsMeTNSNLY/8F0EkGOKWOeQJREqHwj5i0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKHGcV/btsMeTNSNLY/8F0EkGOKWOeQJREqHwj5i0/img.png&quot; data-origin-width=&quot;816&quot; data-origin-height=&quot;473&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.722%; margin-right: 10px;&quot; data-widthpercent=&quot;50.31&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKHGcV/btsMeTNSNLY/8F0EkGOKWOeQJREqHwj5i0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKHGcV%2FbtsMeTNSNLY%2F8F0EkGOKWOeQJREqHwj5i0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;816&quot; height=&quot;473&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ajwz5/btsMeJduJvK/6jZGuc89chVz27it4mVcg0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ajwz5/btsMeJduJvK/6jZGuc89chVz27it4mVcg0/img.png&quot; data-origin-width=&quot;789&quot; data-origin-height=&quot;463&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.1152%;&quot; data-widthpercent=&quot;49.69&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ajwz5/btsMeJduJvK/6jZGuc89chVz27it4mVcg0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAjwz5%2FbtsMeJduJvK%2F6jZGuc89chVz27it4mVcg0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;789&quot; height=&quot;463&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 이미지와 시각적으로 확인해가며 진행하였습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이에 대한 결과는 아래와 같습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1034&quot; data-origin-height=&quot;449&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdbPwJ/btsMd10fbUL/jspBmfmqs5aKXk5KXd0nKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdbPwJ/btsMd10fbUL/jspBmfmqs5aKXk5KXd0nKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdbPwJ/btsMd10fbUL/jspBmfmqs5aKXk5KXd0nKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdbPwJ%2FbtsMd10fbUL%2FjspBmfmqs5aKXk5KXd0nKk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;457&quot; height=&quot;198&quot; data-origin-width=&quot;1034&quot; data-origin-height=&quot;449&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기본적으로 실험을 진행할때 동일한 조건을 갖추고 실험을 진행했어야하는데 그렇게 진행하지 못하였습니다. 이는 시간의 부족과 저희가 진행한 실험에 일부 오류가 존재함을 보여줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한 모델별로 기본 config 설정과 모델구조가 다르기때문에 Aumentation을 다르게 적용했을때의 후 Ensemble 결과에 도움이 될 수 있을거란 생각도 일부? 하긴 했습니다..&lt;/p&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;TTA(Test Time Augmentation)&lt;/b&gt;을 활용한 실험을 진행해보았는데요, Test Datasets에 추론을 진행하기전에 이미지 사이즈에 대한 Augmentation을 적용해보았습니다.&lt;/p&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;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;여러 논문과 Object Detection에 관련한 글에서 큰 효과가 있음을 입증하는 정보를 보고 시도하였습니다. 역시 리서치는 언제나 중요합니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1129&quot; data-origin-height=&quot;548&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Lylaq/btsMfbgpFui/u1JP5RpYpN2IU6FW9iEW7k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Lylaq/btsMfbgpFui/u1JP5RpYpN2IU6FW9iEW7k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Lylaq/btsMfbgpFui/u1JP5RpYpN2IU6FW9iEW7k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLylaq%2FbtsMfbgpFui%2Fu1JP5RpYpN2IU6FW9iEW7k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;594&quot; height=&quot;288&quot; data-origin-width=&quot;1129&quot; data-origin-height=&quot;548&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;3차 가설: IoU Threshold, TTA, Ensemble을 통한 성능 향상&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #404040; text-align: start;&quot;&gt;3차 가설에서는 IoU Threshold, TTA, Ensemble 등을 활용하여 성능을 더욱 향상시키기 위한 실험을 진행했습니다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #404040; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;IoU Threshold 실험&lt;/b&gt;: IoU Threshold 값이 클수록 접촉 있는 객체 탐지에 유리하지만, 작은 객체 탐지에는 불리할 수 있다는 점을 확인했습니다. 적절한 IoU Threshold를 탐색하는 것이 중요했습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Ensemble&lt;/b&gt;: 여러 모델을 결합하여 성능을 높이는 실험을 진행했습니다. 특히, &lt;b&gt;WBF(Weighted Boxes Fusion)&lt;/b&gt; 기법을 활용하여 DDQ, CO-DETR, Cascade R-CNN 모델을 Ensemble했을 때 가장 높은 성능을 보였습니다. 이 과정에서 앙상블을 하기전에 각 모델에 대한 결과를 &lt;b&gt;Normalization&lt;/b&gt;을 진행했는데요, 이때 &lt;b&gt;Min,Max&lt;/b&gt; 기법을 사용해 Confidence를 선형적으로 바꾸었습니다. 그후 Confidence가 0.1보다 낮은 bbox는 사용하지 않는 조건으로 진행했습니다.&lt;br /&gt;(이 정규화도 성능효과에 아주 큰 기여를 했답니다!!)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Multi Size TTA&lt;/b&gt;: 앞에서 실험했던 TTA에 큰 성능효과가 있었기에 여러 사이즈를 가지고 조금더 다양하게 TTA를 진행했습니다. 가로/세로 비율이 다른경우 일정의 성능이 올랐지만 size를 더 추가한다고 성능이 오르진 않았습니다.&amp;nbsp;&lt;br /&gt;&lt;b&gt;결론! 너무 다양하게 하는건 과하다!&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ceO5e9/btsMedGbUvv/v1rc4zOPEJ3pXf86cyzAVK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ceO5e9/btsMedGbUvv/v1rc4zOPEJ3pXf86cyzAVK/img.png&quot; data-origin-width=&quot;615&quot; data-origin-height=&quot;477&quot; data-is-animation=&quot;false&quot; width=&quot;282&quot; height=&quot;219&quot; style=&quot;width: 41.6017%; margin-right: 10px;&quot; data-widthpercent=&quot;42.09&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ceO5e9/btsMedGbUvv/v1rc4zOPEJ3pXf86cyzAVK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FceO5e9%2FbtsMedGbUvv%2Fv1rc4zOPEJ3pXf86cyzAVK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;615&quot; height=&quot;477&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Q8L7t/btsMf50IPbN/PMvxfT7vEm4siHmrKHCGs0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Q8L7t/btsMf50IPbN/PMvxfT7vEm4siHmrKHCGs0/img.png&quot; data-origin-width=&quot;1098&quot; data-origin-height=&quot;619&quot; data-is-animation=&quot;false&quot; style=&quot;width: 57.2355%;&quot; data-widthpercent=&quot;57.91&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Q8L7t/btsMf50IPbN/PMvxfT7vEm4siHmrKHCGs0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQ8L7t%2FbtsMf50IPbN%2FPMvxfT7vEm4siHmrKHCGs0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1098&quot; height=&quot;619&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IoU를 일정이상 높이면 점수 측정에 실패하는 경우가 발생했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 원인으로는 IoU가 너무높은 경우, BBOX가 매우 많이 남게 되는데 이 경우에 서버에서 csv 파일을 제대로 채점하지 못하여 제출 오류가 발생한것으로 추정했습니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1304&quot; data-origin-height=&quot;514&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kHiho/btsMfVDUinD/kpK3kPkLZVFwkShZZHnDL1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kHiho/btsMfVDUinD/kpK3kPkLZVFwkShZZHnDL1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kHiho/btsMfVDUinD/kpK3kPkLZVFwkShZZHnDL1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkHiho%2FbtsMfVDUinD%2FkpK3kPkLZVFwkShZZHnDL1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;647&quot; height=&quot;255&quot; data-origin-width=&quot;1304&quot; data-origin-height=&quot;514&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음은 앙상블 결과입니다. 최대한 다양한 조합을 시도하여 좋은 결과가 나오는 앙상블 조합을 파악해보았습니다. 이과정에서 앞서 실험한 Yolo 결과도 같이 앙상블 실험을 진행했습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bcmjl2/btsMfWQmvhj/pfapYTs5GXQS306TwdwjGk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bcmjl2/btsMfWQmvhj/pfapYTs5GXQS306TwdwjGk/img.png&quot; data-origin-width=&quot;1576&quot; data-origin-height=&quot;633&quot; data-is-animation=&quot;false&quot; style=&quot;width: 37.7345%; margin-right: 10px;&quot; data-widthpercent=&quot;38.18&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bcmjl2/btsMfWQmvhj/pfapYTs5GXQS306TwdwjGk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbcmjl2%2FbtsMfWQmvhj%2FpfapYTs5GXQS306TwdwjGk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1576&quot; height=&quot;633&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c3jsq1/btsMdsqkAfe/Vefx0wmljdvlnEtbdRoJx1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c3jsq1/btsMdsqkAfe/Vefx0wmljdvlnEtbdRoJx1/img.png&quot; data-origin-width=&quot;1532&quot; data-origin-height=&quot;380&quot; data-is-animation=&quot;false&quot; style=&quot;width: 61.1028%;&quot; data-widthpercent=&quot;61.82&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c3jsq1/btsMdsqkAfe/Vefx0wmljdvlnEtbdRoJx1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc3jsq1%2FbtsMdsqkAfe%2FVefx0wmljdvlnEtbdRoJx1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1532&quot; height=&quot;380&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앙상블을 하는 과정에서 각 모델의 가중치도 조절할 수 있었습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 모델의 성능에 따라 가중치를 조절하는것이 의미가 있을것이란 가설을 마지막으로 세우고 앞과 동일하게 4가지 모델을 사용하였습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1588&quot; data-origin-height=&quot;313&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eRlXRn/btsMflpvC0V/rkUe5yAycfTv6Lxp7E98ZK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eRlXRn/btsMflpvC0V/rkUe5yAycfTv6Lxp7E98ZK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eRlXRn/btsMflpvC0V/rkUe5yAycfTv6Lxp7E98ZK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeRlXRn%2FbtsMflpvC0V%2FrkUe5yAycfTv6Lxp7E98ZK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1588&quot; height=&quot;313&quot; data-origin-width=&quot;1588&quot; data-origin-height=&quot;313&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;최종적으로 마지막 많은 수의 모델을 앙상블하며 실험은 마무리 되었습니다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1573&quot; data-origin-height=&quot;624&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/clEDQB/btsMdIs4kg3/VZjDkLG5VgDy0xEK4TEt70/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/clEDQB/btsMdIs4kg3/VZjDkLG5VgDy0xEK4TEt70/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/clEDQB/btsMdIs4kg3/VZjDkLG5VgDy0xEK4TEt70/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FclEDQB%2FbtsMdIs4kg3%2FVZjDkLG5VgDy0xEK4TEt70%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1573&quot; height=&quot;624&quot; data-origin-width=&quot;1573&quot; data-origin-height=&quot;624&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;최종결과&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt; &lt;span style=&quot;text-align: start;&quot;&gt;최종적으로 다양한 모델을 Ensemble하여 Public LB Score 0.7635, Private LB Score 0.7522를 달성했습니다. &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;결과적으로 Public, Private에서 모두 1등을 달성했습니다.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #404040; text-align: start;&quot;&gt;CO-DETR, DINO, DDQ, Cascade R-CNN 모델을 Ensemble한 결과가 가장 높은 성능을 보였습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #404040; text-align: start;&quot;&gt;저희가 프로젝트에 사용한 주요 모델은 다음과 같습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bkiBI2/btsMeUTvahG/D50WtoDgdDRsWGb3Kwikw1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bkiBI2/btsMeUTvahG/D50WtoDgdDRsWGb3Kwikw1/img.png&quot; data-origin-width=&quot;1532&quot; data-origin-height=&quot;387&quot; data-is-animation=&quot;false&quot; style=&quot;width: 54.2915%; margin-right: 10px;&quot; data-widthpercent=&quot;54.93&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bkiBI2/btsMeUTvahG/D50WtoDgdDRsWGb3Kwikw1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbkiBI2%2FbtsMeUTvahG%2FD50WtoDgdDRsWGb3Kwikw1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1532&quot; height=&quot;387&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cU9jGJ/btsMffC0bRF/kygn1klIhhPzw7UK3okizk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cU9jGJ/btsMffC0bRF/kygn1klIhhPzw7UK3okizk/img.png&quot; data-origin-width=&quot;1244&quot; data-origin-height=&quot;383&quot; data-is-animation=&quot;false&quot; style=&quot;width: 44.5457%;&quot; data-widthpercent=&quot;45.07&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cU9jGJ/btsMffC0bRF/kygn1klIhhPzw7UK3okizk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcU9jGJ%2FbtsMffC0bRF%2Fkygn1klIhhPzw7UK3okizk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1244&quot; height=&quot;383&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1434&quot; data-origin-height=&quot;328&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bP2o2r/btsMeUTvaXm/ihkN01TY3Ey1fSk7aWDST1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bP2o2r/btsMeUTvaXm/ihkN01TY3Ey1fSk7aWDST1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bP2o2r/btsMeUTvaXm/ihkN01TY3Ey1fSk7aWDST1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbP2o2r%2FbtsMeUTvaXm%2FihkN01TY3Ey1fSk7aWDST1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;493&quot; height=&quot;113&quot; data-origin-width=&quot;1434&quot; data-origin-height=&quot;328&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;최종 아키텍처입니다.&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1192&quot; data-origin-height=&quot;626&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dkHW4Z/btsMejfb7o7/5y8FWgynytp8ZuA8fkSYk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dkHW4Z/btsMejfb7o7/5y8FWgynytp8ZuA8fkSYk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dkHW4Z/btsMejfb7o7/5y8FWgynytp8ZuA8fkSYk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdkHW4Z%2FbtsMejfb7o7%2F5y8FWgynytp8ZuA8fkSYk1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1192&quot; height=&quot;626&quot; data-origin-width=&quot;1192&quot; data-origin-height=&quot;626&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;프로젝트 성과 및 아쉬운 점&lt;/h2&gt;
&lt;p style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;성과&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; color: #404040; text-align: start;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;GitHub를 통한 체계적인 협업&lt;/b&gt;: 이전 프로젝트의 피드백을 반영하여 GitHub를 통해 체계적으로 협업을 진행했습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;다양한 가설 설정과 실험&lt;/b&gt;: 다양한 가설을 설정하고 실험을 통해 최적의 모델과 파이프라인을 구축했습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;높은 성능 달성&lt;/b&gt;: 최종적으로 Public LB Score 0.7635, Private LB Score 0.7522를 달성하며 높은 성능을 기록했습니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;아쉬운 점&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; color: #404040; text-align: start;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;시간 부족&lt;/b&gt;: 계획했던 실험을 모두 완수하지 못했고, 더 많은 Ensemble 조합을 시도하지 못한 점이 아쉬웠습니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;백업 문제&lt;/b&gt;: 서버가 타져서 일부 결과물이 사라지는 문제가 발생했습니다. 이를 통해 백업의 중요성을 깨달았습니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;결론&lt;/p&gt;
&lt;p style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이번 프로젝트를 통해 Object Detection 기술을 활용하여 재활용 품목을 분류하는 과정을 체계적으로 경험할 수 있었습니다. 다양한 모델을 실험하고 데이터셋을 분석하며 최적의 파이프라인을 구축하는 과정에서 많은 것을 배울 수 있었습니다. 특히, GitHub를 통한 협업과 체계적인 실험 설계는 향후 프로젝트에서도 유용하게 활용할 수 있을 것입니다. 아쉬운 점도 있었지만 이를 통해 더 나은 프로젝트를 진행하기 위한 교훈을 얻을 수 있었습니다.&lt;/p&gt;
&lt;p style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #404040; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #404040; text-align: start;&quot; 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;</description>
      <category>AI/Naver_Boostcamp AI Tech</category>
      <category>object detection</category>
      <category>객체탐지</category>
      <category>네이버 부스트캠프</category>
      <category>쓰레기분류</category>
      <category>재활용 품목분류</category>
      <author>john8538</author>
      <guid isPermaLink="true">https://john8538.tistory.com/22</guid>
      <comments>https://john8538.tistory.com/22#entry22comment</comments>
      <pubDate>Tue, 11 Feb 2025 19:52:46 +0900</pubDate>
    </item>
    <item>
      <title>Sketch 데이터셋을 활용한 Image Classfication</title>
      <link>https://john8538.tistory.com/21</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;본 내용은 네이버 부스트캠프 7기에서 진행한 첫번째 프로젝트 내용에 대해 정리한 내용입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;깃허브는 아래 주소를 참고해 주세요.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;a href=&quot;https://github.com/boostcampaitech7/level1-imageclassification-cv-05?tab=readme-ov-file&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/boostcampaitech7/level1-imageclassification-cv-05?tab=readme-ov-file&lt;/a&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;1142&quot; data-origin-height=&quot;476&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bd9DM9/btsJQEkQz4L/4G7yAN2xQbRekpFafkRWnk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bd9DM9/btsJQEkQz4L/4G7yAN2xQbRekpFafkRWnk/img.png&quot; data-alt=&quot;주어진 데이터셋의 일부&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bd9DM9/btsJQEkQz4L/4G7yAN2xQbRekpFafkRWnk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbd9DM9%2FbtsJQEkQz4L%2F4G7yAN2xQbRekpFafkRWnk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;838&quot; height=&quot;349&quot; data-origin-width=&quot;1142&quot; data-origin-height=&quot;476&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;주어진 데이터셋의 일부&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;1. 소개&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt; 디지털 시대에 들어서면서 손으로 그린 스케치나 낙서를 인식하고 분류하는 기술의 중요성이 점점 더 커지고 있습니다. 스케치는 아이디어를 빠르게 표현하는 수단으로, 예술, 디자인, 엔지니어링 등 다양한 분야에서 널리 사용됩니다. 하지만 컴퓨터가 이러한 스케치를 이해하고 분류하는 것은 여전히 challenging한 과제입니다. &lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;프로젝트 배경&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;본 프로젝트는 컴퓨터 비전(CV) 분야의 핵심 과제인 이미지 분류에 초점을 맞추고 있습니다. 이미지 분류는 주어진 이미지가 어떤 범주에 속하는지 자동으로 판단하는 기술로, 인공지능과 머신러닝의 발전과 함께 급속도로 발전하고 있습니다. 이미지 분류 Task 중 Image-Net에서 제공하는 Sketch 데이터셋을 일부 정재하여 주어진 스케치 이미지에 대해 이미지 분류하는것이 이번 프로젝트의 목표입니다.&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;프로젝트 목적&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;우리팀의 목표는 최신 딥러닝 모델들을 활용하여 높은 정확도의 스케치 이미지 분류 시스템을 개발하는 것입니다. 특히, 우리는 다음 두 가지 주요 모델에 초점을 맞췄습니다:&lt;/span&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;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;b&gt;CNN 아키텍처&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;b&gt;ViT (Vision Transformer) 기반 아키텍처&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;이 두 모델은 각각 다른 접근 방식을 사용하며, 우리는 이들의 성능을 비교하고 최적화하는 것을 목표로 삼았습니다.&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;이미지 분류의 중요성&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;스케치 이미지 분류 기술은 다양한 분야에서 혁신적인 응용을 가능하게 합니다:&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;디자인 및 창의 산업: 빠른 아이디어 스케치를 자동으로 카테고리화하고 관리&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;교육: 학생들의 그림을 자동으로 평가하고 피드백 제공&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;UI/UX 디자인: 손으로 그린 와이어프레임을 인식하고 디지털화&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;게임 개발: 사용자가 그린 스케치를 게임 내 오브젝트로 변환&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;보안: 손으로 그린 서명이나 심볼을 인증 수단으로 활용&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;이러한 응용은 창의성을 높이고, 작업 효율성을 증대시키며, 인간-컴퓨터 상호작용을 더욱 직관적으로 만들 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;프로젝트의 도전과제&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;스케치 이미지 분류는 다음과 같은 특별한 도전과제를 가지고 있습니다:&lt;/span&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;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;스케치의 단순성: 스케치는 세부 정보가 부족하여 더 추상적입니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;스타일의 다양성: 각 사람마다 그리는 스타일이 다르기 때문에 일관성이 떨어집니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;노이즈와 불완전성: 손으로 그린 스케치는 종종 불완전하거나 노이즈를 포함합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;우리의 프로젝트는 이러한 도전과제를 극복하고, 더 나은 스케치 이미지 분류 모델을 개발하는 것을 목표로 하고 있습니다. 이를 통해 우리는 컴퓨터 비전 기술의 발전에 기여하고, 스케치를 활용한 새로운 응용 분야를 개척하고자 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;2. 협업 구성&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;프로젝트를 시작하기에 앞서, 각자의 역할을 나누고 주어진 일을 진행하기로 결정하였습니다. 크게 나눈 부분은 &lt;b&gt;Augmentation, github 관리, GPU서버 관리, EDA, 모델 Research 및 실험, 모델 학습코드 수정, wandb 실험 및 관리, 발표,&lt;/b&gt; &lt;b&gt;레포트 작성&lt;/b&gt;입니다. 전 이중에 모델 Resarch 및 실험과 전반적인 모델 실험부분, 발표를 담당하였습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&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;924&quot; data-origin-height=&quot;103&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mXl7v/btsJQTWosKx/BkeNPovkedylPnLtSlfmCK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mXl7v/btsJQTWosKx/BkeNPovkedylPnLtSlfmCK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mXl7v/btsJQTWosKx/BkeNPovkedylPnLtSlfmCK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmXl7v%2FbtsJQTWosKx%2FBkeNPovkedylPnLtSlfmCK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;924&quot; height=&quot;103&quot; data-origin-width=&quot;924&quot; data-origin-height=&quot;103&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;일정관리는 아래와 같이 잡았으며, 매주 2번씩 회의를 통해 진행사항을 공유하였습니다.&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;1057&quot; data-origin-height=&quot;202&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Zi678/btsJQJzzh9G/kdDxIXoAmkp6avoz93xkU1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Zi678/btsJQJzzh9G/kdDxIXoAmkp6avoz93xkU1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Zi678/btsJQJzzh9G/kdDxIXoAmkp6avoz93xkU1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZi678%2FbtsJQJzzh9G%2FkdDxIXoAmkp6avoz93xkU1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1057&quot; height=&quot;202&quot; data-origin-width=&quot;1057&quot; data-origin-height=&quot;202&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1557&quot; data-origin-height=&quot;613&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3bFQC/btsJPzZvr3Q/yvryjCIvev7m19aVB5JETk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3bFQC/btsJPzZvr3Q/yvryjCIvev7m19aVB5JETk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3bFQC/btsJPzZvr3Q/yvryjCIvev7m19aVB5JETk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3bFQC%2FbtsJPzZvr3Q%2FyvryjCIvev7m19aVB5JETk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1557&quot; height=&quot;613&quot; data-origin-width=&quot;1557&quot; data-origin-height=&quot;613&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;3. 데이터셋 구성&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;전반적인 데이터셋 이미지들은 다음과 같이 나타났습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;워터마크&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;손글씨&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;저작권 표시등 방해요소가 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;있는그림이&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 존재하였고&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;정교한 그림부터 투박한 그림까지 다양한 분포가 이루어졌습니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;간혹 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;컬러이미지가&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;섞여있는&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 경우가 있었으며&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;대상피사체에&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 대한 스케치만 있는 것이 아닌 풍경이 포함된 그림도 존재하였습니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;또한 대상이 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;여러개&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 포함된 이미지도 존재했으며&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;클래스별로 이미지가 부족한 경우 피사체를 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;flip&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;한 경우도 보였습니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;크게 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;결측치는&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 나타나지 않았으며 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;500&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;개의 클래스로 이루어진 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Train, Test Sketch &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;데이터셋입니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1792&quot; data-origin-height=&quot;670&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dbDhEX/btsJQGQnIM4/N7XFNyEXkxBFlA3JKtypq0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dbDhEX/btsJQGQnIM4/N7XFNyEXkxBFlA3JKtypq0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dbDhEX/btsJQGQnIM4/N7XFNyEXkxBFlA3JKtypq0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdbDhEX%2FbtsJQGQnIM4%2FN7XFNyEXkxBFlA3JKtypq0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1792&quot; height=&quot;670&quot; data-origin-width=&quot;1792&quot; data-origin-height=&quot;670&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1828&quot; data-origin-height=&quot;666&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dp6PDN/btsJQnjmDu1/nYjRQ8yTcKxLGqR88e2FXk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dp6PDN/btsJQnjmDu1/nYjRQ8yTcKxLGqR88e2FXk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dp6PDN/btsJQnjmDu1/nYjRQ8yTcKxLGqR88e2FXk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdp6PDN%2FbtsJQnjmDu1%2FnYjRQ8yTcKxLGqR88e2FXk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1828&quot; height=&quot;666&quot; data-origin-width=&quot;1828&quot; data-origin-height=&quot;666&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;전체적으로 이미지 사이즈에 대해서도 파악해보았습니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이미지 가로세로 픽셀 수에 대한 비율이 어떻게 되는지 분포입니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이 부분에 대해서도 어떠한 이미지 사이즈를 적용하여 모델을 학습시킬지에 대해서도 의논을 진행하였습니다&lt;/span&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1102&quot; data-origin-height=&quot;146&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhpGZv/btsJRpN9gYZ/GlKj0MfnZfQ9zxmdCJvO4k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhpGZv/btsJRpN9gYZ/GlKj0MfnZfQ9zxmdCJvO4k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhpGZv/btsJRpN9gYZ/GlKj0MfnZfQ9zxmdCJvO4k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhpGZv%2FbtsJRpN9gYZ%2FGlKj0MfnZfQ9zxmdCJvO4k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1102&quot; height=&quot;146&quot; data-origin-width=&quot;1102&quot; data-origin-height=&quot;146&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;4. 모델 선택&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;865&quot; data-origin-height=&quot;347&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ch7Csh/btsJPmlBwJZ/UmKIXYH6UeqgAXm5VoXue0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ch7Csh/btsJPmlBwJZ/UmKIXYH6UeqgAXm5VoXue0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ch7Csh/btsJPmlBwJZ/UmKIXYH6UeqgAXm5VoXue0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fch7Csh%2FbtsJPmlBwJZ%2FUmKIXYH6UeqgAXm5VoXue0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;508&quot; height=&quot;204&quot; data-origin-width=&quot;865&quot; data-origin-height=&quot;347&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;가장 초기 모델은 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;resnet&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;과 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;ViT&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;를 기반으로 진행하였으며 그 후 각 단일 모델의 성능을 최대로 끌어올려 앙상블을 진행하는 구조로 실험을 하였습니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;. 이때의 앙상블은 Soft-Voting을 사용했습니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Hard-Voting 보다 Soft-Voting 성능이 잘 나옴을 확인하였으며, 시간이 부족한 관계로 다른 앙상블은 진행하지 못하였습니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Why resnet? ViT?&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zc4ut/btsJQFKSS7L/xZecqyG3PB9eJETZFsUyGk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zc4ut/btsJQFKSS7L/xZecqyG3PB9eJETZFsUyGk/img.png&quot; data-origin-width=&quot;551&quot; data-origin-height=&quot;398&quot; data-is-animation=&quot;false&quot; width=&quot;411&quot; height=&quot;297&quot; style=&quot;width: 54.426%; margin-right: 10px;&quot; data-widthpercent=&quot;55.07&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zc4ut/btsJQFKSS7L/xZecqyG3PB9eJETZFsUyGk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fzc4ut%2FbtsJQFKSS7L%2FxZecqyG3PB9eJETZFsUyGk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;551&quot; height=&quot;398&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dhCklJ/btsJPNC1qHc/oXoM3zrCWU6pYR6gtKuwWk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dhCklJ/btsJPNC1qHc/oXoM3zrCWU6pYR6gtKuwWk/img.png&quot; data-origin-width=&quot;453&quot; data-origin-height=&quot;401&quot; data-is-animation=&quot;false&quot; style=&quot;width: 44.4112%;&quot; data-widthpercent=&quot;44.93&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dhCklJ/btsJPNC1qHc/oXoM3zrCWU6pYR6gtKuwWk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdhCklJ%2FbtsJPNC1qHc%2FoXoM3zrCWU6pYR6gtKuwWk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;453&quot; height=&quot;401&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;Classification의 대표 모델인 CNN 계열 ResNet과 Vision Task에서 최근에 주로 사용되는 ViT&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;선택하게 된 이유는 다음과 같습니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Resnet&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;은 지역적인 특징을 잘 포착하여 세부적인 선과 형태를 인식할 수 있고&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, Vit&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;는 전체적 특징을 잘 포착하여 전체적인 구조와 배치를 이해할 수 있을 것이란 가설을 세웠기 때문입니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;873&quot; data-origin-height=&quot;223&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cDV5D1/btsJPNC1rFB/sj8k87tGK3wohasD2kLEf0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cDV5D1/btsJPNC1rFB/sj8k87tGK3wohasD2kLEf0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cDV5D1/btsJPNC1rFB/sj8k87tGK3wohasD2kLEf0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcDV5D1%2FbtsJPNC1rFB%2Fsj8k87tGK3wohasD2kLEf0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;728&quot; height=&quot;186&quot; data-origin-width=&quot;873&quot; data-origin-height=&quot;223&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;전반적인 &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Optimizer&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;는 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;AdamW&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;를 사용하였고&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;lr&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; schedular&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;는 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;ReduceLROnPlateau&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;를 사용하였습니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;그 결과는 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;0.81&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;과 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;0.83&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이 나왔으며 이 둘을 앙상블 진행한 결과는 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;0.8640&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;의 결과가 나왔습니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이로써 초기 가설 검증이 완료되었으며&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이를 기반으로 단일 최적모델을 실험하고&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;앙상블을 비교하기로 계획하였습니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1039&quot; data-origin-height=&quot;361&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vRJzw/btsJPKTVYzO/4P8l7erNXqgDcT944jK5t1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vRJzw/btsJPKTVYzO/4P8l7erNXqgDcT944jK5t1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vRJzw/btsJPKTVYzO/4P8l7erNXqgDcT944jK5t1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvRJzw%2FbtsJPKTVYzO%2F4P8l7erNXqgDcT944jK5t1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;587&quot; height=&quot;204&quot; data-origin-width=&quot;1039&quot; data-origin-height=&quot;361&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;696&quot; data-origin-height=&quot;106&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bSS6bY/btsJPFSH0jw/xg9QOSnyXkr67q0JE94TMk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bSS6bY/btsJPFSH0jw/xg9QOSnyXkr67q0JE94TMk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bSS6bY/btsJPFSH0jw/xg9QOSnyXkr67q0JE94TMk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbSS6bY%2FbtsJPFSH0jw%2Fxg9QOSnyXkr67q0JE94TMk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;217&quot; height=&quot;33&quot; data-origin-width=&quot;696&quot; data-origin-height=&quot;106&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;988&quot; data-origin-height=&quot;318&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ALszj/btsJQBaGe9M/4nwMv2VWXxwqrfcQuBEguk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ALszj/btsJQBaGe9M/4nwMv2VWXxwqrfcQuBEguk/img.png&quot; data-alt=&quot;Image_Classification 리더보드 참고 &amp;amp;amp; 논문 탐색&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ALszj/btsJQBaGe9M/4nwMv2VWXxwqrfcQuBEguk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FALszj%2FbtsJQBaGe9M%2F4nwMv2VWXxwqrfcQuBEguk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;988&quot; height=&quot;318&quot; data-origin-width=&quot;988&quot; data-origin-height=&quot;318&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Image_Classification 리더보드 참고 &amp;amp; 논문 탐색&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;단일 모델을 찾는 과정에는 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Image_Classification&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;에 대한 리더보드를 주로 참고했습니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;첫번째로 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Paper with code&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;에 있는 리더보드를 참고해 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이를&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 기반으로 모델을 검색하고&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;논문을 찾아보았으며&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;두번째는 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Hugging Face&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;에 있는 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Image_Classification&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;리더보드를 참고하여 여러 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Task&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;에서 성능이 좋은 각각 모델을 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Search &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;하였습니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Search &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;한 이후에는 각 모델에 대한 논문 탐색 및 구조 파악으로 어떠한 장점을 지니는지 공부해보는 시간도 가져보았습니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c24Vih/btsJQI8u4jJ/KUkQBC1TORKU8dq7kz4kjK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c24Vih/btsJQI8u4jJ/KUkQBC1TORKU8dq7kz4kjK/img.png&quot; data-origin-width=&quot;898&quot; data-origin-height=&quot;422&quot; data-is-animation=&quot;false&quot; style=&quot;width: 58.4366%; margin-right: 10px;&quot; data-widthpercent=&quot;59.12&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c24Vih/btsJQI8u4jJ/KUkQBC1TORKU8dq7kz4kjK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc24Vih%2FbtsJQI8u4jJ%2FKUkQBC1TORKU8dq7kz4kjK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;898&quot; height=&quot;422&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/q0dzz/btsJPlUxSN5/BXwK8z0GuCbX8uTkfrnK61/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/q0dzz/btsJPlUxSN5/BXwK8z0GuCbX8uTkfrnK61/img.png&quot; data-origin-width=&quot;868&quot; data-origin-height=&quot;590&quot; data-is-animation=&quot;false&quot; style=&quot;width: 40.4007%;&quot; data-widthpercent=&quot;40.88&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/q0dzz/btsJPlUxSN5/BXwK8z0GuCbX8uTkfrnK61/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fq0dzz%2FbtsJPlUxSN5%2FBXwK8z0GuCbX8uTkfrnK61%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;868&quot; height=&quot;590&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이렇게 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Search &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;후 점차 한단계씩 밟아 나가기 시작했습니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;기초 모델부터 리더보드에서 순위가 높았던 모델을 바탕으로 실험을 한결과&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;정확도는 앞에 보이는 것과 같이 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;CNN&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;아키텍처 를 지닌 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;convnext&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;기반 모델&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;ViT&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;아키텍쳐는&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;eva&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;모델이 높은 성능을 보임을 확인하였습니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;. 각 모델에 대한 설명은 생략하도록 하겠습니다. 추후 왜 이러한 좋은 성능을 거둘 수 있었는지 간략하게 정리할 예정입니다.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1825&quot; data-origin-height=&quot;340&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/biSO5X/btsJPK7vpVG/wFHRauXrEjuvKtrVWe17EK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/biSO5X/btsJPK7vpVG/wFHRauXrEjuvKtrVWe17EK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/biSO5X/btsJPK7vpVG/wFHRauXrEjuvKtrVWe17EK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbiSO5X%2FbtsJPK7vpVG%2FwFHRauXrEjuvKtrVWe17EK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1825&quot; height=&quot;340&quot; data-origin-width=&quot;1825&quot; data-origin-height=&quot;340&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;각기 다른 이미지 크기로 학습된 모델들은 서로 다른 특성을 포착할 가능성이 높아 앙상블을 진행하게 되면 좋은 결과가 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;있을것이란&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 생각이 들어 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;CNN, &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;ViT&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;각 모델들의 앙상블을 진행해보았습니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;예상한 결과대로 단일&amp;nbsp; 모델모다 높은 성능을 지님을 확인하였고&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;ViT&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;에서는 시간이 부족해 가장 높은 단일 모델을 앙상블 하지는 못하였지만&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;성능이 증가하는 모습을 확인할 수 있었습니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이때 Augmentation은 진행하지 않았으며 가장 기초적인 Baseline 코드에서 모델 코드부분만 일부 수정 후 실험을 진행하였습니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;880&quot; data-origin-height=&quot;446&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cx9mR8/btsJQEFe0zY/xYEK28StzUGPBJjn3bvlYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cx9mR8/btsJQEFe0zY/xYEK28StzUGPBJjn3bvlYK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cx9mR8/btsJQEFe0zY/xYEK28StzUGPBJjn3bvlYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcx9mR8%2FbtsJQEFe0zY%2FxYEK28StzUGPBJjn3bvlYK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;485&quot; height=&quot;246&quot; data-origin-width=&quot;880&quot; data-origin-height=&quot;446&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;최종적으로 저희가 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;처음세웠던&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 가설인 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;CNN&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;와 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;VIt&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;모델의 앙상블 결과가 기본 단일모델 모다 높게 나옴을 확인하였고&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;가설검증을 완료하였습니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;5. Augmentation&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;971&quot; data-origin-height=&quot;833&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tIkh6/btsJPLZr8UA/HFCXPBdHvKyzd5Z1xJiX50/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tIkh6/btsJPLZr8UA/HFCXPBdHvKyzd5Z1xJiX50/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tIkh6/btsJPLZr8UA/HFCXPBdHvKyzd5Z1xJiX50/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtIkh6%2FbtsJPLZr8UA%2FHFCXPBdHvKyzd5Z1xJiX50%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;456&quot; height=&quot;391&quot; data-origin-width=&quot;971&quot; data-origin-height=&quot;833&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;단순 모델 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;탐색으로만은&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 한계가 존재함을 확인하였습니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;따라서 이미지 특성에 맞게 다양한 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Augmentataion&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;을 테스트해보고 실험하기로 결정하였습니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1438&quot; data-origin-height=&quot;516&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wrr1O/btsJPG5a7Xi/KlRRrkNDJ6RGJ1l39k6vR0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wrr1O/btsJPG5a7Xi/KlRRrkNDJ6RGJ1l39k6vR0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wrr1O/btsJPG5a7Xi/KlRRrkNDJ6RGJ1l39k6vR0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fwrr1O%2FbtsJPG5a7Xi%2FKlRRrkNDJ6RGJ1l39k6vR0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;551&quot; height=&quot;198&quot; data-origin-width=&quot;1438&quot; data-origin-height=&quot;516&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;color: #323232;&quot;&gt;먼저 &lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt;dataset&lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt;을 &lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt;분석해보았을때&lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt;같은 이미지에 &lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt;augmentation만&lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt; 취한듯한 스케치가 다수 존재&lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt;함을 파악하였습니다&lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;따라서 &lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt;실제 우리가 생각하는 것보다 &lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt;unique한&lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt;train&lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt;data는&lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt; 적을 수 &lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt;있&lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt;을것이라&lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt; 판단하였고 &lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt;이와 유사한 특징이 &lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt;test&lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt;sketch&lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt;image에서도&lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt; 나타난다고 가정했을 때 &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;color: #323232;&quot;&gt;이러한 특징을 반영하는 &lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt;augmentation이&lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt; 도움이 될 수 있다고&lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt;생각하였습니다&lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;color: #323232;&quot;&gt;또한 &lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt;중간에 글씨가 들어가 있거나 스케치 자체가 지저분한 경우 등 &lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt;noisy한&lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt;sketch가&lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt; 다수 존재&lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt;함을 확인해&lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt;Sketch&lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt; 내에 &lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt;target뿐만&lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt; 아니라 다양한 배경과 다른 객체가 존재하는 경우가 있&lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt;었으며 &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;color: #323232;&quot;&gt;Sketch에&lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt; 따라 같은 &lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt;target에&lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt; 대해서도 구도, 체형 등이 크게 다&lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt;른 경우도 존재함을 파악하였습니다&lt;/span&gt;&lt;span style=&quot;color: #323232;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1682&quot; data-origin-height=&quot;647&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bNbGE5/btsJRdG7YHF/Mq6vT3bu46KGAq0vv6nxO0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bNbGE5/btsJRdG7YHF/Mq6vT3bu46KGAq0vv6nxO0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bNbGE5/btsJRdG7YHF/Mq6vT3bu46KGAq0vv6nxO0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbNbGE5%2FbtsJRdG7YHF%2FMq6vT3bu46KGAq0vv6nxO0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;771&quot; height=&quot;297&quot; data-origin-width=&quot;1682&quot; data-origin-height=&quot;647&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bA1Vor/btsJPGYrTRQ/bNn5Js9XIzKrDAbjQ8HVj0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bA1Vor/btsJPGYrTRQ/bNn5Js9XIzKrDAbjQ8HVj0/img.png&quot; data-origin-width=&quot;1888&quot; data-origin-height=&quot;717&quot; data-is-animation=&quot;false&quot; width=&quot;466&quot; height=&quot;177&quot; style=&quot;width: 45.4645%; margin-right: 10px;&quot; data-widthpercent=&quot;46&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bA1Vor/btsJPGYrTRQ/bNn5Js9XIzKrDAbjQ8HVj0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbA1Vor%2FbtsJPGYrTRQ%2FbNn5Js9XIzKrDAbjQ8HVj0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1888&quot; height=&quot;717&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cF51hB/btsJRryr8sV/H11PgqQakSlU2uZtp0oyZK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cF51hB/btsJRryr8sV/H11PgqQakSlU2uZtp0oyZK/img.png&quot; data-origin-width=&quot;1796&quot; data-origin-height=&quot;581&quot; data-is-animation=&quot;false&quot; style=&quot;width: 53.3727%;&quot; data-widthpercent=&quot;54&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cF51hB/btsJRryr8sV/H11PgqQakSlU2uZtp0oyZK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcF51hB%2FbtsJRryr8sV%2FH11PgqQakSlU2uZtp0oyZK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1796&quot; height=&quot;581&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nHhDW/btsJRd8cb9U/Pn64nCkSdR0hwCv1K1TPs1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nHhDW/btsJRd8cb9U/Pn64nCkSdR0hwCv1K1TPs1/img.png&quot; data-origin-width=&quot;1851&quot; data-origin-height=&quot;629&quot; data-is-animation=&quot;false&quot; style=&quot;width: 52.9325%; margin-right: 10px;&quot; data-widthpercent=&quot;53.56&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nHhDW/btsJRd8cb9U/Pn64nCkSdR0hwCv1K1TPs1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnHhDW%2FbtsJRd8cb9U%2FPn64nCkSdR0hwCv1K1TPs1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1851&quot; height=&quot;629&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bk3oyn/btsJPRrLT9o/QoQIVq72AwkhNc0E6arZt0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bk3oyn/btsJPRrLT9o/QoQIVq72AwkhNc0E6arZt0/img.png&quot; data-origin-width=&quot;1863&quot; data-origin-height=&quot;730&quot; data-is-animation=&quot;false&quot; style=&quot;width: 45.9047%;&quot; data-widthpercent=&quot;46.44&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bk3oyn/btsJPRrLT9o/QoQIVq72AwkhNc0E6arZt0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbk3oyn%2FbtsJPRrLT9o%2FQoQIVq72AwkhNc0E6arZt0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1863&quot; height=&quot;730&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdlewZ/btsJPcQXGvB/fkBwavyuozmIkqDUMhyAg0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdlewZ/btsJPcQXGvB/fkBwavyuozmIkqDUMhyAg0/img.png&quot; data-origin-width=&quot;1882&quot; data-origin-height=&quot;724&quot; data-is-animation=&quot;false&quot; style=&quot;width: 51.434%; margin-right: 10px;&quot; data-widthpercent=&quot;52.04&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdlewZ/btsJPcQXGvB/fkBwavyuozmIkqDUMhyAg0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdlewZ%2FbtsJPcQXGvB%2FfkBwavyuozmIkqDUMhyAg0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1882&quot; height=&quot;724&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bRe2wS/btsJRzXtnGf/rYeYqg5QxhzAk1ilnTnxt1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bRe2wS/btsJRzXtnGf/rYeYqg5QxhzAk1ilnTnxt1/img.png&quot; data-origin-width=&quot;1011&quot; data-origin-height=&quot;422&quot; data-is-animation=&quot;false&quot; style=&quot;width: 47.4032%;&quot; data-widthpercent=&quot;47.96&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bRe2wS/btsJRzXtnGf/rYeYqg5QxhzAk1ilnTnxt1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbRe2wS%2FbtsJRzXtnGf%2FrYeYqg5QxhzAk1ilnTnxt1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1011&quot; height=&quot;422&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;위에 보이는 사진과 같이 데이터셋에 따라 가설을 세우고 이에 해결책을 Augmentation을 이용해 검증하는 과정을 거치며 테스트해보았습니다. 그러나 Augmentation 만으로는 완벽하게 해결할 수 없다고 판단해, 다른방법도 추가로 조사하고 공부해보았습니다.&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;1661&quot; data-origin-height=&quot;468&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/x5aK7/btsJReze8R5/gbxOnzWwnHnUphQCRm3Kw0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/x5aK7/btsJReze8R5/gbxOnzWwnHnUphQCRm3Kw0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/x5aK7/btsJReze8R5/gbxOnzWwnHnUphQCRm3Kw0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fx5aK7%2FbtsJReze8R5%2FgbxOnzWwnHnUphQCRm3Kw0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1661&quot; height=&quot;468&quot; data-origin-width=&quot;1661&quot; data-origin-height=&quot;468&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;먼저 첫번째로 GAN등을 이용해 추가적인 학습데이터를 구축해보고자 하였는데, 이부분은 실패하였습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&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;1159&quot; data-origin-height=&quot;445&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ePyBfk/btsJPIojwSI/StaZ4JeWukZSAbxhwepkVK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ePyBfk/btsJPIojwSI/StaZ4JeWukZSAbxhwepkVK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ePyBfk/btsJPIojwSI/StaZ4JeWukZSAbxhwepkVK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FePyBfk%2FbtsJPIojwSI%2FStaZ4JeWukZSAbxhwepkVK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;336&quot; height=&quot;129&quot; data-origin-width=&quot;1159&quot; data-origin-height=&quot;445&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;위의 오른쪽 사진과 같이 이상한 형태로 나오는 경우가 많았습니다. 또한 시간이 부족하였기에 더 많은 시도와 다른 Diffusion모델을 사용해보지는 못하였습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;저희는 DreamBooth fine-tuning with LoRa 모델을 활용하였으며, 금붕어를 생성하고자 하였습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;두번째로 사진내에 존재하는 글씨, 라벨과 같은 내용을 지우고자 시도도 해보았습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bBTQJc/btsJPm0g19r/We7t3o6QeL3Fcxghx1Uwkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bBTQJc/btsJPm0g19r/We7t3o6QeL3Fcxghx1Uwkk/img.png&quot; data-origin-width=&quot;837&quot; data-origin-height=&quot;397&quot; data-is-animation=&quot;false&quot; style=&quot;width: 53.1121%; margin-right: 10px;&quot; data-widthpercent=&quot;53.74&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bBTQJc/btsJPm0g19r/We7t3o6QeL3Fcxghx1Uwkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbBTQJc%2FbtsJPm0g19r%2FWe7t3o6QeL3Fcxghx1Uwkk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;837&quot; height=&quot;397&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDD3vt/btsJQVGH0Rt/QyhhwoUliRNoCX5FNpURqK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDD3vt/btsJQVGH0Rt/QyhhwoUliRNoCX5FNpURqK/img.png&quot; data-origin-width=&quot;746&quot; data-origin-height=&quot;411&quot; data-is-animation=&quot;false&quot; style=&quot;width: 45.7252%;&quot; data-widthpercent=&quot;46.26&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDD3vt/btsJQVGH0Rt/QyhhwoUliRNoCX5FNpURqK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDD3vt%2FbtsJQVGH0Rt%2FQyhhwoUliRNoCX5FNpURqK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;746&quot; height=&quot;411&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;위 사진을 보게 되면 이 결과 스케치가 오히려 흐릿해지는 결과를 보이기도 하였습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;추후 의논을 거쳐보았을때 글씨가 오히려 스케치 Classification에 도움이 될 수 있을것이라는 가설을 세웠습니다. 이 가설을 시간이 부족해 검증을 실험을 통해 진행하지는 못하였습니다.&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;1670&quot; data-origin-height=&quot;462&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CbuwF/btsJQTvkYbN/etaEofCYk1XRSRAG1OGUXK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CbuwF/btsJQTvkYbN/etaEofCYk1XRSRAG1OGUXK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CbuwF/btsJQTvkYbN/etaEofCYk1XRSRAG1OGUXK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCbuwF%2FbtsJQTvkYbN%2FetaEofCYk1XRSRAG1OGUXK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1670&quot; height=&quot;462&quot; data-origin-width=&quot;1670&quot; data-origin-height=&quot;462&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;모델의 오류를 해결할 수 있는 TTA를 진행해보기도 하였으나, 실험결과 오히려 성능이 낮아지는 모습이 보여 이또한 보류하였습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;이후에는 다른 Augmentation인 Mixup &amp;amp; Cutmix를 진행했습니다.&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;1881&quot; data-origin-height=&quot;581&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4CuZd/btsJPPU36Tp/VKaPJ5XHwDqZJvsJkOTJ70/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4CuZd/btsJPPU36Tp/VKaPJ5XHwDqZJvsJkOTJ70/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4CuZd/btsJPPU36Tp/VKaPJ5XHwDqZJvsJkOTJ70/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4CuZd%2FbtsJPPU36Tp%2FVKaPJ5XHwDqZJvsJkOTJ70%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1881&quot; height=&quot;581&quot; data-origin-width=&quot;1881&quot; data-origin-height=&quot;581&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1665&quot; data-origin-height=&quot;504&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QLxxK/btsJPRedbva/hU1j4YzolKv0EOULBYtcgk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QLxxK/btsJPRedbva/hU1j4YzolKv0EOULBYtcgk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QLxxK/btsJPRedbva/hU1j4YzolKv0EOULBYtcgk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQLxxK%2FbtsJPRedbva%2FhU1j4YzolKv0EOULBYtcgk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1665&quot; height=&quot;504&quot; data-origin-width=&quot;1665&quot; data-origin-height=&quot;504&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;여러 논문을 바탕으로 Mixup보단 Cutmix가 다양한 Task에서 더 좋은 성능을 보임을 확인하였으며 이를 기반으로 파라미터를 조정하여 실험해 보았습니다.&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;1664&quot; data-origin-height=&quot;748&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5mgwX/btsJQVfDM31/vPihs8MzbRxaU8goSJzVRk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5mgwX/btsJQVfDM31/vPihs8MzbRxaU8goSJzVRk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5mgwX/btsJQVfDM31/vPihs8MzbRxaU8goSJzVRk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5mgwX%2FbtsJQVfDM31%2FvPihs8MzbRxaU8goSJzVRk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;580&quot; height=&quot;261&quot; data-origin-width=&quot;1664&quot; data-origin-height=&quot;748&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;데이터셋의 특징때문인지 하이퍼파라미터 조절에 따라 크게 성능이 향상되는 모습은 보이지 않았습니다. 학습속도가 비교적 빠른 Resnet에서 이를 실험하였는데 본 베이스라인코드 성능보다는 크게 향상되는 모습을 보였습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;추후 ViT에서 이를 적용하여 실험을 하였을때는 큰 성능향상을 보이지 못하였는데, 저희는 이를 조금 더 복잡한 모델, 다른 아키텍쳐때문이라고 결론내렸습니다. 따라서 최종적으로는 베이스라인코드로 학습시킨 이후에 추가적으로 모델의 가중치를 불러와 추가학습을 일부 진행하였습니다.&lt;/span&gt;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;6. Result&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;최종적용한 Augmnetation은 아래와 같습니다.&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;SketchRandAugmnet라는 함수를 만들어 최적의 성능을 보이는 Augmentation을 적용하도록하였습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dgWzMk/btsJQx0qJu1/IXHkvL9VkvK7BIJGvmvKIk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dgWzMk/btsJQx0qJu1/IXHkvL9VkvK7BIJGvmvKIk/img.png&quot; data-origin-width=&quot;426&quot; data-origin-height=&quot;396&quot; data-is-animation=&quot;false&quot; style=&quot;width: 41.4253%; margin-right: 10px;&quot; data-widthpercent=&quot;41.91&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dgWzMk/btsJQx0qJu1/IXHkvL9VkvK7BIJGvmvKIk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdgWzMk%2FbtsJQx0qJu1%2FIXHkvL9VkvK7BIJGvmvKIk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;426&quot; height=&quot;396&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AhoAR/btsJRcanYro/Or0zVgdQhonPMBbzsyo8rk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AhoAR/btsJRcanYro/Or0zVgdQhonPMBbzsyo8rk/img.png&quot; data-origin-width=&quot;410&quot; data-origin-height=&quot;275&quot; data-is-animation=&quot;false&quot; style=&quot;width: 57.4119%;&quot; data-widthpercent=&quot;58.09&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AhoAR/btsJRcanYro/Or0zVgdQhonPMBbzsyo8rk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAhoAR%2FbtsJRcanYro%2FOr0zVgdQhonPMBbzsyo8rk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;410&quot; height=&quot;275&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;함수의 구성은 아래 코드와 같습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1727588063546&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class SketchAutoAugment(A.ImageOnlyTransform):
    def __init__(self, always_apply=False, p=1.0):
        super(SketchAutoAugment, self).__init__(always_apply, p)
        self.policy = self.sketch_policy()

    def sketch_policy(self):
        return [
            [('Rotate', 0.7, 2), ('Posterize', 0.6, 3)],
            [('ShearX', 0.8, 4), ('AutoContrast', 0.4, None)],
            [('TranslateX', 0.8, 8), ('TranslateY', 0.6, 6)],
            [('Invert', 0.3, None), ('Equalize', 0.5, None)]
        ]

    def apply_augment(self, image, op_name, magnitude):
        img = Image.fromarray(image)
        if op_name == 'Rotate':
            return np.array(img.rotate(magnitude * 2.0))
        elif op_name == 'Posterize':
            return np.array(ImageOps.posterize(img, magnitude))
        elif op_name == 'ShearX':
            return np.array(img.transform(img.size, Image.AFFINE, (1, magnitude * 0.1, 0, 0, 1, 0)))
        elif op_name == 'AutoContrast':
            return np.array(ImageOps.autocontrast(img))
        elif op_name == 'TranslateX':
            return np.array(img.transform(img.size, Image.AFFINE, (1, 0, magnitude, 0, 1, 0)))
        elif op_name == 'TranslateY':
            return np.array(img.transform(img.size, Image.AFFINE, (1, 0, 0, 0, 1, magnitude)))
        elif op_name == 'Invert':
            return np.array(ImageOps.invert(img))
        elif op_name == 'Equalize':
            return np.array(ImageOps.equalize(img))
        return image

    def apply(self, image, **params):
        sub_policy = random.choice(self.policy)
        for op_name, prob, magnitude in sub_policy:
            if random.random() &amp;lt; prob:
                image = self.apply_augment(image, op_name, magnitude)
        return image

    def get_transform_init_args_names(self):
        return (&quot;always_apply&quot;, &quot;p&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;이를 적용함으로써 데이터셋 다양성증가, 모델의 일반화 능력 향상을 기대했습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;이 Augmentation을 적용하면서 추가로 라이브러리를 사용해 또다른 Augmentation도 진행해보았습니다.&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;1436&quot; data-origin-height=&quot;652&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PVOT5/btsJRohqstt/QqlKZCr5YbRMwdSSxI2yZk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PVOT5/btsJRohqstt/QqlKZCr5YbRMwdSSxI2yZk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PVOT5/btsJRohqstt/QqlKZCr5YbRMwdSSxI2yZk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPVOT5%2FbtsJRohqstt%2FQqlKZCr5YbRMwdSSxI2yZk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;697&quot; height=&quot;316&quot; data-origin-width=&quot;1436&quot; data-origin-height=&quot;652&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;이와 같이 앞에서 설명했던 여러 Augmentation을 가설에 맞게 테스트해보며 최적의 성능을 찾아보았습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;872&quot; data-origin-height=&quot;358&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/drUttA/btsJRoBJi9X/84w3sXVkCu4tQi8Bibb8E1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/drUttA/btsJRoBJi9X/84w3sXVkCu4tQi8Bibb8E1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/drUttA/btsJRoBJi9X/84w3sXVkCu4tQi8Bibb8E1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdrUttA%2FbtsJRoBJi9X%2F84w3sXVkCu4tQi8Bibb8E1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;582&quot; height=&quot;239&quot; data-origin-width=&quot;872&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;&lt;span style=&quot;font-family: 'Noto Sans Light';&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;1659&quot; data-origin-height=&quot;487&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ODKPG/btsJQlMEaug/ShkAPG0MtP4TGrlAby7FnK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ODKPG/btsJQlMEaug/ShkAPG0MtP4TGrlAby7FnK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ODKPG/btsJQlMEaug/ShkAPG0MtP4TGrlAby7FnK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FODKPG%2FbtsJQlMEaug%2FShkAPG0MtP4TGrlAby7FnK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;580&quot; height=&quot;170&quot; data-origin-width=&quot;1659&quot; data-origin-height=&quot;487&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;동일한 모델구조를 가지나 서로다른 입력이미지의 크기와 다른 대규모이미지 데이터셋을 학습시킨 두 모델과 앞선 가설에서 증명했던 CNN, ViT모델구조를 앙상블 진행하여 최종적으로는 0.94라는 Public score를 달성할 수 있었습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&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;1484&quot; data-origin-height=&quot;427&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pLjgG/btsJQ53tYeT/97twkR9MGDkmlwGOF0JV10/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pLjgG/btsJQ53tYeT/97twkR9MGDkmlwGOF0JV10/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pLjgG/btsJQ53tYeT/97twkR9MGDkmlwGOF0JV10/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpLjgG%2FbtsJQ53tYeT%2F97twkR9MGDkmlwGOF0JV10%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;703&quot; height=&quot;202&quot; data-origin-width=&quot;1484&quot; data-origin-height=&quot;427&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;Public과 Private의 차이가 좀 존재합니다. 그 원인을 분석해보니 시간이 부족하여 단일모델에 대한 하이퍼파라미터 조정을 못해본것으로 나타났습니다. 거의 모든실험의 Optimizer를 고정하여 실험하였고 lr, batch size는 모델의 사이즈에 따라 조정하였습니다. lr_schedular도 논문이나 다른 Task에 최적의 성능을 내는 부분에 대해 검색 후 추가로 실험을 진행해보았다면 충분히 더 높은 점수를 받을 수 있지 않았을까 하는 아쉬움도 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&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;1220&quot; data-origin-height=&quot;401&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zfauO/btsJRcVMLwG/mIGbu4FZj4mMWBfilru8aK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zfauO/btsJRcVMLwG/mIGbu4FZj4mMWBfilru8aK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zfauO/btsJRcVMLwG/mIGbu4FZj4mMWBfilru8aK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzfauO%2FbtsJRcVMLwG%2FmIGbu4FZj4mMWBfilru8aK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;659&quot; height=&quot;217&quot; data-origin-width=&quot;1220&quot; data-origin-height=&quot;401&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;앙상블&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;효과:각&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;모델의 예측을 결합함으로써 개별 모델의 약점을 상호 보완합니다. 예측의 불확실성을 줄이고, 더 안정적이고 정확한 결과를 얻을 수 있습니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;EVA-02의&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;강점:대규모&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;데이터셋에서 사전 학습된 모델로, 풍부한 시각적 지식을 가지고 있습니다. 자기 주의 메커니즘을 통해 스케치의 중요한 부분에 집중할 수 있습니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;EfficientNet의&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;강점:효율적인&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;아키텍처로 계산 비용 대비 높은 성능을 제공합니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;CNN의&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;특성상 지역적 특징과 질감 정보를 잘 포착합&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;705&quot; data-origin-height=&quot;300&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b5s4Gr/btsJQ5vCeCy/qMaiwqXgjU8NzBylNvEvF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b5s4Gr/btsJQ5vCeCy/qMaiwqXgjU8NzBylNvEvF1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b5s4Gr/btsJQ5vCeCy/qMaiwqXgjU8NzBylNvEvF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb5s4Gr%2FbtsJQ5vCeCy%2FqMaiwqXgjU8NzBylNvEvF1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;170&quot; data-origin-width=&quot;705&quot; data-origin-height=&quot;300&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;프로젝트를 진행하며 아쉬웠던 점은 방금 언급했던것과 동일하게 &lt;span style=&quot;color: #000000;&quot;&gt;시간이 부족해서 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;옵티마이저&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;lr&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; ,&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;bastch&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;size,&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;스케쥴로와&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 같은 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;하이퍼파라미터&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 튜닝을 하지 못했고, 그래서 성능을 최대한으로 끌어올리지 못했던 점, &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;또한 협업 과정에서 깔끔하게 코드를 작성하지 못했고 코드를 서로 설명해주는 과정에서 협업이 부드럽지 못하는 아쉬움이 있었습니다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; font-family: 'Noto Sans Light';&quot;&gt;다음프로젝트에서는 이러한 아쉬움을 줄여 조금더 발전된 모습을 보일 수 있도록 노력할 예정입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;7. 코드 구조 및 회고&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;최종적으로 제가 작성하였던 코드 구조와 회고를 첨부하며 프로젝트 정리를 마무리 하겠습니다. 긴 글 읽어주셔서 감사합니다.&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dt4m6G/btsJPow1rgW/QgCjLOacGzkTRpTS1z5gQK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dt4m6G/btsJPow1rgW/QgCjLOacGzkTRpTS1z5gQK/img.png&quot; data-origin-width=&quot;818&quot; data-origin-height=&quot;610&quot; data-is-animation=&quot;false&quot; width=&quot;560&quot; height=&quot;418&quot; style=&quot;width: 56.7325%; margin-right: 10px;&quot; data-widthpercent=&quot;57.4&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dt4m6G/btsJPow1rgW/QgCjLOacGzkTRpTS1z5gQK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdt4m6G%2FbtsJPow1rgW%2FQgCjLOacGzkTRpTS1z5gQK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;818&quot; height=&quot;610&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VGW9l/btsJQhXRJsZ/mPyHUEde0uFdeKDPQHE01K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VGW9l/btsJQhXRJsZ/mPyHUEde0uFdeKDPQHE01K/img.png&quot; data-origin-width=&quot;834&quot; data-origin-height=&quot;838&quot; data-is-animation=&quot;false&quot; style=&quot;width: 42.1047%;&quot; data-widthpercent=&quot;42.6&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VGW9l/btsJQhXRJsZ/mPyHUEde0uFdeKDPQHE01K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVGW9l%2FbtsJQhXRJsZ%2FmPyHUEde0uFdeKDPQHE01K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;834&quot; height=&quot;838&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YOIHb/btsJRouXsQR/HP7ceY1XxvVy7DCwk5tgl0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YOIHb/btsJRouXsQR/HP7ceY1XxvVy7DCwk5tgl0/img.png&quot; data-origin-width=&quot;1006&quot; data-origin-height=&quot;865&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.0602%; margin-right: 10px;&quot; data-widthpercent=&quot;49.64&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YOIHb/btsJRouXsQR/HP7ceY1XxvVy7DCwk5tgl0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYOIHb%2FbtsJRouXsQR%2FHP7ceY1XxvVy7DCwk5tgl0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1006&quot; height=&quot;865&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dK9WMc/btsJPRL2uIj/xydScZI2GUlIKiF4qFqdrk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dK9WMc/btsJPRL2uIj/xydScZI2GUlIKiF4qFqdrk/img.png&quot; data-origin-width=&quot;1003&quot; data-origin-height=&quot;850&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.777%;&quot; data-widthpercent=&quot;50.36&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dK9WMc/btsJPRL2uIj/xydScZI2GUlIKiF4qFqdrk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdK9WMc%2FbtsJPRL2uIj%2FxydScZI2GUlIKiF4qFqdrk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1003&quot; height=&quot;850&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>AI/Naver_Boostcamp AI Tech</category>
      <category>imageclassification</category>
      <category>네이버부스트캠프</category>
      <category>스케치데이터셋</category>
      <category>스케치이미지</category>
      <category>이미지분류</category>
      <category>인공지능</category>
      <author>john8538</author>
      <guid isPermaLink="true">https://john8538.tistory.com/21</guid>
      <comments>https://john8538.tistory.com/21#entry21comment</comments>
      <pubDate>Sun, 29 Sep 2024 14:48:39 +0900</pubDate>
    </item>
    <item>
      <title>백준-1149번 RGB거리</title>
      <link>https://john8538.tistory.com/17</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/1149&quot;&gt;https://www.acmicpc.net/problem/1149&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;동적계획법 즉 DP를 활용하여 문제를 해결할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그림을 통하여 문제를 조금 더 간편하게 이해해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;image.png&quot; data-origin-width=&quot;729&quot; data-origin-height=&quot;668&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cFGQ9O/btsI3UXPUZy/FcNznWmDWKDJH7cS4qbITk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cFGQ9O/btsI3UXPUZy/FcNznWmDWKDJH7cS4qbITk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cFGQ9O/btsI3UXPUZy/FcNznWmDWKDJH7cS4qbITk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcFGQ9O%2FbtsI3UXPUZy%2FFcNznWmDWKDJH7cS4qbITk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;300&quot; height=&quot;275&quot; data-filename=&quot;image.png&quot; data-origin-width=&quot;729&quot; data-origin-height=&quot;668&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;문제 이해
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;N개의 집이 있고, 각 집은 빨강(R), 초록(G), 파랑(B) 중 하나의 색으로 칠해야 한다.&lt;/li&gt;
&lt;li&gt;인접한 집들은 서로 다른 색으로 칠해져야 한다.&lt;/li&gt;
&lt;li&gt;각 집을 각 색으로 칠하는 비용이 주어진다.&lt;/li&gt;
&lt;li&gt;목표는 모든 규칙을 만족하면서 전체 비용을 최소화하는 것.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;해결 접근 방식 (동적 프로그래밍)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;그림에서 보이듯이, 각 단계(집)마다 3가지 선택(R, G, B)이 존재.&lt;/li&gt;
&lt;li&gt;각 단계에서의 최소 비용은 이전 단계의 결과에 의존.&lt;/li&gt;
&lt;li&gt;따라서 이를 해결하려면 전에 단계에서 가져올 수 있는 숫자중 최소를 구한 후, 현재 위치와 더하면 된다!&lt;/li&gt;
&lt;li&gt;이를 계속 한 행마다 반복해준다면 마지막 행 중 최소 값을 구하면 답이 나온다!&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;DP 테이블 구성
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;DP[i][j]: i번째 집을 j색으로 칠했을 때의 최소 비용 (j = 0: 그림에서 검정색, j = 1: 그림에서 파랑색, j = 2: 그림에서 빨간색)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;점화식
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;DP[i][0] = min(DP[i-1][1], DP[i-1][2]) + cost[i][0] (오른쪽 대각선 두개 중 최소)&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;DP[i][1] = min(DP[i-1][0], DP[i-1][2]) + cost[i][1] &lt;b&gt;(왼쪽 대각선 , 오른쪽 대각선 중 최소)&lt;/b&gt; &lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;DP[i][2] = min(DP[i-1][0], DP[i-1][1]) + cost[i][2] &lt;b&gt;&lt;b&gt;(왼쪽 대각선 두개 중 최소)&lt;/b&gt;&lt;/b&gt; &lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;구현 단계
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;a) 입력 받기: N과 각 집의 색칠 비용&lt;/li&gt;
&lt;li&gt;b) DP 테이블 초기화: 첫 번째 집의 비용으로 초기화 c) 두 번째 집부터 N번째 집까지 반복:&lt;/li&gt;
&lt;li&gt;각 색상에 대해 이전 집의 다른 두 색상 중 최소 비용을 선택하고 현재 비용을 더함&lt;/li&gt;
&lt;li&gt;d) 마지막 행(N번째 집)에서 최소값을 선택하여 출력&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;시간 복잡도는 O(N)이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;구체적인 코드는 아래와 같다.&lt;/p&gt;
&lt;pre id=&quot;code_1723744058249&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;n = int(input())
cost = []
for i in range(n):
    cost.append(list(map(int,input().split())))
for i in range(1, n):
    cost[i][0] = min(cost[i-1][1], cost[i-1][2]) + cost[i][0]
    cost[i][1] = min(cost[i-1][0], cost[i-1][2]) + cost[i][1]
    cost[i][2] = min(cost[i-1][0], cost[i-1][1]) + cost[i][2]

print(min(cost[-1]))&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>백준 &amp;amp; 알고리즘</category>
      <category>1149번</category>
      <category>dp</category>
      <category>RGB거리</category>
      <category>동적계획법</category>
      <category>백준</category>
      <author>john8538</author>
      <guid isPermaLink="true">https://john8538.tistory.com/17</guid>
      <comments>https://john8538.tistory.com/17#entry17comment</comments>
      <pubDate>Fri, 16 Aug 2024 02:52:27 +0900</pubDate>
    </item>
    <item>
      <title>백준-11727번 2xn 타일링 2</title>
      <link>https://john8538.tistory.com/16</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/11727&quot;&gt;https://www.acmicpc.net/problem/11727&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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&amp;times;n 직사각형을 1&amp;times;2, 2&amp;times;1과 2&amp;times;2 타일로 채우는 방법의 수를 구하는 프로그램을 작성해야한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;규칙을 그림을 통하여 그려보았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;image.png&quot; data-origin-width=&quot;629&quot; data-origin-height=&quot;710&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IpPIp/btsI4yNlFz7/G7LQ3Jl9kDdppmxCGNeRkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IpPIp/btsI4yNlFz7/G7LQ3Jl9kDdppmxCGNeRkK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IpPIp/btsI4yNlFz7/G7LQ3Jl9kDdppmxCGNeRkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIpPIp%2FbtsI4yNlFz7%2FG7LQ3Jl9kDdppmxCGNeRkK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;710&quot; data-filename=&quot;image.png&quot; data-origin-width=&quot;629&quot; data-origin-height=&quot;710&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;2x3을 보게 된다면 규칙을 쉽게 찾을 수 있다.&lt;/p&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;2x2에서 2x1이 오른쪽으로 붙어 2x3이 되는 경우&lt;/b&gt;와 &lt;b&gt;2x1이 왼쪽으로 붙어 2x3이 되는 경우&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;총 2가지가 존재한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 2x2에서 구한 3개에 2x1(2개)를 더해 총 5개가 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2x4를 생각해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2x3에서 2x1이 붙는 경우와 2x2에서 2개씩 결합하는 경우가 존재해 총 11개가 된다.&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;A(n) = A(n-1) + (2 X A(n-2))&lt;/b&gt; 가 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 코드로 작성하자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1723743741366&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;n = int(input())
ans = [1,3]
for i in range(2,n):
        ans.append(ans[i-1] + 2*ans[i-2])
print(ans[n-1]%10007)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음에는 재귀 방식으로 작성했으나 시간오류때문에 반복문써서 푸는걸로 수정했다.&lt;/p&gt;</description>
      <category>백준 &amp;amp; 알고리즘</category>
      <category>11727번</category>
      <category>dp</category>
      <category>백준</category>
      <category>타일링2</category>
      <author>john8538</author>
      <guid isPermaLink="true">https://john8538.tistory.com/16</guid>
      <comments>https://john8538.tistory.com/16#entry16comment</comments>
      <pubDate>Fri, 16 Aug 2024 02:42:44 +0900</pubDate>
    </item>
    <item>
      <title>백준-9095번 1,2,3 더하기</title>
      <link>https://john8538.tistory.com/15</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/9095&quot;&gt;https://www.acmicpc.net/problem/9095&lt;/a&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;DP란?&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Divide-And-Conquer : Top-down approach&lt;/h4&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;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;Dynamic programming: bottom-up approach&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;큰 문제를 작은 문제로 나눈 다는 점은 Divde-And-Conquer와 동일하다.&lt;/li&gt;
&lt;li&gt;그러나 작은 문제를 먼저 해결하고, 그 결과를 저장한 다음, 후에 그 결과가 필요할 때마다 다시 계산하는 것이 아니고 저장된 결과를 이용해 도출해낸다.&lt;/li&gt;
&lt;li&gt;여기에서의 Programming &amp;rarr; 해답을 구축하는데 배열(테이블)을 사용함을 의미한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전에 결과를 이용해서 원하는 결과를 도출해낸다는 DP의 정의에 따라 접근해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 1을 1,2,3의 합으로 나타내는 방법은 1 = 1 한 가지다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 2를 1,2,3의 합으로 나타내면 2 = 1+2 , 2 두 가지이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반복해가며 규칙을 발견해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table id=&quot;ecf16bd9-fca4-4df7-9011-64ec35b118fb&quot; style=&quot;border-collapse: collapse; width: 45.814%; height: 430px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr id=&quot;440e4af5-6eaf-4c37-b3a6-d7147523d2e5&quot; style=&quot;height: 20px;&quot;&gt;
&lt;td id=&quot;;jY:&quot; style=&quot;height: 20px; width: 3.97395%; text-align: center;&quot;&gt;1&lt;/td&gt;
&lt;td id=&quot;w&amp;lt;F_&quot; style=&quot;height: 20px; width: 28.0743%; text-align: left;&quot;&gt;1&lt;/td&gt;
&lt;td id=&quot;Fwre&quot; style=&quot;height: 20px; width: 8.42031%; text-align: center;&quot;&gt;1개&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;8ace5af1-ebd0-4b96-9ea7-875f5d00467f&quot; style=&quot;height: 34px;&quot;&gt;
&lt;td id=&quot;;jY:&quot; style=&quot;height: 34px; width: 3.97395%; text-align: center;&quot;&gt;2&lt;/td&gt;
&lt;td id=&quot;w&amp;lt;F_&quot; style=&quot;height: 34px; width: 28.0743%; text-align: left;&quot;&gt;1+1&lt;br /&gt;2&lt;/td&gt;
&lt;td id=&quot;Fwre&quot; style=&quot;height: 34px; width: 8.42031%; text-align: center;&quot;&gt;2개&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;a63c6e6a-978a-49d8-b6f6-650203dc5c82&quot; style=&quot;height: 54px;&quot;&gt;
&lt;td id=&quot;;jY:&quot; style=&quot;height: 54px; width: 3.97395%; text-align: center;&quot;&gt;3&lt;/td&gt;
&lt;td id=&quot;w&amp;lt;F_&quot; style=&quot;height: 54px; width: 28.0743%; text-align: left;&quot;&gt;1+1+1&lt;br /&gt;1+2 (2개)&lt;br /&gt;3&lt;/td&gt;
&lt;td id=&quot;Fwre&quot; style=&quot;height: 54px; width: 8.42031%; text-align: center;&quot;&gt;4개&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;c4caf6cb-6ddd-49c7-872d-c607754c31b6&quot; style=&quot;height: 74px;&quot;&gt;
&lt;td id=&quot;;jY:&quot; style=&quot;height: 74px; width: 3.97395%; text-align: center;&quot;&gt;4&lt;/td&gt;
&lt;td id=&quot;w&amp;lt;F_&quot; style=&quot;height: 74px; width: 28.0743%; text-align: left;&quot;&gt;1+1+1+1&lt;br /&gt;1+1+2 (3개)&lt;br /&gt;2+2&lt;br /&gt;1+3 (2개)&lt;/td&gt;
&lt;td id=&quot;Fwre&quot; style=&quot;height: 74px; width: 8.42031%; text-align: center;&quot;&gt;7개&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;42f51d0d-2301-4eb8-882a-7e55ca68ff00&quot; style=&quot;height: 97px;&quot;&gt;
&lt;td id=&quot;;jY:&quot; style=&quot;height: 97px; width: 3.97395%; text-align: center;&quot;&gt;5&lt;/td&gt;
&lt;td id=&quot;w&amp;lt;F_&quot; style=&quot;height: 97px; width: 28.0743%; text-align: left;&quot;&gt;1+1+1+1+1&lt;br /&gt;1+1+1+2 (4개)&lt;br /&gt;1+2+2 (3개)&lt;br /&gt;1+1+3 (3개)&lt;br /&gt;3+2 (2개)&lt;/td&gt;
&lt;td id=&quot;Fwre&quot; style=&quot;height: 97px; width: 8.42031%; text-align: center;&quot;&gt;13개&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;8ca1382a-a5cb-4e69-84b1-4933da5d3923&quot; style=&quot;height: 131px;&quot;&gt;
&lt;td id=&quot;;jY:&quot; style=&quot;height: 131px; width: 3.97395%; text-align: center;&quot;&gt;6&lt;/td&gt;
&lt;td id=&quot;w&amp;lt;F_&quot; style=&quot;height: 131px; width: 28.0743%; text-align: left;&quot;&gt;1+1+1+1+1+1&lt;br /&gt;1+1+1+1+2 (5개)&lt;br /&gt;1+1+2+2 (6개)&lt;br /&gt;1+1+1+3 (4개)&lt;br /&gt;2+2+2&lt;br /&gt;2+3+1 (6개)&lt;br /&gt;3+3&lt;/td&gt;
&lt;td id=&quot;Fwre&quot; style=&quot;height: 131px; width: 8.42031%; text-align: center;&quot;&gt;24개&lt;/td&gt;
&lt;/tr&gt;
&lt;tr id=&quot;3b63b449-e7b3-4ace-9f7e-6f8b863e7bb0&quot; style=&quot;height: 20px;&quot;&gt;
&lt;td id=&quot;;jY:&quot; style=&quot;height: 20px; width: 3.97395%; text-align: center;&quot;&gt;7&lt;/td&gt;
&lt;td id=&quot;w&amp;lt;F_&quot; style=&quot;height: 20px; width: 28.0743%; text-align: center;&quot;&gt;-&lt;/td&gt;
&lt;td id=&quot;Fwre&quot; style=&quot;height: 20px; width: 8.42031%; text-align: center;&quot;&gt;44개&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;살펴보게 되면 전에 구했던 숫자들이 다음 숫자를 구성하는데 포함됨을 확인할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 1,2,3 인 경우는 기본으로 크게 규칙이 없이 기본으로 제공이 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;즉 A(1) = 1, A(2) = 2, A(3) = 4 이다.&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;A(4)&lt;/b&gt;인 경우를 살펴보게 되면, 이 경우에는 &lt;b&gt;A(1) + 3, A(2) + 2, A(3) + 1&lt;/b&gt;로 이루어진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 값을 만들어주기 위한 값에 추가로 숫자를 더해주면 되는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;점화식을 작성해보게 되면&lt;b&gt; A(n) = A(n-1) + A(n-2) + A(n-3)&lt;/b&gt; 이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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;pre id=&quot;code_1723743458265&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def dp(n):
    if(n == 1):
        return 1
    elif(n == 2):
        return 2
    elif(n == 3):
        return 4
    else:
        return(dp(n-1)+dp(n-2)+dp(n-3))
T=int(input())
for i in range(T):
    n = int(input())
    print(dp(n))&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 이렇게 작성하게 되면 계산량이 늘어나 시간초과가 발생할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다행? 이도 이번문제에서는 통과를 했으나 반복문이나, 리스트에 저장해가며 작성하는걸 추천한다.&lt;/p&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;pre id=&quot;code_1723743536940&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def dp(n):
    if n &amp;lt;= 3:
        return [0, 1, 2, 4][n]
        
    # n+1 크기의 리스트를 생성하고 초기값을 설정
    dp_list = [0] * (n + 1)
    dp_list[1] = 1
    dp_list[2] = 2
    dp_list[3] = 4
   
    # 4부터 n까지 값을 계산하여 리스트에 저장
    for i in range(4, n + 1):
        dp_list[i] = dp_list[i-1] + dp_list[i-2] + dp_list[i-3]
    return dp_list[n]

T = int(input())
for _ in range(T):
    n = int(input())
    print(dp(n))&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>백준 &amp;amp; 알고리즘</category>
      <category>9095번</category>
      <category>dp</category>
      <category>백준</category>
      <author>john8538</author>
      <guid isPermaLink="true">https://john8538.tistory.com/15</guid>
      <comments>https://john8538.tistory.com/15#entry15comment</comments>
      <pubDate>Fri, 16 Aug 2024 02:40:11 +0900</pubDate>
    </item>
    <item>
      <title>회귀 모델 평가 지표</title>
      <link>https://john8538.tistory.com/14</link>
      <description>&lt;blockquote data-ke-style=&quot;style3&quot;&gt;회귀 모델의 성능을 평가하는 데 사용되는 주요 지표들에 대해 자세히 알아보겠습니다. 이 지표들은 모델의 예측이 실제 값과 얼마나 가까운지, 그리고 모델이 데이터의 변동성을 얼마나 잘 설명하는지를 측정합니다.&lt;/blockquote&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. 평균 절대 오차 (Mean Absolute Error, MAE)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MAE는 예측값과 실제값 차이의 절대값 평균을 계산합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수식:&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;350&quot; data-origin-height=&quot;113&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vN1cm/btsI2InOZRw/pndKpG49M4j5VlyfZB2W6K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vN1cm/btsI2InOZRw/pndKpG49M4j5VlyfZB2W6K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vN1cm/btsI2InOZRw/pndKpG49M4j5VlyfZB2W6K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvN1cm%2FbtsI2InOZRw%2FpndKpG49M4j5VlyfZB2W6K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;350&quot; height=&quot;113&quot; data-origin-width=&quot;350&quot; data-origin-height=&quot;113&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;n은 데이터 포인트의 수&lt;/li&gt;
&lt;li&gt;y_i는 실제값&lt;/li&gt;
&lt;li&gt;ŷ_i는 예측값&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특징:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;해석이 직관적이고 쉽습니다.&lt;/li&gt;
&lt;li&gt;오차의 단위가 원래 변수의 단위와 동일합니다.&lt;/li&gt;
&lt;li&gt;이상치에 비교적 덜 민감합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용 사례:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;예측 오차의 평균적인 크기를 쉽게 이해해야 할 때&lt;/li&gt;
&lt;li&gt;이상치의 영향을 줄이고 싶을 때&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. 평균 제곱 오차 (Mean Squared Error, MSE)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MSE는 예측값과 실제값 차이의 제곱의 평균을 계산합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수식:&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;292&quot; data-origin-height=&quot;91&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bU0Xv1/btsI2GDx6sB/46KELAXI0vIH3iT9d2vp21/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bU0Xv1/btsI2GDx6sB/46KELAXI0vIH3iT9d2vp21/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bU0Xv1/btsI2GDx6sB/46KELAXI0vIH3iT9d2vp21/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbU0Xv1%2FbtsI2GDx6sB%2F46KELAXI0vIH3iT9d2vp21%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;250&quot; height=&quot;78&quot; data-origin-width=&quot;292&quot; data-origin-height=&quot;91&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특징:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;오차를 제곱하므로 큰 오차에 더 큰 가중치를 줍니다.&lt;/li&gt;
&lt;li&gt;항상 양수이며, 0에 가까울수록 좋은 모델입니다.&lt;/li&gt;
&lt;li&gt;원래 변수의 단위의 제곱이 됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용 사례:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;큰 오차에 더 민감하게 반응해야 할 때&lt;/li&gt;
&lt;li&gt;미분 가능하므로 최적화 알고리즘에서 자주 사용됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3. 제곱근 평균 제곱 오차 (Root Mean Squared Error, RMSE)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;RMSE는 MSE의 제곱근입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수식:&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;310&quot; data-origin-height=&quot;58&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJxcIw/btsI2Fknzxg/XQKKqvZRqkuFsOhQ2Kjhe0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJxcIw/btsI2Fknzxg/XQKKqvZRqkuFsOhQ2Kjhe0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJxcIw/btsI2Fknzxg/XQKKqvZRqkuFsOhQ2Kjhe0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJxcIw%2FbtsI2Fknzxg%2FXQKKqvZRqkuFsOhQ2Kjhe0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;250&quot; height=&quot;47&quot; data-origin-width=&quot;310&quot; data-origin-height=&quot;58&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특징:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;MSE와 같은 특성을 가지지만, 원래 변수와 같은 단위를 가집니다.&lt;/li&gt;
&lt;li&gt;MAE보다 큰 오차에 더 민감합니다.&lt;/li&gt;
&lt;li&gt;항상 MAE보다 크거나 같습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용 사례:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;오차의 표준편차와 유사한 척도가 필요할 때&lt;/li&gt;
&lt;li&gt;큰 오차를 펑가하되, 해석 가능한 단위를 유지하고 싶을 때&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4. 결정 계수 (R-squared, R&amp;sup2;)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;R&amp;sup2;는 모델이 데이터의 변동성을 얼마나 잘 설명하는지를 나타내는 지표입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수식:&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;330&quot; data-origin-height=&quot;140&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qQrhT/btsI2h5lxS9/rF5TVVAkKJcp7MiGhP2Kn1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qQrhT/btsI2h5lxS9/rF5TVVAkKJcp7MiGhP2Kn1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qQrhT/btsI2h5lxS9/rF5TVVAkKJcp7MiGhP2Kn1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqQrhT%2FbtsI2h5lxS9%2FrF5TVVAkKJcp7MiGhP2Kn1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;250&quot; height=&quot;106&quot; data-origin-width=&quot;330&quot; data-origin-height=&quot;140&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ȳ는 y의 평균&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특징:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;0에서 1 사이의 값을 가집니다. (음수가 될 수도 있지만 드뭅니다)&lt;/li&gt;
&lt;li&gt;1에 가까울수록 모델이 데이터를 잘 설명한다는 의미입니다.&lt;/li&gt;
&lt;li&gt;독립 변수가 추가될 때마다 증가하는 경향이 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용 사례:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모델의 전반적인 적합도를 평가할 때&lt;/li&gt;
&lt;li&gt;다른 모델들과 비교할 때&lt;/li&gt;
&lt;li&gt;모델이 설명하는 변동성의 비율을 알고 싶을 때&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주의사항:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;R&amp;sup2;만으로는 모델의 예측 정확도를 판단하기 어렵습니다.&lt;/li&gt;
&lt;li&gt;과적합된 모델에서도 높은 R&amp;sup2; 값이 나올 수 있으므로, 다른 지표들과 함께 고려해야 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;지표 선택 시 고려사항&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;문제의 특성: 큰 오차에 민감해야 하는 경우 MSE나 RMSE를, 그렇지 않은 경우 MAE를 선택할 수 있습니다.&lt;/li&gt;
&lt;li&gt;해석의 용이성: MAE와 RMSE는 원래 변수와 같은 단위를 가져 해석이 쉽습니다.&lt;/li&gt;
&lt;li&gt;이상치의 영향: 이상치에 덜 민감한 지표가 필요하다면 MAE를 고려할 수 있습니다.&lt;/li&gt;
&lt;li&gt;모델 비교: 여러 모델을 비교할 때는 R&amp;sup2;가 유용할 수 있지만, 다른 지표들과 함께 사용해야 합니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이러한 지표들을 종합적으로 고려하면 모델의 성능을 더 정확하게 평가할 수 있습니다. 또한, 교차 검증 등의 기법을 사용하여 모델의 일반화 능력도 함께 평가하는 것이 중요합니다.&lt;/p&gt;</description>
      <category>AI/Naver_Boostcamp AI Tech</category>
      <category>모델평가지표</category>
      <category>회귀모델</category>
      <author>john8538</author>
      <guid isPermaLink="true">https://john8538.tistory.com/14</guid>
      <comments>https://john8538.tistory.com/14#entry14comment</comments>
      <pubDate>Mon, 12 Aug 2024 20:40:09 +0900</pubDate>
    </item>
    <item>
      <title>머신러닝 라이프사이클: 인공지능 프로젝트의 전체 과정 이해하기</title>
      <link>https://john8538.tistory.com/13</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;01) 머신러닝이란?&lt;/h3&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Tom Mitchell(1998)의 정의에 따르면, 머신러닝은 &quot;경험 E로부터 학습하여 작업 T에 대한 성능 P를 향상시키는 시스템&quot;입니다. 즉, 데이터(경험)를 통해 특정 작업의 성능을 스스로 개선하는 알고리즘을 연구하는 학문이라고 할 수 있습니다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;584&quot; data-origin-height=&quot;437&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfcUih/btsI07WWPhr/2WMZT9nAGSnPjoybvWe5Ck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfcUih/btsI07WWPhr/2WMZT9nAGSnPjoybvWe5Ck/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfcUih/btsI07WWPhr/2WMZT9nAGSnPjoybvWe5Ck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbfcUih%2FbtsI07WWPhr%2F2WMZT9nAGSnPjoybvWe5Ck%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;299&quot; data-origin-width=&quot;584&quot; data-origin-height=&quot;437&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1.1 머신러닝의 적용사례&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 머신러닝은 다양한 분야에서 활용이 되는데요,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;컴퓨터 비전&lt;/li&gt;
&lt;li&gt;문자 인식&lt;/li&gt;
&lt;li&gt;MLP&lt;/li&gt;
&lt;li&gt;음성 인식 등에 사용이 됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1.2 머신러닝의 종류&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;크게 3가지 유형으로 나뉩니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;지도학습 : 레이블이 존재하는 데이터(정답)로 학습&lt;/li&gt;
&lt;li&gt;비지도 학습 : 레이블이 없는 데이터로 패턴을 찾음&lt;/li&gt;
&lt;li&gt;강화학습 : 행동에 대한 보상을 통해 학습&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;02) 머신러닝 라이프 사이클&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;머신러닝 라이프사이클은 머신러닝 모델을 개발, 배포, 유지보수하는 일련의 단계들을 정의하는 프로세스입니다. 일반적으로 생각하는 것보다 더 복잡하고 다양한 단계를 포함합니다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;562&quot; data-origin-height=&quot;536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KMeYd/btsI0L0QdLB/ld75IA0mqkPaldjW5v6CY1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KMeYd/btsI0L0QdLB/ld75IA0mqkPaldjW5v6CY1/img.png&quot; data-alt=&quot;https://facerain.github.io/improve-dl-performance/&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KMeYd/btsI0L0QdLB/ld75IA0mqkPaldjW5v6CY1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKMeYd%2FbtsI0L0QdLB%2Fld75IA0mqkPaldjW5v6CY1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;381&quot; data-origin-width=&quot;562&quot; data-origin-height=&quot;536&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;https://facerain.github.io/improve-dl-performance/&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2.1 머신러닝 라이프 사이클의 구성&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;계획하기 (Planning)&lt;/li&gt;
&lt;li&gt;데이터 준비 (Data Preparation)&lt;/li&gt;
&lt;li&gt;모델 엔지니어링 (Model Engineering)&lt;/li&gt;
&lt;li&gt;모델 평가 (Model Evaluation)&lt;/li&gt;
&lt;li&gt;모델 배포 (Model Deployment)&lt;/li&gt;
&lt;li&gt;모니터링 및 유지 관리 (Monitoring and Maintenance)&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ML 애플리케이션의 범위, 성공 지표, 실현 가능성 평가&lt;/li&gt;
&lt;li&gt;비즈니스 프로세스 개선 방법 이해&lt;/li&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;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;데이터 정리 (Cleaning)&lt;/li&gt;
&lt;li&gt;데이터 처리&lt;/li&gt;
&lt;li&gt;데이터 관리&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모델 엔지니어링&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;효과적인 모델 아키텍처 구축&lt;/li&gt;
&lt;li&gt;모델 메트릭 정의&lt;/li&gt;
&lt;li&gt;모델 학습 및 검증&lt;/li&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;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;견고성(robustness) 테스트&lt;/li&gt;
&lt;li&gt;계획된 성공 지표와 결과 비교&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모델 배포&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;현재 시스템에 머신러닝 모델 배포&lt;/li&gt;
&lt;li&gt;다양한 플랫폼 (클라우드, 로컬 서버, 웹 브라우저 등)에 배포 가능&lt;/li&gt;
&lt;li&gt;API, 웹 앱, 플러그인, 대시보드 등을 통해 접근 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모니터링 및 유지 관리&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;지속적인 시스템 모니터링 및 개선&lt;/li&gt;
&lt;li&gt;모델 지표, 하드웨어 및 소프트웨어 성능, 고객 만족도 모니터링&lt;/li&gt;
&lt;li&gt;필요시 전체 머신러닝 수명 주기 개선&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;마치며&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;머신러닝 프로젝트는 단순히 모델을 만들고 배포하는 것 이상의 복잡한 과정을 포함합니다. 머신러닝 라이프사이클을 이해하고 각 단계를 체계적으로 수행함으로써, 더 효과적이고 지속 가능한 AI 솔루션을 개발할 수 있습니다. 앞으로 Linear Regression과 NN Classifier에 대해 더 자세히 알아볼 예정이니 기대해 주세요!&lt;/p&gt;</description>
      <category>AI/Naver_Boostcamp AI Tech</category>
      <category>ML</category>
      <category>머신러닝 사이클</category>
      <author>john8538</author>
      <guid isPermaLink="true">https://john8538.tistory.com/13</guid>
      <comments>https://john8538.tistory.com/13#entry13comment</comments>
      <pubDate>Mon, 12 Aug 2024 20:17:10 +0900</pubDate>
    </item>
  </channel>
</rss>