1. 程式人生 > >吳恩達機器學習 學習筆記 之 二 :代價函式和梯度下降演算法

吳恩達機器學習 學習筆記 之 二 :代價函式和梯度下降演算法

二、

2-1 Model Representation

我們學習的第一個演算法是線性迴歸,接下來會講什麼樣的模型更重要,監督學習的過程是什麼樣子。 首先舉一個需要做預測的例子:住房價格上漲,預測房價,我們擁有某一城市的住房價格資料。基於這些資料,繪製圖形。 在已有房價資料集中,部分房子已售出,且我們知道這些房子的尺寸和售價。現在某人的房子是1250平方英尺,預測其可能的售價。 演算法要做的是: (1) 擬合模型 若採用直線擬合,可能售價$220,000。
這是一個監督學習的演算法,因為每個樣本都知道報價,即“正確答案”。。 這也是一個迴歸問題,因為我們預測連續的值,即價格。 定義一些符號; x : 輸入變數/特徵(features) y :輸出變數/目標變數(target varibles) (x,y):一個訓練樣例。 (x(i),y(i)):第i個訓練樣例。 監督學習的過程:

將訓練資料集“餵給”學習演算法,學習演算法輸出一個函式h,h代表假設。 h的任務是,輸入房子的大小(x),輸出房子的估價(y)。所以,h是一個函式,從x對映到y。為什麼函式h被稱為假設呢?或許這個名稱對某些函式來講並不是很合適,但這是機器學習中的標準術語,所以不需要糾結為什麼這麼稱呼。 設計學習演算法,下一步要做的是怎麼表示假設h,後面的幾節會講述假設h的幾種表示方法。例如在預測房價問題中該怎麼表示h呢,一種可能的表示方法是:
因為只含有一個特徵/輸入變數,因此這樣的問題叫作單變數線性迴歸問題。
下一節中討論怎麼實現該模型。 筆者的筆記可能有不夠完整的地方,這裡有一些很不錯的文章,大家可以再瀏覽一遍,或許會有不一樣的收穫:

2-2 Cost function ——  代價(或稱損失)函式

這一節介紹代價函式,代價函式能幫我們找到資料的最佳擬合直線。 線上性迴歸中,用來進行預測的函式是:

其中,θ和 θ1 之類這些 θi ,稱為模型引數,接下來要講的就是如何選擇這兩個引數值。

使用不同的θi ,我們會得到不同的假設函式


線上性迴歸中,我們有一個訓練集,我們要做的就是得出 θ和 θ1 這兩個引數的值,來讓假設函式表示的直線儘量地與這些資料點很好的擬合。那麼我們如何得出 θ和 θ1 的值,來使它很好地擬合數據的呢?

我們的想法是,輸入 x 時,我們要確定引數θ和 θ1 的值,以使我們的預測值 h(x) ,最接近該樣本(x)對應的 y 值。訓練集中有一定數量的樣本, x 表示某一所房子,我們也知道這所房子的實際價格。所以,我們要選擇引數值,儘量使得在訓練集中給出的 x 值,能準確地預測 y 的值。


線上性迴歸中,我們要解決的其實是最小化問題。在這裡,即希望誤差h(x) - y達到最小,此時(h(x) - y)的平方也達到了最小值。模型所預測的值與訓練集中實際值之間的差距(下圖中藍線所指)就是建模誤差(modeling error)。

我們的目標便是選擇出可以使得建模誤差的平方和能夠最小的模型引數。即:


其中,用符號(x(i),y(i))代表第i個樣本,我們需要對所有訓練樣本的建模誤差平方進行求和。此時的輸入是x(i),即第i個房子的面積。m是訓練集的樣本容量(有多少個樣本,m就是多少)。

為了儘量減少平均誤差,我們在前面乘上一個因子1/m,為了在數學上表達的更簡單直白一些,再除以2,經過這些處理,得到的應是相同的θ和 θ1 。

其中,htheta(x(i)) = theta0 + thetax(i)。


所以,問題就變成了,找到這樣的θ和 θ1 ,使得訓練集中預測值和真實值的差的平方和,的1/2m達到最小。這也就是該線性迴歸問題的目標函數了。

為了使上述函式更明確,按照慣例,定義一個代價函式,如下,


我們要做的就是求關於θ和 θ1 的J(θ0 , θ1)的最小值,其中J(θ0 , θ1)即代價函式(Cost Function)。代價函式也稱為平方誤差函式或平方誤差代價函式。也還有其他的代價函式,但平方誤差代價函式是處理迴歸問題時最常用的。


接下來,會詳細講解代價函式J的工作原理,以及使用它的目的。

綜上,上面的函式及符號分別為:


2-3 Cost Function intuition1 — 代價函式

[本節概要]上節講述了代價函式的數學定義,本節將給出一些代價函式的例子,來講述代價函式是用來做什麼的,以及為什麼要使用它。

在上一節中,根據引數θ和 θ1 ,形成一個假設(Hypothesis)。選擇不同的引數,我們得到不同的直線,從而得到不同的預測值,為了描述預測的準確程度,我們使用了假設函式(Cost Function)。


在本節中為了對代價函式進行視覺化,我們使用一個簡化的假設函式。


其中,假設函式(Htheta(x))和代價函式(J(theta1))是我們要格外注意的。假設函式可以用來預測房價,代價函式控制著直線的斜率。

下面對兩種函式進行分析,左邊是假設函式,訓練集中有三個樣例(1,1)、(2,2)(3,3)。以例項說明的話,X就表示房子的大小(Size)。

我們需要對θ1 取不同值,然後得到不同的平方誤差和,當θ1  = 1時,有如下擬合直線和代價計算公式。


此時對應的代價函式J(1) = 0。故,在右側,我們得到了一個點的座標,其中橫軸代表θ1 。


通過對θ1 取不同值,我們得到一系列代價函式的點,如下圖:


對於不同的θ1 ,對應著假設函式的不同值(左側,一條不同的直線),對應著不同的J(θ1)的值。

我們的優化目標是,通過選擇θ1 的值,儘可能的減小J(θ1)。在右側,當θ1 = 1時,J(θ1)達到最小,此時我們找到了資料的最佳擬合直線hθ1(x) = 1*x。這一例子說明了,為什麼要使J(θ1)最小,來找擬合曲線。

2-4 Cost Funciton  intuition2 ——  代價函式

[本節概要] 本節從更深層次上講解代價函式做什麼的。

下面是常用的公式:


上節在對代價函式進行視覺化時,只保留了一個引數θ1 ,本節將保留所有引數θ0 和θ1 。

下圖左邊是假設,右邊是代價函式。假定設定θ0 = 50,θ1 = 0.06。

 在上節中,只有一個引數,所以代價函式繪製完成後是一個“J(θ1) — θ1二維曲線圖,現在要表達兩個引數與代價函式之間的關係,所以要建立一個3D曲面圖。如下,注意θ0、θ1在橫座標軸上。(下圖中這種情況,可以認為,J(θ0,θ1)的值最小時,(θ0,θ1)在(0,0)附近)


為了便於分析,下面不使用3D曲面圖,而改用等高線圖,如下面右圖。軸座標表示θ0 和θ1 ,橢圓形表示J(θ0 ,θ1)值相同的點,每一個橢圓都對應著一對θ0 ,θ1 。同心橢圓的中心點就是J(θ0 ,θ1)的最小值點,此時(θ0,θ1)大約在(0,0)附近。


左邊的擬合直線對應的代價函式,就是右邊的大紅色叉號所在的點。可以看出,該點離最小值點較遠,說明擬合效果不佳。

換一條擬合直線,如下圖。從左圖可看出θ0  = 360,θ1  = 0。對應右邊的橢圓曲線即紅色叉號所在點。此時與最小值點又接近了一些。


再換一種擬合函式,可以看出此時與最小值點已經十分接近了。平方誤差和即所有點與假設函式距離的平方的和,如左圖所示。

通過以上講解,我們瞭解到代價函式J是如何擬合不同的假設函式的,當資料非常接近函式J的最小值時,假設函式到底能多好的擬合數據。

現在,我們真正迫切需要的是一個高效的演算法,一個高效的軟體,能自動尋找使J最小的θ0 和θ1 。因為當資料更復雜,引數更多時,我們甚至都不能繪製出圖形。

後面將講解尋找使J最小的θ0 和θ1 的值的演算法。

2-5 Gradient Descent —— 梯度下降演算法

本節介紹一種可以將代價函式最小化的演算法——梯度下降演算法。該演算法被廣泛地應用於機器學習的眾多領域。 問題概述,對於代價函式J,可能有很多引數theta0~n,但為了簡單起見,這裡只討論兩個引數。
使用梯度下降演算法的步驟: (1)首先,隨便給引數一個初始值,一般設定初始值為0。 在梯度下降演算法中要做的是,不停地一點點改變θ0 和θ1 ,通過這種改變使J變小。直到我們找到了J的最小值,或許是區域性最小值。 我們通過下面的圖片,說明梯度下降演算法是如何工作的。
首先希望大家把這幅圖片想象成一座山,而你站在山上的某一點處。現在你要邁著小碎步一步一步地下山,並且希望能夠儘可能快的下山,那你應該從哪個方向下山呢?當然是從最陡峭的地方下山,你找到了一個最陡峭的方向並邁出了一步,然後再重新找最陡峭的方向,你又邁出了一步,這樣你就能以最快速度下山了。 而如果我們換一個起始點,按照相同的策略下山,我們可能會得到一個更快的路線(更優解,剛才的方法就是一個區域性最優解了),如下圖。
通過上面的例子,我們可以對梯度下降演算法有一個初步的,形象的理解。 (2)反覆更新θ0和θ1,以求得J的最小值 下面是梯度下降演算法在數學上的定義,我們需要反覆的更新引數θj 。其中的符號“:=”是一個賦值運算子;α是一個數字,表示學習速率,形象點說,它控制了我們下山時邁多大的步子,α值的設定會在後面講解。當j=0和j=1時,更新θ0和θ1,值得注意的是,這裡的更新是同時進行的。原理在左下方,使用臨時變數temp0和temp1,保證了對θ0和θ1更新的同時性,右下方就是一個很明顯的反例了。事實上,θ0和θ1更新的同時性也正是梯度下降演算法的微妙之處。
下一節會講解梯度下降演算法的定義,以及演算法公式中的偏微分項。

2-6 Gradient Descent Intuition —— 梯度下降演算法

本節更深入的說明梯度下降演算法做什麼,以及梯度下降演算法的更新過程有什麼意義。 下面是梯度下降演算法的數學定義,其中α的術語叫學習速率,它控制著以多大幅度更新引數θj。後面的是導數項。本節的目標就是說明這兩部分有什麼用,以及為什麼有了這兩部分後,更新過程才是有意義的。 我們舉例來說明這兩部分的作用。 首先解釋導數項的意義,如下圖。為了簡便起見,我們這裡只分析含一個引數(θ1)的代價函式J(θ1)。在兩幅圖中的曲線代表同一個代價函式。第一幅圖中,我們假設取的初始值θ1在最小值點的右側。那麼J(θ1)在該點對θ1求得的導數是一個正數,θ1 = θ1 - α*正數,點會向最小值點移動。第二幅圖與此相反,但原理相同。
現在解釋學習速率α的意義,如下圖。第一幅圖中,將學習速率取的小一些,那麼將會像個baby一樣很慢很慢得走向最低點。若是將學習速率取的太大,則有可能像第二幅圖,步子邁得太大,跨過最低點,這樣代價函式可能會發散。
如果θ1取的初始值在(區域性)最低點,那麼接下來演算法會怎麼工作呢? 因為(區域性)最低點處,導數部分為0,所以θ1 = θ1 -  α*0,實際上θ1沒有發生變化。 如下圖,隨著梯度下降法的不斷執行,倒數部分會不斷減小,從而使得“α*斜率”不斷減小,θ1的變化幅度也就越來越小了。所以,沒必要再減小α。 接下來,結合平方誤差函式和代價函式,我們得出第一個演算法——線性迴歸演算法。

2-7 Gradient Descent For Linear Regression ——梯度下降的線性迴歸演算法

在本節我們要將梯度下降函式和代價函式結合,並將其應用到線性迴歸演算法。 下面是之前完成的工作,左邊是梯度下降演算法的數學表示式,右邊是線性迴歸模型的線性假設和代價函式 。
我們將要做的是用梯度下降演算法最小化平方差成本函式。 其中的偏導部分,化簡後即:
從而,梯度下降演算法改寫成如下這樣:

相關推薦

機器學習 學習筆記 代價函式梯度下降演算法

二、 2-1 Model Representation 我們學習的第一個演算法是線性迴歸,接下來會講什麼樣的模型更重要,監督學習的過程是什麼樣子。 首先舉一個需要做預測的例子:住房價格上漲,預測房價,我們擁有某一城市的住房價格資料。基於這些資料,繪製圖形。 在已有房價資

機器學習課程筆記02——處理房價預測問題(梯度下降演算法詳解)

  建議記住的實用符號 符號 含義 m 樣本數目 x 輸入變數 y 輸出變數/目標變數

機器學習筆記-神經網路的代價函式反向傳播演算法

代價函式 在神經網路中,我們需要定義一些新的引數來表示代價函式。 L = total number of layers in the network $s_l$ = number of units (not counting bias unit) in layer

機器學習 】CS229課程筆記notes1翻譯-Part II分類logistic迴歸

CS229 課程筆記 吳恩達 Part II  分類和logistic迴歸       我們現在談論分類問題。分類問題與迴歸問題類似,區別是在分類問題中,我們現在想要預測的y值只取少量的離散值。現在,我們聚焦於二值分類問題,y只取兩個值,0和1。(我們在這裡說的大多數

深度學習筆記——理論與推導概念,成本函式梯度下降演算法初識(一)

前情提要 一、神經網路介紹 概念:Learning ≈ Looking for a Function 框架(Framework): What is Deep Learning? 深度學習其實就是一個定義方法、判斷方法優劣、挑選最佳的方法的過程:

spark學習筆記寬依賴窄依賴

1.如果父RDD裡的一個partition只去向一個子RDD裡的partition為窄依賴,否則為寬依賴(只要是shuffle操作)。 2.spark根據運算元判斷寬窄依賴:      窄依賴:map

Machine Learning--week1 監督學習、預測函式代價函式以及梯度下降演算法

Supervised Learning given labelled data to train and used to predict for regression problem and classification problem Unsupervised Le

深度學習,周志華,機器學習,西瓜書,TensorFlow,Google,軍,數學美,李航,統計學習方法,,深度學習筆記,pdf下載

1. 機器學習入門經典,李航《統計學習方法》 2. 周志華的《機器學習》pdf 3.《數學之美》吳軍博士著pdf 4. Tensorflow 實戰Google深度學習框架.pdf 5.《TensorFlow實戰》黃文堅 高清完整PDF  6. 復旦大

機器學習 學習筆記 一 監督學習無監督學習

一、  1-1 welcome 1-2 什麼是機器學習——Machine Learning 機器學習尚無明確定義,現有的定義有: (1)Field of study that gives computers the ability to learn about being

Coursera 深度學習 deep learning.ai 筆記整理(3-2)——機器學習策略

新的 bsp 誤差 spa 歸納 空間 font 處理 整理 一、誤差分析 定義:有時我們希望算法能夠勝任人類能做的任務,但是當算法還沒達到人類所預期的性能時,人工檢查算法錯誤會讓你知道接下來做什麽,這也就是誤差分析 檢查,發現會把夠狗當恒,是否需要做一個項目專門處理狗

機器學習”——學習筆記

最大似然 數據 learning 模型 ima 我們 回歸 eps 而是 定義一些名詞 欠擬合(underfitting):數據中的某些成分未被捕獲到,比如擬合結果是二次函數,結果才只擬合出了一次函數。 過擬合(overfitting):使用過量的特征集合,使模型過於復雜。

機器學習”——學習筆記

包含 找到 trade 經驗 這也 ... info 算法 不等式 偏差方差權衡(bias variance trade off) 偏差:如果說一個模型欠擬合,也可以說它的偏差很大。 方差:如果說一個模型過擬合,也可以說它的方差很大。 訓練誤差 經驗風險最小化(ERM)

機器學習學習筆記——1.5無監督學習

分類 哪些 rep epm 朋友 工作 style class 客戶 1 無監督學習:在不知道數據點的含義的情況下,從一個數據集中找出數據點的結構關系。 2 聚類算法:相同屬性的數據點會集中分布,聚集在一起,聚類算法將數據集分成不同的聚類。也就是說,機器不知道這些數據點具體

機器學習學習筆記——2.1單變量線性回歸算法

工作方式 樣本 body 聚類 屬性 bsp 定義 算法 信息 1 回顧1.1 監督學習定義:給定正確答案的機器學習算法分類:(1)回歸算法:預測連續值的輸出,如房價的預測(2)分類算法:離散值的輸出,如判斷患病是否為某種癌癥1.2 非監督學習定義:不給定數據的信息的情況下

機器學習學習筆記——代價函數

info alt 學習 ima 代價函數 png 線性回歸 gpo mage 單變量線性回歸函數 hθ(x) = θ0 + θ1x 為了使線性回歸函數對數據有較好的預測性,即y到h(x)的距離都很小。 【吳恩達機器學習】學習筆記——代價函數

機器學習學習筆記——梯度下降

得到 向導 bubuko gpo 思路 pos 方向導數 ... image 梯度下降算法能夠幫助我們快速得到代價函數的最小值 算法思路: 以某一參數為起始點 尋找下一個參數使得代價函數的值減小,直到得到局部最小值 梯度下降算法: 重復下式直至收斂,其中α為學習速

機器學習學習筆記——2.7第一個學習算法=線性回歸+梯度下降

com 梯度 .com 局部最優 alt ima 實現 梯度下降 width 梯度下降算法:              線性回歸模型:       線性假設:                      平方差成本函數: 將各個公式代入,對θ0、θ1分別求偏導得: 再將偏

Coursera-AndrewNg()機器學習筆記——第三周

訓練 ros 方便 font 就是 梯度下降 全局最優 用法 郵件 一.邏輯回歸問題(分類問題) 生活中存在著許多分類問題,如判斷郵件是否為垃圾郵件;判斷腫瘤是惡性還是良性等。機器學習中邏輯回歸便是解決分類問題的一種方法。二分類:通常表示為y?{0,1},0:“Negat

機器學習筆記 —— 5 多變量線性回歸

擬合 進行 image 價格 常用 從表 cnblogs 優化 深度 本篇主要講的是多變量的線性回歸,從表達式的構建到矩陣的表示方法,再到損失函數和梯度下降求解方法,再到特征的縮放標準化,梯度下降的自動收斂和學習率調整,特征的常用構造方法、多維融合、高次項、平方根,最後基

機器學習筆記 —— 9 神經網絡學習

滿了 線性回歸 復雜 amp 技術分享 tps 機器 神經網絡 前饋型神經網絡 本章講述了神經網絡的起源與神經元模型,並且描述了前饋型神經網絡的構造。 更多內容參考 機器學習&深度學習 在傳統的線性回歸或者邏輯回歸中,如果特征很多,想要手動組合很多有效的特征是不