<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>min_juuuuun.log</title>
        <link>https://velog.io/</link>
        <description></description>
        <lastBuildDate>Mon, 30 Sep 2024 12:24:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>min_juuuuun.log</title>
            <url>https://velog.velcdn.com/images/min_juuuuun/profile/ed889d14-2c23-4752-be06-1aafef10c11e/social_profile.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. min_juuuuun.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/min_juuuuun" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[GLIBCXX 3.4.29 없어서 발생하는 문제]]></title>
            <link>https://velog.io/@min_juuuuun/GLIBCXX-3.4.29-%EC%97%86%EC%96%B4%EC%84%9C-%EB%B0%9C%EC%83%9D%ED%95%98%EB%8A%94-%EB%AC%B8%EC%A0%9C</link>
            <guid>https://velog.io/@min_juuuuun/GLIBCXX-3.4.29-%EC%97%86%EC%96%B4%EC%84%9C-%EB%B0%9C%EC%83%9D%ED%95%98%EB%8A%94-%EB%AC%B8%EC%A0%9C</guid>
            <pubDate>Mon, 30 Sep 2024 12:24:00 GMT</pubDate>
            <description><![CDATA[<p>내가 Server 내에서 docker container 를 사용하면서 계속 이 문제가 발생했는데 
Container 라는 환경 때문에 발생하는 건지 뭔지 기존에 있는 다른 글들을 찾아 그대로 사용해도 해결이 되지 않았는데 conda 를 사용하는 것으로 해결했다.
Refer : <a href="https://jseobyun.tistory.com/577">https://jseobyun.tistory.com/577</a></p>
<p>원하는 conda environment 에 들어가서 
conda install -c conda-forge libstdcxx-ng=12
하면 GLIBCXX 문제가 더 이상 나타나지 않았다. </p>
<p>이것도 안될경우 대공사</p>
<p>sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install gcc-9 libstdc++6
strings /lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX</p>
<p>일단 이걸로 해결됨</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[LLaVAs : Next Steps in Generalist Multimodal Models ]]></title>
            <link>https://velog.io/@min_juuuuun/Next-Steps-in-Generalist-Multimodal-Models</link>
            <guid>https://velog.io/@min_juuuuun/Next-Steps-in-Generalist-Multimodal-Models</guid>
            <pubDate>Fri, 26 Jul 2024 07:52:17 GMT</pubDate>
            <description><![CDATA[<p>해당 내용은 이용재 교수님의 Invited Talk: Next Steps in Generalist Multimodal Models 에 참석하여 정리한 내용입니다</p>
<h2 id="introduction">Introduction</h2>
<p>Prevailing Paradigm 
Specialist Models : Single Model - Single Task 
(Detection Only) </p>
<p>Can I print my documents? 와 같은 문제를 SM 로 어떻게 해결할 수 있는가? 이런 문제들을 잘 해결하지 못한다 </p>
<p>Generalist Foundation Models : Single Model - Multi Task </p>
<p>! Steerable(Aligned) models that produce desirable outputs for wide concept knowledge </p>
<h3 id="llava">LLaVA</h3>
<p>Understand Visual Data
Follows Human Instructions 
Communicates in natural Language</p>
<p>Q : &lt;Vision language models are blind&gt; 논문 
기존의 VLM 벤치마크는 주로 고차원적인 시각 이해 능력을 평가하는 데 초점을 맞추고 있습니다. 그러나 BlindTest는 기본적인 시각적 인식 능력을 평가하는 첫 번째 벤치마크로, VLM이 단순한 시각적 과제에서 어떤 한계를 가지는지를 명확히 보여줍니다.
어떤 점을 보완? </p>
<p>모델의 능력 
Strong Visual Reasoning Capability 
Emergent Multilingual Capability </p>
<h3 id="llava-15">LLaVA-1.5</h3>
<p>Key : 모델을 더 좋게 만들려면 </p>
<ol>
<li>모델의 파라미터 수 증가 (크기 증가) </li>
<li>데이터 수 증가 (Scale Up)</li>
<li>Image Input Resolution 증가</li>
</ol>
<h2 id="other-llavas">Other LLaVAs</h2>
<h3 id="vip-llava"><a href="https://vip-llava.github.io/">ViP-LLaVA</a></h3>
<p>LLaVA that understands visual prompt 
Can we make it ?
-&gt; ViP LLaVA : Understanding Freeform Visual Prompts </p>
<p>Prior/Concurrent Work </p>
<ul>
<li>Text to denote box coordinates : Shikra, MiniGPT-v2, Ferret </li>
<li>Region of Interest feature : GPT4ROI</li>
<li>Learned vocabularies or positional embedding : GPT4ROI, KOsmos -2 </li>
<li><blockquote>
<p><strong>Bounding Box Form 말고 Freeform Visual Prompt 는 이해하지 못한다는 문제를 확인</strong></p>
</blockquote>
</li>
</ul>
<p>Visual Prompt Annotation 을 Overlay 해서 하나의 이미지로 합쳐서 Visual Prompt 로 넣어주는 방법 </p>
<p><img src="https://velog.velcdn.com/images/min_juuuuun/post/b054bd7a-6b41-490d-8dec-fe1d5737adfe/image.png" alt=""></p>
<p>교수님왈 : 주변 랩실에서 ICCV 에 이런 Visual Prompt 관련 논문을 제출했었다. 해당 아이디어 발전
( 학습이나 실험에 활용하는 데이터는 어떻게 구성하였는지? 이런 데이터가 원래 존재하긴하는데 Elipse 같은 없는 조건에 대한 이미지는 휴리스틱하게 그냥 만들어서 사용했다)</p>
<p>Visual Prompt Understanding Benchmark 도 만들었다 </p>
<h3 id="yollava"><a href="https://arxiv.org/pdf/2406.09400">Yo&#39;LLaVA</a></h3>
<p>Your <strong>Personalized</strong> LMM </p>
<p><img src="https://velog.velcdn.com/images/min_juuuuun/post/98d40a6c-f25d-4355-85e3-9d46ba4ce094/image.png" alt=""></p>
<h3 id="matryosha-multimodal-models"><a href="https://arxiv.org/pdf/2405.17430">Matryosha Multimodal Models</a></h3>
<p>Bottleneck of Current Multimodal Models 
Quadratic 하게 증가하는 token 에 대한 문제가 항상 존재 
<strong>Video 를 입력으로 받게 된다면 1초당 Image 개수가 기하급수적으로 늘어나기 때문에 이런 문제가 더더욱 심화된다</strong> 
-&gt; Long HD Video 와 같이 token 이 너무 많으면 Model 이 distract 될 수 있지 않냐 </p>
<p>Inspiration 을 어떻게 받았냐? 
Matryosha Learning 에서는 Feature Space Embedding 에서 활용하는 그런 것에서 Inspiraton 을 받아서 Token space 에서 진행을 해봤다
<img src="https://velog.velcdn.com/images/min_juuuuun/post/2964ab66-3ca0-4e77-bfc2-0637cfa578f2/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/min_juuuuun/post/8f10e026-3da4-4ebb-8751-84bdaebd0d92/image.png" alt=""></p>
<p>다른 Token set 으로 학습하면서 Regularization - Augmentation 이 되지 않았나 이런 영향도 있을 것? 
어떤 Token 을 고르는 것이 효율적인지 Adaptive 하게 선택할 수 있는 모델에 대한 연구가 필요하지 않나 </p>
<p>Looking forward : <a href="https://arxiv.org/abs/2402.13254">Is visual Understanding Solved?</a></p>
<h4 id="limitations-of-current-models">Limitations of Current Models</h4>
<ul>
<li>Capabilities</li>
<li>Hallucination (<a href="https://arxiv.org/abs/2309.14525">https://arxiv.org/abs/2309.14525</a>)
Video Understanding, Smaller Models (다양한 연구 진행 중 -&gt; 보통은 LM Training 시 Clean 한 데이터를 HQ 데이터를 뽑아낼 수 있으면, 그 데이터로 모델을 Training 하면 large data 로 Training 한 것 보다 좋은 성능을 낸다 -&gt; 나의 연구 관점?) </li>
<li>Multimodal Agents </li>
<li>etc.. </li>
</ul>
<p>Generalist 모델이 Special 한 task 를 잘 해결하지 못하는 문제점은 항상 고민해야함 </p>
<h2 id="conclusion">Conclusion</h2>
<p>From specialist to generalist 가 가장 크게 연구하고 있는 방향성 </p>
<p><strong>LLaVA-Next Interleaved 와 같은 Video Model 에 대한 질문</strong></p>
<p>디테일한 부분을 어떻게 수정하고 개선하고 이런 문제보다는 전반적으로 아직 Video Model 에 대해서는 연구가 부족하다는 의견 
복잡한 비디오 데이터에 대해서 잘 연구를 못하고 있기 때문에 해결해야할 문제 중 하나  </p>
<p>Image 생성 모델에서 Text 만을 입력으로 받는 것은 매우 아쉽다 
Visual Prompt 를 충분히 받는 것 또한 중요한 문제이기 때문에 Conditioning 이나 Prompt 의 입력 확장 또한 꼭 필요하다 </p>
<ol>
<li>Internet Scale 데이터를 받을 수 있는 모델들이 있어서 발전이 있었다</li>
<li>Transformer 모델의 등장이 매우 큰 영향</li>
</ol>
<p>-&gt; 어떤 모달리티든지 토크나이즈만 해주고 해당 토큰에 대한 학습을 하면 되니까
Data driven 의 방향성이 맞다 -&gt; 데이터가 적을 때를 해결하는 것은 Algorithmic 한 문제이다.</p>
<p>Foundation model 을 따라가지 못하는 이 상황을 어떻게 해결하고 있는지?
Sora 같은 건 절대 못함 Video 가 어마무시하게 많아야하기 때문에 그것 부터 불가능한 Setup </p>
<p>Smaller Model 만드는 것이 연구실 단위에서는 충분히 가능한 분야이자 필요한 방향성 중 하나라고 생각한다.
PEFT LoRA 같은 것도 사실 Academic 에서 하기 좋은 분야이다 
어느정도 HW 는 있어야한다는 기본적인 조건은 존재한다. </p>
]]></description>
        </item>
        <item>
            <title><![CDATA[LLaVA & LLaVA 1.5 ]]></title>
            <link>https://velog.io/@min_juuuuun/LLaVA</link>
            <guid>https://velog.io/@min_juuuuun/LLaVA</guid>
            <pubDate>Fri, 26 Jul 2024 07:42:34 GMT</pubDate>
            <description><![CDATA[<h2 id="1-llava-visual-instruction-tuning">1. LLaVA (Visual Instruction Tuning)</h2>
<h3 id="문제-정의">문제 정의</h3>
<ul>
<li>기존 Multimodal task 에 사용하는 Image-text 쌍 데이터(COCO Dataset) 에서 텍스트가 caption 에 국한되는 문제
$\rightarrow$ 이런 데이터로 학습하는 모델 특성 상 이미지에 대해 질의응답을 하고 대화를 하는데 한계가 존재
<img src="https://velog.velcdn.com/images/min_juuuuun/post/ed24d389-1b37-4de1-ab06-6bcd6aa22d0d/image.png" alt=""></li>
</ul>
<h3 id="접근-방법">접근 방법</h3>
<ul>
<li>Visual 에 대해서도 Instruction Tuning 을 해보자! 
최근 LLM 들이 Instruction Following sample 들을 활용하여 LLM 의 Alignment 능력을 개선할 수 있다는 사례들이 등장</li>
</ul>
<hr>
<h3 id="contribution">Contribution</h3>
<ol>
<li><p>Multimodal Instruction Data </p>
<ul>
<li>기존 Image-Text Datasest(COCO) 과 GPT-4 를 활용하여 Image-Text 에 대한 Instruction Data 를 만들기 위한 Data reformation Perspective 및 Data Pipeline 제안 </li>
</ul>
</li>
<li><p>Large Multimodal Model </p>
<ul>
<li>CLIP 의 Vision Encoder 와 Vicuna 의 Text Encoder 를 연결하여, 생성한 Image-Text Instruction Data 를 End-to-End 로 Fine tuning 한 LMM (Large Multimodal Model) 개발 </li>
</ul>
</li>
</ol>
<h3 id="methods">Methods</h3>
<h4 id="1-instruction-data-generation">1. Instruction Data Generation</h4>
<p>기존 COCO Dataset 의 Text 형태 
<img src="https://velog.velcdn.com/images/min_juuuuun/post/484c9806-63e3-458e-9fd8-a8f18ccb85d3/image.png" alt=""></p>
<p>Data Generation 을 위한 Prompt 
<img src="https://velog.velcdn.com/images/min_juuuuun/post/4e96bb01-afbb-4748-ae9c-3eb7d907776b/image.png" alt=""></p>
<p>제작한 Instruction Data 의 종류 </p>
<ol>
<li>Conversation</li>
</ol>
<ul>
<li>사진에 대해 질문하는 사람과 이에 답하는 Assistant 사이의 대화 형식.  대답은 Assistant가 이미지를 보고 질문에 대답하는 것과 같은 어조이며, 이미지의 시각적인 정보(객체의 유 형, 수, 행동, 위치, 객체간의 상대적인 위치 등)에 대해 다양한 질문이 존재. 또한 명확하게 답변이 있 는 질문만 고려합니다.</li>
</ul>
<ol start="2">
<li>Detailed description</li>
</ol>
<ul>
<li>이미지에 대한 풍부하고 포괄적인 설명으로 구성. 이러한 자세한 설명을 요구하는 여러 prompt 리스트를 만든 뒤 그중 하나로 답을 생성 </li>
</ul>
<ol start="3">
<li>Complex reasoning</li>
</ol>
<ul>
<li>위의 두 가지 유형은 시각적 content 자체에 중점을 두며, 이를 기반으로 심층 추론 질문을 추가로 생성합니다. 답변은 일반적으로 엄격한 논리를 따르는 단계별 추론 프로세스를 요구합니다.</li>
</ul>
<h4 id="2-visual-instruction-tuning">2. Visual Instruction Tuning</h4>
<h5 id="model-information">Model Information</h5>
<p>이 연구의 주요 목표는 사전 훈련된 LLM과 vision 모델의 각 모달에 대한 능력(capability)을 효과적으로
leverage 하는 것 </p>
<p>LM에 해당하는$f_\phi$ 는 LLaMA를 기반으로 finetuning한 Vicuna 를 사용
Vision Encoder는 CLIP visual encoder ViT-L/14를 사용</p>
<p>이때 기존 last layer를 제거하고, 이미지 feature를 word embedding space에 연결하기 위해 간단한 linear layer(Projection W) 를 추가
linear layer의 output dimension은 언어 모델의 word embedding space와 같게 설정</p>
<p><img src="https://velog.velcdn.com/images/min_juuuuun/post/7f0fa651-7844-4b2d-b22a-e24604c89c80/image.png" alt=""></p>
<h5 id="training-process">Training Process</h5>
<p>Stage 1: Pre-training for Feature Alignment</p>
<ul>
<li>concept coverage와 학습의 효율성 사이의 밸런스를 맞추기 위해, 저자들은 CC3M 데이터를 595K image-text pair로 필터링 합니다(기존 CC3M은 약 300만장으로 너무 크기 때문에 이중 적합한 데이터를 사용). 이 데이터들을 instruction-following data로 형식으로 변환합니다. 하지만 이전과 같이 여러 턴의 대화가 아니라 single-turn 대화로 만들었으며, 이미지에 대해 간략하게 설명하도록 요청하는 instruction을 주면 기존의 실 제 캡션을 대답으로 사용합니다. 이때 질문에 해당하는 예는 &quot;Describe the image concisely.&quot;, &quot;Provide a brief description of the given image.&quot;
Stage1 에서는 visual encoder와 LLM의 weight은 모두 학습하지 않으며(frozen), <strong>오직 linear layer인 projection matrix만 학습</strong>합니다. 이를 통해, 이미지 feature는 사전 학습된 LLM의 word embedding과 align 될 수 있습니다. 이 단계는 frozen LLM에 호환되는 visual tokenizer를 학습하는 과정으로 이해할 수 있습니다.</li>
</ul>
<p>Stage 2: Fine-tuning End-to-End</p>
<ul>
<li>이때는 visual encoder만 frozen하고, <strong>LLM과 projection layer 두 모듈을 학습</strong>합니다. 저자들은 두 가지 시나리오에 대해 고려했습니다.</li>
<li>1) Multimodal Chatbot : 앞에서 설명한 158K language-image instruction-following data를 이용 해 fine-tuning한 Chatbot 입니다. 세 가지 타입의 응답 중 대화는 multi-turn이고 나머지 두 개는 Single-turn입니다. 이 타입들은 훈련 과정에서 uniform하게 샘플되어 학습에 사용됩니다.</li>
<li>2) Science QA : 저자들은 ScienceQA benchmark에서 고안한 방법을 테스트 했습니다. 이 데이터셋의 각 질문에는 언어 혹은 이미지로 이루어진 context가 주어지고, 모델은 자연어로 추론 과정을 답하고 객관식 에서 답을 선택하는 테스크입니다. 이를 위해 데이터를 단일(single-turn) 대화 형식으로 구성하는데, 이때 질 문과 context를 지시(instruct)로 주고, 맞춰야 하는 답변으로 추론과 정답 데이터를 줍니다.</li>
</ul>
<p>즉 전체 학습과정에서 </p>
<p>Vision Encoder 는 항상 Freeze 되어 Feature 만 제공 
Language Model 은 Pre-trained model 이므로 Stage 2 에서 Fine tuning 만 진행 
Linear Layer 는 아예 학습이 안되어 있으니까 Pre-training + Fine tuning 까지 진행 </p>
<hr>
<h2 id="2-llava-15-improved-baselines-with-visual-instruction-tuning">2. LLaVA-1.5 (Improved Baselines with Visual Instruction Tuning)</h2>
<h3 id="문제-정의-1">문제 정의</h3>
<ul>
<li>LLaVA 라는 성능 좋은 LMM 을 발전시킬 수 있는 방법은? <ol>
<li>더 효율적으로 모델을 학습시킬 수는 없나? <ol start="2">
<li>더 좋은 성능을 내게 만들 수 있는 방법은 없나? (+ 고해상도 이미지 입력으로 확장) </li>
</ol>
</li>
</ol>
</li>
<li>비슷한 방식을 활용하는 InstructBLIP 의 문제점은 뭐지? 왜 그런문제가 생겼지? </li>
</ul>
<h4 id="preliminaries">Preliminaries</h4>
<p>LLaVA 
장점 : Visual Reasoning 성능이 뛰어남 
단점 : Academic Benchmark 에서 성능이 떨어짐 </p>
<p>InstructBLIP 
장점 : Academic Benchmark 를 포함한 VQA Task 에서 좋은 성능 
단점 : Real-life visual conversation task 에서 문제 발생 </p>
<p>이 두개가 왜 그런지 파악하고 적절히 섞으면 되지 않겠느냐</p>
<h3 id="접근-방법-1">접근 방법</h3>
<p>Key : 모델을 더 좋게 만들려면 </p>
<ol>
<li>모델의 파라미터 수 증가 (크기 증가) </li>
<li>데이터 수 증가 (Scale Up)</li>
<li>Image Input Resolution 증가</li>
</ol>
<h3 id="methods-1">Methods</h3>
<h4 id="1-response-format-prompting">1. Response Format Prompting</h4>
<p>InstructBLIP 의 경우 
응답 형식이 명확하지 않아서 답만 뱉는 짧은 형식으로 Overfit 할 수 있음
LM 을 Finetuning 하지 않고 Adapter 인 Qformer 만 finetuning 하기 때문에 발생하는 문제도 존재
<img src="https://velog.velcdn.com/images/min_juuuuun/post/5eec4e36-592e-4f46-9b2f-48ac1935a3b2/image.png" alt=""></p>
<p>&quot;Answer the question using a single word or phrase.&quot; 와 같은 프롬프트 추가 </p>
<h4 id="2-scaling-the-data-and-model">2. Scaling the Data and Model</h4>
<ol>
<li>Adapter 를 기존 Linear 에서 Two-layer MLP 로 변경 </li>
<li>다양한 VQA, GQA, ShareGPT 데이터셋 추가 </li>
<li>CLIP-ViT-L-336px 비전인코더 사용</li>
<li>LLM 을 Vicuna 13B 모델로 확장 
<img src="https://velog.velcdn.com/images/min_juuuuun/post/0aab66c8-f32f-4411-b023-08146e5a0d42/image.png" alt=""></li>
</ol>
<h4 id="3-scaling-to-higher-resolutions">3. Scaling to Higher Resolutions</h4>
<p>고해상도의 입력을 받을 수 있도록 모델 개선 
<img src="https://velog.velcdn.com/images/min_juuuuun/post/62792fc6-7717-4d89-b7eb-4acb06319cba/image.png" alt="">
Divide image into smaller patch : 원래 해상도로 훈련된 vision encoder로 처리 가능한 작은 이미지 크기로 나눔.
Encode independently : 각 패치를 독립적으로 인코딩
Combine into single large feature map : 개별 패치의 특성 맵을 큰 특성 맵으로 결합한 후 LLM에 입력.
Concatenate downsampled image to feature map : 분할-인코딩-결합 작업의 인공물을 줄이기 위해 다운샘플링된 이미지의 특성도 결합됨.</p>
<hr>
<h3 id="reference">Reference</h3>
<p>LLaVA Part 참고 : 
<a href="https://cocoa-t.tistory.com/entry/%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0-LLaVA-Large-Language-and-Vision-Assistant-Visual-Instruction-Tuning">cocoa Tistory</a></p>
<p>LLaVA 1.5 Part 참고 : 
<a href="https://rubato-yeong.github.io/multimodal/llava1_5/">Blog by rubatoyeong</a>
<a href="https://kimjy99.github.io/%EB%85%BC%EB%AC%B8%EB%A6%AC%EB%B7%B0/llava-1.5/">전생했더니 인공지능이었던 건에 대하여</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Learning to Prompt for Vision-Language Models (CoOp - LoCoOp)]]></title>
            <link>https://velog.io/@min_juuuuun/Learning-to-Prompt-for-Vision-Language-Models-CoOp-LoCoOp</link>
            <guid>https://velog.io/@min_juuuuun/Learning-to-Prompt-for-Vision-Language-Models-CoOp-LoCoOp</guid>
            <pubDate>Wed, 10 Jul 2024 07:23:32 GMT</pubDate>
            <description><![CDATA[<h1 id="background---coop">Background :  CoOp</h1>
<ul>
<li>VLP task에서 prompt를 어떠한 방식으로 만들어내는지에 따라 task별 성능이 매우 달라짐 
(ex : 가장 좋은 성능을 보이는 prompt를 기준으로 학습을 진행했더라도 다른 task에서는 또다시 prompt engineering 과정을 처음부터 다시)</li>
<li>해당 Task 에 가장 적절한 Prompt 를 찾는 데에는 필요한 시간이 너무 많기 때문에 prompt 자체를 최적화하는 Context Optimization(CoOp) 제시</li>
</ul>
<p><img src="https://velog.velcdn.com/images/min_juuuuun/post/bd5d6a6f-10b7-4d3f-8d81-7985c7365b70/image.png" alt=""></p>
<p>프롬프트를 두가지 방식으로 제안
<img src="https://velog.velcdn.com/images/min_juuuuun/post/0ed8c4b2-9d36-46ed-8b59-8255f086cb82/image.png" alt=""></p>
<ol>
<li><p>Unified Context : $t=(V)_1(V)_2⋯(V)_M(CLASS)$</p>
<p> 전체 데이터에 대해서 하나의 context 를 학습 </p>
</li>
<li><p>Class-specific Context :  $(V)^i_1(V)^i_2⋯(V)^i_M\neq(V)^j_1(V)^j_2⋯(V)^j_M$</p>
<p> 각 class 마다의 context를 학습 → Fine-grained Classification 이 필요할 때 효과적</p>
</li>
</ol>
<p>Loss : $p(y=i | x) = \frac{exp(cos(w_i,f)/\tau)}{\Sigma^K_{j=1}  exp(cos(w_j,f)/\tau)} \ \ \overrightarrow{} \ \   p(y=i | x) = \frac{exp(cos(g(t_i),f)/\tau)}{\Sigma^K_{j=1}  exp(cos(g(t_j),f)/\tau)}$
<img src="https://velog.velcdn.com/images/min_juuuuun/post/de1c76df-ab39-484e-b837-8b6c5c1c675e/image.png" alt=""></p>
<h2 id="limitation">Limitation</h2>
<ul>
<li>기존의 Text 구조 체계가 무너지기 때문에 성능을 높이는데는 유용하지만 관계성을 보여주는데는 한계</li>
<li>학습 과정에서 context가 downstream task에 overfit
→ ID class에 대해서는 좋은 성능 - OOD class에 대해서는 낮은 성능</li>
</ul>
<p><img src="https://velog.velcdn.com/images/min_juuuuun/post/701c7f8a-5c39-4ead-918a-752d481bae24/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/min_juuuuun/post/3865741d-f014-4264-8bb1-a2c15bd92995/image.png" alt=""></p>
<h1 id="main-contribution">Main Contribution</h1>
<ul>
<li>CLIP 모델 기반의 few-shot OOD detection 방식 LoCoOp 제안</li>
<li>CLIP 의 Local Feature 에서 Noise(배경) 를 활용하여 OoD Regularization 을 수행 → ID Text Embedding 에서 불필요한 정보 제거</li>
<li>기존 OoD 방법보다 효율적 + GL-MCM 과 높은 호환성 + 높은 성능</li>
</ul>
<h1 id="methods">Methods</h1>
<p>문제 정의 </p>
<p><img src="https://velog.velcdn.com/images/min_juuuuun/post/03e9a3d3-f501-404a-89f2-3d1b12420dc8/image.png" alt=""></p>
<p>$L = L_{coop} + \lambda L_{ood}$</p>
<p>$L_{coop} = p(y = m | x_{\text{in}}) = \frac{\exp (\text{sim}(f_{\text{in}}, g_m) / \tau)}{\sum^M_{m&#39;=1}\exp (\text{sim}(f_{\text{in}}, g_{m&#39;}) / \tau)}$</p>
<ol>
<li>Extraction of ID-irrelevant regions </li>
</ol>
<p>이미지와 텍스트의 Logit 값이 큰 것은 ID Class 를 판별하는데 필요한 영역이라고 생각 - Logit 값이 작은 부분들을 ID Class 와 관련이 없는 영역이라고 판단 </p>
<p><img src="https://velog.velcdn.com/images/min_juuuuun/post/590c49ac-f531-4559-aa0d-5017c8feecde/image.png" alt="">
<img src="https://velog.velcdn.com/images/min_juuuuun/post/aa38e14f-497a-43ec-9b10-ea0f459c9ed4/image.png" alt=""></p>
<p>K 값 이상인 경우 ID Class 를 식별하는데 필요한 영역으로 판단 - 제외</p>
<ol>
<li>OOD regularization = $L_{ood}$</li>
</ol>
<p>$L_{ood} = -H(p_j)$</p>
<p>ID와 OOD (out-of-distribution) 가 서로 잘 분리될 수 있도록 </p>
<p>j 픽셀에 대한 Entropy 를 최대화 = 배경이 어떤 특정 클래스에 속하지 않도록 만든다</p>
<h1 id="experiments">Experiments</h1>
<p><img src="https://velog.velcdn.com/images/min_juuuuun/post/ab844310-aed8-4e70-bef6-77ac984cbdeb/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/min_juuuuun/post/17b7a9b9-ee9b-41f0-9892-1b18576f0576/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/min_juuuuun/post/9999727d-eb57-4e2a-a245-97ebd3075315/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/min_juuuuun/post/2ec4b477-f301-404c-a0e3-a857144f92b5/image.png" alt=""></p>
<p>(K = Hyperparameter → 100 에서 극적인 향상 200 이후까지 높게 유지, 1000 이하)</p>
<p><img src="https://velog.velcdn.com/images/min_juuuuun/post/6b443489-69ab-4ccd-abf7-8530dd6df8f9/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/min_juuuuun/post/46c7fcb1-50d7-40e5-a2a7-e60b07fe7b15/image.png" alt=""></p>
<p>$\lambda = 0.25$ 로 실험을 진행</p>
]]></description>
        </item>
    </channel>
</rss>