- TensorFlow從零開始學
- 侯倫青等
- 809字
- 2020-05-22 17:14:36
第3章 前饋神經網絡
本章內容
◎感知器模型
◎多層神經網絡中常用的激活函數
◎損失函數和輸出單元的選擇
◎TensorFlow實現神經網絡
從本章起,我們將正式開始介紹深度神經網絡模型,以及學習如何使用TensorFlow實現深度學習算法。人工神經網絡(簡稱神經網絡)在一定程度上受到了生物學的啟發,期望通過一定的拓撲結構來模擬生物的神經系統,是一種主要的連接主義模型(人工智能三大主義:符號主義、連接主義和行為主義)。
本章將從最簡單的神經網絡模型——感知器模型開始,首先了解感知器模型(單層神經網絡)能夠解決什么樣的問題,以及它所存在的局限性。為了克服單層神經網絡的局限性,我們必須拓展到多層神經網絡。圍繞多層神經網絡,我們會進一步介紹常用的激活函數等。本章的內容是深度學習的基礎,對于理解后續章節的內容非常重要。
深度學習的概念是從人工神經網絡的研究中發展而來的,早期的感知器模型只能解決簡單的線性分類問題,后來發現通過增加網絡的層數可以解決類似于“異或問題”的線性不可分問題,這種多層的神經網絡又被稱為多層感知器。對于多層感知器,我們使用反向傳播算法進行模型的訓練,但是我們發現反向傳播算法有著收斂速度慢、容易陷入局部最優等缺點,限于當時計算機的算力及數據量的不足,反向傳播算法無法很好地訓練多層感知器。另外,當時使用的激活函數也存在著梯度消失的問題,這使得人工神經網絡的發展幾乎陷入了停滯狀態。
為了讓多層神經網絡能夠訓練,學者們探索了很多的改進方案,直到2006年杰弗里·辛頓等人基于深度置信網絡(DBN)提出了無監督貪心逐層訓練算法,才讓這一問題的解決有了希望,深度學習的概念也是在這一年由杰弗里·辛頓等人提出的。
本章內容主要包括四個部分:第一部分介紹神經網絡的基本結構,從基本的感知器模型到多層的神經網絡結構;第二部分介紹神經網絡中常用的激活函數;第三部分介紹損失函數和輸出單元的選擇;第四部分是使用TensorFlow搭建一個簡單的多層神經網絡,實現MNIST手寫數字的識別。
本章知識結構圖
