當我們以線性回歸的模型來擬合我們的資料集時,我們如何來確定假設函式的引數值呢?
首先我們以兩個引數為例,即hθ(x) = θ0 + θ1x,也就是乙個一次函式,而代價函式
,我們為了盡量擬合資料集,也就是選擇合適的θ0(截距), θ1(斜率)使代價函式j(θ0,θ1)最小,
假設θ0=0,代價函式j就轉變為關於θ1的二次函式,因為開平方,所以二次項的係數一定是正數(高中數學),所以代價函式j一定有最小值
此時我們可以畫出j(θ1)的一種可能的二次函式分布圖
由圖可知,當θ1=1時,j最小
我們可以任取曲線上的乙個θ,讓它往最小值的方向移動,那我們怎麼知道該往左移還是右移?
我們觀察曲線發現,最低點(最小值)的斜率為0,最低點的左側斜率小於0,右側大於0,只需讓θ減去該點的斜率就可以讓它往最低點移動,當斜率為0時它就停在了最低點,也就是收斂於1
那我們可以畫出關於代價函式j(θ1,θ2)的三維圖
我們同樣選取任意一點(θ1,θ2),通過減去他們各自的在該點的斜率來到打最低點
數學上稱這種求自求點斜率的方法為偏導,這種通過減去斜率的方法稱為梯度下降法(gradient decent)
那我們如何確定向最低點移動的速度呢?
一方面是由該點的斜率來決定,另外由乙個係數α學習速率決定,
1,α不能設太大,太大有時會越過最低點,不能使θj收斂於最低點使結果發散
2,α太小會使程式執行速度太慢
3,隨著θ越來越接近最小值,偏導數越來越小,所以沒有必要逐漸隨著迭代次數的增加減小學習速率α
對每次的移動必須同時進行,並和成各個方向上的位移,即每一次減偏導必須對每個θj同時進行
兩個引數的線性回歸求完偏導數之後每次迭代的公式
多個引數的線性回歸求完偏導數之後每次迭代的公式
梯度下降法會到達區域性最低點(由起點決定,即θ1和θ2的初始值決定),不一定會到達全域性最優點
二,梯度下降法的優化方法
1,特徵縮放(feature scaling)
當不同的特徵值大小範圍不一致時,演算法執行效率會很低,我們一般把它縮放到-1<=x<=1或,-0.5<=x<=0.5,通過(x-mean)/range公式,
2,學習速率α
如何確定學習速率並不是一件簡單的事
一種方式是繪製一張橫座標是迭代次數,縱座標是代價函式的函式圖,看是否單調遞減,如不是需要減小學習速率α
總的來說,學習速率太小,代價函式收斂太慢,程式雲星很慢,學習太大,代價函式沒有單調遞減,甚至可能會發散,也就到不了最小值
3,特徵和多項式回歸(features and polynomial regression)
當我們拿到資料集先可以進行預處理,使機器學習的結果更好
1)我們有時可以根據各個特徵之間關係來合併特徵,比如說房子的長度和寬度,我們可以讓他們相乘合成乙個新的特徵面積
2) 我們之前線性回歸的假設函式都是多元一次函式,如果我們的想要多元多次的假設函式呢?hθ(x) = θ0 + θ1x2, 我們可以用新的特徵來表示x'來表示x2,一樣能轉化為多元一次表示假設函式hθ(x) = θ0 + θ1x',
不過需要注意的事,x的範圍也隨著新的特徵放大了,要進行特徵縮放
4,正規方程(normal equation)
梯度下降法和正規方程各有各的優點,以下是他們的區別,總的來說,
1,梯度下降法需要選擇學習速率,正規方程不需要
2,梯度下降法需要迭代,正規方程不需要
3,梯度下降法時間複雜度是(kn2),正規方程時間複雜度是o(n3)
當特徵少於10000時,使用正規方程,否則使用梯度下降法
機器學習公開課筆記 2 多元線性回歸
一元線性回歸只有乙個特徵 x 而多元線性回歸可以有多個特徵 x 1,x 2,ldots,x n 假設 hypothesis h theta x theta tx theta 0x 0 theta 1x 1 ldots theta nx n 引數 parameters theta 0,theta 1,...
機器學習公開課筆記第五週之機器學習系統設計
以設計垃圾郵件分類器為例,當我們設計機器學習演算法時,先在24小時內設計出乙個簡單的演算法,跑一遍訓練資料,再根據資料的反饋結果 高偏差,高方差,或對某一類資料誤判比例過高等等 調整我們的演算法,反覆迭代優化 一,提取特徵 從大量垃圾郵件訓練資料中找出出現頻率最高的10,000到50,000個單詞,...
機器學習公開課筆記第五週之優化機器學習演算法
一,提高機器學習演算法準確度的方法 當我們的機器學習演算法不能準確 我們測試資料時,我們可以嘗試通過以下方法提高我們機器學習的演算法準確度 1 獲得更多的訓練樣例 2 減少特徵數 3 增加特徵數 4 增加多項式特徵 5 增大或減小 lambda 二,評估機器學習模型 如果只是單獨的使用乙個訓練集,我...