Neural network
这篇blog是阅读prince Chapter3&4 之后的一些感想与困惑的解答
Terminology
shallow neural networks: hidden layer层数为1的神经网络
deep neural networks: hidden layer层数大于1的神经网络
shallow nn和deep nn 都属于MLP(multiple linear perceptron).
feed forward network: 信息只向前流动,没有循环. 从input->output是单向的。没有 RNN/LSTM 那种 feedback,没有自循环。
e.g. CNN,ResNet, MLP都是FFN
fully connected network: 相邻两层的每个神经元都相连的nn
universal approximation theorem
定理内容:一个含有足够多hidden units的single hidden layer neural network可以近似任意连续函数
single hidden layer nn 的输入输出可以写成(假设x,y,h都是只有一个神经元) 可以看作从 开始的一个折线函数。 随着hidden layer的神经元数量的增加,我们可以增加多段折线。比如说,我们现在在hidden layer 里面增加一个神经元,那么输入输出可以写成 , 假设 , 那么我们就在 构造了一个 的折线, 在 构造了一个 的折线。 当我们不断增加神经元的时候,我们用 控制折线的区间范围,用 控制折线的斜率和截距, 这样我们就获得了一个分段函数来拟合原函数。
那么随着hidden layer神经元数量趋向于无穷的时候,我们可以构造出无穷多段折线,从而近似任意连续函数。
why deep neural network
现代模型通常不会在单个hidden layer使用很多神经元,而是增加hidden layer的层数。换句话说,就是不增加神经网络的宽度,而是增加深度。
shallow nn和 deep nn 都能拟合任意函数,但是deep nn的效率更高。换句话说,shallow nn需要指数级的神经元才能达到deep nn线性数量的神经元的拟合效果。
在shallow nn中, 每增加一个神经元,线性分段区域增加了一个,但是在deep nn中,每增加一层hidden layer,线性分段区域都翻了一倍。
小问题: Consider a deep neural network with a single input, a single output, and K hidden layers, each of which contains D hidden units. Show that this network will have a total of parameters. (提示: 对于每个神经元,都需要一个weight和一个bias)