back to index

[DLHLP 2020] Audio BERT (1/2) (由助教劉廷緯同學講授)


link |
00:00.000
例如說像 Siri 或 Alexa 的 ASR
link |
00:03.000
但是有 Self-Service 的話
link |
00:06.000
我們就可以做到下面這件事情
link |
00:09.000
也就是紅色這些文字
link |
00:12.000
我有一大堆人類的語音
link |
00:15.000
那我就可以 Pre-Train 一個 Model
link |
00:18.000
然後這個 Model 是可以從這些大量語音獲得知識
link |
00:21.000
那我這個 ASR 系統
link |
00:24.000
就可以從這個紫色的 Pre-Train Model 得到幫助
link |
00:27.000
那他就會做得比原本只有上面這樣子來得更好
link |
00:31.000
那這就是 Self-Service Learning 的精神
link |
00:36.000
那接下來就是要講
link |
00:39.000
所有的 Self-Service Learning
link |
00:42.000
然後在語音上面的應用跟方法
link |
00:47.000
那這個方法其實就是千奇百怪
link |
00:50.000
然後有許許多多的 Work
link |
00:53.000
那今天大概會講24個不同的 Self-Service 的方法
link |
00:58.000
那也都是最近然後也是最強的方法
link |
01:03.000
那一開始可以主要分成兩大類
link |
01:08.000
也就是這個綠色的跟紫色的兩大類
link |
01:11.000
兩大群不同的門派
link |
01:14.000
那上面這個門派就是以 CPC 為首
link |
01:18.000
那下面就是以 APC 為首
link |
01:20.000
那他們分別是不同的 Loss
link |
01:23.000
用不同的 Loss 去學
link |
01:25.000
這樣子的 Self-Service 的 Model
link |
01:27.000
那 CPC 是這種 Contrastive Loss
link |
01:30.000
那 APC 下面這種門派主要是用
link |
01:33.000
這個 Reconstruction Loss
link |
01:35.000
那我們就先來講這個 CPC
link |
01:38.000
他是 DeepMind 發表的一篇 Paper
link |
01:41.000
那他的做法其實就是很簡單
link |
01:45.000
就是下面我有一排的聲音
link |
01:48.000
那可能是有若干個 Frame 這樣子
link |
01:51.000
那我有一個 Encoder 的 Network
link |
01:54.000
他是由 CN 組成的 5 層的 CN
link |
01:56.000
然後掃過這一排的聲音之後呢
link |
02:00.000
上面有一個 GRU 的 Recurrent Context Network
link |
02:03.000
他會再去 Encode 這些
link |
02:05.000
得到了這個 Vector
link |
02:07.000
那最終 GRU Output 這個粉紅色的 Vector
link |
02:14.000
他就會跟下面這一群藍色的 Vector
link |
02:18.000
做一個 Prediction
link |
02:20.000
他就是 Predict 說
link |
02:22.000
你這個藍色的是不是跟我紅色的
link |
02:24.000
是屬於同一個句子
link |
02:26.000
所以他在 Training 的時候呢
link |
02:28.000
他就會隨機地 Sample 一些假的
link |
02:31.000
藍色的這種給紅色去做 Predict
link |
02:35.000
所以紅色跟藍色
link |
02:37.000
他就是希望他們在空間中呢
link |
02:41.000
他如果是屬於同一個句子呢
link |
02:43.000
可以越近越好
link |
02:45.000
那舉例來說
link |
02:46.000
如果這個紅色跟這個 CT 加 1 呢
link |
02:49.000
他是同一個句子的 Encoding 的話
link |
02:53.000
那他們就要越近越好
link |
02:54.000
越向越好
link |
02:55.000
那未來的也是
link |
02:57.000
只要是屬於同一個 Input 句子的
link |
02:59.000
就越向越好
link |
03:00.000
那如果是不同的句子
link |
03:02.000
或者是同一個 Speaker
link |
03:04.000
但講不同的話
link |
03:05.000
那就要讓他們離得
link |
03:07.000
在向量空間中離得越遠越好
link |
03:09.000
所以他的這個想法就是這樣子
link |
03:12.000
他會有一個這樣子的
link |
03:13.000
Contrastive 的 Representation
link |
03:17.000
那這個呢
link |
03:18.000
其實他是有一些數學的證明
link |
03:20.000
是可以證明說他們這樣子
link |
03:22.000
他是在 Maximize 他們之間的 Mutual Information
link |
03:27.000
link |
03:28.000
那所以 CPC 的做法就是很簡單
link |
03:31.000
他最終要學到的是這個
link |
03:33.000
紅色的一個向量
link |
03:35.000
那這個向量呢
link |
03:36.000
就可以用到 ASR 系統
link |
03:38.000
比如說像這張圖來講的話
link |
03:41.000
那 CPC 呢
link |
03:42.000
就是拿到這個紅色跟紫色這邊
link |
03:45.000
去做 Pre-training
link |
03:46.000
那這個 Pre-training 好的 CPC
link |
03:48.000
得到的那個向量呢
link |
03:49.000
就可以拿來幫助 ASR 的系統
link |
03:51.000
那他就會得到 Performance 的提升
link |
03:55.000
link |
03:56.000
那這個是 CPC
link |
03:58.000
那 CPC 他兩個比較有名的實驗
link |
04:01.000
在語音上的實驗
link |
04:02.000
就是做那個
link |
04:04.000
Foam 的分類跟 Speaker 的分類
link |
04:07.000
然後這兩個實驗就是
link |
04:09.000
是還蠻 Standard 的 Setup
link |
04:10.000
所以很多後面的 Work
link |
04:12.000
也都是用這樣子的實驗
link |
04:14.000
來跟他做比較
link |
04:16.000
那 CPC 他其實還有做在
link |
04:19.000
非語音上
link |
04:20.000
就是圖片啊
link |
04:21.000
文字等等
link |
04:22.000
但是今天我們就是主要 Focus
link |
04:24.000
在語音的部分
link |
04:26.000
link |
04:27.000
那這個 CPC 呢
link |
04:29.000
做完之後就有人拿他來做 ASR
link |
04:33.000
因為如同上一頁所講
link |
04:35.000
CPC 他那邊並沒有做 ASR
link |
04:37.000
他只有做分類
link |
04:39.000
所以這個 Wave2Vec
link |
04:41.000
是這個 Facebook 做的
link |
04:43.000
那他呢
link |
04:44.000
就是一樣剛剛的那個 CPC
link |
04:46.000
但是他把紅色的這個東西
link |
04:48.000
拿來當作 ASR 的 Input
link |
04:50.000
那 ASR 的 Input 就是吃這個
link |
04:53.000
CPC 的這個 Vector
link |
04:55.000
然後 Representation
link |
04:56.000
然後他 Output 就是文字
link |
04:58.000
這樣子
link |
04:59.000
所以 Wave2Vec 這篇
link |
05:01.000
就是拿 CPC 做 ASR
link |
05:03.000
然後他是做在這個
link |
05:04.000
Word3 Journal 跟 Timmy 上面
link |
05:07.000
link |
05:08.000
那也有人說
link |
05:10.000
因為 CPC 是單向的
link |
05:12.000
他就是拿來做雙向的
link |
05:14.000
這個 Bidirectional CPC
link |
05:16.000
那他其實就是
link |
05:17.000
原本右邊這個 CPC
link |
05:19.000
是 Forward Direction
link |
05:20.000
他就是做一個
link |
05:21.000
再加上一個 Backward 的版本
link |
05:23.000
那這個 Backward 的版本
link |
05:25.000
他的這個
link |
05:26.000
下面的這個
link |
05:28.000
CL Network 是 Shared 的
link |
05:31.000
那上面的這個 GRU 呢
link |
05:33.000
Backward 跟 Forward 是分開的
link |
05:35.000
那他在 Inference 的時候
link |
05:37.000
就是把這個 Forward 跟 Backward 的
link |
05:40.000
Representation Concate 起來
link |
05:42.000
這樣子
link |
05:43.000
那其實是有點像文字版的
link |
05:45.000
那個 Elmo 這樣
link |
05:47.000
link |
05:48.000
那他也是用 ASR 來 Evaluate
link |
05:51.000
那最後一個 CPC 的呢
link |
05:54.000
就是這個 Modified CPC
link |
05:56.000
那他是
link |
05:57.000
他其實是針對原本
link |
05:59.000
這一篇做改進
link |
06:01.000
那改進的點主要有三個
link |
06:03.000
第一個是說
link |
06:04.000
他把原本的 BatchNorm
link |
06:06.000
改成 Channel-Wise Normalization
link |
06:09.000
那第二個是說
link |
06:10.000
原本的 Prediction Layer 是 Linear
link |
06:12.000
他把它改成 Transformer
link |
06:14.000
那第三個呢
link |
06:15.000
就是他把 GRU 換成 LSTM
link |
06:18.000
這樣子
link |
06:19.000
然後他這些改動之後
link |
06:21.000
發現就是
link |
06:22.000
比原本的好
link |
06:24.000
好上一些
link |
06:25.000
就是 Performance 好上一些這樣
link |
06:27.000
所以這四個主要是
link |
06:29.000
這個 CPC
link |
06:31.000
那接下來就是
link |
06:33.000
還有剛說的這個 APC
link |
06:35.000
用 Reconstruction 的 Loss
link |
06:37.000
Reconstruction Loss
link |
06:39.000
那這邊的話
link |
06:41.000
APC 呢
link |
06:42.000
他的想法其實就更簡單了
link |
06:44.000
他就是說
link |
06:45.000
我有一個
link |
06:46.000
就是文字上可以做 Language Model
link |
06:49.000
比如說右邊這張圖
link |
06:50.000
就是我 Input 一個 Word 1
link |
06:52.000
那 Output 是 Word 2
link |
06:54.000
那下一個 Time Step
link |
06:55.000
就是 Input Word 2
link |
06:56.000
然後 Output Word 3
link |
06:57.000
那他說
link |
06:58.000
我可以做個語音版的這個
link |
07:00.000
Language Model
link |
07:01.000
那我就是 Input 是第一個 Frame
link |
07:03.000
Output 是第二個 Frame
link |
07:04.000
那下一個 Time Step
link |
07:05.000
Input 第二個 Frame
link |
07:06.000
Output 第三個 Frame
link |
07:07.000
這樣子 與此類推
link |
07:08.000
那這樣子的話呢
link |
07:10.000
他 Model 在學習的時候
link |
07:12.000
他就是 Input Frame
link |
07:13.000
那 Output 的時候
link |
07:14.000
是用 Reconstruction 去還原
link |
07:16.000
就是他要的那個 Frame
link |
07:19.000
那就是把 Softmax 的 Layer
link |
07:21.000
原本那個文字的 Language Model
link |
07:24.000
Softmax 換成 Regression
link |
07:26.000
這樣就可以了
link |
07:27.000
那 APC 他的想法其實就這樣子
link |
07:29.000
非常的簡單
link |
07:30.000
那他也是做
link |
07:31.000
這個 Phone 跟 Speaker 的
link |
07:33.000
分類的實驗
link |
07:34.000
來驗證他學到的
link |
07:36.000
這些 Representation 的好壞
link |
07:40.000
好 那這個 Multitarget APC
link |
07:43.000
他就是針對 APC 的改良
link |
07:46.000
那他的想法是說
link |
07:47.000
因為原本 APC 也只有前項的
link |
07:50.000
那他就是再增加一個
link |
07:52.000
後項的 RN
link |
07:54.000
那他就說
link |
07:55.000
我這一個 Time Step T 呢
link |
07:57.000
HT 這 Hidden State T
link |
08:00.000
除了我要 Input
link |
08:02.000
當下 Time Step T
link |
08:03.000
然後 Predict T 加 1 之外
link |
08:05.000
他還要拿去
link |
08:06.000
Predict 過去的 Frame
link |
08:08.000
就是拿去當作這個
link |
08:10.000
T-4 的這個
link |
08:12.000
Hidden State Initialization
link |
08:13.000
然後 Predict T-3
link |
08:14.000
然後一路 Predict 回 T-1
link |
08:16.000
所以他的用意就是說
link |
08:18.000
除了記得未來的資訊呢
link |
08:21.000
他還要記得過去的資訊
link |
08:23.000
然後他這個 Target 呢
link |
08:25.000
也都是用 Reconstruction
link |
08:26.000
所以就是跟原本的 APC 是一樣的
link |
08:29.000
那其實他們兩個
link |
08:30.000
這兩篇是同個作者
link |
08:31.000
這樣子他就是
link |
08:33.000
延伸出一個
link |
08:34.000
另一個變形
link |
08:35.000
然後他就說
link |
08:36.000
這樣子兩個 Target 的訓練
link |
08:39.000
就是過去跟未來的訓練呢
link |
08:41.000
他是可以提升模型的效能
link |
08:46.000
link |
08:47.000
那 APC 之外呢
link |
08:50.000
他還有一個
link |
08:51.000
另一個 Amazon 做了一個版本
link |
08:53.000
叫做這個 DeCore
link |
08:55.000
那 DeCore 他是這樣子的縮寫
link |
08:57.000
就是 Deep Contextualized Acoustic Representation
link |
09:00.000
的縮寫
link |
09:02.000
那他其實是把 APC 呢
link |
09:04.000
跟 ELMO 這兩個做法
link |
09:06.000
combine 在一起
link |
09:07.000
那怎麼做呢
link |
09:08.000
就是我這裡
link |
09:09.000
Input 也是有一堆的
link |
09:11.000
Acoustic Feature
link |
09:12.000
那經過 Forward 跟 Backward 的 LSTM
link |
09:15.000
那我可以得到兩個
link |
09:17.000
前項跟後項的這個 Representation
link |
09:19.000
Hidden State
link |
09:20.000
那我就像 ELMO 一樣
link |
09:21.000
把他 Concate 在一起
link |
09:23.000
Concate 在一起之後呢
link |
09:24.000
我就一次
link |
09:26.000
還原一個 Window Size 的 Frame
link |
09:28.000
有點像 APC 的 Reconstruction
link |
09:30.000
那在 Training 的時候呢
link |
09:31.000
他就是從 Timestamp 0
link |
09:33.000
然後一路掃到
link |
09:35.000
就是最後一個 Timestamp
link |
09:36.000
然後全部就是
link |
09:38.000
全部都 Reconstruct 一次
link |
09:40.000
這樣
link |
09:41.000
link |
09:42.000
所以他也是
link |
09:43.000
基本上就是 Reconstruction Based 的方法
link |
09:45.000
那也是像 APC 那樣子
link |
09:47.000
去 Reconstruct Frame
link |
09:49.000
link |
09:50.000
那除了 APC 這些
link |
09:53.000
這三個是用 Reconstruction Lot
link |
09:55.000
其實還有一些
link |
09:56.000
別的也是用 Reconstruction Lot 去 Learn
link |
09:59.000
那這三篇呢
link |
10:00.000
都是 Google 提出的做法
link |
10:02.000
那先講這兩個 Autoencoder
link |
10:05.000
跟這個 Phase Autoencoder
link |
10:07.000
他其實都是相似的做法
link |
10:09.000
就是說呢
link |
10:10.000
我有一個 Autoencoder
link |
10:12.000
是 Input 是那個
link |
10:15.000
Acoustic Feature
link |
10:16.000
那他可能會 Encode 成一些
link |
10:19.000
Hidden Factor
link |
10:20.000
那我有一個 Decoder 呢
link |
10:22.000
那這邊是用 WaveNet 當作這個 Decoder
link |
10:25.000
那他會還原成原來的 Input
link |
10:28.000
然後就是這兩個 Input 呢
link |
10:30.000
算一個 Reconstruction Lot
link |
10:32.000
那學到 Representation 就是中間這個
link |
10:34.000
那中間這個就可以拿去
link |
10:36.000
應用在 Downstream Tasks 上面
link |
10:39.000
那這個 Autoencoder 是這樣子
link |
10:41.000
那這個 Phase Autoencoder
link |
10:42.000
就是說我這個 Output
link |
10:43.000
我不是還原 Magnitude
link |
10:45.000
我是還原 Phase
link |
10:47.000
那其實就是這樣子
link |
10:49.000
那他們就是透過不同的
link |
10:51.000
Reconstruction Target
link |
10:52.000
要嘛是 Phase
link |
10:53.000
要嘛是 Magnitude
link |
10:54.000
他就去學到說
link |
10:56.000
中間這裡呢
link |
10:57.000
可以代表一些語音上
link |
10:59.000
有意義的資訊
link |
11:00.000
那這些資訊呢
link |
11:01.000
是可以拿去幫助
link |
11:03.000
下游的語音任務
link |
11:07.000
好 那其實這個架構
link |
11:09.000
跟那個 Voice Conversion
link |
11:11.000
其實是很像的
link |
11:12.000
就是很多 Voice Conversion
link |
11:13.000
也是這樣子做
link |
11:15.000
就是一個 ASR 的 Encoder
link |
11:17.000
跟 TTS 的 Decoder
link |
11:19.000
那也是用一個 Autoencoder 的方式
link |
11:22.000
中間可能會加一些 Constraint
link |
11:24.000
那這邊這個
link |
11:25.000
Google 這瓶 Autoencoder
link |
11:27.000
他也是有一些
link |
11:28.000
不同的 Constraint 的變化
link |
11:30.000
比如說 VQ, VAE 等等
link |
11:34.000
好 那這個 Audio2Vec 就是
link |
11:38.000
可能如果熟悉 NLP 的人
link |
11:41.000
會比較知道
link |
11:42.000
就是有 NLP Word2Vec 有兩種
link |
11:46.000
就是 Seabold 跟 Skipgram
link |
11:48.000
他就只是把它拿來
link |
11:49.000
做了一個語音的版本
link |
11:51.000
那這個語音版本
link |
11:53.000
就是這樣子
link |
11:54.000
就是我看過去的 Frame
link |
11:58.000
跟未來的 Frame
link |
11:59.000
那我要預測中間這一塊
link |
12:02.000
這就是這個 Seabold
link |
12:04.000
然後 Skipgram 就是
link |
12:06.000
我有中間的 Frame
link |
12:08.000
然後我 Encode 完之後
link |
12:10.000
我要 Decode 出左右兩邊的
link |
12:12.000
過去跟未來的 Frame
link |
12:15.000
那這樣子的話
link |
12:16.000
他就是透過這兩個任務
link |
12:18.000
來學中間這個 Hidden Representation
link |
12:23.000
那這邊他還提出一個
link |
12:26.000
第三個任務
link |
12:27.000
就是這個 Temporal Gap
link |
12:28.000
他就是說
link |
12:29.000
我有一段聲音
link |
12:30.000
那他就是隨機
link |
12:31.000
讓 Encoder 看兩段
link |
12:33.000
然後叫 Encoder 去
link |
12:35.000
Predict 出他們之間的時間
link |
12:38.000
差了多少
link |
12:39.000
那他主要呢
link |
12:41.000
所以這個 Self-Sort By 的架構
link |
12:43.000
他主要在訓練的是這個 Encoder
link |
12:45.000
他想要學出這個好的 Encoder
link |
12:48.000
那這個 Encoder 呢
link |
12:49.000
他就可以拿來用在
link |
12:51.000
比如說 ASR 的 Encoder
link |
12:52.000
當作他的 Initialization
link |
12:54.000
或者是他從這 Encoder
link |
12:56.000
抽一些 Speech Representation
link |
12:59.000
抽一些 Feature 來用
link |
13:02.000
那這邊就是 Audio To Fab 的做法
link |
13:05.000
那這邊這個 CPC 跟 Reconstruction Loss
link |
13:09.000
這兩大類都講完了
link |
13:11.000
但其實還有一大類
link |
13:13.000
也就是今天的那個重點
link |
13:15.000
就是 BERT 要怎麼應用在語音上
link |
13:19.000
那其實是五花八門
link |
13:21.000
就是大家可以看到右邊
link |
13:23.000
這些做法呢
link |
13:25.000
都是把 BERT 的概念
link |
13:27.000
用在語音上的例子
link |
13:29.000
那等一下就是會
link |
13:31.000
一個一個講他們的差異
link |
13:33.000
跟他們的不同
link |
13:35.000
那這些呢
link |
13:36.000
這幾個我全部都是
link |
13:40.000
去年十月的時候
link |
13:42.000
就是大家突然都有這個點子
link |
13:44.000
然後突然大家都做出來這樣
link |
13:46.000
那就是在差不多去年十月
link |
13:48.000
有些是今年
link |
13:49.000
比如說這個跟這個是今年
link |
13:51.000
才做出來
link |
13:53.000
所以是還蠻新的點子
link |
13:55.000
所以接下來就來講說
link |
13:56.000
這個 BERT 要怎麼用在語音上面
link |
14:00.000
那 BERT 大家應該都非常知道
link |
14:03.000
就是很強的這個 Language Model
link |
14:06.000
那就是有 11 個 Sota 在 Publish 的時候
link |
14:10.000
那他的這個訓練任務
link |
14:13.000
因為我們等一下會講到語音的版本
link |
14:15.000
所以就很快地幫大家複習一下
link |
14:18.000
這個概念
link |
14:19.000
就是客漏字的填空
link |
14:21.000
所以我有 input 一個句子
link |
14:23.000
那我可能會中間挖空
link |
14:25.000
比如說 How are you today?
link |
14:26.000
變成 How are masks today?
link |
14:28.000
那 BERT 呢
link |
14:29.000
他就是要從這個 representation
link |
14:31.000
去預測說這個挖空的這個 mask 是什麼
link |
14:35.000
就是做一個客漏字填空的動作
link |
14:37.000
那 BERT 裡面就是 Transformer Encoder
link |
14:40.000
那有 Multi-Head Self-Attention
link |
14:42.000
跟 Feed-forward Network
link |
14:43.000
最後會得到 Hidden State
link |
14:45.000
那也就是這個 output 的地方
link |
14:46.000
這個 R
link |
14:47.000
也就是這個 Transformer Encoder Output
link |
14:49.000
好,那 BERT 的複習呢
link |
14:51.000
就是到這邊
link |
14:53.000
那等一下就會講說
link |
14:54.000
要怎麼應用在語音上呢
link |
14:56.000
那這邊呢
link |
14:57.000
是把 BERT 套入剛剛的那個
link |
15:00.000
這張圖裡面
link |
15:01.000
這個橘色的框框原本是這個
link |
15:04.000
語音的例子
link |
15:05.000
那如果換成 BERT 的話
link |
15:07.000
會變怎麼樣
link |
15:08.000
那就變下面這張圖
link |
15:09.000
就是原本的我這個 QA 的 model 呢
link |
15:12.000
是需要一堆的這種 pair data
link |
15:15.000
也就是 passage 跟 question
link |
15:17.000
還有 answer 去做訓練這種 pair
link |
15:19.000
那比如說看一個 passage
link |
15:21.000
然後問他一個問題
link |
15:23.000
他就跟我講一個答案
link |
15:24.000
那 QA model 是這樣訓練
link |
15:26.000
那 BERT 的話就是
link |
15:27.000
我有一大堆的文字
link |
15:29.000
那我就可以訓練一個 BERT
link |
15:31.000
那這個 BERT 拿來當作 QA model 的
link |
15:33.000
initialization 去做 fine tune
link |
15:35.000
那我 QA model 就可以很強這樣
link |
15:37.000
所以這裡其實是
link |
15:39.000
把 BERT 的架構
link |
15:41.000
也是 unify 到這個
link |
15:42.000
self-service learning 的這個
link |
15:44.000
這個概念裡面
link |
15:45.000
所以它其實也是一種
link |
15:47.000
self-service 的方法
link |
15:49.000
link |
15:50.000
那現在我們就開始講
link |
15:52.000
怎麼應用在語音上呢
link |
15:54.000
那這兩篇
link |
15:55.000
這個 VQ Wave2Vec
link |
15:57.000
都是 Facebook 的作品這樣子
link |
16:00.000
那它是怎麼做的
link |
16:02.000
就是
link |
16:04.000
剛有講說
link |
16:05.000
就是我們可以學
link |
16:06.000
那個 Wave2Vec
link |
16:07.000
就是 CPC
link |
16:09.000
這裡就是一個 CNN
link |
16:11.000
這個紫色的 藍紫色的框框
link |
16:13.000
就是 CPC 的 CNN 跟 GRU
link |
16:16.000
那我這上面的 loss 呢
link |
16:18.000
也是用 CPC 的 loss
link |
16:20.000
那中間呢
link |
16:22.000
就是 VQ 的地方
link |
16:24.000
那等一下我們就講
link |
16:25.000
怎麼做 VQ
link |
16:26.000
所以這裡其實就是
link |
16:27.000
剛剛那個 CPC 的做法
link |
16:29.000
就是我有一個 CNN 跟 GRU
link |
16:31.000
然後我的 loss 是 CPC 的 loss
link |
16:34.000
那中間的這個 VQ 呢
link |
16:36.000
就是這樣子做的
link |
16:37.000
就是
link |
16:39.000
這個灰色這排是
link |
16:41.000
就是 time step
link |
16:42.000
所以隨著 time step 呢
link |
16:44.000
我會 encode 出
link |
16:45.000
這個紫色的這個
link |
16:47.000
hidden state 這個 vector
link |
16:49.000
比如說在這裡
link |
16:51.000
這個綠色這個
link |
16:52.000
那這個它就會 project 成
link |
16:54.000
一個 codebook 的 size
link |
16:55.000
假如我的 codebook 是大小的 4
link |
16:57.000
它就 project 成這樣的四維
link |
16:59.000
那這邊就得到這個 logic
link |
17:02.000
然後再算 gamble
link |
17:04.000
得到 probability
link |
17:05.000
那我再取 argmax
link |
17:07.000
得到一個 1
link |
17:09.000
然後其他都是 0
link |
17:10.000
那我去跟一個 codebook
link |
17:12.000
去算
link |
17:15.000
得到
link |
17:16.000
就是選出一個 code
link |
17:19.000
那比如說這裡選了 E2 這樣子
link |
17:21.000
那這個 E2 在
link |
17:23.000
放過來這裡
link |
17:24.000
當作 CPC loss 的計算
link |
17:27.000
所以它整個概念就是說
link |
17:29.000
原本這個紫色是
link |
17:32.000
continuous 的 vector
link |
17:34.000
它可以是任意的數值
link |
17:37.000
但它現在限制它說
link |
17:39.000
你只能是
link |
17:40.000
我 codebook 裡面
link |
17:41.000
四個的其中一個
link |
17:42.000
那你就去選一個
link |
17:44.000
所以它這個 VQ 是這個意思
link |
17:46.000
就是說 vector quantized
link |
17:48.000
它把原本連續的 vector 呢
link |
17:50.000
做一個 quantization
link |
17:52.000
讓它變成是有限格
link |
17:54.000
那這個 codebook size
link |
17:56.000
可以是任意的大小
link |
17:58.000
比如說
link |
17:59.000
一萬 兩萬 三萬 等等
link |
18:01.000
那它這邊是用三萬
link |
18:03.000
那所以它就說
link |
18:04.000
你所有的語音
link |
18:06.000
只可以用三萬個
link |
18:08.000
不同的向量來表示
link |
18:11.000
那當它有
link |
18:13.000
有限格向量
link |
18:15.000
來表示語音的時候
link |
18:16.000
它就可以 train 一個文字版的 burden
link |
18:18.000
所以也就是左下角這張圖
link |
18:19.000
所以我先用 bqa2vec 呢
link |
18:22.000
得到 quantized 後的語音的表示
link |
18:26.000
然後我就可以訓練一個文字版的 burden
link |
18:29.000
因為如果有做過 NLP 處理的話
link |
18:33.000
也可以知道說
link |
18:34.000
word level 的 dictionary
link |
18:36.000
可能也是在
link |
18:37.000
比如說中文可能也是兩三萬
link |
18:39.000
個不同的字
link |
18:41.000
所以它就可以訓練一個 burden
link |
18:43.000
那這個 burden 是 operate 在
link |
18:44.000
三萬個 dictionary size 的大小當中
link |
18:49.000
因為它這裡的 codebook 是三萬
link |
18:51.000
那這個 burden 它就是有限格
link |
18:53.000
它就不是無限格
link |
18:54.000
所以它就是可以跟語音一樣
link |
18:56.000
跟文字一樣去做 burden 的訓練
link |
18:58.000
那訓練完了這個 burden
link |
19:00.000
就可以拿來當做
link |
19:01.000
這個 acoustic model
link |
19:03.000
就可以拿來做
link |
19:05.000
比如說這裡的 ASR
link |
19:08.000
的 encoder 等等
link |
19:10.000
或者是拿來抽 feature 等等
link |
19:14.000
所以這個 bqa2vec 跟這個 bqa2vec fine tune
link |
19:19.000
版本就是在這個架構
link |
19:22.000
那它就是把語音變成
link |
19:24.000
有限格的表示
link |
19:26.000
然後再把這個有限格的表示
link |
19:28.000
拿來 train 文字的 burden
link |
19:31.000
好 那這個是其實是需要
link |
19:33.000
兩階段的 self-service learning
link |
19:36.000
第一階段就是這個 bqa2vec
link |
19:38.000
第二階段是 burden
link |
19:39.000
然後才可以用
link |
19:40.000
所以這是兩階段的
link |
19:42.000
那下面這些呢
link |
19:45.000
都是一階的
link |
19:46.000
就是一次就把 burden 直接應用在上面
link |
19:49.000
不需要像上面這樣兩階段
link |
19:52.000
那中間這個呢
link |
19:54.000
SLU burden
link |
19:56.000
它並不在這個綠色框
link |
19:58.000
也不在這個紫色框中間
link |
20:00.000
它是一個比較特別的例子
link |
20:02.000
那個上面綠色呢
link |
20:04.000
是屬於 CPC 的
link |
20:06.000
也就是剛剛所說的
link |
20:07.000
就是用到 CPC loss 的
link |
20:09.000
那下面這個紫色呢
link |
20:11.000
就是用到 reconstruction loss 的
link |
20:13.000
那中間這個呢
link |
20:14.000
它其實就是都不是
link |
20:15.000
所以它比較特別
link |
20:17.000
那它的做法是這樣子
link |
20:19.000
它有一個 input 的 audio
link |
20:23.000
它經過一個 acoustic model
link |
20:25.000
這個 acoustic model
link |
20:26.000
是 CLM 跟 GRU 組成的
link |
20:28.000
它就是會去 train 一個
link |
20:31.000
CTC alignment 的 loss
link |
20:33.000
所以這裡是需要 label 的
link |
20:37.000
它需要 label 的
link |
20:38.000
所以它把這個
link |
20:41.000
acoustic model 呢
link |
20:42.000
先用 CTC 跟 label train 好之後
link |
20:45.000
它再來 train 一個 BERT
link |
20:47.000
那這個 BERT 的 input 呢
link |
20:49.000
就是這個 acoustic model
link |
20:52.000
得到的 phoneme 的 posterior 這樣子
link |
20:55.000
所以那如果再做 masking 的話
link |
20:58.000
它就是把
link |
20:59.000
就是它多一個 vector
link |
21:03.000
然後它是一個 placeholder phoneme
link |
21:05.000
叫做 pad
link |
21:06.000
然後把它設成 E 這樣子
link |
21:07.000
所以它是這樣子做 BERT 的 training
link |
21:10.000
那這裡就是 transformer encoder layer
link |
21:13.000
那這邊就是算 BERT 的 loss
link |
21:16.000
那這個 work 跟其他的最大的不同
link |
21:19.000
就是它不是全然的 self-supervised
link |
21:22.000
就是它其實是需要有 label
link |
21:25.000
然後它才可以訓練這個 BERT 的
link |
21:28.000
所以這是它最大的不同
link |
21:30.000
它這邊要先訓練一個
link |
21:32.000
像 ASR 的東西
link |
21:33.000
然後 ASR 的 output 再拿來當
link |
21:35.000
transformer encoder input
link |
21:37.000
才能訓練 BERT
link |
21:40.000
好那接下來就是要講這個
link |
21:43.000
下面這一群
link |
21:45.000
用 reconstruction loss 的
link |
21:46.000
也就是
link |
21:48.000
就是 audio BERT 的
link |
21:50.000
那這邊呢
link |
21:51.000
都是在 ICAPS 2020 的時候
link |
21:53.000
也就是去年十月的時候
link |
21:55.000
投出來的 paper
link |
21:56.000
然後其中
link |
21:58.000
這個 speech 查爾納跟這個 MPC
link |
22:01.000
沒有上
link |
22:02.000
然後其他兩篇有上這樣子
link |
22:04.000
那這個 MarkingJ是
link |
22:06.000
宋一老師的實驗室做的
link |
22:09.000
那接下來就來講這個 MarkingJ
link |
22:12.000
那就是 BERT
link |
22:14.000
要怎麼直接變成 speech 版的 BERT
link |
22:17.000
好那文字的 BERT 呢
link |
22:20.000
就是 pre-trained 在文字上
link |
22:22.000
那我可以應用在許多
link |
22:24.000
不同的下游的任務
link |
22:26.000
比如說 QA 模型
link |
22:27.000
也可以被 fine-tune 等等
link |
22:29.000
那文字的 BERT 呢
link |
22:30.000
就是直接 pre-trained 在 speech 上面
link |
22:33.000
所以 input 就是 frame
link |
22:34.000
output 就是 representation
link |
22:36.000
跟這個左邊的 BERT
link |
22:38.000
input word token output representation 一樣
link |
22:41.000
那同樣的也可以運用在
link |
22:42.000
不同的語音的任務上面
link |
22:46.000
那如果用下面這張圖
link |
22:48.000
來做一個 unified 的話
link |
22:50.000
那就是這個橘色框框
link |
22:52.000
我們就把他換成這樣子
link |
22:54.000
所以原本橘色框框是
link |
22:56.000
ASR 的系統
link |
22:57.000
然後跟 pre-trained 模型
link |
22:58.000
然後就換成
link |
23:00.000
這樣子的下游任務
link |
23:01.000
那在 MarkingJ 這篇裡面
link |
23:03.000
他是做這個
link |
23:04.000
phone 跟 speaker 的分類
link |
23:06.000
那 input 一段 speech
link |
23:08.000
他分說是哪個 speaker
link |
23:09.000
或者是哪個 phone
link |
23:11.000
那這邊呢
link |
23:12.000
就是拿大量語音
link |
23:13.000
來 pre-trained 一個 MarkingJ
link |
23:15.000
那也是用在這個
link |
23:16.000
phone 跟 speaker classification
link |
23:18.000
然後去做分類
link |
23:21.000
那怎麼做呢
link |
23:23.000
其實就是這樣子
link |
23:24.000
就是有
link |
23:25.000
我有一排的真實的 frame
link |
23:28.000
那可能是代表一句話的
link |
23:30.000
這個 spectrogram
link |
23:31.000
那我就有一個 masking 的 policy
link |
23:34.000
他會隨機的把一些 frame
link |
23:36.000
mask 成 0
link |
23:37.000
mask 成 0 之後呢
link |
23:39.000
就經過許多層的
link |
23:41.000
transformer encoder
link |
23:42.000
然後這是雙向的
link |
23:43.000
有 self-attention
link |
23:45.000
得到這樣子的 representation
link |
23:47.000
那這 representation
link |
23:49.000
representation 就是
link |
23:50.000
經過一個 prediction head
link |
23:52.000
還原出原本的 frame
link |
23:55.000
所以 input 是
link |
23:57.000
mask 成 0 的 frame
link |
23:59.000
output 要還原出原本的 frame
link |
24:01.000
那就是這兩者
link |
24:03.000
去做一個
link |
24:04.000
reconstruction loss 的計算
link |
24:06.000
然後這些藍色的向量
link |
24:08.000
可以想像說
link |
24:09.000
他就已經考慮了整個句子
link |
24:11.000
因為他勢必要看過左邊
link |
24:13.000
看過右邊
link |
24:14.000
他才可以知道說
link |
24:15.000
中間應該是什麼東西
link |
24:17.000
所以就是透過這樣子
link |
24:18.000
mask 成 0 的計算呢
link |
24:19.000
去幫助他學到雙向的
link |
24:22.000
這個藍色的 representation
link |
24:24.000
好 那具體的 masking 怎麼做
link |
24:27.000
其實就是跟 BERT 的一樣
link |
24:28.000
如果大家熟悉的話
link |
24:29.000
就是我在一整個句子裡面
link |
24:31.000
先選 15% 的 frame
link |
24:33.000
那這 15% 裡面呢
link |
24:34.000
我有 80% 的時候
link |
24:36.000
會把它全部換成 mask
link |
24:38.000
也就是射成 0
link |
24:40.000
那有 10% 的時間
link |
24:41.000
我會把它換成
link |
24:43.000
隨機的 frame
link |
24:47.000
那最後 10% 的時間呢
link |
24:49.000
我是都不動的
link |
24:51.000
所以這三個 case
link |
24:52.000
一次只會發生一個
link |
24:53.000
但每次我都會選 15% 的 frame
link |
24:55.000
去做這個更動
link |
24:57.000
那要嘛是 mask 成 0
link |
24:59.000
要嘛是 replace
link |
25:00.000
要嘛是不動
link |
25:02.000
好 那具體在語音上
link |
25:04.000
看起來是怎麼樣呢
link |
25:05.000
這就是一個實例
link |
25:07.000
這一個就是
link |
25:09.000
一排的語音的
link |
25:10.000
這個 acoustic feature
link |
25:12.000
那可能是有
link |
25:13.000
300 多個 frame 的長度
link |
25:15.000
那這個縱軸呢
link |
25:16.000
就是他的 channel
link |
25:17.000
那 channel 是這個意思
link |
25:19.000
就是我 80 圍的
link |
25:20.000
mail 的 spectrogram
link |
25:22.000
加上他的一階微分
link |
25:23.000
所以中間有一個這個
link |
25:25.000
橫線這個斷點
link |
25:27.000
那 mask 成 0 的話
link |
25:28.000
就是這個 highlight 出來的
link |
25:30.000
這個黃色的線條
link |
25:31.000
這邊就是射成 0
link |
25:32.000
那因為是可以 overlap 的
link |
25:34.000
所以有些這個 mask
link |
25:36.000
會比較粗
link |
25:37.000
有些是細的
link |
25:38.000
有些是粗的這樣
link |
25:40.000
好 那 input 的話
link |
25:42.000
就是這樣子的 mask frame
link |
25:44.000
那 representation 呢
link |
25:45.000
就會長這樣子
link |
25:47.000
是人類看不懂的
link |
25:49.000
也沒有
link |
25:50.000
看不出什麼意義
link |
25:51.000
然後經過這個 prediction head 呢
link |
25:53.000
他就會還原出
link |
25:55.000
跟真實的一樣
link |
25:57.000
很像的這個 real frame
link |
25:59.000
那這兩個是實例
link |
26:01.000
所以可以看出
link |
26:02.000
model 學到的
link |
26:03.000
其實是非常像
link |
26:05.000
只經過這樣子的一個
link |
26:06.000
prediction module
link |
26:07.000
就可以從這樣子
link |
26:09.000
的 representation 變成這樣子
link |
26:11.000
所以其實是差很多的
link |
26:13.000
好 那文字版的 BERT
link |
26:18.000
跟語音版的 BERT
link |
26:19.000
其實處理的 input 不太一樣嘛
link |
26:21.000
一個是 discrete text token
link |
26:24.000
一個是連續的語音
link |
26:25.000
所以其實是需要做一些
link |
26:27.000
特殊的處理的
link |
26:28.000
所以這邊就是講
link |
26:29.000
需要做什麼特殊的處理
link |
26:31.000
語音的訊號呢
link |
26:32.000
就如同剛剛大家看到的
link |
26:34.000
就是上面這樣子
link |
26:35.000
他可能是非常的長
link |
26:37.000
而且他局部很 smooth
link |
26:40.000
因為他在做
link |
26:41.000
那個 showtime Fourier transform 的時候
link |
26:43.000
那個 window 是有 overlap 的
link |
26:45.000
那像這樣子的話
link |
26:47.000
這邊一個隨便一個句子
link |
26:49.000
長度就超過 500
link |
26:50.000
但如果大家熟悉 BERT 的話
link |
26:52.000
BERT 他其實有限制
link |
26:54.000
說他 input 的長度
link |
26:55.000
是不能超過 512 的
link |
26:57.000
這樣子
link |
26:58.000
所以他是要
link |
26:59.000
一個比較短的 sequence
link |
27:00.000
那語音的句子
link |
27:01.000
如果動不動就
link |
27:02.000
500 1000 這樣子的長度
link |
27:04.000
那其實是比較難做的
link |
27:06.000
所以怎麼辦呢
link |
27:07.000
就是要想辦法縮短
link |
27:09.000
句子的長度
link |
27:10.000
跟我需要 mask
link |
27:12.000
一個長一點的 span
link |
27:14.000
那就是用下面這兩個技巧
link |
27:17.000
叫做 downsampling
link |
27:18.000
跟著 consecutive masking
link |
27:20.000
那 downsampling 呢
link |
27:21.000
其實就是這樣
link |
27:22.000
就是我這邊有一排
link |
27:24.000
長度為 9 的 input
link |
27:27.000
那我就把每三個疊起來
link |
27:29.000
就是照顏色這樣對應疊起來
link |
27:32.000
那我這樣子長度
link |
27:33.000
就瞬間縮短成 3 倍
link |
27:35.000
但是同時
link |
27:36.000
我沒有丟失任何的 information
link |
27:40.000
這樣
link |
27:41.000
那這就是 downsampling
link |
27:42.000
那這改動主要是
link |
27:44.000
為了因應那個
link |
27:45.000
transformer encoder 的
link |
27:46.000
這個 self-attention 的機制
link |
27:48.000
因為大家知道
link |
27:49.000
self-attention 在做 query 的時候
link |
27:51.000
它是會對
link |
27:52.000
全部整個 input 去做 query
link |
27:54.000
所以你如果
link |
27:55.000
input 長度很長的話
link |
27:57.000
那它的那個 memory 的這個
link |
28:00.000
使用就會很多
link |
28:01.000
所以就要做這個 downsampling
link |
28:03.000
那這個 consecutive masking 呢
link |
28:05.000
是這樣子
link |
28:06.000
就是
link |
28:07.000
剛剛如果只 mask 一個 frame 的話
link |
28:09.000
可能會讓這個
link |
28:12.000
太 smooth model
link |
28:13.000
其實是學到東西
link |
28:14.000
因為它其實可能
link |
28:15.000
mask 一個 frame
link |
28:17.000
它的左邊跟右邊
link |
28:19.000
其實還是有包含它的資訊
link |
28:20.000
所以我們需要
link |
28:21.000
mask 一個長點的範圍
link |
28:23.000
那比如說這邊設 3 的話
link |
28:25.000
那就會變這樣子
link |
28:27.000
連續三個都設 0
link |
28:29.000
那如果在 downsampling case
link |
28:30.000
就是把中間一整排
link |
28:32.000
全部設 0 這樣子
link |
28:34.000
好那這就是
link |
28:35.000
兩個技巧為了處理
link |
28:37.000
這個語音比較長
link |
28:39.000
跟比較 smooth 的問題
link |
28:42.000
所以這樣子一個總結來說的話
link |
28:45.000
就是右上角這張圖
link |
28:47.000
那它裡面的這個
link |
28:49.000
transform encoder 呢
link |
28:50.000
也就是跟 BERT 一樣
link |
28:53.000
那在 Mockingjay 這個 paper 裡面
link |
28:55.000
它有做兩個大小的 model
link |
28:57.000
分別是這個 base 跟 large
link |
28:58.000
分別是三層跟十二層
link |
29:00.000
那這邊就是這個數字呢
link |
29:03.000
就是給大家有一些感覺
link |
29:04.000
就是看這個 model 到底多大
link |
29:07.000
它的 attention 的頭是十二個
link |
29:09.000
然後這個
link |
29:10.000
這個 feed forward 的 dimension
link |
29:12.000
是 3072
link |
29:13.000
hidden dimension 也就是
link |
29:14.000
我們要學的這個 factor
link |
29:15.000
是 768 位
link |
29:17.000
那 training 的話是
link |
29:19.000
你可以用越多的 data train 越好
link |
29:21.000
但這邊是用 360 個小時
link |
29:23.000
然後 pre-train 50 萬個 step
link |
29:26.000
然後 fine-tune 的話
link |
29:27.000
就是 fine-tune 五萬個 step
link |
29:31.000
好那到這邊為止
link |
29:34.000
大家有什麼問題嗎
link |
29:36.000
如果有的話
link |
29:38.000
可以在那個留言區發問
link |
29:43.000
或者是直接問也可以
link |
29:54.000
好如果沒有問題的話
link |
29:56.000
那我們就繼續
link |
29:59.000
那這個 BERT 呢
link |
30:02.000
speech 版的 audio 的 BERT
link |
30:04.000
train 完之後呢
link |
30:06.000
其實是有不同的方法
link |
30:07.000
可以應用在下游的任務上
link |
30:11.000
那以文字來說
link |
30:13.000
它可以拿來 fine-tune
link |
30:15.000
或者是拿來當 word embedding 等等
link |
30:17.000
那語音的話
link |
30:18.000
它也是有三種做法
link |
30:22.000
第一個呢是
link |
30:23.000
feature 的 extraction
link |
30:25.000
就是抽 representation
link |
30:27.000
那怎麼抽呢
link |
30:29.000
就是像左邊這樣子
link |
30:31.000
我右邊 pre-train 好一個 marking j
link |
30:34.000
然後拿過來做一個 freezing 的動作
link |
30:38.000
就是不讓它 update
link |
30:40.000
那我 input acoustic 的
link |
30:42.000
feature output representation
link |
30:44.000
然後這些 representation
link |
30:46.000
直接拿來當作
link |
30:47.000
下游的任務的 input
link |
30:52.000
所以就是 classifier 呢
link |
30:54.000
本來是吃 acoustic 的 input
link |
30:57.000
現在就是吃 marking j 的 representation
link |
30:59.000
那它也是做一個分類
link |
31:01.000
那這是第一種方法
link |
31:03.000
第二個方法呢
link |
31:04.000
是做這個 weighted sum from all layers
link |
31:08.000
那它是這樣子
link |
31:09.000
就是這個 marking j 呢
link |
31:11.000
它有很多層
link |
31:12.000
我就從每一層都抽 representation
link |
31:15.000
然後再由一個學出來的 weighted sum
link |
31:18.000
把它 sum 起來
link |
31:20.000
然後變成最終的這個 vector
link |
31:22.000
所以就是它是從每一層呢
link |
31:24.000
都抽一些資訊出來
link |
31:26.000
那這個做法跟 ELMo 其實很像
link |
31:28.000
那學到了這個 weighted sum 的 vector
link |
31:32.000
再丟到下面去做
link |
31:34.000
下游的任務的 training
link |
31:36.000
所以這個 marking j 的
link |
31:37.000
這個 model 是 freeze 的
link |
31:39.000
但是在這個狀況下
link |
31:40.000
就只有這個 weight 是
link |
31:42.000
它會 learn from data 這樣子
link |
31:44.000
那這 classifier 也是
link |
31:45.000
用少量的 paired data 去訓練
link |
31:49.000
link |
31:50.000
那第三個方法就是這個 fine tune
link |
31:53.000
fine tune 的話就是
link |
31:55.000
也是大家所熟知的 the bird 的 fine tuning
link |
31:58.000
那就是我這邊 pre-train 好之後
link |
32:01.000
我就拿過來 initialize
link |
32:02.000
然後整個這綠色框框
link |
32:04.000
全部 classifier 跟 marking j
link |
32:06.000
一起去做 update
link |
32:08.000
那這樣子的話
link |
32:09.000
就跟上面兩個 case 不同
link |
32:11.000
它就不是 frozen 了
link |
32:12.000
它就是可以 update
link |
32:13.000
那也是用少量的 data
link |
32:15.000
paired data 去做 fine tune
link |
32:18.000
link |
32:19.000
那實驗上來說的話
link |
32:22.000
male feature 呢
link |
32:23.000
也就是一般的這種 acoustic feature
link |
32:26.000
當然是沒有學到的好
link |
32:30.000
所以學到的小的 model
link |
32:32.000
base model 比 male feature 好
link |
32:34.000
large model 又比 base 跟 male 好
link |
32:37.000
那如果做了剛剛的這個 weighted sum
link |
32:40.000
也就是從這個各層
link |
32:42.000
也就是這張圖
link |
32:43.000
就是從各層去抽 representation 的話
link |
32:47.000
就更好
link |
32:48.000
這個 weighted sum 就更好
link |
32:50.000
那這個是一個圖例
link |
32:53.000
這邊是說
link |
32:55.000
橫軸是我 label data 越來越少
link |
32:58.000
從 360 個小時
link |
33:00.000
一路減少到 36 分鐘
link |
33:03.000
所以是極少量的 data
link |
33:06.000
那這樣子的話
link |
33:07.000
就是看說不同的 representation
link |
33:10.000
會怎麼樣的被少量的 data 影響效能
link |
33:14.000
那所以大家可以想像說
link |
33:17.000
這個曲線一定是會往右
link |
33:19.000
這樣子往下掉
link |
33:21.000
往下掉下來
link |
33:22.000
因為 label data 越來越少
link |
33:24.000
那這個縱軸就是這個分類的 accuracy
link |
33:28.000
那可以看到這個一般的 male feature
link |
33:30.000
就是 label data 越少就越往下掉
link |
33:34.000
那 base 的這個 mockingjay model
link |
33:37.000
就直接好他一截
link |
33:39.000
全部都好他一截
link |
33:40.000
但也是會有往下掉的趨勢
link |
33:43.000
那 large model 在某些 case 下
link |
33:47.000
data 多的時候是比較好的
link |
33:49.000
data 少的話就可能
link |
33:52.000
跟 base model 差一點這樣
link |
33:55.000
那有 weighted sum 就會比所有人都好
link |
34:00.000
就是紅色這條線
link |
34:01.000
就是有 weighted sum 的 mockingjay model
link |
34:04.000
是比所有人都好的
link |
34:06.000
那這邊可以發現一個有趣的點
link |
34:09.000
就是這個最右邊的 large weighted sum
link |
34:13.000
他取得的成績竟然比這個
link |
34:16.000
左下角 male feature
link |
34:18.000
用全部的 label 得到的成績還要好
link |
34:21.000
也就是說他只用了這個
link |
34:24.000
0.1%的 label
link |
34:26.000
就可以比 male feature
link |
34:28.000
用了 100% label 還要好
link |
34:30.000
那這是一個還蠻驚人的發現
link |
34:32.000
就是說其實這個 self-supervised
link |
34:34.000
pre-training 其實是非常有效的
link |
34:36.000
我只要拿一大堆的語音去做 pre-training
link |
34:39.000
我就可以在下游的任務上取得
link |
34:42.000
比原本好上非常多的成績
link |
34:45.000
甚至是我不需要那麼多 data
link |
34:47.000
就可以比你好
link |
34:49.000
所以這也就是為什麼
link |
34:51.000
BERT 也是強在這裡
link |
34:53.000
語音上也是一樣的很強
link |
34:56.000
那就是我只要做一個 BERT 這樣的訓練
link |
35:00.000
我就是可以大幅的提升效能
link |
35:03.000
那如果有 fine-tune 的話就更厲害
link |
35:06.000
就是可以到 84% 的 accuracy
link |
35:09.000
那這個粉紅色的 base FT500
link |
35:13.000
是這個 top-line
link |
35:15.000
就是如果我 fine-tune
link |
35:17.000
50萬步的話可以到這裡
link |
35:19.000
但是如果是 fine-tune 兩個 Apple
link |
35:22.000
就可以取得大部分的進步幅度
link |
35:24.000
也就是說從綠色這條線
link |
35:26.000
直接變到紫色這條線
link |
35:28.000
那這邊的話
link |
35:30.000
有 fine-tune 的話當然就是比所有的
link |
35:32.000
NASA 都還要好
link |
35:34.000
那同樣的也是可以觀察到這件事情
link |
35:36.000
就是我只用 0.1% 的 data
link |
35:39.000
就比用 100% label 的 mail feature 還要好
link |
35:47.000
那這邊就是
link |
35:49.000
其實就是講完下面這個
link |
35:51.000
紅色的框框裡面的這四個做法
link |
35:54.000
因為他其實都是大同小異
link |
35:56.000
就是有一些細節上的不同
link |
35:58.000
不過主要的概念都是
link |
36:00.000
左邊這張圖
link |
36:02.000
就是把 frame mass 乘0
link |
36:04.000
然後我 output 用 reconstruction loss 去算
link |
36:07.000
那他最重要的想法就是說
link |
36:09.000
如果這個 model 是可以
link |
36:11.000
預測中間這個被遮蓋的資訊
link |
36:15.000
那他就可以學到一個好的
link |
36:17.000
contextualize 雙向的理解
link |
36:20.000
藍色這個
link |
36:22.000
他是可以理解說
link |
36:24.000
後面的資訊跟未來的資訊
link |
36:28.000
然後包含在這個藍色的 vector 裡面
link |
36:30.000
所以他是一個好的向量
link |
36:31.000
那透過實驗也都是
link |
36:33.000
證明他是一個好的向量
link |
36:35.000
那這樣子這個紅色呢
link |
36:37.000
就是紅色的框框
link |
36:39.000
就是所有的 audio BERT 的做法
link |
36:43.000
那我回到剛這個
link |
36:45.000
所有的 related work 這裡
link |
36:47.000
那這邊呢就是今天
link |
36:49.000
講過的所有的做法
link |
36:51.000
那其實還有一個
link |
36:53.000
目前我們實驗室正在做的
link |
36:56.000
也就是這個 MarkingJ的進階版
link |
36:59.000
叫做 Terra
link |
37:01.000
那這個 Terra 我就用兩三張 slide
link |
37:03.000
跟大家簡單講一下
link |
37:05.000
那這個 Terra 就是說
link |
37:07.000
我們原本的 BERT 是
link |
37:09.000
做在 temporal axis
link |
37:11.000
就是時間軸上嘛
link |
37:12.000
我們在時間軸上做 masking
link |
37:14.000
那其實還有兩個軸
link |
37:15.000
分別是 channel 軸
link |
37:17.000
跟這個 magnitude 這個軸
link |
37:19.000
所以其實是有三個軸的
link |
37:21.000
那我們其實可以在三個軸上面
link |
37:23.000
都做 masking
link |
37:26.000
那這個 Terra 就是
link |
37:28.000
Transformer Encoder Representation from Alteration
link |
37:31.000
那也是一個 multi-target
link |
37:33.000
pre-training 的想法
link |
37:34.000
那把原本這個 MarkingJ
link |
37:36.000
只有一個軸
link |
37:37.000
延伸到三個軸
link |
37:39.000
那具體怎麼做呢
link |
37:41.000
這是剛剛秀給大家看過的圖
link |
37:45.000
那這個是在時間軸上
link |
37:47.000
那如果我有一個
link |
37:49.000
也是一個 acoustic feature
link |
37:50.000
它是不同的 acoustic feature
link |
37:51.000
是 FMLR
link |
37:52.000
這上面是 semel feature
link |
37:54.000
那這樣子的話
link |
37:56.000
其實是一樣的
link |
37:57.000
你用哪一種 feature 都可以
link |
37:58.000
不過這個 Terra 這一篇呢
link |
38:00.000
是用這個 FMLR 的 feature
link |
38:02.000
那我要怎麼做三個軸的 masking 呢
link |
38:05.000
也就是下面這張圖
link |
38:07.000
這個 A 呢
link |
38:10.000
就是原本的 original feature
link |
38:12.000
那 B 跟 C 就是
link |
38:14.000
剛剛講過的 MarkingJ
link |
38:16.000
也就是 AudioBird 做的事情
link |
38:18.000
就是我在時間軸上
link |
38:19.000
把一條 mask 乘零
link |
38:21.000
那我也可以做替換
link |
38:23.000
比如說換成這樣子
link |
38:24.000
random 的 frame
link |
38:26.000
那這是一個軸
link |
38:28.000
那第二個軸
link |
38:29.000
就是上面這張圖 D
link |
38:31.000
我在橫的這樣子
link |
38:33.000
mask 一排
link |
38:35.000
mask 在 channel 上面
link |
38:37.000
那這樣子的話
link |
38:38.000
我就可以把
link |
38:40.000
一整排的 channel 資訊都 mask 掉
link |
38:49.000
好,然後這個 E 的話呢
link |
38:51.000
就是我 sample 出一些
link |
38:53.000
高弦的 noise
link |
38:54.000
然後加在 MAGRAV 圖上面
link |
38:56.000
那因為 sample 出來的 noise
link |
38:58.000
很小
link |
39:00.000
所以其實肉眼是看不到的
link |
39:01.000
不過在這裡
link |
39:02.000
下面這張圖就看得到
link |
39:03.000
這邊呢
link |
39:04.000
就是 combine 的這個
link |
39:06.000
time channel 跟 magnitude
link |
39:08.000
做在一起
link |
39:09.000
所以原本這裡應該是乾淨的零
link |
39:11.000
比如說像這樣子
link |
39:12.000
就可以看到上面有一些
link |
39:13.000
sample 出來的 noise 在上面
link |
39:15.000
那這樣子就是把三個
link |
39:18.000
軸上面的
link |
39:19.000
這個 alteration
link |
39:20.000
combine 在一起
link |
39:21.000
那它的概念也就是說
link |
39:23.000
如果這個 model
link |
39:24.000
可以從這樣子
link |
39:25.000
被更動過的 input 還原出
link |
39:28.000
乾淨的
link |
39:29.000
這樣子的 feature 的話
link |
39:31.000
那它就可以學到
link |
39:32.000
雙向的資訊
link |
39:34.000
然後不僅是在時間軸上
link |
39:36.000
也可以是在
link |
39:37.000
這個 channel 軸上面
link |
39:39.000
所以它透過實驗
link |
39:40.000
就是發現說
link |
39:41.000
這個 channel 軸的 masking
link |
39:43.000
是可以學到
link |
39:44.000
余者的資訊
link |
39:45.000
那這個時間軸的 masking
link |
39:48.000
可以學到雙向的
link |
39:50.000
那個 foam 的資訊
link |
39:52.000
那這個 magnitude 的增加跟減少
link |
39:54.000
是可以讓那個模型
link |
39:56.000
在整體的
link |
39:58.000
整體的任務上面的表現
link |
40:00.000
都有所提升的
link |
40:02.000
好那這就是
link |
40:03.000
再把它放到這張圖裡面
link |
40:06.000
那這個 ASR 系統呢
link |
40:08.000
也是這橘色框框
link |
40:10.000
就可以換成
link |
40:11.000
像這個 Terra 這樣子
link |
40:12.000
那這邊就是
link |
40:13.000
也是可以做 ASR 的實驗
link |
40:15.000
或者是 foam 跟 speaker 的分類
link |
40:17.000
等等
link |
40:19.000
好那這樣子
link |
40:21.000
就把這張圖裡面
link |
40:23.000
所有的
link |
40:24.000
這個 self-sortify 的方法
link |
40:26.000
都講完了
link |
40:27.000
那主要就是有綠色這邊
link |
40:29.000
是這個 CPC 的做法
link |
40:31.000
那紫色這一坨
link |
40:32.000
是這個 reconstruction loss 的方法
link |
40:35.000
那橘色這一坨呢
link |
40:36.000
就是所有的
link |
40:37.000
Bird style 的 pre-training
link |
40:39.000
好那其實是還可以
link |
40:41.000
分成這樣子的分類
link |
40:42.000
就是這個顏色呢
link |
40:44.000
就是對應到上面這一頁
link |
40:46.000
就是綠色就是這裡
link |
40:48.000
紫色就是這裡
link |
40:49.000
橘色就是這一坨
link |
40:50.000
那它其實是
link |
40:51.000
可以分成這樣子的分類
link |
40:53.000
就這些呢
link |
40:54.000
這些右邊這一坨呢
link |
40:56.000
都是這種從 past
link |
40:58.000
predict future 的做法
link |
41:00.000
那右邊這一坨
link |
41:02.000
它就是從左右兩邊
link |
41:04.000
past 跟 future 一起 predict
link |
41:06.000
現在的這種做法
link |
41:08.000
那就是
link |
41:10.000
這是目前主要的做法
link |
41:12.000
link |
41:14.000
那接下來除了這個
link |
41:16.000
marking jet 以外呢
link |
41:17.000
就是其實是還有一些
link |
41:19.000
一些更多的應用
link |
41:22.000
是可以做在
link |
41:23.000
AudioBirds 上面
link |
41:24.000
那下面就舉三個最新的例子
link |
41:26.000
那這是新鮮出爐的
link |
41:29.000
就是5月15號才剛投到
link |
41:32.000
這個 Interspeech 的 work
link |
41:34.000
這樣子
link |
41:35.000
那第一個呢
link |
41:36.000
就是 marking jet
link |
41:37.000
拿來做 adversarial defense
link |
41:39.000
第二個呢
link |
41:40.000
是 improve marking jet
link |
41:42.000
也就是 speech 版的 Albert
link |
41:44.000
那第三個是這個
link |
41:46.000
理解這種 marking jet 裡面
link |
41:48.000
的 self-attention
link |
41:50.000
那下面就一個一個來介紹
link |
41:52.000
那我會講第一個
link |
41:54.000
就是 marking jet 做 adversarial defense
link |
41:57.000
那下面兩個呢
link |
41:58.000
就是會分別請他們的作者
link |
42:01.000
來為大家介紹
link |
42:04.000
link |
42:05.000
那第一個的話呢
link |
42:06.000
是這個 adversarial defense
link |
42:09.000
要怎麼用這個 speech 版的
link |
42:11.000
這個 birds 來做呢
link |
42:14.000
那 adversarial defense 是什麼呢
link |
42:17.000
那我先講什麼是
link |
42:18.000
adversarial attack
link |
42:20.000
就是下面這張圖的例子
link |
42:22.000
就是假裝我有一個熊貓
link |
42:23.000
那機器辨識它說它是熊貓
link |
42:26.000
然後有這樣子的 confidence
link |
42:28.000
但是如果
link |
42:29.000
今天我在 attack 它的時候
link |
42:30.000
我就可以學出一個 noise
link |
42:32.000
然後乘上一個 weight
link |
42:34.000
把它加在圓圓的圖上面
link |
42:36.000
然後對人類的眼睛來說
link |
42:37.000
是沒有差別的
link |
42:38.000
看起來還是一個熊貓
link |
42:39.000
但是機器卻會辨識錯
link |
42:41.000
把它辨識成這個
link |
42:43.000
given 就是長臂圓
link |
42:45.000
然後甚至 confidence 才特別的高
link |
42:48.000
那這樣子的例子就是
link |
42:50.000
一個 attack 成功的例子
link |
42:52.000
就是對人眼來說是沒差別的
link |
42:54.000
但是對機器的辨識來說
link |
42:56.000
是會出錯的
link |
42:57.000
那這樣子的 attack 是可以用在
link |
43:00.000
不同的 AI 的 security system
link |
43:02.000
舉例來說
link |
43:03.000
比如說 face ID
link |
43:04.000
或者是 voice ID 等等
link |
43:06.000
那所以這是一個
link |
43:08.000
就是現在還蠻熱門的主題
link |
43:11.000
就是怎麼做 attack
link |
43:13.000
跟怎麼做 defense
link |
43:14.000
就是有人做 attack
link |
43:15.000
就有人想辦法 defense
link |
43:17.000
那這個 attack 的方法
link |
43:19.000
就是有各種各樣
link |
43:22.000
那基本上都是 gradient base
link |
43:24.000
那主要就是學這樣子的 noise
link |
43:26.000
然後要去 attack 這樣子的 image
link |
43:28.000
那 defense 的話
link |
43:29.000
就是想辦法讓這個 noise
link |
43:31.000
加上去之後
link |
43:32.000
它不會影響辨識的結果
link |
43:35.000
那以語音來說呢
link |
43:36.000
就是這樣子
link |
43:37.000
如果有一個 voice ID 這個聲紋鎖
link |
43:39.000
那比如說是這個鎖
link |
43:41.000
是這個黑武士的鎖
link |
43:43.000
那有一個路人呢
link |
43:46.000
來講一句話
link |
43:47.000
他其實是會 deny 的
link |
43:48.000
就是因為不是他的聲音嘛
link |
43:50.000
那如果是黑武士自己
link |
43:53.000
就應該要讓他 granted assess 這樣子
link |
43:56.000
但是如果今天我用 audio playback
link |
44:00.000
就比如說我錄他的聲音
link |
44:02.000
或者是我用 TTS 合成他的聲音
link |
44:05.000
然後去給這個鎖
link |
44:08.000
想要嘗試解鎖的話
link |
44:10.000
會不會很容易就被解鎖成功呢
link |
44:12.000
是有可能的
link |
44:13.000
因為 audio playback 跟你
link |
44:15.000
就是你播放一個人的錄音
link |
44:18.000
跟那個人真實講話
link |
44:19.000
其實是很類似的嘛
link |
44:21.000
對機器來說其實是分不出來
link |
44:23.000
所以其實是呢
link |
44:24.000
還會再加上這樣子的 model
link |
44:27.000
就是 anti-spoofing 的 model
link |
44:29.000
在這個 speaker verification model 前面
link |
44:32.000
那這個 anti-spoofing model
link |
44:34.000
做事情是這樣子
link |
44:35.000
就是我今天有一段聲音
link |
44:38.000
如果它是被人為改動過的
link |
44:40.000
或比如說是錄音的 playback
link |
44:43.000
或者是 TTS 的合成呢
link |
44:46.000
他就要說這是 spoofing
link |
44:48.000
那就要把它丟掉
link |
44:50.000
就不要再餵給下面的
link |
44:52.000
這個語者辨識的模型
link |
44:54.000
但如果他今天是沒有被改動過的
link |
44:57.000
non-spoofing 的話
link |
44:58.000
他就會給這個 speaker verification model
link |
45:00.000
去確認
link |
45:01.000
所以他其實是先做一個
link |
45:03.000
就是預防的動作
link |
45:04.000
就是預防說那些
link |
45:06.000
有被人為改動過的聲音啊
link |
45:08.000
或者是錄音啊或是合成的聲音
link |
45:10.000
來攻擊我的聲紋鎖這樣子
link |
45:13.000
那所以如果我今天有一個
link |
45:15.000
audio playback
link |
45:16.000
那他就會辨識說他是 spoofing
link |
45:18.000
然後就把它丟掉
link |
45:19.000
就不會給 speaker verification model
link |
45:21.000
去做下一步的辨識了
link |
45:24.000
那今天我們要怎麼 attack 這樣子的
link |
45:26.000
anti-spoofing model呢
link |
45:28.000
其實是這樣子
link |
45:29.000
就是我有一個 audio playback
link |
45:30.000
原本他辨識說是 spoofing
link |
45:33.000
但是呢我今天就是
link |
45:35.000
想要他讓他辨識成是 non-spoofing
link |
45:37.000
那怎麼做
link |
45:38.000
就是我用 gradient descent
link |
45:40.000
然後我要 maximize
link |
45:42.000
這兩個 input 的 difference
link |
45:44.000
也就是說我加上一個 noise
link |
45:46.000
得到這樣子的聲音
link |
45:48.000
對人類聽起來可能是一樣的
link |
45:50.000
那這是一個 adversarial noise
link |
45:52.000
然後得到這樣子
link |
45:53.000
adversarial example
link |
45:54.000
就是 x 加上 delta
link |
45:56.000
得到這個 x delta
link |
45:57.000
那這個 x delta
link |
45:59.000
未進 anti-spoofing model 呢
link |
46:01.000
我希望這個 f of x delta
link |
46:04.000
是可以跟 f of x
link |
46:06.000
離得越遠越好
link |
46:07.000
因為原本他辨識我說
link |
46:09.000
我是 spoofing 嘛
link |
46:10.000
但我希望他辨識成
link |
46:12.000
我是 non-spoofing
link |
46:14.000
所以我就要 maximize
link |
46:15.000
這兩者的 difference
link |
46:17.000
那我這 gradient descent 呢
link |
46:18.000
一般我們 gradient descent
link |
46:19.000
是用來 update model 的 parameter 嘛
link |
46:21.000
但是現在不是
link |
46:22.000
我們就是拿來 update
link |
46:24.000
這一個 delta noise
link |
46:26.000
就是我去學
link |
46:27.000
這個 delta noise
link |
46:28.000
應該長怎麼樣
link |
46:29.000
所以如同上面這張圖看到的
link |
46:32.000
就是他其實是長這樣子
link |
46:34.000
學出來的 noise 是長這樣子
link |
46:35.000
因為是機器學出來的
link |
46:37.000
gradient descent 學出來的
link |
46:38.000
是長這樣
link |
46:39.000
對人類來說是看不出來的
link |
46:41.000
那回到這裡的話
link |
46:43.000
就是我可以用 gradient descent
link |
46:45.000
去學這樣子 adversarial noise
link |
46:46.000
就可以 attack 成功
link |
46:48.000
那這個 attack 的方法的成功率
link |
46:51.000
其實是還蠻高的這樣
link |
46:53.000
所以現在的問題就是
link |
46:54.000
我們要怎麼 defense
link |
46:56.000
那其實我們就是發現
link |
46:58.000
這個 marking j
link |
47:00.000
剛剛講的這個 audio bird
link |
47:02.000
是可以拿來做 defense
link |
47:03.000
我就直接把他擋在前面
link |
47:05.000
擋在這個 anti-spoofing model 前面
link |
47:07.000
就可以做 defense 了
link |
47:09.000
那具體來說是怎麼樣呢
link |
47:11.000
就是可以看這個實驗的結果
link |
47:13.000
那這個橫軸呢
link |
47:15.000
是 attack 的強度越來越強
link |
47:18.000
那縱軸就是
link |
47:19.000
anti-spoofing model 的正確率
link |
47:21.000
所以如果他錯的話
link |
47:23.000
表示他被 attack 成功了嘛
link |
47:25.000
那如果正確率都很高的話
link |
47:27.000
表示沒有被 attack 成功
link |
47:29.000
所以可以看到這個 marking j
link |
47:30.000
紅色這條線
link |
47:31.000
在不同強度的 attack 下面
link |
47:34.000
其實都是持平的
link |
47:36.000
就是他不受 attack 影響
link |
47:38.000
但其他的這些方法
link |
47:40.000
就是會七頂八落這樣子
link |
47:42.000
那其他方法一般就是
link |
47:44.000
這種 filter based 的方法
link |
47:46.000
medium、mean filter 或 gaussian filter
link |
47:48.000
gaussian filter 其實蠻強的
link |
47:50.000
就是綠色這條線
link |
47:51.000
他其實是在一定程度 attack 下
link |
47:54.000
是不受影響的
link |
47:55.000
但有些 case 就會被影響
link |
47:57.000
這四張圖分別是
link |
47:59.000
兩個不同的 anti-spoofing model
link |
48:01.000
被兩種不同的 attack 方法
link |
48:03.000
攻擊的結果
link |
48:05.000
所以就有四種 case 這樣
link |
48:07.000
那 male feature 呢
link |
48:09.000
就是會比較爛
link |
48:12.000
就是灰色這條線
link |
48:14.000
那這個橘色的這條 random
link |
48:16.000
就是 random 的 marking j
link |
48:18.000
就是可以看到說
link |
48:19.000
橘色跟紅色的差異
link |
48:21.000
就是有 pre-trained 跟沒有 pre-trained
link |
48:23.000
所以其實有 pre-trained 是有差的
link |
48:25.000
你看舉例來說
link |
48:26.000
下面這個橘色就是
link |
48:28.000
非常的弱
link |
48:30.000
這個橘色有這樣
link |
48:31.000
所以其實是
link |
48:32.000
不是因為多了
link |
48:34.000
不是因為多了一堆的
link |
48:36.000
layer 在這邊所以才好
link |
48:38.000
而是因為他有 pre-trained 過才好
link |
48:40.000
這樣
link |
48:41.000
link |
48:42.000
那這個 train from scratch
link |
48:44.000
這個藍色的點呢
link |
48:45.000
在這裡
link |
48:46.000
就是說
link |
48:47.000
如果我直接
link |
48:48.000
把他接在
link |
48:50.000
marking j 接在 anti-spoofing model 的前面
link |
48:52.000
然後直接這樣 train from scratch
link |
48:54.000
其實是不行的
link |
48:55.000
是沒有用的
link |
48:56.000
是跟 chance level 差不多
link |
48:58.000
就是他的正確率是五十幾趴
link |
49:00.000
那所以紅色的線呢
link |
49:02.000
就是可以顯現出
link |
49:03.000
就是 pre-trained 的
link |
49:04.000
這個 audio burn
link |
49:05.000
marking j 是好的
link |
49:07.000
那還有另一個實驗呢
link |
49:09.000
是這個
link |
49:11.000
link |
49:12.000
算這個
link |
49:13.000
lnsr
link |
49:14.000
layer wise 的這個
link |
49:16.000
nsr
link |
49:17.000
那他的
link |
49:18.000
想法是這樣
link |
49:19.000
就是我們能不能衡量這個
link |
49:22.000
攻擊的這個訊號
link |
49:23.000
在 layer 中間遞減的情況
link |
49:26.000
所以其實是可以的
link |
49:27.000
也就是左邊這張圖
link |
49:28.000
link |
49:29.000
就是我在每一層呢
link |
49:31.000
我都算一個
link |
49:33.000
呃這個
link |
49:34.000
原本的 hi 跟 attack 過的
link |
49:37.000
hidden 的 hi 的差異
link |
49:39.000
然後 normalized by 這個原本的
link |
49:41.000
所以是這樣子
link |
49:42.000
就是我先拿
link |
49:44.000
正常的聲音丟進去
link |
49:46.000
然後在每一層都算出這個 hi
link |
49:48.000
然後再拿 attack 的聲音丟進去
link |
49:51.000
然後去算他們之間的差異
link |
49:53.000
所以可以看到這個
link |
49:55.000
attack 的 signal
link |
49:57.000
隨著 marking j 的層數遞減
link |
50:00.000
那這個 0 呢
link |
50:02.000
就是在 output 的地方
link |
50:03.000
所以可以看到在
link |
50:05.000
input 的地方
link |
50:07.000
input 的地方呢
link |
50:08.000
這個
link |
50:09.000
黑色的這個 x
link |
50:10.000
跟這個
link |
50:11.000
藍色的 x delta
link |
50:12.000
其實是差非常多的
link |
50:13.000
所以他的這個 lnsr 是蠻高的
link |
50:16.000
但是只要一進到 model 呢
link |
50:18.000
就有下降的趨勢
link |
50:20.000
然後隨著層數的增加
link |
50:23.000
那個 lnsr 是越來越少
link |
50:25.000
也就是說
link |
50:26.000
呃 attack 過的
link |
50:28.000
這個 attack 的這個 signal
link |
50:30.000
被 model 濾掉了
link |
50:32.000
被 model 濾掉
link |
50:33.000
然後就
link |
50:34.000
這個 lnsr 就非常的少
link |
50:36.000
link |
50:37.000
那這個就是可以看到說
link |
50:39.000
marking j 是如何的過濾
link |
50:41.000
這個 attack 的 signal
link |
50:43.000
那除了這個
link |
50:45.000
adversarial attack 之外呢
link |
50:47.000
還有什麼
link |
50:48.000
是我們可以用 marking j 做的呢
link |
50:50.000
那下面就是
link |
50:51.000
有兩個
link |
50:52.000
一個是 audio bert
link |
50:54.000
那這個就是
link |
50:55.000
link |
50:56.000
我有語音版的 marking j
link |
50:58.000
也就是
link |
50:59.000
audio 版的 bert
link |
51:01.000
那我們可不可以做一個
link |
51:02.000
audio 版的 lbert 呢
link |
51:03.000
那其實是可以的
link |
51:04.000
那等一下就會請那個
link |
51:06.000
紀伯漢
link |
51:07.000
同學來為大家介紹
link |
51:10.000
那這邊呢
link |
51:11.000
第三個是這個
link |
51:12.000
understanding self-attention
link |
51:14.000
那也就是理解
link |
51:15.000
這個 self-attention
link |
51:16.000
到底是在做什麼事情
link |
51:18.000
model 到底是學到了什麼
link |
51:20.000
所以等一下也會有這個
link |
51:22.000
楊書文同學
link |
51:23.000
來為我們做介紹
link |
51:24.000
就是這個
link |
51:25.000
attention 裡面
link |
51:26.000
到底理解了什麼
link |
51:28.000
link |
51:29.000
這邊我做一個總結
link |
51:30.000
就是 self-supervised 的學習呢
link |
51:32.000
其實是有
link |
51:33.000
許多的點子
link |
51:35.000
跟想法是可以做的
link |
51:37.000
link |
51:38.000
也是有許多研究的方向
link |
51:40.000
可以做的