知名企业家、同时也是 NBA 小牛队的老板马克·库班(Mark Cuban)曾说过一句话:人工智能,深度学习和机器学习,不论你现在是否能够理解这些概念,你都应该学习。否则三年内,你就会像灭绝的恐龙一样被社会淘汰。马克·库班的这番话乍听起来有些耸人听闻,但仔细想想却不无道理。我们正经历一场大革命,这场革命就是由大数据和强大的电脑计算能力发起的。为了更好地面对和适应这场革命,了解一下相关的概念已经十分有必要了。
让我们花几分钟回想一下 20 世纪初的景象。那个时候很多人都不懂什么是电,在过去几十年,甚至几百年的时间里,人们一直沿用一种方式去做某件事情,但是突然间,好像身边的一切都变了。
以前需要很多人才能做成的事情,现在只需要一个人应用电力就能做成。而我们现在就正在经历相似的变革过程,今天这场变革的主角就是机器学习和深度学习。
如果你现在还不懂深度学习的巨大力量,那你真的要抓紧时间开始学啦!这篇文章就为大家介绍了深度学习领域常用的一些术语和概念。现在就从神经网络开始讲起。
神经网络基础概念
1. 神经元
正如神经元是大脑的基本单位一样,在神经网络结构中,神经元也是一个小单位。大家不妨想象一下当我们接触到新的信息时,大脑是如何运作的。
首先,我们会在脑中处理这个信息,然后产生输出信息。在神经网络中也是如此,神经元接收到一个输入信息,然后对它进行加工处理,然后产生输出信息,传输到其他神经元中进行进一步信息处理。
2. 权重
当输入信息到达神经元时,它就会乘上一个权重。举例来说,如果一个神经元包含两个输入信息,那么每个输入信息都被赋予它的关联权重。我们随机初始化权重,并在模型训练过程中更新这些权重。
接受训练后的神经网络会赋予它认为重要的输入信息更高的权重值,而那些不重要的输入信息权重值则会相对较小。权重值为零就意味着这个特征是无关紧要的。
我们不妨假设输入信息为 a,其关联权重为 W1,通过节点后,输入信息变为a*W1:
3. 偏置
除了权重之外,输入还有另一个线性分量,被称为偏置。输入信息乘上权重后再加上偏置,用来改变权重乘输入的范围。加上偏置之后,结果就变为 a*W1+bias,这就是输入信息变换的最终线性分量。
4. 激活函数
线性分量应用可以到输入信息,非线性函数也可以应用到输入信息。这种输入信息过程是通过激活函数来实现的。
激活函数将输入信号翻译成输出信号。激活函数产生的输出信息为 f(a*W1+b) ,其中 f(x) 就是激活函数。
在下面的图表中,我们可以看到,输入信息数量为 n,表示为 X1 到 Xn,相应的权重为 Wk1 到 Wkn。将偏置设为 bk。权重乘以输入信息,再加偏置,我们设所得的值为 u:
u=∑w*x+b
将 u 带入激活函数中,最后我们就可以得到从神经元输出的 yk=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 函数可以轻松地为每个类型分配值,并且可以很容易地将这个值转化为概率。
这样看可能更容易理解一些——假设你正在尝试识别一个看起来像 8 实际为 6 的数。该函数将为每个数字赋值,如下所示。我们可以很容易地看出,最高概率被分配给了 6,下一个最高概率则分配给 8,依此类推……
5. 神经网络
神经网络是深度学习的主干之一。神经网络的目标是找到未知函数的一个近似值。它由相互联系的神经元组成。
这些神经元具有权重,并且会根据出错情况,在网络训练期间更新偏置值。激活函数将非线性变换置于线性组合,之后生成输出。被激活的神经元组合再产生输出。
对神经网络的定义中,以 Liping Yang 的最为贴切:
神经网络由许多相互关联的概念化的人造神经元组成,这些人造神经元之间可以互相传递数据,并且具有根据网络「经验」调整的相关权重。
神经元具有激活阈值,如果结合相关权重组合并激活传递给他们的数据,神经元的激活阈值就会被解除,激活的神经元的组合就会开始「学习」。
6. 输入层 / 输出层 / 隐藏层
顾名思义,输入层是接收输入信号的一层,也是该网络的第一层;输出层则是传递输出信号的一层,也是该网络的最后一层。
处理层则是该网络中的「隐含层」。这些「隐含层」将对输入信号进行特殊处理,并将生成的输出信号传递到下一层。输入层和输出层均是可见的,而其中间层则是隐藏起来的。
7. MLP(多层神经网络)
单一神经元无法执行高度复杂的任务。因此,需要大量神经元聚集在一起才能生成我们所需要的输出信号。
最简单的网络由一个输入层、一个输出层、一个隐含层组成,每一层上都有多个神经元,并且每一层上的神经元都和下一层上的神经元连接在了一起,这样的网络也被称为全互连网络(Fully Connected Networks)。
8. 正向传播(Forward Propagation)
正向传播指的是输入信号通过隐藏层传递到输出层的传递过程。
在正向传播中,信号仅沿单一方向向前正向传播,输入层将输入信号提供给隐藏层,隐藏层生成输出信号,这一过程中没有任何反向移动。
9. 成本函数(Cost Function)
当我们建立一个网络后,网络将尽可能地使输出值无限接近于实际值。我们用成本函数(或损失函数)来衡量该网络完成这一过程的准确性。成本函数(或损失函数)将在该网络出错时,予以警告。
运行网络时,我们的目标是:尽可能地提高我们的预测精度、减少误差,由此最小化成本函数。最优化的输出即当成本函数(或损失函数)为最小值时的输出。
若将成本函数定义为均方误差,则可写成:
C= 1/m ∑(y – a)2
m 在这里是训练输入值(Training Inputs),a 是预计值,y 是特定事例中的实际值。
学习过程围绕着如何最小化成本。
10. 梯度下降(Gradient Descent)
梯度下降是一种成本最小化的优化算法。想象一下,当你下山时,你必须一小步一小步往下走,而不是纵身一跃跳到山脚。
因此,我们要做的是:比如,我们从 X 点开始下降,我们下降一点点,下降 ΔH,到现在的位置,也就是 X-ΔH,重复这一过程,直到我们到达「山脚」。「山脚」就是最低成本点。
从数学的角度来说,要找到函数的局部极小值,须采取与函数梯度负相关的「步子」,即:梯度下降法是用负梯度方向为搜索方向的,梯度下降法越接近目标值,步长越小,前进越慢。
未完待续
《深度学习初学者不可不知的25个术语和概念(下)》近日发布,敬请期待。
作者:Dishashree Gupta
原题:25 Must Know Terms & concepts for Beginners in Deep Learning
出处:http://t.cn/RaDutTf
翻译:转载自「灯塔大数据(DTbigdata)」
编辑:李亮
——- 学习人工智能,开始改变世界 -——
掌握深度学习原理
搭建神经网络模型
熟悉自然语言处理
开发智能个人助理
戳原文,马上预约下期!