第一章 線性回歸(Linear Regression)

0. 前言

以下內(nèi)容是根據(jù)coursera上《機(jī)器學(xué)習(xí)》課程所做的學(xué)習(xí)筆記,筆記中摘錄了課程上的部分圖片,也加入了自己的理解,為了能更好的的讓自己回顧所學(xué)內(nèi)容并且和大家分享,以中文形式進(jìn)行闡述。

本篇文章僅供學(xué)習(xí)交流使用,需要獲取更多信息還請(qǐng)大家登錄官方網(wǎng)站https://www.coursera.org/。

由于是初次寫博客,其中必然有很多地方考慮不到的地方,我會(huì)在之后做出修改,還請(qǐng)大家包涵。

1. 線性回歸的模型表示

  1. 使用x(i)表示輸入變量,也叫“輸入特征”; 使用y(i)表示輸出變量,也叫“目標(biāo)變量”
  2. 一個(gè)(x(i), y(i))對(duì)稱為一個(gè)訓(xùn)練樣例
  3. 我們用來訓(xùn)練的數(shù)據(jù)集是一個(gè)訓(xùn)練樣本列表(x(i), y(i)), i = 1,...,m
  4. 我們使用X,Y分別表示輸入變量和輸出變量的取值范圍

2. 對(duì)于supervised learning的正式表述

給出一個(gè)訓(xùn)練數(shù)據(jù)集,我們要找到這樣一個(gè)函數(shù)h:X → Y使得h稱為對(duì)于輸出的一個(gè)好的預(yù)判,這個(gè)函數(shù)稱為hypothesis,記為hθ

3. 成本函數(shù)cost function

為了評(píng)價(jià)hypothesis方程的精確性,定義一個(gè)cost function

我們可以看到成本函數(shù)與統(tǒng)計(jì)學(xué)上計(jì)算樣本的方差較為類似。

4. 對(duì)cost function 的直觀理解

只有一個(gè)參數(shù)的cost function

有兩個(gè)參數(shù)的cost function(用等值線圖表示)

5. 梯度下降法(gradient descent)

5.1 梯度下降法的表述

由于我們已經(jīng)有了評(píng)價(jià)hypothesis方程適應(yīng)數(shù)據(jù)程度的方法(cost function), 那么接下來的任務(wù)就是如何找到cost function 的最小值, 梯度下降算法是其中的一個(gè)方法.

給定一組訓(xùn)練數(shù)據(jù)集,我們根據(jù)采用不同的θ0, θ1得到不同的hypothesis方程hθ0, θ1),并計(jì)算出了它的cost function Jθ0, θ1), 綜合所有的θ0, θ1繪制成下圖

梯度下降法

我們的目標(biāo)是找到Jθ0, θ1)的最小值,也就是圖中的最低點(diǎn)。那么如何找到這個(gè)最低點(diǎn)呢?

假如我們站在圖中的任何一點(diǎn),假設(shè)是A點(diǎn)。梯度下降法的做法是“環(huán)顧四周,找到一個(gè)方向使得我沿著這個(gè)方向走一小步下降的距離最大”,于是我環(huán)顧四周,找到B點(diǎn)。 然后我重復(fù)上述過程,找到C點(diǎn),然后繼續(xù)重復(fù)上述過程...,最終我來到了箭頭所示的最低點(diǎn)??傮w上來看,我通過“梯度下降法”來到了圖中的一個(gè)局部極小值點(diǎn)。

那么這個(gè)方法的正式表述是什么呢?

梯度下降法的規(guī)范表述

這個(gè)方法有幾個(gè)需要注意的地方
1.α的含義
α稱為learning rate,它表現(xiàn)了梯度下降的速率,也就是我們每一步的“大小”,我們會(huì)在接下來對(duì)它詳細(xì)的介紹
2.":="的含義
在接下來的討論中,我們使用符號(hào)":="表示先計(jì)算右側(cè)的值,再將它賦給左側(cè)(類似于C++的=)。而"="的含義是表示兩側(cè)是否相等(類似于C++的==)
3. 同時(shí)更新
由于我們要更新的θ值有很多個(gè),在每一次梯度下降時(shí)要注意“同時(shí)更新”,即:=右側(cè)的值都算出來后,再同時(shí)對(duì)左側(cè)賦值。

同時(shí)更新

5.2 對(duì)梯度下降法的直觀理解

對(duì)于梯度下降法的某一個(gè)變量,如下圖是J(θ1)關(guān)于θ1變化的曲線,這個(gè)曲線是一個(gè)凹函數(shù),有最小值。

θ1的梯度下降過程

由梯度下降公式
[圖片上傳失敗...(image-27f54c-1529201544341)])
當(dāng)θ1位于右側(cè)時(shí),導(dǎo)數(shù)那一項(xiàng)是大于零的,我們一般將learning rate 設(shè)置成正數(shù),因此相當(dāng)于θ1減去一個(gè)正數(shù)再對(duì)θ1進(jìn)行更新,結(jié)果是使θ1減小,也就是使得θ1的值向左移動(dòng)。
當(dāng)θ1位于左側(cè)時(shí),導(dǎo)數(shù)那一項(xiàng)是小于零的,因此相當(dāng)于θ1減去一個(gè)負(fù)數(shù)再對(duì)θ1進(jìn)行更新,結(jié)果是使θ1增大,也就是使得θ1的值向右移動(dòng)。

通過這樣一步一步的對(duì)參數(shù)θ進(jìn)行更新,在保證learning rate α的合理取值的情況下,我們就可以最終獲得使得cost function J(θ0, θ1)取得最小值的參數(shù)集合。

但是這里存在兩個(gè)疑問

問題1:如何才算對(duì)α的合理取值?

這個(gè)需要通過具體的實(shí)驗(yàn)一步步的確定,但是我們可以肯定的是,learning rate取值過小或者取值過大都會(huì)對(duì)算法造成不利的影響。

如下圖,是α取值過小的情況,我們可以看到每一步邁出的距離都特別小,造成了對(duì)于時(shí)間的大量損耗。

α 取值過小

而下圖則是α 取值過大的情況,我們可以看到,假設(shè)我們一開始在A點(diǎn),此時(shí)更新的結(jié)果應(yīng)該是θ1向右移動(dòng),但是由于learing rate 過大,導(dǎo)致更新之后的θ1越過了最小值點(diǎn),直接來到了B點(diǎn);不幸的是,由于learning rate 還是過大,B點(diǎn)更新后直接越過最小值來到C點(diǎn),如此這般,使得θ1 非但沒有收斂,反而變得發(fā)散,這是我們不愿見到的。
α 取值過大

問題2:α的值在梯度下降過程中是變化的嗎?

答案是否定的,如下圖,如果α的值在一個(gè)合理的范圍內(nèi),導(dǎo)數(shù)項(xiàng)是隨著更新過程逐漸減小并趨向于零的,也就是會(huì)逐漸趨向于最小值,而不是直接越過它


α的值是固定的

5.3 線性回歸的梯度下降法(gradient descent for linear regression)

我們結(jié)合線性回歸的cost function的表述


得到線性回歸的梯度下降法的規(guī)范表述


這個(gè)結(jié)果可以通過簡(jiǎn)單的代入求導(dǎo)得到,對(duì)于沒有學(xué)過微積分的同學(xué),請(qǐng)自行查閱相關(guān)書籍。
由于這樣的梯度下降法使用了所有的訓(xùn)練用例,機(jī)器學(xué)習(xí)界通常也將它稱為batch gradient descent

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容