多层感知机
由输入层(input layer)、隐藏层(hidden layer)、输出层(output layer)
输入层线性变换后数据进入隐藏层
隐藏层中进行非线性变换(隐藏层可以不止一层)
最后进行第二次线性变换之后到达输出层
最后进行第二次线性变换之后到达输出层

线性变换(linear) :y = wx + b ,w为权重(weight) ,b为偏置(bias)

激活函数
激活函数一般是非线性函数
引入非线性激活函数的目的是提高神经网络的非线性拟合能力
如果激活函数是线性函数的话那么只能得到与输入线性相关的输出
常见的激活函数
ReLu函数(线性整流函数)
f(x) = max( 0 , x )
f'(x) = 0 , x < 0 = undifined , x = 0 = 1 , x > 0
不存在饱和区,神经网络中经常使用
Sigmoid(S型函数,也叫逻辑函数)
f(x) = 1/( 1 + e ^ (-x) )
f'(x) = f(x) * ( 1 – f(x) )
存在饱和区,常用于RNN以及二分类中,做二分类的输出的激活函数,做循环神经网络中门控单元的激活函数
Tanh(双曲正切函数)
f(x) = ( e^x – e^(-x) ) / ( e^x + e^(-x) )
f'(x) = 1 – f(x) ^ 2
零均值,同样存在饱和区,不利于梯度传播,中间的是线性区

 

 

正向传播(forward propagation)
从输入层开始,将上一次输出作为下一层输入,一层一层传到输出层
正向传播是观测并计算损失值的过程
反向传播(back propagation)
从损失函数开始从后向前,梯度逐步传到第一层
用于权重更新,使网络输出更借鉴标签
反向传播是利用微积分中的链式求导法则得到第一层的值
通过计算损失值对各个参数的梯度,调整各个参数的系数使得损失值降低

损失函数(loss function)
描述单样本的差异值,度量预测值与真实值差异程度的运算函数
常见的损失函数有
MSE(均方误差)
L2(欧氏距离)
L1(曼哈顿距离)
Smooth L1
huber

参考资料:

神经网络入门基础知识 – 知乎 (zhihu.com)

神经网络中的前向传播和反向传播通俗推导过程一 – 知乎 (zhihu.com)

损失函数(Loss Function) – 知乎 (zhihu.com)