白話深度神經網路
近些年來,深度神經網路異常火爆,各種深度神經網路架構層出不窮。大有千樹萬樹梨花開,各領風騷數小時的趨勢!
但不管它結構如何改變,層數如何增加,始終離不開最基本的遊戲規則:1.承載計算的節點,2.允許資料流動的連線,3.可變化的節點權重
下面我就以自己理解的視角,向大家揭開深度神經網路神祕的面紗。
首先,自問自答幾個似乎哲學般存在的問題:
1.什麼是深度神經網路?
有很多治學嚴謹的學者或科學家會給出一堆定義(從模擬人類大腦開始,巴拉巴拉),不過我相信你看完會和我的感受一樣:到底什麼是深度神經網路,請明白人給一個直觀而感性的認識吧!求求你別饒了。
好! 深度神經網路本質上是將輸入資料離散化,將複雜的優化目標通過分段凸優化的策略,最終實現總體目標最優化的過程。
faint?說好的無障礙呢?不能甩出一句莫名其妙的話,在這裡故弄玄虛呀?
2.什麼是資料離散化?
這個問題簡單:假設你輸入的資料是0-5的連續自然數,可是我的計算能力有限,所以我設定6個輸入節點(6次取樣),分別是0,1,2,3,4,5
這就是將連續的資料離散化……
3.什麼是凸優化?
這個問題也好說:就是將資料的分佈看作是凸函式(不用查了,顧名思義一切凸起來的東西都可以看作凸函式),然後求最凸的那個點!
[:-)不要想歪了了哦]
當然正式的數學定義要嚴謹的多,其實我覺得在創新的過程中,應該容忍一些不嚴謹,否則浪費大量時間在嚴謹的論證上得不償失。
4.怎麼分段凸優化?
通過隱藏層間節點的連線實現分段,而凸優化採取的策略,其實就是梯度下降。(表現在深度神經網路裡就是BP)
天哪嚕!拔出蘿蔔帶出泥!
好吧,
5.什麼是梯度下降?
想象一個小人站在半山腰,他朝哪個方向跨一步,可以使他距離谷底更近(位置更低),就朝這個方向前進,就是梯度下降
6.什麼是梯度?怎麼求解梯度?
簡單來說,梯度描述了誤差的變化趨勢,所以梯度可近似看作=Max(偏導數)
7.什麼是偏導數?
偏導數為兩次計算之間的斜率,用一個簡單的公式表示如下:
ok,到此為止,我們有了一個似乎自我感覺良好的完備解釋。
可是說好的白話呢?
------------------------------------------------------------------------------------------------
白話的故事從這裡開始,已經明白的讀者朋友可以忽略下文了,以免浪費大家時間:
假設,你是一名畫家,你想去描繪一張人臉,最常用的做法是怎麼做?
1.先畫輪廓;2.再逐步到五官;3.再逐步到五官上的細節;4.再逐步到皮膚紋理上色;
沒錯,其實深度學習也是這麼幹的,我們可以看看神經網路各層視覺化的效果:
看起來有點恐怖,不過我相信聰明的你看到此圖一定秒懂了。
理解還是有困難?我想主要思想應該沒有困難了,大多數人可能還是細節上的理解,可能需要沉澱一下
深度學習是一個聰明的“畫師”,他用自己有限的幾種“畫筆”,去描繪精彩的世界
------------------------------------------------------------------------------------------------
好了,胡說了一段故事之後,我們回到現實問題,暫時顧不上小白讀者了
這也就是為什麼對深度神經網路的訓練可以使用DBN,因為層數太多,分段優化的策略不一定湊效,總體函式不一定收斂。
這也就很好的解釋了DBN優化過程中,能量函式的設計為什麼那麼重要,因為首先這位“畫師”要畫好每一步的輪廓
所以,DBN的能量函式最好是凸函式,或者可以簡單看作有限的幾個凸函式疊加的結果,而DBN中RBM的層數不宜太多,RBM的優化目標必然是凸函式。
那麼深度神經網路是否還有優化的餘地呢?
當然可以:
1.畫師很窮,有時候也很任性,輸入層、隱藏層節點數量毫無道理的設定,想設幾個全憑感覺(OMG,可以小小鄙視下)
這裡筆者想到了使用PCA演算法來確定各隱藏層的節點數量,姑且叫這個還未誕生的架構為深度PCA網路吧
2.畫師也很有耐心,有時候這種堅持反而是一種固執,隱藏層數量多少全憑最終效果,可是天殺的資料集是有好有壞的,這種非要加工多少層的做法不僅固執,而且相當愚蠢,包 子鋪老闆坐不住了,我做個包 子還要上百道甚至上千道工序,殺了我吧(OMG,再鄙視下)
這裡筆者想到隱藏層不要固定的做法,而是動態增加,姑且叫做dynamic hidden layer特 性 吧
好了,今天行文有點太顛狂了,有修養的你就當我是胡說八道吧!
如果本文中的一些思路能給你帶來一些亮點和啟發或由此發表論文,都請不吝告知!希望能與各位網友廣泛交流!繼續深度的學習深度學習
https://www.toutiao.com/a6726022696682914318/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2654216/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【深度學習篇】--神經網路中的卷積神經網路深度學習神經網路卷積
- 深度剖析卷積神經網路卷積神經網路
- 如何優化深度神經網路?優化神經網路
- 再聊神經網路與深度學習神經網路深度學習
- AI之(神經網路+深度學習)AI神經網路深度學習
- 【深度學習】神經網路入門深度學習神經網路
- 深度學習與圖神經網路深度學習神經網路
- 【人工神經網路基礎】為什麼神經網路選擇了“深度”?神經網路
- 深度神經網路的壓縮與加速神經網路
- 【深度學習】1.4深層神經網路深度學習神經網路
- 深度學習三:卷積神經網路深度學習卷積神經網路
- 30分鐘講清楚深度神經網路神經網路
- 深度學習教程 | 深層神經網路深度學習神經網路
- 一句話總結人工神經網路神經網路
- 深度學習經典卷積神經網路之AlexNet深度學習卷積神經網路
- 4種除錯深度神經網路的方法除錯神經網路
- 深度學習之RNN(迴圈神經網路)深度學習RNN神經網路
- 深度學習迴圈神經網路詳解深度學習神經網路
- 深度學習——LeNet卷積神經網路初探深度學習卷積神經網路
- 深度學習之上,圖神經網路(GNN )崛起深度學習神經網路GNN
- 深度學習筆記------卷積神經網路深度學習筆記卷積神經網路
- 阿里開源深度神經網路推理引擎 MNN阿里神經網路
- 深度學習之step by step搭建神經網路深度學習神經網路
- 深度學習卷積神經網路筆記深度學習卷積神經網路筆記
- 吳恩達《神經網路與深度學習》課程筆記(4)– 淺層神經網路吳恩達神經網路深度學習筆記
- 吳恩達《神經網路與深度學習》課程筆記(5)– 深層神經網路吳恩達神經網路深度學習筆記
- 神經網路:numpy實現神經網路框架神經網路框架
- 神經網路神經網路
- 一句話總結卷積神經網路卷積神經網路
- CICC科普欄目|神經網路淺講:從神經元到深度學習神經網路深度學習
- 如何用Python和深度神經網路識別影象?Python神經網路
- 初探神經網路與深度學習 —— 感知器神經網路深度學習
- Batch Normalization: 如何更快地訓練深度神經網路BATORM神經網路
- Python TensorFlow深度神經網路迴歸:keras.SequentialPython神經網路Keras
- NLP與深度學習(二)迴圈神經網路深度學習神經網路
- 深度學習與圖神經網路學習分享:CNN 經典網路之-ResNet深度學習神經網路CNN
- 吳恩達對話LeCun:神經網路跌宕四十年吳恩達LeCun神經網路
- LSTM神經網路神經網路