α解釋:
有一個比較奇怪的問題是:
假設(shè)你將θ1初始化在局部最低點(diǎn)侨歉,它已經(jīng)在一個局部的最優(yōu)處或者局部最低點(diǎn)妹沙,局部最優(yōu)點(diǎn)的導(dǎo)數(shù)為零攻锰,因?yàn)閷?dǎo)數(shù)是切線的斜率,梯度下降法更新θ1的值將什么都不會做侣滩。
這也就解釋了即使學(xué)習(xí)速率α保持不變口注,梯度下降法也可以收斂到局部最低點(diǎn)的原因。移動的幅度會越來越小君珠,直到最終幅度非常小寝志,此時已經(jīng)收斂到局部極小值,所以沒必要減小α的值
可以用梯度下降法來嘗試最小化任何代價函數(shù)J策添,而不只是線性回歸中的代價函數(shù)J材部。
第十二課:線性回歸的梯度下降
本節(jié)課將梯度下降和代價函數(shù)結(jié)合,得到線性回歸的算法唯竹,它可以用直線模型來擬合數(shù)據(jù)乐导。
通過上式計算出微分以后,即代價函數(shù)J的斜率后浸颓,接下來就是將它代入我們的梯度下降算法:
不同于之前的梯度下降法坡度圖物臂,線性回歸的代價函數(shù)總是一個弓狀函數(shù),術(shù)語叫做凸函數(shù)产上,這個函數(shù)沒有局部最優(yōu)解棵磷,只有一個全局最優(yōu),當(dāng)你計算這種代價函數(shù)的梯度下降晋涣,只要你使用線性回歸仪媒,它總是會收斂到全局最優(yōu),因?yàn)闆]有其他的局部最優(yōu)解谢鹊。
算法的使用:假設(shè)函數(shù)和代價函數(shù)的變化:
上面提到的算法也叫做Batch梯度下降算法算吩,batch:意味著每一步梯度下降,我們都遍歷了整個訓(xùn)練集的樣本佃扼。所以偎巢,在梯度下降中,當(dāng)計算偏導(dǎo)數(shù)時松嘶,我們計算總和艘狭,在每一個單獨(dú)的梯度下降,我們最終計算m個樣本的總和翠订。
在高等線性代數(shù)中巢音,存在一種解法求解代價函數(shù)J最小值,而不需要使用像梯度下降的迭代算法尽超。它被稱為正規(guī)方程組方法官撼,相比于正規(guī)方程組解法,梯度下降適用于更大的數(shù)據(jù)集似谁。
第十四課:矩陣和向量
矩陣是指由數(shù)字組成的矩形陣列傲绣。并寫在方括號內(nèi)掠哥。
實(shí)際上矩陣可以說是二維數(shù)組的另一種說法。
矩陣的維數(shù)應(yīng)該寫作:矩陣的行數(shù)乘以列數(shù)
如何表達(dá)矩陣的某個特定元素秃诵?
矩陣提供了一種很好的方式讓你快速整理续搀、索引和訪問大量數(shù)據(jù)。
一個向量是一種特殊的矩陣菠净,向量是只有一列的矩陣禁舷。
四維向量,即這個向量中包含四個元素毅往。
如何引用向量的元素:
除非特別指定牵咙,應(yīng)該默認(rèn)向量下標(biāo)是從1開始。
注意攀唯,在書寫矩陣時洁桌,大多數(shù)人會使用大寫字母A、B侯嘀、C另凌、X來表示矩陣,而使用小寫字母a戒幔,b途茫,x,y表示數(shù)字或是原始的數(shù)字或標(biāo)量或向量溪食。
第十五課:加法和標(biāo)量乘法
如果你想讓兩個矩陣想,只需要將兩個矩陣的每一個元素都逐個相加娜扇。
只有相同維度的兩個矩陣才能相加错沃。相加的結(jié)果與相加向量的維度相同。
第十五課:矩陣向量乘法
矩陣和向量相乘:
實(shí)際進(jìn)行房屋價格的預(yù)測:
公式:prediction = Datametrix * parameters
第十七課:矩陣乘法
在線性回歸中雀瓢,迭代算法可以用于同時解決參數(shù)θ0和θ1的計算問題枢析,而不需要梯度下降法,而迭代算法就必須要理解矩陣與矩陣之間的乘法刃麸。
通過矩陣乘法可以快速地得到12個基于3個假設(shè)對4個房屋預(yù)測得到的價格醒叁。且有很多線性代數(shù)庫可以幫你實(shí)現(xiàn)矩陣乘法,任何編程語言都有線性代數(shù)庫泊业,且經(jīng)過了高度優(yōu)化把沼,能夠高效實(shí)現(xiàn)矩陣乘法,包括你電腦支持的并行計算吁伺,當(dāng)你的電腦有多個調(diào)度或者進(jìn)程饮睬,而只有一個處理器時,我們稱之為計算機(jī)的SIMD并行篮奄,有非常不錯的免費(fèi)庫捆愁,可以用來進(jìn)行高效的矩陣間乘法運(yùn)算割去,你可以基于眾多假設(shè)進(jìn)行預(yù)測。
第十八課:矩陣乘法特征
矩陣乘法的特性
矩陣乘法不符合交換律
矩陣乘法符合結(jié)合律
單位矩陣
單位矩陣的特征:沿對角線上都是1昼丑,其余位置都是0呻逆。
對于任何矩陣A,A乘以單位矩陣等于I乘以A等于A菩帝。
第十九課:逆和轉(zhuǎn)置
只有方陣才有逆矩陣咖城。
如果矩陣A中所有的元素都為0,那么這個矩陣仍然沒有逆矩陣胁附。以及一些其他的類似的矩陣酒繁,它們都沒有逆矩陣。
用術(shù)語來說:不存在逆矩陣的矩陣控妻,它的專有名詞是奇異矩陣州袒,或者叫退化矩陣。
怎么求逆矩陣弓候?
你可以用筆算郎哭,但是有很多很好的軟件,能夠容易地對矩陣進(jìn)行求逆運(yùn)算菇存,哈哈哈哈哈夸研。
Octave:pinv(A)得到結(jié)果。
轉(zhuǎn)置矩陣
第二十八課:多功能
單一變量:
多變量:
假設(shè)形式變化:
內(nèi)積就是θ轉(zhuǎn)置乘以X依鸥,即用參數(shù)向量θ以及特征向量X的內(nèi)積來表示假設(shè)亥至,這就是多特征量情況下的假設(shè)形式,也可以成為所謂的多元線性回歸贱迟,多元就是表達(dá)用多個特征量或者變量來預(yù)測y值姐扮。
第二十九課:多元梯度下降法
和之前的單一參數(shù)算法是同樣的,或者說是類似的:
上述就實(shí)現(xiàn)了多元線性回歸模型衣吠!
個人認(rèn)為你在求偏導(dǎo)數(shù)的時候茶敏,對于單一變量和多元變量,偏導(dǎo)數(shù)對應(yīng)的系數(shù)是一樣的缚俏,只是表達(dá)方式不同惊搏,一個是單純的上標(biāo),而多元變量在上標(biāo)的基礎(chǔ)上對應(yīng)了一個下標(biāo)忧换,這是多特征變量對應(yīng)每個變量的標(biāo)記方法恬惯。
第三十課:多元梯度下降法演練
本節(jié)課重點(diǎn)講述特征縮放的方法。
如果你有一個機(jī)器學(xué)習(xí)問題亚茬,這個問題有多個特征宿崭,如果你能確保這些特征都處在一個相近的范圍,能夠確保不同特征的取值在相近的范圍內(nèi)才写,這樣梯度下降法就能更快地收斂葡兑。
具體地說奖蔓,假如你有一個具有兩個特征的問題,兩個值的比例為2000:5讹堤,那么在畫出代價函數(shù)J(θ)的等值線就會呈現(xiàn)出一種非常歪斜且橢圓的形狀吆鹤,且這個橢圓會非常之細(xì)長,如果在這個圖像上進(jìn)行梯度下降的話洲守,你的梯度最終可能需要花很長一段時間疑务,并且可能來回波動,最終要經(jīng)過很長時間才能收斂到全局最小值梗醇。
在這種情況下知允,一種有效的方法就是進(jìn)行特征縮放。梯度下降算法就會找到一條更直接的路通向全局最小叙谨,即更快收斂温鸽。
總的來說,不用過于擔(dān)心手负,你的特征是否在完全相同的范圍或區(qū)間內(nèi)涤垫,只要它們足夠接近的話,梯度下降法就會正常地工作竟终。
除了將特征除以最大值之外蝠猬,在特征縮放中,有時候我們也會進(jìn)行均值歸一化统捶。
U1是訓(xùn)練集中特征X1的平均值榆芦!S1是該特征值的范圍(最大值-最小值/變量的標(biāo)準(zhǔn)差)!
只要將特征轉(zhuǎn)化為相近似的范圍都是可以的喘鸟,特征縮放其實(shí)并不需要太精確歧杏,只是為了讓梯度下降能夠運(yùn)行的更快而已,收斂所需的迭代次數(shù)更少迷守。
第三十一課:多元梯度下降法II學(xué)習(xí)率
梯度下降算法所做的事就是為你找到一個θ值,并且希望它能夠最小化代價函數(shù)J(θ)旺入。下圖中兑凿,X軸表示的是迭代次數(shù)。每一步迭代之后J(θ)都應(yīng)該下降茵瘾。所以通過這條曲線可以幫助你判斷梯度下降算法是否已經(jīng)收斂礼华。對于每一個特定的問題,梯度下降算法所需的迭代次數(shù)可能相差很大拗秘。
另外圣絮,也可以進(jìn)行一些自動的收斂測試,也就是讓一種算法來告訴你梯度下降算法是否已經(jīng)收斂雕旨,自動收斂測試扮匠,如果代價函數(shù)J(θ)一步迭代后的下降小于一個很小的值捧请,這個測試就判斷函數(shù)已經(jīng)收斂,但是通常選擇一個合適的閾值是非常困難的棒搜。因此疹蛉,為了檢查梯度下降算法是否已經(jīng)收斂,還是更傾向于左邊的這種曲線圖力麸,而不是依靠自動收斂測試可款。
看這種曲線圖還可以告訴你或提前警告你算法沒有正常工作。
學(xué)習(xí)率過大
第三十二課:特征和多項(xiàng)式回歸
一些可供選擇的特征以及如何得到不同的學(xué)習(xí)算法克蚂,這些算法往往是非常有效的闺鲸。
使用多項(xiàng)式回歸能夠用線性回歸的方法來擬合非常復(fù)雜的函數(shù)甚至是非線性函數(shù)。
通過定義新的特征可能會得到一個更好的模型埃叭。與選擇特征的想法密切相關(guān)的概念被稱為多項(xiàng)式回歸摸恍。
例如,在房屋面積和房屋價格的曲線圖中游盲,如果我們選擇二次函數(shù)擬合误墓,前半段擬合的很好,但是明顯房屋價格不會隨著房屋面積的增大而下降益缎,所以這里新建一個三次函數(shù)的模型谜慌,那么如何將新模型與數(shù)據(jù)進(jìn)行擬合呢?使用多元線性回歸的辦法我們可以對算法做一個簡單的修改來實(shí)現(xiàn)它莺奔。
但是除了轉(zhuǎn)而建立一個三次模型以外欣范,你也許有其他可選的特征,這里有很多可能的選項(xiàng)令哟,還可能選擇其他的合理選擇的算法模型恼琼。如何將一個多項(xiàng)式,二次函數(shù)或者是三次函數(shù)擬合到你的數(shù)據(jù)上屏富,還討論了你可以自己選擇使用哪些特征晴竞。后面的課程將會學(xué)到如何讓算法自己選擇模型,因此狠半,你可以讓算法觀察給出的數(shù)據(jù)噩死,并自動為你選擇到底應(yīng)該選擇一個二次函數(shù)或者一個三次函數(shù),還是別的函數(shù)神年。但是之前已维,你需要了解,你可以自由選擇使用什么特征已日,并且通過設(shè)計不同的特征垛耳,你能夠用更復(fù)雜的函數(shù)擬合數(shù)據(jù),而不是一條直線去擬合,特別是堂鲜,你可以使用多項(xiàng)式函數(shù)栈雳,有時如果從合適的角度來尋找特征,你就能得到一個更符合你的數(shù)據(jù)的模型泡嘴。
第三十三課:正規(guī)方程
...未完待續(xù)