爲何深度學習發展了
數據
- 對於小量數據來講,神經網絡表現比線性迴歸、SVM
- 對於大量數據來講神經網絡比SVM好
- 對於大量數據來講,大的網絡比小的網絡好
- 因爲電腦的大量使用數據愈來愈多
計算
- GPUs.
- Powerful CPUS.
- Distributed computing.
- ASICs
算法發展
Relu等新的技巧提出html
Logistics Regression
git
Numpy
reshape的計算代價很小,因此你不肯定數據維度的時候均可以放上
一些解決潛在bug的trick
- 若是不設置向量的維度,那麼默認值會是(m,),而且轉置操做不會使用,你必須將其reshape成(m,1)。儘可能不要使用rank=1的矩陣
- 計算前嘗試檢驗維度,如
assert(a.shape == (5,1))
- 若是發現了rank=1的矩陣,作reshape
作了歸一化以後梯度降低更易收斂
激活函數
- tanh在隱層使用會比較好(mean=0)
- sigmoid和tanh會存在問題,由於當值極小或極大會形成梯度接近零
- relu更加經常使用
- 選擇激活函數的準則:若是你的分類結果是0和1,用sigmoid,不然用relu
對於權值要作隨機初始化
爲何要深層網絡
Reference
https://github.com/mbadry1/DeepLearning.ai-Summarygithub