1、在求解機器學習演算法的模型引數,即無約束優化問題時,梯度下降(gradient descent)是最常採用的方法之一,另一種常用的方法是最小二乘法。
梯度的方向是函式f增長最快的方向,梯度的反方向是梯度下降最快的方向
對於梯度下降的解釋是:
比如說下山的過程中,我們不知道從**下山可以最快到達山腳下,這個時候求偏導,也就是求出梯度值,沿著梯度的負方向,也就是當前位置最陡峭的方向走一步,然後繼續求當前位置的梯度,一步一步往下走,就可以到達山腳。
演算法過程:
2、梯度下降和其他的下降方法比較:
在機器學習中的無約束優化演算法,除了梯度下降以外,還有前面提到的最小二乘法,此外還有牛頓法和擬牛頓法。
梯度下降法和最小二乘法相比,梯度下降法需要選擇步長,而最小二乘法不需要。梯度下降法是迭代求解,最小二乘法是計算解析解。如果樣本量不算很大,且存在解析解,最小二乘法比起梯度下降法要有優勢,計算速度很快。但是如果樣本量很大,用最小二乘法由於需要求乙個超級大的逆矩陣,這時就很難或者很慢才能求解解析解了,使用迭代的梯度下降法比較有優勢。
梯度下降法和牛頓法/擬牛頓法相比,兩者都是迭代求解,不過梯度下降法是梯度求解,而牛頓法/擬牛頓法是用二階的海森矩陣的逆矩陣或偽逆矩陣求解。相對而言,使用牛頓法/擬牛頓法收斂更快。但是每次迭代的時間比梯度下降法長。
3、梯度下降找到的一定是下降最快的方向嗎?
梯度先將不一定能夠找到全域性最優解,也可能是乙個區域性最優解,如果損失函式是凸函式,梯度下降法得到的解一定是全域性最優解
4、什麼造成了梯度消失的問題?
sigmoid函式f(x)的導數是f(x)f(1-f(x)),因為f(x)的輸出在0-1之間,所以隨著深度增加,從頂端傳過來的倒數每次乘以兩個小於1的數,很快就會變得特別小,,接近於0,造成梯度消失
5、什麼是擬牛頓法:
擬牛頓法的思想是改善牛頓法每次需要求解複雜的海森矩陣逆矩陣的缺陷,使用正定矩陣來近似海森矩陣,從而劍豪了運算的複雜度,擬牛頓法和最速下降法一樣只要求每一步迭代時知道目標函式的梯度,通過測量梯度的變化,構造乙個目標函式的模型使之足以產生超線性收斂,因為它不需要二次求導,所以比牛頓法有效
6、什麼是共軛梯度法
共軛梯度法是介於梯度下降法與牛頓法之間的乙個方法,它僅需利用一階導數資訊,但客服了梯度下降法收斂慢的缺點,又避免了牛頓法需要儲存和計算hessian矩陣求逆的缺點,共軛梯度法不僅是解決線性方程組最有效的演算法之一,在各種優化演算法中,共軛梯度發非常重要,所需的儲存量小,具有逐步的收斂行,穩定性高,而且不需要任何外來引數。
梯度下降 隨機梯度下降 批梯度下降
下面的h x 是要擬合的函式,j 損失函式,theta是引數,要迭代求解的值,theta求解出來了那最終要擬合的函式h 就出來了。其中m是訓練集的記錄條數,j是引數的個數。梯度下降法流程 1 先對 隨機賦值,可以是乙個全零的向量。2 改變 的值,使j 按梯度下降的方向減少。以上式為例 1 對於我們的...
梯度下降 隨機梯度下降和批量梯度下降
對比梯度下降和隨機梯度下降和批量梯度下降 之前看的知識比較零散,沒有乙個系統的解釋說明,看了一些網上的博主的分析,總結了一下自己的理解。例子這裡我參照其他博主的例子做了一些修改,首先是梯度下降 coding utf 8 import random this is a sample to simula...
隨機梯度下降 梯度下降法有什麼用?
機器學習系列文章 1 如何用人工智慧算出美不美?2 如何用人工智慧 雙 11 的交易額?3 如何評價演算法的好壞?4 模型越複雜越好嗎?引言 1 說明演算法的適用範圍,介紹在什麼情況下,可以使用什麼演算法,解決什麼問題 2 多用資料案例進行演示,與日常工作和生活相關聯,以便提高學習的興趣,加深對演算...