一.初識機器學習
- 何為機器學習?
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.
理解:通過實驗E,完成某一項任務T,利用評價標准P對實驗結果進行迭代優化! - 機器學習主要包括監督學習(supervised)和無監督學習(unsupervised),其他的還有增強學習,推薦系統(recommender systems)等。
- 監督學習是指實驗數據當中有可參考的正確輸出,通常包括回歸問題和分類問題。
- 回歸問題(regression problem)是指預測的值,也就是實驗結果是連續的,有准確的數值。
分類問題(classification problem)是指實驗結果是離散的,不是一個准確的數值。 - 無監督學習指聚類問題,不同於分類。如雞尾酒會算法,在雞尾酒會中分辨出人的聲音和會場的音樂。
二.單變量線性回歸問題(Linear regression with one variable)
- 符號標記:m(訓練集中樣本的數量),X`s(輸入變量/特征),Y`s(輸出變量/目標變量),(x,y)表示一個訓練樣本。
- 問題背景:使用房屋面積預測房價!問題描述如下圖:
上圖從上向下看,表示將訓練集帶入到學習算法當中,進過訓練得到預測函數h;再從左向右看,將房屋面積帶入預測函數,輸出預測的房價。 - 單變量線性回歸問題的預測函數可以表示為:hθ(x)=θ0+θ1*x(其實就是y=ax+b),其中的θi為模型參數。所以我們的任務就變成了,使用訓練集進行訓練,最后得到最佳的θi值,使得我們得到的預測函數hθ(x)最接近真正的預測函數。完成此任務的方法就叫做學習算法。
- 代價函數(cost function)也叫平方誤差函數:
理解:量化房價預測值hθ(x(i))和實際房價值y(i)之間的偏差。因此,我們每次實驗的目標就是通過調整參數θi,使得代價函數的值越來越小,這樣我們的模型就越接近真實的預測模型。 - 根據不同的參數θi,計算代價函數J(θ0,θ1),作出圖形通常稱為contour plot(等高線圖),圖形特點有局部最優解,也就是局部最低點。如下圖所示:
- 梯度下降(Gradient descent):通過調整參數θi值,不斷的降低代價函數J(θ0,θ1),最后找到滿意的局部最優解的過程。(參數值需初始化)
梯度下降算法:
其中α為學習速率,如果α值過小,梯度下降速度慢;如果α過大,梯度下降難以收斂,甚至發散。 - 單變量線性回歸問題的梯度下降形式:
每一次梯度下降計算過程中,都使用訓練集中所有的樣本!
三.線性代數知識點回顧
- 矩陣與向量:
矩陣的維數:m*n(行數*列數)、矩陣中的元素:Aij(i行j列)、向量是一個n*1維的矩陣、向量中的元素:yi表示第i個元素。
通常用大寫字母表示矩陣,小寫字母表示向量。一般情況下,矩陣和向量的下標索引值從數字1開始。R表示實數集,Rm*n表示m*n維矩陣,矩陣中元素為實數。
MATLAB/Octive中代碼表示:A=[1,2,3;4,5,6;7,8,9;10,11,12] v=[1;2;3]其中符號;表示開啟新行。[m,n]=size(A) 求A的維數m*n,也可寫作dim_A=size(A)。同理dim_v=size(v)。A_23=A(2,3)表示取2行3列的值。 - 矩陣的加減法:只有兩個相同維度的矩陣才可以進行加減法。
- 矩陣乘法不滿足交換律A*B!=B*A,但是滿足結合律A*B*C=A*(B*C)
I為單位矩陣,A*I=I*A=A. - 矩陣的逆:AA-1=A-1A=I,其中A為m*m維的方陣,只有方陣才有逆矩陣。
矩陣的轉置:Am*n,B=AT,Bn*m,and Bij=Aij