[collect]神经网络是什么?

=Start=

缘由:

想简单学习了解一些机器学习、深度学习的内容,一方面是扩充自己的知识面(不至于被时代抛弃太远),另一方面也是想看看有没有在自己实际工作中进行相关应用的场景和可能。

这里想记录的是「神经网络」的一些概念和由来(主要是通过「神经网络浅讲:从神经元到深度学习」一文进行的学习,其中的图片也是从该文中选取而来,特别感谢原作者的无私分享,让我能对这些概念有更好的理解),以更好地帮助自己理解深度学习等相关技术。

正文:

参考解答:

神经网络是一种模拟人脑的神经网络以期能够实现类人工智能的机器学习技术。

1、神经元

对于神经元的研究由来已久,1904年生物学家就已经知晓了神经元的组成结构。

一个神经元通常具有多个树突,主要用来接受传入信息;而轴突只有一条,轴突尾端有许多轴突末梢可以给其他多个神经元传递信息。轴突末梢跟其他神经元的树突产生连接,从而传递信号。这个连接的位置在生物学上叫做“突触”。

人脑中的神经元形状可以用下图做简单的说明:

神经元模型是一个包含输入,输出与计算功能的模型。输入可以类比为神经元的树突,而输出可以类比为神经元的轴突,计算则可以类比为细胞核。

2、单层神经网络(感知器,Perceptron)

在“感知器”中,有两个层次。分别是输入层和输出层。输入层里的“输入单元”只负责传输数据,不做计算。输出层里的“输出单元”则需要对前面一层的输入进行计算。

与神经元模型不同,感知器中的权值是通过训练得到的。因此,根据以前的知识我们知道,感知器类似一个逻辑回归模型,可以做(简单的)线性分类任务。

3、两层神经网络(多层感知器)

两层神经网络除了包含一个输入层,一个输出层以外,还增加了一个中间层。此时,中间层和输出层都是计算层。

需要说明的是,在两层神经网络中,我们不再使用sgn函数作为函数g,而是使用平滑函数sigmoid作为函数g。我们把函数g也称作激活函数(active function)。

事实上,神经网络的本质就是通过参数与激活函数来拟合特征与目标之间的真实函数关系。

与单层神经网络不同。理论证明,两层神经网络可以无限逼近任意连续函数。两层神经网络通过两层的线性模型模拟了数据内真实的非线性函数。因此,多层的神经网络的本质就是复杂函数拟合。

4、多层神经网络(深度学习)

在两层神经网络的输出层后面,继续添加层次。原来的输出层变成中间层,新加的层次成为新的输出层。所以可以得到下图:

与两层层神经网络不同。多层神经网络中的层数增加了很多。

增加更多的层次有什么好处?更深入的表示特征,以及更强的函数模拟能力。

更深入的表示特征可以这样理解,随着网络的层数增加,每一层对于前一层次的抽象表示更深入。在神经网络中,每一层神经元学习到的是前一层神经元值的更抽象的表示。例如第一个隐藏层学习到的是“边缘”的特征,第二个隐藏层学习到的是由“边缘”组成的“形状”的特征,第三个隐藏层学习到的是由“形状”组成的“图案”的特征,最后的隐藏层学习到的是由“图案”组成的“目标”的特征。通过抽取更抽象的特征来对事物进行区分,从而获得更好的区分与分类能力。

在单层神经网络时,我们使用的激活函数是sgn函数。
到了两层神经网络时,我们使用的最多的是sigmoid函数。
而到了多层神经网络时,通过一系列的研究发现,ReLU函数在训练多层神经网络时,更容易收敛,并且预测性能更好。因此,目前在深度学习中,最流行的非线性函数是ReLU函数。ReLU函数不是传统的非线性函数,而是分段线性函数。其表达式非常简单,就是y=max(x,0)。简而言之,在x大于0,输出就是输入,而在x小于0时,输出就保持为0。这种函数的设计启发来自于生物神经元对于激励的线性响应,以及当低于某个阈值后就不再响应的模拟。

神经网络表现能力的变化

从单层神经网络,到两层神经网络,再到多层神经网络,随着网络层数的增加,以及激活函数的调整,神经网络所能拟合的决策分界平面的能力越来越强。

参考链接:

=END=

声明: 除非注明,ixyzero.com文章均为原创,转载请以链接形式标明本文地址,谢谢!
https://ixyzero.com/blog/archives/4577.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注