NO.1:自學tensorflow之路------神經網絡背景知識 - 程式人生
文章推薦指數: 80 %
手頭只有一本《tensorflow:實戰Google深度學習框架》,而這本書又講的非常粗淺。
tensorflow中文社區中的翻譯的谷歌官方教程十分詳細,是自學tensorflow的 ...
程式人生>>NO.1:自學tensorflow之路------神經網絡背景知識
NO.1:自學tensorflow之路------神經網絡背景知識
阿新••發佈:2018-03-07
英文梯度下降傳播激活Gosubdoc統計學又是引言
從本周,我將開始tensorflow的學習。
手頭只有一本《tensorflow:實戰Google深度學習框架》,而這本書又講的非常粗淺。
tensorflow中文社區中的翻譯的谷歌官方教程十分詳細,是自學tensorflow的好幫手,當然如果是英文熟手可以直接看谷歌官方給出的原版教程(博主英語是靠谷歌翻譯和百度翻譯救活的)。
本篇博客主要講述機器學習的發展過程,以及BP神經網絡的主要內容。
不涉及tensorflow的編程。
具體BP神經網絡tensorflow的實現將在下一篇博文中展示。
正文
機器學習背景
在20世紀以來,任何一門技術的發展都離不開學科間的交融,計算機技術的發展,以及才華橫溢的工作者的創新。
機器學習(MachineLearning,ML)是一門多領域交叉學科,涉及概率論、統計學、逼近論、凸分析、算法復雜度理論等多門學科。
專門研究計算機怎樣模擬或實現人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的性能。
人類的大腦十分神奇,它幫助人們認識,學習這個世界。
神經網絡不僅是生物學習記憶的一種結構,同樣也是機器學習的基礎。
將人類的單個神經元傳遞處理信息的過程簡化,並用數學表示,就是神經網絡的來源。
圖1.生物神經元(上)和神經網絡神經元(下)
早在1958年,Rosenblatt就提出了名為感知機的線性分類模型。
但是後來研究人員發現它對非線性問題難以處理,並且當時計算機計算能力低下,難以完成復雜的計算過程。
神經網絡的第一次大的革新是在1974年,PaulWerbos提出了反向傳播算法,為神經網絡的訓練提供了良好的方法。
讓神經網絡出現在各種應用場景中,也逐漸出現了多種多樣的神經網絡結構。
1992年,Vapnik等人提出了支持向量機,支持向量機方法是建立在統計學習理論的VC維理論和結構風險最小原理基礎上的,根據有限的樣本信息在模型的復雜性(即對特定訓練樣本的學習精度)和學習能力(即無錯誤地識別任意樣本的能力)之間尋求最佳折中,以求獲得最好的泛化能力。
從此,一場支持向量機與神經網絡的較量就展開了。
並且神經網絡在後來的較量中逐漸敗下陣來。
究其原因主要是由於當時計算機的計算能力依然難以滿足多層神經網絡訓練,計算的要求,同時神經網絡還存在著梯度消失的現象,使得多層神經網絡難以實現。
在2006年,深度學習(DeepLearning)算法的提出是神經網絡的第二次大的革新。
谷歌AlphaGo在圍棋中戰勝李世石,點燃了深度學習的一個新的熱潮。
所以本人就在這個浪頭上開始跟風了,希望能在明年畢業之前完成畢設論文。
BP神經網絡
一個3層的BP神經網絡,是學習神經網絡的基礎。
雖然如今很多工具都有現成的BP神經網絡工具,但是如果不能深入了解神經網絡內部實際的運作,也將很難對其進行創新。
這裏將介紹最簡單的BP神經網絡的正向傳播,反向傳播過程。
正向傳播
一般的BP神經網絡是由輸入層、隱含層和輸出層三層神經網絡組成。
輸入層神經元的個數等於輸入變量的個數,輸出層神經元的個數等於輸出變量的個數,隱含層神經元的個數一般通過經驗法選取。
變量從輸入層傳播到隱藏層,其計算過程如下所示:
其中,xi為輸入層神經元i的輸入變量,vij輸入層神經元i到隱含層神經元j之間突觸的權值,θj為隱含層神經元j的偏置,f()為隱含層激活函數,hj為隱含層神經元的輸出。
從輸入層到隱藏層的計算過程如下所示:
其中,g()為輸出層激活函數,yk為輸出層神經元k的輸出。
激活函數為神經網絡引入非線性因素,讓神經網絡可以解決線性模型不能解決的問題。
常用的又sigmoid函數與tanh函數,但這兩種都存在梯度消失的問題。
Re-lu函數可以解決梯度消失的問題,目前被大量使用。
這樣就講完了正向傳播的過程。
反向傳播
正向傳遞神經網絡,可以得到神經網絡輸出,隨後就可以得到神經網絡的誤差。
神經網絡反向傳播誤差,就可以得到神經元參數應該向最優值運動的方向。
通過多次的循環學習,就可以逐漸逼近最優的神經網絡參數,完成神經網絡的訓練。
輸出誤差函數為:
隱藏層誤差函數為:
其中,ok為系統實際輸出。
將誤差進行反向傳遞後,利用梯度下降法,分別讓誤差對應各層的權值和閾值求偏導數,以達到最優。
其表達式如下所示:
這樣就得到了誤差反向傳播的公式,通過設定合適的batch,就可以進行神經網絡的訓練了。
後記
由於平日學習用Matlab居多,而學習深度學習,tensorflow又是其目前最好用的工具之一。
希望一切努力不會付諸流水,與正在學習的朱軍共勉。
NO.1:自學tensorflow之路------神經網絡背景知識
網頁布局框架
«上一篇
前端之jQuery下一篇»
相關推薦
NO.1:自學tensorflow之路------神經網絡背景知識
英文梯度下降傳播激活Gosubdoc統計學又是引言
從本周,我將開始tensorflow的學習。
手頭只...
NO.1:自學python之路
代碼流程圖意義.comlogontindex.php環境分享引言
人工智能如今越來越貼近生活,在這裏將記錄...
DeepLearning.ai學習筆記(四)卷積神經網絡--week1卷積神經網絡基礎知識介紹
除了lock還需要情況好處計算公式max位置網絡基礎一、計算機視覺
如圖示,之前課程中介紹的都是64*...
keras神經網絡開發知識筆記
modeputnumAIoutkeras大致代碼rasmnist數據集獲取60000個訓練樣本和...
NO.2:自學python之路
電腦安全++密碼詳細刪除耳機sort參數引言
本周初步認識了庫,並學習了Python中各種類型的變量和常用...
機器學習之BP神經網路以及tensorflow實現
BP(BackPropagation)神經網路簡介:
先介紹一下神經元,在生物神經網路中,每個神經元與其...
六天搞懂“深度學習”之二:神經網路
注意對比左右兩個框圖,用神經網路代替模型,用學習規則代替機器學習。
因此,神經網路是實現機器學習的一種重要模型,確定模型(神經網路)...
機器學習之BP神經網路演算法實現影象分類
BP演算法是一個迭代演算法,它的基本思想為:(1)先計算每一層的狀態和啟用值,直到最後一層(即訊號是前向傳播...
(Tensorflow之三)神經網路程式一
importtensorflowastf
fromnumpy.randomimportRandomState
...
AI相關TensorFlow-卷積神經網絡踩坑日記之一
一個模糊結果隊列二維圖片路徑降維支持日記上次寫完粗淺的BP算法介紹
本來應該繼續把卷積神經網絡算法寫...
搜尋
基礎教學
Mysql入門
Sql入門
Android入門
Docker入門
Go語言入門
Ruby程式入門
Python入門
Python進階
Django入門
Python爬蟲入門
最近訪問
NO.1:自學tensorflow之路------神經網絡背景知識
yiyecheer的專欄
Oracle11g監聽hang住解決辦法
No.2+Pytorch+實現RNN語言模型
Android系統介紹與框架
MATLAB實現由均勻分佈產生正態分佈和銳利分佈
layui給下拉框、按鈕狀態、時間賦初始值
幾何分佈和二項分佈有什麼區別?
如何從JM8.6的編碼端和解碼端提取濾波前的畫素值?
可拆分物品揹包問題
延伸文章資訊
- 1機器視覺自學、機器學習課程推薦在PTT/mobile01評價與討論
在Tensorflow 自學這個討論中,有超過5篇Ptt貼文,作者followwar也提到其實看到這串討論文真的心有戚戚焉目前AI工作2年多,是有一些心得... 其實AI方面的工作,更需要 ...
- 2機器學習自學筆記09: Keras2.0
Keras 介紹. Tensorflow 是目前最流行的machine learning庫之一。但是他沒有這麼好用tensorflow 和另一個功能相近的toolkit theano,這兩個都 ...
- 3azureml.interpret.common.constants.Tensorflow class
開始使用 · 參考結構 · 適用於Azure 的雲端採用架構 · Azure 結構完善的架構 · 設計模式 · 評量. 學習Azure. 自學學習路徑 · Pluralsight · 導學型課程.
- 4TensorFlow 學習日記Day1 人工智慧深度學習機器學習是什麼?
TensorFlow 學習日記Day1 人工智慧深度學習機器學習是什麼? 11th鐵人賽 · bear · 團隊菜雞自學. 2019-09-17 17:09: ...
- 5NO.1:自學tensorflow之路------神經網絡背景知識 - 程式人生
手頭只有一本《tensorflow:實戰Google深度學習框架》,而這本書又講的非常粗淺。tensorflow中文社區中的翻譯的谷歌官方教程十分詳細,是自學tensorflow的 ...