通常指的是具有三层网络结构的浅层神经网络
神经网络的实质就是每一层隐藏层的生成, 都生成了新的特征, 新的特征在此生成新的征, 直到最新的特征能够很好的表示该模型为止. 这样就解决了线性不可分或特征选取不足或不精确等问题的产生.(线性不可分的实质就是特征不够)
神经网络是由一个个"神经元"的基本单元构成, 神经元结构由输入、计算单元和输出组成.
公式为:
, 其中W表示的是权重向量,
函数f为激活函数(通常为Sigmoid函数或者tanh双曲正切函数)
几种激活函数:
神经网络中主要的一些参数
- 网络的层数nL
- 网络权重和偏置(W, b)=(W(1), b(1), W(2), b(2)), 其中Wij(L)表示的是第L层的第j个神经元和第L+1层的第i个神经元之间的连接参数, bi(L)标识的是第L+1层的第i个神经元的偏置项
- 优点:
- 具有很强的非线性映射能力和柔性的网络结构.
- 缺点:
- 学习速度慢, 即使是简单的问题, 一般也需要几百上千次的学习才能收敛
- 容易陷入局部极小值
- 网络层数、神经元个数的选择没有相应的理论指导(靠经验) 对于越复杂的的数据分布, 神经网络需要越强的能力去对这批数据建模, 因此需要越多的隐含层节点数.
- 网络推广能力有限
损失函数:
损失函数求解推导过程:
- 目标: 使求得参数W和参数b使得损失函数J(W, b)达到最小值
- 步骤
BP神经网络中参数的设置
-
超参数
- 无法通过梯度下降法得到
- 属于非凸优化问题
- 解决方案: 经验法则选择超参数
-
非线性变换
- 常见的非线性函数
- sigmoid函数, 函数输出均值不为0
- tanh函数, 函数输出均值为0, 因此收敛性更好
- 常见的非线性函数
-
隐含层节点的个数: 对于越复杂的数据分布, 神经网络更多的隐含层节点个数去帮助建模
- BP算法推导较好的一篇文章
- 通俗易懂的神经网络文章
- 为什么反向其中的图解很不错, 比较详细的解释了反向传播 (BP算法避免了计算冗余, 对于每一个路径只访问一次就能求顶点对所有下层节点的偏导值)
- BP图例及详解










