偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

神經(jīng)網(wǎng)絡(luò)之損失函數(shù)與優(yōu)化函數(shù)——梯度下降 原創(chuàng)

發(fā)布于 2025-1-17 14:08
瀏覽
0收藏

“ 損失函數(shù)和梯度下降是神經(jīng)網(wǎng)絡(luò)中僅次于神經(jīng)網(wǎng)絡(luò)模型本身的兩個函數(shù),甚至神經(jīng)網(wǎng)絡(luò)模型的性能就是由其所決定的 ”

今天我們來介紹一下神經(jīng)網(wǎng)絡(luò)模型中非常重要的兩個知識點,損失函數(shù)與優(yōu)化函數(shù)。

了解過神經(jīng)網(wǎng)絡(luò)模型基礎(chǔ)運作流程的應(yīng)該都知道這兩個重要函數(shù),可以說一個神經(jīng)網(wǎng)絡(luò)設(shè)計的怎么樣是一方面,但怎么讓神經(jīng)網(wǎng)絡(luò)表現(xiàn)更好,就看這兩個函數(shù)的質(zhì)量了。

損失函數(shù)與優(yōu)化函數(shù)??

神經(jīng)網(wǎng)絡(luò)訓(xùn)練流程

在現(xiàn)有的神經(jīng)網(wǎng)絡(luò)體系中,神經(jīng)網(wǎng)絡(luò)的基本運作模式是,根據(jù)需求設(shè)計完成神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)之后;輸入待訓(xùn)練數(shù)據(jù),然后神經(jīng)網(wǎng)絡(luò)就可以通過損失函數(shù)計算模型的擬合誤差,然后通過反向傳播的方式使用優(yōu)化函數(shù)來優(yōu)化模型參數(shù),最終達到最優(yōu)解——可能只是理論最優(yōu)解不是實際最優(yōu)解。???

基本流程如下圖所示:??

神經(jīng)網(wǎng)絡(luò)之損失函數(shù)與優(yōu)化函數(shù)——梯度下降-AI.x社區(qū)

損失函數(shù)

思考一個問題,損失函數(shù)的作用是什么?以及它基本理論是什么樣的? ??????????

從字面來理解,損失函數(shù)就是用來計算損失的;但它具體的原理是什么呢? ????????????

在神經(jīng)網(wǎng)絡(luò)中,數(shù)據(jù)的基本格式是向量;而向量是有大小和方向的量,因此就可以用向量來表示數(shù)據(jù)之間的關(guān)系——也就是相似度。??????

以監(jiān)督學(xué)習(xí)圖像處理為例,給你一堆貓或狗的照片,然后把貓和狗單獨放到不同的目錄下,也就是貓一個目錄,狗一個目錄;這時把貓和狗以及他們的標簽——也就是目錄名稱,轉(zhuǎn)化為向量結(jié)構(gòu)之后;表示貓的向量和表示狗的向量會占據(jù)不同的向量空間,而表示不同貓的向量會離的近一點;同樣表示狗的向量也會離的近一點,這種表示方式就叫做歐式距離。????????????????????????

以生活中的分類問題舉例,比如老師在講臺上寫兩個標簽,一個男同學(xué),一個女同學(xué);然后說男同學(xué)站男同學(xué)標簽下,女同學(xué)站女同學(xué)標簽下;???????????????????????????????????????????

?監(jiān)督學(xué)習(xí)也是同樣的道理,貓狗的標簽(目錄)就是告訴神經(jīng)網(wǎng)絡(luò)模型,這個是貓,那個是狗;然后讓神經(jīng)網(wǎng)絡(luò)模型自己去根據(jù)特征讓表示貓的向量和表示狗的向量,盡量靠近貓標簽和狗標簽。?


無監(jiān)督學(xué)習(xí)的基礎(chǔ)理論和監(jiān)督學(xué)習(xí)基本類似,只不過不會告訴神經(jīng)網(wǎng)絡(luò)貓和狗的標簽;而是讓神經(jīng)網(wǎng)絡(luò)自己去根據(jù)貓狗的特征去區(qū)分,雖然區(qū)分的結(jié)果可能是錯的。


但想法雖然很美好,現(xiàn)實卻很殘酷;未經(jīng)過訓(xùn)練的神經(jīng)網(wǎng)絡(luò)模型就像幼兒園的小孩子一樣,雖然你說了,他也聽了,但他做的都是錯的;但怎么衡量這個錯誤的大小呢 ???????????

這就是損失函數(shù)的作用,通過計算神經(jīng)網(wǎng)絡(luò)給的貓狗向量與真實標簽之間的誤差,來告訴神經(jīng)網(wǎng)絡(luò)你這個搞錯了,再想想辦法;然后神經(jīng)網(wǎng)絡(luò)就會進行新一輪的計算,只不過在從新訓(xùn)練之前會先進行參數(shù)調(diào)優(yōu),也就是優(yōu)化函數(shù)。???

數(shù)學(xué)模型如下圖所示:

神經(jīng)網(wǎng)絡(luò)之損失函數(shù)與優(yōu)化函數(shù)——梯度下降-AI.x社區(qū)


優(yōu)化函數(shù)

優(yōu)化函數(shù)的作用就是告訴神經(jīng)網(wǎng)絡(luò)模型,你剛剛算的誤差太大了,現(xiàn)在去調(diào)整一下你的參數(shù)然后從新計算。

但是這里就有一個問題,神經(jīng)網(wǎng)絡(luò)怎么知道自己應(yīng)該怎么調(diào)優(yōu)?總要有一個具體的解決方法或者說算法吧。??????????

這時優(yōu)化函數(shù)的經(jīng)典實現(xiàn)——梯度下降的作用就體現(xiàn)了;實現(xiàn)優(yōu)化函數(shù)的方式有多種,但使用最多影響力最大的就是梯度下降算法。?

什么是梯度下降算法? 

想明白什么是梯度下降,首先你要明白什么是梯度;假如某一天你和朋友等山的時候遇到意外傷害,這時你的所有通訊設(shè)施都無法使用;必須有一個人下山去通知救援隊來救你的隊友。這時你需要找一個在保證安全的前提下,能最快下山的路徑?這時你應(yīng)該怎么辦?

ok, 先思考一下下山有哪些途徑? ?

1. 找一條人工修好的山路下山,一般是上來的路,也就是原路返回

2. 找一些山間小道,這條路可能會比較難走,但速度會比走修好的山路更快

3. 到懸崖邊,直接跳下去,這是下山最快的一種方式,但結(jié)果可能就是直接死亡;這時下山就沒了意義。?????

因此,一般情況下大家應(yīng)該會選擇第二種方式下山;因為它能在保證盡量安全的前提下,以最快的速度下山。???????

但是同樣,這樣的山路會比第一種的山路要更難走,因為它坡度更大,更陡峭;其實,我們就可以把這個山的坡度理解成梯度。??????????????

簡單來說,所謂的梯度就是衡量某種事物的變化率,但畢竟梯度只是我們想出來的一個東西;我們需要把梯度構(gòu)建成一個數(shù)學(xué)模型,這樣我們才能解決它;

而從數(shù)學(xué)的角度來說梯度其實就是導(dǎo)數(shù)問題。導(dǎo)數(shù)就是用來衡量函數(shù)在某一個點附近的變化率;因此,所謂的梯度問題就是導(dǎo)數(shù)問題。只不過真實的神經(jīng)網(wǎng)絡(luò)模型中,梯度下降會更復(fù)雜,比如與向量相結(jié)合,以及偏導(dǎo)數(shù),方向?qū)?shù)等等。????????????????

如下圖所示:

神經(jīng)網(wǎng)絡(luò)之損失函數(shù)與優(yōu)化函數(shù)——梯度下降-AI.x社區(qū)

但為什么梯度下降就可以優(yōu)化損失函數(shù)計算的誤差?或者說為什么導(dǎo)數(shù)就可以解決損失函數(shù)的誤差?

之所以導(dǎo)數(shù)能解決損失函數(shù)的誤差問題,主要原因就在于,數(shù)學(xué)追求的一種完美曲線(直線),雖然這個曲線不是一般意義上的水平直線,但它依然是一個連續(xù)曲線。???????????????????

而在數(shù)學(xué)中,通過導(dǎo)數(shù)或者多階導(dǎo)數(shù)就可以求出損失函數(shù)在最小值時,自變量x的取值,也就是極值問題。如下圖所示,關(guān)于導(dǎo)數(shù)的求值問題。??????????????????????


神經(jīng)網(wǎng)絡(luò)之損失函數(shù)與優(yōu)化函數(shù)——梯度下降-AI.x社區(qū)

而通過這種方式,損失函數(shù)就可以找到其極值點,雖然可能并不是最小值或最大值,原因就在于不同的函數(shù)在一定的范圍內(nèi)可能存在多個極值點;這也是為什么前面說,神經(jīng)網(wǎng)絡(luò)最終得到的最優(yōu)解只是理論上的最優(yōu)解,可能并不是實際上的最優(yōu)解。??????

那么現(xiàn)在應(yīng)該明白為什么優(yōu)化函數(shù)使用梯度下降算法了吧????????????

原因就在于優(yōu)化函數(shù)會讓損失函數(shù)在極值點附近不斷的去測試,然后找到極值;因為,損失函數(shù)不能像我們?nèi)祟愐粯樱苯赢媯€圖看一下極值點在哪里,因此損失函數(shù)并不知道其極值點在哪里,只能不斷的去計算才能獲得結(jié)果。????????

學(xué)習(xí)率和步長

而關(guān)于梯度下降的問題,神經(jīng)網(wǎng)絡(luò)還有兩個超參數(shù),學(xué)習(xí)率和步長;步長理解比較簡單;以上圖導(dǎo)數(shù)求極值為例,如果損失函數(shù)想求最小值,但它的起始點是a點,但它的最小值點是b點;如果要在a和b之間一個點一個點的實,那么效率也太低了。因此步長就可以調(diào)大一點,第一次在a點,第二次就可以跳到第一個極小值點附近,也就是a和o點之間的最低點;第三次到y(tǒng)所在的最高點,第四次就可以到b所在的最小值點。???????????????????????????????????????????????????

但從上圖也可以看出,如果按照這種步長,損失函數(shù)會錯過兩個極大值和一個極小值點;這就可能會產(chǎn)生梯度消失或者梯度爆炸的問題。步長太大可能會導(dǎo)致梯度消失,而步長太小又可能會導(dǎo)致收斂過慢,訓(xùn)練時間和成本大大增加。?????????????????

而學(xué)習(xí)率是直接影響步長的參數(shù),很多時候有些人也會把學(xué)習(xí)率和步長當作是一個東西。??????

這也是為什么在模型訓(xùn)練中,需要根據(jù)不同的模型和場景設(shè)置不同的超參數(shù)的原因。


本文轉(zhuǎn)載自公眾號AI探索時代 作者:DFires

原文鏈接:??https://mp.weixin.qq.com/s/TRfnEEKa-zkzympqE7ioPA??

?著作權(quán)歸作者所有,如需轉(zhuǎn)載,請注明出處,否則將追究法律責(zé)任
收藏
回復(fù)
舉報
回復(fù)
相關(guān)推薦