X=√10,求X,也就是求Y=10 =X, X是多少。

*重要的思想是,如何转化为可迭代求解的算法问题。

*解数学问题,第一时间画图,求导,“直线化”。

Y = X2

假如已知Y = 10 ,要求解X;

1. 令X=3,解得 y = 9 ;

那么,自然是希望,在X=3处,加上一个△X,得到

Y = y + k * △X ≈ 10;

已知,在X=3处,k = dy / dx = 2*X = 6,所以 △X = [(Y - y) / k]  = △Y / k

我们也可以使用等式:△Y / △X = dY / dX  等价于  1 / △X  =  6  ,△X = 1 / 6 ;

*在微分中,当△X很小时,△Y / △X = dY / dX;当X取得很接近真值时,认为△X很小。(下面讨论当△X比较大,也就是X取得不接近真值的情况);

2. 令X = X + △X = 3 + 1 / 6 = 3.16666666 ;y = 10.19444444;dY/dX =2X = 6.3333333;

△Y = 10 - 10.19444444 = -0.1944444444比之前更小了,解得△X = -0.03070;

3. 令X = X + △X = 3.13596666666;y = 9.834287;dY/dX = 2X = 6.27193333

△Y = 10 - 9.8342869344 = -0.1657130

.....

直到△Y满足精度为止;


如果预测值X=1,和结果相差比较大,再看看;

1. 令X=1,解得 y = 1 ,dY/dX = 2X  = 2 ;

△Y = 10 - 1 = 9 ,△X = 9 / 2 = 4.5;

2. X = X + △X = 5.5 , 解得 y = 30.25, dY/dX = 2X  = 11

△Y = 10 - 30.25 = -20.25, △X = -20.25 / 11 =  -1.84091

3. X = X + △X = 3.65909, 解得 y = 13.38894, dY/ dX = 2X  = 7.31818

△Y = 10 - 13.38894  = -3.38894,△X = -3.38894 / 7.31818 =  -0.4630851

4.  X = X + △X =  3.196005,解得 y = 10.21445,dY/ dX = 2X  = 6.39201

△Y = 10 - 10.21445 = -0.21445 ,△X = -0.21445 /  6.39201 = -0.0335497

5. X = X + △X =  3.1624553,解得 y = 10.001124,dY/ dX = 2X  = 6.3249106

△Y = 10 - 10.21445 = -0.001124

....

X的预估值为1,离真值比较远,所以第2步出现“矫枉过正”的现象,但随即又修复了,因为每处在新的位置,都更新了X 和dY/ dX。

使用“反向传播”迭代法求解y=√10的更多相关文章

  1. DL反向传播理解

    作者:寒小阳 时间:2015年12月. 出处:http://blog.csdn.net/han_xiaoyang/article/details/50321873 声明:版权所有,转载请联系作者并注明 ...

  2. 再谈反向传播(Back Propagation)

    此前写过一篇<BP算法基本原理推导----<机器学习>笔记>,但是感觉满纸公式,而且没有讲到BP算法的精妙之处,所以找了一些资料,加上自己的理解,再来谈一下BP.如有什么疏漏或 ...

  3. [2] TensorFlow 向前传播算法(forward-propagation)与反向传播算法(back-propagation)

    TensorFlow Playground http://playground.tensorflow.org 帮助更好的理解,游乐场Playground可以实现可视化训练过程的工具 TensorFlo ...

  4. [ch02-02] 非线性反向传播

    系列博客,原文在笔者所维护的github上:https://aka.ms/beginnerAI, 点击star加星不要吝啬,星越多笔者越努力. 2.2 非线性反向传播 2.2.1 提出问题 在上面的线 ...

  5. Deep Learning 学习笔记(7):神经网络的求解 与 反向传播算法(Back Propagation)

    反向传播算法(Back Propagation): 引言: 在逻辑回归中,我们使用梯度下降法求参数方程的最优解. 这种方法在神经网络中并不能直接使用, 因为神经网络有多层参数(最少两层),(?为何不能 ...

  6. BP(back propagation)反向传播

    转自:http://www.zhihu.com/question/27239198/answer/89853077 机器学习可以看做是数理统计的一个应用,在数理统计中一个常见的任务就是拟合,也就是给定 ...

  7. 机器学习 —— 基础整理(七)前馈神经网络的BP反向传播算法步骤整理

    这里把按 [1] 推导的BP算法(Backpropagation)步骤整理一下.突然想整理这个的原因是知乎上看到了一个帅呆了的求矩阵微分的方法(也就是 [2]),不得不感叹作者的功力.[1] 中直接使 ...

  8. AI之旅(7):神经网络之反向传播

    前置知识   求导 知识地图   神经网络算法是通过前向传播求代价,反向传播求梯度.在上一篇中介绍了神经网络的组织结构,逻辑关系和代价函数.本篇将介绍如何求代价函数的偏导数(梯度). 梯度检测   在 ...

  9. 深度学习原理与框架-神经网络结构与原理 1.得分函数 2.SVM损失函数 3.正则化惩罚项 4.softmax交叉熵损失函数 5. 最优化问题(前向传播) 6.batch_size(批量更新权重参数) 7.反向传播

    神经网络由各个部分组成 1.得分函数:在进行输出时,对于每一个类别都会输入一个得分值,使用这些得分值可以用来构造出每一个类别的概率值,也可以使用softmax构造类别的概率值,从而构造出loss值, ...

随机推荐

  1. SpringBoot 整合 MyBatis-Plus 入门体验

    一.前言 本文小编将基于 SpringBoot 整合 MyBatis-Plus , MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上做增强并且不改变原本功能 ...

  2. 终端-Linux命令之非交互SSH密码验证-Sshpass

    Sshpass是使用SSH所谓的"交互式键盘密码身份验证"以非交互方式执行密码身份验证的工具 通俗来说就是 使用ssh密码登录 是需要在连接时手动输入密码的,没办法明文连接,如下图 ...

  3. 给老师安排课表JAVA项目及登录窗口的实现

    实现一个安排课表的Java实验. 有以下几点要求: ①用所给的教师姓名进行课表安排 ②用所给的地点进行课表安排 ③不得有重复的课程名称出现 ④将信息写入到文件里 ⑤用窗口来进行实现 package c ...

  4. SQL SERVER数据库批量替换某个数据表里的数据update

    批量替换:将A表CMC里面所有包含a替换成b而不影响其他内容UPDATE A SET CMC=REPLACE(CMC,'a','b')

  5. 【Medium 万赞好文】ViewModel 和 LIveData:模式 + 反模式

    原文作者: Jose Alcérreca 原文地址: ViewModels and LiveData: Patterns + AntiPatterns 译者:秉心说 View 和 ViewModel ...

  6. thinkphp5底层基类封装、内部类函数

    记录下thinkphp5自定义底层基类.内部类函数使用笔记 大部分笔记来自tp手册. 底层常用代码的封装 在控制器中基类的起着至关重要的作用,整个项目的代码安全,复杂程度,易读性都要看你项目的基类架构 ...

  7. PHP array_splice

    1.函数的作用:数组中元素的删除和替代 2.函数的参数: @params array  &$array @params int      $offset @params int      $l ...

  8. 关于StreamReader的知识分享

    今天我们来简单的介绍一下StreamReader,在将StreamReader之前,我们先来了解一下他的父类:TextReader.对于TextReader,大家可能比较陌生,下面我们来看一下Text ...

  9. 1、Struts2基本入门

    一.了解了这几个主要的优点,会促使你考虑使用Struts2 : 1.POJO表单及POJO操作 - Struts2 去除掉了Struts框架中的Action Forms部分.在Struts2框架下,你 ...

  10. 基于canvas实现钟表

    原理说明 1.通过arc方法实现钟表外环: 2.通过line实现钟表时针,分针,秒针和刻度标志的绘制,基于save和restore方法旋转画布绘制不同角度的指针: 3.通过font方法实现在画布上绘制 ...