斯坦福大學機器學習筆記——單變數的線性迴歸以及損失函式和梯度下降法(包含程式碼)
迴歸問題:
所謂的迴歸問題就是給定的資料集,且每個資料集中的每個樣例都有其正確的答案,通過給定的資料集進行擬合,找到一條能夠最好代表該資料集的曲線,然後對於給定的一個樣本,能夠預測出該樣本的答案(對於迴歸問題來說,最終的輸出結果是一個連續的數值)。比如,房價預測問題,最終的輸出房價是一個連續的數值。迴歸問題是監督學習的一種。
分類問題:
與迴歸問題一樣,分類問題同屬於監督學習,與之不同的是,分類問題預測的結果輸出是離散的值,比如判斷一個人得的腫瘤是良性的還是惡性的,這就是0/1離散輸出問題。
對於一個迴歸問題來說,它的一般流程為:
其中,h代表擬合的曲線,也稱為學習演算法的解決方案或函式或假設
單變數的線性迴歸是迴歸問題的一種,它的表示式為:
由於它只有一個特徵/輸入變數x,同時它擬合的曲線是一條直線,所以該問題叫做單變數線性迴歸問題。
以房價問題為例,來舉例說明迴歸問題。
對於迴歸問題來說,假設的選擇是一個關鍵問題,在只有資料的情況下,如何確定h的形式?我們假設房價問題是線性迴歸,則
但是我們如何選擇引數
在迴歸問題中我們一般選擇均方誤差代價函式(也叫作平方誤差代價函式)
訓練的目標就是使得
對於代價函式的理解可以通過下面一個例子加深:
迴歸問題的整個過程即為:
為了方便繪圖和理解,可以對上述問題進行簡化,上述各個形式轉化為:
假設有三組資料,資料分別為(1,1),(2,2),(3,3)
當
(1,0.5),(2,1),(3,1.5)
則此時的損失函式的值為((1-0.5)^2+(1-2)^2+(3-1.5)^2)/(2*3)=0.583
當
(1,1),(2,2),(3,3)
則此時的損失函式的值為((1-1)^2+(2-2)^2+(3-3)^2)/(2*3)=0
以此類推,推出多個
從中可以看出當
然後對於一個待測試的樣本,最終的預測值就可以通過確定的h表示式來獲得。這就是完整的迴歸問題。
上述的問題已經將其進行了簡化,若不是簡化形式,求解形式相同,只不過原來的
我們不希望通過上述方法,編個程式把這些點繪製出來,通過人工的方法將最低點找到。在低維的情況下還可以這麼做,但是在高維更多引數的情況下,顯然上述方法是不可行的。所以,可以使用梯度下降法來實現。
梯度下降法的思想是:開始隨機選擇一個引數的組合
梯度下降法的數學定義如下:
其中,
值得注意的是,
如左圖所示,為正確的更新過程,二者不同的地方在於,右圖中在求
下面舉例說明梯度下降的過程:
例如上圖代表兩座山,你現在所處的位置為最上面的那一點,你想以最快的速度達到山下,你環顧360度尋找能快速下山的方向,這個過程對應於求偏導的過程,你每次移動一步,移動的步長對應於
下面討論一下步長
注意:下圖中討論,都是在
步長對梯度下降法的影響:
1. 當步長太小時,每次走的步子很小,導致到達最小值的速度會很慢,也就是收斂速度慢,但是能保證收斂到最小值點。
2. 當步長太大時,梯度下降法可能會越過最小值點,甚至可能無法收斂。
兩種情況的示意圖如下:
梯度對梯度下降法的影響:
以下圖為例:
粉紅色的點為初始點,在此點求出導數,然後乘以學習率,更新引數
下面我們來討論一下線性迴歸的梯度下降法:
梯度下降演算法和線性迴歸演算法如下圖所示:
我們想用梯度下降演算法來最小化損失函式,關鍵問題在於求導,即:
當j=0時:
相關推薦
斯坦福大學機器學習筆記——單變數的線性迴歸以及損失函式和梯度下降法(包含程式碼)
迴歸問題: 所謂的迴歸問題就是給定的資料集,且每個資料集中的每個樣例都有其正確的答案,通過給定的資料集進行擬合,找到一條能夠最好代表該資料集的曲線,然後對於給定的一個樣本,能夠預測出該樣本的答案(對於迴歸問題來說,最終的輸出結果是一個連續的數值)。比如
斯坦福大學機器學習筆記——多變數的線性迴歸以及梯度下降法注意事項(內有程式碼)
在前面部落格中介紹了單變數線性迴歸的實現過程,本文將介紹多變數線性迴歸演算法。 兩者的對比如下: 1.資料方面的差異: 單變數線性迴歸資料: 多變數線性迴歸資料: 對於單變數線性迴歸來說,只有一個特徵(房子的大小),而對於多變數線性特徵迴歸特徵
吳恩達機器學習之單變數線性迴歸實現部分
C++實現 程式碼實現 “linear_regression.h” //單變數線性迴歸模型 struct elem_var1 { double x, y; //訓練集元素資料:自變數、因變數 }; class var1_lin_reg { p
吳恩達機器學習之單變數線性迴歸理論部分
理論部分 1.方程形式 在進行資料處理過程中,有時資料影象可擬合成單變數線性函式,即 2.如何擬合 此時,我們雖知道擬合函式的形式,但如何擬合仍是個問題,怎樣擬合可以最接近實際資料情況呢? 最小二乘法 此時我們引入代價函式這個概念 代價函式 接下來我們來分析如何
機器學習(一)——單變數線性迴歸
關鍵詞:線性迴歸、監督學習、模型、假設函式、代價函式、梯度遞降、學習率、訓練集 一.前言 前段時間在學習 Andrew Ng 的《機器學習課程》,個人認為這是一個非常適合新手學習機器學習的課程(即使你對線性代數,微積分、概率論等已經忘得差不多了)。這裡對
機器學習:單變數線性迴歸及梯度下降
***************************************** 注:本系列部落格是博主學習Stanford大學 Andrew Ng 教授的《機器學習》課程筆記。博主深感學過課程後,不進行總結很容易遺忘,根據課程加上自己對不明白問題的補充遂有此係列部落格。
機器學習之單變數線性迴歸(Linear Regression with One Variable)
1. 模型表達(Model Representation) 我們的第一個學習演算法是線性迴歸演算法,讓我們通過一個例子來開始。這個例子用來預測住房價格,我們使用一個數據集,該資料集包含俄勒岡州波特蘭市的住房價格。在這裡,我要根據不同房屋尺寸所售出的價格,畫出我的資料集: 我們來看這個資料集,如果你有一個朋
吳恩達Coursera機器學習課程筆記-單變數線性迴歸
The Hypothesis Function we will be trying out various values of θ0 and θ1 to try to find values which provide the best possibl
Machine Learning(Stanford)| 斯坦福大學機器學習筆記--第二週(1.多元線性迴歸及多元線性迴歸的梯度下降)
一.Multivariate Linear regression(多元線性迴歸) 現在起將開始介紹一種新的更為有效的線性迴歸形式。這種形式適用於多個變數或者多特徵量的情況。 在之前學習過的線性迴歸中
斯坦福大學機器學習筆記——異常檢測演算法(高斯分佈、多元高斯分佈、異常檢測演算法)
異常檢測問題介紹: 異常檢測演算法主要用於無監督學習問題,但從某種角度看它又類似於一種有監督學習的問題,下面我們從一個例子中簡單介紹一下什麼是異常檢測問題。 比如我們有一個飛機引擎製造商,對於一個新造出的飛機引擎我們想判斷這個引擎是不是異常的。 假如我們有
斯坦福大學機器學習筆記——聚類(k-均值聚類演算法、損失函式、初始化、聚類數目的選擇)
上面的部落格的演算法都是有監督學習的演算法,即對於每個資料我們都有該資料對應的標籤,資料集的形式如下: 而今天我們學習的演算法是一種無監督學習的演算法——聚類,該演算法中的每個資料沒有標籤,資料集的形式如下: K-均值聚類 k-均值聚類是一種最常見
斯坦福大學機器學習筆記——推薦系統(協同過濾、低秩分解、推薦系統)
這個部落格讓我們來討論一下推薦系統,首先我們來討論一下為什麼學習推薦系統: 1. 推薦系統是機器學習中的一個重要應用,它已經用於很多企業中,比如淘寶、今日頭條、亞馬遜等。它們會根據你的瀏覽記錄,當你再
Machine Learning(Stanford)| 斯坦福大學機器學習筆記--第一週(1.監督學習與無監督學習的介紹)
以上例子中,總共有兩個特徵,即病人年齡和腫瘤大小。在別的ML問題中,經常會用到更多特徵,別人在研究這個問題時, 通常使用如下這些特徵:比如腫瘤的厚度,腫瘤細胞大小和形狀的一致性等等。 真正對於一些學習問題,用到的不只是三五個特徵,經常要用到無數多個特徵,非常多的屬性。所以,你的學習演算法要利用很多的屬性或特徵
斯坦福大學機器學習筆記——正則化的邏輯迴歸模型
在上面部落格中我們討論了正則化的線性迴歸模型,下面我們來討論一下正則化的邏輯迴歸模型。 前面我們講述了兩種常用於邏輯迴歸的方法: 基於梯度下降法的邏輯迴歸模型 基於高階優化的邏輯迴歸模型 基於
斯坦福大學機器學習筆記——特徵和多項式迴歸以及正規方程
我們可以舉一個例子來引入多項式迴歸: 比如我們之前遇到的房價問題,對於房價的影響我們假設有兩個特徵,一個是房子的寬度x1,另外一個是房子的長度x2,這針對房價的估測我們可以建立下面形式的假設: hθ
斯坦福大學機器學習筆記——邏輯迴歸、高階優化以及多分類問題
shi先簡單說一下邏輯迴歸,其實會有很多人誤解,會將邏輯迴歸當成迴歸演算法,其實邏輯迴歸就是我們所說的分類問題,所謂的邏輯,一般我們說的邏輯就是邏輯0或者邏輯1,所以可以藉此理解。但是邏輯迴歸不僅僅只包括兩分類問題,它還包括多分類問題。 那麼能否使用線性迴歸的
斯坦福大學機器學習筆記——機器學習系統設計(誤差分析、查全率和查準率、F1值)
這次部落格我們主要討論機器學習系統設計的主要問題,以及怎樣巧妙的構建一個複雜的機器學習系統。 我們先用一個例子引入機器學習系統的設計: 以一個垃圾郵件分類器演算法為例: 對於該問題,我們首先要做的是怎樣選擇並且表達特徵向量x。我們可以選擇100個詞所構
吳恩達機器學習之多變數線性迴歸實現部分
C++實現梯度下降法 “linear_regression.h” //多變數線性迴歸模型 struct elem_var2 { double y; double* x; //用陣列傳入自變數資料(x[0]=1,便於之後的計算) }; class var2
吳恩達機器學習之多變數線性迴歸理論部分
本部落格主要參考此部落格:戀雨心 一.Multiple Features — 多維特徵 相對於單變數線性迴歸模型,多變數線性迴歸模型適用於處理多個變數/特徵。 對比: 以之前我們介紹的單變數線性迴歸模型為例: 用房屋面積x預測房子價格y。 現在我們對房價模型增加更多的特徵,例如房間
機器學習筆記之四——線性迴歸原理以及推導
一元線性迴歸: 對於樣本[(x1,y1),(x2,y2),……(xn,yn)],xi為特徵,yi為標籤。(字幕i代表下標) 假定y與x有: