艾克上课打瞌睡,突然感觉脑袋上被砸了一下,然后听见一声咆哮:“艾克!!!还没睡够?!这道题怎么做?答不上来就站出去。”
黑板上写着:
一个苹果换3个梨,2个苹果换6个梨,3个苹果换9个梨,请问4个苹果换几个梨?
艾克睡意昏沉,根本反应不上来,对了,不是有老顽童爷爷的知识芯片吗?
他只好拜托老顽童,老顽童一看,这还不简单?答案几乎脱口而出。但一想,刚刚看了BP神经网络的论文,都说它是万能的,看能不能解决这个嘞。
老顽童想,简单点吧,只用一个神经元,一个输入一个输出。

1. 初始化

苹果是x,梨是y,我假设他们的函数是
y = w x + b y=wx+b y=wx+b
先设置w初始值是1,b的初始值设为0吧。
哈哈,我的训练数据在哪里? x = 1 x=1 x=1时,理想的结果 y ^ = 2 \hat y=2 y^​=2.
ok,先看看我的神经网络的输出吧, y = 1 ∗ x + 0 , y = 1 y=1*x+0,y=1 y=1∗x+0,y=1和我的理想输出不相符,误差是多少呢?
这里用最小二乘法计算误差 E = 1 2 ( y ^ − y ) 2 E=\frac{1}{2}(\hat y-y)^2 E=21​(y^​−y)2
计算得: E = 1 2 ( 2 − 1 ) 2 = 0.5 E=\frac{1}{2}(2-1)^2=0.5 E=21​(2−1)2=0.5

2. 推导误差反向传递

现在是在训练神经网络,出了错没关系,关键在于怎么来修正,珍惜这个宝贵的误差哟。
现在用误差来修正权重w,我希望w能变化一下,变化后使得误差趋近0。这好办了,求导,沿着负梯度方向更新w就能实现E趋近0咯。
开干,先求误差对权重的导数:
∂ E ∂ w = ∂ E ∂ y ∂ y ∂ w \frac{\partial E}{\partial w} =\frac{\partial E}{\partial y}\frac{\partial y}{\partial w} ∂w∂E​=∂y∂E​∂w∂y​
这是个复合函数求导。先算第一项:
∂ E ∂ y = − ( y ^ − y ) \frac{\partial E}{\partial y}=-(\hat y-y) ∂y∂E​=−(y^​−y)
再算第二项:
∂ y ∂ w = x \frac{\partial y}{\partial w}= x ∂w∂y​=x
合并到一起是多少:
∇ E = ∂ E ∂ w = − ( y ^ − y ) ∗ x \nabla E=\frac{\partial E}{\partial w} = -(\hat y-y)* x ∇E=∂w∂E​=−(y^​−y)∗x
怎么来更新我的权重呢?
先根据梯度的变化计算我的权重变化量,负梯度方向变化一个 η \eta η步长。
Δ w = − ∇ E ∗ η \Delta w=-\nabla E*\eta Δw=−∇E∗η
新的权重 w ∗ = w + Δ w w^*=w+\Delta w w∗=w+Δw

3.第一轮训练

代入之前推导的结果:
w ∗ = w + Δ w = w − ∇ E ∗ η = w − η ∗ [ − ( y ^ − y ) ∗ x ] w^*=w+\Delta w\\ =w-\nabla E*\eta\\=w-\eta*[-(\hat y-y)* x] w∗=w+Δw=w−∇E∗η=w−η∗[−(y^​−y)∗x]
搞定了,假设步长等于0.2
我的新的权重 w ∗ = 1 − 0.2 ∗ [ − ( 2 − 1 ) ∗ 1 ] = 1.8 w^*=1-0.2*[-(2-1)*1]=1.8 w∗=1−0.2∗[−(2−1)∗1]=1.8

Nice,第一轮结束,好像很接近正确答案了。

4.第二轮训练

开始第二轮:
y 2 = w x + b = 1.8 ∗ 2 + 0 = 3.6 y_2=wx+b=1.8*2+0=3.6 y2​=wx+b=1.8∗2+0=3.6
理想的输出 y 2 ∗ = 4 y_2^*=4 y2∗​=4
计算权重的更新值
w ∗ = 1.8 − 0.2 ∗ [ − ( 4 − 3.6 ) ∗ 2 ] = 3.4 w^*=1.8-0.2*[-(4-3.6)*2]\\=3.4 w∗=1.8−0.2∗[−(4−3.6)∗2]=3.4
我靠,怎么变这么大。

4 再训练第三轮:

y 3 = w x + b = 3.4 ∗ 3 + 0 = 10.2 y_3=wx+b=3.4*3+0=10.2 y3​=wx+b=3.4∗3+0=10.2
理想的输出 y 3 ∗ = 6 y_3^*=6 y3∗​=6,误差变大了。更新一下权重。
计算权重的更新值
w ∗ = 3.4 + 0.2 ∗ [ − ( 6 − 10.2 ) ∗ 3 ] = 0.88 w^*=3.4+0.2*[-(6-10.2)*3]\\=0.88 w∗=3.4+0.2∗[−(6−10.2)∗3]=0.88

5 调整步长

妈的,咋变这么小。估计是步长太大了。
如果把步长减小一点点。设为0.1。再计算一轮就好了。

6

正算着呢,老顽童听到艾克的哭泣,“不用算了,我已经被罚站了。”
老顽童说:“啊,这人工智障啊。”
“艾克,艾克,正确答案是8,你给我的样本太小了,我的步子迈的太大了”
艾克: “啥玩意啊”

万能的BP神经网络,从计算一道小学题开始相关推荐

  1. 一道小学题,解答了我与学霸的差距

    目录 一.背景 二.题目 三.过程 1.形式转换 2.个位数相加只能向前进一位嘛?进两位可以吗?进三位呢? 3.十位数上要填写的内容,可以是0嘛?你想到了吗? 4.如何下意识的去做结构化? 四.总结 ...

  2. 又一道小学题的sql实现~~~

    鬼谷子先生有两个绝顶聪明的门徒,一个叫孙宾(后来改名孙膑),一个叫庞涓. 有一天鬼谷子对他们说:"两个大于1而小于100的自然数相加等于一个和,相乘等于一个积.谁能猜出我说的这两个自然数是多 ...

  3. bp神经网络和cnn神经网络,bp神经网络和神经网络

    bp算法在深度神经网络上为什么行不通 BP算法作为传统训练多层网络的典型算法,实际上对仅含几层网络,该训练方法就已经很不理想,不再往下进行计算了,所以不适合深度神经网络. BP算法存在的问题:(1)梯 ...

  4. bp神经网络需要多少样本,bp神经网络训练时间

    1.BP神经网络的训练集需要大样本吗?一般样本个数为多少? BP神经网络的训练集需要大样本吗?一般样本个数为多少? BP神经网络样本数有什么影响 学习神经网络这段时间,有一个疑问,BP神经网络中训练的 ...

  5. bp神经网络算法的优缺点,bp神经网络与bp算法区别

    前馈神经网络.BP神经网络.卷积神经网络的区别与联系 一.计算方法不同1.前馈神经网络:一种最简单的神经网络,各神经元分层排列.每个神经元只与前一层的神经元相连.接收前一层的输出,并输出给下一层.各层 ...

  6. 【毕业设计/Matlab系列】基于PCA和BP神经网络的人脸识别系统(基于AR人脸库)

    Date: 2022.5.30 文章目录 前言 1.算法原理 2.实现效果 3.测试matlab代码 前言 在大学毕业设计的时候,在毕业设计中实现了基于PCA和BP神经网络的人脸识别系统,采用matl ...

  7. bp神经网络预测模型原理,BP神经网络预测模型

    深度学习与神经网络有什么区别 深度学习与神经网络关系2017-01-10最近开始学习深度学习,基本上都是zouxy09博主的文章,写的蛮好,很全面,也会根据自己的思路,做下删减,细化. 五.DeepL ...

  8. BP神经网络的一些例子

    用之前 人工神经网络无需事先确定输入输出之间映射关系的数学方程,仅通过自身的训练,学习某种规则,在给定输入值时得到最接近期望输出值的结果.作为一种智能信息处理系统,人工神经网络实现其功能的核心是算法. ...

  9. BP神经网络语音训练

    下面来介绍一下BP神经网络及其关于语音训练学习的知识: BP神经网络:BP(back propagation)神经网络是1986年由Rumelhart和McClelland为首的科学家提出的概念,是一 ...

最新文章

  1. 《因果学习周刊》第8期:因果反事实预测
  2. IbatisNet注意点
  3. 作者:桑基韬(1985-),男,博士,中国科学院自动化研究所副研究员
  4. 作者:董西松,男,博士,现任中国科学院自动化研究所助理研究员。
  5. win10自动休眠解决方法
  6. 云计算项目实战——系统API模块
  7. Node.js调试工具安装使用
  8. 录屏---EV录屏软件windows下使用说明
  9. python中%d_python中%d是什么
  10. 开发中的各种时间格式转换(二)
  11. 网安实训(十)| Ms12-020 漏洞复现
  12. 山东大学2021算法期末
  13. Oracle错误一览表4
  14. 下一个十年,区块链将如何厚“基”薄发?
  15. 量化交易的市价、限价订单及交易成本-量化系统的构成与交互
  16. LeetCode(Python)—— 加一(简单)
  17. 【2023考研学校信息】灰灰考研,最新版
  18. 28推,交流让网络推广变得很简单
  19. 绿坝门,一个被曝光的黑幕
  20. 1Blocker for Mac 1.4.6 破解版下载 – 优秀的浏览器网页广告拦截工具

热门文章

  1. NeurIPS latex中文支持
  2. 2022年终总结与展望
  3. C++画图 => 蓝桥杯青少组C++ => 信奥 学习路线图
  4. excel批量提取网页标题
  5. 再见 Win10!再见操作系统!
  6. 安装zsh 、omyzsh
  7. QT 绘图橡皮擦效果的实现
  8. 苹果CMS、海洋CMS自动定时采集-可采集任意自定义指定资源
  9. 2015美国大学计算机科学专业排名,2015美国大学本科计算机专业排名前一百
  10. FFMPEG源码编译(Windows篇)