back to index

【機器學習2022】開學囉~ 又要週更了~


link |
00:01.000
我們來很快的概述一下,這個學期你預期可以學到什麼樣的東西。
link |
00:09.000
這邊是課程網頁的連結,本課程總共有15項,課程的錄影目前都已經放在課程網頁上了。
link |
00:21.000
所以你現在就可以開始學習,你完全可以花一個周末把所有的課程從頭到尾一口氣通通看完。
link |
00:30.000
所以你可以每一周按部就班的學習,你也完全可以用一周的時間把所有的內容通通學完。
link |
00:38.000
Up to you,你可以自己決定你要用什麼樣的步調來學習機器學習。
link |
00:44.000
每一講都有一個對應的作業內容,之後會在上課的時間公告。
link |
00:54.000
就像我剛才說的,如果你沒有辦法來教室,你沒有辦法聽直播,完全沒有關係,因為作業的講解也通通會錄影。
link |
01:04.000
上課時間會做什麼呢?既然錄影都已經有了,除了請助教來講作業以外還會做什麼事情呢?
link |
01:15.000
今年上課會再講一些新的內容,但是新的內容是跟作業沒有關係的,那你自己決定要不要來聽。
link |
01:24.000
其實根據我過去的經驗,新的內容跟作業完全無關的。
link |
01:29.000
200人的課堂,最後有來5個人我就已經偷笑了。
link |
01:35.000
那我們就開始來講一下這門課你預期會學到什麼。
link |
01:40.000
這門課既然叫做機器學習,那我們就預期學到什麼是機器學習。
link |
01:46.000
但什麼是機器學習呢?你在報章雜誌上可能會聽到很多對AI的吹捧,你已經知道說機器學習跟AI是息息相關的一個技術。
link |
01:58.000
但具體而言機器學習是什麼呢?具體而言機器學習其實就是叫機器幫我們找一個函數。
link |
02:09.000
函數是一個你國高中的時候就有的概念,而機器學習做的事情其實就是找一個函數。
link |
02:18.000
我知道你在坊間在各種科普的文章可能可以找到各式各樣擬人化的講法,告訴你說機器學習就是機器在模仿人類,然後3號他就知道怎麼學習了,然後你根本不知道那個科普文章在講什麼。
link |
02:32.000
但實際上機器學習就是找一個函數。
link |
02:36.000
舉例來說,假設你要叫機器做語音辨識,今天幾乎每一支手機都有語音辨識的功能,你對手機講一句話,它可以把你說的聲音訊號轉成文字。
link |
02:49.000
那手機是怎麼做到語音辨識的呢?那就是手機裡面有一個函數,這個函數在投影片上我們用小F來表示。
link |
02:57.000
這個函數的輸入網是一段聲音訊號,輸出就是這段聲音訊號對應的文字。
link |
03:03.000
那這個函數顯然非常非常的複雜,你可以想見把聲音訊號轉換成文字,這是一個非常巨大的工程,這個函數顯然非常的複雜,那不是人類可以寫出來的函數。
link |
03:17.000
所以怎麼辦?我們期待透過機器的力量把這個函數找出來,這個就是機器學習。
link |
03:25.000
那同樣的,如果你要做影像辨識,那影像辨識今天對大家來說也不是什麼太新鮮的技術,當你把一張照片上傳到Facebook的時候,Facebook會自動Tag你的朋友,這就是影像辨識的一個例子。
link |
03:39.000
那機器怎麼做影像辨識呢?一樣,找出一個函數,函數的輸入是一張圖片,輸出是你要的結果,比如說圖片裡面有什麼樣的東西,這就是影像辨識。
link |
03:51.000
就算是大家都知道的AlphaGo,其實也就是一個函數,這個函數的輸入是棋盤上黑紙跟白紙的位置,輸出是下一步應該落的位置。
link |
04:02.000
所以機器學習就是幫我們找一個人類寫不出來的複雜函數。
link |
04:09.000
在這一門課裡面,我們其實只會特別著重在機器學習裡面的某一個關鍵技術,叫做深度學習。
link |
04:19.000
當我們說深度學習的時候,我們的意思是說機器學習就是找一個函數,而這個函數是用一個類神經網路。
link |
04:34.000
這個類神經網路一聽就覺得是一個很潮的東西,但是你很快就會知道說什麼類神經網路就是模擬大腦的神經啊,然後怎樣怎樣,然後不知道怎麼回事它就會學習啊,那完全就是一片片麻瓜的講法。
link |
04:47.000
反正在這一門課裡面,我們的函數就是一個類神經網路,它可以有各式各樣的輸出,舉例來說,它的輸入可以是一個向量,或者是它的輸入可以是一個矩陣。
link |
05:06.000
什麼時候我們會希望函數的輸入是矩陣呢?舉例來說,你在做影像辨識的時候,往往一張圖片就是用一個矩陣來表示它。
link |
05:16.000
或者是這個函數的輸入也可以是一個序列,舉例來說,如果你要做語音辨識,你要做翻譯,你的函數的輸入是一段聲音訊號一句話,或者是一段文字,這個時候你的輸入其實就是一個序列。
link |
05:33.000
那也有各式各樣的輸出,你的輸出可以是一個數值,輸出是一個數值的任務,叫做regression。你的輸出可以是一個類別,所謂輸出是類別的意思就是說,你提供給機器幾個選項,叫它選擇其中一個。
link |
05:51.000
那這樣子的任務叫做分類。那還有其他更複雜的輸出,比如說你可以叫機器寫一段話、寫一篇文章,或甚至叫機器畫圖。
link |
06:03.000
那這些各種各樣的輸入跟輸出,我們在這堂課都會很快地在期中之前就教給你,告訴你說怎麼用內神經網路來製造這些函數,讓它可以做各式各樣的輸入和輸出。
link |
06:18.000
舉例來說,在第一個作業,我們做的是有關COVID-19的確診率的預測,那我們的函數的輸入就是一個向量,輸出就是一個數值,那你很快就會看到這件事情是怎麼達成的。
link |
06:36.000
那在第二個作業呢,我們會做Phoning的Classification,那你不知道Phoning的Classification是什麼也沒有關係,它其實是一個語音辨識的簡化版,那在這個任務裡面,我們的輸入是一個向量,我們的輸出是一個類別。
link |
06:52.000
在第三講對的作業裡面,我們要做影像辨識,那這個時候我們的輸入就是一個向量,也就是一張圖片,我們的輸出是這個圖片所對應的類別。
link |
07:06.000
在第四講的作業裡面,我們會做語者辨認,也就是讓機器聽一段聲音,它判斷說這段聲音是誰講的,這個時候它的輸入是序列,它的輸出是類別。
link |
07:20.000
那在第五講的作業裡面,我們會做機器翻譯,讓機器比如說讀一段中文,把它翻譯成英文。
link |
07:29.000
這個時候你的輸入是一個句子,你的輸出也是一個句子,你的輸入是一個序列,你的輸出是另一個序列。
link |
07:37.000
我們會來看看機器怎麼把一個序列轉成另一個序列的問題。那在第六講裡面,我們會做動漫人物人臉的生成,那這個時候你會學到機器怎麼畫一張圖。
link |
07:53.000
這個是我們前六講所對應的作業。再來我們要問機器是怎麼找出這些function的呢?我們說機器學習它就是自動找一個函數,但是自動找一個函數這件事情是怎麼做的呢?
link |
08:09.000
在第一講到第五講,我們用的方法叫做supervised learning。那supervised learning是怎麼做的呢?簡單來說,假設你今天想要做一個寶可夢跟數碼寶貝的分類器,
link |
08:25.000
就是你想訓練你的機器看到一隻動物,然後它就告訴你說這隻動物是寶可夢還是數碼寶貝。
link |
08:33.000
那你要叫機器學習怎麼看到一隻動物判斷它是寶可夢還是數碼寶貝。
link |
08:50.000
那在supervised learning這樣子的學習情境下,我們是怎麼做的呢?在supervised learning裡面,我們的做法會是你要收集一大堆的訓練資料。
link |
09:03.000
什麼樣的訓練資料呢?尤其路上抓很多的動物,然後每抓來一隻,你就給它做一個標記,標記說這隻動物它是寶可夢還是數碼寶貝。
link |
09:16.000
假設你就抓了四隻動物,那第一隻動物這個看起來笑得非常猥瑣的,它是什麼呢?它是小火龍,所以它是寶可夢。
link |
09:27.000
第二隻,它看起來是個麻雀,但它不是普通的麻雀,它是一隻波波,它也是寶可夢。
link |
09:33.000
第三隻,它不是暴龍,它是亞古獸,它是一個數碼寶貝。
link |
09:47.000
最右邊這一隻呢,這一隻我也不認識,我也不知道它是什麼東西,但它的手變成一個刀,我們覺得它是手刀烏龜吧,手刀烏龜它是數碼寶貝。
link |
10:00.000
那接下來呢,你有了這些標註之後,這些標註我們叫做Label,你有這些Label以後,你就可以叫機器自動找出一個Function,這個Function的輸入是一隻動物,輸出就告訴你是寶可夢還是數碼寶貝。
link |
10:16.000
那這是在第一到第五個作業我們會做的事情。
link |
10:20.000
但是光是有Supervised Learning是不夠的,Supervised Learning有什麼樣的問題呢?你要做標記,它顯然是一個非常耗費人工的事情,所以你可能收集到的標記資料往往不會太多。
link |
10:36.000
而且啊,如果我們要為每一個任務都收集足夠的標記資料,這不是一件非常麻煩的事情嗎?因為除了寶可夢跟數碼寶貝的分類以外,你可能還想要做其他種類東西的分類,你想要分貓跟狗,你想要分腳踏車跟汽車,你想要分蘋果跟橘子。
link |
10:56.000
但是你每一個任務都要收集大量的有標註的資料,這顯然是非常花時間的一件事情。
link |
11:04.000
所以怎麼辦呢?有一個新的概念叫做Self-Supervised Learning。
link |
11:10.000
在Self-Supervised Learning裡面,我們期待模型做到的事情是在訓練之前先練成一些基本功。
link |
11:19.000
這個練基本功的過程就叫做Pretrain,顧名思義就是在訓練之前做的事情,所以叫做Pretrain。
link |
11:27.000
期待說透過這個Pretrain的過程,讓機器學會做各種不同影像辨識相關任務的基本功,期待它把基本功練好以後,它就可以在新的任務上面做得很好。
link |
11:41.000
就好像說,大家有看過鬼滅之刃對不對?鬼滅之刃裡面有各式各樣的呼吸法,每個人都只會學一種呼吸法而已。
link |
11:51.000
但這些呼吸法有共同的基本功,大家知道是什麼嗎?這就是吹葫蘆不是嗎?
link |
11:59.000
你要把一個葫蘆吹爆,然後這樣可以練肺活量,然後你就可以把各種呼吸通通練起來。
link |
12:07.000
所以呢,今天Sales Supervise Learning這個Pretrain做的事情,就是吹葫蘆那一個動作,讓機器先去學把基本功學起來,希望在其他的任務上就可以很快地學會。
link |
12:21.000
那這個基本功要怎麼練成呢?就影像辨識而言,今天在練基本功的時候,不需要任何的標準,只需要網路上爬一大堆的影像資料,
link |
12:34.000
機器就會自動學會我們要它學習的基本能力。那透過這些大量沒有標註的資料,機器會怎麼學習呢?
link |
12:45.000
我們今天先不講它的細節,舉例來說你可能做的事情就是把一張圖片左右反轉,問機器說它們是不是一樣,或把圖片變色,問機器說它們是不是一樣。
link |
12:58.000
讓機器去透過這些完全沒有標註的資料學一些基本的任務。
link |
13:04.000
神奇的就是,當它學會這些基本任務以後,有一些真正想要它解的問題,比如說分類寶可夢和數碼寶貝,或分類蘋果跟橘子,這些我們真正要機器解的問題叫做downstream的任務,叫做下游任務。
link |
13:20.000
當機器在這些沒有標註的資料上面,它學會分辨左右反轉的照片是同一張,學會分辨兩張不同顏色的圖片其實對應裡面的物件是同一個的時候,當它學會這些非常基本的事情的時候,
link |
13:36.000
神奇的事情是它就可以在我們真正關心的下游任務上面得到好的結果。
link |
13:43.000
這個就是Sale Supervise等你的概念,那是這個學期我們在上課的時間會花比較多的時間跟大家分享的新的技術。
link |
13:53.000
如果要做一個比方,我覺得這個pre-training跟downstream task它們之間的關係,就是今天作業系統跟應用之間的關係。
link |
14:05.000
大家都知道說,今天你想要自己在手機上自己開發一個應用程式並不是一件非常困難的事情,往往單一個工程師就可以為手機增添新的功能。
link |
14:17.000
為什麼今天幫手機增添新的功能這麼方便呢?因為真正複雜的事情都已經被Android或者是iOS做掉了。
link |
14:26.000
所以你今天在開發一個新的應用的時候,你不需要從頭開發起,你並不需要去管你的應用如何跟硬體溝通,因為這些工作都已經被作業系統做掉了,所以你可以快速地開發新的應用。
link |
14:42.000
而在Skill Supervised Learning裡面,pre-training和downstream任務的關係也是一樣,你有一個好的pre-training model就像有一個好的作業系統,它把困難的事情做掉,當你要開發新的任務的時候,會變得非常簡單。
link |
14:56.000
很多人又把pre-training的模型今天又叫做foundation model,又叫做基礎的模型,因為我剛才有說它就是基本功,所以我們叫它基礎,給它一個很潮的名字,叫做foundation model。
link |
15:13.000
在foundation model裡面最知名的就是一個叫做Bert的模型,Bert就是黃色的尖頭,他是一個芝麻街的人物,他長得是這個樣子。
link |
15:27.000
所以每次一提到Bert的時候,你一定要放這個芝麻街的人物,代表你要講Bert這個東西了。
link |
15:34.000
Bert在大家的印象裡面,他就是一個碩大無朋的怪物,就好像是超巨大巨人一樣,一腳可以踢破瑪利亞之牆的那一種。
link |
15:45.000
為什麼大家會有這個印象呢?因為Bert有340個million的參數,雖然340個million聽起來很驚人,但是其實今天看來他也只是一個沒有非常大的模型而已,比他大的模型比比皆是。
link |
16:01.000
而且我發現Bert跟進擊的巨人,是真的有非常強的關聯的。
link |
16:10.000
以下有巨人雷,不想聽的就把耳朵捂起來,把眼睛閉起來。
link |
16:17.000
這個關聯是什麼呢?以下我要爆雷囉。
link |
16:22.000
大家都知道說,巨人他背後是由人操控的,其實巨人他們本來也是跟我們一樣的人類。
link |
16:32.000
那你知道最大的那個超巨大巨人是誰操控的嗎?是貝爾托特對不對?他的名字裡面有Bert啊!
link |
16:41.000
我跟你講,這個絕對不是一個巧合。
link |
16:45.000
我知道有人可能會想說,這個應該是先有進擊的巨人才有Bert這個模型吧?
link |
16:56.000
這個時間順序上感覺有點奇怪,我就告訴你啦,那個作者用進擊巨人之力,他可以看到未來,就是這個樣子。
link |
17:04.000
所以他就把超巨大巨人的使用者命名為貝爾托特,就是這樣。
link |
17:10.000
但是如同我剛才講的,Bert今天已經不是什麼了不起的巨大模型,這個時間點就好像是有人發動了地鳴一樣,有超多超巨大的巨人從地底湧出。
link |
17:23.000
他們是我們在這門課裡面很快就會看到的非常重要的模型。
link |
17:30.000
那第六講呢,我們會講Generated Adversarial Network,那Generated Adversarial Network最重要的一個關鍵的應用就是,
link |
17:40.000
剛才在講Supervised Learning的時候,我們說假設你要讓機器輸入X輸出Y,你要產生大量成對的資料。
link |
17:50.000
你需要告訴機器說,我如果輸入X1,我希望它輸出什麼樣的Y1,我輸入X2,我希望它輸出什麼樣的Y2,收集到夠多的資料,機器才有辦法做Supervised Learning。
link |
18:04.000
但是如果你有Generated Adversarial Network這樣的技術,你有這個Adversarial Network這樣的技術的話,你可以做到什麼事情呢?
link |
18:12.000
你只需要收集到大量的X跟收集到大量的Y,你不需要它們之間成對的關係,機器就有辦法自動把它們之間的關聯找出來。
link |
18:24.000
這個技術聽起來非常的神奇,但是今天已經不是完全不可能做到。
link |
18:31.000
舉例來說,假設你要做語音辨識,一般對語音辨識的想像就是你要收集一大堆聲音訊號,然後這些聲音訊號你需要找工讀生標出它對應的文字,
link |
18:43.000
你就可以讓機器學會怎麼把一段聲音轉成一段文字,怎麼做語音辨識這件事。
link |
18:50.000
但是當有了Generated Adversarial Network這個技術以後,今天有可能做到只讓機器聽大量的聲音訊號。
link |
18:59.000
接下來讀大量的文字,這些聲音訊號跟文字不需要是同樣的來源,不需要講它的內容,機器也有辦法自動學會做語音辨識這件事情。
link |
19:11.000
假設你對這個技術有興趣的話,目前做得最好的結果是來自Facebook的一篇paper,我把它的連結放在這個地方。
link |
19:20.000
其實台大語音處理實驗室是最早開發錯誤類似技術的團隊,我把最早的文章放在這裡。
link |
19:29.000
在剛開始的時候,2018年的時候,剛開始開發這樣技術的時候,那時候錯誤率都比正確率高了,但是我們已經覺得非常興奮了。
link |
19:40.000
今天用Facebook的資源,他們甚至可以在某些情況下,讓unsupervised的結果比supervised還要稍微好一點。
link |
19:50.000
你可以看他們的文章,這個結果非常的驚人。
link |
19:54.000
除了supervised learning以外,我們還會講reinforcement learning,那什麼時候我們會用到reinforcement learning呢?
link |
20:04.000
你會用到reinforcement learning最常見的狀況是,你不知道你要怎麼標註資料的時候。
link |
20:11.000
舉例來說,假設你想要教機器學會下圍棋,理論上你只要教機器說,看到這樣的盤勢你就落在什麼樣的位置,你就可以教機器用supervised learning的方法教機器下圍棋。
link |
20:26.000
但問題是,人類自己也不知道看到某一個盤勢,到底接下來應該要下在哪一手才是最好的,人類也不知道最好的那一手應該要落在哪裡。
link |
20:41.000
這個時候怎麼辦呢?這個時候你就需要用到reinforcement learning的技術。
link |
20:46.000
所以當你今天不知道怎麼標註資料,但是你可以判斷好壞的時候,在圍棋裡面下贏就是好,下輸就是不好,你不知道怎麼標註資料,但是你可以定義什麼叫做成功的時候,這個時候你就可以用到reinforcement learning的技術。
link |
21:04.000
這一門課我們還會講一些進階的課題,也就是說我們在做機器學習的時候,我們不只是追求正確率,我們還有其他我們要關注的事情。
link |
21:17.000
還有什麼我們要關注的事情呢?第一個我們叫做anomaly detection,就是異常檢測。
link |
21:24.000
什麼意思呢?假設你今天真的成功訓練起來一個寶可夢跟數碼寶貝的分類器,他真的可以看到一個小火龍,他就說他是寶可夢,他看到這一隻亞古獸,他就說他是數碼寶貝。
link |
21:43.000
但是今天如果有人給他一隻真正的暴龍,他會說他看到什麼呢?他在訓練的過程中只有看過寶可夢跟數碼寶貝,那我們要他硬是回答這個暴龍一定是寶可夢跟數碼寶貝的其中一個,
link |
22:00.000
還是他可以說這個東西我覺得他是奇怪的東西,我要回答我不知道。所以異常檢測就是讓機器能夠具備回答我不知道的能力,我們會在第八講提到異常檢測。
link |
22:16.000
在第九講我們會講explainable的AI,那什麼是explainable的AI呢?今天假設你真的做出了一個分類器,他看到這個傑尼龜,知道他是寶可夢,真的代表他很聰明嗎?真的代表他知道寶可夢長什麼樣子嗎?
link |
22:36.000
未必,未必。我們要讓他不只是回答正確的答案,同時他還要告訴我們為什麼他知道答案應該是這樣。這個就是explainable AI,可解釋性AI。
link |
22:52.000
那為什麼可解釋性AI是一個重要的議題呢?以下我舉一個真正的例子。你知道寶可夢跟數碼寶貝的分類並不是一個隨便亂舉的例子,我是真的有做過寶可夢跟數碼寶貝的分類的,真心不騙。
link |
23:08.000
我本來以為這是一個非常困難的問題,但是我隨便兜了一個很簡單的類神經網路,隨便兜了一個類神經網路,一做下去,在從來沒有看過的資料上面,在新的寶可夢跟數碼寶貝上面,正確率達到98.4%,不得了。
link |
23:31.000
偽哉機器學習,不過這也是很合理的,你知道機器現在就很厲害了,機器今天沒有打敗人類,你都不好意思出門,你知道嗎?
link |
23:40.000
今天就是機器學習又戰勝人類的另外一個例子,繼AlphaGo之後,機器判斷寶可夢跟數碼寶貝的人的能力其實也是超越人類的。
link |
23:50.000
那我就很好奇為什麼機器可以做到分辨寶可夢跟數碼寶貝呢?我決定做一下更詳細的檢測,所以我就用Explainable AI的技術,讓機器告訴我們它怎麼知道一張圖片是寶可夢還是數碼寶貝的。
link |
24:08.000
那像Explainable AI這種技術有很多不同的變形,我這邊使用的這個技術可以告訴我們說,給它一張圖片,它覺得這張圖片裡面哪些地方是重要的。
link |
24:21.000
舉例來說,我給我的模型這些數碼寶貝,它會把它覺得重要的地方放一些亮亮的顏色,代表它覺得這些地方是重要的。然後覺得有點奇怪,看起來重要的地方是分佈在圖片的四個角。
link |
24:42.000
不知道怎麼回事。接下來呢,我又讓它看了很多寶可夢,咦?為什麼今天機器覺得重要的地方都跟寶可夢的本體沒有關聯呢?
link |
24:54.000
後來我發現,因為所有的寶可夢都是PNG檔啦,所有數碼寶貝都是JPEG檔啦,把PNG檔讀進來後背景是黑的啦,所以機器其實什麼都沒有學到啦。
link |
25:06.000
所以這個故事告訴我們說,你以後看到有人說這個機器比人厲害,小心搞不好是什麼奇怪的騙局。
link |
25:19.000
這個故事我其實在2020年就講過了,所以可能很多同學都聽過這個故事。但是這個學期我要告訴你說,當我把這個box fix以後,當我把所有的圖片都弄成PNG檔以後,接下來會發生什麼事情?
link |
25:39.000
好,那大家就期待之後的課程。除了這個Explainable AI以外,第十課我們要講這個模型的攻擊。
link |
25:50.000
什麼叫模型的攻擊呢?今天雖然號稱影像辨識系統有多厲害,什麼可以跟人類相比比,但是它真的有那麼厲害嗎?
link |
26:00.000
你可以在網路上隨便找一個很厲害的可以做影像辨識的模型,把一張貓的圖片丟給它,它可能會給你這樣子的答案。
link |
26:09.000
舉例來說,我用了一個50層的network給它一張圖片以後,它告訴我說這是一個tiger cat。
link |
26:16.000
那它不只會告訴你是哪一隻貓,哪一家不只告訴你它是一隻貓,它還告訴你貓的品種。
link |
26:23.000
但是奇怪的地方是,當我在這個圖片裡面加入了一個小小的雜訊,你可能會問說雜訊在哪裡?那雜訊太小了,小到人的肉眼都沒有辦法看到。
link |
26:35.000
奇怪的是,這張圖片就被辨識成海星。
link |
26:40.000
而且下面這個分數是什麼?下面這個是信心分數。本來機器還沒有特別確定它是一隻貓,它現在百分之百肯定這個就是一個海星。
link |
26:50.000
那為了要證明說這兩張圖片真的是有一點不同的,我不是把同一張圖片複製兩次來騙你,所以我們把這兩張圖片做一個相減。
link |
27:00.000
但光相減不夠,因為那個雜訊實在太小了,光相減你是看不出東西來的,所以怎麼辦?相減以後乘上50倍,看到說雜訊長得是這個樣子。
link |
27:12.000
這個雜訊看起來跟海星不太有關係,但神奇的事情是,把這個雜訊加到圖片裡面,機器就會辨識錯誤。
link |
27:20.000
這個就是人類對模型的攻擊。那在這一堂課裡面,我們會看看有什麼樣攻擊的技術,還有防禦的可能性。
link |
27:29.000
在第11講,我們會講Domain Adaptation。Domain Adaptation是什麼意思呢?Domain Adaptation的意思是說,一般我們在做機器學習的時候,我們往往假設訓練資料跟測試資料的分佈是類似的。
link |
27:46.000
舉例來說,你的老闆叫你做了一個手寫數字辨識的模型,他可以看到一張圖片辨識圖片中有什麼樣的數字。
link |
27:55.000
那你心裡往往預期的事情是,今天你的客戶在上傳圖片的時候,叫你幫他做手寫數字辨識的時候,那要辨識的圖片應該長得跟訓練的資料非常類似,他們有同樣的分佈。
link |
28:10.000
那確實,假設今天訓練資料跟測試資料的分佈非常類似,在這個資料集上,以下數據是取自右下角這篇文獻,你可以得到99.5%的正確率。
link |
28:22.000
非常正確率,非常的高。但是,你真的覺得你的客戶就會丟一個分佈很像的圖片嗎?他可能會丟這樣子的圖片,他可能會丟彩色的數字。
link |
28:34.000
那你的老闆會覺得說,黑白的數字可以辨識,彩色的數字不會不能辨識吧?
link |
28:42.000
那神奇的地方是,當你今天就算是手寫數字辨識這麼簡單的問題,如果我們的訓練資料是黑白的,但測試資料是彩色的,這個時候機器的正確率會突然暴跌,在文獻上它會跌到57.5%。
link |
29:00.000
那怎麼解決這個問題?就是第十一講要探討的技術。
link |
29:05.000
那第十三講呢,我們要講模型的壓縮。我們剛才已經有看到說BERT是一個碩大無朋的模型。
link |
29:15.000
像這樣巨大的模型,你可能很難把它跑在HDMI上。當你的運算資源有限的時候,你可能很難去跑這些巨大的模型。
link |
29:25.000
那怎麼辦呢?有很多的技術可以把這些模型變小,讓它們可以跑在比如說手機上、跑在智能手錶上或跑在任務上面。
link |
29:36.000
那至於這怎麼做,我們會在第十三課的時候講到。
link |
29:40.000
那第十四課呢,我們要講Lifelong Learning。
link |
29:44.000
什麼是Lifelong Learning呢?Lifelong Learning其實就是大家對於人工智慧長久的一個想像。
link |
29:50.000
往往在科幻小說裡面都會告訴我們說,今天有一個機器,你先教它一個什麼東西,它就學會了。
link |
29:58.000
再多教它一點東西,它就變得更厲害了。再多教它一點東西,它就變得越來越厲害。
link |
30:04.000
它活個上千年、上萬年,把所有的技術都學會以後,它就變成天網就可以統治了。
link |
30:12.000
但是做到第十四課的時候,你就會開始懷疑,為什麼做了這麼多作業,天網都還沒有出現呢?
link |
30:20.000
那在第十四課接近課程尾聲的時候,會告訴你想要做一個天網,到底有什麼樣的挑戰?
link |
30:28.000
為什麼我們沒有辦法讓機器不斷地學習新的技術?
link |
30:33.000
那在第十五課,我們要進入一個全新的環節,我們不只做的是機器學習,我們要叫機器學習如何學習。
link |
30:44.000
而學習如何學習這個技術呢,就叫做meta-learning。
link |
30:49.000
那這個meta-learning它實際上是什麼樣運作的呢?
link |
30:54.000
過去在第十四講之前,我們都是人去設計了一個學習的演算法,讓機器具備分類的能力。
link |
31:06.000
但是在第十五課在講meta-learning的時候,我們讓機器從大量的任務裡面自己發明新的演算法。
link |
31:17.000
也就是機器不再使用人所發明的演算法,它從過去的學習經驗裡面發明出新的演算法,希望它可以變得更厲害。
link |
31:30.000
那其實meta-learning跟一個叫future learning的技術是非常有關係的。
link |
31:36.000
那future learning,這個future的意思就是用非常少量的標注資料就進行學習。
link |
31:44.000
那很多人甚至會把meta-learning跟future-learning畫上等號。
link |
31:49.000
為什麼人們往往把它畫上等號呢?
link |
31:51.000
是因為今天往往你想要做到future-learning,你會需要用到meta-learning的技術。
link |
31:58.000
也就是憑著人所設計的演算法,沒有厲害到讓機器可以看一兩個example就學會某個任務。
link |
32:06.000
我們需要讓機器自己發明新的演算法,它才有辦法透過少量的資料進行學習。
link |
32:13.000
這個是meta-learning跟future-learning之間的關係。
link |
32:17.000
以上就是很快的帶大家看過這門課會告訴大家的事情,然後希望大家這學期都可以收穫滿滿。