一、一些有關神經網絡的符號約定
這個在上篇blog中提了一部分,這裏補充剩下的一部分
我們對於加權函數一般記爲z=w^T x+b,而激活函數一般使用a=g(z)表示
對於最終的輸出我們不妨記爲y hat,儘管這個真的沒有什麼特別的意義
二、神經網絡的向量化
在之前的學習中我們知道,無論是從書寫計算等使用者的角度出發,還是從計算機尤其是python語言所自帶的numpy包計算特性的角度出發,使用向量化計算整個神經網絡是很有必要的。
我們模仿之前學習中所使用的那種向量化的方法即可完成我們所預定的目標。
對於這個具體的例子,我們可以把每一層看做一列,所以每一層的同種係數(w b)一次寫下來自然就是一個列向量。
然後對於每組測試數據,我們可以吧係數橫着寫過來。於是就形成了一個係數矩陣。
同理激活函數也可以跟係數一樣寫成一個列向量的形式。
這裏的處理難度不是很大,但背後的意義卻很大。
首先如上文所言,向量化能加快整個神經網絡在編程實現時的運算速度,而運算速度很大程度上決定了一個神經網絡的性能。
其次,這種向量化的思路其實在某種程度上蘊藏了一種等價的思想,即每種係數內部之間兩兩是等價的,這個其實用白話來說就是我們在隨後的計算中,只要完成了某個變量的關係式,其餘的同列的關係式直接for循環即可,這對於簡化思維難度也很有幫助。