1. 程式人生 > >梯度下降(導數、方向導數 and 梯度)

梯度下降(導數、方向導數 and 梯度)

梯度下降(導數、方向導數 and 梯度

  • 引入

    在機器學習與深度學習中,對損失函式最小化時經常使用的演算法就是梯度下降。當然還有很多優化演算法,本文先對梯度下降與反向傳播進行介紹。

  • 斜率、導數 and 梯度

    在介紹梯度下降之前,首先來明確梯度的概念,以及它與斜率、導數之間的區別。

    1. 斜率、導數

      斜率我們從小學就開始接觸,對於一元方程 y = k x + b

      y=kx+b 來講,斜率就是方程影象與 x 軸夾角的正切值,也等於導數值,且各點導數值相等。

      k = tan

      θ = y 1 y 2 x 1 x 2 = y x k=\tanθ=\frac{y_1-y_2}{x_1-x_2}=\frac{\triangle y}{\triangle x}

      導數是微積分中的重要基礎概念,它體現了函式影象在各點變化的快慢程度,也就是在各點切線的斜率(實際上是在某點附近的斜率近似)。

      f ( x ) = x 0 lim f ( x + x ) f ( x ) x = x 0 lim y x f'(x)=\mathop{}_{\triangle x→ 0}^{\lim}\frac{f(x+\triangle x)-f(x)}{\triangle x}=\mathop{}_{\triangle x→ 0}^{\lim}\frac{\triangle y}{\triangle x}

      斜率與導數都是有方向的,當大於 0 時,表示函式值沿 x 軸正方向是增加的;當大於 0 時,表示函式值沿 x 軸正方向是減小的。

    2. 偏導數

      偏導數與導數的本質是一致的,都是當自變數的變化量趨於 0 時,函式值的變化量與自變數變化量比值的極限。直觀地說,偏導數也就是函式在某一點上沿 對應座標軸正方向 的的變化率。區別在於導數面向的是一元函式,偏導數面向的是多元函式。

      假設有函式 f ( x 1 , x 2 ) f(x_1,x_2) ,則其對於 x 1 , x 2 x_1,x_2 偏導數為:

      x 1 f ( x 1 , x 2 ) = x 0 lim f ( x 1 + x x 2 ) x \frac{\partial}{\partial x_1}f(x_1,x_2)=\mathop{}_{\triangle x→ 0}^{\lim}\frac{f(x_1+\triangle x,x_2)}{\triangle x}

      x x f ( x 1 , x 2 ) = x 0 lim f ( x 1 x 2 + x ) x \frac{\partial}{\partial x_x}f(x_1,x_2)=\mathop{}_{\triangle x→ 0}^{\lim}\frac{f(x_1,x_2+\triangle x)}{\triangle x}

    3. 方向導數

      偏導數是關於各座標軸的導數,而對於多元函式上的一個點來講,它可以有無數個偏導數,並不是只有沿著座標軸的有限個方向。就像一個人站在一個球場的中心,除了沿著球場的寬與長的兩個方向可以走以外,周身 360° 都是可以面衝的方向,那麼對於這無數個方向來講的導數,就稱為方向導數。
      方向導數
      (中間紅色點為出發點,藍色為各種可以選擇的方向。向上與向右的為沿著座標軸 x,y 的方向。)

      如果說偏導數是函式在各座標軸方向上的導數,那麼方向導數就是函式在任意方向上的導數,是所有偏導數的集合(例如:沿 x 方向走 2 步,y 方向走 5 步,此時最終走的方向就是由 (0,0)點 指向 (2, 5)的向量做表示的方向,可以被各偏導數的線性線性表示)。

      具體的,方向導數的表示式為: D f ( x 1 , x 2 ) = f ( x 1 , x 2 ) x 1 cos θ + f ( x 1 , x 2 ) x 2 sin θ D_{f(x_1,x_2)}=\frac{\partial f(x_1,x_2)}{x_1}\cosθ+\frac{\partial f(x_1,x_2)}{x_2}\sinθ

    4. 梯度

      有了以上的鋪墊,那麼梯度就很好理解了。

      \bullet 梯度的提出只為回答一個問題: 函式在變數空間的某一點處,沿著哪一個方向有最大的變化率?

      \bullet 梯度定義如為:函式在某一點的梯度是這樣一個 向量,它的方向是在所有方向導數中,最大的方向導數的方向,它的模為方向導數的最大值。

      \bullet 也可以這麼理解:梯度即函式在某一點最大的方向導數,沿梯度方向,函式具有最大的變化率。

      那麼為什麼梯度是方向導數中最大的呢?

      因為 D f ( x 1 , x 2 ) = f ( x 1 , x 2 ) x 1 cos θ + f ( x 1 , x 2 ) x 2 sin θ D_{f(x_1,x_2)}=\frac{\partial f(x_1,x_2)}{x_1}\cosθ+\frac{\partial f(x_1,x_2)}{x_2}\sinθ

      相關推薦

      方向梯度梯度下降

      原作者:WangBo_NLPR 原文:https://blog.csdn.net/walilk/article/details/50978864 原作者:Eric_LH 原文:https://blog.csdn.net/eric_lh/article/details/789944

      梯度下降方向 and 梯度

      梯度下降(導數、方向導數 and 梯度 引入 斜率、導數 and 梯度 斜率、導數 偏導數 方向導數 梯度 梯度下降 反向傳播

      直觀理解梯度,以及偏方向和法向量等

      目錄 寫在前面 偏導數 方向導數 梯度 等高線圖中的梯度 隱函式的梯度 小結 參考 部落格:blog.shinel

      什麼是全方向

      全導數是多元函式中的一個概念。 我們知道一元函式的情況下,導數就是函式的變化率,從幾何意義上看就是: 但是在多元的情況下比一元的複雜,下面我用二元函式來舉例子(三元我也畫不出來),比如這樣一個曲面上的一點 : 在曲面上可以做無數條過 點的曲線(圖上隨便畫了三根)

      微分全微分方向梯度的定義與關係

      學習到機器學習線性迴歸和邏輯迴歸時遇到了梯度下降演算法,然後順著扯出了一堆高數的相關概念理論:導數、偏導數、全微分、方向導數、梯度,重新回顧它們之間的一些關係,從網上和教材中摘錄相關知識點。 通過函式的極限定義出導數(以一元函式為例) 函式f(x)在點x0可

      ,全方向,偏微分,全微分,梯度

      學習到機器學習線性迴歸和邏輯迴歸時遇到了梯度下降演算法,然後順著扯出了一堆高數的相關概念理論:導數、偏導數、全微分、方向導數、梯度,重新回顧它們之間的一些關係,從網上和教材中摘錄相關知識點。 這段是我的簡單總結,如果看不懂沒關係,先看下面的定義 通過函式的極限定義出導數

      ,偏方向梯度的定義與聯絡

      一、導數(derivative) 導數,是我們最早接觸的一元函式中定義的,可以在 xy 平面直角座標系中方便的觀察。當 Δx→0時,P0處的導數就是因變數y在x0處的變化率,反映因變數隨自變數變化的快慢;從幾何意義來講,函式在一點的導數值就是過這一點切線的斜率。

      方向梯度

      http://blog.cvmarcher.com/posts/2015/06/27/gradient-descent 1。方向導數的最大值就是梯度。 2.梯度下降法也是從這裡來,當我們在求解的時候沒辦法直接得到最優解,只能不斷逼近最優解,而逼近的時候又想盡可能的快,

      【微積分】,偏方向梯度

      導數(derivative) 導數,是我們最早接觸的一元函式中定義的,可以在 xy 平面直角座標系中方便的觀察。當 Δx→0Δx→0 時,P0P0 處的導數就是該點的切線的斜率。 偏導數(partial derivative) 偏導數

      梯度

      text ima col 也有 vat ces love 等價 都在 一、導數(derivative) 導數,是我們最早接觸的一元函數中定義的,可以在 xy 平面直角坐標系中方便的觀察。當 Δx→0時,P0處的導數就是因變量y在x0處的變化率

      單鏈表包含反轉循環鏈表思路

      鏈表 循環鏈表 鏈表反轉 單鏈表 數據結構 生活永遠是自己的,美哉美哉。實習告一段落,大學也算徹底結束,就像毛不易唱的二零三,給我想要的自由。最近學習匯編及數據結構(C語言),鏈表也總算告一段落,本篇是單鏈表的學習代碼筆記,本來也想想每一步都做圖,分享知識,讓更多的朋友去學習,但是本人局限

      ADO.Net中DataSet的應用知識點描述思維示例程式碼效果截圖

      一.知識點描述 ADO.NET是Microsoft公司推出的.NET框架中用於資料訪問的元件,ADO. NET是.Net FrameWork SDK 中用以操作資料庫的類庫的總稱。而DataSet 類則是ADO. NET中最核心的成員之一,也是各種開發基於.Net平臺程式語言開發資料庫應用程式最常接觸的類。

      java-ArrayList中去重復字符串或重復對象LinkedList集合泛型增強for靜態可變參asList()方法集合嵌套

      nds 李冰冰 port 範冰冰 arrays strong sta urn 方法名 1、去除ArrayList中重復字符串元素方式  * A:案例演示     * 需求:ArrayList去除集合中字符串的重復值(字符串的內容相同)     * 思路:創建新集合方式

      ADO.Net中DataTable的應用知識點描述思維示例程式碼效果截圖

      SqlConnection sqlConnection = new SqlConnection(); //宣告並例項化SQL連線; sqlConnection.ConnectionString

      機器學習筆記 1 LMS和梯度下降梯度下降 20170617

      temp eas 理解 import 樣本 alt mes show 超過 # 概念 LMS(least mean square):(最小均方法)通過最小化均方誤差來求最佳參數的方法。 GD(gradient descent) : (梯度下降法)一種參數更新法則。可以作為L

      MySQL:日期函時間函處理

      減少 expr lec datetime style pan 獲取 相減 sel date_add() 增加MYSQL 獲取當前時間加上一個月 update user set leverstart=now(),leverover=date_add(NOW(), int

      C語言中 有符號無符號整數溢出

      alt 原因 () tar sig 重新 detail copyto 想象 [cpp] view plain copy print? #include<stdio.h> void main() { int l=-1; unsigned

      python:組/列表remove()函append()函sort()函reverse()函

      process %s .py 3*3 IT bsp 長度 num list 排序: 1:整理順序 #冒泡 lista = [5,7,11,19,99,63,3,9,1] list = [] while lista != []: number = 0 for

      Python Day 15 遞歸函二分查找算法

      AS 開頭 nbsp start val set 想象 來看 details Python Day 15 (遞歸函數、二分查找算法) 遞歸函數   在一個函數裏在調用這個函數本身。   遞歸的默認最大深度:998   修改默認最大深度 import sys print(s

      _全局變量聲明可變參關鍵字參

      默認參數 字典 關鍵字參數 沒有 width .com 直接 eight glob 1. global聲明全局變量 #聲明name這個變量為全局變量,只是寫在函數裏面 #寫代碼時,盡量不要用全局變量,會一直占用內存。 ------->{‘name‘: