一、Course Introduction
1、機器學習就是自動找函式
Regression: output is a scalar.
Classification:yes or no
Binary classification:RNN作業
Multi-class Classification:CNN作業
Generation: 產生有結構的復雜東西(文字 圖片等)
Seq2Seq、GAN作業
2、Supervised Learning: Labeled Data
unsuperived learning
3、前沿研究
Explainable AI
Adversarial Attack:對抗攻擊
Network Compression
Anomaly Detection:異常檢測(能夠知道自己不知道)
Transfer Learning(Domain Adversarial Learning)
Meta Learning:learn to learn
Life-long learning:終身學習
二、Regression
1、應用
2、基本步驟
3、過擬合
換了復雜的model,在training data上結果更好了,在testing data上結果反而更差。
4、正則化
loss function既考慮error,再加上一項額外的smooth(不考慮bias,對平滑沒影響),λ是自定的參數(λ越大,表示smooth項的影響越大)。
5、error來自哪里
理想狀態是沒有bias,variance很小。
相同模型在100組不同的訓練集下,越復雜的模型散布越開(方差越大);
越復雜的model,有越小的bias;因為復雜的model的function set更大,更容易包含target function;
訓練集:bias大,欠擬合:增加特征、設計更復雜的模型。
測試集:variance大,過擬合:更多數據、正則化(loss增加smooth,但是只包含平滑的曲線,會影響bias)
6、交叉驗證
bias與variance的平衡。
不建議這么做。
7、梯度下降
8、學習率調整
可視化調整學習率。
自動調整學習率:隨着參數的update,學習率也要相應的變小,一開始采用大學習率,再逐漸減小學習率。圖中公式中的t代表第t次更新參數。
每個參數有不同的學習率;σt是過去所有微分值的平方根;
adagrad是比較簡單的一種adaptive學習率方法,但使用adagrad方法速度會越來越慢
這一項的作用是衡量過去gradient和現在的反差有多大。
對於一個參數來說,是符合梯度越大,step越大的(|2ax+b|和|x+b/2a|成正比)
對多個參數來說,step不僅和一階偏導有關(成正比),還與二階偏導有關(成反比)。
8、隨機梯度下降法(stochastic gradient descent,SGD)
可以使訓練更快。
在一般的梯度下降中,計算所有data的loss,然后才更新參數;但在SGD中,只對第n個example來update參數;
9、特征標准化
使得不同的w對loss有相同的影響力,在參數update時更加有效率。方法如下:
每一行是一個維度,每個維度求平均值和標准差,對這行每一個減去平均值除以標准差。
所有維度平均值是0,方差是1。
10、梯度下降為什么會work
怎樣在紅圈范圍中找到最小點?
學習率要足夠小才能保證圈足夠小,才能保證式子成立,才能保證梯度下降時loss越來越小。
11、梯度下降的限制