数据嗨客 | 第1期:5分钟包你看懂“机器学习”

郑来轶

10 个月前

和大数据一样,机器学习(MachineLearning, ML)是一个热门而又有略有误导性的名词。

字面上它让不禁让人联想到一群机器人排排坐上自习的科幻场景,然而实际上它指的是让计算机具备像人一样的学习能力的高(qi)端(ji)技(yin)术(qiao),进而从堆积如山的数据中寻找出有用的知识。

听起来有些不可思议,真的有这种黑科技吗?

计算机的正确打开方式难道不是喂给它一串命令,然后愉快地看它乖乖执行么?

除了0和1啥也不认识的呆呆计算机,怎么还能像人类一样“学习”了呢?

嘿嘿,这个还真可以有。别急,且容我慢慢道来。

在讨论计算机如何学习之前,不妨先来看看我们人类是如何学习的。

人类的学习按逻辑顺序可分为三个阶段:输入,整合,输出。大家都多多少少学过英语,我就拿学英语来举例好了。

在入门时我们都逃不出背单词的苦海,不积累一定的词汇量后续学习都无从谈起,这是输入阶段。

然而很快我们就会发现,即使背完一本牛津大辞典也是没法和歪果仁愉快交流的。

我们必须学习语法,学习一些约定俗成的习惯用语,才能知道如何把单词组合成地道的句子,这便是整合阶段。

最后,有词汇量作基石,又有了语法规律作为架构,我们就能在特定场合用英文来表达自己的想法。

这是输出阶段,也正是我们学习英文的初衷。

学习其他东西也是一样,概括来说,都要经历从积累经验到总结规律,最终灵活运用这三个阶段。

对此,我们完全可以对人类的学习给出如下定义:

人类的学习是一个人根据过往的经验,对一类问题形成某种认识或总结出一定的规律,然后利用这些知识来对新的问题下判断的过程。

毫不夸张地说,学习能力绝对是人类打猩猩时代起憋出的大招,在它的帮助下人类一举登顶食物链之巅。

之后经过了数千万年的自然选择,学习能力弱的要么被环境淘汰要么被同类坑害,都死绝了。

学习这套流程已深深写入了我们的DNA里,一代比一代玩得溜。

故事到这里似乎直指人类称霸宇宙的happy ending了,然而我们还忽略了一件事,就是人类的脑容量和寿命毕竟有限。

即便聪明如爱因斯坦,发现相对论前前后后也要耗费数十年。即使再有更聪明的人出生,也得从1+1abc学起,达到爱因斯坦的水平小半辈子也过去了。

由于这个限制,纵使人类有超级的学习能力,还是很难让现有知识爆炸性增长的。

帮助人类突破这个瓶颈的,正是计算机。

人类学习能力强,但记性差,反应慢,还容易坏。计算机虽呆,但容量大,计算快,还稳定。

怎样融合这两者的优势呢?

显然最简单省事的方法就是手把手教会计算机学习了~(是谁说不如植入芯片让人脑变电脑的,你出来,我保证不拿你去做实验(微笑脸))

那么,应该怎样教会计算机学习呢?

人类可以从自己获得的经验中学习知识,然而计算机没法读书万卷也做不到阅人无数,只能从我们投喂给它的数据中学习规律了。

我们当然希望计算机学到规律之后立马智商爆表,分分钟就能自己用新知识独当一面啦。

不难想象,一旦这个设想成为现实,计算机就能以类似人类的方式解决很多复杂而多变的问题。

计算机解决问题与人类思考的经验过程将会趋同,不过它能考虑更多的情况,执行更加复杂的计算,从而产生及其可观的效益。

那么问题来了,怎么指导计算机从数据中总结规律呢?

几十年来,很多计算机科学和应用数学界的学者们总结出了不少教会计算机的办法,它们就是各式各样的机器学习算法。它们是数据科学家们胯下的挖掘机,担负着将海量数据化腐朽为神奇的使命。

至此,我们终于可以对机器学习下这样一个定义了:

机器学习是指用某些算法指导计算机利用已知数据得出适当的模型,并利用此模型对新的情境给出判断的过程。

由此看来,机器学习的思想并不复杂,它仅仅是对人类生活中学习过程的一个模拟。

而在这整个过程中,最关键的是数据,是数据,是数据!重要的事情说三遍。

如果说模型是我们希望造出来的火箭,那数据就是它的燃料。

数据量直接决定了我们的火箭只是个概念玩具,还是能够载人登月,还是可以飞出太阳系探寻智慧生物。

这也是机器学习和大数据是如此密不可分的原因。不得不说在这一点上计算机是远远比不上人脑的。

人类学习能力的可怕之处在于,能够通过极其有限的样本归纳出泛化能力极高的准则。

要知道,AlphaGo经过和自己左右互搏数千万局才达到现今的棋力,而和他不相上下的李世石,穷其一生打谱恐怕也到不了这个数目的百分之一。

正所谓“No data,no intelligence”。事实上,只要数据量足够大,机器学习算法的选择反倒没有那么重要了。

打个比方的话,数据和算法之于计算机好比阅历和智商之于人类。丰富的阅历所带来的智慧,自然不是靠一点小聪明就能驾驭得了的啦。

AlphaGo就是一个智商20棋龄10000年的老妖精,打败李世石主要靠的是经验。

机器学习根据所处理数据种类的不同,可以分为有监督学习,无监督学习,半监督学习和强化学习等几种类型。

实践中应用较多的也就是前两种。

所谓监督学习,就是说数据样本会告诉计算机在该情形下的正确输出结果,希望计算机能够在面对没有见过的输入样本时也给出靠谱的输出结果,从而达到预测未知的目的。

就像一个学生通过做多套高考模拟卷并订正答案的方式来提高高考成绩。

在这种情形下,数据就像是监督计算机进行学习的教师,故而得名。

根据输出结果是离散值还是连续值,监督学习可以分为分类问题和回归问题两大类。

他们在文字、语音、图像识别,垃圾邮件分类与拦截,网页检索,股票预测等方面有着广泛应用。

而无监督学习,是指数据样本中没有给出正确的输出结果信息。这就像做了好多套没有答案的模拟卷,最后还要去高考。

听上去是不是既惊悚又不靠谱?

但其实做没有答案的试卷也是能学到很多有价值的信息的,比方说哪些题出现频率高,那些题爱扎堆考,等等。

无监督学习希望从数据中挖掘的正是这一类信息,常见的例子有聚类,关联规则挖掘,离群点检测等等。

数据嗨客 | 第1期相关推荐

  1. 写文章 数据嗨客 | 第2期:线性回归 数据嗨客 | 第2期:线性回归 泊数 泊数 1 年前 普林大数据学院——“机器学习”系列 普林大数据学院依托北京大数据研究院和北京大学,为有需求的企业

    数据嗨客 | 第2期:线性回归 泊数 1 年前 普林大数据学院--"机器学习"系列 普林大数据学院依托北京大数据研究院和北京大学,为有需求的企业和用户提供线上线下结合大数据培训服务 ...

  2. 数据嗨客 | 第3期:朴素贝叶斯和垃圾邮件过滤 机器学习 2016-11-01 0 摘要:概率论只不过是把常识用数学公式表达了出来。 概率论只不过是把常识用数学公式表达了出来。 —

    数据嗨客 | 第3期:朴素贝叶斯和垃圾邮件过滤 机器学习 2016-11-01 0 摘要:概率论只不过是把常识用数学公式表达了出来. 概率论只不过是把常识用数学公式表达了出来. ----拉普拉斯 由于 ...

  3. 数据嗨客 | 第4期:逻辑回归

    摘要:逻辑回归,也称LogisticRegression,主要区别于一般的线性回归模型. 1引子 大家在日常的工作和学习中是不是经常有这样的疑问:邮箱是如何自动区分正常邮件和垃圾邮件的呢? 银行是如何 ...

  4. 数据嗨客的python学习(笔记)

    进度 本来打算两三天完成的,但是现在已经是第三天了.尽快完成吧! 记录与思考 在Python里四个空格和Tab键是不一样的,因为网站的默认是四个空格,所以有时候我打的是Tab键就会出现错误. 由于二维 ...

  5. c语言文件打开方式字符串,C语言打开文件-C语言打开文件的方式-C语言以只读方式打开文件-C语言以读写方式打开文件-嗨客网...

    C语言打开文件教程 在 在 C 语言中,打开文件使用 fopen C语言fopen函数详解 语法 FILE *fopen(char *filename, char *mode); 参数 参数 描述 f ...

  6. java基本数据_Java基本数据类型-Java基本数据类型大小-嗨客网

    Java 基本数据类型 序号 数据类型 大小/位 可表示的数据范围 默认值 1 long(长整数) 64 -9223372036854775808-9223372036854775807 0L 2 i ...

  7. 华为软件开发云释放莫比嗨客开发潜能

    "华为软件开发云一体化的代码编辑.托管.编译.部署.维护.任务的分配.OA功能令莫比嗨客印象深刻,而这些对于像莫比嗨客这样一方面需要节省成本,另一方面又需要快速产出产品的小微企业会很有帮助, ...

  8. java 字节流 区别_java字节流字符流区别-嗨客网

    Java字节流与字符流区别 Java字节流与字符流区别教程 我们在 实际上字节流在对文件操作的时候,不会用到缓冲区(内存),对文件本身直接操作而字符流在对文件操作的时候用到了缓冲区,通过缓冲区来对文件 ...

  9. java 枚举 color_java 枚举实现方法-java 枚举个性化-嗨客网

    Java枚举自定义方法教程 我们知道枚举是对已知的数据进行穷举,如果每个枚举对象里面有自己独特的操作我们可以让定义的枚举实现一个接口或者在枚举里面定义一个抽象方法. 枚举对象实现自定义方法详解 实现接 ...

最新文章

  1. 卷积后feature map尺寸计算公式
  2. tkinter之事件绑定
  3. 从真实项目中抠出来的设计模式——第一篇:策略模式
  4. python教程自带数据库_python教程自带数据库 | Python学哪个数据库
  5. 自定义插入子串、删除子串、替换子串函数
  6. java集合for循环_详解Java中list,set,map的遍历与增强for循环
  7. 《高翔视觉slam十四讲》学习笔记 第七讲 视觉里程计
  8. 阶段2 JavaWeb+黑马旅游网_15-Maven基础_第5节 使用骨架创建maven的java工程_17maven工程运行环境修改...
  9. python爬虫,以某小说网站为例
  10. dotween上下摆动_DOTWeen插件使用技巧
  11. java pdf 模板_java通过PDF模板填写PDF表单
  12. 集成 rootbeer 和 小米mix2s Root 流程
  13. 【SQL数据库】数据库的创建、查询、插入等操作使用方法(结合黑皮书教材网站(db-book中的例子)在MySQL Workbench和shell中实现查询操作
  14. 快手Y-tech:短视频智能创作的CV技术和发展趋势
  15. 什么是Java SDK
  16. uniapp 实现小程序,h5保存海报图片
  17. 如何使用edge给chrome下载官方插件
  18. 听听Vitalik对token设计的看法
  19. linux时间比正常时间走慢,Linux下时间比正常时间快8小时解决
  20. inputstream 关闭 java,Java ObjectInputStream close()方法与示例

热门文章

  1. 机器学习-花卉识别系统
  2. Mybatis中复杂语句标签的简单初步使用
  3. 【2022年上半年信息系统管理综合知识】
  4. python 取整法(进一取值)
  5. 创建一个抽象类动物类以及以下几个接口:进食的接口、睡觉的接口、思考的接口、说话的接口。分别定义猫类、人类、鸟类继承动物类并选择实现上述的接口,并创建实例验证。
  6. mysql第五章 在线测试_PHP+MySQL实现在线测试答题示例
  7. 多版本node安装相关知识
  8. 地理位置处理---Redis的GeoHash和MySQL的geography类型(之后有空再详细介绍)
  9. Linux hook系统调用open/read/write
  10. 奥特曼系列ol以前的服务器恢复,奥特曼系列ol怎么看之前登录过的大区