1. 程式人生 > >2.4 梯度下降算法(非常重要,重點理解)

2.4 梯度下降算法(非常重要,重點理解)

eve 最快 style 梯度下降 更新 叠代 img 平均值 圖片

  1. 已經知道了logistic回歸模型,
  2. 也知道了損失函數
    1. 損失函數是衡量單一訓練樣例的效果,
  3. 還知道了成本函數
    1. 成本函數用於衡量參數w和b的效果在全部訓練集上面的衡量
  4. 下面開始討論如何使用梯度下降法來訓練或學習訓練集上的參數w和b

  1. 回顧一下:
    1. 技術分享
      1. 這裏是最熟悉的logistic回歸算法
      2. 第二行是成本函數J,成本函數是參數w和b的函數,他被定義為平均值,即1/m的損失函數之和
      3. 損失函數可以用來衡量你的算法的效果,
        1. 每一個訓練樣例都會輸出y^(i),把它和基本真值標簽y(i)進行比較,等號右邊展開完全的公式,
      4. 成本函數衡量了參數w和b在訓練集上的效果,
        1. 要習得合適的參數w和b,很自然的就想到我們想找到使得成本函數盡可能小的w和b


  1. 下面開始來看看梯度下降法
    1. 技術分享
    2. 在這個圖中,橫軸表示參數w和b,實際中,w可能是高緯度的,但是為了繪圖方便,這裏讓w是一個實數,b也是一個實數,成本函數J(w,b)是在水平軸w和b上的曲面,曲面的高度表示了J(w,b)在某一點的值,
    3. 我們想要做的就是找到這樣的w和b使得其對應的成本函數j值是最小值,
    4. 可以看到成本函數J是一個凸函數,
    5. 因此我們的成本函數之所以是凸函數,凸函數這性質是我們使用logistic回歸的這個特定的成本函數J的重要原因之一,
    6. 所以為了找到更好的參數值,我們要做的就是利用某個初始值,初始化w和b,用那個小紅點表示,
      1. 對於logistic回歸而言,幾乎是對任意的初始化方法都有效,通常使用0來進行初始化,但是對於logistic回歸而言,我們通常不那麽做,但是因為函數是凸的,無論在哪裏進行初始化,都應該到達同一點,或者是大致相同的點,
    7. 梯度下降所做的就是從初始點開始,朝著最陡的下坡方向走一步,在梯度下降一步後,很有可能停一步,因為他在尋找梯度下降最快的方向,最後可能會找到最終的最優解,
    8. 技術分享
      1. 這張圖片闡述了梯度下降法
      2. 下面開始考慮更新w,讓w為技術分享
        1. 在算法收斂之前,將會重復這樣做,
        2. 這裏的阿爾法表示學習率,學習率可以控制每次一次叠代,或者梯度下降法中的步長,之後將會討論如何選擇學習率阿爾法,
        3. 其次,這裏面有一個導數,這個就是對參數w的更新或者變化量,
          1. 當我們開始編碼,來實現梯度下降,我們會使用代碼中變量名的約定dw表示導數技術分享,我們使用dw作為導數的變量名,
    9. 現在,我們確保梯度下降法更新是有用的,
      1. 技術分享
        1. 在橫軸上面的一點w和其對應的成本函數J(W)在曲線上的這一點,
        2. 記住導數的定義是函數在這一點的斜率,而函數的斜率是高除以寬,在這個點是一個相切於J(w)的小三角形,



來自為知筆記(Wiz)

2.4 梯度下降算法(非常重要,重點理解)