在这个世界里,你知道得越多,就发现有更多的不知道,就在知道与不知道之间来回寻找,这个世界就是这样神奇。当你正在看NG的公开课时,就像这样在知与不知中寻找,或者在其中迷茫,或紧张,或张望,希望有人拉你一把。当看到下面这个公式时:

这个就是一个变量的线性回归最优化函数,NG当时没有解释为什么这样定义的,只是让这个J函数最小化,就可以达到最优化的线性方程回归了。同时,你如果看过我前面的文章,也会发现TensorFlow的例子里是这样来定义损失函数的:

loss = tf.reduce_mean(tf.square(y - y_data))

可以看到这里,tf.square(y - y_data)就是计算y - y_data的平方, tf.reduce_mean是计算所有平方的平均值,但没有除以2,因为除与不除都是一样的收敛性,所以省略了这个不必要的除法,还可以加快计算速度。

但是我很好奇这个一元变量的损失函数是怎么得来的呢?在原来的视频里没有解释,也许是我还没有看到。后来仔细翻看讲义,后面有推导整个过程,详细如下:

整个过程是通过《概率论》来推导的,然后通过似然函数(这里又引出了不知的概念?)变换,再对公式两边取对数,因为要l函数最大化,就是要后面负数项最小化,也就是推导出来最前面的公式了。

有了这个公式和理论支持,当遇到线性回归的问题时,就可以使用这个公式来构造损失函数,最后判断损失函数最小化,就达到判断训练是否达标了。因此,就可以把这个损失函数放入代码中:

# Minimize the mean squared errors.
loss = tf.reduce_mean(tf.square(y - y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)

给定了判断标准,就可以给大量的数据来训练这个神经元,让你的机器学会预测房价,或者预测股市的波动。

不过,这里只是一元的线性回归,比较单一的,如果想模拟复杂的情况,比如达到100个变量的模型,那么就得寻找更多不知道的东西了,这个世界就是这么神奇,当你知道了,又发现很多的不知道。

1. C++标准模板库从入门到精通

http://edu.csdn.net/course/detail/3324

2.跟老菜鸟学C++

http://edu.csdn.net/course/detail/2901

3. 跟老菜鸟学python

http://edu.csdn.net/course/detail/2592

4. 在VC2015里学会使用tinyxml库

http://edu.csdn.net/course/detail/2590

5. 在Windows下SVN的版本管理与实战

http://edu.csdn.net/course/detail/2579

6.Visual Studio 2015开发C++程序的基本使用

http://edu.csdn.net/course/detail/2570

7.在VC2015里使用protobuf协议

http://edu.csdn.net/course/detail/2582

8.在VC2015里学会使用MySQL数据库

http://edu.csdn.net/course/detail/2672

线性回归的最小化函数相关推荐

  1. 最小化函数minimize

    minimize 函数 我们先看问题 根据公式,定义一下dist函数 from scipy.optimize import minimizedef dist(xita, v0):g = 9.8xita ...

  2. python三角函数拟合_使用python进行数据拟合最小化函数

    这是我对这个问题的理解. 首先,我通过以下代码生成一些数据import numpy as np from scipy.integrate import quad from random import ...

  3. 近端算法:近端最小化(Proximal minimization)、近端梯度(PG)、加速近端梯度(APG)、ADMM

    近端算法 基本介绍及定义 定义 工作原理 性质 近端算子解释 Moreau-Yosida正则化 次微分算子的预解 修正梯度步长 信任区域问题 近端算法(Proximal Algorithms) 近端最 ...

  4. electron重启和关闭应用指令窗口 最小化窗口 最大化、恢复

    重启指令 app.relaunch() app.exit() 实战: import { app,ipcMain} from 'electron' ipcMain.on('window-reset', ...

  5. delphi如何让程序最小化到任务栏(使用Shell_NotifyIcon API函数)

    delphi如何让程序最小化到任务栏(使用Shell_NotifyIcon API函数) 转载于:https://www.cnblogs.com/LittleTiger/p/6519238.html

  6. Q窗口操作函数(窗口最大化,全屏,隐藏最大化最小化按钮)

    Qt窗口中的一些小技术总结 //Qt主窗口没有最小化,最大化按钮且最大化显示  int main(int argc, char *argv[]) { QApplication a(argc, argv ...

  7. Qt窗口操作函数(最大化,全屏,隐藏最大化,最小化)

    转自:https://blog.csdn.net/pamxy/article/details/9012221 转自:http://blog.csdn.net/zhangshan415/article/ ...

  8. qt widget 最大_Qt窗口操作函数(最大化,全屏,隐藏最大化,最小化)

    //Qt主窗口没有最小化,最大化按钮且最大化显示 int main(int argc, char *argv[]) { QApplication a(argc, argv); TestQtForWin ...

  9. C++:最小化多个变量的标量函数 使用Nelder-Mead算法(附完整源码)

    C++:最小化多个变量的标量函数 使用Nelder-Mead算法 asa047.hpp asa047.cpp asa047.hpp void nelmin ( double fn ( double x ...

最新文章

  1. C++条件变量使用详解
  2. percona-5.5安装笔记
  3. Prototype1.5.1源代码解读分析-1
  4. 深入浅出多线程系列之四:简单的同步 lock
  5. centos 的关机命令
  6. python中什么是实例-在Python中使用’__rsub__’方法的典型实例是什么?
  7. mac linux 蓝牙键盘,还在纠结Mac版键盘?试试KeyRemap4MacBook吧!
  8. 分而治之:Oracle 18c 及 12.2 分区新特性的 N 种优化实践(含PPT)
  9. Office Live Workspace让协同办公无处不在
  10. python存储序列_python序列类型及一些操作
  11. uiautomatorviewer 查看元素新思路
  12. fiddler手机抓包 443
  13. Rust: join,与concat
  14. 如何把pdf分割成多个?怎么把pdf文件分成多个?
  15. 财会法规与职业道德【18】
  16. cms免费建立java官网,免费开源cms
  17. Android开发笔记(一百八十六)管理SQLite的利器——应用检查器App Inspection
  18. uni-app引入阿里图标
  19. 制造硅异质结太阳能电池的简化表面清洁
  20. Android Studio 连真机提示No Device Found,adb.exe无法找到入口

热门文章

  1. 361度宣布新晋世界拳王徐灿为品牌形象代言人
  2. XP框架开启debug模式_王国风云3控制台大全(debug_mode)
  3. 名画223 项圣谟《花卉工笔画十幅》
  4. 【笔记】5、初学python3网络爬虫——正则表达式的基本使用
  5. IDEA:本机启动报错:该网页无法正常运作,localhost将您重定向的次数过多
  6. 汽车开源软件的“排头兵”——丰田首次搭载AGL
  7. 基于c#的串口设备通讯c#项目工程含虚拟串口软件与串口通信工具(C#源码)
  8. java.李雷和韩梅梅的加密纸条
  9. 你要知道的 | C语言【23道】经典算法【上】
  10. 从入职到离职员工需要注意的九个安全细节