欢迎关注”生信修炼手册”!
在单层感知器的基础上,引入隐藏层即可得到多层感知器和深度神经网络,结构如下
文章图片
在上述网络中,信号从输入层开始,经过线性组合和激活函数的处理,输入到下一层的神经元,信号依次经过各个隐藏层的处理,最终输出到输出层,这样的信号传递是一个正向传递的过程,这种结构的神经网络称之为前馈神经网络。
对比循环神经网络RNN, 更能体会前馈神经网络的这一特性
文章图片
在RNN中,存在一层循环神经元,信号在自身进行递归,而前馈神经网络中信号是层层传递的,从输入层依次传输到输出层。
对于前馈神经网络而言,其参数训练的过程通过反向传播算法来实现。反向传播,对应的英文为Back proprgation, 与前馈神经网络中信号的正向传递相对应,图示如下
文章图片
反向传播算法将均方误差作为模型训练的代价函数,本质上是梯度下降法。和信号从输入层到隐藏层到输出层的正向传播相反,误差值从输出层传递到隐藏层再到输入层,这也是其名称中反向传播的由来。
下面通过一个实际的例子来感受下反向传播算法,神经网络结构如下
文章图片
在输入层和隐藏层中,每一层都添加了一个值为1的神经元,这样的神经元称之为bias, 类比线性拟合中随机误差对应的常数项。首先随机初始化各条边的权重值,结果如下
文章图片
神经网络训练的目标是调整各条边的权重,使得模型输出值与真实值o1,o2的误差最小。类比机器学习,这个目标可以用损失函数来定量描述,这里采用均方根误差。
根据初始权重值,通过正向传播,可以计算隐藏层h1和h2的值,这里激活函数采用sigmod函数,计算过程如下
文章图片
接着计算输出层的输出
文章图片
根据输出层的计算结构和真实值的差异,可以计算损失函数的值
文章图片
接下来进行反向传播,对于神经网络而言,由于其参数很多,损失函数的求解通过梯度下降法来实现。以w5这个权重为例,根据链式法则,其偏导数如下
文章图片
依次计算链式展开的各个子项,结果如下
文章图片
文章图片
文章图片
学习率设定为0.5,则更新后的w5参数值计算如下
文章图片
其他隐藏层的权重值计算过程是一样的,隐藏层计算完之后,再传播到输入层,按照同样的方式来调整输入层的权重。在每次迭代中,信号正向传播,利用更新后的权重值来计算输出层的总体误差,然后误差反向传播,依次更新更层神经元对应的权重值。
·end·
—如果喜欢,快分享给你的朋友们吧—
原创不易,欢迎收藏,点赞,转发!生信知识浩瀚如海,在生信学习的道路上,让我们一起并肩作战!
本公众号深耕耘生信领域多年,具有丰富的数据分析经验,致力于提供真正有价值的数据分析服务,擅长个性化分析,欢迎有需要的老师和同学前来咨询。
更多精彩
- KEGG数据库,除了pathway你还知道哪些
- 全网最完整的circos中文教程
- DNA甲基化数据分析专题
- 突变检测数据分析专题
- mRNA数据分析专题
- lncRNA数据分析专题
- circRNA数据分析专题
- miRNA数据分析专题
- 单细胞转录组数据分析专题
- chip_seq数据分析专题
- Hi-C数据分析专题
- HLA数据分析专题
- TCGA肿瘤数据分析专题
- 基因组组装数据分析专题
- CNV数据分析专题
- GWAS数据分析专题
- 机器学习专题
- 2018年推文合集
- 2019年推文合集
- 2020推文合集
转发本文至朋友圈,后台私信截图即可加入生信交流群,和小伙伴一起学习交流。
扫描下方二维码,关注我们,解锁更多精彩内容!
文章图片
一个只分享干货的
【神经网络|前馈神经网络与反向传播算法】生信公众号
推荐阅读
- AI|神经网络的反向传播算法推导
- 深度学习|反向传播算法(BP神经网络)
- 深度学习|神经网络之BP(反向传播算法)的原理介绍
- 神经网络|神经网络之BP算法(误差反向传播)
- 机器学习|机器学习(神经网络的代价函数及反向传播算法)
- python机器学习|从零到一实现神经网络(五):数学微分法更新权重参数
- 自动驾驶|AirSim学习笔记1(《端到端自动驾驶》AutonomousDrivingCookbook)
- 人工智能|我的天,强化学习还能用在自动驾驶领域()
- 自动驾驶|强化学习基础篇 OpenAI Gym 环境搭建demo