本专栏是网易云课堂人工智能课程《神经网络与深度学习》的学习笔记,视频由网易云课堂与 deeplearning.ai 联合出品,主讲人是吴恩达 Andrew Ng 教授。感兴趣的网友可以观看网易云课堂的视频进行深入学习,视频的链接如下:
神经网络和深度学习 - 网易云课堂
也欢迎对神经网络与深度学习感兴趣的网友一起交流 ~
目录
1 深层神经网络
2 为什么使用深层表示
3 参数与超参数
1 深层神经网络
从技术层面上说,Logistic 回归是单层神经网络(1-Layer Neural Network)。前几年在人工智能机器学习社区中,大家发觉有些函数只有非常深层的神经网络能够学习,而浅一些的模型通常无法学习。
在处理复杂问题的时候,预先准确地判断神经网络的深度是困难的。所以先尝试单层或双层神经网络,之后再尝试深层神经网络(Deep Neural Network)。神经网络的层数可以看作自由选择的超参数(Hyper Parameter)。
2 为什么使用深层表示
深度神经网络可以解决很多问题,深度神经网络的神经元数量不一定很多,但是必须有深度,即包含多个隐藏层。为什么深层神经网络能起作用?
假设你正在构建一个人脸识别系统,神经网络的第一层可以看作特征检测器,或者边缘检测器,有的神经元寻找水平方向的特征,另外一些神经元寻找其他方向的特征,例如垂直,左斜,右斜等等。
然后第二层神经元将前面寻找到的特征组合起来,寻找面部特征,比如眼睛,鼻子等等。后面的神经元进一步组合前面的特征,最后实现不同人脸的识别。
通常复杂问题的表示,需要低阶特征和高阶特征。可以认为,在神经网络中,前几层神经元用于寻找低阶特征(细节部分),后几层神经元则寻找高阶特征(整体部分),并且高阶特征是在低阶特征的基础上寻找与得出的。
另一个关于深层神经网络为什么有效的理论来源于电路理论。对于奇偶校验电路,n 个输入展开会得到 个最小项。也就是说对于一个深层神经网络,如果用浅层神经网络替代它,浅层网络与深层网络的神经元数量呈指数关系。
3 参数与超参数
如果你希望神经网络有效运行,你还需要了解参数和超参数(Hyperparameter)。当你使用神经网络算法训练模型时,你需要设定一些算法的参数,例如学习率(learning rate)、梯度下降法迭代的次数、隐藏层的数量、隐藏单元的数量等等。
今天的深度学习是一个经验性的过程。在训练模型的过程中,刚开始你并不知道超参数如何选择,因此需要尝试不同的值,需要通过编写代码与实验,检验超参数是否合适。