精品一区二区三区在线成人,欧美精产国品一二三区,Ji大巴进入女人66h,亚洲春色在线视频

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

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

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

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

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

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

神經(jīng)網(wǎng)絡訓練流程

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

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

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

損失函數(shù)

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

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

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

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

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

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


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


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

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

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

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


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

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

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

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

什么是梯度下降算法? 

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

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

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

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

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

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

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

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

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

如下圖所示:

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

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

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

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


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

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

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

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

學習率和步長

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

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

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

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


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

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

?著作權歸作者所有,如需轉(zhuǎn)載,請注明出處,否則將追究法律責任
收藏
回復
舉報
回復
相關推薦
主站蜘蛛池模板: 巴彦县| 龙井市| 象州县| 横山县| 黑山县| 晴隆县| 贡嘎县| 大荔县| 济南市| 东安县| 敦化市| 南开区| 两当县| 宁国市| 东兰县| 亚东县| 固镇县| 信阳市| 潞西市| 庆元县| 莱西市| 上思县| 十堰市| 江孜县| 金寨县| 北票市| 荔波县| 沽源县| 永新县| 航空| 竹北市| 双流县| 辉南县| 栾城县| 连平县| 普宁市| 广州市| 涪陵区| 攀枝花市| 潍坊市| 巴南区|