α解釋:

有一個比較奇怪的問題是:
假設你將θ1初始化在局部最低點,它已經(jīng)在一個局部的最優(yōu)處或者局部最低點,局部最優(yōu)點的導數(shù)為零,因為導數(shù)是切線的斜率,梯度下降法更新θ1的值將什么都不會做。

這也就解釋了即使學習速率α保持不變,梯度下降法也可以收斂到局部最低點的原因。移動的幅度會越來越小,直到最終幅度非常小,此時已經(jīng)收斂到局部極小值,所以沒必要減小α的值

可以用梯度下降法來嘗試最小化任何代價函數(shù)J,而不只是線性回歸中的代價函數(shù)J。
第十二課:線性回歸的梯度下降
本節(jié)課將梯度下降和代價函數(shù)結(jié)合,得到線性回歸的算法,它可以用直線模型來擬合數(shù)據(jù)。


通過上式計算出微分以后,即代價函數(shù)J的斜率后,接下來就是將它代入我們的梯度下降算法:

不同于之前的梯度下降法坡度圖,線性回歸的代價函數(shù)總是一個弓狀函數(shù),術(shù)語叫做凸函數(shù),這個函數(shù)沒有局部最優(yōu)解,只有一個全局最優(yōu),當你計算這種代價函數(shù)的梯度下降,只要你使用線性回歸,它總是會收斂到全局最優(yōu),因為沒有其他的局部最優(yōu)解。

算法的使用:假設函數(shù)和代價函數(shù)的變化:


上面提到的算法也叫做Batch梯度下降算法,batch:意味著每一步梯度下降,我們都遍歷了整個訓練集的樣本。所以,在梯度下降中,當計算偏導數(shù)時,我們計算總和,在每一個單獨的梯度下降,我們最終計算m個樣本的總和。
在高等線性代數(shù)中,存在一種解法求解代價函數(shù)J最小值,而不需要使用像梯度下降的迭代算法。它被稱為正規(guī)方程組方法,相比于正規(guī)方程組解法,梯度下降適用于更大的數(shù)據(jù)集。
第十四課:矩陣和向量
矩陣是指由數(shù)字組成的矩形陣列。并寫在方括號內(nèi)。
實際上矩陣可以說是二維數(shù)組的另一種說法。
矩陣的維數(shù)應該寫作:矩陣的行數(shù)乘以列數(shù)

如何表達矩陣的某個特定元素?

矩陣提供了一種很好的方式讓你快速整理、索引和訪問大量數(shù)據(jù)。
一個向量是一種特殊的矩陣,向量是只有一列的矩陣。
四維向量,即這個向量中包含四個元素。
如何引用向量的元素:

除非特別指定,應該默認向量下標是從1開始。
注意,在書寫矩陣時,大多數(shù)人會使用大寫字母A、B、C、X來表示矩陣,而使用小寫字母a,b,x,y表示數(shù)字或是原始的數(shù)字或標量或向量。
第十五課:加法和標量乘法
如果你想讓兩個矩陣想,只需要將兩個矩陣的每一個元素都逐個相加。

只有相同維度的兩個矩陣才能相加。相加的結(jié)果與相加向量的維度相同。


第十五課:矩陣向量乘法
矩陣和向量相乘:



實際進行房屋價格的預測:

公式:prediction = Datametrix * parameters
第十七課:矩陣乘法
在線性回歸中,迭代算法可以用于同時解決參數(shù)θ0和θ1的計算問題,而不需要梯度下降法,而迭代算法就必須要理解矩陣與矩陣之間的乘法。




通過矩陣乘法可以快速地得到12個基于3個假設對4個房屋預測得到的價格。且有很多線性代數(shù)庫可以幫你實現(xiàn)矩陣乘法,任何編程語言都有線性代數(shù)庫,且經(jīng)過了高度優(yōu)化,能夠高效實現(xiàn)矩陣乘法,包括你電腦支持的并行計算,當你的電腦有多個調(diào)度或者進程,而只有一個處理器時,我們稱之為計算機的SIMD并行,有非常不錯的免費庫,可以用來進行高效的矩陣間乘法運算,你可以基于眾多假設進行預測。
第十八課:矩陣乘法特征
矩陣乘法的特性
矩陣乘法不符合交換律

矩陣乘法符合結(jié)合律

單位矩陣
單位矩陣的特征:沿對角線上都是1,其余位置都是0。
對于任何矩陣A,A乘以單位矩陣等于I乘以A等于A。

第十九課:逆和轉(zhuǎn)置
只有方陣才有逆矩陣。
如果矩陣A中所有的元素都為0,那么這個矩陣仍然沒有逆矩陣。以及一些其他的類似的矩陣,它們都沒有逆矩陣。
用術(shù)語來說:不存在逆矩陣的矩陣,它的專有名詞是奇異矩陣,或者叫退化矩陣。

怎么求逆矩陣?
你可以用筆算,但是有很多很好的軟件,能夠容易地對矩陣進行求逆運算,哈哈哈哈哈。
Octave:pinv(A)得到結(jié)果。
轉(zhuǎn)置矩陣

第二十八課:多功能
單一變量:

多變量:

假設形式變化:
內(nèi)積就是θ轉(zhuǎn)置乘以X,即用參數(shù)向量θ以及特征向量X的內(nèi)積來表示假設,這就是多特征量情況下的假設形式,也可以成為所謂的多元線性回歸,多元就是表達用多個特征量或者變量來預測y值。
第二十九課:多元梯度下降法

和之前的單一參數(shù)算法是同樣的,或者說是類似的:

上述就實現(xiàn)了多元線性回歸模型!
個人認為你在求偏導數(shù)的時候,對于單一變量和多元變量,偏導數(shù)對應的系數(shù)是一樣的,只是表達方式不同,一個是單純的上標,而多元變量在上標的基礎(chǔ)上對應了一個下標,這是多特征變量對應每個變量的標記方法。
第三十課:多元梯度下降法演練
本節(jié)課重點講述特征縮放的方法。
如果你有一個機器學習問題,這個問題有多個特征,如果你能確保這些特征都處在一個相近的范圍,能夠確保不同特征的取值在相近的范圍內(nèi),這樣梯度下降法就能更快地收斂。
具體地說,假如你有一個具有兩個特征的問題,兩個值的比例為2000:5,那么在畫出代價函數(shù)J(θ)的等值線就會呈現(xiàn)出一種非常歪斜且橢圓的形狀,且這個橢圓會非常之細長,如果在這個圖像上進行梯度下降的話,你的梯度最終可能需要花很長一段時間,并且可能來回波動,最終要經(jīng)過很長時間才能收斂到全局最小值。
在這種情況下,一種有效的方法就是進行特征縮放。梯度下降算法就會找到一條更直接的路通向全局最小,即更快收斂。

總的來說,不用過于擔心,你的特征是否在完全相同的范圍或區(qū)間內(nèi),只要它們足夠接近的話,梯度下降法就會正常地工作。

除了將特征除以最大值之外,在特征縮放中,有時候我們也會進行均值歸一化。
U1是訓練集中特征X1的平均值!S1是該特征值的范圍(最大值-最小值/變量的標準差)!

只要將特征轉(zhuǎn)化為相近似的范圍都是可以的,特征縮放其實并不需要太精確,只是為了讓梯度下降能夠運行的更快而已,收斂所需的迭代次數(shù)更少。
第三十一課:多元梯度下降法II學習率

梯度下降算法所做的事就是為你找到一個θ值,并且希望它能夠最小化代價函數(shù)J(θ)。下圖中,X軸表示的是迭代次數(shù)。每一步迭代之后J(θ)都應該下降。所以通過這條曲線可以幫助你判斷梯度下降算法是否已經(jīng)收斂。對于每一個特定的問題,梯度下降算法所需的迭代次數(shù)可能相差很大。
另外,也可以進行一些自動的收斂測試,也就是讓一種算法來告訴你梯度下降算法是否已經(jīng)收斂,自動收斂測試,如果代價函數(shù)J(θ)一步迭代后的下降小于一個很小的值,這個測試就判斷函數(shù)已經(jīng)收斂,但是通常選擇一個合適的閾值是非常困難的。因此,為了檢查梯度下降算法是否已經(jīng)收斂,還是更傾向于左邊的這種曲線圖,而不是依靠自動收斂測試。

看這種曲線圖還可以告訴你或提前警告你算法沒有正常工作。
學習率過大


第三十二課:特征和多項式回歸
一些可供選擇的特征以及如何得到不同的學習算法,這些算法往往是非常有效的。
使用多項式回歸能夠用線性回歸的方法來擬合非常復雜的函數(shù)甚至是非線性函數(shù)。

通過定義新的特征可能會得到一個更好的模型。與選擇特征的想法密切相關(guān)的概念被稱為多項式回歸。
例如,在房屋面積和房屋價格的曲線圖中,如果我們選擇二次函數(shù)擬合,前半段擬合的很好,但是明顯房屋價格不會隨著房屋面積的增大而下降,所以這里新建一個三次函數(shù)的模型,那么如何將新模型與數(shù)據(jù)進行擬合呢?使用多元線性回歸的辦法我們可以對算法做一個簡單的修改來實現(xiàn)它。

但是除了轉(zhuǎn)而建立一個三次模型以外,你也許有其他可選的特征,這里有很多可能的選項,還可能選擇其他的合理選擇的算法模型。如何將一個多項式,二次函數(shù)或者是三次函數(shù)擬合到你的數(shù)據(jù)上,還討論了你可以自己選擇使用哪些特征。后面的課程將會學到如何讓算法自己選擇模型,因此,你可以讓算法觀察給出的數(shù)據(jù),并自動為你選擇到底應該選擇一個二次函數(shù)或者一個三次函數(shù),還是別的函數(shù)。但是之前,你需要了解,你可以自由選擇使用什么特征,并且通過設計不同的特征,你能夠用更復雜的函數(shù)擬合數(shù)據(jù),而不是一條直線去擬合,特別是,你可以使用多項式函數(shù),有時如果從合適的角度來尋找特征,你就能得到一個更符合你的數(shù)據(jù)的模型。

第三十三課:正規(guī)方程
...未完待續(xù)