日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

损失函数,梯度下降与牛顿法

發布時間:2023/12/19 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 损失函数,梯度下降与牛顿法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

損失函數

我們在進行機器學習任務時,使用的每一個算法都有一個目標函數,算法便是對這個目標函數進行優化,特別是在分類或者回歸任務中,便是使用損失函數(Loss Function)作為其目標函數,又稱為代價函數(Cost Function)。損失函數是用來估量模型的預測值f(x)與真實值Y的不一致程度,它是一個非負實值函數,通常使用L(Y, f(x))來表示,損失函數越小,模型的魯棒性就越好。損失函數是經驗風險函數的核心部分,也是結構風險函數重要組成部分。模型的結構風險函數包括了經驗風險項和正則項,通常可以表示成如下式子:

$J\left ( \mathbf{w} \right )=\sum_{i}L\left ( m_i\left (\mathbf{ w} \right ) \right )+\lambda R\left ( \mathbf{w} \right )$

其中,$L\left ( m_i\left (\mathbf{ w} \right ) \right )$為損失項,$R\left ( \mathbf{w} \right )$.$m_i$的具體形式如下:

$m_i=y^{\left ( i \right )}f_\mathbf{w}\left ( \mathbf{x}^{\left ( i \right )} \right )$

$y^{\left ( i \right )}\in \left \{ -1,\;1 \right \}$

$f_\mathbf{w}\left ( \mathbf{x}^{\left ( i \right )} \right )=\mathbf{w}^T\mathbf{x}^{(i)}$

常見的損失函數:

1.log對數損失函數(邏輯回歸)

$L(Y,P(Y|X)) = -\log P(Y|X)$

損失函數L(Y, P(Y|X))表達的是樣本X在分類Y的情況下,使概率P(Y|X)達到最大值(換言之,就是利用已知的樣本分布,找到最有可能(即最大概率)導致這種分布的參數值;或者說什么樣的參數才能使我們觀測到目前這組數據的概率最大)。這種損失函數的目的是最大化預測值為真實值的概率。

邏輯回歸的P(Y=y|x)表達式如下:

分類器可以表示為:

$p\left ( y\mid \mathbf{x}; \mathbf{w} \right )=\sigma \left ( \mathbf{w}^T\mathbf{x} \right )^y\left ( 1-\sigma \left ( \mathbf{w}^T\mathbf{x} \right ) \right )^{\left ( 1-y \right )}$

為了求解其中的參數w,通常使用極大似然估計的方法,具體的過程如下:

1.似然函數

$L\left ( \mathbf{w} \right )=\prod_{i=1}^{n}\sigma \left ( \mathbf{w}^T\mathbf{x}^{\left ( i \right )} \right )^{y^{\left ( i \right )}}\left ( 1-\sigma \left ( \mathbf{w}^T\mathbf{x}^{\left ( i \right )} \right ) \right )^{\left ( 1-y^{\left ( i \right )} \right )}$

$\sigma \left ( x \right )=\frac{1}{1+exp\left ( -x \right )}$

2.取log

$logL\left ( \mathbf{w} \right )=\sum_{i=1}^{n}y^{\left ( i \right )}log\left ( \sigma \left ( \mathbf{w}^T\mathbf{x}^{\left ( i \right )} \right ) \right )+\left ( 1-y^{\left ( i \right )} \right )log\left ( 1-\sigma \left ( \mathbf{w}^T\mathbf{x}^{\left ( i \right )} \right )\right )$

3.需要求解的是使得log似然取得最大值的w。將其改變為最小值

$\underset{\mathbf{w}}{min}\sum_{i=1}^{n}log\left \{ 1+exp\left ( -y^{\left ( i \right )}\mathbf{w}^T\mathbf{x}^{\left ( i \right )} \right ) \right \}$

邏輯回歸最后得到的目標式(不是最小二乘):

$J(\theta) = - \frac{1}{m} \sum_{i=1}^m \left [ y^{(i)} \log h_{\theta}(x^{(i)}) + (1-y^{(i)}) \log(1-h_{\theta}(x^{(i)})) \right ]$

?

2.平方損失函數(最小二乘法)

$L(Y, f(X)) = (Y - f(X))^2$

當樣本個數為n時,此時的損失函數變為:

Y-f(X)表示的是殘差,整個式子表示的是殘差的平方和.

而在實際應用中,通常會使用均方差(MSE)作為一項衡量指標:

$MSE = \frac{1}{n} \sum_{i=1} ^{n} (\tilde{Y_i} - Y_i )^2$

最小二乘法是線性回歸的一種,將問題轉化成了一個凸優化問題。在線性回歸中,它假設樣本和噪聲都服從高斯分布.

基本原則是:最優擬合直線應該是使各點到回歸直線的距離和最小的直線,即平方和最小。換言之,OLS是基于距離的,而這個距離就是我們用的最多的歐幾里得距離。

?3.指數損失函數(Adaboost)

是0/1損失的一種近似

?

在Adaboost中,經過m此迭代之后,可以得到fm(x):

Adaboost每次迭代時的目的是為了找到最小化下列式子時的參數α 和G:

而指數損失函數(exp-loss)的標準形式如下:

Adaboost的目標式子就是指數損失,在給定n個樣本的情況下,Adaboost的損失函數為:

4.Hinge損失函數(SVM:合頁損失)

Hinge損失是0-1損失函數的一種代理函數,Hinge損失的具體形式如下:

$max\left ( 0,1-m \right )$

在線性支持向量機中,最優化問題可以等價于下列式子:

下面來對式子做個變形,令:

于是,原式就變成了:

如若取λ=1/2C,式子就可以表示成:

可以看出,該式子與下式非常相似:

前半部分中的l就是hinge損失函數,而后面相當于L2正則項。

5.0-1損失函數

6.絕對值損失函數

?

梯度下降法(Gradient descent)

一個一階最優化算法,通常也稱為最速下降法。 分別有梯度下降法,批梯度下降法,增量梯度下降。本質上,都是偏導數,步長/最佳學習率,更新,收斂的問題。

目的:要使用梯度下降法找到一個函數的局部極小值,(在凸函數中局部最小解就是全局最小解)

算法流程:

1.初始化θ(隨機初始化)

2.迭代,新的θ能夠使得J(θ)更小

3.如果J(θ)無法繼續減少或者達到循環上界次數,退出

  α:學習率、步長

?

?

過程:

1.xk=a,沿著負梯度方向,移動到xk+1=b,有:

2.從x0為出發點,每次沿著當前函數梯度反方向移動一定距離αk,得到序列:

?

3.對應的各點函數值序列之間的關系為:

?

4.當n 達到一定值時,函數f(x)收斂到局部最小值:

?

?

學習率:

1.固定學習率

2.線性搜索

a.二分線性搜索

b.回溯線性搜索

?

牛頓法(改變搜索方向)

若f(x)二階導連續,將f(x)在xk處Taylor展開:

牛頓法使用函數f(x)的泰勒級數的前面幾項來尋找方程f(x)=0的根。因為函數 二階導數反應了函數的凸凹性;二階導越大,一階導的變化越大。用方向導數代替一階導,用Hessian矩陣代替二階導:

?

過程:

1.首先,選擇一個接近函數f(x)零點的x0,計算相應的f(x0)和切線斜率f'(x0)(這里f'表示函數f的導數)。

2.然后我們計算穿過點 (x0,f(x0))并且斜率為 f'(x0)的直線和x軸的交點的x坐標,也就是求如下方程的解:

3.我們將新求得的點的x坐標命名為x1,通常x1會比x0更接近方程f(x)=0的解。因此我們現在可以利用x1開始下一輪迭代。迭代公式可化簡為如下所示:

圖演示:

藍線表示方程f而紅線表示切線. 可以看出xn+1比xn更靠近f所要求的根x.

牛頓法特點:

1.經典牛頓法雖然具有二次收斂性,但是要求初始點需要盡量靠近極小點,否則有可能不收斂。

2.計算過程中需要計算目標函數的二階偏導數,難度較大。

3.目標函數的Hessian矩陣無法保持正定,會導致算法

4.產生的方向不能保證是f在xk處的下降方向,從而令牛頓法失效.

5.如果Hessian矩陣奇異,牛頓方向可能根本是不存在的。

轉載于:https://www.cnblogs.com/xmeo/p/6655912.html

總結

以上是生活随笔為你收集整理的损失函数,梯度下降与牛顿法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。