神经网络常用术语
神经元
M-P神经元模型是按照生物神经元的结构和工作原理构造出来的一个抽象的和简化了的人工神经元模型。如图,神经元网络有许多并行运算、功能简单的神经元组成,神经元是构成神经网络的基本元素。
- x j x_{j} xj:从j神经元传来的输入信号
- w i j w_{ij} wij:从j到i的权值
- θ \theta θ:偏置量
神经元i的输出与输入表达式为:
n
e
t
i
=
∑
j
=
1
n
x
j
−
θ
;
y
i
=
f
(
n
e
t
i
)
net_{i} = \sum_{j=1}^n x_{j} - \theta ; y_{i} = f(net_{i})
neti=j=1∑nxj−θ;yi=f(neti)
f’()被称为激活函数或是转移函数,net称为净激活。
净激活为正,神经元处于激活状态;若为负,处于抑制状态。
权重
当输入进入神经元时,它会乘以一个权重。神经元对权重进行随机初始化,并在模型训练的过程中更新这些权重。
a为输入,w为权重
y
=
a
×
w
y = a\times w
y=a×w
偏置
除了权重之外,另一个被应用于输入的线性分量被称之为偏置。他的目的是改变输入与权重相乘结果的范围。
b为偏置
y
=
a
×
w
+
b
y = a\times w + b
y=a×w+b
激活函数
激活函数的主要作用是加入非线性因素,使神经元的表达能力更强,在神经网络中至关重要。所选取的激活函数需要要求其处处可微。
神经网络可用的激活函数通常有,sigmoid、tanh、ReLU、softmax,
在TensorFlow中可用的激活函数有:
命令 | 描述 |
---|---|
tf.nn.sigmoid(x,name=None) | y y y = 1 1 + e − x \frac{1}{1+e^-x} 1+e−x1 |
tf.nn.tanh(x,name=None) | 双曲正切激活函数 |
tf.nn.relu(features,name=None) | 整流函数: m a x max max ( f e a t u r e s , 0 ) (features,0) (features,0) |
tf.nn.sigmoid(x,name=None) | y y y = 1 1 + e − x \frac{1}{1+e^-x} 1+e−x1 |
//此表格未完待更新
输入层隐藏层
输入层是接收输入的那一层,本质上是网络的第一层,而输出层是生成输出的那一层。处理层是网络的隐藏层。
正向传播和反向传播
正向传播是指输入通过隐藏层到输出层的运动。在正向传播的过程中,信息沿着一个单一方向前进。输入层将输入提供给隐藏层,然后生成输出。在此过程中是没有反向运动的。
使用损失函数的梯度权重更新,被称为反向传播。当定义神经网络时,为节点分配随机权重和偏差值,一旦收到单次迭代的输出,就可以计算出网络的错误。然后将该错误与损失函数的梯度一起从外层通过隐藏层回流,以更新网络的权重。
损失函数
当建立一个网络时,网络试图将输出预测得尽可能接近实际值。可使用损失函数(成本函数)来衡量网络的准确性,以提高预测精度并减少误差,从而最大限度地降低损失。最优化的输出是那些损失函数值最小的输出。
损失函数
损
失
函
数
=
L
o
s
s
(
z
)
;
损失函数 = Loss(z) ;
损失函数=Loss(z);
*梯度下降函数, lr 学习率 *
w
t
+
1
=
w
t
−
l
r
×
d
(
L
o
s
s
(
z
)
)
d
w
t
;
w_{t+1} = w_{t} - lr \times \frac{d(Loss(z))}{dw_{t}} ;
wt+1=wt−lr×dwtd(Loss(z));
各种常见损失函数
学习率
学习率被定义为每次迭代过程中损失函数最小化的量,即下降到损失函数的最小值的速率。学习率的额选择很关键,若学习率偏大,则最佳解决方案可能会被错过;反之,网络优化效率会非常低。