-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.xml
More file actions
373 lines (350 loc) · 31.5 KB
/
index.xml
File metadata and controls
373 lines (350 loc) · 31.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>CS Study Group</title>
<link>https://cse-study.github.io/</link>
<description>Recent content on CS Study Group</description>
<generator>Hugo -- gohugo.io</generator>
<language>zh-cn</language>
<copyright>©2019 Notepadium.</copyright>
<lastBuildDate>Fri, 23 Sep 2022 00:00:00 +0000</lastBuildDate>
<atom:link href="https://cse-study.github.io/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Whisper: Robust Speech Recognition via Large-Scale Weak Supervision</title>
<link>https://cse-study.github.io/ai/2022-09/220923-whisper/</link>
<pubDate>Fri, 23 Sep 2022 00:00:00 +0000</pubDate>
<guid>https://cse-study.github.io/ai/2022-09/220923-whisper/</guid>
<description><p>OpenAI에서 공개한 Speech Recognition 모델 Whisper에 대해서 세 줄 요약 합니다.</p>
<p>[<a href="https://cdn.openai.com/papers/whisper.pdf"target="_blank" rel="noopener noreferrer">paper</a>
] [<a href="https://openai.com/blog/whisper/"target="_blank" rel="noopener noreferrer">blog</a>
]</p>
<h3 id="whisper">Whisper</h3>
<ul>
<li>Web에서 수집된 68만 시간 분량의 multilingual, multitask data를 학습한 automatic speech recognition (ASR) 시스템: 당연하게도 <strong>Encoder-Decoder Transformer</strong> 구조</li>
<li>Multilingual, multitask data를 학습한 모델이므로, decoder에 주어지는 special token에 따라 &lsquo;영어 음성을 영어 문서로 작성&rsquo;, &lsquo;비영어 음성을 영어 문서로 기술&rsquo;, &lsquo;비영어 음성을 비영어 문서로 기술&rsquo;등의 다양한 task를 모두 수행할 수 있는 매우 general한 end-to-end 모델임</li>
<li>Overall process는 논문의 figure로 제공하고 있음: (1) 처음에는 Voice activity를 감지하여 실제로 음성이 존재하는 데이터인지 감지. (2) 실제로 음성이 존재하는 데이터라면, 해당 음성이 어떤 언어인지 인식하는 langauge identification 과정 거침. (3) Special token에 따라 transcription 혹은 to-English translation을 학습하는데 (4) 이 과정에서 timestamp token에 따라 time-aliged transcription 혹은 text-only transcription을 수행하도록 학습</li>
</ul></description>
</item>
<item>
<title>DARTS: Differentiable Architecture Search</title>
<link>https://cse-study.github.io/ai/2022-08/220823-darts/</link>
<pubDate>Tue, 23 Aug 2022 00:00:00 +0000</pubDate>
<guid>https://cse-study.github.io/ai/2022-08/220823-darts/</guid>
<description><p>ICLR 2019에서 발표된 &ldquo;DARTS: Differentiable Architecture Search&rdquo; 논문을 읽고 내용을 공유합니다.</p>
<h3 id="darts-differentiable-architecture-search">DARTS: Differentiable Architecture Search</h3>
<ul>
<li>Neural Architecture Search (NAS) 연구에 대해, 기존에는 search space가 미분 불가능하다는 문제점 때문에 RL 기반으로만 연구가 진행었는데,</li>
<li>DARTS는 search space를 미분 가능하게 정의하고 여기에 MAML의 최적화 방식과 동일한 bilevel optimization을 도입하여 gradient descent 기반의 NAS를 가능하도록 만들었음</li>
</ul>
<h3 id="algorithm">Algorithm</h3>
<ol>
<li>Differentiable archtecture search: 논문에서 정의한 bilevel optimization 식을 통한 가중치 $\alpha$ 최적화 수행</li>
<li>Discretization step: $\alpha$와 $k$ 기반으로 필요 없는 operation edge 제거</li>
<li>Retraining for the top-$k$ strongest operations: 남은 operation edge에 대해 처음부터 다시 학습 수행</li>
</ol>
<h3 id="methodology">Methodology</h3>
<p><img src="https://cse-study.github.io/assets/img/darts.png"
alt="img"/></p>
<ul>
<li>(a)의 형태면 candidate operations가 discrete한 set 형태로 정의되기 때문에 미분이 불가능한데, (b)의 형태로 수정 후에 각 operation edege에 $\alpha$라는 가중치를 달고 다음 node에 전달되기 전에 softmax function을 거치도록 형태를 변형하면 모든 candidate operations가 continuous한 형태로 연결되어 있기 때문에 미분이 가능해짐</li>
<li>여기서 우리의 목표는 $\alpha$를 최적화하는 것이며, objective는 아래와 같이 설정이 가능함</li>
</ul>
<p><img src="https://cse-study.github.io/assets/img/darts_obj.png"
alt="img"/></p>
<ul>
<li>$\alpha$를 validation loss 기반으로 최적화하기 위해서는 $w$가 결정되어있어야 하며, $w$를 train loss 기반으로 최적화하기 위해서는 $\alpha$가 결정되어있어야 함. 본 논문은 이러한 nested formulation을 bilevel optimization을 통해서 최적화 함</li>
</ul>
<p><img src="https://cse-study.github.io/assets/img/darts_algo.png"
alt="img"/></p>
<ul>
<li>Bilevel optimization 뿐만 아니라, traning set + validation set을 합친 데이터 셋을 가지고 $\alpha, w$에 대한 coordinate descent와 SGD도 각각 수행하였는데, 성능은 bilevel optimization이 제일 좋았다고 함. 이에 대해 저자들은, 아마 $\alpha$를 training set이 포함된 데이터를 가지고 직접 최적화하였기 때문에 overfitting이 발생했을 것이라고 가정하였음</li>
</ul>
<h3 id="references">References</h3>
<ul>
<li><a href="https://openreview.net/pdf?id=S1eYHoC5FX"target="_blank" rel="noopener noreferrer">Liu, Hanxiao, Karen Simonyan, and Yiming Yang. &ldquo;DARTS: Differentiable Architecture Search.&rdquo; <em>International Conference on Learning Representations</em>. 2019.</a>
</li>
</ul></description>
</item>
<item>
<title>Video PreTraining (VPT)</title>
<link>https://cse-study.github.io/ai/2022-07/220702-vpt/</link>
<pubDate>Sat, 02 Jul 2022 00:00:00 +0000</pubDate>
<guid>https://cse-study.github.io/ai/2022-07/220702-vpt/</guid>
<description><p>OpenAI의 &ldquo;Learning to Play Minecraft with Video PreTraining (VPT)&rdquo; 글을 읽고 내용을 공유합니다.</p>
<h3 id="video-pretraining">Video PreTraining</h3>
<ul>
<li>OpenAI에서 Minecraft를 플레이할 수 있는 computer-using agent를 학습시켰음</li>
<li>최종적으로는 다이아 곡괭이를 만드는 것을 학습하였는데, 이 과정에서 20분(24000 action) 정도의 사람의 게임 플레이 내용을 unlabeled video dataset 형태로 사용하였고, 플레이어를 고용해서 만든 labeled contractor data가 일부 사용되었음</li>
</ul>
<p><img src="https://cdn.openai.com/vpt/overview.svg"
alt="img"/></p>
<center><p><i>Taken from https://openai.com/blog/vpt/</i></p></center>
<ol>
<li>인터넷 상에서 70K hour 가량의 unlabeled video 데이터 수집</li>
<li>사람 전문가를 통해 마우스/키보드 액션이 label된 2K hour 가량의 데이터 수집. 이를 통해 비디오 프레임과 마우스/키보드 액션 사이의 관계를 뉴럴넷 모델(<strong>Inverse Dynamics Model, IDM</strong>) 사용하여 학습.</li>
<li>IDM 사용하여 70K unlabeled video 데이터를 라벨링한 뒤에, 해당 데이터를 사용하여 <strong>past frame이 주어지면 future action을 예측하는 VPT Foundation 모델</strong> 학습 (Behavior Cloning, causal)
<ul>
<li><strong>Input이 past video frames이고, output이 action인 auto-regressive 모델!</strong></li>
</ul>
</li>
<li>Foundation 모델을 획득하면 이 모델을 가지고 zero-shot으로 task를 수행할 수도 있고, fine-tuning하여 모델을 더 task-specific 해지도록 개선할 수도 있음
<ul>
<li>RL 기반 fine-tuning을 할 때는 아래의 sub-tasks를 순차적으로 잘 수행할 때 마다 reward를 제공했다고 함</li>
</ul>
</li>
</ol>
<p><img src="https://cdn.openai.com/vpt/diamond-pickaxe-sequence.svg"
alt="img"/></p>
<center><p><i>Taken from https://openai.com/blog/vpt/</i></p></center>
<h3 id="references">References</h3>
<ul>
<li><a href="https://openai.com/blog/vpt/"target="_blank" rel="noopener noreferrer">OpenAI, &ldquo;Learning to Play Minecraft with Video PreTraining (VPT)&quot;</a>
</li>
<li><a href="https://www.youtube.com/watch?v=oz5yZc9ULAc"target="_blank" rel="noopener noreferrer">Yannic Kilcher YouTube, &ldquo;Video PreTraining (VPT): Learning to Act by Watching Unlabeled Online Videos (Paper Explained)&quot;</a>
</li>
</ul></description>
</item>
<item>
<title>Vision Transformer</title>
<link>https://cse-study.github.io/ai/2022-06/220609-vision-transformer/</link>
<pubDate>Thu, 09 Jun 2022 00:00:00 +0000</pubDate>
<guid>https://cse-study.github.io/ai/2022-06/220609-vision-transformer/</guid>
<description><p>Vision transformer와 DINO 논문에 대해, 관련 자료를 읽고 내용을 공유합니다.</p>
<h3 id="vision-transformer">Vision Transformer</h3>
<p><img src="https://cse-study.github.io/assets/img/ViT.png"
alt="img"/></p>
<center><p><i>Taken from Dosovitskiy, Alexey, et al.</i></p></center>
<ol>
<li>전체 이미지를 16 x 16 size의 patch로 절단. 예를 들어 48 x 48 이미지라면 9개의 patch로 나뉨
<ul>
<li>&ldquo;ViT-Base/16&rdquo; model에서 16이 의미하는 것이 patch size임</li>
</ul>
</li>
<li>각각의 patch를 평탄화(16 x 16 x 3 = 768) 한 뒤에, 워드 임베딩을 만드는 것 처럼 linear projection을 통해 embedding vector의 형태로 변환</li>
<li>해당 embedding vector에, BERT와 동일하게 CLS 토큰과 position embedding을 추가함. 이 둘은 learnable parameter 임
<ul>
<li>CLS 토큰은 patch embedding과 동일한 사이즈이며, 9개의 patch embedding들과 concat 함</li>
<li>position embedding은 총 9 + 1 = 10개로, patch embedding에 합(+)해주는 형태로 구성</li>
</ul>
</li>
<li>각 embedding vector를 하나의 워드 토큰으로 여겨, transformer의 입력으로 전달</li>
<li>BERT와 동일하게, CLS 토큰의 최종 출력이 해당 이미지의 output class라고 가정. 따라서 transformer 출력 단에서 CLS의 embedding이 어떻게 변했는지 확인하여 inference 수행</li>
</ol>
<h3 id="dino-self-distillation-with-no-labels">DINO (Self-<strong>di</strong>stillation with <strong>no</strong> labels)</h3>
<p><img src="https://cse-study.github.io/assets/img/DINO.png"
alt="img"/></p>
<center><p><i>Taken from Caron, Mathilde, et al.</i></p></center>
<ul>
<li>ViT를 <a href="https://yuhodots.github.io/deeplearning/21-04-04/"target="_blank" rel="noopener noreferrer">BYOL</a>
의 manner로 학습</li>
<li>BYOL과 달리 normalized embedding의 L2 distance를 사용하지는 않고, $p_2 \log p_1$ 형태의 cross entropy loss 사용</li>
</ul>
<h3 id="references">References</h3>
<ul>
<li><a href="https://ai.facebook.com/blog/dino-paws-computer-vision-with-self-supervised-transformers-and-10x-more-efficient-training/"target="_blank" rel="noopener noreferrer">Advancing the state of the art in computer vision with self-supervised Transformers and 10x more efficient training</a>
</li>
<li>Dosovitskiy, Alexey, et al. &ldquo;An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale.&rdquo; <em>International Conference on Learning Representations</em>. 2021.</li>
<li>Caron, Mathilde, et al. &ldquo;Emerging properties in self-supervised vision transformers.&rdquo; <em>Proceedings of the IEEE/CVF International Conference on Computer Vision</em>. 2021.</li>
<li><a href="https://www.youtube.com/watch?v=h3ij3F3cPIk"target="_blank" rel="noopener noreferrer">Yanick Kilcher, &ldquo;DINO: Emerging Properties in Self-Supervised Vision Transformers (Facebook AI Research Explained)&quot;</a>
</li>
<li><a href="https://github.com/facebookresearch/dino"target="_blank" rel="noopener noreferrer">https://github.com/facebookresearch/dino</a>
</li>
</ul></description>
</item>
<item>
<title>Open-world Learning</title>
<link>https://cse-study.github.io/ai/2022-06/220603-open-world-learning/</link>
<pubDate>Fri, 03 Jun 2022 00:00:00 +0000</pubDate>
<guid>https://cse-study.github.io/ai/2022-06/220603-open-world-learning/</guid>
<description><p>Chen, Zhiyuan, and Bing Liu의 &ldquo;Lifelong machine learning.&rdquo; chapeter 5, Open-world Learning을 읽고 간단하게 정리합니다.</p>
<h3 id="problem-definition">Problem Definition</h3>
<ul>
<li>Closed-world assumption: 모든 테스트 클래스가 이미 학습 과정에서 본 것들로 이루어짐</li>
<li>Open-world learning: 모델 테스트 단계에서 이전에 본 적 없는 클래스가 입력되는 경우에, scratch부터 재학습 시키지 않더라도 모델이 대응할 수 있어야 함. 관련된 용어로는 cumulative learning 혹은 open-world recognition 등이 존재</li>
</ul>
<ol>
<li>$N$개의 class에 대해 학습한 모델이 테스트에서 해당 $N$개에 속하지 않는 unseen class를 발견한 경우, 이를 rejected $R$ set에 보관</li>
<li>$R$ set에서 $k$개의 unseen class를 인식하고, 각 class에 알맞게 학습 데이터 (자동으로) 수집</li>
<li>충분한 데이터가 쌓였다면 $k$개 class에 대한 incremental learning을 통해 $N+k$ class의 지식을 지닌 모델로 업데이트</li>
</ol>
<h3 id="how-to-solve-cbs-learning">How to Solve?: CBS Learning</h3>
<ul>
<li>CBS Learning: center-based similarity space learning</li>
<li>Classification 하려는 target class의 center feature $c$와 sample feature의, feature space 상에서의 similarity가 높도록 학습</li>
</ul>
<h3 id="deep-open-classification-doc">Deep Open Classification (DOC)</h3>
<ul>
<li>1-vs.-rest layer: Softmax를 사용하는 대신 $N$개의 sigmoid layer를 last layer로 사용함. 모든 sigmoid output에 대해서 threshold $t$ (default=0.5)를 넘지 못하면 reject(unseen class로 취급)함. 그리고 reject되지 않은 경우에는 제일 높은 sigmoid output을 가진 class를 선택함.</li>
<li>Basic DOC는 1-vs.-rest layer를 사용하며, 당시(2017) SOTA 성능을 보였음</li>
<li>근데 생각보다 0.5 threshold를 넘어가는 unseen class가 많았음. 따라서 threshold를 통계 기반으로 정밀하게 조절할 수 있는 방법을 고안했더니 더 성능이 올랐음 (자세한 내용 책 직접 참고)</li>
</ul>
<h3 id="references">References</h3>
<ul>
<li>Chen, Zhiyuan, and Bing Liu. &ldquo;Lifelong machine learning.&rdquo; <em>Synthesis Lectures on Artificial Intelligence and Machine Learning</em> 12.3 (2018): 1-207</li>
</ul></description>
</item>
<item>
<title>Data Augmentation for Deep Learning</title>
<link>https://cse-study.github.io/ai/2022-05/220527-data-augmentation/</link>
<pubDate>Fri, 27 May 2022 00:00:00 +0000</pubDate>
<guid>https://cse-study.github.io/ai/2022-05/220527-data-augmentation/</guid>
<description><p>Deep Learning 모델 성능 개선을 위한 Data Augmentation 방법들과 효과를 정리합니다.</p>
<h3 id="mixup-iclr-2018">Mixup (ICLR 2018)</h3>
<ul>
<li><a href="https://arxiv.org/pdf/1710.09412.pdf"target="_blank" rel="noopener noreferrer">https://arxiv.org/pdf/1710.09412.pdf</a>
</li>
<li>한 줄 요약: 두 개의 샘플에 대해서, input space와 output space를 각각 동일한 비율로 linear interpolate한 샘플 생성</li>
<li>장점/효과: Decision boundary가 클래스에서 클래스로 선형적으로 변하기 때문에 더 smooth한 uncertainty estimation 제공</li>
</ul>
<h3 id="manifold-mixup-icml-2019">Manifold Mixup (ICML 2019)</h3>
<ul>
<li><a href="https://arxiv.org/abs/1806.05236"target="_blank" rel="noopener noreferrer">https://arxiv.org/abs/1806.05236</a>
</li>
<li>한 줄 요약: Itermediate layer의 representation을 mixup하는 방법</li>
<li>장점/효과: class-specific representations을 flatten하는 효과를 가짐. 그리고 이 flat representation에 대해서 학습때 보지 못했거나 data manifold를 벗어난 샘플은 low-confidence로 예측. 즉, 헷갈리는 샘플을 어떻게든 하나의 class로 할당하기 보다는, uncertainty 높은(어느 하나로 확신하지 않는) 예측을 뱉음</li>
</ul>
<h3 id="augmix-iclr-2020">AugMix (ICLR 2020)</h3>
<ul>
<li><a href="https://arxiv.org/pdf/1912.02781.pdf"target="_blank" rel="noopener noreferrer">https://arxiv.org/pdf/1912.02781.pdf</a>
</li>
<li>한 줄 요약: 두 개의 샘플을 합치는 방법이 아닌, 하나의 샘플에 여러 복합적인 augmentation 방법 적용한 뒤에도 동일한 예측을 하도록 KLD 형태의 consistency loss를 regularizer로 사용하는 방법</li>
<li>장점/효과: Robustness 관점에서 좋은 성능 (Noise에 강건함)</li>
</ul>
<h3 id="autoaugment-cvpr-2019">AutoAugment (CVPR 2019)</h3>
<ul>
<li><a href="https://arxiv.org/pdf/1805.09501.pdf"target="_blank" rel="noopener noreferrer">https://arxiv.org/pdf/1805.09501.pdf</a>
</li>
<li>한 줄 요약: 최적의 augmentation policy를 찾도록 RL 기반 학습</li>
</ul>
<h3 id="references">References</h3>
<ul>
<li>Shorten, Connor, and Taghi M. Khoshgoftaar. &ldquo;A survey on image data augmentation for deep learning.&rdquo; Journal of big data 6.1 (2019): 1-48</li>
</ul></description>
</item>
<item>
<title>JAX Ecosystem</title>
<link>https://cse-study.github.io/ai/2022-05/220520-jax/</link>
<pubDate>Fri, 20 May 2022 00:00:00 +0000</pubDate>
<guid>https://cse-study.github.io/ai/2022-05/220520-jax/</guid>
<description><p>JAX 라이브러리 관련 자료들을 읽고 정리합니다.</p>
<h3 id="summary">Summary</h3>
<ul>
<li>JAX: PyTorch, Tensor, MXNet보다 빠르고, NumPy 같은 array based 계산과 여러 파이썬 수학 기능들을 편리하게, 병렬 처리 가능하도록 사용할 수 있도록 구현한 라이브러리. Google Research가 개발하였음.</li>
</ul>
<ol>
<li><strong>Differentiation</strong>: Python 함수가 주어지면 grad 기능을 통해 자동으로 미분식을 알아내고,</li>
<li><strong>Vectorisation</strong>: vamp, pmap등의 기능을 통해 병렬화가 가능하며,</li>
<li><strong>JIT-compilation</strong>: CPU, GPU, TPU 등, 사용 가능한 accelerators를 쉽게 조절 할 수 있도록, 그리고 빠른 컴퓨팅 속도를 위해 just-in-time compile (C++ 처럼 컴파일 후 실행하는게 아닌, 실제 실행하는 시점에 컴파일)할 수 있도록 <a href="https://www.tensorflow.org/xla"target="_blank" rel="noopener noreferrer">XLA</a>
를 사용</li>
</ol>
<ul>
<li>Haiku: JAX의 함수형 패러다임을 활용하면서도 OOP 기반 neural network 모델을 편리하게 사용할 수 있도록 구현한 라이브러리</li>
<li>이 외에도 JAX 관련 라이브러리로는 <a href="">Optax</a>
(gradient 변환, optimizer 관련), <a href="https://github.com/deepmind/rlax"target="_blank" rel="noopener noreferrer">RLax</a>
(RL 관련), <a href="https://github.com/deepmind/chex"target="_blank" rel="noopener noreferrer">Chex</a>
(실험 테스팅 관련), <a href="https://github.com/deepmind/jraph"target="_blank" rel="noopener noreferrer">Jraph</a>
(GNN 관련) 등이 있음</li>
</ul>
<h3 id="comments">Comments</h3>
<ul>
<li>정리해보자면, 기존엔 cpu만 사용할 수 있었던 numpy계산을 gpu 위에서도 가능하도록 구현했고(물론 cupy가 있기는 했지만), torch나 tensorflow라는 프레임워크 위에서 한정된 실험을 하는 것이 아니라 단순 파이썬 코드 혹은 numpy 코드를 가지고도 ML 실험이 가능하도록 구현된 라이브러리라고 할 수 있음</li>
<li>파이썬, Numpy 기본 기능들만 가지고도 ML 실험이 매우 빠르게 가능하도록 한 것이 의미가 있다고 생각하고, JAX를 사용해보지는 않았지만 최근에 Google, DeepMind 코드에서 JAX와 Haiku가 매우매우 자주 보이는 데에는 이유가 있을 것이라는 생각이 듦</li>
</ul>
<h3 id="references">References</h3>
<ul>
<li><a href="https://www.deepmind.com/blog/using-jax-to-accelerate-our-research"target="_blank" rel="noopener noreferrer">Deepmind, &ldquo;Using JAX to accelerate our research&rdquo;</a>
</li>
<li><a href="https://www.youtube.com/watch?v=WdTeDXsOSj4"target="_blank" rel="noopener noreferrer">TensorFlow, &ldquo;Intro to JAX: Accelerating Machine Learning research&rdquo;</a>
</li>
<li><a href="https://www.youtube.com/watch?v=0mVmRHMaOJ4"target="_blank" rel="noopener noreferrer">Google Cloud Tech, &ldquo;Introduction to JAX&rdquo;</a>
</li>
</ul></description>
</item>
<item>
<title>PaLM: Pathway Language Model</title>
<link>https://cse-study.github.io/ai/2022-05/220508-palm/</link>
<pubDate>Sun, 08 May 2022 00:00:00 +0000</pubDate>
<guid>https://cse-study.github.io/ai/2022-05/220508-palm/</guid>
<description><p>Google AI에서 올해 4월에 발표한 Pathway Language Model(PaLM)에 대해 관련 자료를 보고 리뷰합니다.</p>
<h3 id="summary">Summary</h3>
<ul>
<li>Google AI에서 무려 540B 파라미터를 가진 언어 모델을 학습시켰음. 모델 구조는 decoder-only Transformer로 다른 언어 생성 모델들과 큰 차이 없음</li>
</ul>
<ol>
<li>Pathway: 구글은 2021년에 <a href="https://blog.google/technology/ai/introducing-pathways-next-generation-ai-architecture/"target="_blank" rel="noopener noreferrer">pathway</a>
라는 비전을 발표하였고, 이를 이루기 위해서 <a href="https://arxiv.org/abs/2203.12533"target="_blank" rel="noopener noreferrer">pathway system</a>
이라는 가속기 분산 계산 관리 시스템을 개발하였음. Pathway system을 통해 학습된 PaLM은 6144개의 TPU와 1500여 개의 컴퓨터를 통해 학습되었음</li>
<li>Chain-of-thought Prompting: <a href="https://arxiv.org/abs/2201.11903.pdf"target="_blank" rel="noopener noreferrer">chain-of-thought prompting</a>
방법과 PaLM 모델을 엮어 reasoning 성능을 확연히 높이 수 있었다고 함. Chain-of-thought Prompting은 기존 데이터셋에 대해서 output에 단답이 아닌, 왜 이런 정답이 나왔는지에 대한 intermediate steps을 추가하는 방법임.</li>
</ol>
<h3 id="references">References</h3>
<ul>
<li>Chowdhery, Aakanksha, et al. &ldquo;Palm: Scaling language modeling with pathways.&rdquo; arXiv preprint arXiv:2204.02311 (2022).</li>
<li><a href="http://ai.googleblog.com/2022/04/pathways-language-model-palm-scaling-to.html"target="_blank" rel="noopener noreferrer">Pathways Language Model (PaLM): Scaling to 540 Billion Parameters for Breakthrough Performance</a>
</li>
<li><a href="https://www.youtube.com/watch?v=RJwPN4qNi_Y"target="_blank" rel="noopener noreferrer">Google&rsquo;s 540B PaLM Language Model &amp; OpenAI&rsquo;s DALL-E 2 Text-to-Image Revolution</a>
</li>
</ul></description>
</item>
<item>
<title>CLIP: Connecting Text and Images</title>
<link>https://cse-study.github.io/ai/2022-04/220428-clip/</link>
<pubDate>Thu, 28 Apr 2022 00:00:00 +0000</pubDate>
<guid>https://cse-study.github.io/ai/2022-04/220428-clip/</guid>
<description><p>OpenAI CLIP 관련 자료를 읽고 정리합니다.</p>
<h3 id="summary">Summary</h3>
<ul>
<li>이미지와 텍스트를 매우 잘 representation 하는 모델을 만들어, 이미지 데이터에 대한 높은 zero-shot 성능을 이끌어내고자 했음</li>
<li>학습 방법
<ol>
<li>mini-batch N개 만큼의 이미지와 텍스트를 준비하여, N개씩 이미지 임베딩과 텍스트 임베딩을 제작</li>
<li>그러면 이미지 임베딩과 텍스트 임베딩 대해서 N x N matrix 형태의 similarity를 계산할 수 있는데, 동일한 셋에서 나온 이미지와 텍스트의 similairty가 최대가 되도록 contrastive loss를 사용하여 모델을 학습</li>
</ol>
</li>
<li>Zero-shot classification 방법 (테스트)
<ol>
<li>먼저 dataset 내의 label을 텍스트 인코더에 넣어줘서 텍스트 임베딩을 미리 다 뽑아 놓은 다음에,</li>
<li>이미지 인코더에 이미지를 입력을 제공하여, 현재 존재하는 텍스트 임베딩 중에서 어떤 것과 가장 similarity가 높은지 확인</li>
</ol>
</li>
</ul>
<h3 id="comment">Comment</h3>
<ul>
<li>어떠한 모든 데이터셋에 대해서도 zero-shot으로 classification 할 수 있는 강력한 모델</li>
<li>최근에 유명한 DALL-E 도 CLIP 임베딩을 활용했다고 함</li>
<li>Fully supervised 방식과 견줄만 하다는 것이 매우 인상적임. 좋은 representation을 배웠기 때문에 타겟 데이터셋을 한 장도 보지 않더라도 해당 데이터 셋으로만 학습시킨 모델과 견줄 수 있다는 것이니, 그 어느 알고리즘보다도 generalization 성능이 높다는 생각이 들었음</li>
</ul>
<h3 id="references">References</h3>
<ul>
<li><a href="https://www.youtube.com/watch?v=T9XSU0pKX2E"target="_blank" rel="noopener noreferrer">https://www.youtube.com/watch?v=T9XSU0pKX2E</a>
</li>
<li><a href="https://openai.com/blog/clip/"target="_blank" rel="noopener noreferrer">OpenAI, CLIP: Connecting Text and Images</a>
</li>
<li>Radford, Alec, et al. &ldquo;Learning transferable visual models from natural language supervision.&rdquo; <em>International Conference on Machine Learning</em>. PMLR, 2021</li>
</ul></description>
</item>
<item>
<title>Solving ImageNet</title>
<link>https://cse-study.github.io/ai/2022-04/220421-solving-imagenet/</link>
<pubDate>Thu, 21 Apr 2022 00:00:00 +0000</pubDate>
<guid>https://cse-study.github.io/ai/2022-04/220421-solving-imagenet/</guid>
<description><p>이번 달에 알리바바 그룹에서 발표한 &ldquo;Solving ImageNet: a Unified Scheme for Training any Backbone to Top Results&rdquo; 논문을 읽고 리뷰합니다.</p>
<h3 id="summary">Summary</h3>
<ul>
<li>새로운 방법을 제안하는 논문은 아니고 technical report에 가까움</li>
<li>ImageNet dataset에 대해서, 어떤 모델 구조더라도 하이퍼파라미터 튜닝 없이 동일하게 적용할 수 있는 USI(Unified Scheme for ImageNet)을 제안. Knowledge distillation과 몇 가지 modern tricks를 사용하였고, 모든 모델에 대해서 previous SOTA를 넘었음</li>
<li>TResNet-L 구조의 teacher model과 더불어 논문에서 제안하는 하이퍼파라미터를 사용하면, CNN, Transformer, Mobile-oriented, MLP-only 형태의 student 모델에 대해서 모두 성능이 개선된다고 함</li>
<li>일반적인 knowledge distillation 형태(vanilla KD)와 동일하게, true label y에 대해서는 cross entropy loss를 사용하고, teacher label에 대해서는 temperature를 사용하여 soft label을 만든 뒤에 student prediction과 KLD를 계산함</li>
</ul>
<h3 id="comments">Comments</h3>
<ul>
<li>Hyper-parameter tuning이 매우 time-consuming한 작업이지만 중요하기 때문에 모든 연구에서 어쩔 수 없이 수행해야했는데, 본 논문과 같은 연구 방향이 계속해서 발전하면 여러 연구자들의 시행착오 시간을 줄여줄 수 있어서 좋을 것 같다는 생각이 들었음</li>
<li>새로운 아이디어를 제안하여 하이퍼파라미터 튜닝의 수고를 덜어주는 내용일 줄 알았는데, 그게 아니라 좋은 teacher model을 만들었더니 모든 student model에 대해서 잘했다는 technical report 형식의 논문이어서 아쉬웠음</li>
<li>&lsquo;No hyper-parameter tuning need&rsquo;라고 하는데, ImageNet이 아닌 다른 데이터 셋에 적용할 때는 결국 teacher model을 하이퍼파라미터 튜닝을 통해 다시 찾아야하니 본질적인 &lsquo;No hyper-parameter tuning need&rsquo;는 아니라는 생각이 들었음</li>
</ul>
<h3 id="references">References</h3>
<ul>
<li>Ridnik, Tal, et al. &ldquo;Solving ImageNet: a Unified Scheme for Training any Backbone to Top Results.&rdquo; arXiv preprint arXiv:2204.03475 (2022).</li>
</ul></description>
</item>
</channel>
</rss>