一名工程師對於深度學習的理解-神經網路基礎ANN
按要求轉載自雲棲社區
作者 doflamingo
序
讀書期間對於深度學習也有涉及,不過只是皮毛,在這個數據和演算法的時代,也需要更加貼近演算法。於是從一名工程師角度出發,希望通過幾篇文章,將深度學習基礎記錄下來,同時也是對於自己學習的總結和積累。總體思路是ANN-CNN-DNN,中間想起來有什麼忘記的,也會加番。
神經網路概述
這是一張典型的人工神經網路的圖,圖中的節點稱為神經元,圖共分為三層,第一層為輸入層,第二層為隱藏層,第三層為輸出層。輸入層接受外部世界的輸入,具像化為圖像的像素值,實體的特徵值等,輸出層概率預測結果,具像化為該圖像是人像,該實體為潛在商家。
神經元
一個神經元將多個輸入及其權值統一為下層節點的一個輸入。例如:
而神經元一般都使用sigmoid函數,至於為什麼使用sigmoid函數,也是個很有探討意義的問題,具體可以看這篇文章了解sigmoid的特性,http://www.tuicool.com/articles/uMraAb。
其中,w表示權重向量,x表示輸入向量,b為該節點的閾值。
那麼下面問題就是如何選擇合適的權重和閾值,構建出來合適的網路。
構建合適的網路
網路結構往往決定了演算法複雜度和模型可調度,輸出層主要由向量決定,輸出層主要由預測類型決定,主要問題就在中間層數和節點數的選擇上,節點數和層數越多意味著模型可調節性越強,預測結果的粒度越細,但同時也意味著計算複雜度越高。經驗中間層一般選1-2層,節點數作為可調參數。
選擇合適權重和閾值
首先,定義損失函數,損失函數的意義在於對於訓練集評價預測結果和真實結果之間的差異:
該損失函數其實是預測結果與真實結果之間的方差
我們希望通過調整權重w和閾值b的值來使預測結果和真實結果之間的差更小。相當於在一個解空間中尋找最優解。解法有很多,如梯度下降法,擬牛頓法等。
梯度下降法
通過上述公式可以看出,對於損失函數的變化可以描述為損失在每個維度v上的變化值之和,用向量表示為
為了是損失更小而不是更大,損失的變化應該小於0,於是取
則,損失的下降可以表示為
反向傳播
反向傳播其實是對於當一次預測結束後,評估每個參數對於預測結果誤差的貢獻,並對其進行調整,調整方法可以通過損失函數對於權值的求導得到:
通過多次迭代,獲得損失函數的極小值。步長決定了函數的收斂速度。
小結下:
人工神經網路就好像一個在陌生的城市迷路的孩子,每走一步都對該步進行評估,計算其到達目的地的可能性,並逐漸走到目的地。人工神經網路比較重要的有三部分:
1. 結構:層級網路
2. 求解方法:梯度下降
3. 求解思想:反向傳播
如果,你想求職跳槽
需快速提升實戰技能
如果,你渴望大展身手
搏一席之地
如果,你想在數據時代
掌握主動權
那麼,你需要
實訓營助你一臂之力!
掃描海報二維碼,獲取成長機會
※第四範式胡時偉:讓數據科學家成為業務專家,再配一支技術軍團
※怎樣才能持續聘到優秀的數據人才?
※埃森哲發布AI行業報告:十大經濟影響和八大應對策
※騰訊在Github上開放Angel代碼、新一季度京東市值大漲與百度僅差6億美元
※吳恩達重出江湖創deepinglearning.ai,域名在老東家百度之下
TAG:大數據文摘 |
※人工智慧使用深度學習訓練通用的對抗修補程序攻擊RCNN網路
※深度學習第6期:循環神經網路RNN
※萬字長文概述NLP中的深度學習技術之循環神經網路
※深度學習與神經網路概述
※深度學習的NLP工具
※萬字長文概述NLP中的深度學習技術之卷積神經網路
※深度強化學習-DQN
※用於深度強化學習的結構化控制網路(ICML 論文講解)
※谷歌開源強化學習深度規劃網路 PlaNet
※深度學習三人行-TF訓練DNN之進階
※AI在網路安全領域的應用:機器學習 VS.深度學習
※AI 人工智慧的深度學習
※用AI設計微波集成電路,清華大學等提出深度強化學習方法RINN
※學界 | 密歇根州立大學提出NestDNN:動態分配多任務資源的移動端深度學習框架
※多GPU並行計算訓練深度神經網路
※密歇根州立大學NestDNN:動態分配多任務資源移動端深度學習框架
※AI的口述歷史:深度學習三巨頭講述神經網路復興史
※學術報告 NVIDIA何琨:NVIDIA 深度學習加速工具
※IBM正在研製通用型深度學習晶元
※AWS發布深度學習容器和AI基礎設施新選項