
1.課程回顧
例1:房價和面積—預測
給定一組房價和房屋面積的數(shù)據(jù)集,通過機器學習算法(監(jiān)督學習)來擬合畫出一條線,根據(jù)這條線來對未知的數(shù)據(jù)進行判斷。
假設機器通過這些房價數(shù)據(jù)學習得到一條房價—面積關系線,如上圖中紅線,那么如果你朋友的750英尺的房子,就可以通過這條紅線來估算出房價,可以看出,大約是在150K美金左右。
這是一個典型的回歸問題(Regression),因為結果(房價)可以是任意實數(shù),且數(shù)據(jù)是可以連續(xù)的。
更進一步,由于變量1個—房屋尺寸,且預測結果(房價)和變量間的表達式可以用線性方程描述y = k*x + b。所有,此問題在機器學習中的術語叫做:單變量線性回歸 Linear Regression with One Variable
例2:乳腺癌良性/惡性和尺寸關系
給定一組數(shù)據(jù):乳腺癌腫瘤尺寸大小 和 癌癥惡性/良性關系,通過機器學習,來預測一個給定腫瘤尺寸大小的患者,疾病是惡性還是良性的概率。
這個問題和之前的房價問題有些區(qū)別,雖然同樣的,變量只有一個,即x軸上的尺寸大小,但是y軸的結果卻只有兩種:0和1,0表示腫瘤分類為良性;1表示分類為惡性。
所以,這是一個典型的分類問題(Classification)由于這里結果只有兩種,所以此分類問題為二元分類問題
2.分類Classification
這兩個例子都比較通俗易懂,新接觸到的名詞雖然有點多但也無需過度理解,兩個例子中涉及到了監(jiān)督學習中的分類問題、回歸問題。分類問題很好理解,機器預測值只有固定的幾個類別,課程中為兩種:0良性腫瘤 1 惡性腫瘤,所以稱為二分類,除了二分類以外,其他的統(tǒng)稱多分類。
3.回歸Regression
與分類問題相對,回歸問題的預測值范圍比較自由,可以是連續(xù)的,且可取任意實數(shù)
4.監(jiān)督學習Supervised Learning
課程中的兩個問題:房價-房屋面積、腫瘤良惡—腫瘤尺寸都是屬于監(jiān)督學習??梢韵群唵卫斫猓O(jiān)督學習就是給定了數(shù)據(jù)集,且數(shù)據(jù)是規(guī)則明確的,有標簽的??梢岳斫鉃榻Y構化的、存儲在數(shù)據(jù)庫中的數(shù)據(jù),喂給機器學習的情況,就叫做監(jiān)督學習。
5.無監(jiān)督學習Unsupervised Learning
與監(jiān)督學習相對,如果給出的數(shù)據(jù)集、沒有明確標簽或者是非結構化的,那么這類數(shù)據(jù)的機器學習,就叫做無監(jiān)督學習。除了監(jiān)督學習、無監(jiān)督學習、還有半監(jiān)督學習的概念。具體可以看看知乎:https://www.zhihu.com/question/23194489/answer/25028661
6.假設hypothesis
我們以例1為例說明hypothesis(假設),這也涉及到后面的代價函數(shù)。
?—hypothesis(假設),代表學習算法的解決方案或函數(shù)。
?表示一個函數(shù),實際上即模型的預測函數(shù),在例1中,輸入是房屋尺寸大小,就像你朋友想出售的房屋,因此 ? 根據(jù)輸入的房屋面積值x 來得到此防房屋估價y,因此,?是一個從x 到 y的映射,由于是單變量線性回歸,映射關系可以簡單表示為:等價于
舉個栗子
很明顯,在此例中,通過假設函數(shù),我們可以對數(shù)據(jù)集以外的樣本做預測,如果假設函數(shù)是: 那么如果你的朋友有一套面積為500(英尺)的房子,那么你就可以告訴他,你的房價預估在125K(12.5萬)美金
誤差
你那個朋友過來找到你了,說你的假設有誤啊,我那套500英尺的房子,明明就是100K而已,你的數(shù)據(jù)集的數(shù)據(jù)還記錄了我的房子呢......你這有誤差?。?!
預測值125和真實值之間差距為25K,這里25K就被稱為建模誤差。
7.損失函數(shù)Cost Function
代價函數(shù)/損失函數(shù),就是用于評估誤差水平的函數(shù),常見的損失函數(shù)有平方損失函數(shù)、交叉熵損失函數(shù),其中前者多用于回歸問題,后者多用于分類問題。理論上,給定一批房屋面積—價格數(shù)據(jù)點,我可以根據(jù)這批數(shù)據(jù)畫出無數(shù)條假設函數(shù)直線用于模擬房價和面積之間的關系,那么怎么找到最優(yōu)的那條線?這時,我們就會用到代價函數(shù),好的代價函數(shù)必然使得數(shù)據(jù)集總體的誤差最小。

舉個例子,此時我有三個樣本點 (1,1),(2,2),(3,3),我怎么確定一個假設函數(shù)h,使得這條線能最優(yōu)化地擬合所有數(shù)據(jù),能更精確地預測下一個位置樣本點的數(shù)據(jù),譬如x = 5時 y的值?這里人眼很明顯一看就能確定 即可,不過對于機器,怎么去確定這個方程?
此時就需要用到代價函數(shù),這里我們可以用回歸問題通用的平方損失函數(shù)/平方代價函數(shù),評估假設函數(shù)的誤差水平。這里,例1的代價函數(shù)如下:

損失函數(shù)的意義就在于,通過求損失函數(shù)的值,我們可以評估預測函數(shù)的準確性,損失越小,則模型的預測越精準。所以,訓練模型很多時候就是降低損失,找到損失函數(shù)的最小值,通過其最小值來產(chǎn)出最優(yōu)的假設函數(shù)。
8.二元函數(shù)梯度下降Gradient Descent
圖解

概述
目標
找到損失函數(shù)的最小值,即最小的點,所以我們利用梯度下降算法(而不是梯度上升)
為了找到損失函數(shù)的最小值,我們采用梯度下降算法,圖中為二元函數(shù)梯度下降圖解,如果參數(shù)為更多元,則無法繪制出相應的梯度下降圖,不過這幅圖恰巧能生動地解釋梯度下降的含義。
這里x、y軸分別為參數(shù)所在維度,z軸代表代價函數(shù)J的大小,所有的
參數(shù)點和損失函數(shù)
值構成了五彩的三維曲面,最終目標:即通過梯度下降算法,找到
最小的點。
肉眼可見右邊紅色箭頭所指的點,為局部梯度最低點,即局部最小值點;左邊紅色箭頭所指的點為整個三維曲面上的最小值點,即全局最低點。
公式
這里,批量梯度下降(batch gradient descent)算法的公式為:
for( j = 0 and j = 1)
參數(shù)解釋
1.公式中為什么是,因為用于表示梯度下降,即逐漸降低,故用負號表示
2.公式中用的是:=符號,此含義表示,等式中的參數(shù)需要同時更新。如此處有兩個參數(shù)正確的更新方式是:
第一步:
第二步:
其中第一步完成后才能進行第二步,且在每一步執(zhí)行時,內(nèi)部求temp1、temp2時也是并行的關系
學習率
批量梯度下降公式中,為學習率(learning rate)它決定了我們沿著能讓代價函數(shù)下降程度最大的方向向下邁出的步子有多大,在批量梯度下降中,我們每一次都同時讓所有的參數(shù)減去學習速率乘以代價函數(shù)的導數(shù)
學習率過小
如果太小了,即我的學習速率太小,結果就是只能這樣像小寶寶一樣一點點地挪動,去努力接近最低點,這樣就需要很多步才能到達最低點。所以,如果
太小的話可能會很慢,因為它會一點點挪動,它會需要很多步才能到達全局最低點。
學習率過大
如果太大,那么梯度下降法可能會越過最低點,甚至可能無法收斂,下一次迭代又移動了一大步,越過一次,又越過一次,一次次越過最低點,直到你發(fā)現(xiàn)實際上離最低點越來越遠。所以,如果
太大,它會導致無法收斂,甚至發(fā)散
9.梯度下降的線性回歸
線性回歸模型 梯度下降算法
?
(for j = 0 and j = 1)

對損失函數(shù)/代價函數(shù)運用梯度下降方法,求導:

Tips:
j = 0時即對求導,
j = 1時即對求導