[中英字幕]吳恩達機器學習系列課程

機器學習的三個階段:
經(jīng)驗E:和程序員下幾萬盤棋、觀察是否將郵件標為垃圾郵件
任務T:下棋、判斷郵件是否為垃圾郵件
性能度量P:棋局是否勝利,正確將垃圾郵件歸類的數(shù)量
機器學習算法:
監(jiān)督學習、無監(jiān)督學習
監(jiān)督學習:給出數(shù)據(jù)集
- 回歸問題:連續(xù),針對大批量進行預測
- 分類問題:離散,針對單個。。。。。
無監(jiān)督學習:沒有給出數(shù)據(jù)集的正確答案(未辨別數(shù)據(jù)類型)
- 聚類算法:將已分類的信息分成“簇”
- 雞尾酒會算法:將混雜的信息分離出來
在學習后,將得出一個假設函數(shù)h:輸入平米數(shù)可得出房價
線性回歸:將數(shù)據(jù)擬合成線性函數(shù)

代價函數(shù):平方誤差函數(shù)
目的是找出代價函數(shù)最小時的θ1、θ0
通過代價函數(shù)的表達式可以看出,當代價函數(shù)最小時,擬合程度最好。

梯度下降法:用來計算代價函數(shù)最小值
α:學習率,控制以多大幅度更新參數(shù)θ
與α相乘的偏微分決定了移動的方向始終是向下的
針對線性回歸的梯度下降算法:h(x)=θ0+θ1*x

h(x)=(θ^T)*x θ,x均為n維向量
多元線性回歸,利用多個特征值來預測
多元梯度下降法:x變?yōu)橄蛄俊?/p>
為了讓梯度下降更快的兩種方法:
- 特征縮放:有時代價函數(shù)會變成細長的橢圓形,下降就會曲折緩慢,通過計算將特征值的范圍縮小到*(0,1)會使橢圓接近正圓,下降就會變得快速。
- 均值歸一化:0<size<2000,1<bedrooms<5

x1:=(x1-μ1)/s1
x1:特征值。μ1:特征值平均值。s1:特征值范圍
當學習率α
過小時:迭代會很慢
過大時:J(θ)可能不會每次迭代都下降,也可能不收斂。
解決方法:繪制J(θ)的圖像、觀察。
計算θ的方法
- 梯度下降法:需要選擇α,需要迭代,當維度很大時仍然好用
- 正規(guī)方程法:n大于10000時效果不好

X數(shù)據(jù)集中的特征值組成的向量
y數(shù)據(jù)集中的輸出組成的向量

不可逆的原因:
- 特征值線性相關(guān),刪掉多余的。
- 太多的特征值,刪掉一些,或者正規(guī)化。
關(guān)于分類的問題一般不用線性回歸算法
Logistic Regression:分類算法
讓假設函數(shù)的范圍限制在(0,1)
0<=h(x)<=1
logistic算法:

h(x)=P(y=1|x;θ)
代表著當輸入為x時,y為1的概率,這個概率的參數(shù)時θ
決策界限:區(qū)分y=0,y=1的線
logistic回歸的代價函數(shù):

用梯度下降法擬合logistics回歸的參數(shù)
logistics回歸:

一對多問題:將多個問題化為多個獨立的二元問題,也就是有多個分類器y=i(y實際值,i預測值),把x輸入到多個分類器中,哪個概率最高就是哪個類。

當用過高階次的多項式擬合,就會出現(xiàn)過擬合(圖三)
解決方法:
- 減少特征變量
- 正則化
正則化

λ:正則化參數(shù),過大將導致對每個參數(shù)的懲罰過大,θ=0.
Σ(θ^2):正則化項,縮小每個參數(shù)

正則化后的線性回歸相當于把參數(shù)乘以一個比1小一點的數(shù) (1-α(λ/m))<1
神經(jīng)網(wǎng)絡可以實現(xiàn)邏輯運算
δ(l)j:l層節(jié)點j的誤差
a(l)j:l層單元j的激活值
梯度檢測:用來驗證反向傳播算法

如果權(quán)重都為0的話,hθ只能得到一個特征
所以要將權(quán)重θ隨機初始化在[-ε,ε]。
- 訓練神經(jīng)網(wǎng)絡:
- 將θ隨機初始化在[-ε,ε],接近于0
- 進行前向傳播算法得到h(θ)
- 計算J(θ)
- 進行反向傳播算法算出J(θ)的偏導
- 梯度檢查
- 使用最優(yōu)化算法
解決高方差
- 收集更多數(shù)據(jù),
- 選用更少特征以減少過擬合
- 增加λ
解決高偏差
- 更多特征
- 增加多項式特征(x^2,x1x2)
- 減小λ
線性回歸的測試
- 從訓練集中得到θ
- 計算誤差

分類問題的測試
- 得到θ
- 計算誤差

錯誤分類誤差

模型選擇:選擇合適的多項式
60%:40%分成訓練集和測試集
通過測試機選擇多項式的次數(shù),然后仍在測試集上計算誤差會出現(xiàn)問題,所以要分為:
60% :20% : 20%
訓練集 交叉驗證集 測試集

高偏差(欠擬合):
Jcv,Jtrain都很大
高方差(過擬合):
Jcv>>Jtrian
選擇正則化參數(shù)λ 0 0.01 0.02 0.04 0.08 ........10.24共12個
帶入每個λ最小化J(θ)以得到θ
用驗證集評價,得出每個θ在驗證集上平均的誤差平方和
選最小的誤差平方和對應的θ1
觀察θ1在測試集上的表現(xiàn)
算法處于高方差時的特點:Jcv誤差和Jtrain誤差相差很大

。。。。。誤差。。。。:。。。。。。。。。在足夠多樣本時相差不大
