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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

深度学习02——Softmax、DNN、WideDeep Model

發布時間:2023/12/10 pytorch 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习02——Softmax、DNN、WideDeep Model 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

說明:本系列是七月算法深度學習課程的學習筆記

1 背景介紹

深度學習在圖片上的應用:功能上講:圖像分類和物體識別;應用上:可以用來分類圖片:白菜形狀的玉器擺件、白菜、大白菜;圖片搜索;給照片打標簽;識別超市的蔬菜;自動駕駛;模仿畫家作畫;拍立淘:以圖搜索產品。

深度學習在nlp上的應用:模仿作家寫作;抽取圖片中的文字。
綜合應用:識別圖片中的物品以及人物。

2 神經網絡非線性能力及原理

2.1 感知器與邏輯門

2.1 得分函數

線性分類器
分類問題:輸入圖像數據;輸出所屬分類;線性分割:f(x,W)。找到合適的映射函數f。

f(x,W) = Wx
輸入是一個32x32x3的圖片,W是一個10x3072的矩陣,x是一個3072x1的向量),其中W叫做參數或者權重。f稱為得分函數。
把輸入值全部展開就是一個3072x1的向量。

如果我們的分類是3個:cat,dog,ship。
W中每一行是對一個分類的線性參數。
b是偏移,相當于是截距。
最后一列是得分,在哪個分類上得分最高就最 可能是哪種分類。

2.2 損失函數

f(x,W) = Wx是否與實際符合,需要用損失函數來衡量。
損失函數:用來衡量參數W的吻合度。
損失函數1: hinge loss 支持向量機損失

衡量的是當前樣本計算的得分與標準答案之間的差異到底有多大。

例如在圖片分類中有3個分類,標準答案是分類2,那么藍色的線就是分類2的得分。delta是警戒線。如果藍色線是90,分類1和分類3的得分都比90小,那就分類正確,沒有損失。但是有點不靠譜。加個delta可以讓正確答案更靠譜一些。其他分類的值,只要不超過警戒線損失就是0,否則就有損失。
計算每個錯誤分類的錯誤距離之和。對于第i個圖片的損失值等于:
Li=∑j!=yimax(0,f(xi,W)j?f(xi,W)yi+δ)L_i=\sum_{j!=y_i}max(0,f(x_i,W)_j-f(x_i,W)_{y_i}+\delta)Li?=j!=yi??max(0,f(xi?,W)j??f(xi?,W)yi??+δ)

損失函數2: 交叉熵損失(softmax)
如果將每個分類上的得分記為s1,s2,s3。我們將它們處理為es1e^{s1}es1,es2e^{s2}es2,es3e^{s3}es3,然后對他們做歸一化得到概率。做指數的原因是每個分類的得分可正可負,沒法計算概率。
對于訓練集中的第i張圖片數據xix_ixi?,如果真實分類是dog,如果我們把分類記為:cat,dog,ship,那真實的向量應該是:[0,1,0]。如果我們計算得到的向量是(已經是e的次方了):[0.9,0.05,0.05]。那這個向量和真實的向量之間的差距有多大,這時候從極大似然的角度來看,我們會希望dog的概率pdogp_{dog}pdog?是最大的,從而logpdogp_{dog}pdog?也應該是最大的。那么?logpdog-logp_{dog}?logpdog?就會希望是最小值。

極大似然會將所有分類的概率乘積起來,這里使用log是因為概率值比較小,概率值相乘可能會超出計算機的精度范圍。

那么最后得到損失函數:對于訓練集中的第i張圖片數據xix_ixi?,在W下會有一個得分結果向量fff,損失值等于:
Li=?log(efyi∑jefj)L_i=-log(\dfrac{e^{f_{y_i}}}{\sum_{j} e^{f_j}})Li?=?log(j?efj?efyi???)
j:所有的類別,fyi{f_{y_i}}fyi??是第i張圖片計算得到的結果向量在正確分類上的數值。
例如上面例子中的Li=?log(0.050.9+0.05+0.05)=?log(0.05)=3.0L_i=-log(\dfrac{0.05}{0.9+0.05+0.05})=-log(0.05)=3.0Li?=?log(0.9+0.05+0.050.05?)=?log(0.05)=3.0
這樣我們的目標就是求LiL_iLi?的最小值。

問題:這里為什么不用MSE做損失函數?
在做線性回歸問題的時候(也就是函數的結果值是一個連續的數,例如房價預測),我們經常使用MSE做損失函數。MSE是一個非凸的函數,而交叉熵是一個凸函數。我們給交叉熵加入softmax之后,是一個具有單調性的函數,損失越大,梯度越大,非常利于梯度下降的反向傳播。所以softmax經常和交叉熵一起使用。參考鏈接

2.3 神經網絡

一般神經網絡的結構分為:輸入層、1-多個隱藏層、輸出層。

在logistic回歸中
z=θ0+θ1x1+θ2x2z=\theta_0+\theta_1x_1+\theta_2x_2z=θ0?+θ1?x1?+θ2?x2?
a=g(z)=11+e?za=g(z)=\dfrac{1}{1+e^{-z}}a=g(z)=1+e?z1?

可以把這個看所一個神經元感知器。

神經網絡有若干個這樣的感知器。就相當于有多個logistic回歸,有多個線性切分。多個線性切分可以得到什么結果呢?

2.3 非線性切分

logistic回歸在上圖數據中就沒有辦法畫出非線性的邊界。
通過神經元的邏輯與邏輯或操作多個線性切分就可以畫出復雜的決策邊界。但是也是復雜的線性邊界。

邏輯與

邏輯或

對線性分類器的與或 進行組合就可以得到復雜的線性切分

2.4 網絡表達能力與過擬合問題

提升隱層層數或者隱層神經元的個數,神經網絡的容量會變大,空間表達能力會更強。
解決方法:不要試圖通過降低神經網絡參數數量來緩解,用正則化或者dropout。

2.5 神經網絡之激活函數

sigmoid 和 雙s函數tahn,通常是非線性函數。在每一個隱藏層后面都會加一個激活函數層。
加激活函數是要起到非線性的作用。否則無論加多少個隱層,這個符合函數還是線性的。遇到下圖這樣的數據,即使多復雜的線性表達式也不能完全區分。

如果使用激活函數,例如sigmoid。三個隱藏層每層過sigomoid函數,就能得到下圖右邊的效果。參考鏈接

2.6 BP與SGD

BP:反向傳播,傳播誤差;做題,傳回修正值。
SGD:相當于改題,找到梯度,沿著梯度的方向更新參數

總結

以上是生活随笔為你收集整理的深度学习02——Softmax、DNN、WideDeep Model的全部內容,希望文章能夠幫你解決所遇到的問題。

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