吳恩達機器學習筆記
1 機器學習的含義
(1)Field of study that gives computers the ability to learn without being explicitly programmed 在沒有顯示編程的情況下,讓計算機具有學習的能力
(2)A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experience E 對於一個程序,給它一個任務T和一個性能測量方法P,如果在經驗E的影響下,P對T的測量結果得到了改進,那麽就說該程序從E中學習
2 機器學習的分類
無監督學習:
- 無監督的學習使我們能夠很少或根本不知道我們的結果應該是什麽樣子。
- 我們可以從數據中推導出結構,我們不一定知道變量的影響。
- 我們可以通過基於數據中變量之間的關系對數據進行聚類來推導出這種結構。
- 在無監督學習的基礎上,沒有基於預測結果的反饋。
例:
- 聚類:搜集一百萬個不同的基因,並找到一種方法,將這些基因自動分組,這些基因組通過不同的變量(例如壽命,位置,角色等)相似或相關
- 非聚類:“雞尾酒會算法”,可以讓你在混亂的環境中找到結構。 (即在雞尾酒會上從聲音網格中識別個別的聲音和音樂)
Lecture 4
多元線性回歸:擁有多個變量的線性回歸
notation:
- n:特征的數目
- x(i):訓練集中的第i個輸入
- xj(i):第i個訓練項中第j個特征的值
3 線性回歸模型
目標是minimize代價函數
4 特征縮放/均值歸一化
我們可以通過讓每個輸入值大致相同的範圍來加速梯度下降。這是因為它會在小範圍內快速下降,在大範圍內緩慢地下降,因此當變量非常不均勻時,它會在最優狀態下振蕩。
理想的情況是讓每個輸入值的範圍大致在-1≤x(i)≤1或者是-0.5≤x(i)≤0.5,但是該範圍並不是嚴格要求的,目的是讓所有輸入變量都在類似的範圍內即可。例如-3到3也是能接受的。
特征縮放
輸入值/(所有輸入值中最大與最小之差)
均值歸一化
(輸入值-輸入值的平均值)/(所有輸入值中最大與最小之差)
5 正規方程
除了采用梯度下降來使代價函數最小,還可以通過正規方程的方法。即求出倒數令其為0,從而略去叠代過程。計算出的結果為
例子如下:
一維情況下,對每個theta求導,令倒數為0,求得使J(theta)最小的theta值
如下,首先要對數據進行矩陣構造,構造後的X的維度為m*(n+1),theta為(n+1)*1,y為m*1
關於梯度下降和正規方程的優缺對比:
Gradient Descent |
Normal Equation |
需要選擇合適的學習效率 | 不需要選擇學習效率 |
需叠代 | 無需叠代 |
計算復雜度為O(kn2) | 因為要計算XTX,計算復雜度為O(n3) |
當n比較大的時候仍能很好工作 | 當n比較大的時候,速度很慢 |
當XTX不可逆時該怎麽辦?
通常有兩種原因,一是因為特征冗余,例如輸入的兩組數據線相關,可刪除其中一個;二是特征太多(m≤n),可刪除一些特征
Lecture 6
6 邏輯回歸分類器
如果使用線性回歸進行分類,將數值≥0.5的預測映射為1,反之為0,實際上效果並不好,因為分類並不一定是一個線性函數,因此本節主要講的內容為logistic regression,之所以稱之為logistic是因為hypothesis函數使用了logistic函數也可稱為sigmoid函數。該函數的主要作用是將輸出限定在0到1之間。函數形式如下所示:
函數形狀如下:
有一些公式的意思如下,在參數theta,給性x的情況下,y=1的概率表示為
邏輯回歸的模型 是一個非線性模型,sigmoid函數,又稱邏輯回歸函數。但是它本質上又是一個線性回歸模型,因為除去sigmoid映射函數關系,其他的步驟,算法都是線性回歸的。可以說,邏輯回歸,都是以線性回歸為理論支持的。只不過,線性模型,無法做到sigmoid的非線性形式,sigmoid可以輕松處理0/1分類問題。
代價函數
線性回歸中的代價函數已經不再適用於邏輯回歸中,因為sigmoid函數將造成輸出振蕩,具有多個局部最小值,即“非凸”。邏輯回歸中選用的代價函數如下:
可將代價函數合並為
該代價函數保證了邏輯回歸中J(θ)的凸性質。
則J(θ)為
向量化的表示為
通用的梯度下降方法為
應用到邏輯回歸中如下
其他優化算法
除了梯度下降,還可以使用一些其他的優化算法:例如共軛梯度、BFGS、L-BFGS。相比梯度下降,這些方法不需要人為的選擇學習效率,可以認為這些方法中有智能內循環,稱之為線搜索算法來選擇α。通常這些算法比梯度下降速度更快,但是缺點是復雜度比梯度下降高。
優化算法框架如下:
function [jVal, gradient] = costFunction(theta) jVal = [...code to compute J(theta)...]; gradient = [...code to compute derivative of J(theta)...]; end
接著使用fminunc()函數
options = optimset(‘GradObj‘, ‘on‘, ‘MaxIter‘, 100); initialTheta = zeros(2,1); [optTheta, functionVal, exitFlag] = fminunc(@costFunction, initialTheta, options);
多分類:一對多
此時y的輸出值不再是0或1,而是0到n,將多分類問題分解成n+1個二分類問題,預測y是其中某一類的概率
Lecture 7
7 正則化
- 欠擬合/高偏差 underfitting
- just right
- 過擬合/高方差 overfitting 泛化能力差
解決過擬合的方法
1) Reduce the number of features:
- Manually select which features to keep.
- Use a model selection algorithm (studied later in the course).
2) Regularization
- Keep all the features, but reduce the magnitude of parameters \theta_jθj?.
- Regularization works well when we have a lot of slightly useful features.
舉個例子
例如我們想要下述式子更趨向於二次函數:
則要減少三次項和四此項的值,則我們在代價函數中增加:
要使代價函數最小趨向於0,則需降低θ3和θ4的值,因為二次項≥0,所以令它們為0時代價函數最小,從而降低了他們在hypothesis function的影響,從而減少了過擬合。這就是正則化的思想,不用刪減某一特征。
可將上述過程歸納為:
λ是正則化參數,當該參數選擇過大時可能會引起欠擬合
線性回歸的正則化
可將上述第二個式子重新表示成
學習效率是一個比較小的數,因此是一個比1小但很接近1的數。第二項和以前的線性回歸中一樣。
除了梯度下降,通過正規方程如下:
矩陣L的維度為(n+1)*(n+1),當m(樣本數)<n(特征數)時,矩陣XTX是不可逆的,但加上λL後,可逆
logistic 回歸的正則化
邏輯回歸的代價函數為:
加上正則項
註意正則項都是從θ1開始的,沒有對θ0進行懲罰。
與線性回歸不同的是h函數不同。
吳恩達機器學習筆記