笔记
浅层/深层神经网络
神经网络的输入层(the input layer):接收输入信号(值)并将其传递至下一层,但不对输入信号(值)执行任何运算,没有自己的权重值和偏置值。
神经网络的隐藏层(a hidden layer):在训练集中,这些中间节点的真正数值是无法看到的。
输出层(the output layer):接收来自最后一个隐藏层的输入,输出预测值。
如图是一个双层神经网络,由于计算网络的层数时,通常不考虑输入层,因此图中隐藏层是第一层,输出层是第二层,该神经网络也称作单隐层神经网络(a single hidden layer neural network)。
符号表示
-
n[L]表示第L层隐藏单元数
-
上标[]表示相关层数,输入矩阵记为 a[0],第L层隐藏层输出记为a[L],第L层隐藏层的参数W和b记为W[L]和b[L]
-
下标表示相关神经元,输入层的输入 x p x_{p} xp记为 a p [ 0 ] a^{[0]}_{p} ap[0],第L隐藏层的第p个神经元记为 a p [ L ] a^{[L]}_{p} ap[L]
-
上标()表示对应样本,第m个样本的第L隐藏层的第p个神经元记为 a p [ L ] ( m ) a^{[L](m)}_{p} ap[L](m)
输 入 层 a [ 0 ] = x = [ x 1 x 2 x 3 . . . x p ] 隐 藏 层 a [ L ] = [ a 1 [ L ] a 2 [ L ] a 3 [ L ] . . . a p [ L ] ] \begin{aligned} 输入层 && a^{[0]} = x = \begin{bmatrix} x_{1}\\ x_{2}\\ x_{3}\\ .\\ .\\ .\\ x_{p} \end{bmatrix} && 隐藏层 && a^{[L]} = \begin{bmatrix} a^{[L]}_{1}\\ a^{[L]}_{2}\\ a^{[L]}_{3}\\ .\\ .\\ .\\ a^{[L]}_{p} \end{bmatrix} \end{aligned} 输入层a[0]=x=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡x1x2x3...xp⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤隐藏层a[L]=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡a1[L]a2[L]a3[L]...ap[L]⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤
深层神经网络的优势
- 神经网络从左到右,神经元提取的特征从简单到复杂。特征复杂度与神经网络层数成正相关。特征越来越复杂,功能也越来越强大。
- 减少神经元个数,从而减少计算量
- 对实际问题进行建模时,尽量先选择层数少的神经网络模型,符合奥卡姆剃刀定律(Occam’s Razor)。对于比较复杂的问题,再使用较深的神经网络模型。
计算神经网络的输出
核对矩阵
样 本 数 量 为 m , 特 征 向 量 维 度 为 n [ 0 ] X 的 维 度 为 ( n [ 0 ] , m ) 令 n [ 0 ] = p , 即 X 的 维 度 为 ( p , m ) X = [ x 1 ( 1 ) x 1 ( 2 ) . . . x 1 ( m ) x 2 ( 1 ) x 2 ( 2 ) . . . x 2 ( m ) . . . . . . . . . x p ( 1 ) x p ( 2 ) . . . x p ( m ) ] 第 L 层 神 经 元 个 数 为 n [ L ] A [ L ] 的 维 度 为 ( n [ L ] , m ) 令 n [ L ] = p , 即 A [ L ] 的 维 度 为 ( p , m ) A [ L ] = [ a 1 [ L ] ( 1 ) a 1 [ L ] ( 2 ) . . . a 1 [ L ] ( m ) a 2 [ L ] ( 1 ) a 2 [ L ] ( 2 ) . . . a 2 [ L ] ( m ) . . . . . . . . . a p [ L ] ( 1 ) a p [ L ] ( 2