知名企业家、同时也是 NBA 小牛队的老板马克·库班(Mark Cuban)曾说过一句话:
人工智能,深度学习和机器学习,不论你现在是否能够理解这些概念,你都应该学习。否则三年内,你就会像灭绝的恐龙一样被社会淘汰。
马克·库班的这番话乍听起来有些耸人听闻,但仔细想想却不无道理。
我们正经历一场大革命,这场革命就是由大数据和强大的电脑计算能力发起的。
为了更好地面对和适应这场革命,了解一下相关的概念已经十分有必要了。
让我们花几分钟回想一下 20 世纪初的景象。那个时候很多人都不懂什么是电,在过去几十年,甚至几百年的时间里,人们一直沿用一种方式去做某件事情,但是突然间,好像身边的一切都变了。
以前需要很多人才能做成的事情,现在只需要一个人应用电力就能做成。而
我们现在就正在经历相似的变革过程,今天这场变革的主角就是机器学习和深度学习。
如果你现在还不懂深度学习的巨大力量,那你真的要抓紧时间开始学啦!这篇文章就为大家介绍了深度学习领域常用的一些术语和概念。现在就从神经网络开始讲起。
神经网络基础概念
1. 神经元
正如神经元是大脑的基本单位一样,在神经网络结构中,神经元也是一个小单位。大家不妨想象一下当我们接触到新的信息时,大脑是如何运作的。
首先,我们会在脑中处理这个信息,然后产生输出信息。在神经网络中也是如此,
神经元接收到一个输入信息,然后对它进行加工处理,然后产生输出信息,传输到其他神经元中进行进一步信息处理。
2. 权重
当输入信息到达神经元时,它就会乘上一个权重。
举例来说,如果一个神经元包含两个输入信息,那么每个输入信息都被赋予它的关联权重。我们随机初始化权重,并在模型训练过程中更新这些权重。
接受训练后的神经网络会赋予它认为重要的输入信息更高的权重值,而那些不重要的输入信息权重值则会相对较小。权重值为零就意味着这个特征是无关紧要的。
我们不妨假设输入信息为 a,其关联权重为 W
1
,通过节点后,输入信息变为a*W
1
:
3. 偏置
除了权重之外,输入还有另一个线性分量,被称为偏置。
输入信息乘上权重后再加上偏置,用来改变权重乘输入的范围。加上偏置之后,结果就变为 a*W
1
+bias,这就是输入信息变换的最终线性分量。
4. 激活函数
线性分量应用可以到输入信息,非线性函数也可以应用到输入信息。这种输入信息过程是通过激活函数来实现的。
激活函数将输入信号翻译成输出信号。激活函数产生的输出信息为 f(a*W
1
+b) ,其中 f(x) 就是激活函数。
在下面的图表中,我们可以看到,输入信息数量为 n,表示为 X
1
到 X
n
,相应的权重为 W
k1
到 W
kn
。将偏置设为 b
k
。权重乘以输入信息,再加偏置,我们设所得的值为 u:
u=∑w*x+b
将 u 带入激活函数中,最后我们就可以得到从神经元输出的 y
k
=f(u)
最常用的激活函数有 Sigmoid、ReLU 和 softmax。
sigmoid(x) = 1/(1+e
-x
)
Sigmoid 函数会生成 0 到 1 之间的更平滑的取值范围。我们可能需要观察输出值的变化,同时输入值也会略有变化。而平滑的曲线更方便我们观察,因此它优于阶梯函数(step functions)。
f(x) = max(x,0)
当 X>0 时,函数的输出为 X,当 X<=0 时为 0。该函数如下所示:
使用 ReLu 的好处主要是它对于大于 0 的所有输入值都有对应的不变导数值。而常数导数值可以加快对网络的训练。
如果我们遇到的是二进制输出问题,就可以使用 Sigmoid 函数,而如果我们遇到的是多类型分类问题,使用 Softmax 函数可以轻松地为每个类型分配值,并且可以很容易地将这个值转化为概率。