1基本概念
(1)机器学习
(2)用于神经网络的监督学习过程的三种典型算法
-
随机梯度下降算法(SGD): Δ ω i j = α δ i x j \Delta \omega _{ij}= \alpha \delta _{i}x_{j} Δωij=αδixj
训练完一个数据就更新一次权值 -
批量算法(batch):
每次用到所有的训练数据,最后取更新权值的平均值,最后只更新一次权值。
Δ ω i j = 1 N ∑ k = 1 N Δ ω i j ( k ) \Delta \omega_{ij}= \frac{1}{N}\sum_{k=1}^{N}\Delta \omega_{ij}(k) Δωij=N1k=1∑NΔωij(k)
Δ ω i j ( k ) \Delta \omega_{ij}(k) Δωij(k)是第k个训练数据的权值更新值
N为训练数据的总数
批量算法所需要的训练时间较长。 -
小批量算法(minibatch)
是批量算法与SGD的结合
小结:轮数(epoch):全部数据都参与训练的循环次数。即全部数据都参与了训练,称为一轮。而改变一次权值,被称为网络被训练了1次。在有N个训练数据的前提下,对于批量算法而言,每一轮训练的次数为1,因为其只在所有权值误差计算完以后才更新一次权值。而对于SGD而言,每一轮的训练次数为N,因为其每一组数据计算完都要更新一次权值。而对于小批量法,需要具体考虑其每次从中选择多少数据进行小批量处理。SGD的学习速度更快。
(3)单层神经网络仅能解决线性可分割问题,多层神经网络可以克服单层神经网络的局限性。另外,隐含层激活函数,不能采用线性函数,这样化简后,隐含层将失效。
(4)神经网络的分类
单层神经网络 | 多层神经网络 |
---|---|
浅层神经网络 /深度神经网络 | |
输入—输出 | 输入-单隐层-输出/输入-多隐层-输出 |
(5)代价函数,也称损失函数或目标函数。
代价函数与神经网络的监督学习有关,神经网络的误差越大,代价函数的值越大。
- 误差的平方和
J = ∑ i = 1 M 1 2 ( d i − y i ) 2 J=\sum_{i=1}^{M}\frac{1}{2}(d_{i}-y_{i})^{2} J=i=1∑M21(di−yi)2 - 交叉熵函数
交叉熵驱动的训练降低误差的速度更快。
其随误差的增大而呈几何上升趋势,即交叉熵函数对误差更敏感。在回归中,可不使用交叉熵函数驱动的学习规则,其他情况下,推荐使用。
J = ∑ i = 1 M [ − d i l n ( y i ) − ( 1 − d i ) l n ( 1 − y i ) ] J=\sum_{i=1}^{M}[-d_{i}ln(y_{i})-(1-d_{i})ln(1-y_{i})] J=i=1∑M[−diln(yi)−(1−di)ln(1−yi)]
(6)克服过拟合的重要方法:采用正则化将模型变得尽可能简单。
正则化的精华在于将权重之和引入到代价函数中。
J
=
∑
i
=
1
M
1
2
(
d
i
−
y
i
)
2
+
λ
1
2
∣
∣
ω
∣
∣
2
J=\sum_{i=1}^{M}\frac{1}{2}(d_{i}-y_{i})^{2}+\lambda \frac{1}{2}||\omega ||^{2}
J=i=1∑M21(di−yi)2+λ21∣∣ω∣∣2
J
=
∑
i
=
1
M
[
−
d
i
l
n
(
y
i
)
−
(
1
−
d
i
)
l
n
(
1
−
y
i
)
]
+
λ
1
2
∣
∣
ω
∣
∣
2
J=\sum_{i=1}^{M}[-d_{i}ln(y_{i})-(1-d_{i})ln(1-y_{i})]+\lambda \frac{1}{2}||\omega ||^{2}
J=i=1∑M[−diln(yi)−(1−di)ln(1−yi)]+λ21∣∣ω∣∣2
正则化原理:当输出误差和权重保持较大时,代价函数为较大值,仅将误差变为0,不足以减小代价函数的值。为了减小代价函数的值,应当控制误差和权重都尽可能减小。这样,当一个权值变得足够小时,相关结点实际上将被断开,这样将使得不必要的连接被消除,从而简化了 网络结构,可以一定程度上改善过拟合。
(7)二分类神经网络的输出层只有一个节点,采用Sigmoid函数作为激活函数。对于多分类器则多采用Softmax函数作为输出节点的激活函数,其反应的是输出各类别所占百分比。即多大概率被判定为某一类。
(8)深度神经网络
- 引入ReLU(整流线型单元Rectified Linear Unit)作为激活函数,解决梯度消失问题
- ReLU函数对初始权重比较敏感,可能会使得网络得不到恰当的训练而产生错误的输出。而Sigmoid函数则不会。
(9) 卷积神经网络
- 图像识别基本上算是一种分类问题
- 直接将原始图像用于图像识别而不考虑识别方法将会导致很差的结果。
- CNN在训练中自动生成特征提取器。这也是CNN的主要特点和优势。
- 代表性的特征提取方法:SIFT,HoG,Textons,Spiniage,RIFT和GLOH。