美文网首页我爱编程
机器学习入门-线性模型1

机器学习入门-线性模型1

作者: 自由01 | 来源:发表于2018-06-06 13:05 被阅读48次

现在的人工智能几乎是机器学习尤其是深度学习的代称了,不管是Alpha Go还是正在实验中的自动驾驶,其背后都是机器学习算法。机器学习高度依赖数据,本质就是基于历史经验的预测。

大约在二十多年前,让机器像人一样“理解”世界的人工智能还很流行。比如警察在路上设了一个锥标,计算机得理解这是一个“锥标”,它意味着这里不能过,那怕锥标倒了或者变形,它也得能看出来才行。可是这背后涉及的技术太复杂了,换个角度计算机就有可能看出不来,更何况路面上的情况纷繁复杂,你根本没有办法把所有的知识都告诉计算机,而且计算机还不能像人一样基于现有的知识进行思考。这个路线现在几乎被放弃了。

现在机器学习的做法是先用大量的数据去训练出一个模型,然后再通过这个模型去预测将来。数据要尽可能涵盖所有的情况,才有可能抽取中有效的模型,就是用统计方法增加“猜测”的准确度。这也带来一个问题,就是机器虽然会有效的预知以前的发生过的事件,但却很难预测它没有见过的情况。

比如目前实验的自动驾驶在绝大部分时间里在路上可以正常行驶,可能比人驾驶的还要好,然而不能保证它能处理“意外”。要想让机器完全替代人类驾驶,通过海量的数据去覆盖所有的情况并不现实,因为未来本就是不可预测的,总是有可能出现你预测不到的情况,完全自动驾驶还需要技术上的进一步突破才能实现。我原来一度以为十年后人们可能不需要学习驾驶技术,可现在看来这可能过于乐观。

人工智能界有个专门的形容词——“unreasonable effective",不合理的有效性。人们解释不出原因,但是发现机器预测出来的结果准确率很高。虽然不能要求机器像人一样能应对意外,但机器基于历史数据的推测可能比人要有效的多。人和机器各有所长,让人和机器各自去处理所擅长的事情,这可能是面对人工智能的正确态度。

机器学习为什么具有这种不合理的有效性呢?因为这是有数学支撑的。用于人工智能的神经网络可以用来拟合几乎所有的函数。《神经网络和深度学习》一书的作者 Michael Nielsen 在这篇文章中列举了一个例子。一个下面这样的的函数,最终可以通过神经网络拟合出来,有兴趣的同学可以仔细研读下这篇文章文章。

看到上面的曲线,我猜有些人可能会联想到股市的K线。据统计市场上90%以上的交易已经是由机器来完成的,有相当数量已经引入机器学习算法。当然交易者共同作用的结果是让短期市场更不可预测,但如果能有效的使用机器学习会让你有更大的胜率。

机器学习背后涉及的知识非常复杂,学习当然不能从零开始,我们要站在巨人的肩膀上,所幸有很多开源的框架可以让我们方便的开始人式智能之旅。目前最流行人工智能框架首推由Google开源的TensorFlow,目前广泛应用于商业和研究中。

想要深入理解机器学习算法,最好先从易于理解的线性模型开始,这里介绍一个单变量线性模型的例子,源码放在github。用jupyter notebook打开源码, 需要安装Python 3, numpy, pandas, sklearn和matplotlib依赖库。

我们先来人为的设计一个线性模型 y = 0.5*x + 5,在0到10之间取一些样本点计算出输出,然后在随出数据上加一些随机噪声,原始数据画出来大概是这样的。

我们把这些数据随机分成两部分,70%用做训练,30%用做测试。训练数据每批次10个点,输入tensorflow的LinearRegressor模型训练1000次后,可以得到这样一个模型

Y = 0.5994 * x + 4.9244

这与我们实际的模型已经非常接近了,用它来预测数据的结果是这样的

因为噪声的缘故,预测结果与实际值总会有一些误差,但已经是非常接近了。

模型在TensorFlow中表示就是这样,两个Variable分别代表线性模型中的斜率和偏置,placeholder代表的是输入数据X和Y。模型输出值与实际值偏差的平方和是代表优化的效果,通过GradientDescentOptimizer不断调整Vairable使模型与实际偏差最小。

这是偏置Variable在训练的结果,可以看出它在不断逼近5,也就是原始模型的偏置。

斜率同样也是在不断逼近0.5,但是因为噪声的作用,它总是在0.5附近跳动。


这里只能介绍这个线性模型大致的样子,最好是自己新手运行一遍代码。代码中使用了手工线性模型和TensorFlow中内置的LinearRegressor模型,可以互为对照。训练过程也输出了中间结果,可以用TensorBoard观察以加深理解。

相关文章

  • 2019-10-29

    Day2 简单线性回归模型 机器学习入门--简单线性回归机器学习算法之线性回归算法 导入库matplotlib 绘...

  • [机器学习入门] 李宏毅机器学习笔记-25(Sturctured

    [机器学习入门] 李宏毅机器学习笔记-25(Sturctured Linear Model;结构化预测-线性模型)...

  • 机器学习入门-线性模型1

    现在的人工智能几乎是机器学习尤其是深度学习的代称了,不管是Alpha Go还是正在实验中的自动驾驶,其背后都是机器...

  • 机器学习入门——线性模型(1)

    线性linear,指量与量之间按比例、成直线的关系,在空间和时间上代表规则和光滑的运动,一阶导数为常数;非线性no...

  • Task4模型调参

    学习目标 了解常用的机器学习模型,并掌握机器学习模型的建模与调参流程 内容介绍 线性回归模型:线性回归对于特征的要...

  • 机器学习入门-线性模型2

    人工智能现在基本就是机器学习的代称了,所谓的“智能”就是从数据中寻找到的统计规律,并且用神经网络拟合后的模型。人工...

  • Python机器学习基础教程学习笔记(5)——线性模型(回归)

    Python机器学习基础教程学习笔记(5)——线性模型(回归) 1 线性回归处理wave数据集 1.1 wave数...

  • 2019-02-17

    机器学习系列 机器学习100天 机器学习第1天:数据预处理 机器学习第2天:简单线性回归模型 机器学习第3天:多元...

  • 西瓜书学习笔记-线性模型

    线性模型 1 基本形式 线性模型形式简单、易于建模,却蕴含这机器学习的一些重要思想。**许多功能强大的非线性模型可...

  • 线性回归模型

    参考:1.使用Python进行线性回归2.python机器学习:多元线性回归3.线性回归概念 线性回归模型是线性模...

网友评论

    本文标题:机器学习入门-线性模型1

    本文链接:https://www.haomeiwen.com/subject/jyrbsftx.html