前馈神经网络(Feedforward Neural Network)通常由输入层(Input Layer),隐藏层(Hidden Layer1)神经网络的层数由隐藏层的个数和输出层的个数决定输出层(OutputLayer)组成。其中隐藏层可以有多个。如下图是一个3层的神经网络。
神经元属于逻辑回归,实际上神经网络就是将逻辑回归进行成百上千次
五个常见的激活函数:
Sigmoid函数:
σ(x) = 1 / (1 + e ^ (-x)) = σ`(x) = σ(x)(1 - σ(x)
Tanh函数:
Tanh(x) = 2 / (1 + e^(-2x)) - 1 = (e^x - e^(-x)) / (e^x + e(-x))
ReLU函数:
ReLU = max(0,x)
PReLU函数:
PRELU(x) = max(aix,x)
a:(斜率)一个可学习的参数,由数据决定。
ELU函数:
ELU(x) = max(0,x) + min(0,a(e^x - 1))
以上五种函数及其导数表
重要结论:g`(z) = g(z)(1 - g(z))
Y = Hθ(x) = g(θ^T x) = 1 / (1 + e ^ ( - θ^T x))
可得出:z = w^T + b,a = σ(z)
损失函数为:L(a,y) = -yloga - (1 - y)log(1 - a)
相关的计算图:
神经网络向前计算:
z1^[2] = w11^[2]x1 + w12^[2]x2 + w13^[2]x3 + b1^[2]
z2^[1] = w21^[1]x1 + w22^[1]x2 + w23^[1]x3 + b2^[1]
…………
zn^[m] = wn1^[m]x1 + wn2^[m]x2 + wn3^[m]x3 + bn^[m] =∑wni^[m]*x*i + bn[m] (i = 1,2,……)
简化公式:
wi[j]^t = [wi1^[j] wi2^[j] wi3^[j]……]
所以:
其中w1^[1]T的维度为(1,3)
zn^[m] = wn^[m]t * x + bn^[m],an[m] = σ(zn^[m])
将Z,W,B,A分别矩阵化得出:
然后公式为:Z[1] = W[1] * x + b[1]
所以:Z[n] = W[n] * A[n-1] + b[n]
前向传播最终公式:
反向传播:
Z^[1] = W^[1] x + b^[1]
*:元素相乘
dot:向量内积
mv:矩阵*向量
mm:矩阵相乘
批量归一化