<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          深度學(xué)習補缺補漏篇!準算法工程師總結(jié)出的超強面經(jīng)(含答案)

          共 14244字,需瀏覽 29分鐘

           ·

          2021-07-09 18:25

          ↑ 點擊藍字 關(guān)注極市平臺

          作者丨燈會
          來源丨極市平臺
          編輯丨極市平臺

          極市導(dǎo)讀

           

          作者燈會為21屆中部985研究生,七月份將入職某互聯(lián)網(wǎng)大廠cv算法工程師。在去年灰飛煙滅的算法求職季中,經(jīng)過幾十場不同公司以及不同部門的面試中積累出了CV總復(fù)習系列,此為深度學(xué)習補缺補漏篇。 >>加入極市CV技術(shù)交流群,走在計算機視覺的最前沿

          系列文章:

          一、深入理解Batch Normalization批標準化

          機器學(xué)習領(lǐng)域有個很重要的假設(shè):IID獨立同分布假設(shè),就是假設(shè)訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)是滿足相同分布的,這是通過訓(xùn)練數(shù)據(jù)獲得的模型能夠在測試集獲得好的效果的一個基本保障。那BatchNorm的作用是什么呢?BatchNorm就是在深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中使得每一層神經(jīng)網(wǎng)絡(luò)的輸入保持相同分布的。

          BN的基本思想其實相當直觀:因為深層神經(jīng)網(wǎng)絡(luò)在做非線性變換前的激活輸入值(就是那個x=WU+B,U是輸入)隨著網(wǎng)絡(luò)深度加深或者在訓(xùn)練過程中,其分布逐漸發(fā)生偏移或者變動,之所以訓(xùn)練收斂慢,一般是整體分布逐漸往非線性函數(shù)的取值區(qū)間的上下限兩端靠近(對于Sigmoid函數(shù)來說,意味著激活輸入值WU+B是大的負值或正值),所以這導(dǎo)致反向傳播時低層神經(jīng)網(wǎng)絡(luò)的梯度消失,這是訓(xùn)練深層神經(jīng)網(wǎng)絡(luò)收斂越來越慢的本質(zhì)原因,而BN就是通過一定的規(guī)范化手段,把每層神經(jīng)網(wǎng)絡(luò)任意神經(jīng)元這個輸入值的分布強行拉回到均值為0方差為1的標準正態(tài)分布,其實就是把越來越偏的分布強制拉回比較標準的分布,這樣使得激活輸入值落在非線性函數(shù)對輸入比較敏感的區(qū)域,這樣輸入的小變化就會導(dǎo)致?lián)p失函數(shù)較大的變化,意思是這樣讓梯度變大,避免梯度消失問題產(chǎn)生,而且梯度變大意味著學(xué)習收斂速度快,能大大加快訓(xùn)練速度。

          BN在訓(xùn)練的時候可以根據(jù)Mini-Batch里的若干訓(xùn)練實例進行激活數(shù)值調(diào)整,但是在推理(inference)的過程中,從所有訓(xùn)練實例中獲得的統(tǒng)計量來代替Mini-Batch里面m個訓(xùn)練實例獲得的均值和方差統(tǒng)計量。

          BatchNorm為什么NB呢,關(guān)鍵還是效果好。①不僅僅極大提升了訓(xùn)練速度,收斂過程大大加快;②還能增加分類效果,一種解釋是這是類似于Dropout的一種防止過擬合的正則化表達方式,所以不用Dropout也能達到相當?shù)男Ч?;③另外調(diào)參過程也簡單多了,對于初始化要求沒那么高,而且可以使用大的學(xué)習率等。 總而言之,經(jīng)過這么簡單的變換,帶來的好處多得很,這也是為何現(xiàn)在BN這么快流行起來的原因。

          二、拉格朗日乘子法和 KKT 條件

          為了方便和好記,就把原來的優(yōu)化問題寫成f(x,y)+λh(x,y)的形式,然后分別對λ,x,y求偏導(dǎo),并且令偏導(dǎo)為0就行了,和之前得到的方程組是一樣的。這種方法叫拉格朗日乘數(shù)法。


          這個就是 KKT 條件。 它的含義是這個優(yōu)化問題的極值點一定滿足這組方程組。(不是極值點也可能會滿足,但是不會存在某個極值點不滿足的情況)它也是原來的優(yōu)化問題取得極值的必要條件,解出來了極值點之后還是要代入驗證的。但是因為約束比較多,情況比較復(fù)雜,KKT 條件并不是對于任何情況都是滿足的。要滿足 KKT條件需要有一些規(guī)范性條件(Regularity conditions),就是要求約束條件的質(zhì)量不能太差,常見的比如:
          1. LCQ:如果 h(x)和g(x)都是形如Ax+b的仿射函數(shù),那么極值一定滿足 KKT 條件。
          2. LICQ:起作用的g(x)函數(shù)(即g(x)相當于等式約束的情況)和h(x)函數(shù)在極值點處的梯度要線性無關(guān),那么極值一定滿足 KKT 條件。
          3. Slater條件:如果優(yōu)化問題是個凸優(yōu)化問題,且至少存在一個點滿足h(x)=0和g(x)=0,極值一定滿足 KKT 條件。并且滿足強對偶性質(zhì)(下面會講)。

          三、L0、L1、L2范式

          一般來說,監(jiān)督學(xué)習可以看做最小化下面的目標函數(shù):

          其中,第一項L(yi,f(xi;w)) 衡量我們的模型(分類或者回歸)對第i個樣本的預(yù)測值f(xi;w)和真實的標簽yi之前的誤差。因為我們的模型是要擬合我們的訓(xùn)練樣本的嘛,所以我們要求這一項最小,也就是要求我們的模型盡量的擬合我們的訓(xùn)練數(shù)據(jù)。但正如上面說言,我們不僅要保證訓(xùn)練誤差最小,我們更希望我們的模型測試誤差小,所以我們需要加上第二項,也就是對參數(shù)w的規(guī)則化函數(shù)Ω(w)去約束我們的模型盡量的簡單。

          正則函數(shù)部分:規(guī)則化函數(shù)Ω(w)也有很多種選擇,一般是模型復(fù)雜度的單調(diào)遞增函數(shù),模型越復(fù)雜,規(guī)則化值就越大。比如,規(guī)則化項可以是模型參數(shù)向量的范數(shù)。然而,不同的選擇對參數(shù)w的約束不同,取得的效果也不同,但我們在論文中常見的都聚集在:L0范數(shù),L1范數(shù),L2范數(shù),跡范數(shù),F(xiàn)robenius范數(shù),核范數(shù)等。

          1、L0范數(shù)

          L0范數(shù)是指向量中非0的元素的個數(shù)。如果用L0規(guī)則化一個參數(shù)矩陣W,就是希望W中大部分元素是零,實現(xiàn)稀疏

          L0范數(shù)的應(yīng)用:

          1)特征選擇:實現(xiàn)特征的自動選擇,去除無用特征。稀疏化可以去掉這些無用特征,將特征對應(yīng)的權(quán)重置為零。

          2)可解釋性(interpretability):例如判斷某種病的患病率時,最初有1000個特征,建模后參數(shù)經(jīng)過稀疏化,最終只有5個特征的參數(shù)是非零的,那么就可以說影響患病率的主要就是這5個特征。

          2、L1范數(shù)

          L1范數(shù)是指向量中各個元素絕對值之和。L1范數(shù)也可以實現(xiàn)稀疏,通過將無用特征對應(yīng)的參數(shù)W置為零實現(xiàn)。

          L1范數(shù):

          既然L0可以實現(xiàn)稀疏,為什么不用L0,而要用L1呢?個人理解一是因為L0范數(shù)很難優(yōu)化求解(NP難問題),二是L1范數(shù)是L0范數(shù)的最優(yōu)凸近似,而且它比L0范數(shù)要容易優(yōu)化求解。

          3、L2范數(shù)

          L2范數(shù)是指向量各元素的平方和然后求平方根。,用在回歸模型中也稱為嶺回歸(Ridge regression)。

          L2范數(shù):

          L2避免過擬合的原理是:讓L2范數(shù)的規(guī)則項

          盡可能小,可以使得W每個元素都很小,接近于零,但是與L1不同的是,不會等于0;這樣得到的模型抗干擾能力強,參數(shù)很小時,即使樣本數(shù)據(jù)x發(fā)生很大的變化,模型預(yù)測值y的變化也會很有限。

          L2范數(shù)的作用:1)學(xué)習理論的角度:從學(xué)習理論的角度來說,L2范數(shù)可以防止過擬合,提升模型的泛化能力。2)優(yōu)化計算的角度:從優(yōu)化或者數(shù)值計算的角度來說,L2范數(shù)有助于處理 condition number不好的情況下矩陣求逆很困難的問題。

          四、L1 Loss& L2 Loss&smooth L1 Loss

          1、L1 Loss

          L1 我理解成 1 維向量的距離。

          使用L1損失函數(shù)也被叫做最小化絕對誤差(Least Abosulote Error)。這 個名稱非常的形象。 就是最小化真實值yi和預(yù)測值 之間差值 的絕對值的和。

          這里的 其實就是平均絕對誤差(MAE),使用L1 損失函數(shù)也就是min

          公式:

          導(dǎo)數(shù):

          2、L2 Loss

          L2 就是二維空間向量的距離。

          公式:

          導(dǎo)數(shù):

          3、smooth L1 Loss:

          公式:

          導(dǎo)數(shù):

          比較:

          1、L1 loss 在零點不平滑,用的較少;L1loss在零點不平滑,學(xué)習慢;2、Smooth L1 Loss 改善了零點不平滑問題。

          smooth L1 loss和L1 loss函數(shù)的區(qū)別在于,L1 loss在0點處導(dǎo)數(shù)不唯一,可能影響收斂。smooth L1 loss的解決辦法是在0點附近使用平方函數(shù)使得它更加平滑。

          smooth L1 loss讓loss function對于離群點更加魯棒,即:相比于L2損失函數(shù),其對離群點/異常值(outlier)不敏感,梯度變化相對更小,訓(xùn)練時不容易跑飛。

          Smooth L1 Loss 相比L1修改零點不平滑問題,而且在x較大的時候不像L2對異常值敏感,是一個緩慢變化的loss;

          3、L2 loss:對離群點比較敏感,如果feature 是 unbounded的話,需要好好調(diào)整學(xué)習率,防止出現(xiàn)梯度爆炸的情況。

          L2loss學(xué)習快,因為是平方增長,但是當預(yù)測值太大的時候,會在loss中占據(jù)主導(dǎo)位置(如真實值為1,預(yù)測多次,有一次預(yù)測值為100,其余預(yù)測為2)。

          4、一般來說,L1正則會制造稀疏的特征,大部分無用特征的權(quán)重會被置為0。L2正則會讓特征的權(quán)重不過大,使得特征的權(quán)重比較平均。

          python numpy實現(xiàn)


          五、Sigmoid與softmax的區(qū)別

          1、Sigmoid函數(shù)

          sigmoid常用于二元分類,將二元輸入映射成0和1。

          函數(shù):

          導(dǎo)數(shù):

          sigmoid函數(shù)推導(dǎo):

          其實logistic函數(shù)也就是經(jīng)常說的sigmoid函數(shù),它的幾何形狀也就是一條sigmoid曲線(S型曲線)。A logistic function or logistic curve is a common “S” shape (sigmoid curve). 也就是說,sigmoid把一個值映射到0-1之間。

          該函數(shù)具有如下的特性:當x趨近于負無窮時,y趨近于0;當x趨近于正無窮時,y趨近于1;當x= 0時,y=0.5.

          優(yōu)點: 1.Sigmoid函數(shù)的輸出映射在(0,1)之間,單調(diào)連續(xù),輸出范圍有限,優(yōu)化穩(wěn)定,可以用作輸出層。2.求導(dǎo)容易,處處可導(dǎo),導(dǎo)數(shù)為:f′(x)=f(x)(1?f(x))

          缺點: 1.由于其軟飽和性,容易產(chǎn)生梯度消失,導(dǎo)致訓(xùn)練出現(xiàn)問題。2.其輸出并不是以0為中心的。

          2、Softmax函數(shù)

          公式:

          其中 θi和x是列向量,

          可能被換成函數(shù)關(guān)于x的函數(shù) fi(x)。

          參考鏈接

          https://www.cnblogs.com/guoyaohua/p/8724433.html

          https://www.cnblogs.com/xinchen1111/p/8804858.html

          https://zhuanlan.zhihu.com/p/51912576

          https://blog.csdn.net/hejunqing14/article/details/48980321/


          如果覺得有用,就請分享到朋友圈吧!

          △點擊卡片關(guān)注極市平臺,獲取最新CV干貨

          公眾號后臺回復(fù)“79”獲取CVPR 2021:TransT 直播鏈接~


          極市干貨
          YOLO教程:一文讀懂YOLO V5 與 YOLO V4大盤點|YOLO 系目標檢測算法總覽全面解析YOLO V4網(wǎng)絡(luò)結(jié)構(gòu)
          實操教程:PyTorch vs LibTorch:網(wǎng)絡(luò)推理速度誰更快?只用兩行代碼,我讓Transformer推理加速了50倍PyTorch AutoGrad C++層實現(xiàn)
          算法技巧(trick):深度學(xué)習訓(xùn)練tricks總結(jié)(有實驗支撐)深度強化學(xué)習調(diào)參Tricks合集長尾識別中的Tricks匯總(AAAI2021
          最新CV競賽:2021 高通人工智能應(yīng)用創(chuàng)新大賽CVPR 2021 | Short-video Face Parsing Challenge3D人體目標檢測與行為分析競賽開賽,獎池7萬+,數(shù)據(jù)集達16671張!



          極市原創(chuàng)作者激勵計劃 #


          極市平臺深耕CV開發(fā)者領(lǐng)域近5年,擁有一大批優(yōu)質(zhì)CV開發(fā)者受眾,覆蓋微信、知乎、B站、微博等多個渠道。通過極市平臺,您的文章的觀點和看法能分享至更多CV開發(fā)者,既能體現(xiàn)文章的價值,又能讓文章在視覺圈內(nèi)得到更大程度上的推廣。

          對于優(yōu)質(zhì)內(nèi)容開發(fā)者,極市可推薦至國內(nèi)優(yōu)秀出版社合作出書,同時為開發(fā)者引薦行業(yè)大牛,組織個人分享交流會,推薦名企就業(yè)機會,打造個人品牌 IP。

          投稿須知:
          1.作者保證投稿作品為自己的原創(chuàng)作品。
          2.極市平臺尊重原作者署名權(quán),并支付相應(yīng)稿費。文章發(fā)布后,版權(quán)仍屬于原作者。
          3.原作者可以將文章發(fā)在其他平臺的個人賬號,但需要在文章頂部標明首發(fā)于極市平臺

          投稿方式:
          添加小編微信Fengcall(微信號:fengcall19),備注:姓名-投稿
          △長按添加極市平臺小編


          覺得有用麻煩給個在看啦~  
          瀏覽 34
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  三级黄色天天天天 | 青娱乐免费视频一二三 | 国产伦理久久精品久久久久 | 国产成人麻豆免费观看 | 日本三级视频在线观看 |