网络机器人吧社区

老人与“狗”:机器学习简介(及学习资源)

一粒X豌豆 2018-12-05 13:18:24

图为 Facebook 数据门爆料者,剑桥分析前员工 Christopher Wylie。剑桥分析使用了机器学习模型来为用户推送定制化新闻。


豌豆的话:本文是约稿,欢迎作者果汁 




2016 年阿尔法狗着实火了一把。4 比 1 战胜李世石 9 段的消息占据了各大媒体头版头条,甚至后来还被拍成了电影,在 IMDB 和烂番茄上评分都挺高。2017 年 AlphaGo Master 只携带单机版本(4 TPUs ver.),就轻松战胜了世界第一柯洁。(其实我怀疑是乌镇没有互联网,所以只能打单机版。)平地一声雷,阿尔法狗一火,无数条狗闻风而动。腾讯的绝艺无疑是国产狗中最强的,面对柯洁,让两子仍有很大胜算(此处绝无冒犯柯洁之意)。


好吧,在围棋方面,人类应该没法和各种狗狗抗衡了。然而人类养出这些狗狗,目的并不是击败人类。这对它们来说太简单了。人类想要“狗头”军师,狗狗的脑袋里藏着的 ML(Machine Learning,机器学习)和 AI(Artificial Intelligence,人工智能)。


狗狗这阵风吹的很大,风口上的猪也可以起飞。如今企业想融资,沾点 ML 或者 AI 的边总归容易一些。


 

所以,什么是 AI?什么是 ML?它们是一回事吗?


大家可能或多或少听说过 AI(Artificial Intelligence,人工智能)和 ML(machinelearning,机器学习)这些词,但是他们代表什么含义,有可能并不是很清楚。(专业人士可以忽略本文)正好最近在学习 machine learning,应公众号博主的要求,答应不定期分享一点学习体会,希望能让您没有感觉时间白费。


AI 的概念其实很简单,就是让机器来看似智能地模拟人的行为。这只是一个目的。为了达到这个目的,人类常用的方法就是机器学习(machine learning)。机器学习的一个分支是深度学习(deep Learning)。谷歌的狗狗用的就是深度学习的算法。这一篇主要会聊聊机器学习,以后如果有机会接触到深度学习,我会再和大家分享。


关于机器学习的定义,各家有各家的说法。1959 年(没错,机器学习那个时候就有了),人工智能的先驱 Arthur Samuel 给出了如下的定义:


Machine learningis a field of computer science that gives computer systems the ability to"learn" with data, without being explicitly programmed.

--- From Wikipedia


翻译过来就是:机器学习是计算机科学的一个领域,它使计算机系统能够“学习”数据,而不需要明确编程。(这句翻译是另一个 AI,Google Translate 给出的)


其实,说得简单点,就是我们小学老师经常教的“举一反三”。狗狗通过学习已有数据获得了一些规律,然后把获得规律应用于新的数据上。就是这么简单。



那么,机器学习能做什么?


按照我粗浅的理解,机器学习算法在回归分析(regression)、分类分析(classification)和聚类分析(clustering)问题上表现得比较让人类满意。


回归分析算法是用来预测连续的结果。比如,通过对房价数据及房子特征数据的学习,生成一个模型,这个模型能利用房型、地段和面积等特征来预测一套新出住宅的合理定价。这个算法系统可能已经被某些大型房产中介应用。


下图是一个简单的例子。回归分析算法能够画出“趋势线”,并且用这根线来预测未知的结果。


分类分析算法是用来预测一些离散的结果(标签),就像莎士比亚说过的“To be or not to be, that is the question”。“to be”和“not to be”就是分类算法要预测的标签值。比如,很多邮件系统都有自动区别垃圾邮件和非垃圾邮件的功能,就是应用了分类分析的算法。系统通过学习历史邮件数据,比如,用户手动标记的垃圾邮件数据,结合邮件本身的特征如词频和发件人等,来生成一个模型。当一封新的邮件到达的时候,系统会让模型来对这个邮件进行判别。如果结果是垃圾邮件,那么这封邮件就会进入垃圾邮箱。


在下图的简单例子当中,所有的数据点都包含颜色标签(蓝色,红色),分类分析算法能够画出红色点与蓝色点的合理的边界,如果有新的数据点到来的话,可以根据边界线比较容易预测这个数据点是红色还是蓝色。


 

聚类分析算法并不需要输入数据的标签。算法根据数据自身的特征来把数据进行聚类。最近很火的剑桥分析公司(Cambridge Analytica)事件就是用了聚类分析的算法。他们根据 Facebook 用户的点赞行为数据,构建出模型,将用户聚类。如果一聚类的用户符合某一预设的类型,那么他们就向这个用户推荐预设的新闻或假新闻。比如某一聚类的用户对外来移民有反感,他们就会不断地推送比如“外来移民让国家变得不稳定”、“XXX 总统候选人坚持构建边境墙”之类的消息。


聚类分析和分类分析最大的不同就是数据是否带标签,或者说是否有需要预测的因变量 y。比如下图的数据点都是一样的颜色,如果要求分成两类的话,那么只能使用聚类分析来分析这些数据点自身的特征来获得分类的结果。



 

机器学习这么牛X,但是和我有什么关系?


二十年前,有些人觉得电脑这么牛 X,但是和我有什么关系?


十年前,有些人觉得编程这么牛 X,但是和我有什么关系?


谷歌机器学习总监 Peter Norvig 博士在 MLCC 课程最开始就说过:“机器学习可以改变您思考问题的方式”。“对于机器学习,我们的关注点从数学科学转移到自然科学上,我们观察不确定的未知世界,开展实验,并使用统计信息而非逻辑来分析实验结果。”


机器学习确实是思维的改变,特别是对于工作需要编程的同学。机器学习至少带给你如下三方面的机遇(同时伴随挑战):


1. 它会为你提供一个可缩短编程时间的工具。

2. 借助机器学习,你可以自定义自己的产品,使其更适合特定的用户群体。

3. 借助机器学习,你可以解决作为编程人员不知道如何用人工方法解决的问题。

 

花了短短两千字的篇幅,希望能给大家带来一些关于机器学习具象的概念。。应博主要求,给大家推荐两个学习机器学习的网站。(博主真是特别关心followers 啊!


https://developers.google.com/machine-learning/crash-course/(Google 机器学习速成课,需梯子)

https://www.coursera.org/learn/machine-learning/home/welcome(Coursera 机器学习课,应该不需要梯子)

 


本文参考以下资料:

Google Machine Learning Crash Course

https://developers.google.com/machine-learning/crash-course/

Coursera Course Machine Learning

https://www.coursera.org/learn/machine-learning/home/welcome

Wikipedia –Machine Learning

https://en.wikipedia.org/wiki/Machine_learning

Wikipedia –AlphaGo

https://en.wikipedia.org/wiki/AlphaGo

Copyright © 网络机器人吧社区@2017