Artificial Neural Network, 缩写ANN, 简称为神经网络,在机器学习,尤其是深度学习领域广泛应用。
神经网络采用了一种仿生学的思想,通过模拟生物神经网络的结构和功能来实现建模。神经元细胞结构如下
在两侧分布着树突和轴突两种结构,树突用于接受其他神经元传递的信号,而轴突用于向其他神经元传递信号,信号在多个神经元之间传导,构成了神经网络。许许多多的神经元细胞构成了神经中枢,用于对刺激作出响应。
借鉴神经元这一生物结构,1943年MoCulloch和Pitts提出了人工神经元模型,即M-P神经元模型,结构如下
input层的不同信号,首先通过一个线性加和模型进行汇总,每个信号有一个不同的权重,然后通过一个激活函数来判断是否需要进行输出。激活函数可以有多种形式,部分激活函数展示如下
激活函数与线性组合的关系表示如下
其中的θ表示阈值,ω表示权重,在MP神经元模型中,权重和阈值是固定值,是一个不需要学习的模型。
为了让机器具备学习的能力,在MP神经元模型的基础上,提出了最早的神经网络模型, 单层感知器perceptron,结构如下
是一个两层的神经网络,第一层为输入层,第二层为输出层。因为只有在输出层需要进行计算,就是说只有一层计算层,所以称之为单层感知器。从形式上看,仅仅是将MP模型中的输入信号当作了独立的一层神经元,但是本质上却有很大差别。
感知器模型中权重和阈值不再是固定的了,而是计算机"学习"出来的结果。引入了损失函数的概念,通过迭代不断调整权重和阈值,使得损失函数最小,以此来寻找最佳的权重和阈值。
单层感知器只可以解决线性可分的问题,在单层感知器的基础上,再引入一层神经元,构成一个3层的神经网络,结构如下
这样的一个神经网络模型,适用范围更广,涵盖了线性和非线性可分的场景。其中的每一层称之为layer, 除了输出层和输出层之外,还有中间的隐藏层。这样的神经网络模型,通过反向传播算法来求解。
增加一层的好处在于更好的数据表示和函数拟合的能力,在3层的基础上,再引入更多的隐藏层,就变成了深度神经网络,图示如下
可以看到,每增加一层,模型的参数数量急剧增加,所以深度学习对计算资源的要求特别高,在实际使用中,模型训练时间非常的久。
虽然耗费计算资源,但是深度学习的优点也很突出,相比机器学习,模型自动完成特征提取,不需要人工的特征工程,这一点对于高维数据的处理特别重要,二者的对比图如下
由输入层,隐藏层,输出层这3种典型结构组成的神经网络统称为前馈神经网络,通过反向传播算法来迭代更新参数。
除此之外,还有卷积神经网络,循环神经网络,生成对抗网络等多种变种,在计算机视觉,自然语言处理,图像生成等领域,各自发挥着重大作用。
·end·
一个只分享干货的
生信公众号