5分钟秒懂AI(6):是激活,让机器人“活”了!

上回说到,把线性回归做到一定的深度,就涌现出了智能,其实这个说法不严谨。

试想一下,把Y=aX+b嵌套2层:

第一层:X1=a1Y1+b1

第二层:Y1=a2Z1+b2

第二层带入第一层,得到:

X1=a1(a2XZ1+b2)+b1=a1a2Z1+a1b2+b1

发现没有,本质上跟一层是一样的,还是个线性回归。

同理,把线性回归的深度做到1w层,其本质也还是个线性变换,白忙活!

那有什么办法,让深度变得更有意义呢?

答案是: 激活

激活

在不使用激活函数的神经网络,无论做多少层,叠加后也还是 线性变换 。因为线性模型的表达能力通常不够强,就需要通过激活函数引入 非线性因素

如何理解非线性因素呢?

用一个二维空间的例子解释,可以很直观的理解。

比如下面的这种情况,用一根直接就可以分开,也就是说是线性可分的。

5分钟秒懂AI(6):是激活,让机器人“活”了!

但不是所有情况都是线性可分的,比如下面这种情况:

5分钟秒懂AI(6):是激活,让机器人“活”了!

这时候需要引入非线性因素,用一条曲线划分不同的点。

5分钟秒懂AI(6):是激活,让机器人“活”了!

是的,有了激活函数,就把线性变得不那么线性,可以把直线变得弯曲,就可以解决更多更复杂的问题。

有了激活函数的加持,仿佛突然赋予函数一种魔力,让拟合能力无限加强。理论上,只要有足够多的线性回归+激活,可以解决任何分类问题。

常用激活函数

  • sigmoid:这是资历最老的激活函数,可以把任何输出转换到区间(0,1)的范围内,完美匹配概率,可以解决分类问题。存在梯度消失问题,当输入非常大或非常小的时候,输出基本为常数,即变化非常小,进而导致梯度接近于0。

5分钟秒懂AI(6):是激活,让机器人“活”了!

  • tanh:属于sigmoid的变形,把输出转换到区间(-1,1),类似正态分布。同样存在梯度消失问题。

5分钟秒懂AI(6):是激活,让机器人“活”了!

  • ReLU:最常用的激活函数,是一个分段函数,如果输入为正,它将直接输出,否则,它将输出为零。避免梯度消失问题,同时也是计算梯度最快的激励函数。

5分钟秒懂AI(6):是激活,让机器人“活”了!

以上三种是比较常用的激活函数。

上面提到梯度,是通过训练寻找最优模型的常用算法,以后再聊。

总结

没有激活,线性回归是死水一潭,再深的层次也没有意义。

有了激活,让深度神经网络完成了从简单的线性到非线性的飞跃,让人工智能真的有了“智能”,让算法有了“灵魂”,让机器人“活”了!