<label id="jgr5k"></label>
    <legend id="jgr5k"><track id="jgr5k"></track></legend>

    <sub id="jgr5k"></sub>
  1. <u id="jgr5k"></u>
      久草国产视频,91资源总站,在线免费看AV,丁香婷婷社区,久久精品99久久久久久久久,色天使av,无码探花,香蕉av在线
      您正在使用IE低版瀏覽器,為了您的雷峰網賬號安全和更好的產品體驗,強烈建議使用更快更安全的瀏覽器
      此為臨時鏈接,僅用于文章預覽,將在時失效
      人工智能開發者 正文
      發私信給AI研習社
      發送

      0

      神經網絡中容易被忽視的基礎知識

      本文作者: AI研習社 2017-11-15 17:30
      導語:基礎不牢,地動山搖。

      雷鋒網按:本文原作者Evan,本文原載于作者的知乎專欄記學習--機器學習。雷鋒網已獲得轉載授權。

      以下大多筆記主要來自 cs231n 和其他深度學習資料和一些我自己的補充,首先 CS231n 一個非常不錯的 deep learning 課,值得一看,奉上鏈接,然后,cs231n 本身是有筆記的-鏈接,最后,知乎上的一些大神對這個筆記進行了翻譯-鏈接。在這里,我主要是將一些重要的筆記,我認為是比較容易被我們忽視的,加上查閱其他博文,做一個筆記和心得總結!

      這次主要講解的內容有:

      • 基本神經元

      • 作為線性分類器的單個神經元

      • 為什么要是深度神經網而不是” 肥胖 “神經網絡?

      • 為什么在人工神經網絡中的神經元需要激活函數?

      • 一些主要的激活函數

      • 神經網絡中的偏置有什么意義?

      • 初始化神經網絡的參數可以全為 0 嗎,其他普通線性分類器呢?

      • 交叉熵損失存在的意義和與平方差損失相比有什么好處?

      神經元

      下面圖表的左邊展示了一個生物學的神經元,右邊展示了一個常用的數學模型。乍一看還是有點相似的,事實上也是,人工神經網絡中的神經元也有受到生物神經元的啟發。總結要點:

      在生物的神經元(也就是左圖)中,樹突將信號傳遞到細胞體,信號在細胞體中相加。如果最終之和高于某個閾值,那么神經元將會激活,向其軸突輸出一個峰值信號,注意這里輸出是一個脈沖信號!

      在數學計算模型(也就是右圖)中,首先將輸入進行加權求和加上偏執,得到待激勵值,然后將該值作為輸入,輸入到激活函數中,最后輸出的是一個激勵后的值,這里的激活函數可以看成對生物中神經元的激活率建模。由于歷史原因,激活函數常常選擇使用 sigmoid 函數 σ當然還有很多其他激活函數,下面再仔細聊!

      需要注意:1. 一個神經元可以看成包含兩個部分,一個是對輸入的加權求和加上偏置,一個是激活函數對求和后的激活或者抑制。2. 注意生物中的神經元要復雜的多,其中一個是生物中的輸出是一個脈沖,而現在大多數的數學模型神經輸出的就是一個值,當然現在也有一些脈沖人工神經網絡,可以自行了解!

      神經網絡中容易被忽視的基礎知識

      作為線性分類器的單個神經元

      • 比如基礎的邏輯回歸,結合上面的神經元知識,可以發現,邏輯回歸就是激活函數是sigmoid 的單層簡單神經網絡。也就是說,只要在神經元的輸出端有一個合適的損失函數,就能讓單個神經元變成一個線性分類器。因此說,那些線性的分類器本身就是一個單層神經網絡。

      • 但注意,對于非線性的模型:SVM 和神經網絡走了兩條不同的道路:神經網絡通過多個隱層的方法來實現非線性的函數,有一些理論支持(比如說帶隱層的神經網絡可以模擬任何函數),但是目前而言還不是非常完備;SVM 則采用了 kernel trick 的方法,這個在理論上面比較完備(RKHS,簡單地說就是一個泛函的線性空間)。兩者各有好壞,神經網絡最近的好處是網絡設計可以很靈活,有很多的 trick&tip,很多理論都不清不楚的;SVM 的理論的確漂亮,但是 kernel 設計不是那么容易,所以最近也就沒有那么熱了。

      為什么要是深度神經網而不是” 肥胖 “(寬度)神經網絡?

      神經網絡中容易被忽視的基礎知識

      神經網絡中容易被忽視的基礎知識

      “肥胖” 網絡的隱藏層數較少,如上左圖。雖然有研究表明,淺而肥的網絡也可以擬合任何的函數,但它需要非常的 “肥胖”,可能一層就要成千上萬個神經元。而這直接導致的后果是參數的數量增加到很多很多。

      也有實驗表明,也就是上圖的實驗,我們可以清楚的看出,當準確率差不多的時候,參數的數量卻相差數倍。這也說明我們一般用深層的神經網絡而不是淺層 “肥胖” 的網絡。

      注意:說神經網絡多少層數的時候一般不包括輸入層。 在神經網絡中的激活主要講的是梯度的更新的激活。

      為什么在人工神經網絡中的神經元需要激活函數?

      神經網絡中容易被忽視的基礎知識


      上圖可看做普通的線性分類器,也就是線性回歸方程。這個比較基礎,效果如右圖。當然有時候我們發現這樣的線性分類器不符合我們要求時,我們很自然的想到那我們就加多一層,這樣可以擬合更加復雜的函數,如下圖 a:

      神經網絡中容易被忽視的基礎知識

      圖a

      神經網絡中容易被忽視的基礎知識

      圖b

      但同時當我們動筆算下, 就會發現, 這樣一個神經網絡組合起來, 輸出的時候無論如何都還是一個線性方程。如上圖 b 右邊,就只能這樣分類。(那也太蠢了吧)。下圖表示一層加如激活函數的情況!

      神經網絡中容易被忽視的基礎知識


      一層很多時候是遠遠不夠的,前面講過,簡單的線性分類器就可以看成是一層的神經網絡,比如上圖,激活函數是 signmoid,那就可以看成是二分類的邏輯回歸!

      下面擴展到多層,如下圖 1,2:

      神經網絡中容易被忽視的基礎知識

      圖 1

      神經網絡中容易被忽視的基礎知識

      圖 2

      圖 1 是一個簡單的 MLP(全鏈接神經網絡),圖 2 的右邊課簡單表示左圖的可視化,那么對比之前的無激活函數的圖,很明顯是更加的非線性,擬合能力也會更強,同時可以想到,當層數更多,其能力也會越來越強!

      簡單來說:就是使得神經網絡具有的擬合非線性函數的能力,使得其具有強大的表達能力!

      簡單擴展,神經網絡的萬能近似定理: 一個前饋神經網絡如果具有線性層和至少一層具有 "擠壓" 性質的激活函數(如 signmoid 等),給定網絡足夠數量的隱藏單元,它可以以任意精度來近似任何從一個有限維空間到另一個有限維空間的 borel 可測函數。

      要相符上面的定理,也就是想擬合任意函數,一個必須點是 “要有帶有 “擠壓” 性質的激活函數”。這里的 “擠壓” 性質是因為早期對神經網絡的研究用的是 sigmoid 類函數,所以對其數學性質的研究也主要基于這一類性質:將輸入數值范圍擠壓到一定的輸出數值范圍。(后來發現,其他性質的激活函數也可以使得網絡具有普適近似器的性質,如 ReLU 。

      一些主要的激活函數

      sigmoid

      優點:有較好的解釋性

      缺點:1.Sigmoid 函數飽和使梯度消失。sigmoid 神經元有一個不好的特性,就是當神經元的激活在接近 0 或 1 處時會飽和:在這些區域,梯度幾乎為 0。2. 輸出不是零中心的,這一情況將影響梯度下降的運作,因為如果輸入神經元的數據總是正數,那么關于 w 的梯度在反向傳播的過程中,將會要么全部是正數,要么全部是負數,這樣梯度下降權重更新時出現 z 字型的下降。這樣收斂會變得異常的慢。(這也是為什么要一直保持為數據的 0 中心化)—–但這個問題比較小。3.exp()在深度神經網絡時候相比其他運算就比較慢。

      神經網絡中容易被忽視的基礎知識

      Tanh 非線性函數

      優點:它的輸出是零中心的。因此,在實際操作中,tanh 非線性函數比 sigmoid 非線性函數更受歡迎。

      缺點: 和 Sigmoid 函數一樣,飽和使梯度消失。計算慢。

      神經網絡中容易被忽視的基礎知識

      ReLU

      優點:1.ReLU 對于隨機梯度下降的收斂有巨大的加速作用( Krizhevsky 等的論文 alexnet 指出有 6 倍之多)。據稱這是由它的線性,非飽和的公式導致的;2. 注意:現在大部分的 DNN 用的激活函數就是 ReLu

      缺點:當 x 是小于 0 的時候,那么從此所以流過這個神經元的梯度將都變成 0;這個時候這個 ReLU 單元在訓練中將死亡(也就是參數無法更新),這也導致了數據多樣化的丟失(因為數據一旦使得梯度為 0,也就說明這些數據已不起作用)。

      神經網絡中容易被忽視的基礎知識

      Leaky ReLU

      優點:1. 非飽和的公式; 2.Leaky ReLU 是為解決 “ReLU 死亡” 問題的嘗試

      缺點:1. 有些研究者的論文指出這個激活函數表現很不錯,但是其效果并不是很穩定

      Kaiming He 等人在 2015 年發布的論文 Delving Deep into Rectifiers 中介紹了一種新方法 PReLU,把負區間上的斜率當做每個神經元中的一個參數。然而該激活函數在在不同任務中均有益處的一致性并沒有特別清晰。

      神經網絡中容易被忽視的基礎知識

      ELU

      指數線性單元(Exponential Linear Units, ELU) ELU 的公式為:

      神經網絡中容易被忽視的基礎知識


      ELU.png 函數曲線如下:

      神經網絡中容易被忽視的基礎知識

      Maxout

      • Maxout 是對 ReLU 和 leaky ReLU 的一般化歸納

      優點: 擁有 ReLU 單元的所有優點(線性操作和不飽和),而沒有它的缺點(死亡的 ReLU 單元)。

      缺點 :每個神經元的參數數量增加了一倍,這就導致整體參數的數量激增。難訓練, 容易過擬合。

      怎么用激活函數

      “那么該用那種呢?” 用 ReLU 非線性函數。注意設置好學習率,(如果學習率設置得太高,可能會發現網絡中 40% 的神經元都會死掉(在整個訓練集中這些神經元都不會被激活)。通過合理設置學習率,這種情況的發生概率會降低。),解決方案:或許可以監控你的網絡中死亡的神經元占的比例。如果單元死亡問題困擾你,就試試 Leaky ReLU 或者 Maxout,不要再用 sigmoid 了。也可以試試 tanh,但是其效果應該不如 ReLU 或者 Maxout。

      神經網絡中的偏置有什么意義?

      最基礎的神經元感知器如下:

      神經網絡中容易被忽視的基礎知識

      這個例子中輸入為神經網絡中容易被忽視的基礎知識三個變量, 輸出為 0 或 1. 當三個變量的加權和神經網絡中容易被忽視的基礎知識大于某個閾值的時候, 輸出為 1, 反之為 0。

      神經網絡中容易被忽視的基礎知識

      注意這里的閾值, 它度量了神經元產生正 (負) 激勵的難易程度。也就是說,在上文的模型中,閾值越大, 產生正激勵的難度越大。

      而為了更好的計算和表達,我們可以把其中的 b 和神經網絡中容易被忽視的基礎知識 移到同一邊,同時給他取了一個不錯的名字,叫做偏置 Bias,而 w 叫做權重 weight!

      神經網絡中容易被忽視的基礎知識

      也就是說: 偏置的大小度量了神經元產生正 (負) 激勵的難易程度

      這是最簡單的感知器神經元. 而現代神經網絡中常用的 Sigmoid, tanh 或是 ReLU 都是在神經網絡中容易被忽視的基礎知識的基礎上加上一個激活函數, Bias 也就是 b 的意義是一樣的。

      同時對于偏置需要注意的點是:偏置是不需要正則化的,并且正則化偏置的話會導致欠擬合。我們從意義上去理解話,若對偏置正則化(懲罰),會導致激活變得更加簡單,偏差就會上升,學習的能力就會下降!

      初始化神經網絡的參數可以全為 0 嗎,其他普通線性分類器呢?

      在講初始化前,先簡單復習下反向傳播算法可表示為以下幾個步驟:

      1. 進行前饋傳導計算,利用前向傳導公式,得到神經網絡中容易被忽視的基礎知識,直到輸出層神經網絡中容易被忽視的基礎知識的激活值。

      對輸出層(第 nl 層),計算:

      神經網絡中容易被忽視的基礎知識

      3. 對于神經網絡中容易被忽視的基礎知識的各層,計算:

      神經網絡中容易被忽視的基礎知識

      4. 計算最終需要的偏導數值:

      神經網絡中容易被忽視的基礎知識

      5. 對 f 舉個例子,若表示 sigmoid 函數,就可以計算得到

      神經網絡中容易被忽視的基礎知識

      從上往下,其中y 代表正確 label,神經網絡中容易被忽視的基礎知識代表最后一層的輸出, 神經網絡中容易被忽視的基礎知識 表達的是最后一層的加權求和值, f 代表的是激活函數,δ代表的是要反向傳播回去的誤差,神經網絡中容易被忽視的基礎知識代表第 l 層,w,b 表示權重和偏置。

      我們前面說過:線性分類器邏輯回歸模型可以算作為一個簡單的單層神經網絡。為了更好的說明問題,假設一個場景,在十類分類的數字手寫識別中,我們將本來二分類的邏輯回歸推到多分類的softmax,也就是說,神經元的激活函數是 softmax。也就是下圖,然后分析:

      神經網絡中容易被忽視的基礎知識

      • 輸入層(不算是一層):28×28=784 個輸入單元。也就是 n=784

      • 輸出層:10 個輸出單元, 激活函數為softmax,也就是 m=10

      • 它由兩組參數組成: W和 b, 前者是一個 10×784 維的權值矩陣, 后者是長度為 10 的 bias 列向量. 現在我們假設把它們全部初始化為 0:

      • 第一次正向計算過程中, 簡單算出,輸出層的所有輸出為 0.5。

      • 反向時, 根據前面復習的反向傳播算法,首先計算δ,假如 神經網絡中容易被忽視的基礎知識, 即輸入x對應的數字為i, 那么除了第i個神經元的δ是不同的,其他的值都是一樣, 又于計算權重 w 梯度的公式得知,注意此時的  就是輸入值 x,又由于輸入向量x的元素之間的不同, 所以即使δ是一樣的,但最終得到的 10 個梯度值有很大概率是不同且非 0 的, 所以第一次 BP 過程可以取得成效并將一些w和所有的b變成非 0 值。

      • 由于 w 值已經變得不相同了,這個時候前向傳播和后向傳播也就會正常的進行, 后面的訓練顯然也可以順利進行。

      得出結論,沒有隱層時, 可以將所有的參數初始化為 0。

      如果有隱層呢? 假如還是用 sigmoid 激活函數呢。來個更簡單 MLP,

      神經網絡中容易被忽視的基礎知識

      • 第一次正向計算過程中, 簡單算出,輸出層的所有輸出為神經元 4,5,6 輸出的值(初始化 w,b 為 0, 激活函數是 sigmoid)都是一樣的,都是 0.5

      • 第一個反向傳播過程,由權重的更新公式,算出即神經網絡中容易被忽視的基礎知識 (神經元 6 和 4,5 之間的權重) 是一樣的,同樣算出神經網絡中容易被忽視的基礎知識都一樣,但非 0, 由 sgd 算法賦值。

      • 然后第二次正向時,算出神經元 4,5 的輸出一樣(因為 4,5 都是接受 1,2,3 神經元的輸入,且權重相同),但和神經元 6 的輸出不一樣。

      • 然后第二次反向時,根據公式,得出神經元 4,5 永遠一樣。原因在于計算用的是一樣的輸出,這個也可以從公式得出!

      • 最后結論,一直循環,發現學習得到的模型中, 所有的隱單元都是相同的(在這里就是神經元 4,5 永遠一樣). 學習失敗。

      對于隱層使用了其他函數比如 ReLU: f(net)=max(0,net)其結果也是一樣的: 除了輸入層的輸出值為x本身, 不為 0, 其余的所有層的輸出都為 0. BP 時所有梯度也都為 0, 包括輸出層. 這意味著所有的非輸入神經元都是無意義的. 學習失敗. 對于卷積神經網絡,循環神經網絡也是一樣的,故一般會用其他初始化方式。

      最后最后的結論是, 一般只在訓練 SLP / 邏輯回歸模型時才使用 0 初始化所有參數., 更實用的結論是, 深度模型都不會使用 0 初始化所有參數.

      交叉熵存在的意義和與平方差相比有什么好處?

      一個非常常見的,非常漂亮的成本函數是 “交叉熵”(cross-entropy)。交叉熵產生于信息論里面的信息壓縮編碼技術,但是它后來演變成為從博弈論到機器學習等其他領域里的重要技術手段。它的定義如下:

      神經網絡中容易被忽視的基礎知識

      其中,y 是我們預測的概率分布, y’ 是實際的分布

      1. 交叉熵是正的,2. 當所有輸入 x 的輸出都能接近期望輸出 y 的話,交叉熵的值將會接近 0。這兩個特征在直覺上我們都會覺得它適合做代價函數。事實上,我們的均方代價函數也同時滿足這兩個特征。然而....

      為什么在神經網絡中用交叉熵代替二次代價函數?

      還是從反向傳播,參數更新的角度理解更新參數的公式如下:

      神經網絡中容易被忽視的基礎知識

      神經網絡中容易被忽視的基礎知識


      a 是 神經元的輸出,其中 a = σ(z), z = wx + b,可知,偏導數受激活函數的導數影響,假設這里是傳統的 sigmoid 激活函數(在之前很多時候都是)。那么 sigmoid 的導數在輸出接近 0 和 1 的時候 是非常小的,這會導致一些實例在剛開始訓練時學習得非常慢!

      但是如果換成是交叉熵 loss,其更新權重公式最后推導得出如下:

      神經網絡中容易被忽視的基礎知識

      神經網絡中容易被忽視的基礎知識

      由以上公式可知,權重學習的速度受到 σ(z) ? y 影響,更大的誤差,就有更快的學習速度,還避免了二次代價函數方程中因 σ′(z) 導致的學習緩慢。

      但是現在也有很多其他的激活函數并不會產生飽和狀態,那么均方差也有其存在價值。

      雷峰網版權文章,未經授權禁止轉載。詳情見轉載須知

      神經網絡中容易被忽視的基礎知識

      分享:
      相關文章

      編輯

      聚焦數據科學,連接 AI 開發者。更多精彩內容,請訪問:yanxishe.com
      當月熱門文章
      最新文章
      請填寫申請人資料
      姓名
      電話
      郵箱
      微信號
      作品鏈接
      個人簡介
      為了您的賬戶安全,請驗證郵箱
      您的郵箱還未驗證,完成可獲20積分喲!
      請驗證您的郵箱
      立即驗證
      完善賬號信息
      您的賬號已經綁定,現在您可以設置密碼以方便用郵箱登錄
      立即設置 以后再說
      主站蜘蛛池模板: 岛国片人妻三上悠亚| 亚洲综合香蕉| 国产自在自线午夜精品| 十堰市| 亚洲综合无码一区二区三区| 亚洲中字幕| 少妇人妻精品一区二区| 亚洲AV永久久久久久久浪潮| 中文人妻AV高清一区二区| 国产免费拔擦拔擦8x高清在线人| 又色又污又爽又黄的网站| 天堂…中文在线最新版在线| 亚洲国内自拍| 日韩人妻OL丝袜AV一二区| 亚洲中文字幕久久无码精品| 91色爱欧美精品www| 国产xxxx做受视频| 偷自在线| 欧美精品一卡| 国产精品成人无码A片噜噜| 人妻影音先锋啪啪AV资源| 亚洲第一国产综合| 中国护士18xxxxhd| 风流少妇又紧又爽又丰满| 在国产线视频A在线视频| 欧美疯狂性受xxxxx喷水| 国产免费人成在线视频网站| 亚洲高清中文字幕| 加勒比无码av中文字幕| 伊人欧美在线| 国产免费网站看v片元遮挡| 纯肉高h啪动漫| 猫咪AV成人永久网站在线观看| 日本丰满熟妇乱子伦| 免费观看18禁无遮挡真人网站| 国产麻豆精品久久一二三| 国产无套内射久久久国产| 人妻精油按摩bd高清中文字幕| 定安县| 国产偷人爽久久久久久老妇app| 韩日一级|