<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【機器學習】一文看盡 Linear Regression 線性回歸

          共 13289字,需瀏覽 27分鐘

           ·

          2024-05-11 16:03

          一 線性回歸簡介

          1.1 回歸的由來

          FrancisGalton,英國生物學家,他研究了父母身高與子女身高之間關(guān)系后得出,若父母身高高于平均大眾身高,則其子女身高傾向于倒退生長,即會比其父母身高矮一些而更接近于大眾平均身高。若父母身高小于平均身高,則其子女身高傾向于向上生長,以更接近于大眾平均身高。此現(xiàn)象,被Galton稱之為回歸現(xiàn)象,即regression.

          1.2 什么是線性回歸?

          回歸分析是一種統(tǒng)計工具,它利用兩個或兩個以上變量之間的關(guān)系,由一個或幾個變量來預測另一個變量。

          回歸分析中:

          • 自變量只有一個時,叫做一元線性回歸,
          • 自變量有多個時,叫做多元線性回歸,

          分類(Classification)與回歸(Regression)都屬于監(jiān)督學習,它們的區(qū)別在于:

          • 分類:定性輸出稱為分類,或者說是離散變量預測。如識別正常郵件/垃圾郵件;識別圖像中的人臉/非人臉;識別信貸中的正常行為/欺詐行為。(左圖)

          • 回歸:定量輸出稱為回歸,或者說是連續(xù)變量預測。如給定了房子的面積、地段和房間數(shù),預測房子的價格。(右圖)

          二 房屋面積和臥室數(shù)目與房屋價格的關(guān)系

          • m: 訓練數(shù)據(jù)的大小
          • x: 輸入變量,是向量
          • y: 輸出變量,是實數(shù)
          • (x,y): 一個訓練實例
          • : 第i個訓練實例,i是上標而不是指數(shù)
          • n: 特征向量的個數(shù),例如本實例中為2

          三 模型:線性回歸

          如果假設訓練集中的數(shù)據(jù)使用線性回歸解決的話,假設函數(shù)如下:

          the are the parameters (also called weights)

          如果將 表示為向量: , 表示為向量: ,其中 ,則

          其中, 表示以 為參數(shù)。對于一般問題,公式如下:

          四 策略:最小二乘法

          關(guān)于最小二乘法的詳細介紹請看如下文章:

          4.1 基本思想

          簡單地說,最小二乘(LMS algorithm )的思想就是要使得估計點和觀測點之間的距離平方和達到最小.這里的 二乘 指的是用平方來度量觀測點與估計點的遠近(在古漢語中“平方”稱為“二乘”),“最小”指的是參數(shù)的估計值要保證各個觀測點與估計點的距離的平方和達到最小。

          4.2 最小二乘的作用

          用于得到回歸方程的參數(shù)的一個最優(yōu)估值。在統(tǒng)計學上,該估值可以很好的擬合訓練樣本。并且對于新的輸入樣本,當有了參數(shù)估值后,帶入公式可以得到輸入樣本的輸出。

          4.3 損失函數(shù)(cost function)

          五 算法:梯度下降(gradient descent)

          關(guān)于梯度下降算法詳細介紹請看往期文章:梯度下降法

          使用梯度下降(gradient descent)來求參數(shù),更新規(guī)則為:

          (This update is simultaneously performed for all values of  j = 0, . . . , n.) Here, α is called the learning rate.

          當只有一個訓練樣例時,偏導數(shù)的計算公式如下:

          將上面結(jié)果帶入公式(6)得:

          當然,公式(7) /(8)只是針對一個訓練實例時的更新規(guī)則。The rule is called the LMS update rule (LMS stands for “least mean squares”),and is also known as the Widrow-Hoff learning rule.

          從公式(8)中可以看出每次更新的值是和誤差項(error): 成比例的,當 的值較大時,每次改變的值就較大,反之較小。當 已經(jīng)很小時,說明已經(jīng)達到擬合的要求, 的值就不變了。

          We’d derived the LMS rule for when there was only a single training example. There are two ways to modify this method for a training set of more than one example:

          • 批處理梯度下降
          • 隨機梯度下降

          5.1 批處理梯度下降(batch gradient descent)

          算法:

          可以看出, 的值每更新一次都要遍歷樣本集中的所有樣本,得到新的 ,看是否滿足閾值要求,若滿足,則迭代結(jié)束,根據(jù)此值可得到 ; 否則繼續(xù)迭代。注意到,雖然梯度下降法易受到目標函數(shù)的局部極小值的影響,但是一般的線性規(guī)劃問題只有一個極小值,所以梯度下降法一般可以收斂到全局的最小值。例如, 是二次凸函數(shù),則梯度下降法的示意圖:

          圖中,一圈上表示代價函數(shù)的函數(shù)值相同,類似于地理上的等高線,從外圈開始逐漸迭代,最終收斂到全局最小值。

          上圖中的立體圖為:

          更通俗化的解釋是:

          (1)上圖中圖形其實像一個碗一樣,有一個最低點。找這個最低點的辦法就是,先隨便找一個,然后沿著這個碗下降的方向找,最后就能找到碗的最低點。

          (2)如何找某一點下降的方向?找那一點導數(shù)的反方向。如下圖:

          (3)只要將任意一個點,沿著使導數(shù)的反方向慢慢移動,那么最終會到達使最小的那一點。(注:最小二乘法是個凸函數(shù),所以局部最優(yōu)值也即為全局最優(yōu)值)

          (4) 是自定義的,叫學習速率(learning rate)。

          • 設置太小,經(jīng)過多次才能收斂,導致收斂速度很慢很慢。
          • 設置太大,會導致超過最優(yōu)點發(fā)生震蕩現(xiàn)象,可能永遠無法收斂。

          一般程序里會寫明最多循環(huán)次數(shù)以及收斂條件。若能自動收斂,甚好,若不能,則循環(huán)指定次數(shù)后,強行退出。此時,你需要調(diào)參數(shù)或者重新慎視假設模型!

          梯度下降算法會導致局部極值點的產(chǎn)生,解決這個的方法是隨機進行初始化,尋找多個最優(yōu)點結(jié)果,在這些最優(yōu)點中找到最終結(jié)果。

          批梯度下降算法(batch gradient descent),當數(shù)據(jù)量較大時,每迭代一次就要遍歷全部數(shù)據(jù)一次,這樣會使得運行速度變成龜速。為了解決這個問題,可以使用隨機梯度下降算法

          5.2 隨機梯度下降(stochastic gradient descent)

          算法:

          該方法更新參數(shù)時,不必遍歷整個數(shù)據(jù)集,每次更新只需要一個樣本。該算法可以達到很高的效果,但是會導致遍歷次數(shù)的增多,不能精確收斂到最優(yōu)值等問題。該方法被稱為隨機梯度下降(stochastic gradient descent)或增量梯度下降(incremental gradient descent)。

          注意:需要同步更新權(quán)值

          5.3 批梯度下降 VS 隨機梯度下降

          批處理梯度下降法, 每更新一次,需要用到樣本集中的所有樣本;隨機梯度下降法, 每更新一次,只用到訓練集中的一個訓練樣本,所以一般來說,隨機梯度下降法能更快的使目標函數(shù)達到最小值(新樣本的加入,隨機梯度下降法有可能會使目標函數(shù) 突然變大,迭代過程中在變小。所以 是在全局最小值附近徘徊,但對于實際應用來說,誤差完全能滿足要求。另外,對于批處理梯度下降法,如果樣本集中增加了些許訓練樣本,就要重新開始迭代。由于以上原因,當訓練樣本集較大時,一般應用隨機梯度下降法。

          另,判斷收斂的方法有兩種規(guī)則:

          • 兩次迭代后參數(shù)的變化很小很小
          • 兩次迭代后目標函數(shù)的變化很小很小

          六 正規(guī)方程組(Normal Equation)

          梯度下降算法是求目標函數(shù)最優(yōu)解的一種解法,對于本問題,我們可以直接求出參數(shù)值而不用迭代的方法。這種方法稱為正規(guī)方程法。

          正規(guī)化方程的實質(zhì)即:最小二乘法

          七 梯度下降 VS 正規(guī)方程組

          Gradient Descent Normal Equation
          自定義 不需要定義
          盾環(huán)N次才能得到最佳w值 不需要任何循環(huán)操作
          特征個數(shù)非常大時,也適用 的轉(zhuǎn)陣與逆矩陣的計算量很大,導致特征個數(shù)多時,會很慢
          需要特征縮放(feature scaling) 不需要feature scaling

          八 特征縮放(feature scaling)

          當有多個特征時,若多個特征的表達之的范圍不一樣,會有什么影響和后果?

          比如,繼續(xù)拿預測房價作為例子。現(xiàn)在它的特征增加了,特征1是面積,特征2是房間數(shù),特征3是房子的年齡。很明顯,這三個特征的值的范圍是有很大差異的。

          • 特征1:100到300之間
          • 特征2: 2到5之間
          • 特征3:20到60年之間

          若不做任何處理,則特征1和3對結(jié)果的影響遠大于特征2,而可能扭曲了真實情況下各特征在最終結(jié)果中所應占的權(quán)重比例。

          所以,一般情況下,特征與特征之間的值變化范圍差異過大時,我們用 feature scaling 的手段來規(guī)范化特征值,使每個特征的特征值都處于-1至1之間。

          如果不同變量之間的大小不在一個數(shù)量級,feature scaling 能大大減少尋找最優(yōu)解的時間;

          feature scaling 的方法可自定義,常用的有:

          • rescaling:(X - mean(X))/(max - min)
          • 中值正規(guī)化(mean normalization):(X-mean(X))/ std,  std是標準方差

          九 常見問題

          問題1:固定步長,會不會在接近最小值點時步長過大?

          **答:**不會。因為實際起作用的步長是 步長 * 斜率值,而越接近最小值點時斜率約接近0,步長 * 斜率就會變小。

          問題2:步長大小如何選擇?

          答:步長過小會導致成本函數(shù)收斂速度慢,過大可能會導致成本函數(shù)不收斂。可以用0.1,0.01,0.001這樣間隔10倍或者3倍嘗試,看成本函數(shù)變化曲線。曲線下降太平緩需要加大步長,曲線波動較大、不收斂時需要減小步長。

          問題3:隨機梯度下降能找到使代價函數(shù)最小的值么?

          答:不見得,但是隨著迭代次數(shù)的增加,它會在最優(yōu)解附近晃悠,但是這個值對我們而言就夠用了,機器學習本身就不是100%正確的算法。

          問題4:既然有正規(guī)組方程,可以直接求解,何必使用梯度下降法?

          答:因為正規(guī)方程組涉及矩陣求逆操作,但并不是任何時候這個逆矩陣都存在,比如樣本數(shù)少于特征值數(shù)時即m<n,另外,當樣本數(shù)很大,特征值很多,這是個多么龐大的矩陣,顯然直接求解不可取。


          瀏覽 45
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  免费一级片 | 欧美精品成人一区二区在线观看 | 亚洲视频免费观看H | 美女扒开尿口让男生桶爽视频 | 青娱乐你欧洲 |