Lecture 3: Loss functions and Optimization
1. Loss Function
1.1 回顧
? ? 我們?cè)偕弦淮握f到墨礁,我們希望找到一個(gè)權(quán)重使得我們的識(shí)別效果最好,怎么算好呢莫换,我們需要一個(gè)評(píng)估標(biāo)準(zhǔn)。這就是Loss Function(譯名:損失函數(shù)骤铃,代價(jià)函數(shù)拉岁,目標(biāo)函數(shù))
1.2 多類支持向量機(jī)損失 Multiclass Support Vector Machine Loss
? ? 我們首先給出這個(gè)函數(shù)的形式:假設(shè)我們有很多圖片來做訓(xùn)練,那么惰爬,其中第張圖片包含有像素?cái)?shù)據(jù)和代表正確分類的標(biāo)簽喊暖。我們令那么就是預(yù)測(cè)出的第j項(xiàng)的得分。對(duì)這一個(gè)訓(xùn)練數(shù)據(jù)的Cost Function定義為撕瞧。
舉一個(gè)比較具體的例子陵叽。假設(shè)我們經(jīng)過計(jì)算,得出三個(gè)類別的評(píng)分分別為那么丛版,并且第一個(gè)標(biāo)簽為正確分類巩掺,且超參數(shù)那么。
另外這里需要注意其實(shí)是規(guī)定的一個(gè)邊界值页畦,這個(gè)比如說就是說正確分類和錯(cuò)誤分類評(píng)分差值達(dá)到多少時(shí)胖替,本函數(shù)開始敏感,其結(jié)果就是其實(shí)設(shè)置成為多少不是很重要,這里的差值會(huì)使得權(quán)重向一個(gè)整倍數(shù)方向移動(dòng)刊殉,通常就可以了。
如果訓(xùn)練集有很多數(shù)據(jù)州胳,那么整體結(jié)果是:
(此處有另一種標(biāo)記方式记焊,在吳恩達(dá)的那個(gè)五部分的課程里有用到,將單個(gè)訓(xùn)練樣本的損失稱作Loss Function栓撞,將一次訓(xùn)練的多個(gè)數(shù)據(jù)的損失稱為Cost Function遍膜,但表達(dá)的意思是一樣的,……起碼我理解的是一樣的瓤湘,本文均使用Loss Function)
幾個(gè)小問題
- Q1:我們?cè)谏厦娴氖阶永镉?img class="math-inline" src="https://math.jianshu.com/math?formula=j%5Cnot%3Dy" alt="j\not=y" mathimg="1">如果等了會(huì)怎么樣瓢颅?
- Q2:我們不求和但是使用平均值會(huì)怎么樣?
- Q3:我們使用怎么樣
- Q4:這個(gè)損失函數(shù)的最大值和最小值是什么弛说?
- Q5:很多時(shí)候權(quán)重會(huì)被初始化為比較小的值挽懦,那一開始損失函數(shù)會(huì)是怎么樣的?
1.3 正則化 Regularization
? ? 有些權(quán)重是我們不喜歡的木人,比如我們令,,那么我們會(huì)得到但是信柿,顯然前者只利用了數(shù)據(jù)的很少一部分,這就會(huì)使得在面對(duì)未知數(shù)據(jù)時(shí)前者更可能會(huì)出錯(cuò)醒第,所以渔嚷,在得到同樣準(zhǔn)確度時(shí),我們更希望是后者稠曼。因此形病,我們?cè)贚oss Funnction中添加一項(xiàng)正則化損失,以體現(xiàn)我們的意愿霞幅。
- L2 regularization:
- L1 regularization:
因此漠吻,整理后的Loss Function 為
其中為超參數(shù)
1.4 Softmax 分類器(Multinomial Logistic Regression)
? ? 這個(gè)應(yīng)該是跟概率論有比較大的關(guān)系的,但是我現(xiàn)在還沒學(xué)到(順便苦逼一句蝗岖,概率論選到了英文授課)侥猩。所以我們先把式子擺出來然后再實(shí)際計(jì)算看下吧。
跟上面一樣為預(yù)測(cè)結(jié)果的索引抵赢,另外欺劳,其中稱作Softmax函數(shù)。
下面是一個(gè)具體的計(jì)算例子铅鲤,假設(shè)我們有一個(gè)那么我們首先取指數(shù)划提,這一步是使得所有的均為正數(shù),那么然后我們?cè)诎阉鼈兌嫁D(zhuǎn)換到當(dāng)中其實(shí)是開區(qū)間邢享,但是考慮到精度鹏往,就閉了。怎么轉(zhuǎn)換骇塘,就除以和就行了伊履,本例中因此轉(zhuǎn)換之后的數(shù)值為韩容,最后
? ? 這里的中間步驟可以理解為分類概率,即模型認(rèn)為這張圖片是類別1,2,3的概率分別是13%唐瀑,84%和0%群凶。
小問題:
- Q6:這個(gè)損失函數(shù)最大值最小值是什么?
- Q7:很多時(shí)候權(quán)重會(huì)被初始化為比較小的值哄辣,那一開始損失函數(shù)會(huì)是怎么樣的请梢?
1.5 Softmax和多類SVM的對(duì)比
? ? 我們使用作為例子,其中假設(shè)類別一是正確分類
我們注意到力穗,當(dāng)我們改變另外兩個(gè)類別的數(shù)值的時(shí)候比如改變成毅弧,多類SVM損失函數(shù)的數(shù)值其實(shí)沒有變化,但是Softmax變化了
為什么当窗,就是當(dāng)初那個(gè)控制著邊界條件够坐,多類SVM只對(duì)邊界值敏感,但是對(duì)差距比較大的數(shù)值不敏感崖面,但是顯然咆霜,Softmax仍然會(huì)受到影響,雖然比較少嘶朱,但是我們有一種感性的認(rèn)知蛾坯,Softmax分類器是考慮了全部結(jié)果的,只有預(yù)測(cè)結(jié)果為這種結(jié)果是Softmax才會(huì)為0疏遏,但是多類SVM只要目標(biāo)標(biāo)簽分?jǐn)?shù)比其他的大1脉课,就會(huì)為0.
1.6 上面那幾個(gè)小問題的答案
- Q1:會(huì)在最后結(jié)果上整體加一。
- Q2:其實(shí)沒什么财异,只是除了一個(gè)常數(shù)值倘零。
- Q3:這個(gè)函數(shù)是原函數(shù)的非線性變形,相當(dāng)于兩個(gè)損失函數(shù)戳寸,至于選擇哪個(gè)呈驶,這是個(gè)超參。
- Q4:范圍是
- Q5:結(jié)果會(huì)是3(分類數(shù))疫鹊,相當(dāng)于
- Q6:范圍是
- Q7:結(jié)果是
2. Optimization
2.1 Recap
? ? 現(xiàn)在袖瞻,我們有了目標(biāo)了,我們?cè)撓胂朐趺磧?yōu)化我們的使得我們的Loss Function最小了拆吆。
2.2 閃現(xiàn)
? ? 最樸素的方法無疑是隨機(jī)選擇(Bingo Sort一樣)我們其實(shí)可以把優(yōu)化過程看作到達(dá)一個(gè)山谷聋迎,四面八方都是山,我們可以首先在這個(gè)山谷里閃現(xiàn)枣耀,每到一個(gè)地方就看下我們現(xiàn)在的高度(Loss Function)是多少霉晕。這確實(shí)是一種方法。
2.3 梯度下降 Gradient Descent
? ? 這部分在數(shù)分里講過,就不多說了牺堰。
2.3.1 數(shù)值解
? ? 回顧一下我們對(duì)導(dǎo)數(shù)的定義
類似的拄轻,我們有
在我們求出梯度之后,向這個(gè)方向走伟葫,就可以了哺眯。
2.3.2 解析解
? ? 當(dāng)然數(shù)值解很費(fèi)時(shí)間,所以扒俯,如果愿意的話,直接求解析解也是可以的一疯,畢竟這整個(gè)數(shù)學(xué)關(guān)系式是有的撼玄,可以使用鏈?zhǔn)椒▌t求導(dǎo)。
2.3.3 Learning Rate
? ? 梯度解決了向那里走的問題墩邀,走多少呢掌猛?學(xué)習(xí)率,又是一個(gè)超參數(shù)眉睹,走太多荔茬,一直在山上下不來了,走太小又耗時(shí)間竹海,這確實(shí)是個(gè)玄學(xué)問題慕蔚。對(duì)于這個(gè)問題,可以使用學(xué)習(xí)率衰減(Learning Rate Decay)來“解決”斋配。字面意思孔飒,我們?cè)酵笥?xùn)練,走的步長越小艰争。
2.4 Mini-Batch Gradient Descent
? ? 在前面我們知道坏瞄,在損失函數(shù)里都有個(gè)。就是說甩卓,我們有時(shí)候會(huì)把一整個(gè)數(shù)據(jù)集全部算一次鸠匀,得出一個(gè)損失函數(shù),然后根據(jù)他來優(yōu)化逾柿,但是缀棍,當(dāng)數(shù)據(jù)集太大的時(shí)候,這一點(diǎn)顯然是不適用的机错,因此睦柴,有時(shí)候會(huì)把數(shù)據(jù)集分成小塊來用,這種做法稱為 Mini-Batch Gradient Descent毡熏,當(dāng)每次只使用一個(gè)訓(xùn)練樣本的時(shí)候坦敌,稱為隨機(jī)梯度下降(Stochastic Gradient Descent 簡稱SGD)。