All language subtitles for [Korean (auto-generated)] [컴퓨터비전] Lecture 14. Transformers II [DownSub.com]

af Afrikaans
ak Akan
sq Albanian
am Amharic
ar Arabic
hy Armenian
az Azerbaijani
eu Basque
be Belarusian
bem Bemba
bn Bengali
bh Bihari
bs Bosnian
br Breton
bg Bulgarian
km Cambodian
ca Catalan
ceb Cebuano
chr Cherokee
ny Chichewa
zh-CN Chinese (Simplified)
zh-TW Chinese (Traditional)
co Corsican
hr Croatian
cs Czech
da Danish
nl Dutch
en English Download
eo Esperanto
et Estonian
ee Ewe
fo Faroese
tl Filipino
fi Finnish
fr French
fy Frisian
gaa Ga
gl Galician
ka Georgian
de German
el Greek
gn Guarani
gu Gujarati
ht Haitian Creole
ha Hausa
haw Hawaiian
iw Hebrew
hi Hindi
hmn Hmong
hu Hungarian
is Icelandic
ig Igbo
id Indonesian
ia Interlingua
ga Irish
it Italian
ja Japanese
jw Javanese
kn Kannada
kk Kazakh
rw Kinyarwanda
rn Kirundi
kg Kongo
ko Korean
kri Krio (Sierra Leone)
ku Kurdish
ckb Kurdish (Soranî)
ky Kyrgyz
lo Laothian
la Latin
lv Latvian
ln Lingala
lt Lithuanian
loz Lozi
lg Luganda
ach Luo
lb Luxembourgish
mk Macedonian
mg Malagasy
ms Malay
ml Malayalam
mt Maltese
mi Maori
mr Marathi
mfe Mauritian Creole
mo Moldavian
mn Mongolian
my Myanmar (Burmese)
sr-ME Montenegrin
ne Nepali
pcm Nigerian Pidgin
nso Northern Sotho
no Norwegian
nn Norwegian (Nynorsk)
oc Occitan
or Oriya
om Oromo
ps Pashto
fa Persian
pl Polish
pt-BR Portuguese (Brazil)
pt Portuguese (Portugal)
pa Punjabi
qu Quechua
ro Romanian
rm Romansh
nyn Runyakitara
ru Russian
sm Samoan
gd Scots Gaelic
sr Serbian
sh Serbo-Croatian
st Sesotho
tn Setswana
crs Seychellois Creole
sn Shona
sd Sindhi
si Sinhalese
sk Slovak
sl Slovenian
so Somali
es Spanish
es-419 Spanish (Latin American)
su Sundanese
sw Swahili
sv Swedish
tg Tajik
ta Tamil
tt Tatar
te Telugu
th Thai
ti Tigrinya
to Tonga
lua Tshiluba
tum Tumbuka
tr Turkish
tk Turkmen
tw Twi
ug Uighur
uk Ukrainian
ur Urdu
uz Uzbek
vi Vietnamese
cy Welsh
wo Wolof
xh Xhosa
yi Yiddish
yo Yoruba
zu Zulu
Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated: 1 00:00:03,959 --> 00:00:05,959 안녕하세요 2 00:00:08,340 --> 00:00:11,040 mlbu 14강 두 번째 트랜스포머 3 00:00:11,040 --> 00:00:13,340 시간입니다 4 00:00:13,559 --> 00:00:15,240 한국 많이 따뜻해진 것 같아요 5 00:00:15,240 --> 00:00:15,960 학생들이 6 00:00:15,960 --> 00:00:17,460 입고 있는 옷이 7 00:00:17,460 --> 00:00:20,910 랑 되게 다른 거 같은데 8 00:00:20,910 --> 00:00:22,320 [음악] 9 00:00:22,320 --> 00:00:23,400 지난 시간에 이제 트랜스포머라는 10 00:00:23,400 --> 00:00:24,600 모델을 처음 배우기 시작을 했어요 11 00:00:24,600 --> 00:00:27,060 오늘은 그거를 컴퓨터 비전 쪽에서 12 00:00:27,060 --> 00:00:29,160 어떻게 활용하는지 배워보는 시간을 13 00:00:29,160 --> 00:00:30,840 갖도록 하겠습니다 14 00:00:30,840 --> 00:00:33,180 먼저 공지가 있는데요 15 00:00:33,180 --> 00:00:35,460 다음 주는 일주일 동안 수업이 16 00:00:35,460 --> 00:00:38,120 없습니다 제가 학회를 가야 돼 가지고 17 00:00:38,120 --> 00:00:41,579 그 유럽쪽 시간대에 있다 보니까 지금 18 00:00:41,579 --> 00:00:43,920 여기가 이제 미국이랑 19 00:00:43,920 --> 00:00:45,660 한국 시간에 프렌들리하게 제가 시간을 20 00:00:45,660 --> 00:00:47,280 잡아놨더니 유럽에서는 정말 안 좋은 21 00:00:47,280 --> 00:00:49,320 시간대에요 그래가지고 22 00:00:49,320 --> 00:00:51,300 다음주는 수업이 없고 그 프로젝트 23 00:00:51,300 --> 00:00:52,700 하는 시간으로 쓰시면 됩니다 24 00:00:52,700 --> 00:00:55,079 그래서이 시간 자유롭게 여러분들 25 00:00:55,079 --> 00:00:56,879 팀원들이랑 같이 미팅하는 시간으로 26 00:00:56,879 --> 00:00:59,160 잡으셔도 되고 뭐 27 00:00:59,160 --> 00:01:02,039 코딩하는 시간으로 쓰셔도 좋고 뭐 28 00:01:02,039 --> 00:01:04,019 다음주는 수업이 없고 그 다음 주 29 00:01:04,019 --> 00:01:06,659 5월 9일이 맞나요 30 00:01:06,659 --> 00:01:07,920 5월 9일 날 우리는 다시 만나도록 31 00:01:07,920 --> 00:01:11,100 하겠습니다 그리고이 32 00:01:11,340 --> 00:01:13,140 쉬는 기간 동안 아마 호박 3가 나갈 33 00:01:13,140 --> 00:01:14,040 거예요 34 00:01:14,040 --> 00:01:15,900 손목소리는 뭐 현재 예정은 35 00:01:15,900 --> 00:01:17,820 58일까지로 되어 있는데 나가는 36 00:01:17,820 --> 00:01:19,080 날로부터 2주 정도 37 00:01:19,080 --> 00:01:21,000 드린다고 생각하시면 될 것 같고 38 00:01:21,000 --> 00:01:23,100 etl을 공지 나갈 거니까 봐주시면 39 00:01:23,100 --> 00:01:25,380 될 것 같습니다 40 00:01:25,380 --> 00:01:28,040 혹시 질문 있으신가요 41 00:01:30,840 --> 00:01:34,020 예 없으시면 오늘 내용 들어가기 전에 42 00:01:34,020 --> 00:01:35,280 지난 시간에 배웠던 거 한번 복습을 43 00:01:35,280 --> 00:01:37,740 해 볼게요 자 오늘은 제가 그림을 44 00:01:37,740 --> 00:01:40,140 여기다 붙여 놨는데 45 00:01:40,140 --> 00:01:41,460 지난 시간에 우리가 트랜스포머라는 걸 46 00:01:41,460 --> 00:01:43,979 배웠어요이 트랜스포머가 이제 어떻게 47 00:01:43,979 --> 00:01:46,799 동작하는 건지를 한번 48 00:01:46,799 --> 00:01:48,600 임서영 학생이 설명해주시면 좋을 것 49 00:01:48,600 --> 00:01:50,720 같습니다 50 00:01:52,320 --> 00:01:53,240 인풋으로 51 00:01:53,240 --> 00:01:54,840 만약에 52 00:01:54,840 --> 00:01:57,060 월드라고 친다면 인풋 프라임 패딩이 53 00:01:57,060 --> 00:01:58,439 들어가고 54 00:01:58,439 --> 00:02:01,340 멀티 헤드 어텐션에서 55 00:02:02,700 --> 00:02:05,180 문장이 들어가면 56 00:02:06,860 --> 00:02:09,360 각각류 그리고 키를 이용해서 57 00:02:09,360 --> 00:02:12,239 셀프어텐션을 구한 다음에 그 58 00:02:12,239 --> 00:02:14,640 컨텍스트를 이용한 벡터를 59 00:02:14,640 --> 00:02:16,440 리뉴얼 트랜스폼에서 60 00:02:16,440 --> 00:02:19,200 새롭게 자기 자신을 만들어서 그걸 61 00:02:19,200 --> 00:02:21,480 엔코딩에 학습한 다음에 62 00:02:21,480 --> 00:02:22,819 디코딩에서 63 00:02:22,819 --> 00:02:27,120 만약 세컨드 세컨즈 64 00:02:27,120 --> 00:02:28,920 트레이닝이라고 하면 다시 그거를 65 00:02:28,920 --> 00:02:32,459 패턴에서 똑같은 방식으로 나오게 66 00:02:32,459 --> 00:02:33,120 하는 67 00:02:33,120 --> 00:02:35,520 구조라고 이해했습니다 68 00:02:35,520 --> 00:02:38,360 네 감사합니다 69 00:02:38,360 --> 00:02:40,260 전체적으로 잘 설명해 주신 거 같은데 70 00:02:40,260 --> 00:02:42,720 한번 다시 정리해 볼게요 71 00:02:42,720 --> 00:02:44,099 트랜스포머 핵심적으로 72 00:02:44,099 --> 00:02:45,900 트랜스포머가 뭐냐라고 하면은 73 00:02:45,900 --> 00:02:47,040 멀티 헤디드 74 00:02:47,040 --> 00:02:49,440 셀프어텐션이라고 얘기를 했었어요 75 00:02:49,440 --> 00:02:52,260 멀티 헤드가 뭐예요 우리가 저기서 그 76 00:02:52,260 --> 00:02:53,640 커리키 밸류를 여러 개를 만들어 쓴다 77 00:02:53,640 --> 00:02:55,739 그랬죠 그래서 멀티 해야 되고 78 00:02:55,739 --> 00:02:58,319 셀프어텐션이라는 거는 어텐션을 하는데 79 00:02:58,319 --> 00:02:59,580 기본적으로 우리가 배웠던 어텐션 80 00:02:59,580 --> 00:03:02,959 메커니즘으로 돌아가는데 그 어텐션이 81 00:03:02,959 --> 00:03:04,920 우리가 지금 82 00:03:04,920 --> 00:03:06,840 학습하고자 하는 그 대상 이미지가 83 00:03:06,840 --> 00:03:09,900 됐든 텍스트가 됐든 문장이든 뭐든이 84 00:03:09,900 --> 00:03:11,940 서브 컴퍼넌트들간에 서로가 서로를 85 00:03:11,940 --> 00:03:14,700 어떻게 하는 구조로 간다라는게 86 00:03:14,700 --> 00:03:16,879 특징이었었어요 그래서 여기 87 00:03:16,879 --> 00:03:18,720 이미지가 이렇게 여러개가 쭉 들어가는 88 00:03:18,720 --> 00:03:20,459 걸 예제로 해놨었는데 89 00:03:20,459 --> 00:03:22,140 얘네들을 표현하는 90 00:03:22,140 --> 00:03:23,280 벡터가 있고 91 00:03:23,280 --> 00:03:24,900 얘네들을 각각 커리키 밸류로 만들어 92 00:03:24,900 --> 00:03:27,060 가지고 자기들끼리 서로 어텐드 하게 93 00:03:27,060 --> 00:03:30,300 해서 자기들의 어 그 94 00:03:30,300 --> 00:03:32,400 루프젠테이션을 거기에 있는 모든 95 00:03:32,400 --> 00:03:34,319 컴퍼넌트들 간의 어떤 wayted 96 00:03:34,319 --> 00:03:36,900 summ로 표현을 해 가지고 이제 97 00:03:36,900 --> 00:03:38,220 컨텍스트가 약간 들어가 있는 98 00:03:38,220 --> 00:03:40,440 컨텍솔라이즈 되어 있는 벡터로 99 00:03:40,440 --> 00:03:42,239 트랜스폼 시켜주는 모델이라고 얘기를 100 00:03:42,239 --> 00:03:44,159 했죠 그리고 그거를 여러 번 이렇게 101 00:03:44,159 --> 00:03:46,200 반복을 하게 되면은 전체 문맥을 이제 102 00:03:46,200 --> 00:03:48,060 다 어느 정도 가지고 있는 이런 103 00:03:48,060 --> 00:03:52,099 식으로 만들어질 것이다라는게 우리가 104 00:03:52,140 --> 00:03:53,459 트랜스포머에 인코더의 기본적인 105 00:03:53,459 --> 00:03:55,260 아이디어였었고요 106 00:03:55,260 --> 00:03:57,659 그 지금 이제 서양 학생이 디코더 107 00:03:57,659 --> 00:03:59,099 쪽도 잘 얘기를 해주셨는데 108 00:03:59,099 --> 00:04:00,959 인코더가 이렇게 되고 나면은 디코더를 109 00:04:00,959 --> 00:04:02,340 할 때는 거의 똑같은 구조를 110 00:04:02,340 --> 00:04:03,299 가져가는데 111 00:04:03,299 --> 00:04:05,060 차이가 약간 있다 그랬죠 하나는 112 00:04:05,060 --> 00:04:07,319 마스킹을 한다 그랬어요 마스킹을 113 00:04:07,319 --> 00:04:08,540 한다는 건 무슨 114 00:04:08,540 --> 00:04:10,739 의미냐면이 시퀀스의 지금까지 우리가 115 00:04:10,739 --> 00:04:13,260 만들어낸 부분들만 참조를 하고 116 00:04:13,260 --> 00:04:14,819 뒤에 있는 것들은 이제 어차피 랜덤한 117 00:04:14,819 --> 00:04:16,500 값이니까 아직 모르는 거니까 거기는 118 00:04:16,500 --> 00:04:18,779 마스킹을 해가지고 어쨌든 같은 개수가 119 00:04:18,779 --> 00:04:20,180 인풋으로 들어가야 돼요 그래서 120 00:04:20,180 --> 00:04:23,040 마스킹하는 부분이 들어가 있고 그 121 00:04:23,040 --> 00:04:25,320 다음에 이제 뒤쪽에서는 크로스로 122 00:04:25,320 --> 00:04:26,280 들어온다 그랬죠 123 00:04:26,280 --> 00:04:27,900 쿼리는 아래쪽에서 124 00:04:27,900 --> 00:04:30,060 들어왔던 인풋 그대로 나가는데이 125 00:04:30,060 --> 00:04:31,199 키랑 밸류가 126 00:04:31,199 --> 00:04:32,699 인풋에서 우리가 인코딩 됐던 것들이 127 00:04:32,699 --> 00:04:35,820 들어온다 그랬어요 왜 그런다 그랬죠 128 00:04:35,820 --> 00:04:38,340 예를 들면 영어를 불어로 번역한다 129 00:04:38,340 --> 00:04:39,300 그러면은 130 00:04:39,300 --> 00:04:41,100 다음 불어 단어가 뭐가 나올지는 원문 131 00:04:41,100 --> 00:04:42,720 영어를 참조해야지 그게 뭐가 될지 132 00:04:42,720 --> 00:04:45,060 우리가 알 수 있잖아요 그래서 133 00:04:45,060 --> 00:04:47,100 키랑 밸류는 이쪽 전체를 액세스 134 00:04:47,100 --> 00:04:48,780 해가지고 우리가 결정을 한다 이런 135 00:04:48,780 --> 00:04:49,919 식으로 하고 136 00:04:49,919 --> 00:04:51,660 rnn에서 했던 것처럼 오토리그리스도 137 00:04:51,660 --> 00:04:53,400 하게 한 단어씩 뽑아낸다 뭐 이런 138 00:04:53,400 --> 00:04:54,240 식의 이야기를 139 00:04:54,240 --> 00:04:57,360 지난 시간에 했었어요 잘해주셨고요 140 00:04:57,360 --> 00:05:01,220 그 다음에 김남기 학생 141 00:05:02,660 --> 00:05:05,400 네 여기 화면에는 없는데 우리가 이제 142 00:05:05,400 --> 00:05:07,560 이거 하고 나서 볼트라는 거를 막판에 143 00:05:07,560 --> 00:05:08,639 짧게 배웠어요 144 00:05:08,639 --> 00:05:10,620 볼트가 어떤 식으로 동작하는지 한번 145 00:05:10,620 --> 00:05:13,580 기억나는 대로 얘기해 주시겠어요 146 00:05:24,240 --> 00:05:26,660 가지고 있는데 147 00:05:26,660 --> 00:05:28,400 중간에 148 00:05:28,400 --> 00:05:31,820 마스킹 중간에 마스킹을 쓰여서 149 00:05:31,820 --> 00:05:34,740 마스킹에 대한 150 00:05:34,740 --> 00:05:36,900 인베딩을 붙인 뒤에 그걸 다시 151 00:05:36,900 --> 00:05:39,000 복원하는 식으로 학습을 하는 모델로 152 00:05:39,000 --> 00:05:42,180 알고 있습니다네 153 00:05:54,120 --> 00:05:57,120 알겠습니다 154 00:06:02,100 --> 00:06:05,180 김지웅 학생 155 00:06:07,080 --> 00:06:10,460 혹시 더 추가할 만한 이야기 있을까요 156 00:06:13,259 --> 00:06:16,259 인베딩에서 그 토큰 이메이딩이랑 157 00:06:16,259 --> 00:06:17,940 세그먼트 158 00:06:17,940 --> 00:06:20,060 웨딩이랑 포지션 인베딩을 159 00:06:20,060 --> 00:06:22,380 사용한다는 거에는 160 00:06:22,380 --> 00:06:24,500 크게 161 00:06:24,560 --> 00:06:27,720 생각나는 거 없습니다 아네 감사합니다 162 00:06:27,720 --> 00:06:29,160 인풋으로 들어가는게 세 가지가 163 00:06:29,160 --> 00:06:30,660 더해져서 들어간다 그랬죠 그 얘기 잘 164 00:06:30,660 --> 00:06:33,660 해주셨고 자 또 한 번만 더 165 00:06:33,660 --> 00:06:36,800 여쭤볼게요 신지원 학생 166 00:06:37,520 --> 00:06:41,600 네 혹시 더 추가할 얘기 있을까요 167 00:06:42,419 --> 00:06:44,100 저도 그 168 00:06:44,100 --> 00:06:47,220 단어마다 토큰이랑 169 00:06:47,220 --> 00:06:49,639 포지션을 170 00:06:50,699 --> 00:06:54,600 들어간다 그리고 어 내가 여기까지 171 00:06:54,600 --> 00:06:55,919 구조는 알고 있고 172 00:06:55,919 --> 00:06:58,080 셀프 스쿨바이스라는 장점이 있는 걸로 173 00:06:58,080 --> 00:06:59,880 알고 있습니다네 174 00:06:59,880 --> 00:07:01,740 감사합니다 제가 많이 강조를 안 했나 175 00:07:01,740 --> 00:07:03,780 보네요 역시 자 그 176 00:07:03,780 --> 00:07:04,919 인풋에 대한 거는 지금 다들 잘 177 00:07:04,919 --> 00:07:06,840 얘기해 주신 거 같아요 그 178 00:07:06,840 --> 00:07:08,639 워드토큰들 들어가고 179 00:07:08,639 --> 00:07:11,039 포지션들 포지션 인코딩 들어가고 그 180 00:07:11,039 --> 00:07:12,720 다음에 두 개의 문장이 들어간다 181 00:07:12,720 --> 00:07:15,060 그랬죠 그 두 개의 문장을 182 00:07:15,060 --> 00:07:16,620 얘는 앞에 문장 얘는 뒤에 문장인 183 00:07:16,620 --> 00:07:18,060 거를 표현해 주는 거가 하나씩 더 184 00:07:18,060 --> 00:07:20,280 더해진다고 그랬죠 자 왜 두 개의 185 00:07:20,280 --> 00:07:22,800 문장을 넣어요 우리 아까 그 186 00:07:22,800 --> 00:07:24,240 mlm에 대해서 사실 그게 더 187 00:07:24,240 --> 00:07:26,220 중요하다고 그랬죠 mlm은 남기 188 00:07:26,220 --> 00:07:27,720 학생이 잘 얘기해 주셨고 189 00:07:27,720 --> 00:07:30,120 테스크가 하나 더 있었죠 그 두 개가 190 00:07:30,120 --> 00:07:31,319 서로 인접해 있는 191 00:07:31,319 --> 00:07:32,940 센텐스냐 아니냐를 192 00:07:32,940 --> 00:07:33,960 판별하는 193 00:07:33,960 --> 00:07:35,160 로스를 하나 추가로 더 준다 그랬어요 194 00:07:35,160 --> 00:07:37,919 이거를 다들 잘 기억을 못한게 제가 195 00:07:37,919 --> 00:07:39,960 지난번에 수업할 때 이거 생각보다 196 00:07:39,960 --> 00:07:41,099 별로 중요하지 않았다라고 얘기를 해서 197 00:07:41,099 --> 00:07:42,360 그런 거 같아요 198 00:07:42,360 --> 00:07:43,979 나중에 이제 사람들이 연구해 보니까 199 00:07:43,979 --> 00:07:45,500 저거 없어도 뭐 크게 200 00:07:45,500 --> 00:07:47,520 상관없었더라라는게 나오기는 했어요 201 00:07:47,520 --> 00:07:49,340 근데 어쨌든 202 00:07:49,340 --> 00:07:51,720 그까지만 해도 이게 되게 중요하다고 203 00:07:51,720 --> 00:07:53,340 했었고 어쨌든 뭐 조금이라도 도움이 204 00:07:53,340 --> 00:07:55,080 되기는 해요 그래서 205 00:07:55,080 --> 00:07:56,880 문장과 문장 간의 관계를 배우는데 206 00:07:56,880 --> 00:07:57,900 있어서는 207 00:07:57,900 --> 00:07:59,460 요게 좀 중요하다고이 사람들은 주장을 208 00:07:59,460 --> 00:08:01,440 했고 아마이 이후에 이게 중요하지 209 00:08:01,440 --> 00:08:03,360 없어도 상관없다고 얘기하는 거는 210 00:08:03,360 --> 00:08:04,919 데이터셋이 그만큼 훨씬 커졌기 때문일 211 00:08:04,919 --> 00:08:07,080 거예요 그래서 이제 212 00:08:07,080 --> 00:08:08,340 작은 데이터셋을 살 때는 이런 것도 213 00:08:08,340 --> 00:08:09,180 좀 214 00:08:09,180 --> 00:08:11,160 고려가 되어야 한다라고 생각을 해서 215 00:08:11,160 --> 00:08:13,860 이제 나왔던 거고 그 얘기를 216 00:08:13,860 --> 00:08:15,479 혹시 한번 해주실까 해서 제가 계속 217 00:08:15,479 --> 00:08:16,800 물어봤어요 218 00:08:16,800 --> 00:08:19,680 네 그래서 지난 시간에 배웠네요 잘 219 00:08:19,680 --> 00:08:21,379 복습해 주신 거 같고 220 00:08:21,379 --> 00:08:25,020 오늘은요 트랜스포머 구조를 우리 221 00:08:25,020 --> 00:08:26,940 컴퓨터 비전이니까 이미지와 비디오에서 222 00:08:26,940 --> 00:08:29,099 어떻게 활용하고 있는지를 배워 볼 223 00:08:29,099 --> 00:08:30,240 거예요 224 00:08:30,240 --> 00:08:31,500 자 225 00:08:31,500 --> 00:08:34,380 먼저 이미지부터 한번 볼게요 226 00:08:34,380 --> 00:08:36,539 vit라고 불리는 모델인데 이제 그냥 227 00:08:36,539 --> 00:08:38,399 비전 트랜스포머의 줄임말이에요 228 00:08:38,399 --> 00:08:39,779 트랜스포머가 nlp쪽에서 하도 잘 229 00:08:39,779 --> 00:08:41,700 되니까 이거를 우리가 어떻게 한번 좀 230 00:08:41,700 --> 00:08:43,559 비전에서도 갖다 써볼까 사람들이 많은 231 00:08:43,559 --> 00:08:45,360 생각을 했었는데 232 00:08:45,360 --> 00:08:47,399 요게 나오는데 시간이 좀 걸렸어요 그 233 00:08:47,399 --> 00:08:50,040 트랜스포머 처음 나온게 한 234 00:08:50,040 --> 00:08:51,540 적어도 3년 정확히 기억이 안 나는데 235 00:08:51,540 --> 00:08:54,060 2017년 정도였던 거 같은데 3년이 236 00:08:54,060 --> 00:08:55,860 더 걸렸어요 이게 나오는데 자 237 00:08:55,860 --> 00:08:57,540 그래서이 238 00:08:57,540 --> 00:08:59,420 논문의 제목이 뭐였냐면요 239 00:08:59,420 --> 00:09:03,360 그 16발 16 이미지 패치는 하나의 240 00:09:03,360 --> 00:09:04,680 워드와 같다 뭐 이런 241 00:09:04,680 --> 00:09:06,360 식의 제목을 242 00:09:06,360 --> 00:09:07,620 달아 놨었어요 243 00:09:07,620 --> 00:09:10,980 지금 보시면은 일단이 244 00:09:10,980 --> 00:09:13,140 얘기를 해야 될 것 같아요 우리가 245 00:09:13,140 --> 00:09:14,940 트랜스포머는 인풋이 뭐가 들어간다 246 00:09:14,940 --> 00:09:16,380 그랬어요 247 00:09:16,380 --> 00:09:18,000 무조건 시퀀스가 들어간다 그랬죠 248 00:09:18,000 --> 00:09:20,700 우리가 배우고 대상을 249 00:09:20,700 --> 00:09:22,920 스플릿을 해서 그거에 어떤 서브 250 00:09:22,920 --> 00:09:24,540 컴포넌트들의 시퀀스로 들어가게 되고 251 00:09:24,540 --> 00:09:27,060 그 서브 컴포넌트들끼리 252 00:09:27,060 --> 00:09:28,680 뭔가 253 00:09:28,680 --> 00:09:30,300 서로가 서로에 대해서 표현하는 법을 254 00:09:30,300 --> 00:09:32,580 배우는게 이제이 트랜스포머의 방식이라 255 00:09:32,580 --> 00:09:34,380 그랬는데 그 256 00:09:34,380 --> 00:09:36,360 문장 같은 경우는 너무 자연스럽게 257 00:09:36,360 --> 00:09:37,800 워드들의 시퀀스로 주어지죠 애초에 258 00:09:37,800 --> 00:09:40,320 그리고 뭐 나중에 비디오 하겠지만 259 00:09:40,320 --> 00:09:42,060 비디오도 마찬가지로 프레임들의 260 00:09:42,060 --> 00:09:43,500 시퀀스로 우리가 주어지는 것을 그냥 261 00:09:43,500 --> 00:09:45,660 그대로 활용하면 될 것 같아요 262 00:09:45,660 --> 00:09:46,980 근데 이미지는 달랑 한 장 딱 263 00:09:46,980 --> 00:09:49,440 지워지잖아요 이거를 이제 어떻게 264 00:09:49,440 --> 00:09:51,360 시퀀스로 만들 것인가 아니면은 265 00:09:51,360 --> 00:09:52,920 시퀀스를 안 만들고 하나만 넣어 266 00:09:52,920 --> 00:09:54,000 가지고 어떻게 이걸 처리를 할 것인가 267 00:09:54,000 --> 00:09:57,120 때문에 이제 좀 고민이 됐던 거예요 268 00:09:57,120 --> 00:09:58,500 트랜스포머 구조가 이미지에는 적합하지 269 00:09:58,500 --> 00:10:00,000 않은 것 같다라고 사람들이 처음에 270 00:10:00,000 --> 00:10:02,220 생각을 했었던 거예요 271 00:10:02,220 --> 00:10:03,480 그래가지고 이걸 어떻게 하면 무식하게 272 00:10:03,480 --> 00:10:04,740 좀 273 00:10:04,740 --> 00:10:06,120 시퀀스로 만들어 볼까라고 해서 생각을 274 00:10:06,120 --> 00:10:09,200 한게 16번에 16패치로 그냥 쪼개자 275 00:10:09,200 --> 00:10:12,000 이미지가 크게 있으면은 16발 276 00:10:12,000 --> 00:10:13,800 16짜리 조그만 이미지 패치들이 여러 277 00:10:13,800 --> 00:10:15,540 개가 쭉 나열되어 있는 것처럼 생각을 278 00:10:15,540 --> 00:10:17,640 하면은 279 00:10:17,640 --> 00:10:20,300 16발 16짜리 조그만 패치들이 280 00:10:20,300 --> 00:10:22,380 2차원으로 나열되어 있는 어떤 이것도 281 00:10:22,380 --> 00:10:23,760 일종의 시퀀스라고 볼 수 있는 거죠 282 00:10:23,760 --> 00:10:25,740 더 작은 이미지들의 시퀀스라고 볼 수 283 00:10:25,740 --> 00:10:26,940 있는 거죠 284 00:10:26,940 --> 00:10:28,200 그렇게 그냥 무작정 한번 잘라 본 285 00:10:28,200 --> 00:10:29,580 거예요 286 00:10:29,580 --> 00:10:30,420 그래가지고 287 00:10:30,420 --> 00:10:31,800 결과적으로 트랜스포머에 넣고 이걸 288 00:10:31,800 --> 00:10:33,360 학습을 시켰더니 잘 돼서 289 00:10:33,360 --> 00:10:34,680 논문을 이제 그렇게 쓴 거죠 16발 290 00:10:34,680 --> 00:10:37,740 16 이미지 패치가 마치 문장으로 291 00:10:37,740 --> 00:10:39,779 치면 하나의 단어가 그 문장의 292 00:10:39,779 --> 00:10:40,500 여러가지 293 00:10:40,500 --> 00:10:42,480 문장에 담고 있는 그 294 00:10:42,480 --> 00:10:44,820 복잡한 의미를 295 00:10:44,820 --> 00:10:46,079 단어 하나하나 갖고 단위를 가지고 296 00:10:46,079 --> 00:10:47,220 있는 거잖아요 297 00:10:47,220 --> 00:10:49,320 얘도 마찬가지로 이미지가 표현하고자 298 00:10:49,320 --> 00:10:51,540 하는 전체의 그 의미의 아주 일부분을 299 00:10:51,540 --> 00:10:54,240 저 정도 크기에 조금은 패치들이 마치 300 00:10:54,240 --> 00:10:56,160 단어처럼 구성요소를 가지고 있는 것 301 00:10:56,160 --> 00:10:58,760 같다 뭐 이런 식의 의미를 가지고 302 00:10:58,760 --> 00:11:03,120 저렇게 제목을 썼었어요 보시면은 이제 303 00:11:03,120 --> 00:11:04,500 시퀀스 오브 리니어 인베링스가 304 00:11:04,500 --> 00:11:06,120 들어가게 되는데요 이미지 패치가 305 00:11:06,120 --> 00:11:07,920 나오게 되면요 자세한 얘기는 좀 306 00:11:07,920 --> 00:11:09,720 이따가 할 건데 이미지 패치들이 307 00:11:09,720 --> 00:11:11,220 하나하나가 각각 308 00:11:11,220 --> 00:11:14,100 토큰들이 되는 거예요 그 워드 토큰 309 00:11:14,100 --> 00:11:15,839 텍스트의 경우에 워드 토큰처럼 310 00:11:15,839 --> 00:11:18,540 얘도 하나하나에 토큰들이 돼 가지고 311 00:11:18,540 --> 00:11:19,800 트랜스포머 인코더에도 들어가게 되고 312 00:11:19,800 --> 00:11:21,959 우리 지난 시간에 CLS 토큰 배웠던 313 00:11:21,959 --> 00:11:23,579 것처럼 그거 붙여 가지고 거기 314 00:11:23,579 --> 00:11:26,940 위에다가 하는 건 똑같이 할 거예요 315 00:11:26,940 --> 00:11:28,980 그렇죠 지금 일단 배우는 그렇게 316 00:11:28,980 --> 00:11:30,899 돌아가요요 그림도 우리 지난 시간에 317 00:11:30,899 --> 00:11:32,940 배웠던 그 트랜스포머 구조 그림이 318 00:11:32,940 --> 00:11:35,160 있었죠 이거랑 굉장히 비슷하게 생겼죠 319 00:11:35,160 --> 00:11:35,880 왼쪽 320 00:11:35,880 --> 00:11:37,920 인코더랑 거의 똑같이 생겼어요 321 00:11:37,920 --> 00:11:39,740 실제로 똑같아요 322 00:11:39,740 --> 00:11:41,519 자 그래서 323 00:11:41,519 --> 00:11:43,560 vit가 어떻게 동작하는지 한번 제가 324 00:11:43,560 --> 00:11:45,480 애니메이션을 만들어 봤는데 한번 325 00:11:45,480 --> 00:11:46,860 볼게요 326 00:11:46,860 --> 00:11:49,980 자 이미지가 이렇게 인풋이 들어와요 327 00:11:49,980 --> 00:11:51,060 얘를 328 00:11:51,060 --> 00:11:53,640 16번 16으로 쪼갠다고 했는데 꼭 329 00:11:53,640 --> 00:11:55,440 16이어야 되는 건 아니고 330 00:11:55,440 --> 00:11:57,120 p바이 p로 쪼개게 돼요 그래서 이제 331 00:11:57,120 --> 00:11:59,720 하나하나의 크기가 p 곱하기 p고 332 00:11:59,720 --> 00:12:01,800 전체의 크기가 이제 그걸 맞춰서 333 00:12:01,800 --> 00:12:03,959 이렇게 나눠지겠죠 여기는 이제 아홉 334 00:12:03,959 --> 00:12:05,339 개로 나눠지는 것을 제가 예로 335 00:12:05,339 --> 00:12:08,160 들었는데 이렇게 나눠지고 336 00:12:08,160 --> 00:12:10,920 그러면은 우리 이미지는 인풋 이미지는 337 00:12:10,920 --> 00:12:12,779 x 원래 이제 x인데 338 00:12:12,779 --> 00:12:13,680 x 339 00:12:13,680 --> 00:12:16,800 p 1부터 9까지로 이렇게 쪼개졌다 340 00:12:16,800 --> 00:12:18,360 얘네들의 시퀀스다라고 이제 표현이 된 341 00:12:18,360 --> 00:12:19,560 거예요 342 00:12:19,560 --> 00:12:20,160 얘는 343 00:12:20,160 --> 00:12:22,440 각각은 p*p 즉 실험은 뭐 16 344 00:12:22,440 --> 00:12:24,720 14 16 32 뭐 이런 걸로 실험을 345 00:12:24,720 --> 00:12:27,720 했어요 이렇게 쪼개지게 되고 346 00:12:27,720 --> 00:12:29,880 우리 CLS 토큰 지난 시간에 배웠죠 347 00:12:29,880 --> 00:12:32,700 그 실제 있는 토큰들 말고 더미 348 00:12:32,700 --> 00:12:34,079 토큰을 하나 넣어서 349 00:12:34,079 --> 00:12:35,880 특정 하나에 바이어스가 되지 않은 350 00:12:35,880 --> 00:12:38,160 전체를 표현하는 이미지 전체를 351 00:12:38,160 --> 00:12:40,260 표현하는게 필요할 거니까 그거를 하기 352 00:12:40,260 --> 00:12:42,420 위한 더미토큰을 하나 추가로 만든 353 00:12:42,420 --> 00:12:44,399 거예요 무작위로 무작위 값으로 이렇게 354 00:12:44,399 --> 00:12:45,480 채워져 있는 355 00:12:45,480 --> 00:12:47,040 CLS 토큰 하나를 추가해서 356 00:12:47,040 --> 00:12:48,839 총 10개의 토큰이 시퀀스로 들어가게 357 00:12:48,839 --> 00:12:51,139 되는 거예요 358 00:12:51,360 --> 00:12:54,300 자 요거를 분홍색으로 표시를 했어요 359 00:12:54,300 --> 00:12:56,220 패치 베딩이라고 부르고 360 00:12:56,220 --> 00:12:57,720 얘네들을 분홍색으로 표시했는데 왜 361 00:12:57,720 --> 00:12:59,000 이게 패치 362 00:12:59,000 --> 00:13:01,860 임베딩이냐이 인풋 크기는요 363 00:13:01,860 --> 00:13:03,779 총 몇 개 수가 몇 개예요 364 00:13:03,779 --> 00:13:05,459 값이 365 00:13:05,459 --> 00:13:07,500 p 곱하기 p고 366 00:13:07,500 --> 00:13:09,540 쓰리 채널이죠 rgb니까 367 00:13:09,540 --> 00:13:11,399 얘네의 크기는 p^2 곱하기 C 368 00:13:11,399 --> 00:13:13,380 차원이에요 인풋은 369 00:13:13,380 --> 00:13:15,180 그렇죠 이거를 370 00:13:15,180 --> 00:13:17,100 어떤 d1차원짜리 벡터로 371 00:13:17,100 --> 00:13:19,800 리니엄 맵핑을 시켜줘요 아주 단순하게 372 00:13:19,800 --> 00:13:22,079 그냥 리니어 매핑만 시켜주는 거예요 373 00:13:22,079 --> 00:13:24,060 리니어 맵핑이라는 거는 우리 앞에서 374 00:13:24,060 --> 00:13:25,980 리니어 클래스바를 배웠을 때 이거 375 00:13:25,980 --> 00:13:27,360 크기 곱하기 이거 크기에서 그냥 376 00:13:27,360 --> 00:13:28,760 리뉴얼하게 맵핑 시켜 주는 거예요 377 00:13:28,760 --> 00:13:31,500 아주 단순한 형태의 어떤 인베딩이죠이 378 00:13:31,500 --> 00:13:33,660 패치의 내용을 포함시키고 있는 379 00:13:33,660 --> 00:13:35,220 그렇게 해서 뭐 우리가 이제 원하는 380 00:13:35,220 --> 00:13:36,839 숫자의 크기의 벡터로 만들어 준 381 00:13:36,839 --> 00:13:38,160 거예요 382 00:13:38,160 --> 00:13:39,720 p^2 c가 이제 1024로 이제 383 00:13:39,720 --> 00:13:42,660 줄어들게 되고 그 다음에 384 00:13:42,660 --> 00:13:44,220 포지셔널 인코딩이 필요했었죠 385 00:13:44,220 --> 00:13:47,220 트랜스포머는 여기서는 이제 그래서 386 00:13:47,220 --> 00:13:49,339 포지셔널 인코딩이 0번까지 들어가는데 387 00:13:49,339 --> 00:13:51,480 자 우리 지난 시간에 배웠던 거 다시 388 00:13:51,480 --> 00:13:52,920 한번 떠올려 보면 389 00:13:52,920 --> 00:13:55,880 포지션 인코딩 왜 필요해요 390 00:13:56,100 --> 00:13:57,420 얘는 391 00:13:57,420 --> 00:13:59,519 자기 자신을 기준으로 다른 애들과의 392 00:13:59,519 --> 00:14:01,260 세밀러리티를 계산해서 자기를 트랜스폼 393 00:14:01,260 --> 00:14:02,940 시키는 모델이죠 394 00:14:02,940 --> 00:14:05,519 그러니까 내가 주인공이고 다른 애들이 395 00:14:05,519 --> 00:14:07,139 어디에 있었는지는 순서가 상관이 396 00:14:07,139 --> 00:14:09,120 없어요 그 로직만 따지면 397 00:14:09,120 --> 00:14:10,500 근데 398 00:14:10,500 --> 00:14:12,779 얘네들의 순서가 문장 같은 경우에 399 00:14:12,779 --> 00:14:14,339 단어가 어떤 순서로 나열되어 있냐에 400 00:14:14,339 --> 00:14:16,139 따라 의미가 달라지니까 401 00:14:16,139 --> 00:14:17,579 순서를 어떤 식으로든 인코딩을 해줘야 402 00:14:17,579 --> 00:14:20,160 돼서 저게 있었던 거죠 여기도 403 00:14:20,160 --> 00:14:22,019 마찬가지예요이 404 00:14:22,019 --> 00:14:24,300 9장의 이미지 패치가 이렇게 일정한 405 00:14:24,300 --> 00:14:25,980 순서로 되어 있는 거랑 406 00:14:25,980 --> 00:14:27,180 막 순서가 섞여 있는 거랑 그 407 00:14:27,180 --> 00:14:28,980 이미지가 전달하는 내용이 완전히 408 00:14:28,980 --> 00:14:30,959 달라지죠 그래서 409 00:14:30,959 --> 00:14:32,579 얘네들이 어디에서 왔는지를 좀 보존할 410 00:14:32,579 --> 00:14:34,860 수 있어야 될 것 같죠 그래서 얘도 411 00:14:34,860 --> 00:14:36,240 포지셔널 인코딩이 필요하다는 생각을 412 00:14:36,240 --> 00:14:37,800 할 수 있을 거예요 413 00:14:37,800 --> 00:14:39,839 그럼 이제 어떻게 할 것이냐 414 00:14:39,839 --> 00:14:41,100 문장 같은 경우에 우리 지난 시간에 415 00:14:41,100 --> 00:14:43,019 이상하게 생긴 함수를 봤었죠 사인 416 00:14:43,019 --> 00:14:44,639 코사인 뒤에 뭐 만군의 뭐 해가지고 417 00:14:44,639 --> 00:14:46,920 너는 뭐 이런 거 했었잖아요 그런 418 00:14:46,920 --> 00:14:48,360 식으로 해주는 이유가 419 00:14:48,360 --> 00:14:50,579 nlp 같은 경우에는 그 제가 420 00:14:50,579 --> 00:14:52,860 얘기했었죠 문장에서 뭐 그 상대적인 421 00:14:52,860 --> 00:14:55,800 순서가 중요하고 그 바로 그 인접해 422 00:14:55,800 --> 00:14:57,120 있는 애들끼리는 비슷해야 되고 뭐 423 00:14:57,120 --> 00:15:00,600 이런 거를 얘기를 했었어요 여기서는 424 00:15:00,600 --> 00:15:02,660 절대적인 위치가 2차원이 되죠 425 00:15:02,660 --> 00:15:05,699 1에 있는 거랑 1에 있는 거랑 2에 426 00:15:05,699 --> 00:15:07,920 있는 거랑 이것들이 2차원상의 어느 427 00:15:07,920 --> 00:15:09,839 공간에 있는지에 대한 어떤 임베딩을 428 00:15:09,839 --> 00:15:11,579 얘가 배워야 되는데 429 00:15:11,579 --> 00:15:13,380 여기서는 이제 그런 430 00:15:13,380 --> 00:15:14,760 식을 쓰지 않았어요 431 00:15:14,760 --> 00:15:17,279 nlp처럼 디터미니스트가게 하지 않고 432 00:15:17,279 --> 00:15:20,459 얘를 그냥 1024차원짜리 433 00:15:20,459 --> 00:15:22,620 무적이 벡터로 만들어 놓고 그냥 434 00:15:22,620 --> 00:15:24,079 데이터로부터 배워라라고 시켜 버려요 435 00:15:24,079 --> 00:15:27,660 아무것도 안 해요 왜 1024냐이 436 00:15:27,660 --> 00:15:28,279 d가 437 00:15:28,279 --> 00:15:30,000 1024니까이 분홍색이랑 크기가 438 00:15:30,000 --> 00:15:32,040 같아야 서로 더 할 수 있잖아요 439 00:15:32,040 --> 00:15:34,139 이 분홍색의 크기는 우리가 그냥 정한 440 00:15:34,139 --> 00:15:35,279 거예요 441 00:15:35,279 --> 00:15:36,779 원래 들어오는 인풋의 크기는 p^2 442 00:15:36,779 --> 00:15:38,639 곱하기 c고요 443 00:15:38,639 --> 00:15:39,899 임베딩의 크기는 우리 맘대로 정할 수 444 00:15:39,899 --> 00:15:41,699 있어요 d라고 그럼 여기서는 445 00:15:41,699 --> 00:15:43,019 마찬가지로 446 00:15:43,019 --> 00:15:45,000 n+1 들어온 거의 개수가 지금 447 00:15:45,000 --> 00:15:46,980 n+1개의 토큰이고 448 00:15:46,980 --> 00:15:48,720 얘네들을 이제 d로 보내주는 어떤 449 00:15:48,720 --> 00:15:52,560 포지션을 해주는 그 450 00:15:52,560 --> 00:15:54,600 뭐냐 인베릭 레이어만 있으면 되는 451 00:15:54,600 --> 00:15:56,459 거예요 452 00:15:56,459 --> 00:15:57,600 그렇죠 이거는 453 00:15:57,600 --> 00:15:58,440 데이터로부터 배우는 거기 때문에 454 00:15:58,440 --> 00:16:00,720 우리가 아무것도 하지 않고 1024 455 00:16:00,720 --> 00:16:01,800 차원짜리 456 00:16:01,800 --> 00:16:03,060 벡터로 그냥 만들어 주고 더하기만 한 457 00:16:03,060 --> 00:16:04,440 거예요 458 00:16:04,440 --> 00:16:05,940 그러면 얘가 이제 학습하면서 알아서 459 00:16:05,940 --> 00:16:07,740 저 위치에 있다면 어떤 식으로 460 00:16:07,740 --> 00:16:09,019 표현되어야 된다는 걸 배우는 거죠 461 00:16:09,019 --> 00:16:10,860 배우기 되게 기대하는 거예요 진짜 462 00:16:10,860 --> 00:16:13,440 배워지는지는 이따가 볼게요 463 00:16:13,440 --> 00:16:14,940 자 고점이 차이고요 그래서 여기 464 00:16:14,940 --> 00:16:18,540 지금식이 써 있는데 그 465 00:16:18,540 --> 00:16:20,699 z로는 뭐가 되냐면요 466 00:16:20,699 --> 00:16:21,300 x 467 00:16:21,300 --> 00:16:24,420 클래스 요거는 이제 클래스예요 그 468 00:16:24,420 --> 00:16:25,160 다음에 469 00:16:25,160 --> 00:16:28,620 xp1부터 xpn까지는 얘네들은요 470 00:16:28,620 --> 00:16:30,959 인베딩을 다 붙여 가지고 471 00:16:30,959 --> 00:16:31,860 곱해주면 472 00:16:31,860 --> 00:16:34,019 얘네들이 지금 다 1023차원짜리 473 00:16:34,019 --> 00:16:35,820 벡터로 이렇게 만들어지는 거죠 474 00:16:35,820 --> 00:16:37,380 그게 지금요 부분을 얘기한 거예요 475 00:16:37,380 --> 00:16:40,259 2를 곱한 거 그리고이 476 00:16:40,259 --> 00:16:42,779 포지션을 더하는게요 부분이죠 477 00:16:42,779 --> 00:16:45,000 포지션 인코딩 더해지면 2의 크기는 478 00:16:45,000 --> 00:16:46,920 어떻게 되겠어요 479 00:16:46,920 --> 00:16:49,019 p^2 * c를 d로 보내는 리니어 480 00:16:49,019 --> 00:16:50,519 맵핑이니까 그 두 개의 크기 곱한 481 00:16:50,519 --> 00:16:51,959 것만큼 되겠고 482 00:16:51,959 --> 00:16:53,759 포지셔널 인코딩은요 483 00:16:53,759 --> 00:16:56,160 포지션이 총 n+1개가 있고 484 00:16:56,160 --> 00:16:59,220 각이 그 d차원 벡터가 돼야 되니까 485 00:16:59,220 --> 00:17:02,160 n+1 곱하기 d가 되겠죠 486 00:17:02,160 --> 00:17:04,140 식 이해되시죠 487 00:17:04,140 --> 00:17:08,640 네 그래서 이렇게 만들어지면은 우리가 488 00:17:08,640 --> 00:17:09,959 이제 트랜스포머 인코드가 그냥 489 00:17:09,959 --> 00:17:14,099 들어가는 거예요요 밑에까지만 비주얼 490 00:17:14,099 --> 00:17:15,480 인풋이라서 뭔가 특별한게 있었던 491 00:17:15,480 --> 00:17:17,220 거예요 여기서부터는 그냥 완전히 492 00:17:17,220 --> 00:17:19,559 똑같아요 여기서부터는 우리 트랜스포머 493 00:17:19,559 --> 00:17:22,199 인코더가 받아들인 인풋이 뭐예요 494 00:17:22,199 --> 00:17:23,339 시퀀스 오브 토큰 인베딩이죠 그냥 495 00:17:23,339 --> 00:17:26,640 그게 원래 워드였던 비주얼 인풋이었던 496 00:17:26,640 --> 00:17:29,040 상관없이 그냥 여기서부터 똑같이 돌릴 497 00:17:29,040 --> 00:17:30,179 수 있는 거예요 498 00:17:30,179 --> 00:17:33,540 그래서 이게 이제 아까 제가 붙었던 499 00:17:33,540 --> 00:17:35,880 그림인데 그 우리 알고 있는 그림이죠 500 00:17:35,880 --> 00:17:37,440 얘를 가지고 멀티 헤드 어텐션 한 501 00:17:37,440 --> 00:17:39,240 다음에 그 502 00:17:39,240 --> 00:17:41,520 mlp를 붙여주는 그리고 거기에 503 00:17:41,520 --> 00:17:43,799 커넥션이 있고 이거를 앨범 반복하고 504 00:17:43,799 --> 00:17:46,140 지난 시간에 배웠던 그대로죠 위에는 505 00:17:46,140 --> 00:17:48,419 똑같아요 이렇게 하고 얘를 이제 506 00:17:48,419 --> 00:17:50,760 여러번 반복하고 나면은 여기 507 00:17:50,760 --> 00:17:52,320 식선하는데 508 00:17:52,320 --> 00:17:53,880 레이어논 한 다음에 이게 아주 509 00:17:53,880 --> 00:17:55,320 세부적인 부분은 조금 다를 수도 510 00:17:55,320 --> 00:17:57,539 있어요 근데 그거는이 사람들이 여러 511 00:17:57,539 --> 00:17:58,860 가지를 실험해 보다가 이렇게 하는게 512 00:17:58,860 --> 00:18:00,480 조금 더 낫다 해서 바꾼 건데 513 00:18:00,480 --> 00:18:02,039 큰 의미는 없어요 그래서 514 00:18:02,039 --> 00:18:03,299 본질적인 차이는 거의 없을 거예요 515 00:18:03,299 --> 00:18:05,160 이렇게 해서 516 00:18:05,160 --> 00:18:07,020 멀티 헤드 셀프테이션 돌고 517 00:18:07,020 --> 00:18:08,400 mlp 한번 돌고 이거를 여러 번 518 00:18:08,400 --> 00:18:10,620 반복하고 여기 지금 519 00:18:10,620 --> 00:18:11,760 l이 붙어 있는데 520 00:18:11,760 --> 00:18:13,860 l이요 라지 l에 대한 인덱스에요 521 00:18:13,860 --> 00:18:16,500 그래서 지금 제가 맨 처음에 제로라고 522 00:18:16,500 --> 00:18:18,360 했는데 이게 523 00:18:18,360 --> 00:18:19,799 트랜스포머 인코더로 아직 한 번도 524 00:18:19,799 --> 00:18:21,900 통과하지 않은 인풋이란 뜻이고요 525 00:18:21,900 --> 00:18:23,160 얘를 526 00:18:23,160 --> 00:18:26,299 요거 요거 통과하고 나면은 527 00:18:29,039 --> 00:18:30,840 처리하고 거기다 열고 들어가서 제 528 00:18:30,840 --> 00:18:32,340 1이 나오겠죠 529 00:18:32,340 --> 00:18:33,660 쭉 돌고 나면 530 00:18:33,660 --> 00:18:35,460 C 라지 l이 나오겠죠 531 00:18:35,460 --> 00:18:37,799 이게 로테이션이 잘 논문에 있는 532 00:18:37,799 --> 00:18:39,600 로테이션을 따라가서 그런데 533 00:18:39,600 --> 00:18:42,660 지난 시간 수업에서는 이거를 그 534 00:18:42,660 --> 00:18:44,700 슈퍼스크립트를 썼었어요 괄호하고 535 00:18:44,700 --> 00:18:46,080 l이라고 썼었어요 536 00:18:46,080 --> 00:18:48,360 기억나세요 그게 아마 지난 시간 강의 537 00:18:48,360 --> 00:18:49,919 노트랑 이게 좀 달라 가지고 538 00:18:49,919 --> 00:18:52,380 혼동될 수 있는데이 l이 레이어의 539 00:18:52,380 --> 00:18:53,820 개수예요 540 00:18:53,820 --> 00:18:54,539 어디까지 541 00:18:54,539 --> 00:18:56,160 엘개를 통과해서 나온 인베딩이란 542 00:18:56,160 --> 00:18:57,299 뜻이에요 543 00:18:57,299 --> 00:19:00,600 그렇게 해서 앨범 다 돌고 나오면요이 544 00:19:00,600 --> 00:19:01,380 클래스 545 00:19:01,380 --> 00:19:03,419 토큰에 들어가서 나와 있는 얘가 가장 546 00:19:03,419 --> 00:19:06,179 바이어스가 안 돼 있는 전체 이미지를 547 00:19:06,179 --> 00:19:07,440 균등하게 잘 548 00:19:07,440 --> 00:19:09,179 결합하고 있는게 되겠죠 549 00:19:09,179 --> 00:19:11,760 요거 위에다가 mlp 쌓아가지고 550 00:19:11,760 --> 00:19:13,440 프레스파이어 달아주면 얘가 이제 어떤 551 00:19:13,440 --> 00:19:15,059 클래스에 해당되는지를 예측하게 할 수 552 00:19:15,059 --> 00:19:16,620 있죠 553 00:19:16,620 --> 00:19:17,520 그러면은 554 00:19:17,520 --> 00:19:19,320 로스는 어디서 발생해요 555 00:19:19,320 --> 00:19:21,960 로스는 여기서 발생하겠죠이 예측이 556 00:19:21,960 --> 00:19:23,820 틀린 거에서 발생하겠죠 그럼 이거 557 00:19:23,820 --> 00:19:26,100 다시 쭉 타고 내려와서 전체를 558 00:19:26,100 --> 00:19:27,720 백프로포션 해가지고 싹트게이밍을 559 00:19:27,720 --> 00:19:29,780 해주는 거예요 560 00:19:29,780 --> 00:19:32,700 다시 한번 얘기하면이 윗부분은 지난 561 00:19:32,700 --> 00:19:33,919 시간에 배운 거랑 완전히 똑같아요 562 00:19:33,919 --> 00:19:37,980 거의 차이가 없어요 뭐가 달라졌냐면 563 00:19:37,980 --> 00:19:39,299 얘는 어쨌든 564 00:19:39,299 --> 00:19:40,620 시퀀스 오브 565 00:19:40,620 --> 00:19:42,179 토큰이 들어와야 돼요 566 00:19:42,179 --> 00:19:43,799 토큰 인베딩이 들어와야 돼요 567 00:19:43,799 --> 00:19:44,700 그러면은 568 00:19:44,700 --> 00:19:45,720 각각의 토큰이 무엇이 되어야 될 569 00:19:45,720 --> 00:19:47,640 것이냐 이미지는 570 00:19:47,640 --> 00:19:49,440 pvip로 쪼개는 조그만 이미지 571 00:19:49,440 --> 00:19:51,419 패치들이 그 워드 역할을 해서 572 00:19:51,419 --> 00:19:52,919 컴포넌트 역할을 해서 573 00:19:52,919 --> 00:19:55,020 걔네들이 들어가야 된다 그러면은 그걸 574 00:19:55,020 --> 00:19:55,980 이제 575 00:19:55,980 --> 00:19:57,480 인베닝으로 만들어야 되잖아요 픽셀 576 00:19:57,480 --> 00:19:58,919 레벨에서 그냥 넣을 거 아니니까 그럼 577 00:19:58,919 --> 00:20:01,440 너무 크죠 그래서이 578 00:20:01,440 --> 00:20:02,640 D 차원짜리 인베딩으로 만들어 줄 579 00:20:02,640 --> 00:20:04,980 건데 그거 어떻게 만들 거냐 그냥 580 00:20:04,980 --> 00:20:06,780 리니어 맵핑 시켜준 거예요 그냥 581 00:20:06,780 --> 00:20:08,520 매트릭스나 곱해가지고 582 00:20:08,520 --> 00:20:09,840 그러면이 매트릭스는 모든 애들한테 583 00:20:09,840 --> 00:20:12,480 공통적으로 적용이 되니까이 픽셀 584 00:20:12,480 --> 00:20:14,940 레벨에 있는 표현을요 인베딩으로 585 00:20:14,940 --> 00:20:16,860 표현하는 일반적인 방법을 배우겠죠 586 00:20:16,860 --> 00:20:18,000 저게 587 00:20:18,000 --> 00:20:20,220 그거의 내용을 가장 잘 담고 588 00:20:20,220 --> 00:20:23,039 뒷차원으로 보낼 수 있는 방법을 배워 589 00:20:23,039 --> 00:20:25,080 놓겠죠 590 00:20:25,080 --> 00:20:25,760 됐나요 591 00:20:25,760 --> 00:20:29,539 대충 어떻게 돌아가는지 아시겠어요 592 00:20:29,760 --> 00:20:31,280 요게 이제 가장 핵심이 되는 593 00:20:31,280 --> 00:20:33,600 아이디어였고 이것들의 이제 변형들이 594 00:20:33,600 --> 00:20:36,419 오늘 계속해서 나올 거예요 595 00:20:36,419 --> 00:20:38,340 자 그래서이 vit는 596 00:20:38,340 --> 00:20:42,360 실험을 돌렸어요이 그 이게 나오기 597 00:20:42,360 --> 00:20:43,200 전까지 598 00:20:43,200 --> 00:20:45,059 CNN 중에 가장 잘 됐던게 뭐 599 00:20:45,059 --> 00:20:45,900 레지넷인데 600 00:20:45,900 --> 00:20:47,760 레지넷 중에 제일 큰 거 152 얘랑 601 00:20:47,760 --> 00:20:51,360 이제 비교를 했는데 그 602 00:20:51,720 --> 00:20:53,640 결과를 보시면은 뭐 정확도가 잘 603 00:20:53,640 --> 00:20:55,860 나온다 지금이 모든 데이터셋들에서 604 00:20:55,860 --> 00:20:57,780 기존에 있던 그 605 00:20:57,780 --> 00:20:58,980 데이터셋들을 이거를 606 00:20:58,980 --> 00:21:00,720 얘가 이제 그 607 00:21:00,720 --> 00:21:02,880 레지넷으로 만든 기존 건데 그거보다 608 00:21:02,880 --> 00:21:04,980 정확도가 더 잘 나온다 좋아요 성능 609 00:21:04,980 --> 00:21:06,020 좋아진 건 610 00:21:06,020 --> 00:21:08,820 좋은데요 부분을 한번 보세요 611 00:21:08,820 --> 00:21:10,380 tpu v3 코어 데이즈 이게 무슨 612 00:21:10,380 --> 00:21:11,340 말이냐면 613 00:21:11,340 --> 00:21:14,160 tpu라는 말 혹시 들어보셨나요 614 00:21:14,160 --> 00:21:15,720 gpu는 많이 쓰죠 우리 615 00:21:15,720 --> 00:21:17,039 tpu는 616 00:21:17,039 --> 00:21:19,860 텐서 프로세싱 유닛이라고 그이 진짜 617 00:21:19,860 --> 00:21:21,240 딥러닝 연산을 하기 위해서 구글에서 618 00:21:21,240 --> 00:21:23,640 만든 하드웨어에요 619 00:21:23,640 --> 00:21:25,860 gpu를 훨씬 더이 620 00:21:25,860 --> 00:21:28,080 gpu는 원래 그래픽 카드잖아요 621 00:21:28,080 --> 00:21:29,760 그래픽을 표현하기 위한 거를 우리가 622 00:21:29,760 --> 00:21:31,679 연산에 쓰는 건데 이건 진짜이 623 00:21:31,679 --> 00:21:32,880 연산만을 위해서 만든 특수한 624 00:21:32,880 --> 00:21:34,799 하드웨어에요 그래서 625 00:21:34,799 --> 00:21:38,159 굉장히 비싸고 이거를 팔진 않아요 626 00:21:38,159 --> 00:21:39,539 구글에서만 갖고 있고 627 00:21:39,539 --> 00:21:41,340 구글 클라우드라는 서비스를 628 00:21:41,340 --> 00:21:43,200 돈을 내고 사용할 수 있어요 그 629 00:21:43,200 --> 00:21:44,940 aws랑 비슷하게 630 00:21:44,940 --> 00:21:45,720 근데 631 00:21:45,720 --> 00:21:48,720 이거를 지금 보니까 이거 이제 버전 632 00:21:48,720 --> 00:21:50,000 3를 633 00:21:50,000 --> 00:21:52,039 2500시간을 써야 돼요 634 00:21:52,039 --> 00:21:54,120 2501을 써야 돼요 635 00:21:54,120 --> 00:21:56,039 그러니까 이게 8개를 쓰면 300일 636 00:21:56,039 --> 00:21:58,200 정도로 돌려야 되는 거예요 자 이거를 637 00:21:58,200 --> 00:22:00,620 우리가 돈을 내고 하면 얼마가 638 00:22:00,620 --> 00:22:03,480 되느냐이 이게 좀 오래된 거긴 하지만 639 00:22:03,480 --> 00:22:05,220 여기 들어가 보면 1시간에 8불 내야 640 00:22:05,220 --> 00:22:07,980 된다고 써 있어요 하나 쓰는데 641 00:22:07,980 --> 00:22:09,000 그러면은 642 00:22:09,000 --> 00:22:10,919 8불곱하기 24시간 곱하기 2500 643 00:22:10,919 --> 00:22:12,299 하면은이 모델 하나 트레이닝 하는데 644 00:22:12,299 --> 00:22:14,280 들어가는 돈이 우리 돈으로 한 645 00:22:14,280 --> 00:22:16,200 5억에서 6억 정도 되는 거예요 646 00:22:16,200 --> 00:22:18,200 이 모델 한 번 쫙 트레이닝 하는데 647 00:22:18,200 --> 00:22:20,280 여러분들 그 과제 해보시면 알겠지만 648 00:22:20,280 --> 00:22:21,659 모델을 한 번만 트레이닝 하면 되는게 649 00:22:21,659 --> 00:22:23,760 아니죠 하프파라미터 튜닝도 해야 되고 650 00:22:23,760 --> 00:22:25,620 모델 크기도 다르게 해보고 데이터도 651 00:22:25,620 --> 00:22:27,780 이것저것 해보고이 표 채우는데만 해도 652 00:22:27,780 --> 00:22:30,419 지금 뭐 수십번 했겠죠 어마어마한 653 00:22:30,419 --> 00:22:32,159 돈을 태우는 모델이에요 654 00:22:32,159 --> 00:22:34,140 이게 뭐 655 00:22:34,140 --> 00:22:35,460 구글이 가진 거니까 공짜일 수도 656 00:22:35,460 --> 00:22:37,380 있지만 사실 거기 들어가는 전기값과 657 00:22:37,380 --> 00:22:40,140 뭐 그 시설 임대료 이런 것들을 다 658 00:22:40,140 --> 00:22:41,940 내야 된다고 생각하면은 아무리 659 00:22:41,940 --> 00:22:43,500 구글이라도 이게 무시할 만한 돈은 660 00:22:43,500 --> 00:22:44,700 아닌 거고 661 00:22:44,700 --> 00:22:45,659 다른 회사들이 이걸 하는 거 다 662 00:22:45,659 --> 00:22:47,280 마찬가지예요이 663 00:22:47,280 --> 00:22:48,900 딥러닝이 굉장히 664 00:22:48,900 --> 00:22:50,580 어떻게 보면 좀 비판하는 이유 중에 665 00:22:50,580 --> 00:22:53,159 하나가 되게 쉽고 인간에게는 되게 666 00:22:53,159 --> 00:22:55,140 자명한 태스크를 컴퓨터한테 억지로 667 00:22:55,140 --> 00:22:56,100 시키면서 668 00:22:56,100 --> 00:22:58,080 엄청난 양의 전기와 그 에너지를 쓰고 669 00:22:58,080 --> 00:23:00,360 있는거다 뭐 탄소를 엄청나게 배출해 670 00:23:00,360 --> 00:23:02,039 가면서 이런 얘기가 나오는게 바로 671 00:23:02,039 --> 00:23:03,480 이런 것 때문이에요 672 00:23:03,480 --> 00:23:04,500 라지 모델들이 673 00:23:04,500 --> 00:23:07,400 뒤에 이런 불편한 진실이 있어요 674 00:23:07,400 --> 00:23:08,960 자 675 00:23:08,960 --> 00:23:10,919 그러면이 모델 이런 걸 이제 왜 676 00:23:10,919 --> 00:23:12,780 했느냐 보시면 677 00:23:12,780 --> 00:23:15,240 vit가 이게이 논문이 처음 나왔을 678 00:23:15,240 --> 00:23:17,760 때만 해도 그렇게 완벽하지 않았어요 679 00:23:17,760 --> 00:23:20,340 얘가 언제만 잘 되냐면 아주 큰 680 00:23:20,340 --> 00:23:21,840 데이터셋의 트레이닝을 했을 때만 잘 681 00:23:21,840 --> 00:23:25,200 된다는 거예요 여기 그림 보시면은요 682 00:23:25,200 --> 00:23:26,659 동그라미들이 다 이제 vit고 683 00:23:26,659 --> 00:23:29,600 네모나게 되어 있는게 베이스라인인데 684 00:23:29,600 --> 00:23:31,700 이미지넷은 원밀리언 비디오에요 685 00:23:31,700 --> 00:23:34,500 이미지에요 이미지가 100만 개 있는 686 00:23:34,500 --> 00:23:37,200 데이터 쓰시고 이거는 그거에 21배 687 00:23:37,200 --> 00:23:38,360 커진 거죠 688 00:23:38,360 --> 00:23:40,380 21배 아니죠 이게 689 00:23:40,380 --> 00:23:43,200 클래스 개수가 1k에서 21k로 커진 690 00:23:43,200 --> 00:23:44,820 거고 이미지 개수는 정확히 몇 개 691 00:23:44,820 --> 00:23:47,400 늘었는지 모르겠어요 그리고 jft가 692 00:23:47,400 --> 00:23:48,840 300m이라는 개수에서 보듯이 693 00:23:48,840 --> 00:23:51,419 이거보다 30배가 큰 300배가 큰 694 00:23:51,419 --> 00:23:52,679 데이터셋이죠 695 00:23:52,679 --> 00:23:54,600 여기다 트레이닝을 했을 때만 겨우 696 00:23:54,600 --> 00:23:57,120 이겼어요 베이스라인들을 여기서는 지금 697 00:23:57,120 --> 00:23:59,159 택도 없이 쥐고 있어요 다 698 00:23:59,159 --> 00:24:01,620 그러니까 이렇게 어마어마하게 큰 699 00:24:01,620 --> 00:24:03,720 데이터셋에다 트레이닝을 해야만 700 00:24:03,720 --> 00:24:04,860 기존에 있던 cnn을 이길 수 있는 701 00:24:04,860 --> 00:24:08,100 거예요 왜 그럴까이 모델이 702 00:24:08,100 --> 00:24:09,360 cnn보다 그래서 좋다는 거냐 703 00:24:09,360 --> 00:24:11,760 나쁘다는 거냐라는 거에 대한 어떤 704 00:24:11,760 --> 00:24:14,820 결론을 내야 되겠죠 자 왜 차이가 705 00:24:14,820 --> 00:24:16,620 나느냐면요 706 00:24:16,620 --> 00:24:18,299 vit 우리가 지금 배운 트랜스포머 707 00:24:18,299 --> 00:24:19,919 모델은 708 00:24:19,919 --> 00:24:22,440 기본적으로 인덕티브 바이러스가 없어요 709 00:24:22,440 --> 00:24:24,360 인덕티브 바이러스가 뭐냐 우리 710 00:24:24,360 --> 00:24:27,780 cnn이 왜 좋다 그랬어요 수업할 때 711 00:24:27,780 --> 00:24:30,600 이것 때문이었죠 스페셜 로컬리티랑 712 00:24:30,600 --> 00:24:32,340 포지션을 인베리언스 때문에 cnn이 713 00:24:32,340 --> 00:24:36,120 동작한다고 배웠어요 이게 무슨 뜻이냐 714 00:24:36,120 --> 00:24:37,320 어떤 비주얼한 패턴을 파악하기 715 00:24:37,320 --> 00:24:38,880 위해서는 우리 주변에 있는 픽셀들만 716 00:24:38,880 --> 00:24:39,900 보는게 717 00:24:39,900 --> 00:24:41,760 cnn이었어요 그리고 그거를 718 00:24:41,760 --> 00:24:43,860 여기저기다가 똑같이 적용할 수 있는게 719 00:24:43,860 --> 00:24:45,659 우리가 기본적으로 깔고 있는 cnn의 720 00:24:45,659 --> 00:24:48,299 가정이죠 그래서 잘 동작했었다라고 721 00:24:48,299 --> 00:24:50,159 우리가 지금까지 배우고 왔어요 722 00:24:50,159 --> 00:24:52,020 근데 이후 트랜스포머 모델을 한번 잘 723 00:24:52,020 --> 00:24:54,720 생각해보세요 내가 어떤 패치예요 어떤 724 00:24:54,720 --> 00:24:56,880 주인공이에요 여기서 하는 일이 뭐예요 725 00:24:56,880 --> 00:24:59,640 나를 표현하기 위해서 이미지 안에 726 00:24:59,640 --> 00:25:01,380 있는 다른 모든 이미지 패치들과 727 00:25:01,380 --> 00:25:02,940 시뮬레이트를 계산해서 나를 728 00:25:02,940 --> 00:25:05,520 업데이트하죠 나뿐 아니라 다른 애들도 729 00:25:05,520 --> 00:25:07,919 다 똑같은 그걸 하고 있죠 730 00:25:07,919 --> 00:25:09,799 로컬리티 있어요 731 00:25:09,799 --> 00:25:12,900 없죠 전체를 다 보고 있죠 모든 732 00:25:12,900 --> 00:25:15,360 애들이 모든 토큰을 어텐션을 하니까 733 00:25:15,360 --> 00:25:17,700 그 말은 스페셜 로컬티를 활용을 안 734 00:25:17,700 --> 00:25:19,679 하고 있다는 얘기죠 전체를 다 보는 735 00:25:19,679 --> 00:25:21,720 거예요 자 그 왜 그렇게 하느냐 736 00:25:21,720 --> 00:25:23,580 가까운데만 봐도 되는데 737 00:25:23,580 --> 00:25:25,860 근데이 논문이 얘기하는게 뭐냐면 738 00:25:25,860 --> 00:25:27,240 그렇게 가까운데만 보게 안 하고 다 739 00:25:27,240 --> 00:25:28,740 보게 해도 740 00:25:28,740 --> 00:25:30,419 데이터셋이 충분히 크고 충분히 오랜 741 00:25:30,419 --> 00:25:32,039 시간 동안 충분히 큰 모델을 학습을 742 00:25:32,039 --> 00:25:33,120 시키니까 743 00:25:33,120 --> 00:25:34,919 성능이 더 잘 나오더라 해요 744 00:25:34,919 --> 00:25:36,620 성능이 더 잘 나오는게 무슨 의미냐면 745 00:25:36,620 --> 00:25:38,520 가까운데만 보호라고 746 00:25:38,520 --> 00:25:41,520 했을 때보다 더 잘한다는 거는 747 00:25:41,520 --> 00:25:43,559 얘가 그걸 깨우쳤다는 얘기에요 748 00:25:43,559 --> 00:25:45,140 진짜로 깨우쳤느냐 하고 예제를 봤더니 749 00:25:45,140 --> 00:25:47,460 자이 강아지를 맞추기 위해서 얘가 750 00:25:47,460 --> 00:25:48,539 어디에 어텐션을 하고 있는지 우리 751 00:25:48,539 --> 00:25:50,820 그때 그 스페셜 어텐션 할 수 있는 752 00:25:50,820 --> 00:25:53,039 거 배웠죠 그거를 가지고 한번 찍어 753 00:25:53,039 --> 00:25:54,900 봤더니 이게 강아지라는 걸 맞추기 754 00:25:54,900 --> 00:25:56,279 위해서 딱이 부분을 본다는 거가 755 00:25:56,279 --> 00:25:59,700 나왔어요 이런 식으로 756 00:25:59,700 --> 00:26:01,080 어떤 부분을 봐야지 우리가 저 757 00:26:01,080 --> 00:26:02,580 레이블을 맞출 수 있는지를 정말 758 00:26:02,580 --> 00:26:04,260 귀신같이 맞춰네요 759 00:26:04,260 --> 00:26:06,600 근데 이걸 하기 위해서 너이 근처를 760 00:26:06,600 --> 00:26:07,799 봐라라는 걸 우리가 가르쳐 주지 761 00:26:07,799 --> 00:26:09,299 않았어요 762 00:26:09,299 --> 00:26:10,799 그렇기 때문에 아주 비효율적인 거죠 763 00:26:10,799 --> 00:26:12,419 저거를 764 00:26:12,419 --> 00:26:14,039 정말 많은 이그제플을 보다 보니까 아 765 00:26:14,039 --> 00:26:16,440 가까운데만 보면 대부분 되는구나라는 766 00:26:16,440 --> 00:26:19,559 걸 배우는 거예요 그래서 아주 큰 767 00:26:19,559 --> 00:26:21,059 데이터셋을 학습시켰을 때만 잘 768 00:26:21,059 --> 00:26:23,820 동작한다라는게 특징이었어요 769 00:26:23,820 --> 00:26:24,539 근데 770 00:26:24,539 --> 00:26:25,080 그러면 771 00:26:25,080 --> 00:26:26,580 cnn만큼만 잘 되는게 아니라 왜 더 772 00:26:26,580 --> 00:26:28,679 잘 되느냐 773 00:26:28,679 --> 00:26:30,960 간혹 드물지만 어떤 경우에는 774 00:26:30,960 --> 00:26:32,520 근처만 보면 답이 안 나오는 경우도 775 00:26:32,520 --> 00:26:34,799 있을 수 있죠 이미지에 따라서 776 00:26:34,799 --> 00:26:36,179 멀리 있는 것들이 힌트가 되는 경우가 777 00:26:36,179 --> 00:26:37,860 있을 수 있죠 778 00:26:37,860 --> 00:26:39,720 그런 경우도 얘는 캐치할 수가 있는 779 00:26:39,720 --> 00:26:40,679 거예요 780 00:26:40,679 --> 00:26:41,820 cnn은 아예 우리가 그걸 못 보게 781 00:26:41,820 --> 00:26:43,860 하죠 딱 주변만 보게 하죠 782 00:26:43,860 --> 00:26:44,580 근데 783 00:26:44,580 --> 00:26:46,020 얘는 알아볼 수 있게 해놨기 때문에 784 00:26:46,020 --> 00:26:48,059 그게 필요하면 얘가 그걸 찾아내는 785 00:26:48,059 --> 00:26:49,200 거예요 786 00:26:49,200 --> 00:26:50,460 그래서 787 00:26:50,460 --> 00:26:52,140 정말 충분히 데이터에 학습을 시켜주면 788 00:26:52,140 --> 00:26:54,539 그 789 00:26:54,539 --> 00:26:56,279 성능이 cnn보다 더 좋아진다 그래서 790 00:26:56,279 --> 00:26:58,799 이런 인덕티브 바이러스를 우리가 주지 791 00:26:58,799 --> 00:27:00,659 않아도 얘가 어느 정도 중요하다는 걸 792 00:27:00,659 --> 00:27:03,000 배울 수 있고 그거에 예외 상황까지도 793 00:27:03,000 --> 00:27:04,500 캐치할 수가 있어서 더 잘 되는 거 794 00:27:04,500 --> 00:27:06,059 같다라는게이 795 00:27:06,059 --> 00:27:08,340 논문에서 낸 결론이었어요 796 00:27:08,340 --> 00:27:12,440 대단하죠 이런 걸 이렇게 했다는게 797 00:27:46,679 --> 00:27:49,159 이 1은요 이거 어떻게 보면 되냐면 798 00:27:49,159 --> 00:27:52,380 1에 있는요 벡터는 나머지 모든 799 00:27:52,380 --> 00:27:53,940 것과의 시뮬레이트가 이렇게 나왔다는 800 00:27:53,940 --> 00:27:56,520 거예요 1 자기 자신이 제일 높게 801 00:27:56,520 --> 00:27:57,659 나오고요 802 00:27:57,659 --> 00:28:01,620 노란색으로 그 다음에 좀 803 00:28:01,620 --> 00:28:03,720 연하게 나오고 나머지는 진하게 나오고 804 00:28:03,720 --> 00:28:05,760 뒤로 갈수록 더 짙어지죠 이게 무슨 805 00:28:05,760 --> 00:28:08,700 말이냐면 1에 있는이 자리는 806 00:28:08,700 --> 00:28:10,260 로우 1에 있는 것들이랑 컬럼 1에 807 00:28:10,260 --> 00:28:12,260 있는 것들이랑 비교적 더 쓰밀러하고 808 00:28:12,260 --> 00:28:14,880 나머지들이랑 다르게 나온다는 거예요 809 00:28:14,880 --> 00:28:16,260 다른 것들도 마찬가지예요 지금 뭐 5 810 00:28:16,260 --> 00:28:17,880 3 이런 거 보면은 811 00:28:17,880 --> 00:28:19,919 얘도 딱 자기 자리에 있는 거랑 가장 812 00:28:19,919 --> 00:28:22,740 좋고 같은 로우 같은 컬럼 813 00:28:22,740 --> 00:28:24,779 근처로 근처 컬럼 순으로 814 00:28:24,779 --> 00:28:26,760 시뮬런트가 떨어지고 아닌 걸로 갈수록 815 00:28:26,760 --> 00:28:27,840 확 떨어지고 816 00:28:27,840 --> 00:28:30,960 이게 우리가 지금이 817 00:28:30,960 --> 00:28:32,880 포지셔널 인코딩이 야 너는 2 3이야 818 00:28:32,880 --> 00:28:35,360 이런 거를 가르쳐 주지 않고 그냥 819 00:28:35,360 --> 00:28:38,880 아무렇게나 만들어 놓고 배워 이랬는데 820 00:28:38,880 --> 00:28:40,200 딱 귀신같이 이렇게 찾아냈다는 거예요 821 00:28:40,200 --> 00:28:42,539 자기 자리하고 자기 로우 잘 컬럼이 822 00:28:42,539 --> 00:28:44,520 중요하다는 거를 823 00:28:44,520 --> 00:28:48,360 그래가지고 이런 2D 824 00:28:48,360 --> 00:28:50,220 구조를 우리가 인위적으로 주지 않아도 825 00:28:50,220 --> 00:28:51,299 얘가 이렇게 충분히 잘 배워낼 수 826 00:28:51,299 --> 00:28:53,120 있다라는 거를 실험적으로 증명을 했고 827 00:28:53,120 --> 00:28:56,100 그래서이 이후로 비전트랜스포머에서는 828 00:28:56,100 --> 00:28:57,059 포지션 인코딩을 그냥 이런 식으로 829 00:28:57,059 --> 00:28:58,500 해요 830 00:28:58,500 --> 00:29:00,179 런업을 하게 딱 주고 알아서 배워 831 00:29:00,179 --> 00:29:02,460 이렇게만 하고 있어요 832 00:29:02,460 --> 00:29:05,539 nf보다 훨씬 간단하죠 사실 833 00:29:05,760 --> 00:29:08,340 자 여기까지가 이제 가장 처음에 834 00:29:08,340 --> 00:29:10,100 나왔던 vit 835 00:29:10,100 --> 00:29:12,299 모델이었고요이 vit 모델이 836 00:29:12,299 --> 00:29:14,700 완벽하지는 않았어요 뭐 가장 큰 837 00:29:14,700 --> 00:29:16,919 단점이 이거였죠 838 00:29:16,919 --> 00:29:18,320 돈이 많이 들고 시간이 많이 걸린다 839 00:29:18,320 --> 00:29:21,299 그거를 어떻게 좀 개선해 볼까라는게 840 00:29:21,299 --> 00:29:24,720 다음 질문이 되겠죠 자연스럽게 그래서 841 00:29:24,720 --> 00:29:26,100 데이터 efficient 이미지 842 00:29:26,100 --> 00:29:27,360 트랜스포머라는게 그 다음에 나오게 843 00:29:27,360 --> 00:29:29,539 되는데 844 00:29:29,580 --> 00:29:31,919 얘네들이 이제 주장하는 거는 우리는 845 00:29:31,919 --> 00:29:34,740 8개 gpu가 있는 싱글 노드 하나요 846 00:29:34,740 --> 00:29:36,360 정도는 847 00:29:36,360 --> 00:29:38,520 요즘 이제 대학원들도 하나씩은 848 00:29:38,520 --> 00:29:39,779 충분히 이거 하나가 아니라 여러 개씩 849 00:29:39,779 --> 00:29:42,000 가지고 있는게 표준이 될 정도로 뭐 850 00:29:42,000 --> 00:29:44,580 그렇게까지 대단한 장비가 아니죠 이제 851 00:29:44,580 --> 00:29:45,539 그러니까 학교에서도 할 수 있는 852 00:29:45,539 --> 00:29:47,340 정도예요 학교에서도 한 이사벨 정도 853 00:29:47,340 --> 00:29:50,279 돌리면 할 수 있다 그리고 데이터셋도 854 00:29:50,279 --> 00:29:52,200 jft라는 데이터셋은 공개가 안 돼 855 00:29:52,200 --> 00:29:52,740 있어요 856 00:29:52,740 --> 00:29:53,760 구글만 가지고 있는 데이터 쓰세요 857 00:29:53,760 --> 00:29:56,039 그런 거 안 쓰고 그냥 공개되어 있는 858 00:29:56,039 --> 00:29:57,779 이미지 넷만 가지고 해도 859 00:29:57,779 --> 00:29:59,640 성능 잘 나오게 만들 수 있다라는게이 860 00:29:59,640 --> 00:30:00,299 논문에 861 00:30:00,299 --> 00:30:03,059 핵심적인 컨트리뷰션이에요 862 00:30:03,059 --> 00:30:05,580 자 그 아이디어는 뭐냐 863 00:30:05,580 --> 00:30:07,440 디스틸레이션이라는 걸 해요 864 00:30:07,440 --> 00:30:12,240 디스플레이션이라는게 뭐냐 우리가 그 865 00:30:12,240 --> 00:30:13,500 cnn으로는 866 00:30:13,500 --> 00:30:16,260 굉장히 이제 어느 정도 잘 동작하는 867 00:30:16,260 --> 00:30:18,600 사실 그 트랜스포머 vit로 만든 868 00:30:18,600 --> 00:30:20,399 거보다 조금 못하다곤 하지만 거의 869 00:30:20,399 --> 00:30:21,899 비슷한 거를 cnn으로 훨씬 빨리 870 00:30:21,899 --> 00:30:23,039 만들 수 있는 거 우리 알고 있잖아요 871 00:30:23,039 --> 00:30:25,679 그래서 같은 거 그런 걸 만들어서 872 00:30:25,679 --> 00:30:27,299 그거를 873 00:30:27,299 --> 00:30:30,419 쓰는 거예요 모델 구조 보시면은 874 00:30:30,419 --> 00:30:31,980 인풋이 들어가고요 875 00:30:31,980 --> 00:30:33,240 스튜던트 모델이 우리가 학습하고 싶은 876 00:30:33,240 --> 00:30:34,980 모델이에요 877 00:30:34,980 --> 00:30:36,059 얘가 878 00:30:36,059 --> 00:30:37,799 어떤 예측을 내놓으면 이렇게 분포가 879 00:30:37,799 --> 00:30:40,980 나오겠죠 클래스 별로 그리고 정답이 880 00:30:40,980 --> 00:30:41,720 있겠죠 881 00:30:41,720 --> 00:30:43,980 정답이랑 맞춰 가지고 요거 중에 제일 882 00:30:43,980 --> 00:30:45,120 높게 나온 거를 이제이 모델이 883 00:30:45,120 --> 00:30:47,520 예측이라고 치고 그 정답에 있는 거랑 884 00:30:47,520 --> 00:30:50,340 맞춰봐 가지고 백프로 파는게 우리가 885 00:30:50,340 --> 00:30:51,659 흔히 알고 있는 일반적인 학습 886 00:30:51,659 --> 00:30:52,820 방법이죠 887 00:30:52,820 --> 00:30:55,320 이제이 비전트랜스포머를 우리 원래 888 00:30:55,320 --> 00:30:57,000 하던 것처럼 학습을 시키는게이 아래쪽 889 00:30:57,000 --> 00:30:58,740 녹색 부분이에요 890 00:30:58,740 --> 00:31:01,200 근데 이것만 하면은 이제 데이터가 891 00:31:01,200 --> 00:31:03,480 적고 그 gpu를 꼈으면 성능이 안 892 00:31:03,480 --> 00:31:05,520 나오니까이 윗부분을 추가한 건데 893 00:31:05,520 --> 00:31:07,020 윗부분이 뭐냐 894 00:31:07,020 --> 00:31:08,399 티처는 895 00:31:08,399 --> 00:31:09,899 얘보다 더 크고 더 잘 동작하는 896 00:31:09,899 --> 00:31:12,480 모델이에요 주로 그냥 cnn을 써요 897 00:31:12,480 --> 00:31:14,940 잘 돌아가는 cnn을 써요 898 00:31:14,940 --> 00:31:17,340 얘가 예측을 하게 하면은 899 00:31:17,340 --> 00:31:19,440 어떤 레이블이 또 나오겠죠 900 00:31:19,440 --> 00:31:21,059 자 이게 901 00:31:21,059 --> 00:31:22,980 훨씬 더 큰 데이터셋에 더 학습되어 902 00:31:22,980 --> 00:31:24,419 있고 이미 잘 돌아가는 걸 알고 있는 903 00:31:24,419 --> 00:31:26,039 모델이니까 904 00:31:26,039 --> 00:31:28,740 얘가 내놓은이 확률분포 자체가 좀 905 00:31:28,740 --> 00:31:30,840 정답이 근접하겠죠 906 00:31:30,840 --> 00:31:32,700 그거를 907 00:31:32,700 --> 00:31:34,559 얘랑 맞춰보게 하는 거예요 908 00:31:34,559 --> 00:31:35,700 얘가 예측한 거랑 이거랑 서로 909 00:31:35,700 --> 00:31:37,500 비슷해져야 한다는 로스를 추가해 910 00:31:37,500 --> 00:31:40,140 가지고이 선생님이 911 00:31:40,140 --> 00:31:41,520 학생이 원래 기본적으로 912 00:31:41,520 --> 00:31:42,779 데이터만 보면서 913 00:31:42,779 --> 00:31:44,100 데이터만 보는 거 사람으로 치면 책만 914 00:31:44,100 --> 00:31:47,039 보면서 공부하고 있고 선생님이 옆에서 915 00:31:47,039 --> 00:31:48,899 같이 풀어보고 야 나는 이렇게 916 00:31:48,899 --> 00:31:51,659 풀었어라고 주는 거를 같이 흉내내는 917 00:31:51,659 --> 00:31:54,740 것을 동시에 진행하는 거예요 918 00:31:55,260 --> 00:31:57,120 요게 디스플레이션이에요 919 00:31:57,120 --> 00:31:58,679 자 그래서 920 00:31:58,679 --> 00:32:00,480 모델이 어떻게 동작하냐면요 우리 921 00:32:00,480 --> 00:32:01,679 모델은 922 00:32:01,679 --> 00:32:02,940 vit랑 똑같아요 923 00:32:02,940 --> 00:32:04,080 완전히 똑같은데 924 00:32:04,080 --> 00:32:05,940 딱 하나만 다른게 925 00:32:05,940 --> 00:32:07,020 맨 오른쪽에 926 00:32:07,020 --> 00:32:08,159 디스플레이션 토큰이라는 거 하나가 더 927 00:32:08,159 --> 00:32:12,240 들어가요 우리 지금 vit에서 이미지 928 00:32:12,240 --> 00:32:13,919 패치들이 쭉 들어오고 앞에다가 929 00:32:13,919 --> 00:32:16,080 크레스토큰 하나 붙였었죠 그런 거 930 00:32:16,080 --> 00:32:17,700 하나 더 붙이는 거예요 뒤에다가 931 00:32:17,700 --> 00:32:19,860 디스플레이션 토큰이라는 거를 그리고 932 00:32:19,860 --> 00:32:21,419 똑같이 돌려요 933 00:32:21,419 --> 00:32:24,179 그것만 달라요 그리고 나서 이제 934 00:32:24,179 --> 00:32:25,679 위에서 뭐 하느냐 935 00:32:25,679 --> 00:32:27,240 클래스토큰에서는 우리가 936 00:32:27,240 --> 00:32:28,860 크래스피케이션을 하죠 937 00:32:28,860 --> 00:32:30,179 그렇게 해가지고 938 00:32:30,179 --> 00:32:31,679 크로스 엔트로피 로스 줘서 틀린 걸로 939 00:32:31,679 --> 00:32:32,940 쪽백프로 파는게 우리 원래 알고 있는 940 00:32:32,940 --> 00:32:35,580 그거죠 이쪽은 똑같은데 941 00:32:35,580 --> 00:32:37,740 요쪽에선 뭘 하느냐 우리가 방금 942 00:32:37,740 --> 00:32:39,659 얘기한 거 있죠 선생님이 943 00:32:39,659 --> 00:32:41,940 얘기한 분포랑 같은지를 맞춰 보게 944 00:32:41,940 --> 00:32:44,039 하는 거예요 그게 틀린만큼 로스를 945 00:32:44,039 --> 00:32:45,779 주는 거예요 여기서도 946 00:32:45,779 --> 00:32:46,380 그러니까 947 00:32:46,380 --> 00:32:48,480 CLS 토큰이 사실상 948 00:32:48,480 --> 00:32:50,460 이름을 하나는 클래스피케이션 다른 949 00:32:50,460 --> 00:32:52,260 하나는 디스플레이션 토큰이라고 우리가 950 00:32:52,260 --> 00:32:53,880 이름 붙인 거예요 951 00:32:53,880 --> 00:32:55,500 자 이렇게 여러 개를 붙일 수 있어요 952 00:32:55,500 --> 00:32:58,020 저렇게 추가 토큰을 953 00:32:58,020 --> 00:33:00,120 그러면은요 윗부분에서 이제 제가 지금 954 00:33:00,120 --> 00:33:02,700 하이라벨에서만 얘기를 했죠 내가 만든 955 00:33:02,700 --> 00:33:05,220 분포랑 선생님이 만든 분포랑 맞춰보고 956 00:33:05,220 --> 00:33:07,320 로스를 준다라고 얘기를 했는데 그걸 957 00:33:07,320 --> 00:33:08,520 구체적으로 어떻게 하는지가 여기 지금 958 00:33:08,520 --> 00:33:10,140 식으로 적혀 있는 거예요 959 00:33:10,140 --> 00:33:12,000 제가 지금 말한 것처럼 960 00:33:12,000 --> 00:33:14,700 분포끼리 맞춰보는 거가요 소프트웨이브 961 00:33:14,700 --> 00:33:16,559 디스트레이션이에요 962 00:33:16,559 --> 00:33:18,539 앞부분은 우리가 알고 있는 그냥 963 00:33:18,539 --> 00:33:20,880 크로스 엔트로피죠이 y 정답이랑 964 00:33:20,880 --> 00:33:22,679 얘가 hknn 그 우리 모델이 965 00:33:22,679 --> 00:33:24,659 만들어낸 거랑 맞춰보는게 크로스 966 00:33:24,659 --> 00:33:25,980 엔트로피고 967 00:33:25,980 --> 00:33:28,320 뒷부분이 뭐냐면요 이게 오랜만에 968 00:33:28,320 --> 00:33:31,820 나왔죠 KL 다이벌 존스 기억나세요 969 00:33:31,820 --> 00:33:34,080 예전에 우리 초반에 배웠던 거 있죠 970 00:33:34,080 --> 00:33:37,080 KL 다이버전스가 뭐였어요 971 00:33:37,080 --> 00:33:39,419 두 확률분포 사이에 디스턴스 비슷한 972 00:33:39,419 --> 00:33:41,220 걸 측정하는거다라고 정도 얘기하고 973 00:33:41,220 --> 00:33:43,080 지나갔었죠 그게 지금 나온 거예요 974 00:33:43,080 --> 00:33:45,899 우리가이 975 00:33:45,899 --> 00:33:47,640 학생 모델이 만든 거랑 선생님 모델이 976 00:33:47,640 --> 00:33:49,860 만든 거랑 두 개의 분포를 비교하고 977 00:33:49,860 --> 00:33:51,299 싶은 거잖아요 그로수를 주기 위해서 978 00:33:51,299 --> 00:33:53,700 그래서이 KL 드라이버를 여기다 쓴 979 00:33:53,700 --> 00:33:56,580 거예요 예를 미니마이즈 시켜주면 그게 980 00:33:56,580 --> 00:33:57,539 무슨 말이에요 981 00:33:57,539 --> 00:33:59,100 학생 모델이 만들어낸 분포가 선생님 982 00:33:59,100 --> 00:34:00,779 모델을 만들어낸 분포랑 가까워지게 983 00:34:00,779 --> 00:34:02,700 만들겠다는 거죠 984 00:34:02,700 --> 00:34:05,580 그래서이 두 개의 로스를 서로 이제 985 00:34:05,580 --> 00:34:07,380 웨이티드 썸을 해준 건데 그래서 여기 986 00:34:07,380 --> 00:34:09,418 이거의 가중치를 남다라고 하면 얘를 987 00:34:09,418 --> 00:34:11,520 1-남자라고 해가지고 이게 전체 988 00:34:11,520 --> 00:34:14,000 로스가 되는 거예요 989 00:34:15,540 --> 00:34:18,719 하드 레이블 디스플레이션은 뭐냐면요 990 00:34:18,719 --> 00:34:20,639 분포대 분포로 하지 말고 991 00:34:20,639 --> 00:34:22,980 학생도 하나를 어쨌든 골라야 돼요 992 00:34:22,980 --> 00:34:25,020 답을 하나 내야 돼요 우리 객관식 993 00:34:25,020 --> 00:34:26,219 문제 풀 때 1 2 3 4 5번의 994 00:34:26,219 --> 00:34:27,418 확률 저거 내지 않죠 995 00:34:27,418 --> 00:34:29,159 답은 어쨌든 하나 써야 되죠 그리고 996 00:34:29,159 --> 00:34:30,599 틀리면 틀린 거죠 997 00:34:30,599 --> 00:34:32,820 그렇게 푸는 거예요 그래서 학생도 998 00:34:32,820 --> 00:34:34,500 답을 하나 적어내고 선생님도 저 답을 999 00:34:34,500 --> 00:34:36,780 하나 내고 그 둘이 맞았으면 맞은 1000 00:34:36,780 --> 00:34:38,820 거고 틀렸으면 로스가 나오고 이렇게 1001 00:34:38,820 --> 00:34:40,639 하는게 하드 레이블 디스플레이션이에요 1002 00:34:40,639 --> 00:34:42,719 어느 쪽이 더 잘 되는지 좀 이따 1003 00:34:42,719 --> 00:34:44,719 볼게요 1004 00:34:45,060 --> 00:34:46,800 그래서 이제 1005 00:34:46,800 --> 00:34:49,080 콜레스토큰 쪽에서 나온요 토큰에서 1006 00:34:49,080 --> 00:34:50,399 나온 인베이딩 있죠 1007 00:34:50,399 --> 00:34:53,159 요거를 클래스 인베딩이라고 부르고요 1008 00:34:53,159 --> 00:34:54,599 디스플레이션 쪽에서 올라와서 만들어진 1009 00:34:54,599 --> 00:34:56,639 예를 디스플레이션 임베딩이라고 부를 1010 00:34:56,639 --> 00:34:59,760 거예요 자 그랬을 때 결과를 실험을 1011 00:34:59,760 --> 00:35:00,960 해봤는데 1012 00:35:00,960 --> 00:35:03,480 재밌게도 하드가 소프트보다 더 잘 1013 00:35:03,480 --> 00:35:06,540 된대요 소프트가 사실 더 정보를 많이 1014 00:35:06,540 --> 00:35:09,000 주는 거잖아요 그 정답인거 하나 1015 00:35:09,000 --> 00:35:10,500 외에도 그리고 1016 00:35:10,500 --> 00:35:12,000 조금의 실수를 너무 로스가 크게 받을 1017 00:35:12,000 --> 00:35:13,200 수 있고 그래서 소프트가 더 잘 될 1018 00:35:13,200 --> 00:35:15,119 거라고 사실 생각하기가 쉬운데 1019 00:35:15,119 --> 00:35:17,160 의외로 하드가 더 잘 나왔다라는 실험 1020 00:35:17,160 --> 00:35:19,020 결과가 리포트가 됐어요 1021 00:35:19,020 --> 00:35:21,240 그리고 1022 00:35:21,240 --> 00:35:23,400 디스플레이션 인베딩이이 클래스 1023 00:35:23,400 --> 00:35:24,660 인버딩보다 성능이 더 좋대요 이게 더 1024 00:35:24,660 --> 00:35:26,940 유용한 정보가 많이 들어있대요 그게 1025 00:35:26,940 --> 00:35:28,859 나중에 너무나도 보세요 거기 막 예제 1026 00:35:28,859 --> 00:35:31,380 같은게 나오는데 좀 이것도 좀 1027 00:35:31,380 --> 00:35:33,000 흥미로운 사실이에요 실제 정답을 보고 1028 00:35:33,000 --> 00:35:34,339 배운 책을 보고 배우는 해보다 1029 00:35:34,339 --> 00:35:36,420 선생님이 가르쳐 주는게 더 도움이 1030 00:35:36,420 --> 00:35:38,160 됐다는게 근데 선생님이 1031 00:35:38,160 --> 00:35:39,180 궁극적으로는 얘보다 못한 1032 00:35:39,180 --> 00:35:41,520 선생님이거든요 이게 cnn이기 때문에 1033 00:35:41,520 --> 00:35:44,040 근데 어쨌든 그걸로 학습한게 더 잘 1034 00:35:44,040 --> 00:35:45,480 됐다는게 또 좀 흥미로운 사실인 것 1035 00:35:45,480 --> 00:35:46,859 같아요 1036 00:35:46,859 --> 00:35:47,760 그리고 1037 00:35:47,760 --> 00:35:49,980 얘네 둘이 배우는게 사실 되게 비슷할 1038 00:35:49,980 --> 00:35:51,720 거잖아요 어쨌든 크리스피케이션 하는 1039 00:35:51,720 --> 00:35:52,980 걸 배우는 거잖아요 1040 00:35:52,980 --> 00:35:54,000 그러니까 1041 00:35:54,000 --> 00:35:56,220 책에 있는 정답 보고 그걸 흉내내는 1042 00:35:56,220 --> 00:35:58,260 학생이랑 선생님이 가르쳐 주는 건 1043 00:35:58,260 --> 00:36:00,119 똑같이 흉내내는 학생이랑 같은 걸 1044 00:36:00,119 --> 00:36:01,560 결국 배우는 거잖아요 1045 00:36:01,560 --> 00:36:02,700 근데 1046 00:36:02,700 --> 00:36:04,920 똑같지는 않더라라는게 이제 뭐 1047 00:36:04,920 --> 00:36:08,700 실험으로 입증이 됐대요 그런 얘기고 1048 00:36:08,700 --> 00:36:11,180 그 다음에 1049 00:36:15,260 --> 00:36:18,180 모델이에요 여기서 1050 00:36:18,180 --> 00:36:20,400 얘가 선생님보다 결국 조금 더 동작을 1051 00:36:20,400 --> 00:36:22,560 잘 하더라 이게 지금 적혀 있는게 1052 00:36:22,560 --> 00:36:25,619 뭐냐면은 그 1053 00:36:25,619 --> 00:36:27,119 클래스피케이션이 두 모델 간의 1054 00:36:27,119 --> 00:36:28,320 d3가드 하는 거거든요 그러니까 1055 00:36:28,320 --> 00:36:29,880 그라운드 츄루스랑 d3가드 하는 1056 00:36:29,880 --> 00:36:31,980 거니까 이게 지금 그 1057 00:36:31,980 --> 00:36:33,480 틀린 비율이에요 1058 00:36:33,480 --> 00:36:35,579 근데 선생님으로 쓴 컴프레스는 1059 00:36:35,579 --> 00:36:37,440 17.1% 틀리는데 1060 00:36:37,440 --> 00:36:39,000 얘는 16.6% 밖에 안 틀려요 약간 1061 00:36:39,000 --> 00:36:41,220 더 잘해요 선생님보다 좀 더 잘하고 1062 00:36:41,220 --> 00:36:45,420 있고 그 다음에 이쪽도 보시면은이 1063 00:36:45,420 --> 00:36:48,540 디스플레이션을 해주게 되면은 그 1064 00:36:48,540 --> 00:36:49,859 디스플레이션 안 한 거보다 선생님이랑 1065 00:36:49,859 --> 00:36:54,320 더 잘 어글리를 한대요 1066 00:36:59,640 --> 00:37:02,160 재밌는 사실이에요 그 1067 00:37:02,160 --> 00:37:03,720 vit보다 못한 cnn을 선생님으로 1068 00:37:03,720 --> 00:37:04,680 두고 1069 00:37:04,680 --> 00:37:06,300 걔가 가르쳐 주는 대로 따라가는 거를 1070 00:37:06,300 --> 00:37:08,880 병행을 했더니 그거 안 한 거보다 더 1071 00:37:08,880 --> 00:37:11,040 잘한다는게 좀 흥미로운 결과였었어요 1072 00:37:11,040 --> 00:37:12,180 그리고 1073 00:37:12,180 --> 00:37:13,940 훨씬 더 빨리 학습이 되고 대신 1074 00:37:13,940 --> 00:37:16,320 선생님이 있어야죠 저 cnn을 미리 1075 00:37:16,320 --> 00:37:17,579 학습을 시켜 놓은게 있어야 된다는게 1076 00:37:17,579 --> 00:37:20,720 뭐 조건이 되겠죠 1077 00:37:22,680 --> 00:37:24,660 자 이렇게 1078 00:37:24,660 --> 00:37:27,359 dit를 간단하게 얘기를 했고요 이제 1079 00:37:27,359 --> 00:37:28,140 조금 더 1080 00:37:28,140 --> 00:37:30,180 요즘 실제로 더 많이 쓰이는 모델을 1081 00:37:30,180 --> 00:37:32,420 얘기해 볼게요 1082 00:37:34,680 --> 00:37:36,480 여러가지 문제점들이 있었는데 그 중에 1083 00:37:36,480 --> 00:37:38,040 하나가 방금 얘기했던 1084 00:37:38,040 --> 00:37:39,480 컴피테이션 코스트가 너무 많이 든다는 1085 00:37:39,480 --> 00:37:42,000 거였어요 그 이유는 인덕트리버바이스를 1086 00:37:42,000 --> 00:37:44,760 주지 않았기 때문이다라고 얘기를 했죠 1087 00:37:44,760 --> 00:37:45,680 그리고 1088 00:37:45,680 --> 00:37:49,320 그 이게 이제 사실 이거에 대해서 1089 00:37:49,320 --> 00:37:50,280 우리가 지금까지 얘기하지 않았지만 1090 00:37:50,280 --> 00:37:52,380 사실은 좀 불편한게 이미지를 그냥 1091 00:37:52,380 --> 00:37:55,980 주어진 대로 그냥 톡톡톡 자른다는게 1092 00:37:55,980 --> 00:37:57,780 그렇게 좋아 보이지는 않죠 저게 뭔가 1093 00:37:57,780 --> 00:37:59,880 의미대로 자르는 것도 아니고 그냥 1094 00:37:59,880 --> 00:38:01,200 우연히 16발 16으로 잘라 가지고 1095 00:38:01,200 --> 00:38:03,720 바로 인접한 픽셀인데 옆에 반으로 1096 00:38:03,720 --> 00:38:05,640 나뉘는 사람도 나뉘는 것처럼 이렇게 1097 00:38:05,640 --> 00:38:08,099 좀 인위적이라는 느낌을 지울 수가 1098 00:38:08,099 --> 00:38:10,619 없어요 이거를 좀 개선해 볼 수 1099 00:38:10,619 --> 00:38:13,079 없을까라고 해가지고 나온 1100 00:38:13,079 --> 00:38:15,180 아이디어들이이 1101 00:38:15,180 --> 00:38:16,859 스윙 트랜스포머라는 거랑 1102 00:38:16,859 --> 00:38:18,960 컨버션 비전 트랜스포머 cvt라는 두 1103 00:38:18,960 --> 00:38:20,700 개가 거의 동시에 나왔어요 둘 다 1104 00:38:20,700 --> 00:38:23,820 21년도 3월에 나온 논문이었어요 1105 00:38:23,820 --> 00:38:26,040 보시면 1106 00:38:26,040 --> 00:38:27,720 인덕티브 바이러스가 없어요 우리가 1107 00:38:27,720 --> 00:38:29,400 지금 했던 vit는 1108 00:38:29,400 --> 00:38:30,599 근데 얘네들은 1109 00:38:30,599 --> 00:38:33,180 인덕티브 바이러스를 다시 집어넣어요 1110 00:38:33,180 --> 00:38:33,720 그러니까 1111 00:38:33,720 --> 00:38:34,980 야 저거 되는 건 알겠는데 너무 1112 00:38:34,980 --> 00:38:36,780 비율적이야 좀 그래도 근처가 1113 00:38:36,780 --> 00:38:38,820 중요하니까 근처 위주로 봐 대신 1114 00:38:38,820 --> 00:38:40,380 계산량을 확 줄일 수 있어라는 거죠 1115 00:38:40,380 --> 00:38:41,880 그래서 1116 00:38:41,880 --> 00:38:46,980 요게 추가가 되고요 그 다음에이 1117 00:38:47,400 --> 00:38:48,960 패치가 항상 우리 딱 16발 1118 00:38:48,960 --> 00:38:51,420 16이라고 고정되어 있는게 좀 1119 00:38:51,420 --> 00:38:53,400 너무 인위적이잖아요 그 몇으로 잘라야 1120 00:38:53,400 --> 00:38:54,920 될지 우리가 정해야 되는데 그래서 1121 00:38:54,920 --> 00:38:58,140 이렇게 안 하고 이렇게 하면 이제 그 1122 00:38:58,140 --> 00:39:00,060 안에 들어가는 물체 크기가 딱 그만한 1123 00:39:00,060 --> 00:39:02,099 거 밖에 우리가 인식을 못하게 되니까 1124 00:39:02,099 --> 00:39:04,380 얘를 다양한 크기를 할 수 있게 1125 00:39:04,380 --> 00:39:06,119 점점 멀지 시켜 나가는 아이디어를 1126 00:39:06,119 --> 00:39:07,200 적용을 합니다 1127 00:39:07,200 --> 00:39:09,180 처음에는 16과 16으로 하는데 그 1128 00:39:09,180 --> 00:39:10,560 다음번에는 32바이 32로 커지고 1129 00:39:10,560 --> 00:39:12,560 그다음에 64가 64로 커지고 이렇게 1130 00:39:12,560 --> 00:39:15,780 그런 아이디어가 추가가 되고요 1131 00:39:15,780 --> 00:39:19,220 그 다음에 그 1132 00:39:19,500 --> 00:39:21,780 같은 패치 안에 있는 애들끼리만 지금 1133 00:39:21,780 --> 00:39:24,119 그 픽셀들끼리만 서로 리뉴얼 맵핑이 1134 00:39:24,119 --> 00:39:25,680 돼서 그 다음부터 걔네들이 같이 놀게 1135 00:39:25,680 --> 00:39:28,020 되죠 마치 그 우리 학교 다닐 때 반 1136 00:39:28,020 --> 00:39:30,300 나누면 다른 반 되면은 그 학생은 1137 00:39:30,300 --> 00:39:32,640 영원히 못 만나는 거랑 비슷한 거예요 1138 00:39:32,640 --> 00:39:33,720 근데 1139 00:39:33,720 --> 00:39:35,880 그렇게 되는게 좀 바람직하지 않죠이 1140 00:39:35,880 --> 00:39:37,140 원래 실제 이미지에는 바로 옆에 1141 00:39:37,140 --> 00:39:38,760 인접했던 픽셀이어도 1142 00:39:38,760 --> 00:39:41,640 다른 그 패치로 나눠져 버리면 서로 1143 00:39:41,640 --> 00:39:43,740 동작을 전혀 못하게 되니까 그걸 좀 1144 00:39:43,740 --> 00:39:45,300 반영해 주기 위해서 1145 00:39:45,300 --> 00:39:46,619 윈도우를 1146 00:39:46,619 --> 00:39:47,940 딱 그 정해진 크기로 딱 한 번만 1147 00:39:47,940 --> 00:39:49,140 나누는게 아니라 1148 00:39:49,140 --> 00:39:51,740 딱 절반씩 1149 00:39:54,839 --> 00:39:56,640 파티션이라는 걸 적용을 하게 돼요 좀 1150 00:39:56,640 --> 00:39:57,920 이따 볼게요 1151 00:39:57,920 --> 00:40:00,480 그리고 이제 마지막으로 뭐 상대적으로 1152 00:40:00,480 --> 00:40:01,800 좀 덜 중요한데 1153 00:40:01,800 --> 00:40:02,579 relative position 1154 00:40:02,579 --> 00:40:03,780 바이어스라는 개념이 나오게 되는데 1155 00:40:03,780 --> 00:40:05,760 이건 좀 이따 얘기를 할게요 1156 00:40:05,760 --> 00:40:07,380 스윙 트랜스포머에 아이디어 4가지가 1157 00:40:07,380 --> 00:40:09,660 이거예요 지금 vit가 가지고 있던 1158 00:40:09,660 --> 00:40:11,220 문제점들을 해결하기 위해서 이런 1159 00:40:11,220 --> 00:40:12,839 것들을 도입을 했는데 하나씩 한번 1160 00:40:12,839 --> 00:40:15,320 살펴볼게요 1161 00:40:17,579 --> 00:40:19,079 인덕티브 바이러스가 다시 추가가 1162 00:40:19,079 --> 00:40:19,859 된다고 1163 00:40:19,859 --> 00:40:22,079 얘기를 했어요 이게 무슨 말이냐 1164 00:40:22,079 --> 00:40:25,260 각각의 토큰들이 그 전체를 다 보는게 1165 00:40:25,260 --> 00:40:27,900 아니라 자기 근처에 있는 스몰 1166 00:40:27,900 --> 00:40:30,599 윈도우만 보게 되는 거예요 1167 00:40:30,599 --> 00:40:33,359 그래서 지금 각각의 이미지는 피버의 1168 00:40:33,359 --> 00:40:35,460 p라 그랬죠 아까는 16발 16이었고 1169 00:40:35,460 --> 00:40:37,380 얘네들은 4바이 4를 썼어요 더 잘게 1170 00:40:37,380 --> 00:40:39,780 쪼갰어요 그 대신 1171 00:40:39,780 --> 00:40:41,420 엠바이 m 패치가 들어가게 되는데 1172 00:40:41,420 --> 00:40:44,280 이게 무슨 말이냐 이미지를 우리가 1173 00:40:44,280 --> 00:40:46,440 이렇게 쪼갰죠 하나하나가 딱 피부에 1174 00:40:46,440 --> 00:40:48,660 p가 되도록 이미지를 쪼갰어요 아까랑 1175 00:40:48,660 --> 00:40:51,960 똑같이 그리고 이번에는 1176 00:40:51,960 --> 00:40:53,180 m이 이제 생기는데 1177 00:40:53,180 --> 00:40:55,619 아까는이 각각이 자기가 쿼리일 때 1178 00:40:55,619 --> 00:40:58,260 전체를 다 키벨로 해가지고 어텐션을 1179 00:40:58,260 --> 00:41:00,300 했었는데 지금은 1180 00:41:00,300 --> 00:41:02,579 mim짜리요 1181 00:41:02,579 --> 00:41:05,099 패치 윈도우 안에서만 보는 거예요 1182 00:41:05,099 --> 00:41:08,040 즉 얘가 커리면요 4개만 키 밸류가 1183 00:41:08,040 --> 00:41:09,240 되는 거예요 1184 00:41:09,240 --> 00:41:11,820 두 번째 커리어도요 4개만 되는 1185 00:41:11,820 --> 00:41:14,640 거예요 그다음 거가 콜이면 이렇게 1186 00:41:14,640 --> 00:41:16,200 3번 4번 1187 00:41:16,200 --> 00:41:18,000 컬럼 1,2로 1188 00:41:18,000 --> 00:41:19,140 요렇게 4개가 1189 00:41:19,140 --> 00:41:21,119 다음번에 키벨루가 되는 거예요 1190 00:41:21,119 --> 00:41:22,980 즉 저 윈도우로 저렇게 쪼개 놓고 1191 00:41:22,980 --> 00:41:25,400 다툼 윈도우 안에 들어가는 애들끼리만 1192 00:41:25,400 --> 00:41:28,640 어텐션을 해주는게 이거의 아이디어에요 1193 00:41:28,640 --> 00:41:31,800 지금 유아 윈도우 안에 있는 1194 00:41:31,800 --> 00:41:33,180 패치들끼리는 1195 00:41:33,180 --> 00:41:36,300 걔네들끼리만 컨텍솔라에서 하는 거예요 1196 00:41:36,300 --> 00:41:37,920 셀프 포텐션 할 때 1197 00:41:37,920 --> 00:41:39,980 됐죠 1198 00:41:41,420 --> 00:41:45,060 그래서이 안에 있는 그 1199 00:41:45,060 --> 00:41:48,140 패치가 패스가 아니라 패치예요 1200 00:41:54,180 --> 00:41:55,859 패치가 1201 00:41:55,859 --> 00:41:58,020 윈도우 안에 있으면 그게 커리면 1202 00:41:58,020 --> 00:42:00,720 셀프 텐션은 그 키 밸류가 1203 00:42:00,720 --> 00:42:01,859 윈도우 안에 있는 애들끼리만 가지고 1204 00:42:01,859 --> 00:42:04,859 한다라는 얘기고요 1205 00:42:04,859 --> 00:42:06,660 여기 있을 때는 마찬가지로이 안에 1206 00:42:06,660 --> 00:42:08,640 있는 거가 이제 콜이면요 안에 있는 1207 00:42:08,640 --> 00:42:10,980 것들끼리만 키벨로 쓰는 거죠 이렇게 1208 00:42:10,980 --> 00:42:13,940 하면 연산양이 확 줄어들겠죠 1209 00:42:14,579 --> 00:42:16,859 그 다음에 두 번째 아이디어는 1210 00:42:16,859 --> 00:42:17,880 파이어라 포커 스트럭처를 쓴다 1211 00:42:17,880 --> 00:42:19,859 그랬어요 이게 뭐냐 1212 00:42:19,859 --> 00:42:22,200 패치워징이라는 걸 하는데 아까는 1213 00:42:22,200 --> 00:42:23,760 피버의 피가 그냥 고정되어 있었어요 1214 00:42:23,760 --> 00:42:25,020 시작부터 끝까지 계속 피부에 피웠는데 1215 00:42:25,020 --> 00:42:27,720 이번에는 그렇게 안 하고요 이거를 1216 00:42:27,720 --> 00:42:29,579 이제 1217 00:42:29,579 --> 00:42:30,660 진행할 때마다 1218 00:42:30,660 --> 00:42:31,820 토바이투씩 이걸 묶어 줄 거예요 1219 00:42:31,820 --> 00:42:33,780 어떻게 되냐 1220 00:42:33,780 --> 00:42:35,339 처음에는 이렇게 이제 m이 이렇게 1221 00:42:35,339 --> 00:42:37,380 있었다면은요 1222 00:42:37,380 --> 00:42:39,660 각각이 이제 임베딩으로 표현이 되겠죠 1223 00:42:39,660 --> 00:42:41,400 CD m전짜리 어떤 벡터로 표현이 돼 1224 00:42:41,400 --> 00:42:42,480 있으면 1225 00:42:42,480 --> 00:42:44,339 얘네들을 컨텐츠인 다음에 1226 00:42:44,339 --> 00:42:45,660 어떤 플리커넥티드 레이어 하나를 1227 00:42:45,660 --> 00:42:48,420 통과를 시키고 아웃풋으로 1228 00:42:48,420 --> 00:42:49,740 4개가 붙었으니까 4c가 들어와서 1229 00:42:49,740 --> 00:42:51,900 그걸 절반인 ec가 되도록 만들어 1230 00:42:51,900 --> 00:42:53,880 줘요 1231 00:42:53,880 --> 00:42:54,920 그렇게 하고 1232 00:42:54,920 --> 00:42:57,180 얘가요네 개를 합친 거에 임베딩이 1233 00:42:57,180 --> 00:42:58,319 되도록 1234 00:42:58,319 --> 00:43:00,960 사용하는 거예요 1235 00:43:00,960 --> 00:43:02,880 그러면은요 과정을 한번 겪을 때마다 1236 00:43:02,880 --> 00:43:04,440 어떻게 되어 있어요 지금 전체가 8 1237 00:43:04,440 --> 00:43:05,880 곱하기 8이었는데 1238 00:43:05,880 --> 00:43:08,579 4x4로 개수가 줄어들고 1239 00:43:08,579 --> 00:43:11,520 각각의 크기는 두 배가 된게 되겠죠 1240 00:43:11,520 --> 00:43:14,220 그렇게 해서 그 CNN 때처럼 우리가 1241 00:43:14,220 --> 00:43:15,660 점점 이렇게 더 개수를 줄여 1242 00:43:15,660 --> 00:43:16,680 나가잖아요 1243 00:43:16,680 --> 00:43:19,020 합쳐 나가면서 그런 식으로 1244 00:43:19,020 --> 00:43:21,960 필드가 커져가는 식으로 가는 거예요 1245 00:43:21,960 --> 00:43:24,800 여기서 이해되세요 1246 00:43:25,500 --> 00:43:27,000 네 1247 00:43:27,000 --> 00:43:28,020 그래서 1248 00:43:28,020 --> 00:43:30,260 애프터를 1249 00:43:30,359 --> 00:43:32,579 요거 통과하고 나면 어떻게 되냐면요 1250 00:43:32,579 --> 00:43:34,500 패치 사이즈는 2P 곱하기 2p가 1251 00:43:34,500 --> 00:43:35,880 돼요 1252 00:43:35,880 --> 00:43:37,800 p 곱하기 피었던게 이제이 p*ep가 1253 00:43:37,800 --> 00:43:39,540 되고 그거의 크기는 1254 00:43:39,540 --> 00:43:41,640 cccc 4개 있던게 EC 하나가 1255 00:43:41,640 --> 00:43:44,040 남는 거고요 한번 더 하고 나면은 그 1256 00:43:44,040 --> 00:43:45,359 다음에는 4P 곱하기 4p가 되겠죠 1257 00:43:45,359 --> 00:43:47,760 이런 식으로 계속 머징해 나가는 1258 00:43:47,760 --> 00:43:49,680 거예요 1259 00:43:49,680 --> 00:43:52,260 그리고 1260 00:43:52,260 --> 00:43:54,180 m은 우리 앞에서 이제 슬라이드에서는 1261 00:43:54,180 --> 00:43:57,119 2였었는데 이거는 계속 그대로 있어요 1262 00:43:57,119 --> 00:43:58,740 다음번에 합쳐지고 나면은 1263 00:43:58,740 --> 00:44:00,780 4개짜리가 이제 하나의 그 1264 00:44:00,780 --> 00:44:02,040 벡터가 되죠 1265 00:44:02,040 --> 00:44:02,880 얘를 가지고 1266 00:44:02,880 --> 00:44:04,380 얘가 쿼리일 때 키벨류는 그럼 어떻게 1267 00:44:04,380 --> 00:44:05,520 되느냐 1268 00:44:05,520 --> 00:44:07,980 m 아까 그대로 요렇게 이제 이것도 1269 00:44:07,980 --> 00:44:10,079 두 배로 커지는 거죠 이렇게 그래서 1270 00:44:10,079 --> 00:44:12,720 얘가 커리면 여기가요 4개가 키벨로 1271 00:44:12,720 --> 00:44:14,220 쓰이게 되는 거예요 1272 00:44:14,220 --> 00:44:16,920 얘는 그대로 유지가 돼요 그래서 보게 1273 00:44:16,920 --> 00:44:19,260 되는 영역 자체는 넓어지죠 이미지 1274 00:44:19,260 --> 00:44:20,099 속에서 1275 00:44:20,099 --> 00:44:21,119 근데 1276 00:44:21,119 --> 00:44:23,819 계산해야 되는 넘버로 패치는 똑같아요 1277 00:44:23,819 --> 00:44:26,359 그렇게 유지가 돼요 1278 00:44:26,960 --> 00:44:29,760 그 다음에 세 번째 아이디어가 1279 00:44:29,760 --> 00:44:30,839 뭐였냐면 1280 00:44:30,839 --> 00:44:32,099 쉬프티드 윈도우 파티셔닝이라는 1281 00:44:32,099 --> 00:44:36,000 거였어요 이거는 그 우리가 이거를 1282 00:44:36,000 --> 00:44:37,380 인위적으로 잘라 놓다 보니까 사실 1283 00:44:37,380 --> 00:44:39,119 사진 옆으로 살짝 옆으로 찍을 수도 1284 00:44:39,119 --> 00:44:41,220 있는데 너무 우연히도 그렇게 찍혀 1285 00:44:41,220 --> 00:44:42,680 가지고 이렇게 딱딱 쪼개지는 거잖아요 1286 00:44:42,680 --> 00:44:45,260 그게 좀 마음에 안 들었던 거예요 1287 00:44:45,260 --> 00:44:47,220 이렇게요 형틀 대로 잘라져 가지고 1288 00:44:47,220 --> 00:44:49,619 바로 인접한 픽셀들끼리도 1289 00:44:49,619 --> 00:44:51,839 인터랙션을 못 하게 되는게 그래서 뭐 1290 00:44:51,839 --> 00:44:53,839 하냐면 윈도우를 1291 00:44:53,839 --> 00:44:57,300 1/2씩 옆으로 쉬프트를 시킨대요 잘 1292 00:44:57,300 --> 00:44:58,560 안 와닿았죠 그림 보시면 바로 알 1293 00:44:58,560 --> 00:45:00,300 거예요 1294 00:45:00,300 --> 00:45:01,859 m이 지금 요거 요거잖아요 요거 1295 00:45:01,859 --> 00:45:04,079 하나가 m이잖아요 그거 딱 반씩 1296 00:45:04,079 --> 00:45:05,940 옆으로 옮긴 거예요 1297 00:45:05,940 --> 00:45:08,220 그러면 이번에는 아까는 이렇게 4개가 1298 00:45:08,220 --> 00:45:10,260 묶여 있던게 이번에는 요렇게 4개가 1299 00:45:10,260 --> 00:45:11,060 묶이는 거예요 1300 00:45:11,060 --> 00:45:14,040 2번 3번 2번 3번이 묶이는 거고 1301 00:45:14,040 --> 00:45:16,020 4번 5번 2번 3번 여기도 1302 00:45:16,020 --> 00:45:17,220 4번 5번 2번 3번 이렇게 묶이는 1303 00:45:17,220 --> 00:45:18,359 거죠 1304 00:45:18,359 --> 00:45:20,400 자 그러면이 바깥에 있는 데는 어떻게 1305 00:45:20,400 --> 00:45:22,200 하느냐 1306 00:45:22,200 --> 00:45:24,359 얘네들은요 바깥에도 이렇게 하나를 더 1307 00:45:24,359 --> 00:45:25,560 추가해요 1308 00:45:25,560 --> 00:45:28,740 그러면은 비어 있는 것들이 있고 1309 00:45:28,740 --> 00:45:31,020 차 있는 것들이 있죠 그래서이 비어 1310 00:45:31,020 --> 00:45:33,000 있는 내용이 없는 부분들은 마스킹을 1311 00:45:33,000 --> 00:45:35,819 해줘요 마스킹을 해 가지고 있는 1312 00:45:35,819 --> 00:45:37,740 것들끼리만 컨텍솔라에서 할 수 있게 1313 00:45:37,740 --> 00:45:39,540 처리를 한다라고 나와 있는데 1314 00:45:39,540 --> 00:45:41,819 요거는 좀 인플미테이션 디테일이라서 1315 00:45:41,819 --> 00:45:43,200 논문 한번 보시면서 어떻게 1316 00:45:43,200 --> 00:45:45,300 구현했는지는 보시면 좋을 것 같아요 1317 00:45:45,300 --> 00:45:46,619 기본적인 아이디어 여기서 중요한 거는 1318 00:45:46,619 --> 00:45:48,300 이거를 1319 00:45:48,300 --> 00:45:49,859 딱 정해져 있는 대로 끝까지 가는게 1320 00:45:49,859 --> 00:45:52,020 아니라 반 딱 시프트 시킨 거 한번 1321 00:45:52,020 --> 00:45:53,700 하고 다시 돌아와서 하고 이걸 1322 00:45:53,700 --> 00:45:55,140 번갈아가면서 해서 1323 00:45:55,140 --> 00:45:56,280 인접해 있는 애들끼리 어쨌든 같은 1324 00:45:56,280 --> 00:45:58,440 같이 한 번씩은 포함될 수 있는 1325 00:45:58,440 --> 00:46:01,220 기회를 계속해서 주는 거예요 1326 00:46:02,640 --> 00:46:04,640 됐죠 1327 00:46:05,040 --> 00:46:06,839 자 그래서 이거에도 전체 아키텍처를 1328 00:46:06,839 --> 00:46:08,700 한번 보면요 이거 보시면 어떻게 1329 00:46:08,700 --> 00:46:11,040 돌아가는지 좀 알 수 있는데 자 잉크 1330 00:46:11,040 --> 00:46:12,180 크기가 1331 00:46:12,180 --> 00:46:14,160 h 곱하기 W 곱하기 3짜리 이미지가 1332 00:46:14,160 --> 00:46:15,839 들어왔다고 칠게요 224 곱하기 1333 00:46:15,839 --> 00:46:18,660 224 곱하기 3 이런게 들어와요 1334 00:46:18,660 --> 00:46:19,319 처음에 1335 00:46:19,319 --> 00:46:20,520 패치 파티션이라는 걸 하게 돼요 1336 00:46:20,520 --> 00:46:23,520 여기서 뭘 하냐면은 1337 00:46:23,520 --> 00:46:25,260 얘네는 4 곱하기 4로 나왔다 그랬죠 1338 00:46:25,260 --> 00:46:27,480 pvp로 지금 쪼개는 거예요 이쪽에 1339 00:46:27,480 --> 00:46:28,319 놓고 1340 00:46:28,319 --> 00:46:30,599 각각의 패치는 그러면은 16개의 1341 00:46:30,599 --> 00:46:32,579 픽셀과 3개의 RGB 값이 있으니까 1342 00:46:32,579 --> 00:46:35,460 총 48개의 디멘션을 갖게 되죠 1343 00:46:35,460 --> 00:46:36,839 그래서 1344 00:46:36,839 --> 00:46:39,060 크기는 1/4 곱하기 4분의 w가 1345 00:46:39,060 --> 00:46:39,960 되고 1346 00:46:39,960 --> 00:46:41,700 각각은 48d 면전이니까 1347 00:46:41,700 --> 00:46:42,900 얘의 텐서 크기는 이렇게 바뀌는 1348 00:46:42,900 --> 00:46:44,760 거예요 1349 00:46:44,760 --> 00:46:46,740 이거 논문만 보고는 저는 진짜 1350 00:46:46,740 --> 00:46:49,319 파악하는데 좀 시간이 걸렸는데 1351 00:46:49,319 --> 00:46:52,440 이해되시죠 자 이렇게 되고 그런 1352 00:46:52,440 --> 00:46:55,079 다음에 이제 스테이지 1부터 4까지는 1353 00:46:55,079 --> 00:46:56,819 똑같은 걸 할 건데 여기서 뭘 1354 00:46:56,819 --> 00:46:59,160 하냐면은 리니어 인베딩을 해줘요 1355 00:46:59,160 --> 00:47:02,040 리니어 인베딩은 뭐냐면은이 1356 00:47:02,040 --> 00:47:03,900 4분의 h 곱하기 4분의 w가 각각의 1357 00:47:03,900 --> 00:47:06,060 그 지금 패치 크기들인데 1358 00:47:06,060 --> 00:47:06,800 패치 1359 00:47:06,800 --> 00:47:09,780 하나하나마다이 48개짜리 픽셀 1360 00:47:09,780 --> 00:47:12,720 값들을 우리가 원하는 어떤 cd면전 1361 00:47:12,720 --> 00:47:14,160 벡터로 보내는 거예요 1362 00:47:14,160 --> 00:47:16,140 리니어 맵핑 해가지고 아까 우리 1363 00:47:16,140 --> 00:47:19,560 vit랑 똑같이 그래서 이제 48이랑 1364 00:47:19,560 --> 00:47:21,780 값과 관계없이 그냥 어떤 임의의 1365 00:47:21,780 --> 00:47:25,400 cd맨전 벡터가 되는 거예요 각각이 1366 00:47:26,339 --> 00:47:27,660 그 다음에 1367 00:47:27,660 --> 00:47:29,099 스윙 트랜스포머 블록에 들어가게 되면 1368 00:47:29,099 --> 00:47:31,619 여기서 뭐 하냐면은 그 1369 00:47:31,619 --> 00:47:33,720 셀프로텐션 하는 거예요 그래서 자기 1370 00:47:33,720 --> 00:47:35,460 자신을 다른 애들의 웨이트 서버로 1371 00:47:35,460 --> 00:47:38,819 표현하는데 아까랑 다른 점은 그 자기 1372 00:47:38,819 --> 00:47:41,220 영역 안에서만 본다는 거고 mvm짜리 1373 00:47:41,220 --> 00:47:42,599 크게 안에서만 본다는 거 그거만 1374 00:47:42,599 --> 00:47:44,280 달라지고 그냥 이건 VIP 똑같이 1375 00:47:44,280 --> 00:47:45,300 도는 거예요 1376 00:47:45,300 --> 00:47:47,339 크기는 안 바뀌겠죠이 1377 00:47:47,339 --> 00:47:49,700 트랜스포머는 1378 00:47:50,220 --> 00:47:52,079 크기가 나와요 이제부터 1379 00:47:52,079 --> 00:47:53,280 똑같아요 1380 00:47:53,280 --> 00:47:55,440 패치 멀징을 한번 해주는데 여기서부터 1381 00:47:55,440 --> 00:47:57,960 이제 패치 몰딩 해주게 되면 우리가 1382 00:47:57,960 --> 00:47:59,880 패치가 1383 00:47:59,880 --> 00:48:01,140 투바이투가 하나로 묶인다고 그랬죠 1384 00:48:01,140 --> 00:48:02,640 그래서 1385 00:48:02,640 --> 00:48:03,480 크기는 1386 00:48:03,480 --> 00:48:05,420 8분의 h 8분의 w로 반이 줄어요 1387 00:48:05,420 --> 00:48:08,099 두 개씩 묶었으니까 로우 두 개 컬럼 1388 00:48:08,099 --> 00:48:10,740 두 개 하나로 묶였으니까 그리고 1389 00:48:10,740 --> 00:48:12,780 cd맨전이 대신이 CD 면전으로 1390 00:48:12,780 --> 00:48:14,099 커진다 그랬죠 1391 00:48:14,099 --> 00:48:15,839 C 4개 합쳐 가지고 FC 하나 1392 00:48:15,839 --> 00:48:17,400 통과해서 ec로 한다 그랬죠 1393 00:48:17,400 --> 00:48:20,599 그래서 ec가 됐어요 1394 00:48:20,599 --> 00:48:23,579 됐죠이 뒤는 이제 다 똑같아요 여기 1395 00:48:23,579 --> 00:48:25,619 스윙 트랜스포머 돌면 똑같고 1396 00:48:25,619 --> 00:48:27,000 패치 몰딩 한번 해주면 크기 또 1397 00:48:27,000 --> 00:48:29,700 반으로 줄고 이건 2배가 되고 여기도 1398 00:48:29,700 --> 00:48:32,280 똑같고 또 크기 반으로 줄고 두 배가 1399 00:48:32,280 --> 00:48:33,000 되고 1400 00:48:33,000 --> 00:48:34,859 똑같고 1401 00:48:34,859 --> 00:48:36,980 됐죠 1402 00:48:37,220 --> 00:48:39,720 자 여기서 1403 00:48:39,720 --> 00:48:41,160 밑에 이거를 이제 여러 번 한다고 1404 00:48:41,160 --> 00:48:43,440 되어 있는데 여기서 좀 주목할 만한 1405 00:48:43,440 --> 00:48:45,420 점이 곱하기 2 곱하기 곱하기 6 1406 00:48:45,420 --> 00:48:48,180 곱하기 이게 무조건 짝수예요 1407 00:48:48,180 --> 00:48:51,359 이걸 왜 짝수로 쓸까요 1408 00:48:51,359 --> 00:48:54,900 얘네는 아까 얘기했던 것처럼 그 1409 00:48:54,900 --> 00:48:56,160 쉬프트 안 시키고 그냥 하는 거랑 1410 00:48:56,160 --> 00:48:58,260 반씩 쉬프트 시킨 거를 번갈아가면서 1411 00:48:58,260 --> 00:49:00,119 한다 그랬죠 그래서 이게 짝수인 1412 00:49:00,119 --> 00:49:04,260 거예요 그래서 지금 여기 보시면은 그 1413 00:49:04,260 --> 00:49:07,800 요거 하나하나가 지금 그 저거죠 1414 00:49:07,800 --> 00:49:09,359 vit에서 하는 그 오퍼레이션인데 1415 00:49:09,359 --> 00:49:12,480 여기 wmsa라고 돼 있어요 이게 1416 00:49:12,480 --> 00:49:14,520 멀티 헤드 셀퍼텐셜 앞에 w는 1417 00:49:14,520 --> 00:49:16,319 윈도우라는 뜻이에요 그래서 우리가 1418 00:49:16,319 --> 00:49:18,240 윈도우 안에서만 보는 건데 그 1419 00:49:18,240 --> 00:49:20,520 윈도우를 우리가 이제 평상시에 하는 1420 00:49:20,520 --> 00:49:22,740 것처럼 1 2 3 4 5 6 7 8 1421 00:49:22,740 --> 00:49:25,140 이렇게 끄는 거 그게 일반적인 거고 1422 00:49:25,140 --> 00:49:27,780 반식 시프트 시킨게요 쉬프트 1423 00:49:27,780 --> 00:49:30,000 윈도우예요 그래서 2 3 1424 00:49:30,000 --> 00:49:31,619 4호 6 7 이렇게 묶어서 하는게 1425 00:49:31,619 --> 00:49:33,420 돼요 1426 00:49:33,420 --> 00:49:35,339 얘를 둘이 번갈아가면 돼요 지금 이게 1427 00:49:35,339 --> 00:49:36,839 짝수 방향 땐 이거 홀수 번역된 이거 1428 00:49:36,839 --> 00:49:38,520 이렇게 둔다고 돼 있어요 1429 00:49:38,520 --> 00:49:39,780 그래서 식으로 쓰면 이렇게 되고 1430 00:49:39,780 --> 00:49:41,579 그래서 이게 다 짝수 번인 거예요 1431 00:49:41,579 --> 00:49:43,740 그거를 공평하게 한 번씩 들어갈 수 1432 00:49:43,740 --> 00:49:46,339 있게 해주기 위해서 1433 00:49:47,400 --> 00:49:49,560 됐죠 레귤러랑 쉬프트 msa가 서로 1434 00:49:49,560 --> 00:49:53,119 얼터네이터가 돌아간다 이런 얘기입니다 1435 00:49:53,119 --> 00:49:55,020 정리됐나요이 모델은 굉장히 많이 1436 00:49:55,020 --> 00:49:55,980 쓰여요 1437 00:49:55,980 --> 00:49:58,260 성능도 좋았고 뭐 이후로도 좀 1438 00:49:58,260 --> 00:49:59,460 베이스라인으로 많이 쓰이는 모델이라 1439 00:49:59,460 --> 00:50:02,400 많이 보시게 될 거예요 1440 00:50:02,400 --> 00:50:04,859 자 마지막네 번째는 이제 1441 00:50:04,859 --> 00:50:06,720 포지션 바이어스인데 자 이게 왜 1442 00:50:06,720 --> 00:50:09,180 나오게 되냐 우리가 1443 00:50:09,180 --> 00:50:10,500 윈도우를 잘라 가지고 그 안에 있는 1444 00:50:10,500 --> 00:50:15,359 것만 가지고 어텐션을 하다 보니까이 1445 00:50:15,839 --> 00:50:16,920 포지셔널 인코딩을 넣는게 좀 1446 00:50:16,920 --> 00:50:18,000 애매해져요 1447 00:50:18,000 --> 00:50:19,020 그래가지고 1448 00:50:19,020 --> 00:50:20,819 절대적인 거를 얘가 배우게 하지 않고 1449 00:50:20,819 --> 00:50:23,160 얘는 상대적인 거를 배우게 한다라는 1450 00:50:23,160 --> 00:50:24,839 컨셉이에요 사실 그 정도만 이해해 1451 00:50:24,839 --> 00:50:25,800 두시면 돼요 1452 00:50:25,800 --> 00:50:27,480 디테일한 부분은 논문에도 제 자세히가 1453 00:50:27,480 --> 00:50:30,180 안 나와 있는데 그래서 이제 여기 할 1454 00:50:30,180 --> 00:50:32,040 때 이제 b라는 걸 더하고이 b라는 1455 00:50:32,040 --> 00:50:34,200 거는 m 제곱 곱하기 m제곱과 모든 1456 00:50:34,200 --> 00:50:37,040 그 1457 00:50:37,140 --> 00:50:38,579 윈도우 안에 있는 모든 애들끼리의 1458 00:50:38,579 --> 00:50:40,800 상관관계를 다 배워주는 1459 00:50:40,800 --> 00:50:41,819 매트릭스인데 1460 00:50:41,819 --> 00:50:42,720 얘를 1461 00:50:42,720 --> 00:50:46,260 뭘로 파라메트라이저 한다고 하냐면 그 1462 00:50:46,260 --> 00:50:47,760 EM 1463 00:50:47,760 --> 00:50:51,000 -1 곱하기 n - 2개 그 1464 00:50:51,000 --> 00:50:52,619 mvm짜리 윈도우 안에서 가질 수 1465 00:50:52,619 --> 00:50:55,140 있는 모든 상관관계의 범위에요 1466 00:50:55,140 --> 00:50:56,700 4개짜리다 그러면은 뭐 4 곱하기 1467 00:50:56,700 --> 00:50:58,400 4면은 이게 1468 00:50:58,400 --> 00:51:00,599 -3부터 플러스 3까지 밖에 차이가 1469 00:51:00,599 --> 00:51:02,339 안 나잖아요 그 안에서 차이가 날 수 1470 00:51:02,339 --> 00:51:05,160 있는게 그 관계를 배우게 해 가지고 1471 00:51:05,160 --> 00:51:06,359 얘를 가지고 prometize에서 1472 00:51:06,359 --> 00:51:08,819 이걸 만들어 준다 뭐 이런 얘긴데 1473 00:51:08,819 --> 00:51:10,200 디테일하게 어떻게 했는지는 사실 저도 1474 00:51:10,200 --> 00:51:11,880 이것만 읽어서 잘 모르겠고 코드를 1475 00:51:11,880 --> 00:51:14,040 아마 좀 봐야 될 것 같고 뭐 이런 1476 00:51:14,040 --> 00:51:16,740 여기서 중요한 거는 왜 이런 고민이 1477 00:51:16,740 --> 00:51:18,420 필요했고 왜 이렇게 바꿔야만 했는지 1478 00:51:18,420 --> 00:51:20,579 그거를 좀 상황을 이해하는 거예요 1479 00:51:20,579 --> 00:51:22,140 디테일하게 어떻게 했는지는 너무 1480 00:51:22,140 --> 00:51:23,760 보시면서 좀 파악해 보시면 좋을 것 1481 00:51:23,760 --> 00:51:25,700 같습니다 1482 00:51:25,700 --> 00:51:28,260 자 그래서 1483 00:51:28,260 --> 00:51:30,000 스위트랜스포머는 1484 00:51:30,000 --> 00:51:31,500 결국은 이거 속도 빠르게 하려고 한 1485 00:51:31,500 --> 00:51:34,319 거예요 전체를 다 보면 더 좋은데 1486 00:51:34,319 --> 00:51:36,960 그렇게 안 하고 부분적으로만 봐서 더 1487 00:51:36,960 --> 00:51:38,460 계산을 빨리 하고 싶어서 이렇게 만든 1488 00:51:38,460 --> 00:51:39,660 거잖아요 1489 00:51:39,660 --> 00:51:42,059 그래가지고 우리가 원래 알고 있던 1490 00:51:42,059 --> 00:51:44,460 멀티 헤드 셀프어텐션 하고이 윈도우가 1491 00:51:44,460 --> 00:51:45,839 붙어 있는 거에 타임 컴플렉스를 1492 00:51:45,839 --> 00:51:49,220 비교를 해봤어요 그랬을 때 1493 00:51:49,220 --> 00:51:51,720 자요 앞에 있는 4hw 시제곱은 1494 00:51:51,720 --> 00:51:53,700 뭐냐면요 1495 00:51:53,700 --> 00:51:55,500 qkb 매트릭스를 만드는 코스트에요 1496 00:51:55,500 --> 00:51:59,099 그래서 우리가 가정하기를 그 1497 00:51:59,099 --> 00:52:00,920 인풋 피쳐랑 1498 00:52:00,920 --> 00:52:03,599 qkv가 다 cd맨전짜리 벡터를 1499 00:52:03,599 --> 00:52:04,920 쓴다고 하면은요 1500 00:52:04,920 --> 00:52:07,800 얘네 다 리니어 맵핑이잖아요 그래서 1501 00:52:07,800 --> 00:52:09,000 C 곱하기 c가 다 필요하게 돼요 1502 00:52:09,000 --> 00:52:12,900 그리고 그런게 hw계가 있으니까 1503 00:52:12,900 --> 00:52:15,300 hwc 제곱이 나오게 되죠 이거 1504 00:52:15,300 --> 00:52:16,440 만드는데 1505 00:52:16,440 --> 00:52:17,220 근데 1506 00:52:17,220 --> 00:52:18,720 Q 해야 되고 K 해야 되고 V 해야 1507 00:52:18,720 --> 00:52:20,640 되고 그 다음에 마지막에 다시 1508 00:52:20,640 --> 00:52:22,020 원래대로 돌려 오는 5 하나 더 있다 1509 00:52:22,020 --> 00:52:24,720 그랬죠 그래서 w가 4개가 있었죠 1510 00:52:24,720 --> 00:52:28,020 그래서 4hwc 제곱이에요 이것도 1511 00:52:28,020 --> 00:52:30,540 한참 걸렸어요 전 이거 파악하는데 1512 00:52:30,540 --> 00:52:31,200 논문 보면 1513 00:52:31,200 --> 00:52:32,599 친절하지 않게 설명도 있어 가지고 1514 00:52:32,599 --> 00:52:35,640 아무튼 중요한 거는 이거는 1515 00:52:35,640 --> 00:52:37,020 원래 있던거나 이거 1516 00:52:37,020 --> 00:52:38,819 윈도우를 하나 똑같아요 어차피 1517 00:52:38,819 --> 00:52:41,040 qkb는 준비해야 돼요 우리가 이거에 1518 00:52:41,040 --> 00:52:43,079 있어서 이점은 없어요 1519 00:52:43,079 --> 00:52:46,260 오른쪽이 달라지는데 일반적인 1520 00:52:46,260 --> 00:52:48,480 vit 같은 경우에는요 1521 00:52:48,480 --> 00:52:50,040 코사인 시밀러리티를 이제 계산을 하게 1522 00:52:50,040 --> 00:52:52,260 되는데 그 1523 00:52:52,260 --> 00:52:54,119 벡터의 사이즈가 c이기 때문에 이런 1524 00:52:54,119 --> 00:52:56,880 걸 이제 hw만큼 있으니까 1525 00:52:56,880 --> 00:53:00,500 hwc만큼의 연산이 필요하게 돼요 1526 00:53:01,140 --> 00:53:02,880 근데 이제 그러고 나서 이거 웨이트를 1527 00:53:02,880 --> 00:53:04,819 할 때 또 한번 1528 00:53:04,819 --> 00:53:07,140 hc만큼이 필요하게 되죠 1529 00:53:07,140 --> 00:53:09,900 이 연산을 계속 ehwc만큼 해야 1530 00:53:09,900 --> 00:53:14,099 되는데 그게 그 1531 00:53:14,700 --> 00:53:16,740 hw계가 각각 다 한 번씩 쿼리로 1532 00:53:16,740 --> 00:53:18,359 쓰여야 되니까 그 곱해가지고 이렇게 1533 00:53:18,359 --> 00:53:20,640 나온 거예요 1534 00:53:20,640 --> 00:53:23,460 여기서 지금 뭐가 바뀌겠어요이 1535 00:53:23,460 --> 00:53:24,540 스윙 트랜스포머를 쓰면 뭐가 1536 00:53:24,540 --> 00:53:25,680 달라지냐면은 1537 00:53:25,680 --> 00:53:28,260 얘가 어텐드 하는 범위가 줄어들죠 1538 00:53:28,260 --> 00:53:30,780 hw만큼 봐야 되는게 아니라 1539 00:53:30,780 --> 00:53:32,819 앱만큼만 딱 보면 되기 때문에 1540 00:53:32,819 --> 00:53:36,059 hw 제곱이 m 제곱으로 바뀌게 돼요 1541 00:53:36,059 --> 00:53:38,640 근데 보통은 m 제곱이 hw보다 훨씬 1542 00:53:38,640 --> 00:53:42,119 작죠 hw는 아까 그 뭐냐 1543 00:53:42,119 --> 00:53:43,559 로우의 개수랑 컬럼의 개수예요 1544 00:53:43,559 --> 00:53:45,240 패치들이 쭉 나열되어 있는 보통 막 1545 00:53:45,240 --> 00:53:47,579 10개 뭐 이렇게 있을 텐데 1546 00:53:47,579 --> 00:53:49,079 m은 2 같은 거 썼죠 우리가 1547 00:53:49,079 --> 00:53:51,180 예제에서 이게 훨씬 더 작아지기 1548 00:53:51,180 --> 00:53:52,200 때문에 1549 00:53:52,200 --> 00:53:53,880 로컬하게 보는만큼 여기서 이제 1550 00:53:53,880 --> 00:53:55,980 계산량이 줄어들게 되는 거예요 뭐 1551 00:53:55,980 --> 00:53:57,660 그런 얘기에요 이거 1552 00:53:57,660 --> 00:53:59,460 디테일한 거는 이거 다시 한번 자세히 1553 00:53:59,460 --> 00:54:02,579 읽어보시면서 따라가 보세요 저도 이걸 1554 00:54:02,579 --> 00:54:05,240 파악하는데 한참 걸렸어요 1555 00:54:06,780 --> 00:54:09,119 자 요게 1556 00:54:09,119 --> 00:54:11,220 스윙 트랜스포머 모델이었구요 두 번째 1557 00:54:11,220 --> 00:54:13,380 모델이 이제 cbt라는 건데이 1558 00:54:13,380 --> 00:54:15,800 cbt라는 모델은 1559 00:54:15,800 --> 00:54:18,420 이 거의 비슷한 시기에 같이 1560 00:54:18,420 --> 00:54:20,099 만들어졌고 뭐 철학적으로는 사실 1561 00:54:20,099 --> 00:54:23,579 굉장히 비슷해요 그래서 1562 00:54:30,780 --> 00:54:31,980 앞에 거랑 조금 다른 방식으로 이걸 1563 00:54:31,980 --> 00:54:33,540 만들어 내게 되는데 1564 00:54:33,540 --> 00:54:35,099 얘는 컨버션을 좀 더 직설적으로 1565 00:54:35,099 --> 00:54:37,980 사용을 합니다 어떻게 하느냐 두 가지 1566 00:54:37,980 --> 00:54:40,020 모듈이 있는데 1567 00:54:40,020 --> 00:54:42,059 컨볼루션을 토큰 인베딩이라는 모듈은 1568 00:54:42,059 --> 00:54:43,859 그 1569 00:54:43,859 --> 00:54:45,180 cbt에서 이제 리사이징을 해주는 1570 00:54:45,180 --> 00:54:47,880 아까 같은 경우에는 우리가 그 1571 00:54:47,880 --> 00:54:49,619 c짜리 4개 붙인 다음에 1572 00:54:49,619 --> 00:54:52,079 FC 해가지고 ec로 만든다 그랬죠 1573 00:54:52,079 --> 00:54:54,720 얘는 대놓고 그냥 컨버전을 해요 1574 00:54:54,720 --> 00:54:58,260 이거 가지고 이거 만들고 이렇게 뭐 1575 00:54:58,260 --> 00:54:59,460 다음 거 만들고 쭉 이렇게 해서 1576 00:54:59,460 --> 00:55:01,440 만들고 1577 00:55:01,440 --> 00:55:03,599 진짜 말 그대로 컨버션을 해요 그래서 1578 00:55:03,599 --> 00:55:05,579 아웃풋의 크기도 그냥 이거예요 1579 00:55:05,579 --> 00:55:08,880 컨버전이랑 똑같아요 우리 봤던 거 1580 00:55:08,880 --> 00:55:10,619 스윙 트랜스포머에서 하는 그 패치 1581 00:55:10,619 --> 00:55:13,260 멀징이랑 되게 비슷한 걸 하는 건데 1582 00:55:13,260 --> 00:55:14,280 스윙 트랜스폼은 아까 어떻게 했다 1583 00:55:14,280 --> 00:55:16,520 그랬죠 1584 00:55:16,859 --> 00:55:18,599 연속으로 붙여 놓고 여기에 해당되는 1585 00:55:18,599 --> 00:55:20,280 애들 쭉 붙여 놓고 1586 00:55:20,280 --> 00:55:22,500 4개를 ec로 만들어 줬었죠 4c를 1587 00:55:22,500 --> 00:55:23,880 ec로 만들어졌죠 그거 1588 00:55:23,880 --> 00:55:25,500 프리커넥티드로 했죠 1589 00:55:25,500 --> 00:55:26,819 얘는 그냥 대놓고 콤보를 전환하는 1590 00:55:26,819 --> 00:55:27,660 거예요 1591 00:55:27,660 --> 00:55:30,420 근데 우리 수업에서 배웠었죠이 1592 00:55:30,420 --> 00:55:33,599 컨버션은 fc의 스페셜 케이스다 1593 00:55:33,599 --> 00:55:34,859 그러니까 1594 00:55:34,859 --> 00:55:36,780 결과 같은 거죠 f3로 할 거를 그냥 1595 00:55:36,780 --> 00:55:38,819 컨버션으로 했다는 거예요 1596 00:55:38,819 --> 00:55:42,119 그것만 달라진 거고 그래서 이거를 1597 00:55:42,119 --> 00:55:42,960 이제 1598 00:55:42,960 --> 00:55:44,700 트랜스포머 입장에서 보면 중간에 1599 00:55:44,700 --> 00:55:47,280 컨버션이 들어간 거지만 반대로 그냥 1600 00:55:47,280 --> 00:55:49,260 컨버션 원래 컨버션 네트워크였다고 1601 00:55:49,260 --> 00:55:52,319 생각하면은 반대로 이렇게 컨퍼런 원래 1602 00:55:52,319 --> 00:55:54,420 하는 거에 중간중간에 셀프어텐션이 더 1603 00:55:54,420 --> 00:55:56,520 들어가 있는 거라고 볼 수도 있어요 1604 00:55:56,520 --> 00:55:58,559 진짜 이거는 컨퍼런이랑 그 1605 00:55:58,559 --> 00:56:01,920 트랜스포머의 어떤 중간적인 모델이에요 1606 00:56:01,920 --> 00:56:03,420 그 다음에 1607 00:56:03,420 --> 00:56:05,040 컨솔루션을 트랜스포머 블록이라는게 1608 00:56:05,040 --> 00:56:06,720 있는데 1609 00:56:06,720 --> 00:56:10,319 얘도 우리가 그 qkb를 만들 때 1610 00:56:10,319 --> 00:56:12,980 원래 어떻게 만들었어요 1611 00:56:13,140 --> 00:56:14,599 그 1612 00:56:14,599 --> 00:56:16,200 wqwvwk 이거 곱해가지고 1613 00:56:16,200 --> 00:56:17,760 만들었었죠 1614 00:56:17,760 --> 00:56:19,800 곱한다는게 뭐예요 1615 00:56:19,800 --> 00:56:21,960 플리커넥티드죠 1616 00:56:21,960 --> 00:56:23,280 근데 1617 00:56:23,280 --> 00:56:24,780 곱하는게 아니라 얘네들도 컨버션을 할 1618 00:56:24,780 --> 00:56:27,420 거예요 그냥 그거예요 1619 00:56:27,420 --> 00:56:29,400 얘네들도 컨퍼런셜 필터가 되고 FC 1620 00:56:29,400 --> 00:56:30,920 웨잇이 아니라 그냥 컨버션이고 여전히 1621 00:56:30,920 --> 00:56:33,420 이거는 FC 스페셜 케이스이기 때문에 1622 00:56:33,420 --> 00:56:35,460 아무 문제가 없죠 1623 00:56:35,460 --> 00:56:37,260 그래서 모든 걸 그냥 컨버션으로 하는 1624 00:56:37,260 --> 00:56:38,460 거예요 1625 00:56:38,460 --> 00:56:40,079 여기 마지막에 하나 추가되어 있는 건 1626 00:56:40,079 --> 00:56:41,160 뭐냐면은 1627 00:56:41,160 --> 00:56:43,819 스퀴즈라는 거는 1628 00:56:44,520 --> 00:56:46,319 이 그 뭐죠 스트라이드 사이즈를 1629 00:56:46,319 --> 00:56:48,540 1보다 크게 해 가지고 1630 00:56:48,540 --> 00:56:50,099 펄쩍펄쩍 뛰어가면서 참조하게 해가지고 1631 00:56:50,099 --> 00:56:51,720 그 1632 00:56:51,720 --> 00:56:53,099 다음번 아웃풋 사이즈를 줄이는 1633 00:56:53,099 --> 00:56:55,200 메카니즘을 사용을 하게 돼요 1634 00:56:55,200 --> 00:56:57,839 그것만 좀 추가가 되게 되는데 1635 00:56:57,839 --> 00:57:00,000 얘 모델을 한번 살펴보시면은 1636 00:57:00,000 --> 00:57:01,740 자 아까랑 제가 똑같은 그림을 썼어요 1637 00:57:01,740 --> 00:57:04,440 일부러 이미지가 이렇게 들어오면은 1638 00:57:04,440 --> 00:57:06,599 얘를 그 1639 00:57:06,599 --> 00:57:07,380 첫 번째 1640 00:57:07,380 --> 00:57:08,520 conve 토큰 인베딩을 통과하게 1641 00:57:08,520 --> 00:57:09,839 되면 이게 결국 그냥 컨퍼런셜 하는 1642 00:57:09,839 --> 00:57:12,300 거예요 똑같이 그래서 1643 00:57:12,300 --> 00:57:13,079 얘가 1644 00:57:13,079 --> 00:57:14,040 컨퍼런스를 하고 나면 우리 사이즈 1645 00:57:14,040 --> 00:57:15,059 바뀌죠 1646 00:57:15,059 --> 00:57:17,339 h1w1 c1으로 바뀌죠 우리 이거 1647 00:57:17,339 --> 00:57:19,339 뭐 중간고사에서도 받고 많이 봤잖아요 1648 00:57:19,339 --> 00:57:22,800 사이즈가 바뀌게 되고 그 다음에 1649 00:57:22,800 --> 00:57:24,660 컨버지는 트랜스포머 블록에서는 얘는 1650 00:57:24,660 --> 00:57:26,280 그냥 1651 00:57:26,280 --> 00:57:27,619 트랜스포머 돌리는 거랑 똑같은데 1652 00:57:27,619 --> 00:57:30,059 거기서 하는 연산들이 1653 00:57:30,059 --> 00:57:31,380 폴리 커넥티드로 되어 있던게 전부 1654 00:57:31,380 --> 00:57:33,359 컨버션으로 바뀌기만 하고 다 똑같아요 1655 00:57:33,359 --> 00:57:36,720 그냥 얘도 사실상 그냥 그 트랜스포머 1656 00:57:36,720 --> 00:57:38,280 돌리는 거예요 1657 00:57:38,280 --> 00:57:40,079 그 뒤로 그냥 계속 똑같아요 요거 1658 00:57:40,079 --> 00:57:43,079 한번 할 때마다 사이즈는 바뀌어요 1659 00:57:43,079 --> 00:57:45,660 요거 할 때는 사이즈가 안 바뀌어요 1660 00:57:45,660 --> 00:57:47,819 트랜스포머니까 여기도 마찬가지로 1661 00:57:47,819 --> 00:57:50,099 사이즈 바뀌고 안 바뀌고 1662 00:57:50,099 --> 00:57:53,099 보시면은 컨퍼런저런 트랜스포머 1663 00:57:53,099 --> 00:57:55,680 블록이라는게 뭐냐면은 1664 00:57:55,680 --> 00:57:58,200 트랜스포머 블록처럼 생겼죠 모양은 1665 00:57:58,200 --> 00:58:00,420 근데요 셀프어텐션 할 때 1666 00:58:00,420 --> 00:58:05,099 얘네들의 연산이 컨버전인거에요 그것만 1667 00:58:06,720 --> 00:58:08,900 다른 거예요 1668 00:58:10,680 --> 00:58:13,079 자 여기서 하나 주목할 점은 1669 00:58:13,079 --> 00:58:14,880 맨 처음에 우리 몇 바에 몇 패치로 1670 00:58:14,880 --> 00:58:16,500 만드는 거 했었잖아요 항상 1671 00:58:16,500 --> 00:58:19,619 vit에서는 그게 없어요 1672 00:58:19,619 --> 00:58:21,059 그거 안 하고 그냥 바로 들어간 1673 00:58:21,059 --> 00:58:22,260 거예요 바로 컴포지션으로 하기 때문에 1674 00:58:22,260 --> 00:58:25,260 그걸 안 해도 돼요 그래서 1675 00:58:25,260 --> 00:58:26,099 non overapping 패치가 1676 00:58:26,099 --> 00:58:28,619 아니라 얘는 오블랙핑패치고요 1677 00:58:28,619 --> 00:58:30,599 얼마나 오버랩 될지 아니면 노노블랙 1678 00:58:30,599 --> 00:58:32,579 될지를 뭘로 조절하냐면 1679 00:58:32,579 --> 00:58:33,900 스트라이드 사이즈를 가지고 조절을 1680 00:58:33,900 --> 00:58:35,579 해요 1681 00:58:35,579 --> 00:58:38,400 실제 이제 아키텍처가 나와 있는데 1682 00:58:38,400 --> 00:58:40,200 패치 크기를 뭐 4로 하고 싶다라고 1683 00:58:40,200 --> 00:58:43,740 했을 때 지금 보시면은 이거예요 1684 00:58:43,740 --> 00:58:46,500 리사이징을 그 예를 가지고 하는 1685 00:58:46,500 --> 00:58:48,599 거예요이 스트라이드를 가지고 1686 00:58:48,599 --> 00:58:50,819 그래가지고 224바 224를 지금 1687 00:58:50,819 --> 00:58:53,760 56으로 만들고 싶은데 그거를이 p를 1688 00:58:53,760 --> 00:58:55,020 4로 명시적으로 해가지고 쪼개는 1689 00:58:55,020 --> 00:58:56,640 방식이 아니라 1690 00:58:56,640 --> 00:58:58,440 이걸 러프하게 4가 되게 하려면 1691 00:58:58,440 --> 00:58:59,940 슬라이드를 4로 하면 되죠 그리고 1692 00:58:59,940 --> 00:59:01,680 적절하게 그 패딩 해주면 이게 맞출 1693 00:59:01,680 --> 00:59:02,940 수 있죠 1694 00:59:02,940 --> 00:59:04,200 그렇게 해서 맞춘 거예요 1695 00:59:04,200 --> 00:59:05,819 4개에 한 번씩만 사용을 하니까 대충 1696 00:59:05,819 --> 00:59:07,859 1/4로 줄어드는 거예요 1697 00:59:07,859 --> 00:59:10,880 그렇게 줄여주고 이거 c는 1698 00:59:14,579 --> 00:59:15,900 vit처럼 트랜스포머가 들어가는데 1699 00:59:15,900 --> 00:59:19,740 여기도 그게 컨버지 있다 그것만 다른 1700 00:59:19,740 --> 00:59:21,920 거예요 1701 00:59:22,559 --> 00:59:25,079 대충 이해되시나요 너무 1702 00:59:25,079 --> 00:59:26,339 복잡한 이야기를 제가 한꺼번에 많이 1703 00:59:26,339 --> 00:59:27,260 하고 있는 거 1704 00:59:27,260 --> 00:59:29,400 같은데이 논문들을 한번 좀 읽어보세요 1705 00:59:29,400 --> 00:59:31,619 그 스윙 트랜스포머가 너무 굉장히 잘 1706 00:59:31,619 --> 00:59:34,140 썼어요 그거 꼭 읽어보시고 1707 00:59:34,140 --> 00:59:35,339 이 1708 00:59:35,339 --> 00:59:38,099 강의 다시 한번 보시면서 좀 개념 잘 1709 00:59:38,099 --> 00:59:39,359 잡으시면 좋을 것 같습니다 1710 00:59:39,359 --> 00:59:42,000 굉장히 많이 쓰이는 모델들이에요 1711 00:59:42,000 --> 00:59:45,059 한 15분 남았는데 이미지 1712 00:59:45,059 --> 00:59:46,559 했으니까 이제 비디오로 들어가 볼게요 1713 00:59:46,559 --> 00:59:48,480 사실 본질적으로 그렇게 다른 건 1714 00:59:48,480 --> 00:59:50,599 없어요 1715 00:59:53,220 --> 00:59:55,260 이미지로 만든 트랜스포머가 이름이 1716 00:59:55,260 --> 00:59:56,819 비전트랜스포머였는데 1717 00:59:56,819 --> 00:59:58,619 얘네는 비디오 비전 트랜스포머라고 1718 00:59:58,619 --> 00:59:59,460 해서 1719 00:59:59,460 --> 01:00:02,119 bbit라고 불러요 이런 모델이 이제 1720 01:00:02,119 --> 01:00:04,260 21년도 3월에 1721 01:00:04,260 --> 01:00:05,579 다른 사람들이 스윙 트랜스포머 하고 1722 01:00:05,579 --> 01:00:07,500 있을 때이 사람들은 이미지 이제 1723 01:00:07,500 --> 01:00:09,780 했으니까 비디오 해보자 해서 비디오를 1724 01:00:09,780 --> 01:00:11,040 했던 거 같아요 1725 01:00:11,040 --> 01:00:13,980 그 1726 01:00:13,980 --> 01:00:15,119 얘네들이 이제 모델을 4개를 1727 01:00:15,119 --> 01:00:16,680 얘기하는데 그 중에 첫 번째 모델 1728 01:00:16,680 --> 01:00:19,440 일단 가장 무식한 모델이에요 1729 01:00:19,440 --> 01:00:21,359 vit 아이디어를 그냥 이미지 1730 01:00:21,359 --> 01:00:22,740 크래플리케이션이 아니라 비디오 1731 01:00:22,740 --> 01:00:23,940 크래스피케이션이다 그대로 도입을 한 1732 01:00:23,940 --> 01:00:27,000 거예요 어떻게 하느냐 우리가 이미지 1733 01:00:27,000 --> 01:00:30,000 같은 경우에는 프레임을 그 1734 01:00:30,000 --> 01:00:31,619 피바이 필요 아까 나눴다 그랬죠 1735 01:00:31,619 --> 01:00:33,180 pvp짜리 토큰으로 쪼개는데 얘는 1736 01:00:33,180 --> 01:00:34,740 이제 로테이션만 좀 다르게 썼어요 1737 01:00:34,740 --> 01:00:36,839 어떻게 하냐면은 1738 01:00:36,839 --> 01:00:39,119 nw 곱하기 NH 개수 1739 01:00:39,119 --> 01:00:40,740 그러니까 이제 개수로 쪼개는 개념으로 1740 01:00:40,740 --> 01:00:43,200 얘는 그 카운터를 발견한 건데 그 1741 01:00:43,200 --> 01:00:46,200 위드 쪽이 n개 n nw게 화이트 1742 01:00:46,200 --> 01:00:48,839 쪽이 nhk가 되도록 쪼갠다라는 1743 01:00:48,839 --> 01:00:51,420 거고요 뭐 정사각형 같으면 저거 1744 01:00:51,420 --> 01:00:53,160 두개가 똑같겠죠 1745 01:00:53,160 --> 01:00:54,540 근데 그게 이미지가 여러 장이 1746 01:00:54,540 --> 01:00:55,440 있으니까 1747 01:00:55,440 --> 01:00:56,640 n틱의 1748 01:00:56,640 --> 01:00:57,599 패치가 1749 01:00:57,599 --> 01:00:59,460 요만큼이 있게 돼요 이렇게 1750 01:00:59,460 --> 01:01:01,440 NT 곱하기 nw 곱하기 nh가 있게 1751 01:01:01,440 --> 01:01:02,880 돼요 1752 01:01:02,880 --> 01:01:04,280 요만큼의 이미지 패치가 있는 거고 1753 01:01:04,280 --> 01:01:06,420 그것들을 그냥 1754 01:01:06,420 --> 01:01:08,520 트랜스포머에다 다 집어넣고 1755 01:01:08,520 --> 01:01:10,799 컨텍솔라에서 시켜 가지고 1756 01:01:10,799 --> 01:01:11,700 뽑아내는 거예요 그리고 아까 했던 1757 01:01:11,700 --> 01:01:12,799 거랑 1758 01:01:12,799 --> 01:01:15,059 똑같이이 그림 그대로죠 지금 이거 다 1759 01:01:15,059 --> 01:01:16,400 만들어 가지고 토큰으로 만들어 놓고 1760 01:01:16,400 --> 01:01:17,940 이거 1761 01:01:17,940 --> 01:01:19,920 계속 돌려 가지고 앨범 돌려 가지고 1762 01:01:19,920 --> 01:01:22,140 뽑아내면 클래스 나오는 거 1763 01:01:22,140 --> 01:01:24,180 그러니까 한마디로 말하면 이미지가 1764 01:01:24,180 --> 01:01:25,619 여러 장이잖아요 1765 01:01:25,619 --> 01:01:27,000 vit랑 똑같은데 1766 01:01:27,000 --> 01:01:28,859 vit는 거기 있는 이미지가 한 1767 01:01:28,859 --> 01:01:30,420 이미지 한 장을 쪼개는 것들이 1768 01:01:30,420 --> 01:01:32,460 들어갔었죠 그게 여러 장이 있는 1769 01:01:32,460 --> 01:01:33,839 거예요 그거 그냥 단 한꺼번에 1770 01:01:33,839 --> 01:01:35,099 집어넣고 1771 01:01:35,099 --> 01:01:36,240 싹 해가지고 여기 이거 뭐에 대한 1772 01:01:36,240 --> 01:01:39,599 비디오냐 이거 찾게 한 거예요 1773 01:01:39,599 --> 01:01:42,200 계산 내용 어떻게 될까요 1774 01:01:42,420 --> 01:01:44,240 h 쪽 재고 W 1775 01:01:44,240 --> 01:01:47,700 3개가 다 똑같으면 n의 6승 1776 01:01:47,700 --> 01:01:49,400 감당이 안 되는 시간이 걸리겠죠 1777 01:01:49,400 --> 01:01:51,240 어마어마하게 시간이 걸리겠죠 그래서 1778 01:01:51,240 --> 01:01:55,380 이제이 논문에이 흐름은 저렇게 하니까 1779 01:01:55,380 --> 01:01:57,299 정말 느리더라 이걸 어떻게 하면 더 1780 01:01:57,299 --> 01:01:58,380 빠르면서도 1781 01:01:58,380 --> 01:01:59,819 성능이 안 떨어지게 만들 수 있을까에 1782 01:01:59,819 --> 01:02:01,339 초점을 맞추게 돼요 비디오다 보니까 1783 01:02:01,339 --> 01:02:03,900 그래서 이제 처음에는 좀 무식한 1784 01:02:03,900 --> 01:02:07,020 아이디어를 몇 개 내는데 이런 거죠 1785 01:02:07,020 --> 01:02:08,400 프레임 다 쓰지 말고 몇 번에 한 1786 01:02:08,400 --> 01:02:11,160 개씩만 쓰자 두 번에 하나씩만 쓰자 1787 01:02:11,160 --> 01:02:14,180 짝수번 프레임만 쓰자 이런 거예요 1788 01:02:15,380 --> 01:02:18,420 1번하고 3번만 쓰고 1789 01:02:18,420 --> 01:02:19,440 짝수 번호 버리는 거예요 이렇게 1790 01:02:19,440 --> 01:02:21,180 유니폼 하게 프레임을 샘플링 해서 쓸 1791 01:02:21,180 --> 01:02:23,819 수 있어요 이게 시간 간격이 좁으면 1792 01:02:23,819 --> 01:02:26,099 어차피 되게 비슷하잖아요 그래서 그냥 1793 01:02:26,099 --> 01:02:28,559 몇 개 한 번씩 띄엄띄엄 쓰자라는게 1794 01:02:28,559 --> 01:02:30,920 첫 번째 아이디어고요 두 1795 01:02:30,920 --> 01:02:32,640 번째는이 1796 01:02:32,640 --> 01:02:34,740 튜블렛이라 그래가지고 이제 1797 01:02:34,740 --> 01:02:36,000 인접해 있는 프레임 예를 들어 1798 01:02:36,000 --> 01:02:37,740 5장끼리 같은 자리에 있는 걸 1799 01:02:37,740 --> 01:02:39,119 한꺼번에 1800 01:02:39,119 --> 01:02:40,980 x1이라고 만들어 쓰는 거예요요 1801 01:02:40,980 --> 01:02:42,839 픽셀들을 다 모아 가지고 이렇게 1802 01:02:42,839 --> 01:02:44,099 해주면은 1803 01:02:44,099 --> 01:02:47,000 5장이 한꺼번에 하나로 1804 01:02:47,819 --> 01:02:50,700 줄여주는 효과가 있겠죠 이런 무식한 1805 01:02:50,700 --> 01:02:52,079 시도들을 했고요 1806 01:02:52,079 --> 01:02:53,640 효과가 조금 있었다고 하고 이건 1807 01:02:53,640 --> 01:02:55,740 중요한게 아니고 1808 01:02:55,740 --> 01:02:57,900 모델을 3개를 더 만들어요 어떻게 1809 01:02:57,900 --> 01:03:00,059 하면은 저거를 무식하게 모든 패치들을 1810 01:03:00,059 --> 01:03:01,619 다 컨텍솔라 이제 한꺼번에 하는게 1811 01:03:01,619 --> 01:03:03,480 아니라 좀 더 효율적으로 할 수 있는 1812 01:03:03,480 --> 01:03:04,500 방법이 있을까 1813 01:03:04,500 --> 01:03:07,020 해서 나온게이 1814 01:03:07,020 --> 01:03:09,420 백토라이즈 모델 모델 2에요 이거는 1815 01:03:09,420 --> 01:03:12,359 이게 사실 이제 가장 좀 그 1816 01:03:12,359 --> 01:03:14,280 직관적이고 좀 좋은 모델인데 어떻게 1817 01:03:14,280 --> 01:03:16,440 되는지 한번 보시면요 1818 01:03:16,440 --> 01:03:20,040 스페셜하고 템퍼럴이 2단계로 가요 1819 01:03:20,040 --> 01:03:22,260 인풋으로 들어올 때 이미지가 여러 1820 01:03:22,260 --> 01:03:23,240 장이 들어오잖아요 1821 01:03:23,240 --> 01:03:26,220 이미지 하나하나가 스페셜 트랜스포머 1822 01:03:26,220 --> 01:03:27,900 인코더에 들어가요 1823 01:03:27,900 --> 01:03:29,579 요거는 우리가 아까 봤던 그냥 이미지 1824 01:03:29,579 --> 01:03:32,099 vit랑 완전히 똑같은 거예요 이미지 1825 01:03:32,099 --> 01:03:34,559 한 장 한 장 단위로 얘를 모델링을 1826 01:03:34,559 --> 01:03:36,420 하는 거예요 그냥 vit로 1827 01:03:36,420 --> 01:03:37,740 그리고 1828 01:03:37,740 --> 01:03:39,119 얘가 그 1829 01:03:39,119 --> 01:03:40,680 CLS 토큰에서 나오는게이 이미지 1830 01:03:40,680 --> 01:03:42,720 전체를 표현한다 그랬죠 아까 1831 01:03:42,720 --> 01:03:44,819 그게요 이미지를 표현하게 하고 1832 01:03:44,819 --> 01:03:48,119 그러면은 그 이미지 벡터가 1833 01:03:48,119 --> 01:03:49,520 쭉 시퀀스로 나오겠죠 1834 01:03:49,520 --> 01:03:52,680 그게 들어가는게 두 번째 있는 템퍼럴 1835 01:03:52,680 --> 01:03:55,079 인코더에요 1836 01:03:55,079 --> 01:03:56,400 이해되세요 1837 01:03:56,400 --> 01:03:57,480 그러니까 아래쪽에 있는 거는 1838 01:03:57,480 --> 01:04:00,660 vit구요 위에 있는 거는 우리가 1839 01:04:00,660 --> 01:04:01,500 지난 시간에 배웠던 그냥 진짜 1840 01:04:01,500 --> 01:04:03,660 제너럴한 트랜스포머예요 1841 01:04:03,660 --> 01:04:05,220 시퀀스 오브 썸띵이 들어가잖아요 지금 1842 01:04:05,220 --> 01:04:06,920 시퀀스 프레임 인베딩이 들어가잖아요 1843 01:04:06,920 --> 01:04:09,059 그래서 그냥 트랜스포머 돌려주는 1844 01:04:09,059 --> 01:04:10,260 거예요 1845 01:04:10,260 --> 01:04:11,160 그래서 1846 01:04:11,160 --> 01:04:12,359 스페셜한 거랑 1847 01:04:12,359 --> 01:04:14,700 템포를 한 거를 이렇게 쪼개 가지고 1848 01:04:14,700 --> 01:04:16,020 스페셜한 거 먼저 해서 인벤딩 한번 1849 01:04:16,020 --> 01:04:18,180 해 놓고 올라가서 템포를 하게 보게 1850 01:04:18,180 --> 01:04:20,819 하는 식으로 이걸 만들어 놨어요 1851 01:04:20,819 --> 01:04:21,720 그래서 1852 01:04:21,720 --> 01:04:22,859 타임콤프레스티가 어떻게 줄어들게 1853 01:04:22,859 --> 01:04:24,839 되냐면 시간 1854 01:04:24,839 --> 01:04:28,260 쪽이 따로 빠져나오면서 아래쪽이 지금 1855 01:04:28,260 --> 01:04:32,220 vit랑 동일하게 얘네 4승이 되고이 1856 01:04:32,220 --> 01:04:33,780 템포러란 쪽이 n 제곱이 돼 가지고 1857 01:04:33,780 --> 01:04:34,920 요거 두 개 더한 만큼이 되게 돼요 1858 01:04:34,920 --> 01:04:36,960 아까 했던 얘는 6승보다 훨씬 1859 01:04:36,960 --> 01:04:39,200 빨라지겠죠 1860 01:04:39,900 --> 01:04:41,579 됐나요 1861 01:04:41,579 --> 01:04:43,859 요게 두 번째 모델이고요 1862 01:04:43,859 --> 01:04:45,780 두 개를 더 시도했는데 세 번째 1863 01:04:45,780 --> 01:04:47,760 모델은이 1864 01:04:47,760 --> 01:04:49,319 백토라이즈 셀프어텐션이라고 해가지고 1865 01:04:49,319 --> 01:04:50,880 이것도 이제 그림 보시면 조금 더 1866 01:04:50,880 --> 01:04:54,720 이해하기 쉬운데 그 1867 01:04:54,720 --> 01:04:56,579 토큰인 베딩이 들어오면요 1868 01:04:56,579 --> 01:04:59,000 이게 1869 01:04:59,339 --> 01:05:01,799 스페셜한 셀포텐션 블록이 있고 1870 01:05:01,799 --> 01:05:03,480 템포러란 셀프테이션 블록 있고 여기 1871 01:05:03,480 --> 01:05:04,740 두 개를요 내부에서 나눠서 하는 1872 01:05:04,740 --> 01:05:06,599 거예요 1873 01:05:06,599 --> 01:05:08,220 셀프어텐션 할 때 1874 01:05:08,220 --> 01:05:10,559 스페셜 한쪽만 먼저 보고 한번 이렇게 1875 01:05:10,559 --> 01:05:12,059 해서 자기를 업데이트 해주고 원래는 1876 01:05:12,059 --> 01:05:14,640 이게 이게 없을 때는 전체를 다 보죠 1877 01:05:14,640 --> 01:05:16,260 근데 얘는 같은 프레임에 해당되는 1878 01:05:16,260 --> 01:05:18,000 것만 먼저 봐서 자기를 한번 업데이트 1879 01:05:18,000 --> 01:05:21,000 해주고 그 다음에 같은 자리에 있는 1880 01:05:21,000 --> 01:05:22,559 다른 시간에 있는 거를 한번 쭉 보고 1881 01:05:22,559 --> 01:05:24,000 업데이트 해주고 1882 01:05:24,000 --> 01:05:25,380 요렇게 반복되게 만들어 놓은 거예요 1883 01:05:25,380 --> 01:05:28,200 이걸 두 개 내부에서 쪼개서 1884 01:05:28,200 --> 01:05:30,599 이것도 괜찮은 아이디어죠 1885 01:05:30,599 --> 01:05:32,579 스페셜이랑 템포를 쪼개는데 1886 01:05:32,579 --> 01:05:34,200 스페셜 먼저 다 끝내고 템포를 1887 01:05:34,200 --> 01:05:36,119 한꺼번에 하는게 아니라 1888 01:05:36,119 --> 01:05:38,640 각각 패치 안에서 자기 자신을 할 때 1889 01:05:38,640 --> 01:05:40,680 스페셜하게 어텐션을 한번 해주고 1890 01:05:40,680 --> 01:05:41,940 템포를 하기 어텐션 한번 해주고 1891 01:05:41,940 --> 01:05:44,220 요거를 번갈아가면서 하는 거예요 1892 01:05:44,220 --> 01:05:47,700 자 여기는 이렇게 하면은 1893 01:05:47,700 --> 01:05:49,440 CLS 토큰을 넣는게 조금 애매해져요 1894 01:05:49,440 --> 01:05:51,059 얘는 1895 01:05:51,059 --> 01:05:52,680 스페셜은 어디에 속해야 되고 템포러는 1896 01:05:52,680 --> 01:05:53,579 어디에 속해야 될지가 되게 1897 01:05:53,579 --> 01:05:54,839 애매하잖아요 1898 01:05:54,839 --> 01:05:56,099 얘는 이거를 못 넣는다는게 좀 1899 01:05:56,099 --> 01:05:58,339 단점이에요 1900 01:05:58,680 --> 01:05:59,940 그 다음에 1901 01:05:59,940 --> 01:06:01,920 4번은 우리가 1902 01:06:01,920 --> 01:06:04,920 멀티 헤드 셀프로텐션을 하니까 그 1903 01:06:04,920 --> 01:06:07,020 헤드를 쪼개자라는 아이디어에요 1904 01:06:07,020 --> 01:06:08,819 헤드를 몇 개는 스페셜 용으로 쓰고 1905 01:06:08,819 --> 01:06:11,400 몇 개는 템퍼럴 용으로 쓰자 그냥 1906 01:06:11,400 --> 01:06:12,480 그거예요 1907 01:06:12,480 --> 01:06:14,760 식은 되게 복잡하게 써 있지만 1908 01:06:14,760 --> 01:06:17,280 그렇게 해주면은 어쨌든 같은 개수의 1909 01:06:17,280 --> 01:06:19,260 헤드를 합쳐서 쓰게 되니까 근데 1910 01:06:19,260 --> 01:06:20,579 각각의 헤드가 전체를 어떻게 하는게 1911 01:06:20,579 --> 01:06:21,480 아니라 1912 01:06:21,480 --> 01:06:22,859 얘는 스페셜만 보고 얘는 10%만 1913 01:06:22,859 --> 01:06:23,760 보니까 1914 01:06:23,760 --> 01:06:26,160 계산량이 줄어들겠죠 1915 01:06:26,160 --> 01:06:27,539 그래서 모델을 지금 제가 4개를 1916 01:06:27,539 --> 01:06:29,880 소개를 했는데 1917 01:06:29,880 --> 01:06:31,520 결과를 보면요 1918 01:06:31,520 --> 01:06:33,960 무식하게 다 하는게 어쨌든 성능은 1919 01:06:33,960 --> 01:06:35,460 제일 잘 나와요 시간을 오래 걸리지만 1920 01:06:35,460 --> 01:06:37,980 시간은 제일 오래 걸리는데 1921 01:06:37,980 --> 01:06:39,420 플러스도 제일 많은데 1922 01:06:39,420 --> 01:06:41,700 성능은 어쨌든 제일 잘 나오고요 두 1923 01:06:41,700 --> 01:06:43,200 번째 모델이 있었죠 1924 01:06:43,200 --> 01:06:45,180 스페셜 먼저 쭉 해서 피쳐 뽑고 그거 1925 01:06:45,180 --> 01:06:45,839 가지고 1926 01:06:45,839 --> 01:06:48,000 템포를 가는 거가이 1927 01:06:48,000 --> 01:06:49,460 성능도 나머지 3개 중에 제일 좋고 1928 01:06:49,460 --> 01:06:51,780 시간도 가장 적게 걸리고 가장 1929 01:06:51,780 --> 01:06:54,119 효율적이에요 그래서 보통 bbc라 1930 01:06:54,119 --> 01:06:55,319 그러면은이 모델 2를 가장 많이 1931 01:06:55,319 --> 01:06:58,579 생각을 하고 많이 사용을 해요 1932 01:07:01,260 --> 01:07:05,220 자이 비빗의 문제점은 뭐냐면요 1933 01:07:05,220 --> 01:07:07,440 vit는 아까 굉장히 큰 데이터셋에 1934 01:07:07,440 --> 01:07:08,520 대해서 1935 01:07:08,520 --> 01:07:10,140 학습을 시켜야만 잘 돌아간다라고 1936 01:07:10,140 --> 01:07:11,640 얘기를 했는데 1937 01:07:11,640 --> 01:07:13,079 문제는 비디오는 그렇게 큰 데이터셋이 1938 01:07:13,079 --> 01:07:13,940 없어요 1939 01:07:13,940 --> 01:07:16,440 비디오 개수 기준으로 봤을 때 1940 01:07:16,440 --> 01:07:17,880 커봤자 1941 01:07:17,880 --> 01:07:19,980 텐밀리언이 안 되어 지금 이미지는 뭐 1942 01:07:19,980 --> 01:07:22,680 빌리언 단위까지 가는데 그래서 1943 01:07:22,680 --> 01:07:23,880 근데 얘가 배워야 될 건 훨씬 더 1944 01:07:23,880 --> 01:07:26,160 복잡하잖아요 배워야 될 패턴이 1945 01:07:26,160 --> 01:07:27,299 그래가지고 1946 01:07:27,299 --> 01:07:29,579 vit로 먼저 이니셜라이즈를 해놓고이 1947 01:07:29,579 --> 01:07:31,500 모델 2의 장점이 그거예요 1948 01:07:31,500 --> 01:07:34,619 얘는이 안에 있는 이미지 쪽을 스페셜 1949 01:07:34,619 --> 01:07:35,280 쪽을 1950 01:07:35,280 --> 01:07:36,539 프리트레인지 모델을 그냥 갖다 쓸 수 1951 01:07:36,539 --> 01:07:38,760 있다는게 장점이에요 1952 01:07:38,760 --> 01:07:41,160 얘가 그냥 이미지 vip니까 1953 01:07:41,160 --> 01:07:43,280 그래 가지고 1954 01:07:45,440 --> 01:07:48,119 그래서이 모델 추가 좀 트레이드 1955 01:07:48,119 --> 01:07:51,200 오프가 좋기도 하고 저거를 1956 01:07:52,079 --> 01:07:53,339 갖다 쓸 수도 있어서 좀 많이 쓰인다 1957 01:07:53,339 --> 01:07:57,059 이런 얘기입니다이 1958 01:08:01,799 --> 01:08:03,240 논문에서도 5가지 모델을 얘기를 1959 01:08:03,240 --> 01:08:04,079 했는데 1960 01:08:04,079 --> 01:08:05,900 맨 왼쪽 거는 그냥 기존 1961 01:08:05,900 --> 01:08:08,039 vit고이 4개 중에 1962 01:08:08,039 --> 01:08:09,240 앞에 거 두 개를 우리가 방금 봤던 1963 01:08:09,240 --> 01:08:11,579 비빔 모델이랑 거의 똑같아요 그리고 1964 01:08:11,579 --> 01:08:13,500 뭐 새로운 거 두 개를 했는데 이것도 1965 01:08:13,500 --> 01:08:14,940 그림으로 보시면 조금 더 이해가 될 1966 01:08:14,940 --> 01:08:16,620 거예요 1967 01:08:16,620 --> 01:08:19,020 이 파란색이 컬이에요 내가 지금 쿼리 1968 01:08:19,020 --> 01:08:20,698 주인공인데 1969 01:08:20,698 --> 01:08:23,399 어디를 참조하느냐에요 그냥 1970 01:08:23,399 --> 01:08:25,259 vit 같은 경우에는 같은 이미지 1971 01:08:25,259 --> 01:08:27,359 안에 있는 걸 다 보는 거죠 1972 01:08:27,359 --> 01:08:28,140 얘네들이 1973 01:08:28,140 --> 01:08:30,799 키랑 밸류가 되요 1974 01:08:36,420 --> 01:08:38,880 비비 모델 3번은 뭐였냐면요 1975 01:08:38,880 --> 01:08:42,480 스페셜하게 보고 그 1976 01:08:42,660 --> 01:08:44,339 템포를 하게는 같은 자리에 있는 것만 1977 01:08:44,339 --> 01:08:46,859 보는 거예요 연두색이랑 빨간색 그거를 1978 01:08:46,859 --> 01:08:48,479 번갈아가면서 보는 거였죠 1979 01:08:48,479 --> 01:08:50,160 요게 비빔 모델 3번이었고요 얘네들도 1980 01:08:50,160 --> 01:08:52,738 이런 다른 이름으로 이걸 해놨고 그 1981 01:08:52,738 --> 01:08:53,819 다음에 뭐 1982 01:08:53,819 --> 01:08:55,679 스파르스 로컬 글로벌어텐션이라고 1983 01:08:55,679 --> 01:08:57,600 그래가지고 이게 한칸씩 띄어서 이렇게 1984 01:08:57,600 --> 01:09:00,060 보는 것도 뭐 이런 식으로 좀 다양한 1985 01:09:00,060 --> 01:09:01,500 트릭들을 써봤어요 근데 이제 그림 1986 01:09:01,500 --> 01:09:03,000 보시면 알겠지만 뭐 그렇게 크게 다를 1987 01:09:03,000 --> 01:09:04,500 건 없어요 사실 1988 01:09:04,500 --> 01:09:07,259 얘도 뭐 XG 어텐션에서 가로 쪽으로 1989 01:09:07,259 --> 01:09:08,759 세로 쪽으로 시간적으로 1990 01:09:08,759 --> 01:09:10,198 각각 같은 줄에 있는 것들만 보고 뭐 1991 01:09:10,198 --> 01:09:11,819 이런 식으로 하는데 1992 01:09:11,819 --> 01:09:14,779 성능이 그렇게 다르지는 않아요 1993 01:09:14,880 --> 01:09:16,439 네 이렇게 하고 오늘의 마지막 1994 01:09:16,439 --> 01:09:17,939 모델까지 왔어요 1995 01:09:17,939 --> 01:09:19,679 mvit인데 1996 01:09:19,679 --> 01:09:22,679 요거는 아까 우리 CBT 봤죠 이미지 1997 01:09:22,679 --> 01:09:23,520 쪽에서 1998 01:09:23,520 --> 01:09:24,899 컨버지는 다시 도입해 가지고 1999 01:09:24,899 --> 01:09:27,299 효율적으로 만들었던게 cbt였죠 그 2000 01:09:27,299 --> 01:09:28,799 아이디어를 그냥 비디오로 가져온 2001 01:09:28,799 --> 01:09:31,198 모델이라고 보시면 돼요 2002 01:09:31,198 --> 01:09:32,160 얘는 2003 01:09:32,160 --> 01:09:33,839 멀티 헤드 풀링 어텐션이라는 거를 2004 01:09:33,839 --> 01:09:37,259 사용을 하는데 여기 보시면 2005 01:09:37,259 --> 01:09:39,120 인풋이 들어오면 얘를 2006 01:09:39,120 --> 01:09:41,580 커리 키 밸류로 만들게 되죠 우리가 2007 01:09:41,580 --> 01:09:42,839 그렇게 해서 만든 거를 원래 그냥 2008 01:09:42,839 --> 01:09:47,040 쓰는데 얘는 지금 보시면은 지금 2009 01:09:50,880 --> 01:09:53,640 타임 쪽 그 다음에 화이트 쪽 위드 2010 01:09:53,640 --> 01:09:54,780 쪽에 2011 01:09:54,780 --> 01:09:56,940 크기가 바뀌어요 우리가 원하는 숫자로 2012 01:09:56,940 --> 01:09:58,800 바뀌는 거예요 그거 디멘션 리덕션 2013 01:09:58,800 --> 01:10:00,840 해주는 오퍼레이션이에요 2014 01:10:00,840 --> 01:10:03,739 저걸 써 가지고 2015 01:10:04,620 --> 01:10:07,260 크기를 줄여주는 거고 그 다음에 2016 01:10:07,260 --> 01:10:10,020 쿼리 키 밸류 가지고 우리가 그 2017 01:10:10,020 --> 01:10:11,880 셀프어텐션 할 때 저거 줄어든 크기로 2018 01:10:11,880 --> 01:10:13,920 하는 거예요 그래서이 이후로는 다 2019 01:10:13,920 --> 01:10:16,080 그냥 cbt에 있는 아이디어 그대로 2020 01:10:16,080 --> 01:10:18,300 갔다고 보시면 되는데 그걸 제가 2021 01:10:18,300 --> 01:10:19,980 여기다 지금 그려놨어요 2022 01:10:19,980 --> 01:10:21,480 요게 아까 우리가 봤던 CBT 2023 01:10:21,480 --> 01:10:22,980 모델이죠 2024 01:10:22,980 --> 01:10:24,960 색깔도 그대로 가져왔어요 2025 01:10:24,960 --> 01:10:27,179 이게 지금이 모델에 있는 2026 01:10:27,179 --> 01:10:29,219 mvit 아키텍처에요 2027 01:10:29,219 --> 01:10:30,300 자 2028 01:10:30,300 --> 01:10:32,100 데이터가 일단 들어오고요 2029 01:10:32,100 --> 01:10:35,280 큐브 1이 아까 거기 있던 컴퓨터큰 2030 01:10:35,280 --> 01:10:36,780 인베릭 레이어 요거랑 되게 비슷한 2031 01:10:36,780 --> 01:10:39,780 역할을 하는 거예요 여기 보시면은 2032 01:10:39,780 --> 01:10:41,460 스트라이드 크기 조절해 가지고 2033 01:10:41,460 --> 01:10:43,320 얘가 그 2034 01:10:43,320 --> 01:10:44,880 얼마나 줄어들게 될지를 정한다 그랬죠 2035 01:10:44,880 --> 01:10:46,679 그거 가지고 하는게 똑같은 거예요 2036 01:10:46,679 --> 01:10:48,679 시간축만 추가된 거예요 2037 01:10:48,679 --> 01:10:51,239 여기 보면 시간적으로 가는 2038 01:10:51,239 --> 01:10:53,159 스트라이드로 나눠지고 공간 쪽은 2039 01:10:53,159 --> 01:10:54,960 아까랑 똑같이 4로 나눠진게 크기가 2040 01:10:54,960 --> 01:10:56,880 이렇게 줄어들게 되겠죠 그거 2041 01:10:56,880 --> 01:10:58,920 해주는게요 큐브 원이고요 2042 01:10:58,920 --> 01:11:01,140 그 다음에 2043 01:11:01,140 --> 01:11:03,120 nvit는 이제 피처맵을 줄일 때 2044 01:11:03,120 --> 01:11:06,120 풀링 오퍼레이션을 써요이 이후로는 2045 01:11:06,120 --> 01:11:07,679 그 2046 01:11:07,679 --> 01:11:09,179 cbt에서는 아까 컴퓨슨다 그랬는데 2047 01:11:09,179 --> 01:11:11,940 얘는 풀링을 써주게 돼요 사실 그 2048 01:11:11,940 --> 01:11:13,500 컨트롤 쓰는게 더 제너럴 하다고 2049 01:11:13,500 --> 01:11:15,480 우리가 얘기를 했었죠 앞부분에서 2050 01:11:15,480 --> 01:11:16,140 근데 2051 01:11:16,140 --> 01:11:17,760 얘는 그냥 아예 픽스되어 있는 풀링 2052 01:11:17,760 --> 01:11:19,500 오퍼레이션을 써가지고 더 2053 01:11:19,500 --> 01:11:21,179 계산을 줄이는 방식으로 2054 01:11:21,179 --> 01:11:21,800 택했어요 2055 01:11:21,800 --> 01:11:23,820 여기서부터는 그냥 2056 01:11:23,820 --> 01:11:25,380 mhp랑 mmp가 이렇게 쭉 돌아가게 2057 01:11:25,380 --> 01:11:26,520 되는데 2058 01:11:26,520 --> 01:11:28,739 얘가 결국 뭐냐면은 그 2059 01:11:28,739 --> 01:11:31,140 cbt에서 그 2060 01:11:31,140 --> 01:11:32,520 헌드 트랜스포머 블록 그거랑 같은 2061 01:11:32,520 --> 01:11:34,380 거예요 거기 안에 mlp가 들어가 2062 01:11:34,380 --> 01:11:35,400 있었는데 2063 01:11:35,400 --> 01:11:37,440 걔네들을 얘기하는 거예요 2064 01:11:37,440 --> 01:11:39,239 그냥 2065 01:11:39,239 --> 01:11:40,620 종합적으로 보면은 cbt랑 굉장히 2066 01:11:40,620 --> 01:11:43,920 비슷하게 생겼는데 시간축이 추가된거다 2067 01:11:43,920 --> 01:11:46,140 큰 골짜고요 미니멀한 차이들이 이렇게 2068 01:11:46,140 --> 01:11:48,480 조금씩 있어요 그 정도를 이해해 2069 01:11:48,480 --> 01:11:50,159 두시고 논문 한번 보시면 괜찮을 것 2070 01:11:50,159 --> 01:11:52,280 같습니다 2071 01:11:52,980 --> 01:11:55,380 자 얘는요 2072 01:11:55,380 --> 01:11:58,800 성능이 굉장히 좋은데 그 일단 2073 01:11:58,800 --> 01:12:01,080 bbc랑 트랜스포머를 약간 2074 01:12:01,080 --> 01:12:04,020 차이로 이겼어요 그리고 2075 01:12:04,020 --> 01:12:05,460 계산량을 훨씬 더 줄였다는게 2076 01:12:05,460 --> 01:12:07,980 특징이에요이 비빅 같은 경우에는 2077 01:12:07,980 --> 01:12:09,780 굉장히 무식하게 그 어텐션을 다 2078 01:12:09,780 --> 01:12:10,860 했었잖아요 2079 01:12:10,860 --> 01:12:12,540 얘는 근데 컨버션을 도입했기 때문에 2080 01:12:12,540 --> 01:12:14,400 계산이 훨씬 더 효율적이 됐다라는 2081 01:12:14,400 --> 01:12:15,960 거고요 2082 01:12:15,960 --> 01:12:17,400 CNN 모델들하고 비교를 해도 성능이 2083 01:12:17,400 --> 01:12:18,900 더 좋아지는데 2084 01:12:18,900 --> 01:12:20,760 x3d가 우리가 우리 그 cnn에서 2085 01:12:20,760 --> 01:12:23,040 마지막에 배웠던 모델이었죠 2086 01:12:23,040 --> 01:12:26,340 얘보다는 100배의 2087 01:12:30,000 --> 01:12:32,520 코스트를 써서 이겼어요 2088 01:12:32,520 --> 01:12:34,920 얘는 좀 가벼운 모델이에요 그리고 2089 01:12:34,920 --> 01:12:36,120 슬로우 패스를 이거보다 좀 무거운 2090 01:12:36,120 --> 01:12:39,239 모델인데 비슷한 수준의 2091 01:12:39,239 --> 01:12:40,440 약간 더 이겼다 뭐 그래서 그림 2092 01:12:40,440 --> 01:12:41,760 보시면은 2093 01:12:41,760 --> 01:12:43,980 우리가 최고다예요 한마디로 말하면 2094 01:12:43,980 --> 01:12:44,760 근데 2095 01:12:44,760 --> 01:12:46,620 기존에 좀 가벼웠던 모델들보다는 2096 01:12:46,620 --> 01:12:48,239 훨씬 무거워졌지만 훨씬 더 잘해 2097 01:12:48,239 --> 01:12:49,500 그리고 2098 01:12:49,500 --> 01:12:52,020 기존에 좀 그 무거웠던 모델들보다는 2099 01:12:52,020 --> 01:12:54,300 우리가 그래도 조금 더 잘해 비슷하게 2100 01:12:54,300 --> 01:12:55,980 쓰는데이 정도의 2101 01:12:55,980 --> 01:12:58,159 결론입니다 2102 01:12:59,760 --> 01:13:00,659 굉장히 빠르게 2103 01:13:00,659 --> 01:13:02,340 여러가지 최신 모델들을 좀 살펴봤는데 2104 01:13:02,340 --> 01:13:04,380 일단 제가이 강의는 오늘 처음 하는 2105 01:13:04,380 --> 01:13:06,719 거예요 오늘 수업을 위해서 다 2106 01:13:06,719 --> 01:13:09,420 만들었어요이 수업이 2021년에 2107 01:13:09,420 --> 01:13:10,679 열리고 2108 01:13:10,679 --> 01:13:12,600 처음이거든요 작년에 개설을 안 2109 01:13:12,600 --> 01:13:14,820 했어가지고 보시면 알겠지만 오늘 배운 2110 01:13:14,820 --> 01:13:17,460 논문들은 다 21년 22년 23년 2111 01:13:17,460 --> 01:13:19,860 초는 없었나 되게 최근에 나온 2112 01:13:19,860 --> 01:13:22,860 모델들이에요 지금도 되게 액티브하게 2113 01:13:22,860 --> 01:13:23,960 베이스 라인으로 많이 쓰이고 있고 2114 01:13:23,960 --> 01:13:26,340 여러분들이 비디오 관련된 연구를 한다 2115 01:13:26,340 --> 01:13:28,020 그러면은 그냥 2116 01:13:28,020 --> 01:13:30,060 기본적으로 가져다가 쓸 수도 있고 또 2117 01:13:30,060 --> 01:13:31,860 비교 대상이 되기도 하는 2118 01:13:31,860 --> 01:13:33,300 여전히 좀 연구가 많이 되고 있는 2119 01:13:33,300 --> 01:13:36,060 모델들이니까 좀 잘 알아두시면 많이 2120 01:13:36,060 --> 01:13:38,159 도움이 될 것 같고요 2121 01:13:38,159 --> 01:13:39,239 추가적으로 모델 몇 개 더 적어 2122 01:13:39,239 --> 01:13:40,620 놨는데 일단 2123 01:13:40,620 --> 01:13:42,600 서베이가 나왔어요 뭐 퀄리티는 사실 2124 01:13:42,600 --> 01:13:44,040 잘 모르겠어요 자세히는 안 읽어 2125 01:13:44,040 --> 01:13:46,860 봤는데 22년도 1월에 이쪽 분야에 2126 01:13:46,860 --> 01:13:48,840 최신 기술들을 잘 정리해 놓은 2127 01:13:48,840 --> 01:13:50,360 서베이논문이 나왔고요 2128 01:13:50,360 --> 01:13:52,739 유니폼어라는 것도 있고 2129 01:13:52,739 --> 01:13:54,900 셀프바이즈 하게 하는 것도 있고 뭐 2130 01:13:54,900 --> 01:13:56,460 디폼오버로텐션이라는 것도 있어요 제가 2131 01:13:56,460 --> 01:13:58,500 시간이 되면 이것도 강의하려고 2132 01:13:58,500 --> 01:14:00,780 했었는데 뭐 여기는 그냥 참고자료로만 2133 01:14:00,780 --> 01:14:03,840 일단 넣고 너무 욕심부리면 여러분들이 2134 01:14:03,840 --> 01:14:06,420 힘드니까 일단 오늘 수업은이 정도까지 2135 01:14:06,420 --> 01:14:07,560 하고 2136 01:14:07,560 --> 01:14:08,940 트랜스포머 지난 시간 2137 01:14:08,940 --> 01:14:10,679 하고 이제 이어가지고 2138 01:14:10,679 --> 01:14:12,199 트랜스포머가 어떤 식으로 돌아가고 2139 01:14:12,199 --> 01:14:15,239 이것들이 어떤 장단점이 있고 그 2140 01:14:15,239 --> 01:14:16,440 다음에 이제 비주얼 데이터에 어떻게 2141 01:14:16,440 --> 01:14:18,260 적용이 되는지까지 봤어요 2142 01:14:18,260 --> 01:14:20,760 이후부터는 우리가 2143 01:14:20,760 --> 01:14:22,260 멀티모델리티 뭐 이런 거를 들어갈 2144 01:14:22,260 --> 01:14:24,900 건데 그 전에 아마 다음 시간에는 2145 01:14:24,900 --> 01:14:27,540 오브젝트 디텍션을 보게 될 거예요 2146 01:14:27,540 --> 01:14:30,719 그래서 그 멀티모날리지 들어가기 전에 2147 01:14:30,719 --> 01:14:32,520 디텍션이랑 세그멘테이션 태스크를 먼저 2148 01:14:32,520 --> 01:14:34,620 한번 좀 보고 거기도 다시 2149 01:14:34,620 --> 01:14:36,719 옛날로 돌아가서 전통적인 모델부터 2150 01:14:36,719 --> 01:14:37,860 조금 살펴보고 2151 01:14:37,860 --> 01:14:39,120 트랜스포머 써서 최근에 어떻게 하고 2152 01:14:39,120 --> 01:14:41,460 있는지도 볼 거고요 그런 다음에 이제 2153 01:14:41,460 --> 01:14:43,920 멀티모델리티랑 뭐 마지막에 제너레이트 2154 01:14:43,920 --> 01:14:46,820 모델 이렇게 나온 거 같아요 2155 01:14:48,380 --> 01:14:50,820 아까 말씀드린 대로 다음 주는 수업이 2156 01:14:50,820 --> 01:14:51,960 없습니다 2157 01:14:51,960 --> 01:14:55,140 다음 주는 정규 수업이 없고 비디오 2158 01:14:55,140 --> 01:14:56,640 시청하는 것도 따로 없고요 프로젝트 2159 01:14:56,640 --> 01:14:58,800 하시면 됩니다 다음 주에는 그리고 2160 01:14:58,800 --> 01:15:00,719 프로젝트 중간 보고서 공지 올라가 2161 01:15:00,719 --> 01:15:01,760 있으니까 2162 01:15:01,760 --> 01:15:04,460 그때까지 잘 해서 마무리 해주시고 2163 01:15:04,460 --> 01:15:06,600 제출하는 거 제가 곧 만들게요 2164 01:15:06,600 --> 01:15:08,340 dll에서 2165 01:15:08,340 --> 01:15:10,940 혹시 질문 있으신가요 2166 01:15:15,920 --> 01:15:18,120 없으시면 오늘 수업 여기까지 2167 01:15:18,120 --> 01:15:21,360 하겠습니다 수고하셨습니다 157649

Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.