TensorFlow从0到1丨第4篇:第一个机器学习问题

上一篇机器人类学习的启示借鉴人类学习的模式,描绘了数据驱动的机器学习方法论:通过大量数据来确定模型,从而让模型具有预测价值。本篇提出第一个机器学习问题,进一步看清楚机器学习的具体形式。

平行世界

在宇宙的一个平行世界中,天空是平面的,人们只能看到位于第一象限的星星。他们发现天上最亮的那颗星在缓慢的移动,于是收集了近千年以来所有天文学家的观测数据,共得到4次观测记载:

  • 2200年,(22, 18)
  • 2500年,(25, 15)
  • 2800年,(28, 12)
  • 3000年,(30, 10)

由于这颗星的意义非凡,人们想计算出这颗星的运行轨道,并预测当4000年来临时它是否会消失。

图1.平面星空

从数据得到模型

图2.人类的学习

先套用下人类的学习模式:

  • 获取数据:仅有的4次记录全部拿到;
  • 分析数据:将4次记录全部画在直角坐标系平面上,发现全部落在一条直线上;
  • 建立模型:利用函数知识得出一般的直线函数式为y=ax+b,但是a,b未知;
  • 预测未知:一旦知道了a和b的确切值,就得到了运行轨迹(直线)的模型,根据模型即可开展预测,比如给定任意的x坐标,即可得出y坐标。

到此,第一个机器学习问题就是直线模型的参数a和b如何得出?

对了,平行世界的人们还不会解二元一次方程组。他们要用数据去训练这个模型。

损失函数

他们希望有个算法,能找到模型的a和b,以至于模型的训练输出y,能够拟合所有的训练输入x。为了量化该目标,他们定义了损失函数:

图3.B-P-F-1 损失函数

对函数的形式做一些说明:

  • C是变量a和b的二元函数,而且是二次函数,C ≥ 0;
  • n是训练数据的个数;
  • output表示当输入为x时当前模型的实际输出;
  • y(x)表示训练输入为x时,对应的训练输出y。

这个损失函数的意义何在呢?

以终为始,假设找到了正确的a和b,确定了模型y=ax+b,那么对于任一x的取值,损失函数中的output(x)将等于y(x),即y(x)-output(x) = 0,此时“损失”为0。换句话说,确定最终a和b的过程,就是让损失函数达到其最小值的过程。此时,训练输出y“拟合了”训练输入x。

损失函数的形式,也是常见的一种统计定义,被称为均方误差MSE(Mean Squared Error),在这个语境下,y(x)被称为期望值,output(x)为观测值。任何误差都会被放大并累积起来。

到此,问题好像变的复杂了。没错,待确定模型y=ax+b虽然是一个一元一次函数,但是其损失函数却是二元二次函数。从函数图形上看它是一个曲面,而函数的最小值点处的a和b的取值,就是我们的线性模型的最佳参数。

图4.二次曲面

训练

他们找了台机器准备开始训练模型,4次观测数据全部用于训练(22, 18),(25, 15),(28, 12),(30, 10)。

先给个初始值,让a = -1, b = 50,看看“损失”是多少?

C(-1, 50) = 1/8 x [(18 - (-22 + 50))2+ (15 - (-25 + 50))2+ (12 - (-28 + 50))2+ (10 - (-30 + 50))2] = 50。

看来离“损失”为0还有差距。

换个值接着练,让a = -1, b = 40,再计算下“损失”:

C(-1, 40) = 1/8 x [(18 - (-22 + 40))2+ (15 - (-25 + 40))2+ (12 - (-28 + 40))2+ (10 - (-30 + 40))2] = 0。

运气不要太好!“损失”降至0,此时a = -1, b = 40。

确定模型并预测

训练做了2次,就找到了损失函数的最小值,这背后有种神秘的力量,指引(a,b)从(-1,50)迁移到了(-1,40)。不管怎样,天空最亮的那颗星的运行轨道模型总算是建立好了:y = -x + 40。这将载入史册,成为天文学的一个里程碑。

接下来完成预测吧:4000年来临时它会消失吗?

基于历史数据:

  • 2200年,(22, 18)
  • 2500年,(25, 15)
  • 2800年,(28, 12)
  • 3000年,(30, 10)

可以看出该星的x方向的速度是1/100年,那么到了4000年时,其位置的x坐标为:30 + 1/100年 x (4000-3000) = 40。

将x = 40,代入模型y = -x + 40,得到y = 0。就是说4000年来临时,该星的位置坐标是(40, 0)。预测非常悲观:届时它就要消失在第一象限之外了!

原文发布于微信公众号 - 人工智能LeadAI(atleadai)

原文发表时间:2017-08-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏marsggbo

论文笔记系列-Neural Architecture Search With Reinforcement Learning

神经网络在多个领域都取得了不错的成绩,但是神经网络的合理设计却是比较困难的。在本篇论文中,作者使用 递归网络去省城神经网络的模型描述,并且使用 增强学习训练RN...

1883
来自专栏ATYUN订阅号

可能提高GAN性能的方法介绍

生成器试图找到最好的图像来欺骗鉴别器。当两个网络互相对抗时,“最佳”图像不断变化。但是,优化可能会变得过于贪心,使其陷入永无止境的猫捉老鼠游戏中。这是模型不收敛...

1764
来自专栏机器学习之旅

应用:数据预处理-缺失值填充

2.直接根据没有缺失的数据线性回归填充,这样填充的好会共线性,填充的不好就没价值,很矛盾

742
来自专栏专知

【深度】Deep Visualization:可视化并理解CNN

【导读】本文利用非参数化方法来可视化CNN模型,希望帮助理解CNN。 专知公众号转载已获知乎作者余俊授权。 原文地址: https://zhuanlan.zhi...

6214
来自专栏大数据挖掘DT机器学习

银行风控案例:Logistics模型预测银行贷款违约

在面试中会经常碰到考察对数据挖掘算法的熟悉程度,面试官会出一道题或给出一些数据,让你结合实际谈谈你选择什么模型,该模型的大致原理是什么,使用条件有哪些,模型优缺...

39412
来自专栏量子位

在Keras+TF环境中,用迁移学习和微调做专属图像识别系统

图1:CompCars数据集的示例图像,整个数据集包含163家汽车制造商,1713种车型 王小新 编译自 Deep Learning Sandbox 量子位 出...

3665
来自专栏Zephery

Adaboost

NaiveBayesSpamFilter 利用朴素贝叶斯算法实现垃圾邮件的过滤,并结合Adaboost改进该算法。 1 Naive Bayes spam fil...

2757
来自专栏人工智能

机器学习-从高频号码中预测出快递送餐与广告骚扰

由头 1、笔者最近在做机器学习嘛,上次发了一篇文章,这周发现有大问题,此次算是对上篇的补充与说明。 2、算法基本完成,在进行收尾的工作,今天共享给大家思路,涉及...

1865
来自专栏机器之心

学界 | 谷歌云提出渐进式神经架构搜索:高效搜索高质量CNN结构

38112
来自专栏数据派THU

计算机视觉怎么给图像分类?KNN、SVM、BP神经网络、CNN、迁移学习供你选(附开源代码)

原文:Medium 作者:Shiyu Mou 来源:机器人圈 本文长度为4600字,建议阅读6分钟 本文为你介绍图像分类的5种技术,总结并归纳算法、实现方式,并...

49910

扫码关注云+社区