零基础入门机器学习-tensorflow(一)

写在最前面

机器学习在最近几年的热度可谓是蒸蒸日上,这项技术似乎要把这个世界做一番颠覆,或许可能会像移动互联网一样影响每个人的生活?这一切还不得而知,但可以确定的是,已经有不少企业家、科研人员、开发人员已经或即将投入机器学习的怀抱,我也是其中一个,在学习之初,搜集了不少机器学习的学习资料,现在这方面的资料和培训也越来越多,获取一份学习材料可谓非常方便,但是其中对于机器学习的入门门槛看上去似乎不低,光是数学知识已经吓倒了一批人,还有人工智能一直给人高大上的印象也使很多人望而却步。

写这篇文章的目的一方面是自我学习总结,另外也想避开数学高高的门槛,写一篇真正零基础的入门文章,能帮到准备入门的朋友尽量少走弯路,快速入门。

学习顺序

一定的数学知识能帮助理解机器学习的算法,但从数学开始学习未必是个好主意,学习机器学习一定要抓住主线,亲手搭建一个可运行的模型,在搭建过程中遇到什么知识短板,再临时去补救学习,听上去不怎么靠谱,但真的是经验之谈。文章假设你对机器学习一无所知,也假设你没有Python的编程经验,对于数学知识更是早已忘尽,这都没有关系,下面是我规划的的章节内容顺序,循序渐进,任何人都能玩转机器学习。

1. 机器学习的必要理论知识(本篇)

2. 机器学习需要用到的工具

3. 关于tensorflow你需要知道的

4. 实操搭建一个简单的线性回归预测模型

机器学习的必要理论知识

机器学习的分类

《零基础入门机器学习-tensorflow(一)》 《零基础入门机器学习-tensorflow(一)》

一般会把机器学习分为监督学习、无监督学习和增强学习几个大类。

监督学习

监督学习算法(Supervised learning algorithms)是机器学习算法家族的一个超集,这种方法被广泛地应用在预测模型之中。所谓预测模型,就是指使用机器学习算法以及训练数据的特征和属性所构建出来的一个模型,而对于新的输入数据,这个模型可以被用来预测新的结果。监督学习算法会尝试建立起输入特征与目标结果之间的联系和依赖关系,因而通过使用一个已有数据集的训练过程,我们就可以预测出一个新的数据集所对应的输出结果。

监督学习有点像教育小孩子的过程,看到了有人穿红灯的不文明情况,我们就会教育孩子说红灯是不能闯的,如果闯了红灯不仅可能会被罚款、更有被机动车撞到的危险,是一种不文明的行为,多次教育后,小孩就知道了看到红灯是需要等待,不能直接穿马路的。他的决策过程大概是这样的,首先看到了红灯,根据父母多次的教育(训练)记忆,推断应该将自己的行为应归类为等待红灯(分类问题),而不是继续行走。

在监督学习的应用中,更常见的分类问题就是图片识别,例如从10000张照片中自动挑选出狗狗的照片,我们人类可以很容易从照片中挑出狗狗照片,但是计算机没有意识,只能接收指令,我们该如何下指令告诉计算机挑选出指定的照片呢,要知道狗狗种类很多,即时是同一品种的也是有极大差别的,很难用程序去标注狗狗的各种特征,例如耳朵是竖着的,耳朵宽度和高度的比例是多少,耳朵轮廓毛长度是多少等等,也许需要写上上万条特征语句,或许还远远不够,这种指令化程序显然不适合处理这类问题。

监督学习非常适合处理这类问题,下面是人脑与计算机在处理问题时的相似之处,计算机会模拟人类总结经验的能力,对数据进行训练归纳,最终形成可用于预测和分类的模型,并将模型运用到新的数据集中。

《零基础入门机器学习-tensorflow(一)》 《零基础入门机器学习-tensorflow(一)》

人脑问题处理过程

《零基础入门机器学习-tensorflow(一)》 《零基础入门机器学习-tensorflow(一)》

计算机处理问题的过程

监督学习常见的应用有:图片识别、人脸识别、语音识别、医学图像分析等。

无监督学习

无监督学习算法(Unsupervised learning algorithms)是机器学习算法家族中常用来完成模式检测和描述性建模的一种算法。

与监督学习不同的是:无监督学习的训练数据没有标签,全靠计算机自己去分析数据,抽取特征值,然后做分类或关联,依旧用监督学习中的狗狗照片作为例子,这次给计算机的10000张照片没有打任何标签,照片中包含了十几种狗狗,无监督学习可以通过特征分析,将各种狗狗的照片区分开来(聚类),而无需人为干预。

无监督学习经常会应用于市场分析、气象分析等领域。

增强学习

在一些应用场景中,我们希望能达成的结果不是简单的预测分析,而是能通过自我学习达到既定目标的目的,例如我们开发了一款行走机器人,传统方式会写入行走的代码,比较明显的缺点是这类代码缺乏自我进化,对不同环境的应对能力不足,如果使用增强学习,我们只要给到一个目标,就是保持稳定并且往前行进,在学习过程中,失去平衡对机器人来说是一种惩罚,而稳步前行是一种奖励,通过奖惩不断修正模型,最终学会步行。这个过程与训练狗狗学会一个新的动作非常类似。

欠拟合、拟合与过拟合

我们总是希望模型能拟合真实数据,也就是通过训练数据训练后的模型具备真实环境的预测或分析能力,但有时因为参数太少或模型过于简单等原因,模型没有很好地捕捉到数据特征,不能够很好地拟合数据,如下面最左图,蓝色线代表计算机计算出的分割曲线(模型),但是并没有很好的区分O和X两种数据。

《零基础入门机器学习-tensorflow(一)》 《零基础入门机器学习-tensorflow(一)》

中间图则抓取到了数据的分布特征,曲线将两种数据区分开了(有2个X落在了曲线上方,造成这种情况有很多原因,例如误差或噪点),这种状况就认为已经拟合了数据。右侧的情况看起来比中间图拟合的更好,但是没有考虑到其中的噪音影响,虽然在训练数据上表现优异,但是在真实环境中,误差会比中间的曲线大的多,这种情况称为过拟合。

训练数据、测试数据与验证数据

训练数据在文中已多次出现,这个概念也比较好理解,在模型训练完成后,我们还希望知道这个模型的拟合能力如何,这时就需要用到测试数据了,测试数据有点像我们参加的考试,通过了一学期的学习(训练),是该展示下学到的本领了,测试数据就是考核模型用的,当然只能用一次,而在考试前,一般都会经过几轮模拟考试,模拟考试可以帮助找出平时没有注意到的知识点,这点就非常像验证数据,可以把验证数据理解为对模型的一次模拟考试。

深度学习

《零基础入门机器学习-tensorflow(一)》 《零基础入门机器学习-tensorflow(一)》

这是深度学习的模型示意图,真实情况会更加复杂,最左侧是输入,例如我们要做一个区分狗狗照片的应用,那么输入就是狗狗照片,中间是隐藏层,最右侧是输出,例如输出狗狗的类别,当隐藏层超过2层时就称为深度学习。这个结构有些类似人脑的神经元,所以也称为神经网络。

TENSORFLOW PLAYGROUND

《零基础入门机器学习-tensorflow(一)》
《零基础入门机器学习-tensorflow(一)》

在开始写第一个机器学习程序前,可以先看看这个,这是tenorflow的playground,一个可以动态演示机器学习过程的在线网页,网址是 http://playground.tensorflow.org 。你可以设置激活函数、学习率等各种参数,整个学习过程会使用动画动态演示,非常直观。

准备工作

任何一台笔记本电脑就能胜任这个简单的项目,所以不需要在硬件上有额外的支出。软件环境可以是windows、linux或mac,如果你是用mac电脑,可以参考我写的《从零开始搭建tensorflow人工智能开发环境(MAC版)》

更多的参考资料可以关注我的微信公众号:数字极客,回复“资料”关键字来获取。

数字极客 – 学知识,做最酷的事!www.digeek.tech

    原文作者:Bruce
    原文地址: https://zhuanlan.zhihu.com/p/34713808
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞