cs231n 学习笔记(5)——神经网络part1:建立神经网络架构
生活随笔
收集整理的這篇文章主要介紹了
cs231n 学习笔记(5)——神经网络part1:建立神经网络架构
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
引言:
學習神經網絡并不是一定要了解人腦神經結構。如前所屬,線性分類器可以用公式s=Wx來表示,其中X表示一張圖片,是一個[3072*1]的列向量,包含了一副圖像里的所有像素點。W是[10*3072]的參數矩陣。兩個矩陣相乘的結果是一個[10*1]的列向量,表示了這幅圖在分類時,每個類別的得分。對線性分類器進行改進, s=W2max(0,W1x),其中W1選擇[100*3072]的矩陣,max是非線性計算,可以濾除所有的負數結果。W2是一個[10*100]的矩陣,進過相乘,最終得到的仍舊是一個[10*1]的列向量,即每個分類的得分。在改進的算法中非線性運算是關鍵,若舍棄,W1和W2直接相乘后,判別函數將回歸線性函數。W1和W2可以通過SGD(stochastic gradient descent)算法優化取得。這個改進的算法就是一個最簡單的二層神經網絡。再進一步改進,最簡單的三層神經網絡可以用公式s=W3max(0,W2max(0,W1x))來表示。W1,W2,W3矩陣中的所有參數都可以通過學習獲得。神經建模
最早神經網絡領域研究的是如何對神經網絡的生理結構進行模擬。如今,神經網絡是機器學習中的研究熱點。我們仍舊從最簡單的生理神經網絡機制入手,來了解神經網絡。生理刺激與連接
大腦的最基本計算單元是神經細胞,人腦包含860億神經細胞。這些細胞通過約10^14 - 10^15 個突觸相連接。生理神經和神經工作機制如下圖所示: 每一個神經細胞通過多個樹突( dendrites )獲取輸入,進過計算將結果通過軸突(axon)輸出。軸突連接著另一個神經細胞的樹突。將計算結果傳遞給另一個神經細胞。如圖左所示。圖右是對神經生理結果的建模。每一個樹突的輸入用WiXi(i=0,1,2,3...)表示。神經細胞將每個樹突的輸入相加,并加上修正項b。將結果帶入激活函數f,激活函數的結果表示了與輸出端相連的另一個神經細胞的樹突被激活的發生率。sigmoid是常用的激活函數,其輸出在0-1之間。神經建模代碼如下:
class Neuron(object):# ... def forward(inputs):""" assume inputs and weights are 1-D numpy arrays and bias is a number """cell_body_sum = np.sum(inputs * self.weights) + self.biasfiring_rate = 1.0 / (1.0 + math.exp(-cell_body_sum)) # sigmoid activation functionreturn firing_rae換句話說,每一個神經用輸入和自身的參數W做內積再加上偏置量b,最后將結果帶入激活函數給出神經計算的輸出結果。
總結
以上是生活随笔為你收集整理的cs231n 学习笔记(5)——神经网络part1:建立神经网络架构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么看bios启动时间 BIOS启动速度
- 下一篇: 怎么不自动打开优盘 优盘怎样自动打开?