視頻鏈接
主要授課內(nèi)容

第一講(P1).Course Introduction
一、機器學(xué)習(xí)的基本概念
1.什么是機器學(xué)習(xí)?
機器學(xué)習(xí)就是自動找函式。例如:
2.你想找什么樣的函示?
要找的函示不同,機器學(xué)習(xí)的任務(wù)也就不同。例如

3.機器學(xué)習(xí)不只有兩類任務(wù)
很多教材認為機器學(xué)習(xí)可以分為兩大類任務(wù):
Regression:返回一個數(shù)值
Classification:讓機器做選擇題
但是!除此之外還有機器學(xué)習(xí)還有一個十分重要的任務(wù),那就是:
Generation:產(chǎn)生有結(jié)構(gòu)的復(fù)雜的東西(例如文句、圖片)
4.怎樣告訴機器你想找什么樣的函示?
1.Supervised Learning

函式的loss可以用來評估一個函示的好壞,Loss是通過對訓(xùn)練數(shù)據(jù)的測試得出的,它可以看成一個函示的錯誤率,但實際計算起來要比單純的計算錯誤率要復(fù)雜得多。Loss越小越好,一個函示的Loss越小,代表它越接近我們心里想要機器找出來的那個function。機器會自動找出那個Loss最低的函示,課中會講到機器用什么樣的演算法找到這個function。

2.Reinforcement Learning
以Alpha go為例來展示Supervised Learning與Reinforcement Learning的區(qū)別:

3.Unsupervised Learning
給機器一堆沒有l(wèi)able的data
5.機器怎樣找出你想要的函示?
1.需要給機器一個函示尋找的范圍。不是所有函示都有可能是好的函示。常見的尋找范圍有Linear architecture,Network architecture(如RNN和CNN)
2.運用尋找函數(shù)的算法。這門課運用的算法為Gradient Descent和pytorch框架。
二、機器學(xué)習(xí)的前沿研究
這門課涉及的機器學(xué)習(xí)的前沿研究如下
1. Explainable AI
以上面圖片識別的機器學(xué)習(xí)為例,Explainable AI就是說機器不僅可以識別出一張圖片是貓,它還可以解釋為什么它覺得這張圖片是一只貓。
2. Adversarial Attack
現(xiàn)在的圖像識別系統(tǒng)大多都很robust,就算圖片中添加了noise還是可以正確識別。Adversarial Attack就是說如果人類懷著惡意去攻擊這個系統(tǒng)(刻意增加難以識別的noise)會發(fā)生什么事。
3. Network Compression
現(xiàn)在一些一通在做圖像辨識也許可以得到很高的正確率,但是這個正確率可能來自于一個十分碩大的model,Network Compression就是研究能否將這個巨大的network壓縮以致于可以將它放到手機甚至更小的base device上。
4.Anomaly Detection
還是以上面的圖片識別系統(tǒng)為例,Anomaly Detection就是說,假如給這個系統(tǒng)一張奇奇怪怪的訓(xùn)練中沒有見過的圖片(比如一拳超人),那么這個系統(tǒng)能做出判斷說它不知道,也就是機器知道“我不知道”,而不是將這張圖片強行識別成一種動物。
5.Transfer Learning
現(xiàn)在的情景是,給你一些資料,這些資料氛圍training data和Testing data,我們在進行測試的時候使用的training data 和testing data是十分相似的,而如果客戶并不知道這一點,使用了和訓(xùn)練數(shù)據(jù)差別比較大的測試數(shù)據(jù),那么這個系統(tǒng)的正確率可能會暴跌。Transfer Learning研究的就是如何解決這個問題。
6. Meta Learning
Meta Learning比機器學(xué)習(xí)更進一步。機器學(xué)期是讓機器具備學(xué)習(xí)的能力,而Meta Learning是讓機器學(xué)習(xí)如何具備學(xué)習(xí)的能力。

7. Lifelong Learning
Lifelong Learning研究的是讓機器終身學(xué)習(xí)。
第二講(P3)Regression
1. Regression的輸出是一個標量。
例如:
2. 示例應(yīng)用
設(shè)計一個function來預(yù)測Pokemon的CP。其中,x代表以某一只Pokemon,xcp為這只Pokemon的當前戰(zhàn)力,xs代表這只Pokemon的種類,xhp代表這只Pokemon的生命值,xw代表它的重量,xh代表它的高度,最后的輸出y為進化后的CP。

步驟為:
第一步,定義一個model(function set)。
第二步,評估m(xù)odel里function的好壞。
第三步,找出一個最好的function。





求最好function的一個方法(方法是可微的):Gradient Descent
已知一個loss function L(w),如何找出一個w值讓L(w)值最小呢?一個方法就是窮舉法,但是這樣是很沒有效率的,那么怎樣做比較有效呢?這就是Gradient Descent要告訴我們的。首先先隨機選取一個w的初始值w0,求L關(guān)于w的微分,如果微分為正,說明在這點的切線斜率為正,向左走L(w)值會變小,反之向右走。已經(jīng)確定了w的移動方向,那么w要移動多少呢?取決于兩個因素,一個為微分值的大小,一個為事先定好的learning rate.




第六講 (P10) Classification
Classification:輸入一組數(shù)據(jù),輸出一個類別

以下的學(xué)習(xí)還是使用Pokemon的例子,輸入一只Pokemon的HP, Attack,Defense,SP Atk, SP Def,Speed屬性,輸出它的屬性類別。
如何實現(xiàn)分類?
(首先要收集訓(xùn)練數(shù)據(jù))
一種思路是把按照Regression的方式來進行Classification,以Binary Classification為例,對于訓(xùn)練數(shù)據(jù)。如果輸出值為1則Class為1,如果輸出值為-1,則Class屬于2;對于測試數(shù)據(jù),如果輸出值比較接近1則為Class 1,如果比較接近-1則為Class 2。但是這樣做有一個問題就是“懲罰那些‘太正確’的例子”。如果分成多個類,如輸出值為1則為Class1,輸出值為2則為Class2,輸出值為3則為Class3...但是這樣同樣是有問題的,因為如果這些Class是互相獨立的,把這個問題當作Regression來處理就無法得到一個好的函示。

如何找出最好的函示:Generative Moel
從訓(xùn)練數(shù)據(jù)中估計幾率值

首先Prior(P(C1)和P(C2))比較好求:

剩下的兩個值根據(jù)Gaussian Distribution來求:



如何找μ和∑?
方法為:Maximum Likelihood

求出來的結(jié)果準確率為47%,準確率比較低,因為上面的例子只是一個二元分類,實際上要預(yù)測一個Pokemon的種類是要在7維數(shù)據(jù)上進行操作的。上面的例子中不同的Class有不同的∑值,但是這在實際中是很少見的,常見的做法是不同的Class用同一個∑,因為∑是跟input fearture size的平方成正比的,如果用不同的∑的話,Model參數(shù)多就容易overfitting。
