问题
当特征数量很大时,传统算法计算复杂度过高;当需要学习复杂非线性关系时,多项式特征会导致特征爆炸
基本思路
神经元模型
神经网络由多层神经元组成:
- 输入层 (Input Layer):接收原始特征
- 隐藏层 (Hidden Layer):进行特征变换
- 输出层 (Output Layer):产生最终预测
前向传播 (Forward Propagation)
设第层有个神经元,激活函数为:
其中:
- :第层的激活值
- :第层到第层的权重矩阵
- :激活函数(通常为sigmoid函数)
详细计算过程:
代价函数
对于K类分类问题:
最小化代价函数——反向传播算法 (Backpropagation)
- 前向传播:计算所有层的激活值
- 计算输出层误差:
- 反向传播误差:
- 计算梯度:
- 之后可使用梯度下降法处理
优化
权重初始化
随机初始化:避免对称性破缺
其中
梯度检验 (Gradient Checking)
使用数值方法验证反向传播的正确性:
网络架构选择
- 隐藏层数:通常1-3层足够
- 隐藏单元数:通常比输入特征数多,但要防止过拟合
- 输出层:
- 二分类:1个单元
- 多分类:K个单元(K个类别)