神经网络
单层神经网络
- 感知机模型 + 激活函数输出
感知机
- MP模型
激活函数
把神经网络模型线性输出变为非线性输出
常用激活函数
sigmoid
- sigmoid(x) = 1 / (1 + exp(-x))
- 适用于预测概率作为输出的模型
- 优点
- 把输入值压缩到0-1之间
- 物理意义上最接近生物神经元
- 缺点
- 存在梯度消失问题
- 梯度过早消失,进而导致收敛速度较慢
ReLU
- ReLU(x) = max( 0, x )
- 优点
- 解决了梯度消失问题
- 计算速度非常快
- 缺点
- 不是以0为均值的函数
- 某些神经元可能永远不会被激活
tanh
- tanh(x) = ( exp(x) - exp(-x) ) / ( exp(x) ± exp(-x) )
- 优点
- 是以0为均值的函数
- 输出范围-1到1
- 缺点
- 存在梯度消失问题
数据预处理
归一化 Normalization 或 Min-Max Scaling
归一化常用公式
- (x - min(x)) / (max(x) - min(x))
- x / max(x)
- …
归一化指数函数 Softmax
- 把数据转为0-1之间的数值
- Softmax(x) = exp(x) / sum( exp(c1) + exp(c2) + … )
One-Hot编码:一位有效编码
常用的对分类变量进行编码的方法
自定义分类类型
例如猫、狗,one-hot设定:
- [0, 1]:表示猫
- [1, 0]:表示狗
全连接神经网络
网络结构
- 输入层
- 隐藏层
- 输出层
前向传播
- 输入层–>…–>输出层
损失函数
- 均方差损失函数
- 交叉熵损失函数
反向传播
- 前向传播–>loss–>反向传播(更新参数)
- 链式法则
梯度下降算法
- 一种优化算法
全连接-矩阵相乘
- 神经网络运算==矩阵相乘
- 更好的表示能力影响点
- 更深的层数
- 更多的神经元节点