前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >神经网络连载(三)

神经网络连载(三)

作者头像
巴山学长
发布2019-07-15 15:35:55
4110
发布2019-07-15 15:35:55
举报
文章被收录于专栏:巴山学长巴山学长

大家好,南海一号又回来了。

上期为大家构建了一个简单的神经网络模型。就是输入层神经元的输入,经过各种处理,最后到达输出层,然后输出最后的结果。但是大家也看到了,最后网络输出的结果和真实结果之间存在很大的差距。道理也很简单,我们没有进行任何训练。网络输出与实际输出之间还没有任何的联系。接下来,我们就要介绍网络输出与实际输出如何构建联系。

一:BP神经网络

要构建输入神经元与结果(标签)的联系。需要用到一个数学上的概念:梯度下降以及反向传播。下面我们举一个例子

以上神经网络中,x1,x2,x3,x4为输入神经元。每一组输入都对应着一个标签(结果)。神经网络的核心是神经元的权重和阈值。作用是决定每个输入在结果中的重要程度。中间层(隐藏层)越多。拟合的效果越好。但是较少的训练样本对应特别高的拟合程度,会造成比较严重的后果:过拟合,所以不要用过多的隐藏层神经元。

一:反向传播与梯度下降

这是神经网络的核心内容。

首先,记住这样一句话:梯度方向是下降速度最快的方向,别问为什么,记住就行了。各位也不要留言问我这个问题,太复杂了,实在不想写。

所以,神经网络根据误差调整权值的时候是按照梯度下降的方向调整的。

其次:反向传播实质是误差信息的反向传播。因为只有将误差信息反向传播,才能让前面的神经元知道如何调整自己的权值和阈值。才能优化网络。反向传播也要按照权值来分配误差信息,权值大的神经元调整幅度也大,权值小的神经元调整幅度小,毕竟权值大的应该负主要责任嘛

二:误差

误差就是你要优化的对象,神经网络的设定是让误差最小。我举一个例子:比如给你一堆自变量x1,x2,x3,x4。一个因变量y1。在训练集中。有一组数据是[2,4,6,7]与12。神经网络输出是11.那么误差就是11-12=-1.误差就是"实际输出-网络输出"。目标函数要让误差最小。才能达到精确预测的目的。

三:链式求导法则

为了让大家更简单的理解神经网络,链式求导的数学原理就不写了。大家也没必要搞得很明白。只需要记住,误差反向传播的过程中,会经过好几层神经元。最后第一层的误差经过权值分配后是倒数第二层的误差。倒数第二层的误差经过下一层权值的分配成为倒数第三层的误差........。依次类推。最后传播到第一层,误差的车轮碾过所有的神经元。改变了所有的权值和阈值,一次训练完成.......。

经过很多次训练以后,权值和阈值都优化到了非常好的地步,就可以进行预测了。

本文作者:南海一号

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 巴山学长 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档