前馈神经网络与反向传播算法

欢迎关注”生信修炼手册”!

在单层感知器的基础上,引入隐藏层即可得到多层感知器和深度神经网络,结构如下

前馈神经网络与反向传播算法_第1张图片

在上述网络中,信号从输入层开始,经过线性组合和激活函数的处理,输入到下一层的神经元,信号依次经过各个隐藏层的处理,最终输出到输出层,这样的信号传递是一个正向传递的过程,这种结构的神经网络称之为前馈神经网络。

对比循环神经网络RNN, 更能体会前馈神经网络的这一特性

前馈神经网络与反向传播算法_第2张图片

在RNN中,存在一层循环神经元,信号在自身进行递归,而前馈神经网络中信号是层层传递的,从输入层依次传输到输出层。

对于前馈神经网络而言,其参数训练的过程通过反向传播算法来实现。反向传播,对应的英文为Back proprgation, 与前馈神经网络中信号的正向传递相对应,图示如下

前馈神经网络与反向传播算法_第3张图片

反向传播算法将均方误差作为模型训练的代价函数,本质上是梯度下降法。和信号从输入层到隐藏层到输出层的正向传播相反,误差值从输出层传递到隐藏层再到输入层,这也是其名称中反向传播的由来。

下面通过一个实际的例子来感受下反向传播算法,神经网络结构如下

前馈神经网络与反向传播算法_第4张图片

在输入层和隐藏层中,每一层都添加了一个值为1的神经元,这样的神经元称之为bias, 类比线性拟合中随机误差对应的常数项。首先随机初始化各条边的权重值,结果如下

前馈神经网络与反向传播算法_第5张图片

神经网络训练的目标是调整各条边的权重,使得模型输出值与真实值o1,o2的误差最小。类比机器学习,这个目标可以用损失函数来定量描述,这里采用均方根误差。

根据初始权重值,通过正向传播,可以计算隐藏层h1和h2的值,这里激活函数采用sigmod函数,计算过程如下

前馈神经网络与反向传播算法_第6张图片

接着计算输出层的输出

前馈神经网络与反向传播算法_第7张图片

根据输出层的计算结构和真实值的差异,可以计算损失函数的值

前馈神经网络与反向传播算法_第8张图片

接下来进行反向传播,对于神经网络而言,由于其参数很多,损失函数的求解通过梯度下降法来实现。以w5这个权重为例,根据链式法则,其偏导数如下

前馈神经网络与反向传播算法_第9张图片

依次计算链式展开的各个子项,结果如下

前馈神经网络与反向传播算法_第10张图片

前馈神经网络与反向传播算法_第11张图片

前馈神经网络与反向传播算法_第12张图片

学习率设定为0.5,则更新后的w5参数值计算如下

前馈神经网络与反向传播算法_第13张图片

其他隐藏层的权重值计算过程是一样的,隐藏层计算完之后,再传播到输入层,按照同样的方式来调整输入层的权重。在每次迭代中,信号正向传播,利用更新后的权重值来计算输出层的总体误差,然后误差反向传播,依次更新更层神经元对应的权重值。

·end·

—如果喜欢,快分享给你的朋友们吧—

原创不易,欢迎收藏,点赞,转发!生信知识浩瀚如海,在生信学习的道路上,让我们一起并肩作战!

本公众号深耕耘生信领域多年,具有丰富的数据分析经验,致力于提供真正有价值的数据分析服务,擅长个性化分析,欢迎有需要的老师和同学前来咨询。

  更多精彩

  • KEGG数据库,除了pathway你还知道哪些

  • 全网最完整的circos中文教程

  • DNA甲基化数据分析专题

  • 突变检测数据分析专题

  • mRNA数据分析专题

  • lncRNA数据分析专题

  • circRNA数据分析专题

  • miRNA数据分析专题

  • 单细胞转录组数据分析专题

  • chip_seq数据分析专题

  • Hi-C数据分析专题

  • HLA数据分析专题

  • TCGA肿瘤数据分析专题

  • 基因组组装数据分析专题

  • CNV数据分析专题

  • GWAS数据分析专题

  • 机器学习专题

  • 2018年推文合集

  • 2019年推文合集

  • 2020推文合集

  写在最后

转发本文至朋友圈,后台私信截图即可加入生信交流群,和小伙伴一起学习交流。

扫描下方二维码,关注我们,解锁更多精彩内容!

前馈神经网络与反向传播算法_第14张图片

一个只分享干货的

生信公众号

你可能感兴趣的:(神经网络,算法,人工智能,深度学习,卷积神经网络)