《Neural Networks and Deep Learning》(五)笔记
神经网络可以计算任何函数的可视化证明
神经网络的一个最显著的事实就是它可以计算任何的函数,也就是说对定某种复杂而奇特的函数 f ( x ) f(x) f(x),不管这个函数是什么样的,总会确保有一个神经网络能够对任何可能的输入 x x x,其值 f ( x ) f(x) f(x)是网络的输出。

地址:(http://www.dartmouth.edu/~gvc/Cybenko_MCSS.pdf)
另外一篇重要的早期论文是:Multilayer feedforward networks are universal approximators
地址:(http://www.sciencedirect.com/science/article/pii/0893608089900208)
   \;
深度神经网络为何很难训练?
在某些深度神经网络中, 在我们隐藏层BP的时候梯度倾向于变小. 这意味着在前面的隐藏层中的神经元学习速度要慢于后面的隐藏层. 这儿我们只在一个网络中发现了这个现象, 其实在多数的神经网络中存在着更加根本的导致这个现象出现的原因. 这个现象也被称作是消失的梯度问题(vanishing gradient problem ). 同样会产生问题——在前面的层中的梯度会变得非常大!这也叫做激增的梯度问题(exploding gradient problem),这也没比消失的梯度问题更好处理. 更加一般地说, 在深度神经网络中的梯度是不稳定的, 在前面的层中或会消失, 或会激增. 这种不稳定性才是深度神经网络中基于梯度学习的根本问题 .
三层隐藏层的神经网络

这里, w 1 , w 2 , … w_{1}, w_{2}, \dots w1,w2,…是权重, b 1 , b 2 , … b_{1}, b_{2}, \ldots b1,b2,…是偏偏置, C C C则是某个代价函数
梯度整个表达式: ∂ C ∂ b 1 = σ ′ ( z 1 ) w 2 σ ′ ( z 2 ) w 3 σ ′ ( z 3 ) w 4 σ ′ ( z 4 ) ∂ C ∂ a 4 \frac{\partial C}{\partial b_{1}}=\sigma^{\prime}\left(z_{1}\right) w_{2} \sigma^{\prime}\left(z_{2}\right) w_{3} \sigma^{\prime}\left(z_{3}\right) w_{4} \sigma^{\prime}\left(z_{4}\right) \frac{\partial C}{\partial a_{4}} ∂b1∂C=σ′(z1)w2σ′(z2)