深 度 学 习 深度学习 深度学习
激活函数
文中函数图片均来源与网络,侵删
激活函数的作用
在线性中,可以执行简单的分类问题。但是如果分类数据较为复杂,线性分类无法满足时,就需要“多段线性”进行组合分类,也就时全连接神经网络进行复杂分类
线性函数为:
y
=
a
x
+
b
y=ax+b
y=ax+b
那么全连接神经网络可以想象为多个线性神经的堆叠,即:
y
1
=
a
1
x
+
b
1
y_1=a_1 x+b_1
y1=a1x+b1
y
2
=
a
2
y
1
+
b
2
y_2=a_2 y_1+b_2
y2=a2y1+b2
…
…
…
多次堆叠之后,就可以得到一个较为复杂的分类器。
但在这之中如果仅仅先上面所写,那么有:
y
2
=
a
2
(
a
1
x
+
b
1
)
+
b
2
y_2=a_2(a_1x+b_1)+b_2
y2=a2(a1x+b1)+b2
y
2
=
a
2
∗
a
1
x
+
a
2
∗
b
1
+
b
2
y_2=a_2*a_1x+a_2*b_1+b_2
y2=a2∗a1x+a2∗b1+b2
那么又变回了一个线性函数。
所以不能直接将前一个函数的损失值作为结果直接输入到后层函数运算。需要进行一次非线性操作之后在作为后层输入。
这种非线性操作即使激活函数
本节介绍两种常用激活函数分别是relu 和softmax。
relu函数
如图所示:
对于输入值如果大于0: 那么保留原值
如果小于0 则取0.即:
y
=
m
a
x
(
0
,
x
)
y=max(0,x)
y=max(0,x)
其优点则是:
1.输入为正时,不存在梯度饱和问题
2.计算速度快
而缺点则是:
1.输入为负时,Relu函数完全失效,在梯度的反向传播过程中梯度将会消失。
2.同时Relu函数并不是以0为中心的函数。
Leaky Relu
一种对于Relu函数的改进函数:
如图在x<0时不在一味的等于0
而是给与一个较小的负值,解决反向传递过程中的梯度消失问题。
扩大了relu函数的范围。但实际使用中无法证明比relu更好
softmax
softmax函数多作用于多分类问题的输出层上。
可以看到当下x>0时,函数的值域在【0,1),所以通过softmax函数可以将输出的结果进行一次变换,变换为当前数据在是该类型的概率值,通过概率值可以判断是或者不是这个类型。