包子教你机器学习 篇一:学习算法简介
大爷,进来玩啊。惊闻南京大学已经开了人工智能学院,看来距离区块链学院的开设也不远了。为了给大家对于机器学习有一个比较浅显的认识,我就根据我看书的内容写了一些关于机器学习方面的介绍,但是本文内容肯定有不尽人意的地方,欢迎大佬批评指出,因为我也只是一个学习的小萌新。
首先,深度学习是机器学习的一个特定分支。本文主要是探讨一些基本的机器学习算法。萌新读者或者其余的想要系统学习机器学习的人,我还是建议你去买一下参考书,例如 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
QCf4n
校验提示文案
bzhas
校验提示文案
寻找便宜君
首先在软件上,数学(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的事情。
校验提示文案
HDemon
校验提示文案
值友2018
校验提示文案
祖传养鱼秘诀-勤换鱼
校验提示文案
值友3610876312
校验提示文案
寒冰之玄
典型任务:回归、分类、异常检测、聚类、降维
小弟现在在用dl来做脑电想象信号分类,欢迎张大妈的大佬讨论交流
校验提示文案
fddzwm
校验提示文案
张大妈的干儿子
校验提示文案
值友474383770
校验提示文案
erhao
校验提示文案
总有蚊子想害朕
校验提示文案
嫩牛五芳五个角
校验提示文案
寒冰之玄
半监督哭死在厕所,而且界限挺明显的
校验提示文案
qiqiguaishou
校验提示文案
qiuyue77
校验提示文案
凹凸慢cd
校验提示文案
凹凸慢cd
校验提示文案
Page哥
校验提示文案
呆萌的呆呆
问对问题,才能找到理想伴侣…
终成眷属的两位男女互为粉丝四年,暗恋已久…
男生毕业于哈佛大学统计学专业,硕士毕业后在华尔街从事对冲基金工作。
女生从事创业失败,四五年来一直孜孜不倦决不放弃,目前从事投资行业。
在非诚勿扰十周年之际,他俩再次相聚舞台,男生带来的问题请最后三位女生回答:如果你有了财务自由,你会做什么事?
一个说我会照顾家庭,放弃自己的事业,一个说我会开一家收容所…,听后他相继灭掉了这两位无可挑剔的女生。
最后这位回答:
我会继续目前的事业(投资创业),并且要去帮助更多的创业人士走向成功!
男生听后,公开了他内心深处的秘密:
你的每一期节目我都关注,你的每一个微博我都看过,我希望成为你的港湾,负责你的后半生幸福…
他俩价值观几乎处于一个同心圆,所以终结连理。他们两个是十分理性的!
学会提问题,高质量的问题,可以看透一个人内心深处的价值观。从而找到志同道合的事业伙伴+婚姻伴侣。
事业和家庭本来就难以兼顾,而夫妻双方相互理解却往往是纸上谈兵,只有那种志趣相投,行业相近的夫妻,才会从根本上理解对方,实现长久的幸福婚姻。
~STAR
1st/Feb 2021 去看看
校验提示文案
Page哥
校验提示文案
凹凸慢cd
校验提示文案
凹凸慢cd
校验提示文案
qiuyue77
校验提示文案
qiqiguaishou
校验提示文案
寒冰之玄
典型任务:回归、分类、异常检测、聚类、降维
小弟现在在用dl来做脑电想象信号分类,欢迎张大妈的大佬讨论交流
校验提示文案
寒冰之玄
半监督哭死在厕所,而且界限挺明显的
校验提示文案
嫩牛五芳五个角
校验提示文案
值友3610876312
校验提示文案
总有蚊子想害朕
校验提示文案
erhao
校验提示文案
QCf4n
校验提示文案
祖传养鱼秘诀-勤换鱼
校验提示文案
值友2018
校验提示文案
值友474383770
校验提示文案
张大妈的干儿子
校验提示文案
HDemon
校验提示文案
寻找便宜君
首先在软件上,数学(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的事情。
校验提示文案
fddzwm
校验提示文案