1. 程式人生 > >《Andrew Ng深度學習》筆記2

《Andrew Ng深度學習》筆記2

時有 求和 計算過程 正是 並行 .com fun 使用 向量

神經網絡基礎

1.圖計算

技術分享圖片

計算時有兩種方法:正向傳播和反向傳播。正向傳播是從底層到頂層的計算過程,逐步推出所求公式。反向傳播是從頂層到底層,從已知的式子求出因變量的影響關系。

在這裏用到的反向傳播算法就是為了通過似然函數(成本函數)來確定要計算的參數。

技術分享圖片

在這裏,logistic回歸應用了反向傳播,主要是為了方便梯度下降算法的計算,來逐次逼近w和b。通過圖片看到,反向傳播其實就是微積分裏的“鏈式法則”。這塊可能要補補微積分才能更深入學習。這裏先跳過,反正是明白了logistic回歸中的梯度下降應用了反向傳播計算。

2.向量化

技術分享圖片

向量化的目的是加快計算速度。避免for之類的循環,消耗性能。在python中,使用np.function()函數實現向量化。

通過向量方式的形式表達,可以簡化計算,比如使用Python中的numpy庫,針對這些計算可以簡化為1行代碼,減少for之類的循環編寫,簡化計算。說到這裏,很有必要深入學學python。

3.Python中numpy的應用

技術分享圖片

這裏只是Python對向量化操作的一個例子,詳細是在numpy庫中,裏面的函數主要是為了矩陣等計算,方便代碼開發,加快速度。

Python中向量化的實質是,會把R變為向量化(SMID 並行多數據流),主要是把變量變為廣播形式。

技術分享圖片

在logistic回歸中,上圖左邊是一般的計算流程,右邊是經過向量化後的計算流程,很明顯減少for循環,只要是用到了numpy庫裏的函數。

但是在實際中藥用好numpy庫的向量化,裏面有一些坑。在行向量和列向量求和應該是出錯的,但是在python的numpy庫中會得到一個矩陣。所以在使用時要小心謹慎。

《Andrew Ng深度學習》筆記2