首页 > 学院 > 开发设计 > 正文

线性回归的最小化函数

2019-11-06 08:13:31
字体:
来源:转载
供稿:网友

在这个世界里,你知道得越多,就发现有更多的不知道,就在知道与不知道之间来回寻找,这个世界就是这样神奇。当你正在看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


上一篇:华为机试(一)

下一篇:Home work

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表