问题

当特征数量很大时,传统算法计算复杂度过高;当需要学习复杂非线性关系时,多项式特征会导致特征爆炸

基本思路

神经元模型

神经网络由多层神经元组成:

  • 输入层 (Input Layer):接收原始特征
  • 隐藏层 (Hidden Layer):进行特征变换
  • 输出层 (Output Layer):产生最终预测

前向传播 (Forward Propagation)

设第层有个神经元,激活函数为

其中:

  • :第层的激活值
  • :第层到第层的权重矩阵
  • :激活函数(通常为sigmoid函数)

详细计算过程

代价函数

对于K类分类问题:

最小化代价函数——反向传播算法 (Backpropagation)

  1. 前向传播:计算所有层的激活值
  2. 计算输出层误差
  3. 反向传播误差
  4. 计算梯度
  5. 之后可使用梯度下降法处理

优化

权重初始化

随机初始化:避免对称性破缺

其中

梯度检验 (Gradient Checking)

使用数值方法验证反向传播的正确性:

网络架构选择

  • 隐藏层数:通常1-3层足够
  • 隐藏单元数:通常比输入特征数多,但要防止过拟合
  • 输出层
    • 二分类:1个单元
    • 多分类:K个单元(K个类别)