包子教你机器学习 篇一:学习算法简介

2018-03-09 23:15:59 38点赞 319收藏 39评论

大爷,进来玩啊。惊闻南京大学已经开了人工智能学院,看来距离区块链学院的开设也不远了。为了给大家对于机器学习有一个比较浅显的认识,我就根据我看书的内容写了一些关于机器学习方面的介绍,但是本文内容肯定有不尽人意的地方,欢迎大佬批评指出,因为我也只是一个学习的小萌新。

首先,深度学习是机器学习的一个特定分支。本文主要是探讨一些基本的机器学习算法。萌新读者或者其余的想要系统学习机器学习的人,我还是建议你去买一下参考书,例如 Murphy (2012) 或者 Bishop (2006)。但如果你已经熟知机器学习,也可以跳过本文。所以总体来说,本文的定位就是机器学习基础介绍,适用于有一定的线性代数、高等数学、统计学和C语言基础的小伙子小姐姐们。所以如果说你没相应的数学基础,那还是打开京东/亚马逊/当当或者拿出你的借书卡去图书馆拿起高等数学线性代数之类的书仔细看一遍吧。

学习算法简介

首先举一个例子,线性规划(这个问题只要是学过高中数学的人基本上都知道吧?)。利用已有的条件求出最优解。可以说我以前在高中时候最喜欢这类题目,简单快捷,并且套路可循。简单来说就是现在有商场的ABCD四种产品给出不同的优惠方案,你现在想买哪些产品,怎样买才能使得自己的钱被最大化的节省。经常出现的场景就是多买一个A或者B产品就能节约一大笔钱。当然这属于最初级的规划。在整个数据统计分析过程中数学家们提出来非常多的解决思路来协助新手分析数据获得最优解。而发展到现在,让计算机自己寻找最优解自己去做规划成了新的学习方向,你所需要做的只是输入几个限制条件和想要的结果方向就行了。

学习算法简介

机器学习本质上属于应用统计学,所以它更多地关注于如何用计算机统计地估计复杂函数,不太关注为这些函数提供置信区间(也就是说机器学习是一个黑箱模型,你输入,它输出,可信度则是要自己判断的)。所以统计学中频率派估计和贝叶斯推断这两种方法是重点关注对象,同时大部分机器学习算法可以分成监督学习和无监督学习两类。

深度学习算法都是基于被称为随机梯度下降的算法求解的。所以组合不同的算法部分是整个机器学习的重点,例如优化算法、代价函数、模型和数据集,通过组合模块来建立一个机器学习算法。而限制传统机器学习泛化能力的因素促进了解决这些问题的深度学习算法的发展。

----------------------------------------------------------正文---------------------------------------------------

机器学习算法是一种能够从数据中学习的算法。然而,这里所谓的 “学习”是Mitchell (1997) 提供的一个简洁的定义:“对于某类任务T和性能度量P,一个计算机程序被认为可以从经验E中学习是指,通过经验E改进后,它在任务T上由性能度量P衡量的性能有所提升”简单来说,这就是你告诉程序需要记忆一首诗歌,然后它通过你设计的学习途径去“学习”一段时间之后能背得更好。当然还有更复杂一点的就是,你告诉一个程序要统计数据库里面的诗的数量和标签,然后在你需要撩妹的时候及时把合适的诗句发给你,性能度量P就是发给你的诗句合不合适的程度(“北方有佳人”这自然是最好的,要是发给你”桃花潭水深千尺“那就是不合适的,要是发给你“剑阁峥嵘而崔嵬”那就完全是不能用了);经验E就是你给的数据库,比如你喜欢的女孩子喜欢宋词,那你就给程序全宋词文库进行学习分类;而你在撩妹时候就需要任务T了。学习过程就是训练过程,所以以上定义你应该能够有所了解了。

学习算法简介

有些常见的机器学习任务类型列举如下:分类、输入缺失分类、回归、转录、机器翻译、结构化输出、异常检测、合成和采样、缺失值填补、去噪、概率质量函数估计等等。这些任务类型只是用于介绍机器学习可以用来做哪些任务。例如“分类”可以协助机器人识别图片数字或者识别不同的饮料,当然现在比较通用的应用是计算机面部识别,在这一点上,iPhone X的面部识别技术是比较到位的。而“回归”这个则是典型的线性规划问题,在算法交易中此类应用比较广泛,比如说保险公司根据你的个人信息来推测你的索赔金额,或者根据现有的信息来推测证券价格,这一点来说,可能与数据拟合分析比较类似。至于接下来的“转录”和“机器翻译”则是和我们现在正在使用的搜索引擎技术关联性很大,“转录”举个例子来说就是你输入一段语音,然后程序输出一段文字。这样的过程是现代语音识别系统的重要组成部分。同样的“机器翻译”也是类似的解决路径,如语言翻译,英语翻译成中文,中文再翻译成德语之类的。“异常检测”则是更加的通用一些,比如你需要从一长串0中检测出来1的数量,人眼看过去一定会非常痛苦,因为眼睛都看花了,但是交给机器的时候就会发现这个工作很有用。你可以在word里面通过程序来统计数量或者查找替换,但是轮到生活中的场景的时候你就需要有更复杂的判断了,最典型的判断就是时下最流行的账号异地登录警报:比如说你最常用的账号是微博,常用时间段是晚上九点到晚上十二点,常用登录地点在北京,但是这时候程序发现你的账号在夜里三点时候尝试着在杭州登录,于是就触发了异常检测,但是如果是你自己更改了登录习惯,程序就会学习着录入这个新的时间段和新的登录地点,直到下一次异常的时候再被触发。

介绍了一些基本的机器学习任务类型之后,我们肯定需要来评估一下机器学习算法的能力。也就是考试分数的问题,毕竟就算是人,给培训了一段时间之后也会有一定的考核的,这个考核在机器学习里面就称为“性能度量P”。比如上面提到的分类,你要程序分类可乐雪碧芬达三种饮料,结果程序把所有的样本都识别为“可乐”,那么这个这个程序的准确率就是0,此处准确率定义应该是输出正确结果和全部样本的比例。但是这些都是已知的数据,因为你知道你给的有多少可乐多少雪碧多少芬达,但是在实际应用中,对于未知数据的预测准确率才是最重要的。所以在进行机器学习训练的时候,你需要做的只是将测试数据和训练数据分开,训练数据是训练模拟分类的准确率,测试数据则是为了模拟真实情况来测试这个准确率在陌生环境下可靠不可靠。

学习算法简介

虽然说看起来机器学习的性能度量很容易,不就是学完之后就给它打个分吗?不不不,你要知道,要是这么简单,大公司也不会因为年度考核的可信度与公平度而感到头疼了,公司内部的考核可信度与公平度不高的时候就会导致离职率增加,而放到机器学习里面,不合适的性能度量标准会使得机器学习的方向产生偏差并且出现更高的错误。有些情况下,我们很难确定度量标准是什么,而最重要的还是知道应该度量哪些数据。但是做出一个毫无差错的度量是不太现实的,比如你要评估未来一个星期以内两支股票的上涨幅度,这时程序搜集到的信息是模糊的,因此做出来的决断也是模糊的,只能给出的结论是有多少可能是上涨的有多少可能是下降的,而不会给出一定会上涨,上涨幅度是多少。所以这些训练中,你该怎样对其作出度量?是只要上涨就有效?还是上涨幅度超过多少才有效?以及如果给出的预测有一定的偏差怎么办?偏差太大怎么办?这就涉及到对于正向激励的定义和对于负向激励的定义了,比如你要定义9个等级,等级5是无错误对的,等级9是绝对正确的,等级1是绝对错误的。那么在结果出来的时候,我们又需要根据错误等级来确定惩罚还是激励程序。从某种意义上来说,你学习做一个机器学习程序的时候,你就是要学习成为一个HR,做好考核和激励,有一个理想的激励系统和度量系统才能帮助机器学习更好地训练。

学习算法简介

机器学习算法大致地可以分为无监督算法和监督算法。但是这二者之间的界限是非常模糊的。监督学习算法中,有数据(你给的一大堆可乐雪碧芬达),有学习指导(你给出的目标就是说让这个程序学会分类给出的饮料的种类而不是饮料的数量)。那么在无监督学习算法中,是有数据(依然还是有一大堆饮料放在这里),没有学习指导(就是你不告诉它这些数据需要统计出来什么趋势),所以要求程序必须在没有指导的情况下学会理解数据,比如理解这里有几种饮料,每种饮料有多少,颜色分类有多少,根据甜度分类有多少等等。(写到这里莫名其妙想起来以前看的一个笑话就是一个老板说为何你的工资只有2000,给你看看3500的人是怎样工作的那个,真实世界你要是上来就一大堆数据喷上来,老板肯定又会骂你不会筛选了,可惜程序不会反驳也不会说话,你骂了也没用)


OK,回到本文开头,线性回归问题,这是一个比较简单的机器学习事例。我们的目标是将向量{x......}作为输入,预测向量{y......}作为输出,而参数向量{w......}则是影响预测值的权重,所以这时候的任务T就成了:通过输出y=wx来从x预测y的值,性能度量P就是真实的y与预测的y之间的差值的度量。所以看到这里是不是有点熟悉了?高中数学中我们经常遇到的给你一段数字让你写数列通项公式就是这样的过程,而我当时被这些题目折磨过很久,你写出来的通项公式就是预测值,而给你打的分数就是度量P。

以上介绍了一些简单的机器学习概念和分类,下一篇将介绍机器学习训练过程中的训练概念。


参考书目为:

【1】Deep Learning,Ian Goodfellow、Yoshua Bengio、Aaron Courville


展开 收起

Python+django 全套编程 运维开发项目实战 爬虫入门 在线课程

Python+django 全套编程 运维开发项目实战 爬虫入门 在线课程

暂无报价

Wireshark数据包分析实战 第3版 ]克里斯·桑德斯(Chris Sanders) 97871

Wireshark数据包分析实战 第3版 ]克里斯·桑德斯(Chris Sanders) 97871

暂无报价

杰贝煌 steam教具科学实验生态气象站种植观察盆栽记录儿童玩具男女孩玩具早教幼儿园学生小孩生日节日礼物

杰贝煌 steam教具科学实验生态气象站种植观察盆栽记录儿童玩具男女孩玩具早教幼儿园学生小孩生日节日礼物

暂无报价

保证正版 About Face 4: 交互设计精髓 Alan.cooper(艾伦.库伯),倪卫国 刘

保证正版 About Face 4: 交互设计精髓 Alan.cooper(艾伦.库伯),倪卫国 刘

暂无报价
39评论

  • 精彩
  • 最新
  • 说了一堆,不知所云。想写专业文章就要写的专业。想写科普就通俗易懂。最怕全文无断,一句话十分钟。最后发现要深度没深度,要趣味没趣味。。。话说张大妈上发ML这事本身就interesting,兄弟你DL和ML貌似还没分清。评论区有同行指出了具体问题。只希望楼主这系列下一篇能让人满意。别太监了。

    校验提示文案

    提交
    多谢指正,我也是才开始学习,想着把自己学习经历写下来给大家分享一下,大佬过来指正一下。我也是才搞清楚ML和DL的区别哈哈哈。

    校验提示文案

    提交
    收起所有回复
  • 介绍这种技术类的,还是去知乎专栏或者博客吧。另外,最好加上自己的相关背景介绍会让人信服一点点

    校验提示文案

    提交
    hhh,我没有背景啊,开头都说了我也只是个刚学习的人。知乎风气不好,博客没人看啊。

    校验提示文案

    提交
    至少那边可以写LaTeX

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 恩,槽点满满的文章,居然让我不知从何吐起。
    首先在软件上,数学(linear algebra)这块,他们用的大概是MATLAB,MATLAB也可以做模拟,neural network.
    不过统计上,有个叫SAS的公司,出国一些专业统计软件,曾经大概很火。后来搞学术的一般大概使用R比较多一些。R,不少machine learning的包都是从Java上借鉴过来的。行业里用的比较火的就是Python,没有之一。
    然后有很多词汇来形容这个东西,有些算是炒作,有些算是历史问题。比如machine learning这个词汇大概就是搞CS的人提出。至于什么是所谓的deep learning,是一个非常空泛的词汇,大概没有任何实际内容。
    neural network 其实和现性代数很相关(感觉就是线代的应用)。里面有个tensor概念(scalar,vector,matrix,tensor)。股沟出了一个tensorflow的Python framework。
    machine learning 主要用sklearn. numpy,pandas也是两个基础包(scipy是更基础的包)。总之关于这些东西的理论其实在统计,线代都有。但是实施起来就是一个engineering的事情。

    校验提示文案

    提交
    这个我还真不知道,感谢指出,我也是个新手,只是把自己的理解写出来。感谢大佬指点。

    校验提示文案

    提交
    收起所有回复
  • 我真是想不通怎么会有人想在张大妈上教和学机器学习。。。

    校验提示文案

    提交
    大概是GitHub大神太多,写这些会被喷得很惨。过来写点科普混点金币岂不是美滋滋。要是炸出来大佬指点我哪里错了就更美滋滋了。

    校验提示文案

    提交
    你知道的太多了,会被查水表的。

    校验提示文案

    提交
    收起所有回复
  • (⊙o⊙)…这个头图。。。。

    校验提示文案

    提交
    这个头图很烂~(然而也是我扒的图

    校验提示文案

    提交
    收起所有回复
  • 小白看不懂,默默点赞

    校验提示文案

    提交
    一脸尴尬~不会是太长不看吧?

    校验提示文案

    提交
    收起所有回复
  • 毫无逻辑 [抠鼻] 联系你再多看看书吧

    校验提示文案

    提交
    哈哈哈,说起来你可能不信,我就是一边看书一边写的。

    校验提示文案

    提交
    收起所有回复
  • 学习的种类:监督学习,无监督学习,强化学习
    典型任务:回归、分类、异常检测、聚类、降维
    小弟现在在用dl来做脑电想象信号分类,欢迎张大妈的大佬讨论交流

    校验提示文案

    提交
    这些我还没看到,,说起来我看的书里面只涉及到监督和非监督的分类。

    校验提示文案

    提交
    收起所有回复
  • 知乎还是挺好的,汇聚完各家的自我中心点评。看完以后中和一个中肯的答案就是你想要的。

    校验提示文案

    提交
  • 这。。。。。。。。。。。。

    校验提示文案

    提交
  • 真是服,张大妈上都有机器学习了,666

    校验提示文案

    提交
  • 楼主写的很不错~

    校验提示文案

    提交
  • 打卡打卡,,

    校验提示文案

    提交
  • ***啥都往里装

    校验提示文案

    提交
  • 也有非线性回归的 [锁眉]

    半监督哭死在厕所,而且界限挺明显的

    校验提示文案

    提交
  • 楼主评价下半监督学习呗!

    校验提示文案

    提交
  • 楼主,我看完文章,再看评论,有一个批评是很真正确的,你要接受,那就是你的行文组织,真的!我在看的时候真的很累的,不是因为我也感兴趣,我是不可能看完的。

    校验提示文案

    提交
    讲道理,我写的东西里,就一个人的评论我接受不了,上来就是喷。其他人的评论都能接受,有的大神指出来问题我也接受了,但是谁也不能接受上来就开喷专业素养这些虚的吧。我觉得,这个行文结构就像是科幻小说的科幻性与文学性,同时能兼顾的很少。不过我还是尽力在下几篇文章中平衡一下。其实你可以说一下哪里逻辑性不好,毕竟我作为当事者肯定不如外人看得清楚,我写的时候也只是去关注怎样把概念解释清楚了。

    校验提示文案

    提交
    楼主,首先给你一个赞,能分享这样的内容。下面是回答你的问题,首先文章的逻辑是没啥问题的,主要是文章行文组织,比如尽量把文章中的的段落拆分成多个段落,这样方便阅读,同时可以增强读者的耐心来看。这个再电脑或者手机上看不比在书上看,书上可以很长一串是文字,但是在手机或者电脑上面的就尽量把句子拆的小一些的段落。其他的没有了。

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • @qiuyue77 你好,请问如果一个什么都不懂的人想了解这方面的知识,或者能看得进去的文章,你有什么可以推荐的吗?谢谢。

    校验提示文案

    提交
  • @invii 你好,请问如果一个什么都不懂的人想了解这方面的知识,或者能看得进去的文章,你有什么可以推荐的吗?谢谢。、

    校验提示文案

    提交
  • 不明觉厉, 先码后看

    校验提示文案

    提交
    别看,去看教材。我这写的就是辣鸡。

    校验提示文案

    提交
    教材有点枯燥,可能是连门都摸不到的关系,学渣泪奔而过

    校验提示文案

    提交
    还有2条回复
    收起所有回复
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
319
扫一下,分享更方便,购买更轻松