历史 机器学习_机器学习历史 - CSDN
  • 人工智能之机器学习

    2019-08-15 20:44:34
    人工智能人工智能概述python与java人工智能分类人工智能的历史机器学习机器学习定义机器学习概念机器学习概念性含义 人工智能 概述 人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、...

    人工智能

    概述

    人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是计算机科学的一个分支,它试图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器。

    python与java

    • 利用python解析数据集速度、效率方面比较轻量级
      i.轻量级指的是部署到服务器里面,可以提高服务器访问并发!
      ii.轻量级指的是业务与业务之间的逻辑性很强,兼容性很强、降低耦合度!
      iii.轻量级指的是业务与数据之间的一种关系体现很轻,简单说:获取数据集的方式很快、多样化
    • java语言也可以实现人工智能的操作数据但是不建议!—重量级
      i.重量级的操作,不适合"数据集的"采集操
      ii.重量级操作不适合数据集的清理操作
      iii.重量级的业务与数据之间很难进行数据解析操作!

    人工智能分类

    • 弱人工智能Artificial Narrow Intelligence(ANI)
      弱人工智能是擅长于单个方面的人工智能。
    • 强人工智能Artificial General Intelligence(AGI)
      人类级别的人工智能。强人工智能是指在各方面都能喝人类比肩的人工智能,人类能干的脑力活它都能干。
    • 超人工智能Artificial Super Intelligence(ASI)
      知名人工智能思想家Nick Bostrom把超级智能定义为”在几乎所有领域都比最聪明的人类大脑都聪明很多,包括科学创新、通识和社交技能“。

    人工智能的历史

    在这里插入图片描述

    机器学习

    机器学习定义

    • Machine Learning(ML) is a scientific discipline that deals with the
      construction and study of algorithms that can learn from data
    • 机器学习是一门从数据中研究算法的科学学科。
    • 机器学习直白来讲,是根据已有的数据,进行算法选择,并基于算法和数据构建模型,最终对未来进行预测
      在这里插入图片描述

    “数据”-----------到 --------“算法”
    如何实现 “数据” 到 "算法"的过程?
    数据采集(Python)—>数据分析(Python)—> 数据挖掘(hadoop)—> 模型建立(算法)—> 预测未来 (机器)

    • 基本概念
      输入: x ∈X(属性值)
      输出: y ∈Y(目标值 )
      获得一个目标函数(target function):f : X —> Y(理想的公式)
      输入数据:D={(x1,y1),(x2,y2)·····(xn,yn)}(历史记录信息)==数据集!
      最终具有最优性能的假设公式:g : X —> Y(学习得到的最终公式 )

    机器学习概念

    •美国卡内基梅隆大学(Carnegie Mellon University)机器学习研究领域的著名教授Tom Mitchell对机器学习的经典定义

    • A program can be said to learn from experience E with respect to some class of tasks T and performance measure P , If its performance at tasks in T, as measured by P, improves with experience E
    • 对于某给定的任务T,在合理的性能度量方案P的前提下,某计算机程序可以自主学习任务T的经验E;随着提供合适、优质、大量的经验E,该程序对于任务T的性能逐步提高。
    • 其中重要的机器学习对象:
      • 任务Task T,一个或多个、经验Experience E、度量性能Performance P
      • 即:随着任务的不断执行,经验的累积会带来计算机性能的提升。

    在这里插入图片描述
    ①算法(T):根据业务需要和数据特征选择的相关算法, 也就是一个数学公式
    ②模型(E):基于数据和算法构建出来的模型
    ③评估/测试( P):对模型进行评估的策略

    机器学习概念性含义

    机器学习是人工智能的一个分支。我们使用计算机设计一个系统,使它能够根据提供的训练数据按照一定的方式来学习;随着训练次数的增加,该系统可以在性能上不断学习和改进;通过参数优化的学习模型,能够用于预测相关问题的输出。

    • 训练数据
      训练指的是一种学习行为 将学到的转化为:“经验”-----通过经验采集的数据才是训练数据!

       训练数据是存在很大的不合理性! 并不能满足机器的学习使用!
      
    • 数据集
      数据集就是一种算法的实现!

      数据集不是训练数据,能满足机器的学习使用!
      
    • x(i)
      表示第i个样本的x向量

    • xi : x向量的第i维度的值

    • 拟合
      构建的算法符合给定数据的特征

    • 鲁棒性
      健壮性、稳健性、强健性,是系统的健壮性;当存在异常数据的时候,算法也会拟合数据

    • 过拟合
      算法太符合样本数据的特征,对于实际生产中的数据特征无法拟合

    • 欠拟合
      算法不太符合样本的数据特征

    常见应用框架

    • sciket-learn(Python)
      http://scikit-learn.org/stable/
      于Python语言开发的人工智能 ----大量使用 <效率最高的 >
    • Mahout(Hadoop生态圈基于MapReduce)
      http://mahout.apache.org/
      基于大数据hadoop的人工智能-----不建议 (大数据直接和AI结合)----成本太高!–国内:AI技术<科大讯飞>
    • Spark MLlib
      http://spark.apache.org/
      基于Spark MLlib 是处理数据解析 —数据集 --它处理数据集的速度高出hadoop的百倍

    人工智能的应用场景

    • 个性化推荐:个性化指的是根据各种因素来改变用户体验和呈现给用户内容,这些因素可能包含用户的行为数据和外部因素;推荐常指系统向用户呈现一个用户可能感兴趣的物品列表。
    • 精准营销:从用户群众中找出特定的要求的营销对象。
    • 客户细分:试图将用户群体分为不同的组,根据给定的用户特征进行客户分组。
    • 预测建模及分析:根据已有的数据进行建模,并使用得到的模型预测未来

    机器学习、数据分析、数据挖掘区别与联系

    • 数据分析:数据分析是指用适当的统计分析方法对收集的大量数据进行分析并提取有用的信息,以及形成结论,从而对数据进行详细的研究和概括过程。在实际工作中,数据分析可帮助人们做出判断;数据分析一般而言可以分为统计分析、探索性数据分析和验证性数据分析三大类。
    • 数据挖掘:一般指从大量的数据中通过算法搜索隐藏于其中的信息的过程。通常通过统计、检索、机器学习、模式匹配等诸多方法来实现这个过程。
    • 机器学习:是数据分析和数据挖掘的一种比较常用、比较好的手段。

    机器学习分类

    有监督学习
    定义

    已知某种或某些特性的样本作为训练集,以建立一个数学模型,再用已建立的模型来预测未知样本,此种方法被称为有监督学习,是最常用的一种机器学习方法。是从标签化训练数据集中推断出模型的机器学习任务。

    算法
    • 判别式模型(Discriminative Model)
      直接对条件概率p(y|x)进行建模,常见判别模型有:线性回归、决策树、支持向量机SVM、k近邻、神经网络等;
    • 生成式模型(Generative Model)
      对联合分布概率p(x,y)进行建模,常见生成式模型有:隐马尔可夫模型HMM、朴素贝叶斯模型、高斯混合模型GMM、LDA等;
    • 区别:
      ①生成式模型更普适;判别式模型更直接,目标性更强
      ②生成式模型关注数据是如何产生的,寻找的是数据分布模型;判别式模型关注的数据的差异性,寻找的是分类面
      ③由生成式模型可以产生判别式模型,但是由判别式模式没法形成生成式模型
    无监督学习
    定义

    与监督学习相比,无监督学习的训练集中没有人为的标注的结果,在非监督的学习过程中,数据并不被特别标识,学习模型是为了推断出数据的一些内在结构。

    算法

    无监督学习试图学习或者提取数据背后的数据特征,或者从数据中抽取出重要的特征信息,常见的算法有聚类、降维、文本处理(特征抽取)等。

    无监督学习一般是作为有监督学习的前期数据处理,功能是从原始数据中抽取出必要的标签信息。

    半监督学习
    定义

    考虑如何利用少量的标注样本大量的未标注样本进行训练分类的问题,是有监督学习和无监督学习的结合。半监督学习对于减少标注代价,提高学习机器性能具有非常重大的实际意义。
    它的成立依赖于模型假设,主要分为三大类:平滑假设、聚类假设、流行假设;其中流行假设更具有普遍性。

    算法

    主要分为四大类:半监督分类、半监督回归、半监督聚类、半监督降维。

    缺点

    抗干扰能力弱,仅适合于实验室环境,其现实意义还没有体现出来;未来的发展主要是聚焦于新模型假设的产生。

    机器学习算法TOP10

    算法名称 算法描述
    C4.5 分类决策树算法,决策树的核心算法,ID3算法的改进算法。
    CART 分类与回归树(Classification and Regression Trees)
    kNN K近邻 分类算法;如果一个样本在特征空间中的k个最相似的样本中大多数属于某一个类别,那么该样本也属于该类别
    NaiveBayes 贝叶斯分类模型;该模型比较适合属性相关性比较小的时候,如果属性相关性比较大的时候,决策树模型比贝叶斯分类模型效果好(原因:贝叶斯模型假设属性之间是互不影响的)
    SVM 支持向量机,一种有监督学习的统计学习方法,广泛应用于统计分类和回归分析中。
    EM 最大期望算法,常用于机器学习和计算机视觉中的数据集聚领域
    Apriori 关联规则挖掘算法
    K-Means 聚类算法,功能是将n个对象根据属性特征分为k个分割(k<n); 属于无监督学习
    PageRank Google搜索重要算法之一
    AdaBoost 迭代算法;利用多个分类器进行数据

    机器学习、人工智能和深度学习的关系

    • 深度学习是机器学习的子类;深度学习是基于传统的神经网络算法发展到’多隐层’的一种算法体现。
    • 机器学习是人工智能的一个子类;
      在这里插入图片描述

    机器学习开发流程

    • 数据收集
    • 数据预处理(数据清洗和转换)
    • 特征提取
    • 模型构建
    • 模型测试评估
    • 投入使用(模型部署与整合)
    • 迭代优化
      在这里插入图片描述
    数据收集
    数据来源
    • 用户访问行为数据-----页面数据
    • 业务数据-----后台 Python 和 java
    • 外部第三方数据-----接口数据
    数据存储
    • 需要存储的数据:原始数据、预处理后数据、模型结果
    • 存储设施:mysql、HDFS、HBase、Solr、Elasticsearch、Kafka、Redis等
    数据收集方式
    • Flume & Kafka
    机器学习可用公开数据集

    在实际工作中,我们可以使用业务数据进行机器学习开发,但是在学习过程中,没有业务数据,此时可以使用公开的数据集进行开发,常用数据集如下:
    http://archive.ics.uci.edu/ml/datasets.html
    https://aws.amazon.com/cn/public-datasets/
    https://www.kaggle.com/competitions
    http://www.kdnuggets.com/datasets/index.html
    http://www.sogou.com/labs/resource/list_pingce.php
    https://tianchi.aliyun.com/datalab/index.htm
    http://www.pkbigdata.com/common/cmptIndex.html

    数据预处理

    指的是将采集的 "数据集"通过 算法,变为满足无监督 、有监督、半监督的学习过程数据!

    预处理的操作
    • 数据过滤
    • 处理数据缺失
    • 处理可能的异常、错误或者异常值
    • 合并多个数据源数据
    • 数据汇总

    对数据进行初步的预处理,需要将其转换为一种适合机器学习模型的表示形式,对许多模型类型来说,这种表示就是包含数值数据的向量或者矩阵

    • 将类别数据编码成为对应的数值表示(一般使用1-of-k方法)-dumy
    • 从文本数据中提取有用的数据(一般使用词袋法或者TF-IDF)
    • 处理图像或者音频数据(像素、声波、音频、振幅等<傅里叶变换>)
    • 数值数据转换为类别数据以减少变量的值,比如年龄分段
    • 对数值数据进行转换,比如对数转换
    • 对特征进行正则化、标准化,以保证同一模型的不同输入变量的值域相同
    • 对现有变量进行组合或转换以生成新特征,比如平均数 (做虚拟变量)不断尝试
    模型构建
    • 对特定任务最优建模方法的选择或者对特定模型最佳参数的选择。
    • 在训练数据集上运行模型(算法)并在测试数据集中测试效果,迭代进行数据模型的修改,这种方式被称为交叉验证(将数据分为训练集和测试集,使用训练集构建模型,并使用测试集评估模型提供修改建议)
    • 模型的选择会尽可能多的选择算法进行执行,并比较执行结果
    模型测试评估

    模型的测试一般以以下几个方面来进行比较,分别是准确率/召回率/精准率/F值
    ①准确率(Accuracy)=提取出的正确样本数/总样本数
    ②召回率(Recall)=正确的正例样本数/样本中的正例样本数——覆盖率
    ③精准率(Precision)=正确的正例样本数/预测为正例的样本数
    ④F值=PrecisionRecall2 / (Precision+Recall) (即F值为正确率和召回率的调和平均值
    附:
    在这里插入图片描述

    投入使用
    • 当模型构建好后,将训练好的模型存储到数据库中,方便其它使用模型的应用加载(构建好的模型一般为一个矩阵)
    • 模型需要周期性,比如:一个月、一周
    模型的监控与反馈
    • 当模型一旦投入到实际生产环境中,模型的效果监控是非常重要的,往往需要关注业务效果和用户体验,所以有时候会进行A/B测试
    • 模型需要对用户的反馈进行响应操作,即进行模型修改,但是要注意异常反馈信息对模型的影响,故需要进行必要的数据预处理操作
    展开全文
  • 其它机器学习、深度学习算法的全面系统讲解可以阅读《机器学习-原理、算法与应用》,清华大学出版社,雷明著,由SIGAI公众号作者倾力打造。 书的购买链接 书的勘误,优化,源代码资源 机器学习是现阶段解决很多...

    其它机器学习、深度学习算法的全面系统讲解可以阅读《机器学习-原理、算法与应用》,清华大学出版社,雷明著,由SIGAI公众号作者倾力打造。

    机器学习是现阶段解决很多人工智能问题的主流方法,作为一个独立的方向,正处于高速发展之中。最早的机器学习算法可以追溯到20世纪初,到今天为止,已经过去了100多年。从1980年机器学习称为一个独立的方向开始算起,到现在也已经过去了近40年。在这100多年中,经过一代又一代人的努力,诞生出了大量经典的方法,在本文中,SIGAI将分有监督学习,无监督学习,概率图模型,深度学习,强化学习4个大方向对历史上出现的经典算法进行整理与总结,帮助大家理清机器学习这100多年来的发展历史,完成对机器学习的寻根问祖之旅。限于篇幅,我们无法对所有算法一一列举,只介绍有代表性的一部分。

     

    算法的分类

    总体上,机器学习算法可以分为有监督学习,无监督学习,强化学习3种类型。半监督学习可以认为是有监督学习与无监督学习的结合,不在本文讨论的范围之类。

    有监督学习通过训练样本学习得到一个模型,然后用这个模型进行推理。例如,我们如果要识别各种水果的图像,则需要用人工标注(即标好了每张图像所属的类别,如苹果,梨,香蕉)的样本进行训练,得到一个模型,接下来,就可以用这个模型对未知类型的水果进行判断,这称为预测。如果只是预测一个类别值,则称为分类问题;如果要预测出一个实数,则称为回归问题,如根据一个人的学历、工作年限、所在城市、行业等特征来预测这个人的收入。

    无监督学习则没有训练过程,给定一些样本数据,让机器学习算法直接对这些数据进行分析,得到数据的某些知识。其典型代表是聚类,例如,我们抓取了1万个网页,要完成对这些网页的归类,在这里,我们并没有事先定义好的类别,也没有已经训练好的分类模型。聚类算法要自己完成对这1万个网页的归类,保证同一类网页是同一个主题的,不同类型的网页是不一样的。无监督学习的另外一类典型算法是数据降维,它将一个高维向量变换到低维空间中,并且要保持数据的一些内在信息和结构。

    强化学习是一类特殊的机器学习算法,算法要根据当前的环境状态确定一个动作来执行,然后进入下一个状态,如此反复,目标是让得到的收益最大化。如围棋游戏就是典型的强化学习问题,在每个时刻,要根据当前的棋局决定在什么地方落棋,然后进行下一个状态,反复的放置棋子,直到赢得或者输掉比赛。这里的目标是尽可能的赢得比赛,以获得最大化的奖励。

    总结来说,这些机器学习算法要完成的任务是:

    分类算法-是什么?即根据一个样本预测出它所属的类别。

    回归算法-是多少?即根据一个样本预测出一个数量值。

    聚类算法-怎么分?保证同一个类的样本相似,不同类的样本之间尽量不同。

    强化学习-怎么做?即根据当前的状态决定执行什么动作,最后得到最大的回报。

     

    有监督学习

    我们首先来看有监督学习,这是机器学习算法中最庞大的一个家族。下图列出了经典的有监督学习算法(深度学习不在此列):

     

    线性判别分析(LDA)[1]是Fisher发明的,其历史可以追溯到1936年,那时候还没有机器学习的概念。这是一种有监督的数据降维算法,它通过线性变换将向量投影到低维空间中,保证投影后同一种类型的样本差异很小,不同类的样本尽量不同。

    贝叶斯分类器起步于1950年代,基于贝叶斯决策理论,它把样本分到后验概率最大的那个类。

    logistic回归[2]的历史同样悠久,可以追溯到1958年。它直接预测出一个样本属于正样本的概率,在广告点击率预估、疾病诊断等问题上得到了应用。

    感知器模型[3]是一种线性分类器,可看作是人工神经网络的前身,诞生于1958年,但它过于简单,甚至不能解决异或问题,因此不具有实用价值,更多的起到了思想启蒙的作用,为后面的算法奠定了思想上的基础。

    kNN算法[7]诞生于1967年,这是一种基于模板匹配思想的算法,虽然简单,但很有效,至今仍在被使用。

    在1980年之前,这些机器学习算法都是零碎化的,不成体系。但它们对整个机器学习的发展所起的作用不能被忽略。

    从1980年开始,机器学习才真正成为一个独立的方向。在这之后,各种机器学习算法被大量的提出,得到了快速发展。

    决策树的3种典型实现:ID3[4],CART[5],C4.5[6]是1980年代到1990年代初期的重要成果,虽然简单,但可解释性强,这使得决策树至今在一些问题上仍被使用。

    1986年诞生了用于训练多层神经网络的真正意义上的反向传播算法[11],这是现在的深度学习中仍然被使用的训练算法,奠定了神经网络走向完善和应用的基础。

    1989年,LeCun设计出了第一个真正意义上的卷积神经网络[13],用于手写数字的识别,这是现在被广泛使用的深度卷积神经网络的鼻祖。

    在1986到1993年之间,神经网络的理论得到了极大的丰富和完善,但当时的很多因素限制了它的大规模使用。

    1990年代是机器学习百花齐放的年代。在1995年诞生了两种经典的算法-SVM[9]和AdaBoost[12],此后它们纵横江湖数十载,神经网络则黯然失色。SVM代表了核技术的胜利,这是一种思想,通过隐式的将输入向量映射到高维空间中,使得原本非线性的问题能得到很好的处理。而AdaBoost则代表了集成学习算法的胜利,通过将一些简单的弱分类器集成起来使用,居然能够达到惊人的精度。

    现在大红大紫的LSTM[51]在2000年就出现了,这让很多同学会感到惊讶。当在很长一段时间内一直默默无闻,直到2013年后与深度循环神经网络整合,在语音识别上取得成功。

    随机森林[10]出现于2001年,于AdaBoost算法同属集成学习,虽然简单,但在很多问题上效果却出奇的好,因此现在还在被大规模使用。

    2009年距离度量学习的一篇经典之作[8]算是经典机器学习算法中年轻的小兄弟,在后来,这种通过机器学习得到距离函数的想法被广泛的研究,出现了不少的论文。

    从1980年开始到2012年深度学习兴起之前,有监督学习得到了快速的发展,这有些类似于春秋战国时代,各种思想和方法层出不穷,相继登场。另外,没有一种机器学习算法在大量的问题上取得压倒性的优势,这和现在的深度学习时代很不一样。

     

    无监督学习

    相比于有监督学习,无监督学习的发展一直和缓慢,至今仍未取得大的突破。下面我们按照聚类和数据降维两类问题对这些无监督学习算法进行介绍。

     

    聚类

    聚类算法的历史与有监督学习一样悠久。层次聚类算法出现于1963年[26],这是非常符合人的直观思维的算法,现在还在使用。它的一些实现方式,包括SLINK[27],CLINK[28]则诞生于1970年代。

     

    k均值算法[25]可谓所有聚类算法中知名度最高的,其历史可以追溯到1967年,此后出现了大量的改进算法,也有大量成功的应用,是所有聚类算法中变种和改进型最多的。

    大名鼎鼎的EM算法[29]诞生于1977年,它不光被用于聚类问题,还被用于求解机器学习中带有缺数数据的各种极大似然估计问题。

    Mean Shift算法[32]早在1995年就被用于聚类问题,和DBSCAN算法[30],OPTICS算法[31]一样,同属于基于密度的聚类算法。

    谱聚类算法[33]是聚类算法家族中年轻的小伙伴,诞生于2000年左右,它将聚类问题转化为图切割问题,这一思想提出之后,出现了大量的改进算法。

     

    数据降维

    下面来说数据降维算法。经典的PCA算法[14]诞生于1901年,这比第一台真正的计算机的诞生早了40多年。LDA在有监督学习中已经介绍,在这里不再重复。

     

    此后的近100年里,数据降维在机器学习领域没有出现太多重量级的成果。直到1998年,核PCA[15]作为非线性降维算法的出现。这是核技术的又一次登台,与PCA的结合将PCA改造成了非线性的降维算法。

    从2000年开始,机器学习领域刮起了一阵流形学习的旋风,这种非线性方法是当时机器学习中炙手可热的方向,这股浪潮起始于局部线性嵌入LLL[16]。此后,拉普拉斯特征映射,局部保持投影,等距映射等算法相继提出[17-19]。流形学习在数学上非常优美,但遗憾的是没有多少公开报道的成功的应用。

    t-SNE是降维算法中年轻的成员,诞生于2008年,虽然想法很简单,效果却非常好。

     

    概率图模型

    概率图模型是机器学习算法中独特的一个分支,它是图与概率论的完美结合。在这种模型中,每个节点表示随机变量,边则表示概率。因为晦涩难以理解,让很多同学谈虎色变,但如果你悟透了这类方法的本质,其实并不难。

    赫赫有名的隐马尔可夫模型[21]诞生于1960年,在1980年代,它在语音识别中取得了成功,一时名声大噪,后来被广泛用于各种序列数据分析问题,在循环神经网络大规模应用之前,处于主导地位。

     

    马尔可夫随机场诞生于1974年[23],也是一种经典的概率图模型算法。贝叶斯网络[22]是概率推理的强大工具,诞生于1985年,其发明者是概率论图模型中的重量级人物,后来获得了图灵奖。条件随机场[24]是概率图模型中相对年轻的成员,被成功用于中文分词等自然语言处理,还有其他领域的问题,也是序列标注问题的有力建模工具。

     

    深度学习

    虽然真正意义上的人工神经网络诞生于1980年代,反向传播算法也早就被提出,卷积神经网络、LSTM等早就别提出,但遗憾的是神经网络在过去很长一段时间内并没有得到大规模的成功应用,在于SVM等机器学习算法的较量中处于下风。原因主要有:算法本身的问题,如梯度消失问题,导致深层网络难以训练。训练样本数的限制。计算能力的限制。直到2006年,情况才慢慢改观。

    对神经网络改进一直在进行着,在深度学习的早期,自动编码器和受限玻尔兹曼机被广泛的研究,典型的改进和实现就有去噪自动编码器[34],收缩自动编码器[36],变分自动编码器[35],DBN[37],DBM[38]等轮流出场,虽然热闹,但还是没有真正得到成功应用。

     

    后来在语音识别中大显身手的CTC(连接主义时序分类)[39]早在2006年就被提出,然而生不逢时,在后面一直默默无闻。情况真正被改变发生在2012年,Alex网络的成功[41]使得深度神经网络卷土重来。在这之后,卷积神经网络被广泛的应用于机器视觉的各类问题。循环神经网络则被用于语音识别、自然语言处理等序列预测问题。整合了循环神经网络和编码器-解码器框架的seq2seq技术[40],巧妙了解决了大量的实际应用问题。而GAN[42]作为深度生成模型的典型代表,可以生成逼真的图像,得到了不可思议的效果,是现在深度学习中热门的研究方向。

    历史选择了神经网络并非偶然,它有万能逼近定理作为保障,可以拟合闭区间上任意一个连续函数。另外,我们可以人为控制网络的规模,用来拟合非常复杂的函数,这是其他机器学习算法不具备的。深度学习的出现,让图像、语音等感知类问题取得了真正意义上的突破,离实际应用已如此之近。

     

    强化学习

    相比有监督学习和无监督学习,强化学习在机器学习领域的起步更晚。虽然早在1980年代就出现了时序差分算法[42-44],但对于很多实际问题,我们无法用表格的形式列举出所有的状态和动作,因此这些抽象的算法无法大规模实用。

     

    神经网络与强化学习的结合,即深度强化学习46-50],才为强化学习带来了真正的机会。在这里,深度神经网络被用于拟合动作价值函数即Q函数,或者直接拟合策略函数,这使得我们可以处理各种复杂的状态和环境,在围棋、游戏、机器人控制等问题上真正得到应用。神经网络可以直接根据游戏画面,自动驾驶汽车的摄像机传来的图像,当前的围棋棋局,预测出需要执行的动作。其典型的代表是DQN[46]这样的用深度神经网络拟合动作价值函数的算法,以及直接优化策略函数的算法[47-50]。

     

    参考文献

    [1] Fisher, R. A. (1936). The Use of Multiple Measurements in Taxonomic Problems. Annals of Eugenics. 7 (2): 179–188.

    [2] Cox, DR (1958). The regression analysis of binary sequences (with discussion). J Roy Stat Soc B. 20 (2): 215–242.

    [3] Rosenblatt, F. (1958). "The Perceptron: A Probalistic Model For Information Storage And Organization In The Brain". Psychological Review. 65 (6): 386–408.

    [4] Quinlan, J. R. 1986. Induction of Decision Trees. Mach. Learn. 1, 1 (Mar. 1986), 81–106

    [5] Breiman, L., Friedman, J. Olshen, R. and Stone C. Classification and Regression Trees, Wadsworth, 1984.

    [6] Quinlan, J. R. C4.5: Programs for Machine Learning. Morgan Kaufmann Publishers, 1993.

    [7] Thomas M Cover, Peter E Hart. Nearest neighbor pattern classification. IEEE Transactions on Information Theory, 1967.

    [8] Kilian Q Weinberger, Lawrence K Saul. Distance Metric Learning for Large Margin Nearest Neighbor Classification. 2009, Journal of Machine Learning Research.

    [9] Cortes, C. and Vapnik, V. Support vector networks. Machine Learning, 20, 273-297, 1995

    [10] Breiman, Leo. Random Forests. Machine Learning 45 (1), 5-32, 2001.

    [11] David E. Rumelhart, Geoffrey E. Hinton, and Ronald J. Williams. Learning internal representations by back-propagating errors. Nature, 323(99): 533-536, 1986.

    [12] Freund, Y. Boosting a weak learning algorithm by majority. Information and Computation, 1995.

    [13] Y. LeCun, B. Boser, J. S. Denker, D. Henderson, R. E. Howard, W. Hubbard, L. D. Jackel, Backpropagation Applied to Handwritten Zip Code Recognition. 1989.

     

    [14] Pearson, K. (1901). On Lines and Planes of Closest Fit to Systems of Points in Space. Philosophical Magazine. 2 (11): 559–572.

    [15] Schölkopf, Bernhard (1998). "Nonlinear Component Analysis as a Kernel Eigenvalue Problem". Neural Computation. 10: 1299–1319.

    [16] Roweis, Sam T and Saul, Lawrence K. Nonlinear dimensionality reduction by locally linear embedding. Science, 290(5500). 2000: 2323-2326.

    [17] Belkin, Mikhail and Niyogi, Partha. Laplacian eigenmaps for dimensionality reduction and data representation. Neural computation. 15(6). 2003:1373-1396.

    [18] He Xiaofei and Niyogi, Partha. Locality preserving projections. NIPS. 2003:234-241.

    [19] Tenenbaum, Joshua B and De Silva, Vin and Langford, John C. A global geometric framework for nonlinear dimensionality reduction. Science, 290(5500). 2000: 2319-2323.

    [20] Laurens Van Der Maaten, Geoffrey E Hinton. Visualizing Data using t-SNE. 2008, Journal of Machine Learning Research.

     

    [21] Stratonovich, R.L. (1960). "Conditional Markov Processes". Theory of Probability and its Applications. 5 (2): 156–178.

    [22] Pearl J (1985). Bayesian Networks: A Model of Self-Activated Memory for Evidential Reasoning (UCLA Technical Report CSD-850017). Proceedings of the 7th Conference of the Cognitive Science Society, University of California, Irvine, CA. pp. 329–334. Retrieved 2009-05-01.

    [23] Moussouris, John (1974). "Gibbs and Markov random systems with constraints". Journal of Statistical Physics. 10 (1): 11–33.

    [24] Lafferty, J., McCallum, A., Pereira, F. (2001). "Conditional random fields: Probabilistic models for segmenting and labeling sequence data". Proc. 18th International Conf. on Machine Learning. Morgan Kaufmann. pp. 282–289.

     

    [25] MacQueen, J. B. (1967). Some Methods for classification and Analysis of Multivariate Observations. Proceedings of 5th Berkeley Symposium on Mathematical Statistics and Probability. 1. University of California Press. pp. 281–297. MR 0214227. Zbl 0214.46201. Retrieved 2009-04-07.

    [26] Ward, Joe H. (1963). "Hierarchical Grouping to Optimize an Objective Function". Journal of the American Statistical Association. 58 (301): 236–244. doi:10.2307/2282967. JSTOR 2282967. MR 0148188.

    [27] R. Sibson (1973). "SLINK: an optimally efficient algorithm for the single-link cluster method" (PDF). The Computer Journal. British Computer Society. 16 (1): 30–34. doi:10.1093/comjnl/16.1.30.

    [28] D. Defays (1977). "An efficient algorithm for a complete-link method". The Computer Journal. British Computer Society. 20 (4): 364–366. doi:10.1093/comjnl/20.4.364.

    [29] Dempster, A.P.; Laird, N.M.; Rubin, D.B. (1977). "Maximum Likelihood from Incomplete Data via the EM Algorithm". Journal of the Royal Statistical Society, Series B. 39 (1): 1–38. JSTOR 2984875. MR 0501537.

    [30] Ester, Martin; Kriegel, Hans-Peter; Sander, Jörg; Xu, Xiaowei (1996). Simoudis, Evangelos; Han, Jiawei; Fayyad, Usama M., eds. A density-based algorithm for discovering clusters in large spatial databases with noise. Proceedings of the Second International Conference on Knowledge Discovery and Data Mining (KDD-96). AAAI Press. pp. 226–231.

    [31] Mihael Ankerst, Markus M. Breunig, Hans-Peter Kriegel, Jörg Sander (1999). OPTICS: Ordering Points To Identify the Clustering Structure. ACM SIGMOD international conference on Management of data. ACM Press. pp. 49–60.

    [32] Yizong Cheng. Mean Shift, Mode Seeking, and Clustering. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1995.

    [33] Jianbo Shi and Jitendra Malik, "Normalized Cuts and Image Segmentation", IEEE Transactions on PAMI, Vol. 22, No. 8, Aug 2000.

     

    [34] Pascal Vincent, Hugo Larochelle, Yoshua Bengio, Pierreantoine Manzagol. Extracting and composing robust features with denoising auto encoders. international conference on machine learning, 2008.

    [35] Diederik P Kingma; Welling, Max (2013). "Auto-Encoding Variational Bayes". arXiv:1312.6114

    [36] Salah Rifai, Pascal Vincent, Xavier Muller, Xavier Glorot, Yoshua Bengio. Contractive Auto-Encoders: Explicit Invariance During Feature Extraction. international conference on machine learning, 2011.

    [37]Ruslan Salakhutdinov, Geoffrey E Hinton. Deep Boltzmann Machines. international conference on artificial intelligence and statistics, 2009.

    [38]Hinton G (2009). "Deep belief networks". Scholarpedia. 4 (5): 5947.

    [39]Alex Graves, Santiago Fernandez, Faustino J Gomez, Jurgen Schmidhuber. Connectionist temporal classification: labelling unsegmented sequence data with recurrent neural networks.international conference on machine learning. 2006.

    [40]Ilya Sutskever, Oriol Vinyals, Quoc V Le. Sequence to Sequence Learning with Neural Networks. neural information processing systems. 2014.

    [41]Alex Krizhevsky, Ilya Sutskever, Geoffrey E.Hinton. ImageNet Classification with Deep Convolutional Neural Networks. 2012.

    [42]Goodfellow Ian, Pouget-Abadie J, Mirza M, et al. Generative adversarial nets. Advances in Neural Information Processing Systems, 2672-2680, 2014.

     

    [42]Richard Sutton (1988). "Learning to predict by the methods of temporal differences". Machine Learning. 3 (1): 9–44.

    [43]Watkins, C.J.C.H. (1989), Learning from Delayed Rewards (PDF) (Ph.D. thesis), Cambridge University.

    [44]Online Q-Learning using Connectionist Systems" by Rummery & Niranjan (1994)

    [45]van Hasselt, Hado (2011). "Double Q-learning" (PDF). Advances in Neural Information Processing Systems. 23: 2613–2622.

    [46]Volodymyr Mnih, Koray Kavukcuoglu, David Silver, Alex Graves, Ioannis Antonoglou. Playing Atari with Deep Reinforcement Learning. NIPS 2013.

    [47]Mnih, V., Badia, A. P., Mirza, M., Graves, A., Harley, T., Lillicrap, T. P., Silver, D., and Kavukcuoglu, K. (2016). Asynchronous methods for deep reinforcement learning. In the International Conference on Machine Learning (ICML).

    [48]Williams, R. J. (1992). Simple statistical gradient-following algorithms for connectionist reinforcement learning. Machine Learning, 8(3):229–256.

    [49]Silver, D., Lever, G., Heess, N., Degris, T., Wierstra, D., and Riedmiller, M. (2014). Deterministic

    policy gradient algorithms. In the International Conference on Machine Learning (ICML).

    [50]Lillicrap, T. P., Hunt, J. J., Pritzel, A., Heess, N., Erez, T., Tassa, Y., Silver, D., and Wierstra, D.

    (2016). Continuous control with deep reinforcement learning. In the International Conference on

    Learning Representations (ICLR).

     

    [51]S. Hochreiter, J. Schmidhuber. Long short-term memory. Neural computation, 9(8): 1735-1780, 1997.

    [52] David Silver, et al. Mastering the Game of Go with Deep Neural Networks and Tree Search. Nature, 2016.

     

    推荐阅读

    [1]机器学习-波澜壮阔40年【获取码】SIGAI0413.

    [2]学好机器学习需要哪些数学知识?【获取码】SIGAI0417.

    [3] 人脸识别算法演化史【获取码】SIGAI0420.

    [4]基于深度学习的目标检测算法综述 【获取码】SIGAI0424.

    [5]卷积神经网络为什么能够称霸计算机视觉领域?【获取码】SIGAI0426.

    [6] 用一张图理解SVM的脉络【获取码】SIGAI0428.

    [7] 人脸检测算法综述【获取码】SIGAI0503.

    [8] 理解神经网络的激活函数 【获取码】SIGAI2018.5.5.

    [9] 深度卷积神经网络演化历史及结构改进脉络-40页长文全面解读【获取码】SIGAI0508.

    [10] 理解梯度下降法【获取码】SIGAI0511.

    [11] 循环神经网络综述—语音识别与自然语言处理的利器【获取码】SIGAI0515

    [12] 理解凸优化 【获取码】 SIGAI0518

    [13] 【实验】理解SVM的核函数和参数 【获取码】SIGAI0522

    [14]【SIGAI综述】行人检测算法 【获取码】SIGAI0525

    [15] 机器学习在自动驾驶中的应用—以百度阿波罗平台为例(上)【获取码】SIGAI0529

    [16]理解牛顿法【获取码】SIGAI0531

    [17] 【群话题精华】5月集锦—机器学习和深度学习中一些值得思考的问题【获取码】SIGAI 0601

    [18] 大话Adaboost算法 【获取码】SIGAI0602

    [19] FlowNet到FlowNet2.0:基于卷积神经网络的光流预测算法【获取码】SIGAI0604

    [20] 理解主成分分析(PCA)【获取码】SIGAI0606

    [21] 人体骨骼关键点检测综述 【获取码】SIGAI0608

    [22]理解决策树 【获取码】SIGAI0611

    [23] 用一句话总结常用的机器学习算法【获取码】SIGAI0611

    [24] 目标检测算法之YOLO 【获取码】SIGAI0615

    [25] 理解过拟合 【获取码】SIGAI0618

    [26]理解计算:从√2到AlphaGo ——第1季 从√2谈起 【获取码】SIGAI0620

    [27] 场景文本检测——CTPN算法介绍 【获取码】SIGAI0622

    [28] 卷积神经网络的压缩和加速 【获取码】SIGAI0625

    [29] k近邻算法 【获取码】SIGAI0627

    [30]自然场景文本检测识别技术综述 【获取码】SIGAI0627

    [31] 理解计算:从√2到AlphaGo ——第2季 神经计算的历史背景 【获取码】SIGAI0704

    [32] 机器学习算法地图【获取码】SIGAI0706

    [33] 反向传播算法推导-全连接神经网络【获取码】SIGAI0709

    [34] 生成式对抗网络模型综述【获取码】SIGAI0709.

    [35]怎样成为一名优秀的算法工程师【获取码】SIGAI0711.

    [36] 理解计算:从根号2到AlphaGo——第三季 神经网络的数学模型【获取码】SIGAI0716

    [37]【技术短文】人脸检测算法之S3FD 【获取码】SIGAI0716

    [38] 基于深度负相关学习的人群计数方法【获取码】SIGAI0718

    [39] 流形学习概述【获取码】SIGAI0723

    [40] 关于感受野的总结 【获取码】SIGAI0723

    [41] 随机森林概述 【获取码】SIGAI0725

    [42] 基于内容的图像检索技术综述——传统经典方法【获取码】SIGAI0727

    [43] 神经网络的激活函数总结【获取码】SIGAI0730

    [44] 机器学习和深度学习中值得弄清楚的一些问题【获取码】SIGAI0802

    [45] 基于深度神经网络的自动问答系统概述【获取码】SIGAI0803

    [46] 反向传播算法推导——卷积神经网络 【获取码】SIGAI0806

    [47] 机器学习与深度学习核心知识点总结 写在校园招聘即将开始时 【获取 码】SIGAI0808

    [48] 理解Spatial Transformer Networks【获取码】SIGAI0810

    [49]AI时代大点兵-国内外知名AI公司2018年最新盘点【获取码】SIGAI0813

    [50] 理解计算:从√2到AlphaGo ——第2季 神经计算的历史背景 【获取码】SIGAI0815

    [51] 基于内容的图像检索技术综述--CNN方法 【获取码】SIGAI0817

    [52]文本表示简介 【获取码】SIGAI0820

    [53]机器学习中的最优化算法总结【获取码】SIGAI0822

    [54]【AI就业面面观】如何选择适合自己的舞台?【获取码】SIGAI0823

    [55]浓缩就是精华-SIGAI机器学习蓝宝书【获取码】SIGAI0824

    [56]DenseNet详解【获取码】SIGAI0827

    [57]AI时代大点兵国内外知名AI公司2018年最新盘点【完整版】【获取码】SIGAI0829

    [58]理解Adaboost算法【获取码】SIGAI0831

    [59]深入浅出聚类算法 【获取码】SIGAI0903


    原创声明:本文为 SIGAI 原创文章,仅供个人学习使用,未经允许,不能用于商业目的

     

    展开全文
  • 到目前为止,人工智能可以划分为三个阶段:早期的符号学习、九十年代开始的统计机器学习、近年兴起的深度学习。 人工智能早期,机器学习的技术几乎全是符号学习。符号学习的概念很简单,就是用一些特定的符号来表示...

    到目前为止,人工智能可以划分为三个阶段:早期的符号学习、九十年代开始的统计机器学习、近年兴起的深度学习。

    人工智能早期,机器学习的技术几乎全是符号学习。符号学习的概念很简单,就是用一些特定的符号来表示现实的事物或者观念,例如用汉字“苹果”来表示现实中的苹果,这些符号代表的意义是约定俗成的,一个完全空白的人是需要通过学习才能将符号和现实事物建立联系。而且符号不只是字符还可以是图片、图表等。

     

    对于统计机器学习,用一句话概括,统计机器学习是基于对数据的初步认识以及学习目的的分析,选择合适的数学模型,拟定超参数,并输入样本数据,依据一定的策略,运用合适的学习算法对模型进行训练,最后运用训练好的模型对数据进行分析预测。学习流程如下:

    关于统计机器学习更详细的的内容请参考:https://blog.csdn.net/slx_share/article/details/79960635

     

    深度机器学习在理论和技术方面并没有太多的创新,只是因为现在计算能力的大幅提高,使得人们可以使用比以前更加精确的方法进行计算,从而得到更好的结果,目前深度学习主要适合于神经网络

    展开全文
  • 本文的目的是能让即便完全不了解机器学习的人也能了解机器学习,并且上手相关的实践。这篇文档也算是 EasyPR开发的番外篇,从这里开始,必须对机器学习了解才能进一步介绍EasyPR的内核。当然,本文也面对一般读者,...

    作者:计算机的潜意识

    在本篇文章中,我将对机器学习做个概要的介绍。本文的目的是能让即便完全不了解机器学习的人也能了解机器学习,并且上手相关的实践。这篇文档也算是 EasyPR开发的番外篇,从这里开始,必须对机器学习了解才能进一步介绍EasyPR的内核。当然,本文也面对一般读者,不会对阅读有相关的前提要求。

    在进入正题前,我想读者心中可能会有一个疑惑:机器学习有什么重要性,以至于要阅读完这篇非常长的文章呢?

    我并不直接回答这个问题前。相反,我想请大家看两张图,下图是图一:

    一文读懂机器学习,大数据/自然语言处理/算法全有了……

    图1 机器学习界的执牛耳者与互联网界的大鳄的联姻

    这幅图上上的三人是当今机器学习界的执牛耳者。中间的是Geoffrey Hinton, 加拿大多伦多大学的教授,如今被聘为“Google大脑”的负责人。右边的是Yann LeCun, 纽约大学教授,如今是Facebook人工智能实验室的主任。而左边的大家都很熟悉,Andrew Ng,中文名吴恩达,斯坦福大学副教授,如今也是“百度大脑”的负责人与百度首席科学家。这三位都是目前业界炙手可热的大牛,被互联网界大鳄求贤若渴的聘 请,足见他们的重要性。而他们的研究方向,则全部都是机器学习的子类–深度学习。

    下图是图二:

    一文读懂机器学习,大数据/自然语言处理/算法全有了……

    图2 语音助手产品

    这幅图上描述的是什么?Windows Phone上的语音助手Cortana,名字来源于《光环》中士官长的助手。相比其他竞争对手,微软很迟才推出这个服务。Cortana背后的核心技术是 什么,为什么它能够听懂人的语音?事实上,这个技术正是机器学习。机器学习是所有语音助手产品(包括Apple的siri与Google的Now)能够跟 人交互的关键技术。

    通过上面两图,我相信大家可以看出机器学习似乎是一个很重要的,有很多未知特性的技术。学习它似乎是一件有趣的任务。实际上,学习机器学习不仅可以帮助我们了解互联网界最新的趋势,同时也可以知道伴随我们的便利服务的实现技术。

    机器学习是什么,为什么它能有这么大的魔力,这些问题正是本文要回答的。同时,本文叫做“从机器学习谈起”,因此会以漫谈的形式介绍跟机器学习相关的所有内容,包括学科(如数据挖掘、计算机视觉等),算法(神经网络,svm)等等。本文的主要目录如下:

    1.一个故事说明什么是机器学习

    2.机器学习的定义

    3.机器学习的范围

    4.机器学习的方法

    5.机器学习的应用–大数据

    6.机器学习的子类–深度学习

    7.机器学习的父类–人工智能

    8.机器学习的思考–计算机的潜意识

    9.总结

    10.后记

    1.一个故事说明什么是机器学习

    机器学习这个词是让人疑惑的,首先它是英文名称Machine Learning(简称ML)的直译,在计算界Machine一般指计算机。这个名字使用了拟人的手法,说明了这门技术是让机器“学习”的技术。但是计算机是死的,怎么可能像人类一样“学习”呢?

    传统上如果我们想让计算机工作,我们给它一串指令,然后它遵照这个指令一步步执行下去。有因有果,非常明确。但这样的方式在机器学习中行不通。机器 学习根本不接受你输入的指令,相反,它接受你输入的数据! 也就是说,机器学习是一种让计算机利用数据而不是指令来进行各种工作的方法。这听起来非常不可思议,但结果上却是非常可行的。“统计”思想将在你学习“机 器学习”相关理念时无时无刻不伴随,相关而不是因果的概念将是支撑机器学习能够工作的核心概念。你会颠覆对你以前所有程序中建立的因果无处不在的根本理 念。

    下面我通过一个故事来简单地阐明什么是机器学习。这个故事比较适合用在知乎上作为一个概念的阐明。在这里,这个故事没有展开,但相关内容与核心是存 在的。如果你想简单的了解一下什么是机器学习,那么看完这个故事就足够了。如果你想了解机器学习的更多知识以及与它关联紧密的当代技术,那么请你继续往下 看,后面有更多的丰富的内容。

    这个例子来源于我真实的生活经验,我在思考这个问题的时候突然发现它的过程可以被扩充化为一个完整的机器学习的过程,因此我决定使用这个例子作为所有介绍的开始。这个故事称为“等人问题”。

    我相信大家都有跟别人相约,然后等人的经历。现实中不是每个人都那么守时的,于是当你碰到一些爱迟到的人,你的时间不可避免的要浪费。我就碰到过这样的一个例子。

    对我的一个朋友小Y而言,他就不是那么守时,最常见的表现是他经常迟到。当有一次我跟他约好3点钟在某个麦当劳见面时,在我出门的那一刻我突然想到一个问题:我现在出发合适么?我会不会又到了地点后,花上30分钟去等他?我决定采取一个策略解决这个问题。

    要想解决这个问题,有好几种方法。第一种方法是采用知识:我搜寻能够解决这个问题的知识。但很遗憾,没有人会把如何等人这个问题作为知识传授,因此 我不可能找到已有的知识能够解决这个问题。第二种方法是问他人:我去询问他人获得解决这个问题的能力。但是同样的,这个问题没有人能够解答,因为可能没人 碰上跟我一样的情况。第三种方法是准则法:我问自己的内心,我有否设立过什么准则去面对这个问题?例如,无论别人如何,我都会守时到达。但我不是个死板的 人,我没有设立过这样的规则。

    事实上,我相信有种方法比以上三种都合适。我把过往跟小Y相约的经历在脑海中重现一下,看看跟他相约的次数中,迟到占了多大的比例。而我利用这来预 测他这次迟到的可能性。如果这个值超出了我心里的某个界限,那我选择等一会再出发。假设我跟小Y约过5次,他迟到的次数是1次,那么他按时到的比例为 80%,我心中的阈值为70%,我认为这次小Y应该不会迟到,因此我按时出门。如果小Y在5次迟到的次数中占了4次,也就是他按时到达的比例为20%,由 于这个值低于我的阈值,因此我选择推迟出门的时间。这个方法从它的利用层面来看,又称为经验法。在经验法的思考过程中,我事实上利用了以往所有相约的数 据。因此也可以称之为依据数据做的判断。

    依据数据所做的判断跟机器学习的思想根本上是一致的。

    刚才的思考过程我只考虑“频次”这种属性。在真实的机器学习中,这可能都不算是一个应用。一般的机器学习模型至少考虑两个量:一个是因变量,也就是 我们希望预测的结果,在这个例子里就是小Y迟到与否的判断。另一个是自变量,也就是用来预测小Y是否迟到的量。假设我把时间作为自变量,譬如我发现小Y所 有迟到的日子基本都是星期五,而在非星期五情况下他基本不迟到。于是我可以建立一个模型,来模拟小Y迟到与否跟日子是否是星期五的概率。见下图:

    一文读懂机器学习,大数据/自然语言处理/算法全有了……

    图3 决策树模型

    这样的图就是一个最简单的机器学习模型,称之为决策树。

    当我们考虑的自变量只有一个时,情况较为简单。如果把我们的自变量再增加一个。例如小Y迟到的部分情况时是在他开车过来的时候(你可以理解为他开车水平较臭,或者路较堵)。于是我可以关联考虑这些信息。建立一个更复杂的模型,这个模型包含两个自变量与一个因变量。

    再更复杂一点,小Y的迟到跟天气也有一定的原因,例如下雨的时候,这时候我需要考虑三个自变量。

    如果我希望能够预测小Y迟到的具体时间,我可以把他每次迟到的时间跟雨量的大小以及前面考虑的自变量统一建立一个模型。于是我的模型可以预测值,例 如他大概会迟到几分钟。这样可以帮助我更好的规划我出门的时间。在这样的情况下,决策树就无法很好地支撑了,因为决策树只能预测离散值。我们可以用节2所 介绍的线型回归方法建立这个模型。

    如果我把这些建立模型的过程交给电脑。比如把所有的自变量和因变量输入,然后让计算机帮我生成一个模型,同时让计算机根据我当前的情况,给出我是否需要迟出门,需要迟几分钟的建议。那么计算机执行这些辅助决策的过程就是机器学习的过程。

    机器学习方法是计算机利用已有的数据(经验),得出了某种模型(迟到的规律),并利用此模型预测未来(是否迟到)的一种方法。

    通过上面的分析,可以看出机器学习与人类思考的经验过程是类似的,不过它能考虑更多的情况,执行更加复杂的计算。事实上,机器学习的一个主要目的就 是把人类思考归纳经验的过程转化为计算机通过对数据的处理计算得出模型的过程。经过计算机得出的模型能够以近似于人的方式解决很多灵活复杂的问题。

    下面,我会开始对机器学习的正式介绍,包括定义、范围,方法、应用等等,都有所包含。

    2.机器学习的定义

    从广义上来说,机器学习是一种能够赋予机器学习的能力以此让它完成直接编程无法完成的功能的方法。但从实践的意义上来说,机器学习是一种通过利用数据,训练出模型,然后使用模型预测的一种方法。

    让我们具体看一个例子。

    一文读懂机器学习,大数据/自然语言处理/算法全有了……

    图4 房价的例子

    拿国民话题的房子来说。现在我手里有一栋房子需要售卖,我应该给它标上多大的价格?房子的面积是100平方米,价格是100万,120万,还是140万?

    很显然,我希望获得房价与面积的某种规律。那么我该如何获得这个规律?用报纸上的房价平均数据么?还是参考别人面积相似的?无论哪种,似乎都并不是太靠谱。

    我现在希望获得一个合理的,并且能够最大程度的反映面积与房价关系的规律。于是我调查了周边与我房型类似的一些房子,获得一组数据。这组数据中包含了大大小小房子的面积与价格,如果我能从这组数据中找出面积与价格的规律,那么我就可以得出房子的价格。

    对规律的寻找很简单,拟合出一条直线,让它“穿过”所有的点,并且与各个点的距离尽可能的小。

    通过这条直线,我获得了一个能够最佳反映房价与面积规律的规律。这条直线同时也是一个下式所表明的函数:

    房价 = 面积 * a + b

    上述中的a、b都是直线的参数。获得这些参数以后,我就可以计算出房子的价格。

    假设a = 0.75,b = 50,则房价 = 100 * 0.75 + 50 = 125万。这个结果与我前面所列的100万,120万,140万都不一样。由于这条直线综合考虑了大部分的情况,因此从“统计”意义上来说,这是一个最合理的预测。

    在求解过程中透露出了两个信息:

    1.房价模型是根据拟合的函数类型决定的。如果是直线,那么拟合出的就是直线方程。如果是其他类型的线,例如抛物线,那么拟合出的就是抛物线方程。机器学习有众多算法,一些强力算法可以拟合出复杂的非线性模型,用来反映一些不是直线所能表达的情况。

    2.如果我的数据越多,我的模型就越能够考虑到越多的情况,由此对于新情况的预测效果可能就越好。这是机器学习界“数据为王”思想的一个体现。一般来说(不是绝对),数据越多,最后机器学习生成的模型预测的效果越好。

    通过我拟合直线的过程,我们可以对机器学习过程做一个完整的回顾。首先,我们需要在计算机中存储历史的数据。接着,我们将这些 数据通过机器学习算法进行处理,这个过程在机器学习中叫做“训练”,处理的结果可以被我们用来对新的数据进行预测,这个结果一般称之为“模型”。对新数据 的预测过程在机器学习中叫做“预测”。“训练”与“预测”是机器学习的两个过程,“模型”则是过程的中间输出结果,“训练”产生“模型”,“模型”指导 “预测”。

    让我们把机器学习的过程与人类对历史经验归纳的过程做个比对。

    一文读懂机器学习,大数据/自然语言处理/算法全有了……

    图5 机器学习与人类思考的类比

    人类在成长、生活过程中积累了很多的历史与经验。人类定期地对这些经验进行“归纳”,获得了生活的“规律”。当人类遇到未知的问题或者需要对未来进行“推测”的时候,人类使用这些“规律”,对未知问题与未来进行“推测”,从而指导自己的生活和工作。

    机器学习中的“训练”与“预测”过程可以对应到人类的“归纳”和“推测”过程。通过这样的对应,我们可以发现,机器学习的思想并不复杂,仅仅是对人 类在生活中学习成长的一个模拟。由于机器学习不是基于编程形成的结果,因此它的处理过程不是因果的逻辑,而是通过归纳思想得出的相关性结论。

    这也可以联想到人类为什么要学习历史,历史实际上是人类过往经验的总结。有句话说得很好,“历史往往不一样,但历史总是惊人的相似”。通过学习历 史,我们从历史中归纳出人生与国家的规律,从而指导我们的下一步工作,这是具有莫大价值的。当代一些人忽视了历史的本来价值,而是把其作为一种宣扬功绩的 手段,这其实是对历史真实价值的一种误用。

    3.机器学习的范围

    上文虽然说明了机器学习是什么,但是并没有给出机器学习的范围。

    其实,机器学习跟模式识别,统计学习,数据挖掘,计算机视觉,语音识别,自然语言处理等领域有着很深的联系。

    从范围上来说,机器学习跟模式识别,统计学习,数据挖掘是类似的,同时,机器学习与其他领域的处理技术的结合,形成了计算机视觉、语音识别、自然语 言处理等交叉学科。因此,一般说数据挖掘时,可以等同于说机器学习。同时,我们平常所说的机器学习应用,应该是通用的,不仅仅局限在结构化数据,还有图 像,音频等应用。

    在这节对机器学习这些相关领域的介绍有助于我们理清机器学习的应用场景与研究范围,更好的理解后面的算法与应用层次。

    下图是机器学习所牵扯的一些相关范围的学科与研究领域。

    一文读懂机器学习,大数据/自然语言处理/算法全有了……
    图6 机器学习与相关学科

    模式识别

    模式识别=机器学习。两者的主要区别在于前者是从工业界发展起来的概念,后者则主要源自计算机学科。在著名的 《Pattern Recognition And Machine Learning》这本书中,Christopher M. Bishop在开头是这样说的“模式识别源自工业界,而机器学习来自于计算机学科。不过,它们中的活动可以被视为同一个领域的两个方面,同时在过去的10 年间,它们都有了长足的发展”。

    数据挖掘

    数据挖掘=机器学习+数据库。这几年数据挖掘的概念实在是太耳熟能详。几乎等同于炒作。但凡说数据挖掘都会吹嘘 数据挖掘如何如何,例如从数据中挖出金子,以及将废弃的数据转化为价值等等。但是,我尽管可能会挖出金子,但我也可能挖的是“石头”啊。这个说法的意思 是,数据挖掘仅仅是一种思考方式,告诉我们应该尝试从数据中挖掘出知识,但不是每个数据都能挖掘出金子的,所以不要神话它。一个系统绝对不会因为上了一个 数据挖掘模块就变得无所不能(这是IBM最喜欢吹嘘的),恰恰相反,一个拥有数据挖掘思维的人员才是关键,而且他还必须对数据有深刻的认识,这样才可能从 数据中导出模式指引业务的改善。大部分数据挖掘中的算法是机器学习的算法在数据库中的优化。

    统计学习

    统计学习近似等于机器学习。统计学习是个与机器学习高度重叠的学科。因为机器学习中的大多数方法来自统计学,甚 至可以认为,统计学的发展促进机器学习的繁荣昌盛。例如著名的支持向量机算法,就是源自统计学科。但是在某种程度上两者是有分别的,这个分别在于:统计学 习者重点关注的是统计模型的发展与优化,偏数学,而机器学习者更关注的是能够解决问题,偏实践,因此机器学习研究者会重点研究学习算法在计算机上执行的效 率与准确性的提升。

    计算机视觉

    计算机视觉=图像处理+机器学习。图像处理技术用于将图像处理为适合进入机器学习模型中的输入,机器学习则负责 从图像中识别出相关的模式。计算机视觉相关的应用非常的多,例如百度识图、手写字符识别、车牌识别等等应用。这个领域是应用前景非常火热的,同时也是研究 的热门方向。随着机器学习的新领域深度学习的发展,大大促进了计算机图像识别的效果,因此未来计算机视觉界的发展前景不可估量。

    语音识别

    语音识别=语音处理+机器学习。语音识别就是音频处理技术与机器学习的结合。语音识别技术一般不会单独使用,一般会结合自然语言处理的相关技术。目前的相关应用有苹果的语音助手siri等。

    自然语言处理

    自然语言处理=文本处理+机器学习。自然语言处理技术主要是让机器理解人类的语言的一门领域。在自然语言处理技 术中,大量使用了编译原理相关的技术,例如词法分析,语法分析等等,除此之外,在理解这个层面,则使用了语义理解,机器学习等技术。作为唯一由人类自身创 造的符号,自然语言处理一直是机器学习界不断研究的方向。按照百度机器学习专家余凯的说法“听与看,说白了就是阿猫和阿狗都会的,而只有语言才是人类独有 的”。如何利用机器学习技术进行自然语言的的深度理解,一直是工业和学术界关注的焦点。

    可以看出机器学习在众多领域的外延和应用。机器学习技术的发展促使了很多智能领域的进步,改善着我们的生活。

    4.机器学习的方法

    通过上节的介绍我们知晓了机器学习的大致范围,那么机器学习里面究竟有多少经典的算法呢?在这个部分我会简要介绍一下机器学习中的经典代表方法。这部分介绍的重点是这些方法内涵的思想,数学与实践细节不会在这讨论。

    1、回归算法

    在大部分机器学习课程中,回归算法都是介绍的第一个算法。原因有两个:一.回归算法比较简单,介绍它可以让人平滑地从统计学迁移到机器学习中。二. 回归算法是后面若干强大算法的基石,如果不理解回归算法,无法学习那些强大的算法。回归算法有两个重要的子类:即线性回归和逻辑回归。

    线性回归就是我们前面说过的房价求解问题。如何拟合出一条直线最佳匹配我所有的数据?一般使用“最小二乘法”来求解。“最小二乘法”的思想是这样 的,假设我们拟合出的直线代表数据的真实值,而观测到的数据代表拥有误差的值。为了尽可能减小误差的影响,需要求解一条直线使所有误差的平方和最小。最小 二乘法将最优问题转化为求函数极值问题。函数极值在数学上我们一般会采用求导数为0的方法。但这种做法并不适合计算机,可能求解不出来,也可能计算量太 大。

    计算机科学界专门有一个学科叫“数值计算”,专门用来提升计算机进行各类计算时的准确性和效率问题。例如,著名的“梯度下降”以及“牛顿法”就是数 值计算中的经典算法,也非常适合来处理求解函数极值的问题。梯度下降法是解决回归模型中最简单且有效的方法之一。从严格意义上来说,由于后文中的神经网络 和推荐算法中都有线性回归的因子,因此梯度下降法在后面的算法实现中也有应用。

    逻辑回归是一种与线性回归非常类似的算法,但是,从本质上讲,线型回归处理的问题类型与逻辑回归不一致。线性回归处理的是数值问题,也就是最后预测 出的结果是数字,例如房价。而逻辑回归属于分类算法,也就是说,逻辑回归预测结果是离散的分类,例如判断这封邮件是否是垃圾邮件,以及用户是否会点击此广 告等等。

    实现方面的话,逻辑回归只是对对线性回归的计算结果加上了一个Sigmoid函数,将数值结果转化为了0到1之间的概率(Sigmoid函数的图像 一般来说并不直观,你只需要理解对数值越大,函数越逼近1,数值越小,函数越逼近0),接着我们根据这个概率可以做预测,例如概率大于0.5,则这封邮件 就是垃圾邮件,或者肿瘤是否是恶性的等等。从直观上来说,逻辑回归是画出了一条分类线,见下图。

    一文读懂机器学习,大数据/自然语言处理/算法全有了……
    图7 逻辑回归的直观解释

    假设我们有一组肿瘤患者的数据,这些患者的肿瘤中有些是良性的(图中的蓝色点),有些是恶性的(图中的红色点)。这里肿瘤的红蓝色可以被称作数据的 “标签”。同时每个数据包括两个“特征”:患者的年龄与肿瘤的大小。我们将这两个特征与标签映射到这个二维空间上,形成了我上图的数据。

    当我有一个绿色的点时,我该判断这个肿瘤是恶性的还是良性的呢?根据红蓝点我们训练出了一个逻辑回归模型,也就是图中的分类线。这时,根据绿点出现在分类线的左侧,因此我们判断它的标签应该是红色,也就是说属于恶性肿瘤。

    逻辑回归算法划出的分类线基本都是线性的(也有划出非线性分类线的逻辑回归,不过那样的模型在处理数据量较大的时候效率会很低),这意味着当两类之 间的界线不是线性时,逻辑回归的表达能力就不足。下面的两个算法是机器学习界最强大且重要的算法,都可以拟合出非线性的分类线。

    2、神经网络

    神经网络(也称之为人工神经网络,ANN)算法是80年代机器学习界非常流行的算法,不过在90年代中途衰落。现在,携着“深度学习”之势,神经网络重装归来,重新成为最强大的机器学习算法之一。

    神经网络的诞生起源于对大脑工作机理的研究。早期生物界学者们使用神经网络来模拟大脑。机器学习的学者们使用神经网络进行机器学习的实验,发现在视 觉与语音的识别上效果都相当好。在BP算法(加速神经网络训练过程的数值算法)诞生以后,神经网络的发展进入了一个热潮。BP算法的发明人之一是前面介绍 的机器学习大牛Geoffrey Hinton(图1中的中间者)。

    具体说来,神经网络的学习机理是什么?简单来说,就是分解与整合。在著名的Hubel-Wiesel试验中,学者们研究猫的视觉分析机理是这样的。

    一文读懂机器学习,大数据/自然语言处理/算法全有了……

    图8 Hubel-Wiesel试验与大脑视觉机理

    比方说,一个正方形,分解为四个折线进入视觉处理的下一层中。四个神经元分别处理一个折线。每个折线再继续被分解为两条直线,每条直线再被分解为黑 白两个面。于是,一个复杂的图像变成了大量的细节进入神经元,神经元处理以后再进行整合,最后得出了看到的是正方形的结论。这就是大脑视觉识别的机理,也 是神经网络工作的机理。

    让我们看一个简单的神经网络的逻辑架构。在这个网络中,分成输入层,隐藏层,和输出层。输入层负责接收信号,隐藏层负责对数据的分解与处理,最后的 结果被整合到输出层。每层中的一个圆代表一个处理单元,可以认为是模拟了一个神经元,若干个处理单元组成了一个层,若干个层再组成了一个网络,也就是”神 经网络”。

    一文读懂机器学习,大数据/自然语言处理/算法全有了……

    图9 神经网络的逻辑架构

    在神经网络中,每个处理单元事实上就是一个逻辑回归模型,逻辑回归模型接收上层的输入,把模型的预测结果作为输出传输到下一个层次。通过这样的过程,神经网络可以完成非常复杂的非线性分类。

    下图会演示神经网络在图像识别领域的一个著名应用,这个程序叫做LeNet,是一个基于多个隐层构建的神经网络。通过LeNet可以识别多种手写数字,并且达到很高的识别精度与拥有较好的鲁棒性。

    一文读懂机器学习,大数据/自然语言处理/算法全有了……

    图10 LeNet的效果展示

    右下方的方形中显示的是输入计算机的图像,方形上方的红色字样“answer”后面显示的是计算机的输出。左边的三条竖直的图像列显示的是神经网络 中三个隐藏层的输出,可以看出,随着层次的不断深入,越深的层次处理的细节越低,例如层3基本处理的都已经是线的细节了。LeNet的发明人就是前文介绍 过的机器学习的大牛Yann LeCun(图1右者)。

    进入90年代,神经网络的发展进入了一个瓶颈期。其主要原因是尽管有BP算法的加速,神经网络的训练过程仍然很困难。因此90年代后期支持向量机(SVM)算法取代了神经网络的地位。

    3、SVM(支持向量机)

    支持向量机算法是诞生于统计学习界,同时在机器学习界大放光彩的经典算法。

    支持向量机算法从某种意义上来说是逻辑回归算法的强化:通过给予逻辑回归算法更严格的优化条件,支持向量机算法可以获得比逻辑回归更好的分类界线。但是如果没有某类函数技术,则支持向量机算法最多算是一种更好的线性分类技术。

    但是,通过跟高斯“核”的结合,支持向量机可以表达出非常复杂的分类界线,从而达成很好的的分类效果。“核”事实上就是一种特殊的函数,最典型的特征就是可以将低维的空间映射到高维的空间。

    例如下图所示:

    一文读懂机器学习,大数据/自然语言处理/算法全有了……

    图11 支持向量机图例

    我们如何在二维平面划分出一个圆形的分类界线?在二维平面可能会很困难,但是通过“核”可以将二维空间映射到三维空间,然后使用一个线性平面就可以 达成类似效果。也就是说,二维平面划分出的非线性分类界线可以等价于三维平面的线性分类界线。于是,我们可以通过在三维空间中进行简单的线性划分就可以达 到在二维平面中的非线性划分效果。

    一文读懂机器学习,大数据/自然语言处理/算法全有了……
    图12 三维空间的切割

    支持向量机是一种数学成分很浓的机器学习算法(相对的,神经网络则有生物科学成分)。在算法的核心步骤中,有一步证明,即将数据从低维映射到高维不 会带来最后计算复杂性的提升。于是,通过支持向量机算法,既可以保持计算效率,又可以获得非常好的分类效果。因此支持向量机在90年代后期一直占据着机器 学习中最核心的地位,基本取代了神经网络算法。直到现在神经网络借着深度学习重新兴起,两者之间才又发生了微妙的平衡转变。

    4、聚类算法

    前面的算法中的一个显著特征就是我的训练数据中包含了标签,训练出的模型可以对其他未知数据预测标签。在下面的算法中,训练数据都是不含标签的,而 算法的目的则是通过训练,推测出这些数据的标签。这类算法有一个统称,即无监督算法(前面有标签的数据的算法则是有监督算法)。无监督算法中最典型的代表 就是聚类算法。

    让我们还是拿一个二维的数据来说,某一个数据包含两个特征。我希望通过聚类算法,给他们中不同的种类打上标签,我该怎么做呢?简单来说,聚类算法就是计算种群中的距离,根据距离的远近将数据划分为多个族群。

    聚类算法中最典型的代表就是K-Means算法。

    5、降维算法

    降维算法也是一种无监督学习算法,其主要特征是将数据从高维降低到低维层次。在这里,维度其实表示的是数据的特征量的大小,例如,房价包含房子的 长、宽、面积与房间数量四个特征,也就是维度为4维的数据。可以看出来,长与宽事实上与面积表示的信息重叠了,例如面积=长 × 宽。通过降维算法我们就可以去除冗余信息,将特征减少为面积与房间数量两个特征,即从4维的数据压缩到2维。于是我们将数据从高维降低到低维,不仅利于表 示,同时在计算上也能带来加速。

    刚才说的降维过程中减少的维度属于肉眼可视的层次,同时压缩也不会带来信息的损失(因为信息冗余了)。如果肉眼不可视,或者没有冗余的特征,降维算 法也能工作,不过这样会带来一些信息的损失。但是,降维算法可以从数学上证明,从高维压缩到的低维中最大程度地保留了数据的信息。因此,使用降维算法仍然 有很多的好处。

    降维算法的主要作用是压缩数据与提升机器学习其他算法的效率。通过降维算法,可以将具有几千个特征的数据压缩至若干个特征。另外,降维算法的另一个 好处是数据的可视化,例如将5维的数据压缩至2维,然后可以用二维平面来可视。降维算法的主要代表是PCA算法(即主成分分析算法)。

    6、推荐算法

    推荐算法是目前业界非常火的一种算法,在电商界,如亚马逊,天猫,京东等得到了广泛的运用。推荐算法的主要特征就是可以自动向用户推荐他们最感兴趣的东西,从而增加购买率,提升效益。推荐算法有两个主要的类别:

    一类是基于物品内容的推荐,是将与用户购买的内容近似的物品推荐给用户,这样的前提是每个物品都得有若干个标签,因此才可以找出与用户购买物品类似的物品,这样推荐的好处是关联程度较大,但是由于每个物品都需要贴标签,因此工作量较大。

    另一类是基于用户相似度的推荐,则是将与目标用户兴趣相同的其他用户购买的东西推荐给目标用户,例如小A历史上买了物品B和C,经过算法分析,发现另一个与小A近似的用户小D购买了物品E,于是将物品E推荐给小A。

    两类推荐都有各自的优缺点,在一般的电商应用中,一般是两类混合使用。推荐算法中最有名的算法就是协同过滤算法。

    7、其他

    除了以上算法之外,机器学习界还有其他的如高斯判别,朴素贝叶斯,决策树等等算法。但是上面列的六个算法是使用最多,影响最广,种类最全的典型。机器学习界的一个特色就是算法众多,发展百花齐放。

    下面做一个总结,按照训练的数据有无标签,可以将上面算法分为监督学习算法和无监督学习算法,但推荐算法较为特殊,既不属于监督学习,也不属于非监督学习,是单独的一类。

    监督学习算法:线性回归,逻辑回归,神经网络,SVM

    无监督学习算法:聚类算法,降维算法

    特殊算法:推荐算法

    除了这些算法以外,有一些算法的名字在机器学习领域中也经常出现。但他们本身并不算是一个机器学习算法,而是为了解决某个子问题而诞生的。你可以理 解他们为以上算法的子算法,用于大幅度提高训练过程。其中的代表有:梯度下降法,主要运用在线型回归,逻辑回归,神经网络,推荐算法中;牛顿法,主要运用 在线型回归中;BP算法,主要运用在神经网络中;SMO算法,主要运用在SVM中。

    5.机器学习的应用–大数据

    说完机器学习的方法,下面要谈一谈机器学习的应用了。无疑,在2010年以前,机器学习的应用在某些特定领域发挥了巨大的作用,如车牌识别,网络攻 击防范,手写字符识别等等。但是,从2010年以后,随着大数据概念的兴起,机器学习大量的应用都与大数据高度耦合,几乎可以认为大数据是机器学习应用的 最佳场景。

    譬如,但凡你能找到的介绍大数据魔力的文章,都会说大数据如何准确准确预测到了某些事。例如经典的Google利用大数据预测了H1N1在美国某小镇的爆发。

    一文读懂机器学习,大数据/自然语言处理/算法全有了……

    图13 Google成功预测H1N1

    百度预测2014年世界杯,从淘汰赛到决赛全部预测正确。

    一文读懂机器学习,大数据/自然语言处理/算法全有了……
    图14 百度世界杯成功预测了所有比赛结果

    这些实在太神奇了,那么究竟是什么原因导致大数据具有这些魔力的呢?简单来说,就是机器学习技术。正是基于机器学习技术的应用,数据才能发挥其魔力。

    大数据的核心是利用数据的价值,机器学习是利用数据价值的关键技术,对于大数据而言,机器学习是不可或缺的。相反,对于机器学习而言,越多的数据会 越 可能提升模型的精确性,同时,复杂的机器学习算法的计算时间也迫切需要分布式计算与内存计算这样的关键技术。因此,机器学习的兴盛也离不开大数据的帮助。 大数据与机器学习两者是互相促进,相依相存的关系。

    机器学习与大数据紧密联系。但是,必须清醒的认识到,大数据并不等同于机器学习,同理,机器学习也不等同于大数据。大数据中包含有分布式计算,内存数据库,多维分析等等多种技术。单从分析方法来看,大数据也包含以下四种分析方法:

    1.大数据,小分析:即数据仓库领域的OLAP分析思路,也就是多维分析思想。
    2.大数据,大分析:这个代表的就是数据挖掘与机器学习分析法。
    3.流式分析:这个主要指的是事件驱动架构。
    4.查询分析:经典代表是NoSQL数据库。

    也就是说,机器学习仅仅是大数据分析中的一种而已。尽管机器学习的一些结果具有很大的魔力,在某种场合下是大数据价值最好的说明。但这并不代表机器学习是大数据下的唯一的分析方法。

    机器学习与大数据的结合产生了巨大的价值。基于机器学习技术的发展,数据能够“预测”。对人类而言,积累的经验越丰富,阅历也广泛,对未来的判断越 准确。例如常说的“经验丰富”的人比“初出茅庐”的小伙子更有工作上的优势,就在于经验丰富的人获得的规律比他人更准确。而在机器学习领域,根据著名的一 个实验,有效的证实了机器学习界一个理论:即机器学习模型的数据越多,机器学习的预测的效率就越好。见下图:

    一文读懂机器学习,大数据/自然语言处理/算法全有了……

    一文读懂机器学习,大数据/自然语言处理/算法全有了……

    图15 机器学习准确率与数据的关系

    通过这张图可以看出,各种不同算法在输入的数据量达到一定级数后,都有相近的高准确度。于是诞生了机器学习界的名言:成功的机器学习应用不是拥有最好的算法,而是拥有最多的数据!

    在大数据的时代,有好多优势促使机器学习能够应用更广泛。例如随着物联网和移动设备的发展,我们拥有的数据越来越多,种类也包括图片、文本、视频等 非结构化数据,这使得机器学习模型可以获得越来越多的数据。同时大数据技术中的分布式计算Map-Reduce使得机器学习的速度越来越快,可以更方便的 使用。种种优势使得在大数据时代,机器学习的优势可以得到最佳的发挥。

    6.机器学习的子类–深度学习

    近来,机器学习的发展产生了一个新的方向,即“深度学习”。

    虽然深度学习这四字听起来颇为高大上,但其理念却非常简单,就是传统的神经网络发展到了多隐藏层的情况。

    在上文介绍过,自从90年代以后,神经网络已经消寂了一段时间。但是BP算法的发明人Geoffrey Hinton一直没有放弃对神经网络的研究。由于神经网络在隐藏层扩大到两个以上,其训练速度就会非常慢,因此实用性一直低于支持向量机。2006 年,Geoffrey Hinton在科学杂志《Science》上发表了一篇文章,论证了两个观点:

    1.多隐层的神经网络具有优异的特征学习能力,学习得到的特征对数据有更本质的刻画,从而有利于可视化或分类;

    2.深度神经网络在训练上的难度,可以通过“逐层初始化” 来有效克服。

    一文读懂机器学习,大数据/自然语言处理/算法全有了……

    图16 Geoffrey Hinton与他的学生在Science上发表文章

    通过这样的发现,不仅解决了神经网络在计算上的难度,同时也说明了深层神经网络在学习上的优异性。从此,神经网络重新成为了机器学习界中的主流强大学习技术。同时,具有多个隐藏层的神经网络被称为深度神经网络,基于深度神经网络的学习研究称之为深度学习。

    由于深度学习的重要性质,在各方面都取得极大的关注,按照时间轴排序,有以下四个标志性事件值得一说:

    • 2012年6月,《纽约时报》披露了Google Brain项目,这个项目是由Andrew Ng和Map-Reduce发明人Jeff Dean共同主导,用16000个CPU Core的并行计算平台训练一种称为“深层神经网络”的机器学习模型,在语音识别和图像识别等领域获得了巨大的成功。Andrew Ng就是文章开始所介绍的机器学习的大牛(图1中右者)。
    • 2012年11月,微软在中国天津的一次活动上公开演示了一个全自动的同声传译系统,讲演者用英文演讲,后台的计算机一气呵成自动完成语音识别、英中机器翻译,以及中文语音合成,效果非常流畅,其中支撑的关键技术是深度学习;
    • 2013年1月,在百度的年会上,创始人兼CEO李彦宏高调宣布要成立百度研究院,其中第一个重点方向就是深度学习,并为此而成立深度学习研究院(IDL)。
    • 2013年4月,《麻省理工学院技术评论》杂志将深度学习列为2013年十大突破性技术(Breakthrough Technology)之首。

    一文读懂机器学习,大数据/自然语言处理/算法全有了……

    图17 深度学习的发展热潮

    文章开头所列的三位机器学习的大牛,不仅都是机器学习界的专家,更是深度学习研究领域的先驱。因此,使他们担任各个大型互联网公司技术掌舵者的原因不仅在于他们的技术实力,更在于他们研究的领域是前景无限的深度学习技术。

    目前业界许多的图像识别技术与语音识别技术的进步都源于深度学习的发展,除了本文开头所提的Cortana等语音助手,还包括一些图像识别应用,其中典型的代表就是下图的百度识图功能。

    一文读懂机器学习,大数据/自然语言处理/算法全有了……

    图18 百度识图

    深度学习属于机器学习的子类。基于深度学习的发展极大的促进了机器学习的地位提高,更进一步地,推动了业界对机器学习父类人工智能梦想的再次重视。

    7.机器学习的父类–人工智能

    人工智能是机器学习的父类。深度学习则是机器学习的子类。如果把三者的关系用图来表明的话,则是下图:

    一文读懂机器学习,大数据/自然语言处理/算法全有了……
    图19 深度学习、机器学习、人工智能三者关系

    毫无疑问,人工智能(AI)是人类所能想象的科技界最突破性的发明了,某种意义上来说,人工智能就像游戏最终幻想的名字一样,是人类对于科技界的最 终梦想。从50年代提出人工智能的理念以后,科技界,产业界不断在探索,研究。这段时间各种小说、电影都在以各种方式展现对于人工智能的想象。人类可以发 明类似于人类的机器,这是多么伟大的一种理念!但事实上,自从50年代以后,人工智能的发展就磕磕碰碰,未有见到足够震撼的科学技术的进步。

    总结起来,人工智能的发展经历了如下若干阶段,从早期的逻辑推理,到中期的专家系统,这些科研进步确实使我们离机器的智能有点接近了,但还有一大段 距离。直到机器学习诞生以后,人工智能界感觉终于找对了方向。基于机器学习的图像识别和语音识别在某些垂直领域达到了跟人相媲美的程度。机器学习使人类第 一次如此接近人工智能的梦想。

    事实上,如果我们把人工智能相关的技术以及其他业界的技术做一个类比,就可以发现机器学习在人工智能中的重要地位不是没有理由的。

    人类区别于其他物体,植物,动物的最主要区别,作者认为是“智慧”。而智慧的最佳体现是什么?

    是计算能力么,应该不是,心算速度快的人我们一般称之为天才。
    是反应能力么,也不是,反应快的人我们称之为灵敏。
    是记忆能力么,也不是,记忆好的人我们一般称之为过目不忘。
    是推理能力么,这样的人我也许会称他智力很高,类似“福尔摩斯”,但不会称他拥有智慧。
    是知识能力么,这样的人我们称之为博闻广,也不会称他拥有智慧。

    想想看我们一般形容谁有大智慧?圣人,诸如庄子,老子等。智慧是对生活的感悟,是对人生的积淀与思考,这与我们机器学习的思想何其相似?通过经验获取规律,指导人生与未来。没有经验就没有智慧。

    一文读懂机器学习,大数据/自然语言处理/算法全有了……

    图20 机器学习与智慧

    那么,从计算机来看,以上的种种能力都有种种技术去应对。

    例如计算能力我们有分布式计算,反应能力我们有事件驱动架构,检索能力我们有搜索引擎,知识存储能力我们有数据仓库,逻辑推理能力我们有专家系统,但是,唯有对应智慧中最显著特征的归纳与感悟能力,只有机器学习与之对应。这也是机器学习能力最能表征智慧的根本原因。

    让我们再看一下机器人的制造,在我们具有了强大的计算,海量的存储,快速的检索,迅速的反应,优秀的逻辑推理后我们如果再配合上一个强大的智慧大脑,一个真正意义上的人工智能也许就会诞生,这也是为什么说在机器学习快速发展的现在,人工智能可能不再是梦想的原因。

    人工智能的发展可能不仅取决于机器学习,更取决于前面所介绍的深度学习,深度学习技术由于深度模拟了人类大脑的构成,在视觉识别与语音识别上显著性 的突破了原有机器学习技术的界限,因此极有可能是真正实现人工智能梦想的关键技术。无论是谷歌大脑还是百度大脑,都是通过海量层次的深度学习网络所构成 的。也许借助于深度学习技术,在不远的将来,一个具有人类智能的计算机真的有可能实现。

    最后再说一下题外话,由于人工智能借助于深度学习技术的快速发展,已经在某些地方引起了传统技术界达人的担忧。真实世界的“钢铁侠”,特斯拉CEO 马斯克就是其中之一。最近马斯克在参加MIT讨论会时,就表达了对于人工智能的担忧。“人工智能的研究就类似于召唤恶魔,我们必须在某些地方加强注意。”

    一文读懂机器学习,大数据/自然语言处理/算法全有了……

    图21 马斯克与人工智能

    尽管马斯克的担心有些危言耸听,但是马斯克的推理不无道理。“如果人工智能想要消除垃圾邮件的话,可能它最后的决定就是消灭人类。”马斯克认为预防 此类现象的方法是引入政府的监管。在这里作者的观点与马斯克类似,在人工智能诞生之初就给其加上若干规则限制可能有效,也就是不应该使用单纯的机器学习, 而应该是机器学习与规则引擎等系统的综合能够较好的解决这类问题。因为如果学习没有限制,极有可能进入某个误区,必须要加上某些引导。正如人类社会中,法 律就是一个最好的规则,杀人者死就是对于人类在探索提高生产力时不可逾越的界限。

    在这里,必须提一下这里的规则与机器学习引出的规律的不同,规律不是一个严格意义的准则,其代表的更多是概率上的指导,而规则则是神圣不可侵犯,不可修改的。规律可以调整,但规则是不能改变的。有效的结合规律与规则的特点,可以引导出一个合理的,可控的学习型人工智能。

    8.机器学习的思考–计算机的潜意识

    最后,作者想谈一谈关于机器学习的一些思考。主要是作者在日常生活总结出来的一些感悟。

    回想一下我在节1里所说的故事,我把小Y过往跟我相约的经历做了一个罗列。但是这种罗列以往所有经历的方法只有少数人会这么做,大部分的人采用的是 更直接的方法,即利用直觉。那么,直觉是什么?其实直觉也是你在潜意识状态下思考经验后得出的规律。就像你通过机器学习算法,得到了一个模型,那么你下次 只要直接使用就行了。那么这个规律你是什么时候思考的?可能是在你无意识的情况下,例如睡觉,走路等情况。这种时候,大脑其实也在默默地做一些你察觉不到 的工作。

    这种直觉与潜意识,我把它与另一种人类思考经验的方式做了区分。如果一个人勤于思考,例如他会每天做一个小结,譬如“吾日三省吾身”,或者他经常与 同伴讨论最近工作的得失,那么他这种训练模型的方式是直接的,明意识的思考与归纳。这样的效果很好,记忆性强,并且更能得出有效反应现实的规律。但是大部 分的人可能很少做这样的总结,那么他们得出生活中规律的方法使用的就是潜意识法。

    举一个作者本人关于潜意识的例子。作者本人以前没开过车,最近一段时间买了车后,天天开车上班。我每天都走固定的路线。有趣的是,在一开始的几天, 我非常紧张的注意着前方的路况,而现在我已经在无意识中就把车开到了目标。这个过程中我的眼睛是注视着前方的,我的大脑是没有思考,但是我手握着的方向盘 会自动的调整方向。也就是说。随着我开车次数的增多,我已经把我开车的动作交给了潜意识。这是非常有趣的一件事。在这段过程中,我的大脑将前方路况的图像 记录了下来,同时大脑也记忆了我转动方向盘的动作。经过大脑自己的潜意识思考,最后生成的潜意识可以直接根据前方的图像调整我手的动作。假设我们将前方的 录像交给计算机,然后让计算机记录与图像对应的驾驶员的动作。经过一段时间的学习,计算机生成的机器学习模型就可以进行自动驾驶了。这很神奇,不是么。其 实包括Google、特斯拉在内的自动驾驶汽车技术的原理就是这样。

    除了自动驾驶汽车以外,潜意识的思想还可以扩展到人的交际。譬如说服别人,一个最佳的方法就是给他展示一些信息,然后让他自己去归纳得出我们想要的 结论。这就好比在阐述一个观点时,用一个事实,或者一个故事,比大段的道理要好很多。古往今来,但凡优秀的说客,无不采用的是这种方法。春秋战国时期,各 国合纵连横,经常有各种说客去跟一国之君交流,直接告诉君主该做什么,无异于自寻死路,但是跟君主讲故事,通过这些故事让君主恍然大悟,就是一种正确的过 程。这里面有许多杰出的代表,如墨子,苏秦等等。

    基本上所有的交流过程,使用故事说明的效果都要远胜于阐述道义之类的效果好很多。为什么用故事的方法比道理或者其他的方法好很多,这是因为在人成长 的过程,经过自己的思考,已经形成了很多规律与潜意识。如果你告诉的规律与对方的不相符,很有可能出于保护,他们会本能的拒绝你的新规律,但是如果你跟他 讲一个故事,传递一些信息,输送一些数据给他,他会思考并自我改变。他的思考过程实际上就是机器学习的过程,他把新的数据纳入到他的旧有的记忆与数据中, 经过重新训练。如果你给出的数据的信息量非常大,大到调整了他的模型,那么他就会按照你希望的规律去做事。有的时候,他会本能的拒绝执行这个思考过程,但 是数据一旦输入,无论他希望与否,他的大脑都会在潜意识状态下思考,并且可能改变他的看法。

    如果计算机也拥有潜意识(正如本博客的名称一样),那么会怎么样?譬如让计算机在工作的过程中,逐渐产生了自身的潜意识,于是甚至可以在你不需要告诉它做什么时它就会完成那件事。这是个非常有意思的设想,这里留给各位读者去发散思考吧。

    9.总结

    本文首先介绍了互联网界与机器学习大牛结合的趋势,以及使用机器学习的相关应用,接着以一个“等人故事”展开对机器学习的介绍。介绍中首先是机器学 习的概念与定义,然后是机器学习的相关学科,机器学习中包含的各类学习算法,接着介绍机器学习与大数据的关系,机器学习的新子类深度学习,最后探讨了一下 机器学习与人工智能发展的联系以及机器学习与潜意识的关联。经过本文的介绍,相信大家对机器学习技术有一定的了解,例如机器学习是什么,它的内核思想是什 么(即统计和归纳),通过了解机器学习与人类思考的近似联系可以知晓机器学习为什么具有智慧能力的原因等等。其次,本文漫谈了机器学习与外延学科的关系, 机器学习与大数据相互促进相得益彰的联系,机器学习界最新的深度学习的迅猛发展,以及对于人类基于机器学习开发智能机器人的一种展望与思考,最后作者简单 谈了一点关于让计算机拥有潜意识的设想。

    机器学习是目前业界最为Amazing与火热的一项技术,从网上的每一次淘宝的购买东西,到自动驾驶汽车技术,以及网络攻击抵御系统等等,都有机器 学习的因子在内,同时机器学习也是最有可能使人类完成AI dream的一项技术,各种人工智能目前的应用,如微软小冰聊天机器人,到计算机视觉技术的进步,都有机器学习努力的成分。作为一名当代的计算机领域的开 发或管理人员,以及身处这个世界,使用者IT技术带来便利的人们,最好都应该了解一些机器学习的相关知识与概念,因为这可以帮你更好的理解为你带来莫大便 利技术的背后原理,以及让你更好的理解当代科技的进程。

    10.后记

    这篇文档花了作者两个月的时间,终于在2014年的最后一天的前一天基本完成。通过这篇文章,作者希望对机器学习在国内的普及做一点贡献,同时也是 作者本人自己对于所学机器学习知识的一个融汇贯通,整体归纳的提高过程。作者把这么多的知识经过自己的大脑思考,训练出了一个模型,形成了这篇文档,可以 说这也是一种机器学习的过程吧(笑)。

    作者所在的行业会接触到大量的数据,因此对于数据的处理和分析是平常非常重要的工作,机器学习课程的思想和理念对于作者日常的工作指引作用极大,几 乎导致了作者对于数据价值的重新认识。想想半年前,作者还对机器学习似懂非懂,如今也可以算是一个机器学习的Expert了(笑)。但作者始终认为,机器 学习的真正应用不是通过概念或者思想的方式,而是通过实践。只有当把机器学习技术真正应用时,才可算是对机器学习的理解进入了一个层次。正所谓再“阳春白 雪”的技术,也必须落到“下里巴人”的场景下运用。目前有一种风气,国内外研究机器学习的某些学者,有一种高贵的逼格,认为自己的研究是普通人无法理解 的,但是这样的理念是根本错误的,没有在真正实际的地方发挥作用,凭什么证明你的研究有所价值呢?作者认为必须将高大上的技术用在改变普通人的生活上,才 能发挥其根本的价值。一些简单的场景,恰恰是实践机器学习技术的最好地方。

    展开全文
  • 前前后后接触机器学习也有一年时间,但一直没有系统整理总结过。从本篇博客开始,将记录下我的学习内容与参考资料,系列按照李宏毅的机器学习课程,吴恩达的机器学习课程和周志华的西瓜书为主线。 发展历程 \...
  • 机器学习实践应用

    2019-07-05 10:04:12
    机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度等多门学科,专门研究计算机怎样模拟或实现人类的学习行为。机器学习是人工智能的核心,是使计算机具有 智能的根本途径。 本书通过对...
  • 在直观的层面,如果说计算机科学是研究关于算法的科学,那么机器学习就是研究关于“学习算法”的科学,或者说,不同于一般的显式编程,机器学习就是研究如何使得计算机在无法被显式编程的情况下进行学习的领域,需要...
  • 机器学习是指通过计算机学习数据中的内在规律性信息,获得新的经验和知识,以提高计算机的智能性,使计算机能够像人那样去决策。随着各行业对数据的需求量增多,对处理和分析数据的效率要求变高,一系列机器学习算法...
  • 编者按:本书节选自图书《Python与机器学习实战》,Python本身带有许多机器学习的第三方库,但本书在绝大多数情况下只会用到Numpy这个基础的科学计算库来进行算法代码的实现。这样做的目的是希望读者能够从实现的...
  • 机器学习平台建设

    2018-09-13 17:53:43
    本文从机器学习平台的架构开始,再到具体的功能,然后从需求的角度带给读者思考,找到合适的机器学习平台建设之路。最后,推荐了微软开源开放的机器学习平台OpenPAI,是可私有部署的机器学习训练平台。 本文不少...
  • 机器学习是一门将人类知识和推理过程提炼为一种适合机器和工程自动化系统自动处理的过程的学科。随着机器学习基于应用变得越来越普遍,以及相关的软件包也变得越来越容易使用,底层的技术细节被抽象出来并对使用者不...
  • 机器学习历史简介

    2017-07-10 20:33:32
    回顾历史,能够让我们更加清晰地看清ML的去向。更重要的是,AI的历史无数次证明,没有一个流派会永远辉煌,也没有一个流派会一直沉寂。 本文将以定义的方式,简介而较为准确地介绍 ML 中各个算法流派的历史。由于...
  • 写这篇文章的目的,就是希望它可以让有志于从事数据科学和机器学习的诸位在学习算法的路上少走些路。我会在文章中举例一些机器学习的问题,你们也可以在思考解决这些问题的过程中得到启发。我也会写下对于各种机器...
  • 机器学习简介

    2018-10-18 13:50:56
    在本篇文章中,我将对机器学习做个概要的介绍。本文的目的是能让即便完全不了解机器学习的人也能了解机器学习,并且上手相关的实践。这篇文档也算是EasyPR开发的番外篇,从这里开始,必须对机器学习了解才能进一步...
  • 1. 机器学习的发展历史上有哪些主要事件? 机器学习发展分为知识推理期、知识工程期、浅层知识期和深度学习几个阶段,可从几个阶段选择主要历史事件作答。 2. 机器学习有哪些主要的流派?它们分别有什么贡献? ...
  • 机器学习的定义

    2018-05-10 22:02:04
    机器学习的定义: 从广义上来说,机器学习是一种能够赋予机器学习的能力以此让它完成直接编程无法完成的功能的方法。但从实践的意义上来说,机器学习是一种通过利用数据,训练出模型,然后使用模型预测的一种方法。...
  • 这两年在不管在国内还是在国外,人工智能、机器学习仿佛一夜之前传遍大街小巷。机器学习作为人工智能的一种类型,可以让软件根据大量的数据来对未来的情况进行阐述或预判。如今,领先的科技巨头无不在机器学习下予以...
  • 本文的目的是能让即便完全不了解机器学习的人也能了解机器学习,并且上手相关的实践。当然,本文也面对一般读者,不会对阅读有相关的前提要求。   在进入正题前,我想读者心中可能会有一个疑惑:机器
  • 机器学习文献综述

    2018-07-14 22:56:20
    检索式:机器学习检索结果及分析:机器学习有下面几种定义: “机器学习是一门人工智能的科学,该领域的主要研究对象是人工智能,特别是如何在经验学习中改善具体算法的性能”。 “机器学习是对能通过经验自动改进的...
  • 一、机器学习历史来源  机器学习在近30多年已发展为一门多领域交叉学科,机器学习是人工智能的一个分支。人工智能“知识”--》“学习”重点,机器学习是实现人工智能的一个途径,机器学习理论主要是设计和分析一些...
1 2 3 4 5 ... 20
收藏数 112,632
精华内容 45,052
关键字:

历史 机器学习