back to index
【機器學習2021】預測本頻道觀看人數 (上) - 機器學習基本概念簡介

link |
那第一堂課啊,是要簡單跟大家介紹一下
link |
Machine Learning 還有 Deep Learning 的基本概念
link |
那等一下呢,會講一個跟寶可夢完全沒有關係的故事
link |
告訴你機器學習還有深度學習的基本概念
link |
機器學習就是跟今天很熱門的 AI 好像有那麼一點關聯
link |
顧名思義,好像是說機器它具備有學習的能力
link |
那些科普文章往往把機器學習這個東西吹得玄之又玄
link |
好像機器會學習以後,我們就有了人工智慧
link |
有了人工智慧以後,機器接下來就要統治人類了
link |
機器學習就是讓機器具備找一個函式的能力
link |
舉例來說,假設你今天想要叫機器做語音辨識
link |
機器聽一段聲音產生這段聲音對應的文字
link |
它絕對不是你只可以用人手寫出來的方程式
link |
那這個影像辨識我們需要什麼樣的函式呢
link |
這個函式的輸入是棋盤上黑子跟白子的位置
link |
這個函式的輸入就是棋盤上黑子跟白子的位置
link |
那這邊介紹幾個專有名詞給大家認識一下
link |
第一個專有名詞叫做Regression
link |
那這邊舉一個Regression的例子
link |
是預測未來某一個時間的PM2.5的數值
link |
這個函式的輸出是明天中午的PM2.5的數值
link |
它的輸入可能是種種跟預測PM2.5有關的指數
link |
那找這個函式的任務叫做Regression
link |
那Classification這個任務要機器做的是選擇力
link |
這個問題這個任務就叫做Classification
link |
現在每個人都有Gmail Account
link |
那Gmail Account裡面有一個函式
link |
這個問題叫做Classification
link |
那Classification不一定只有兩個選項
link |
AlphaGo本身也是一個Classification的問題
link |
只是這個Classification
link |
其實就是一個有19x19個選項的選擇題
link |
這個函式的輸入是棋盤上A子跟白子的位置
link |
在講機器學習的種種不同類型的任務的時候
link |
一個叫做Classification
link |
Regression跟Classification
link |
那就好像你以為說這個世界只有五大洲一樣
link |
但你知道這個世界不是只有五大洲對不對
link |
在Regression跟Classification以外
link |
大家往往害怕碰觸的問題叫做Structure問題
link |
這種叫機器產生有結構的東西的這個問題
link |
就叫做Structure Learning
link |
Structure Learning
link |
Regression Classification跟Structure Learning
link |
我會把上課的錄影放到YouTube的頻道上面
link |
這個頻道感謝過去修過這門課的同學不嫌棄
link |
所以我算是一個三流的YouTuber
link |
那為什麼突然提到這個YouTube的頻道呢
link |
YouTuber在意的就是這個頻道的流量
link |
假設有一個YouTuber是靠著YouTube維生的
link |
這個函式他的輸入是YouTube後台的資訊
link |
輸出是這個頻道隔天的總點閱率總共有多少
link |
那我們就用YouTube頻道點閱人數
link |
所以我們還不知道今天總共的點閱次數是多少
link |
也就是Domain Knowledge
link |
做機器學習你就需要一些Domain Knowledge
link |
這個Domain Knowledge通常是用在哪裡呢
link |
這個Domain Knowledge就是用在
link |
這個parameter中文通常翻成參數
link |
這個帶有unknown的parameter的
link |
就是一個帶有未知的parameter的function
link |
它是unknown的parameter
link |
是model裡面的parameter
link |
這個function輸出的詞代表什麼呢
link |
我們的訓練資料是這個頻道過去的點閱次數
link |
舉例來說從2017年到2020年的點閱次數
link |
到2020年12月31號的點閱數字是多少
link |
我們拿來預測的這個函數是Y等於0.5K加1倍的X1
link |
如果1月1號是4.8K的點閱次數的話
link |
那隔天應該是4.8K乘以1加0.5K
link |
我們有2017年1月1號到2020年12月31號
link |
我們可以用1月2號的值來預測1月3號的值
link |
如果我們現在的函數是Y等於0.5K加1倍的X1
link |
預測的1月3號的點閱次數的值是多少呢
link |
以X1大概4.9K進去乘以倍加0.5K等於5.4K
link |
低估了這個頻道在1月3號的時候的點閱次數
link |
這個EQ是Y減跟Y和Y hat之間的差距
link |
你就可以算過這三年來每一天的預測的誤差
link |
假設我們今天的Function是Y等於0.5K加1倍的X1
link |
那接下來我們就把每一天的誤差通通加起來
link |
我們訓練資料的個數就是三年來的訓練資料
link |
這個大L越小代表我們現在這一組參數越好
link |
叫做Mean Absolute Error
link |
我們是算Y跟Y hat相減以後的平方
link |
如果你今天的E是用相減以後的平方算出來的
link |
這個叫Mean Square Error
link |
你可能會選擇Cross Entropy
link |
越偏紅色系代表計算出來的Loss越大
link |
我們就叫做W-star跟B-star
link |
叫做Gradient Descent
link |
那這個Gradient Descent的方法
link |
那這條曲線就是Error Surface
link |
我們看到的Error Surface是二維的
link |
所以我們看到的這個Error Surface是一滴的
link |
這個Aero Surface的前線斜率
link |
這個Eta叫做Learning Rate
link |
就是定一個有未知參數的function
link |
我今天要決定一個Loss function
link |
這個curve並不是一個真實的Loss
link |
它並不是一個真實任務的error surface
link |
剛才講到hyperparameter這個東西
link |
Hyperparameter是你自己設的
link |
這個也是一個Hyperparameter
link |
零乘上這個Learning Rate App還是零
link |
Gradient Descent這個方法
link |
但是如果Gradient Descent
link |
而這個地方叫做Local的Minimum
link |
但是它不是整個Aero Surface上面的最低點
link |
這個東西叫做Local Minimum
link |
常常可能會聽到有人講到Gradient Descent
link |
就會說Gradient Descent不是個好方法
link |
這個方法會有Local Minimum的問題
link |
你沒有辦法真的找到Global Minimum
link |
自己做Gradient Descent的經驗的話
link |
其實Local Minimum是一個假議題
link |
我們在做Gradient Descent的時候
link |
說Gradient Descent有Local Minimum的問題
link |
顯然有Local Minimum的問題
link |
Gradient Descent真正的痛點到底是什麼
link |
怎麼用Gradient Descent呢
link |
把W0減掉Learning Rate乘上為分的結果
link |
把B0減掉Learning Rate乘上為分的結果
link |
在Deep Learning的Framework裡面
link |
或在我們做議會用的PyTorch裡面
link |
W對L的為分乘以Eta再乘以一個負號
link |
B對L的為分再乘以Eta乘以一個負號
link |
把這個為分的值乘上learning rate再乘上負號
link |
實際上真的用Gradient Descent進行一番計算以後
link |
也就是在2017到2020年的資料上
link |
第二個步驟定一個叫做Loss Function
link |
解一個Optimization Problem
link |
那這組W跟B可以讓Loss小到0.48k
link |
那這邊我們只有2017年到2020年的值
link |
我們就拿2020年的12月31號的觀看人次
link |
預測一下2021年元旦隔天1月2號的觀看人次
link |
也就是domain knowledge
link |
把feature乘上一個weight