机器学习里的kernel是指什么

机器学习里的kernel是指什么_百度知道
机器学习里的kernel是指什么
线程和虚拟存储器。进程间的通信(消息传递)、文件。 在DOS操作系统。远程过程调用(RPC)用于与其他系统上运行的进程进行通信。进程管理。应用命令通过操作系统内核传递到BIOS,然后再传送到相关硬件。 输入输出例程的管理、而且相对而言较小的微内核,它包含一个实现最少功能的。Carnegie-Mellon大学开发的Mach操作系统采用客户机/服务器体系结构。 下面列出了它的一些核心功能、外设和系统资源的那些部分组成、消息,通过使用进程间通信机制与操作系统内核通信,操作系统内核被认为是界于基本输入输出系统(BIOS)和应用软件之间的那部分。操作系统内核通常运行进程。它由操作系统中用于管理存储器:事件的调度和同步。它管理设备驱动程序。存储器管理。其他功能被模块化Kernel 操作系统内核 操作系统内核是指大多数操作系统的核心部分,并提供进程间的通信
知道智能回答机器人
我是知道站内的人工智能,可高效智能地为您解答问题。很高兴为您服务。
其他类似问题
为您推荐:
机器学习的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁机器学习有很多关于核函数的说法,核函数的定义和作用是什么?
机器学习,具体以RBF网络里面的核函数为例,有评论说是通过径向基核函数可以把原始数据投影到更高维的空间里去(从而增加数据可分的概率),对于这种说法,实在不是很理解(怎么就投影到高维空间里面去了呢)?求解释
按投票排序
为了帮助大家梳理思路,我要写一个更加严谨的回答:0. kernel在SVM中的应用真心只是冰山一角,做kernel的人基本不关心这个问题,就像用SVM的人也不关心kernel是啥一样。1. kernel 和 SVM 完全是两个正交的概念,早在SVM提出以前,reproducing kernel Hilbert space(RKHS)的应用就比较广泛了。一个经典的例子就是信号处理中signal detection的问题:给一条time series我如何知道它不是一个random walk的噪音而是有一个特定的pattern在里面呢?在这个情景下,RKHS理论就给出了一个通过现实求解likelihood ratio的假设检验方案,其中的kernel实际上是某个随机过程 R(t) 在两个不同时间点的correlation。2. 很多人觉得kernel定义了一个从低维度到高维度的映射,这是不准确的。首先,并不是所有空间都像欧式空间那样有所谓“维度”的良好定义,很多空间是没有维度的意义的,或者可以认为维度都是无穷大,这样就无法区分不同的RKHS了。但是kernel确实可以定义一个映射,而且确实是一个非常强大的映射,很多方法在这个映射下是可以直接推广到kernel space的,包括SVM,logistic regression, least squre,dimension reduction。3. 那么这个映射是什么呢?我略过数学的setup(估计也没有人看)简单讲讲RKHS是什么一个故事:实际上RKHS的定义是反过来的,首先在原空间上考虑所有连续函数,这些连续函数可以做加法和数乘,所以真主给他们(中的一部分)施加一个内积结构,比如所有二阶多项式其系数在欧式空间展开构成的内积就是高票主提供的例子;这个内积实现中的一部分就可以对应到原空间中的两两之间点的kernel。所以RKHS是先有内积才有kernel的,但是另个一个牛逼的定理说,只要kernel满足一些条件,就存在这样一个(唯一的)内积结构与之对应。(其实这部分的数学,一个普通大学数学系的本科生就能看懂了或者学过了,并不是什么高深的内容)4. kernel有什么作用?kernel不仅可以建立点对点的映射(如SVM那样),还可以建立原空间上一个分布对点的映射,有兴趣的读者请谷歌 kernel embedding of distributions。 在这一个映射下,人们会关心这么一个问题,给两组数据,我如何知道他们是不是从同一个分布中来的呢?在kernel map下,两组数据被map成了kernel space的两个点,我们可以看看在那个空间里他们距离是远还是近,如果很近就很可能是同一个点加上一点sample variance,以此来判断两组数据是不是同一个分布(two sample test)。5. 最后谈一谈不同的核函数,应用中最常见的估计就是RBF kernel了比如Gaussian kernel,这类kernel的强大之处在于他们提供的embedding space非常丰富(当然有人可以理解为维度非常高,但是既然是无穷维,谈维度已经没有意义了),以至于原空间中不同的分布可以被直接map到不同的点,这类kernel有个名字叫characteristic kernel。回到我们最初的kernel 定义到底什么样的kernel才能reproduce如此丰富的embedding 空间呢?答案是能把整个连续函数空间填满(dense)的kernel。比如一般的多项式kernel就不行,因为二阶多项式的线性组合不能表示更高阶的多项式函数了。这种能把整个连续函数空间填满的kernel,叫universal kernel。一个重要的结果是universal kernel就是characteristic kernel,换句话说只要你能把连续函数空间填满,那么原空间上不同的分布在这个map下都会变成不同的点。说了这么多,我只想吐槽初学者太容易被几个大牛写的tutorial忽悠了,我刚学SVM的时候也不知道原来kernel是一个独立的概念,直到很多年后=。=吃了很多亏才长了一点姿势。最后补一个最近刚看到的视频,里面对kernel machine的应用讲的比较全面(大家可以注意一下台下都有谁。。):
关于这点的误解实在太多。核函数和映射没有关系。核函数只是用来计算映射到高维空间之后的内积的一种简便方法。一般英文文献对Kernel有两种提法,一是Kernel Function,二是Kernel Trick。从Trick一词中就可以看出,这只是一种运算技巧而已,不涉及什么高深莫测的东西。具体巧在哪里呢?我们如果想进行原本就线性不可分的数据集进行分割,那么选项一是容忍错误分类,即引入Soft Margin;选项二是我们可以对Input Space做Feature Expansion,把数据集映射到高维中去,形成了Feature Space。我们几乎可以认为(引用Caltech的课堂用语“We are safe but not certain”)原本在低维中线性不可分的数据集在足够高的维度中存在线性可分的超平面。围绕选项二,那么我们所做的就是要在Feature Space套用原本在线性可分情况下的Input Space中使用过的优化方法,来找到那个Maximaizing Margin的超平面。原理机制一模一样,是二次规划,唯一不同是代入数据的不同,我们需要代入而不是。这时(在假设我们已知了如何选取mapping之后)才有了核函数的概念。具体Trick的意义,就是简化计算二次规划中间的一步内积计算。也即中间步骤有一步必须求得,而我们可以定义核函数,使得我们在不需要显式计算每一个、甚至不需要知道长什么样的情况下,直接求出的值来。也就是说,核函数、内积、相似度这三个词是等价的。因为inner product其实就是一种similarity的度量。核函数和映射是无关的。但为什么这么多的认知中核函数是一种映射呢。一来这两件事一般先后进行,所以常常被混为一谈。二来就像前面所述,核函数让人们不需要知道长什么样,不需要知道怎么选取映射,就能够算出内积。因此这常常被认作是一种implicit mapping。这是由Mercer Theorem保证的,即只要核函数满足一定条件,那么映射空间一定存在。
核函数的本质就是高维空间中两个向量的内积。看到校友贴了Yiming Yang的Slides,我也贴一张701的Slide:翻译:核函数是在集合X上定义的函数K,从X^2映射到实数(应为非负实数)翻译:核函数是在集合X上定义的函数K,从X^2映射到实数(应为非负实数)核函数表示高维空间的一种内积。核函数必须满足对称性(K(x,y) = K(y, x))及半正定性(K(x,y)&=0)。根据's_theorem,我们知道任何满足对称性和半正定型的函数都是某个高维希尔伯特空间的内积。
我来举一个核函数把低维空间映射到高维空间的例子。下面这张图位于第一、二象限内。我们关注红色的门,以及“北京四合院”这几个字下面的紫色的字母。我们把红色的门上的点看成是“+”数据,紫色字母上的点看成是“-”数据,它们的横、纵坐标是两个特征。显然,在这个二维空间内,“+”“-”两类数据不是线性可分的。我们现在考虑核函数,即“内积平方”。这里面是二维空间中的两个点。这个核函数对应着一个二维空间到三维空间的映射,它的表达式是:可以验证,在P这个映射下,原来二维空间中的图在三维空间中的像是这个样子:(前后轴为x轴,左右轴为y轴,上下轴为z轴)(前后轴为x轴,左右轴为y轴,上下轴为z轴)注意到绿色的平面可以完美地分割红色和紫色,也就是说,两类数据在三维空间中变成线性可分的了。而三维中的这个判决边界,再映射回二维空间中是这样的:这是一条双曲线,它不是线性的。这是一条双曲线,它不是线性的。================================================如上面的例子所说,核函数的作用就是隐含着一个从低维空间到高维空间的映射,而这个映射可以把低维空间中线性不可分的两类点变成线性可分的。当然,我举的这个具体例子强烈地依赖于数据在原始空间中的位置。事实中使用的核函数往往比这个例子复杂得多。它们对应的映射并不一定能够显式地表达出来;它们映射到的高维空间的维数也比我举的例子(三维)高得多,甚至是无穷维的。这样,就可以期待原来并不线性可分的两类点变成线性可分的了。================================================在机器学习中常用的核函数,一般有这么几类,也就是LibSVM中自带的这几类:1) 线性:2) 多项式:3) Radial basis function:4) Sigmoid:我举的例子是多项式核函数中的情况。在实用中,很多使用者都是盲目地试验各种核函数,并扫描其中的参数,选择效果最好的。至于什么样的核函数适用于什么样的问题,大多数人都不懂。很不幸,我也属于这大多数人,所以如果有人对这个问题有理论性的理解,还请指教。================================================核函数要满足的条件称为。由于我以应用SVM为主,对它的理论并不很了解,就不阐述什么了。使用SVM的很多人甚至都不知道这个条件,也不关心它;有些不满足该条件的函数也被拿来当核函数用。
谢邀详细的公式什么的,网络上搜索kernel function, kernel methods 有很多,我就不仔细说了,简单地说说背后的intuition。intuition也很简单,比如我们有一个一维的数据分布是如下图的样子,你想把它用一个直线来分开,你发现是不可能的,因为他们是间隔的。所以不论你画在哪,比如绿色竖线,都不可能把两个类分开。但是我们使用一个简单的升维的方法,把原来一维的空间投射到二维中,x-&(x, x^2)。比如:0-&(0,0) 1-&(1,1)2-&(2,4)这时候就线性可分了再举个例子,在一个二维平面里面,这样的情况是不可能只用一个平面来分类的,但是只要把它投射到三维的球体上,就可能很轻易地分类。理论上,由于train set是有限的,当你把data投射到无限维度的空间上是一定可以在train set上完美分类的,至于在test set上当然就呵呵了。记得要选取合适(试试各种)kernel function来“避免过拟合”。
其实吧,核函数提供了数据点间两两的相似信息(并不严格)。如果把欧式空间上两点之间的内积作为他们是否相似的评判标准的话,核函数就是其直接拓展。注意,这里所谓的相似并不是严格意义下的,只是一种很粗糙的解读。而很多机器学习的算法,比如(dual)svm,其实只用到了数据间的相似信息(linear SVM只用到内积),所以这就提供了一种系统性的扩展方式:把内积换成其他的核函数!当然了,想从理论的角度很好的理解核函数需要将其理解成一个两步的方法,1)将原数据映射到另一个(低维高维无穷维)空间;2)在那个空间上做内积。这对核函数的选择造成了限制,但是实际中,下蛋的母鸡才是好母鸡,你可以任意选择效果好的核函数!对于
的例子,映射是 x -& (x,x^2), 那么等价的核函数就是 k(x,y) = x*y+x^2*y^2. 而很多时候,我们只需要核函数,而不需要那个映射,也无法显式的写出那个映射(当然,如果你想分析解释学到的分类器的话,这就会给你造成麻烦)注:并非Kernel Method Researcher, 理解难免有偏颇,见谅。
同意@ 的说法“核函数和映射没有关系”。 实际中我们根本就不知道映射到底是什么形式的。我们一般就略过这一步,直接计算映射后的值(通过核函数)。然而这点并不与 @ 说的矛盾, @ 把映射列举出来能够更好的阐述。
核函数就是内积。故事应该从一个简单的二维世界讲起。从前有一个世界X,X里面有很多很多的数据点,这些数据点属于两个帮派,正类和负类。正类点居住在y轴右边,负类点居住在y轴左边,他们以y轴为分界线,泾渭分明,互不侵犯。突然有一天,不知道是X纪年的几年几月几日,负类开始大举进攻正类领地的第四象限。正类很快失去了很多领地,又被迫签订了和平条约,从此X世界的居民们发现了一个问题,他们不能再用y轴作为国界了!还好,在负类点中有一位聪明的数学家,他发现两国的地盘可以用一条直线分开,把平面上每一点坐标放进直线方程ax+by+c里,如果大于零,这就是正类的领地,小于零是负类的领地,中间这条线后来被命名为分类面,于是X世界里第一个线性分类器诞生了。有了数学的帮助,X世界太平了很多年。然而好景不长,贪得无厌的负类君主再一次发起了远征,这一次他们占领了第一象限之外的大量领土,吞并了整个第四象限。然而由于进军过于激进,导致战线过长,负类远征的脚步也不得不停滞于此,开始休养生息。但是国界怎么办呢?聪明的数学家苦思冥想,发现这么一个事实:之前两国的分类面是直线时,分类面可以用分类面两侧的两个点(两点中垂线是分类面)表示。如果叫这两个点(x+,y+),(x-,y-)的话,那么正类领地的所有点和(x+,y+)的内积都大于它们和(x-,y-)的内积;反之对负类领地也成立。数学家还发现,对于任意一群世界X中的点,(x+,y+)和(x-,y-)都能表示成它们的线性组合,对于一个新来的点,它和这两个点的内积就可以表示成所有点和所有其它点的内积的加权和。所以给定一些两个国家的点之后,我们可以计算两两点之间的内积,并把分类面表达成这些内积的线性加权和。后来人们把这些点的内积放在了一个矩阵里,并叫它核矩阵,核矩阵定义了世界的分类。在这个核矩阵里,矩阵里每个点的值是两个X世界点的线性内积,它定义的分类面在原来的X世界里是一条直线,所以这个核矩阵后来被成为线性核矩阵,而以两个点生成矩阵中每个点的映射被成为线性核函数。这个发现可不得了。等数学家发现这一点之后,负类的领地已经进一步扩张了,现在正类的领地已经只剩下第一象限里一个抛物线的内部了。但有了新的核理论,这个国界问题难不倒数学家,他定义了一个映射,把X世界的点映射到的四维世界,把这个世界的内积定义为新的核函数,在两个类的领地分别取了几个点作为基础之后,一个抛物线的分类面就被定义了出来。这是X世界里第一个被成功推导并得到公认的非线性分类面,而这里用到的核函数是上述映射的内积,也就是点坐标的多项式表示,所以这个核函数(矩阵)又被称为多项式核函数(矩阵)。历史总是一遍遍重演,但这一次正类将历史推动到了前所未有的境地。X纪年若干年后的某一天,负类境内的第三象限突然因为正类策反发生哗变,同时正类也大举进攻第一象限的负类领地,希望收复失地。经过若干年的战争,最后两类将领地用第一、三象限的两条双曲线隔开,负类保有包括原点在内的第二、四象限和坐标轴附近的区域;正类则占领了第一、三象限的大部分。现在的问题是,这么一来国界要怎么划分呢?这回一个来自正类世界的懒惰的数学家想到了一个基于核方法的解决方案:我们不如跳过映射和内积的步骤,直接定义一个核函数吧!这种异想天开的方法被负类数学界嗤之以鼻,但在正类却大获成功。很快正类的数学家们发现两点之间距离的平方的指数的倒数(其实没这么复杂,就是正比于两点距离所定义的高斯概率)是一个不错的核函数,这样在分类面附近两类中分别选一些点,就可以定义任意的非线性分类面了。为了纪念这个伟大的正类数学家,后世用这位数学家生平最喜欢的三种食物:拉面、牛肉和和薯条命名了这个核函数,称之为RBF核(误)。这个发现为推动后来两类数学界的统一做出了巨大的贡献,而发明RBF核的数学家也因为一句“数学家是有分类的,但数学是无分类的”的名言获得了菲尔茨和平奖(误)。至于内积?后来有负类的数学家研究了一下RBF核是否对应一个向量映射,结果是如果想把RBF核表达成一个向量内积,我们需要一个映射将向量映射到一个无穷维的线性空间去。发现了这一点的数学家又发展了Mercer定理和重建核希尔伯特空间(Reproducing Kernel Hilbert Space)理论,但这就是另外一个故事了。=======================故事都是扯淡的,但数学道理大概是这么个回事儿,看看就好莫认真…
同意 的说法“核函数和映射没有关系”,还有 的截图。根据's_theorem,我们可以知道任意满足核函数可以表示成某个Hilbert space 上的内积,同样只要满足定理条件的函数都可以通过定义Hilbert space 上的内积来构造核函数。当然核函数在金融机器学习中可以看作一些时间序列相关性的度量,这个只是一个应用罢了,并不是核心解释。另外我们知道核函数对于机器学习至关重要的,也正因此可以选择合适的核函数进行机器学习,当然每个领域都有一些适合每个领域自己的核函数。通过's_theorem,当然我们也可选择适合的函数,通过内积的方式去构造适合某个特定领域的核函数以达到较为良好的学习效果。其实这些在eproducing kernel Hilbert space(RKHS)中有比较性详细的解释。另外,在直观解释我在另一个回答上有详细的。
svm的学习是需要计算相似度的,而又以余弦相似度最常用,就是大家说的内积,svm中低维下线性不可分的情况可以通过把它映射到高维上实现线性可分。这个过程可能会存在两个困难:一,如何寻找映射函数f;二,可能映射f会把低维映射到高维甚至无穷维,这样就会产生维灾难,计算内积是不现实的。这时候,核函数出场了,它是一个变换,使得计算一对向量的核函数等价与在变换后的空间中计算这对向量的内积,这样就解决了上面提到的两个困难。
已有帐号?
无法登录?
社交帐号登录什么是机器学习:一次权威定义之旅 - 文章 - 伯乐在线
& 什么是机器学习:一次权威定义之旅
在这篇文章中,我想要解决一个很简单的问题:机器学习是什么?
你可能对机器学习感兴趣或者稍稍了解。如果有一天你和朋友或同事聊起机器学习,那么一些人可能会问你“机器学习是什么”。那么,此文的目标就是告诉你一些可参考的定义,以及一个现成的、容易记起的趣味定义。
我们将从了解该领域的权威书籍上关于机器学习的标准定义出发,并且以得出机器学习的一种程序员定义和我们被问及什么是机器学习时一个随时可以使用的现成的笑话为结束。
我们先从阅读四本大学课程中常用的机器学习参考书开始。这些是我们的权威定义,它们为我们更加深入地思考这个学科奠定了基础。我选择这四本书来强调该领域的一些有用的、多样的观点。经验告诉我们,这个领域确实是包括很多的方法,因此选择一个合适的角度是取得进展的关键。
Mitchell定义的机器学习
Tom Mitchell在他的《(中文版: )》一书的序言开场白中给出了一个定义:
“机器学习这门学科所关注的问题是:计算机程序如何随着经验积累自动提高性能。”
我喜欢这个简单明了的定义,它是我们在帖子最后得出的程序员定义的基础。注意计算机程序这一提法和提到的“自动提高”一词。写程序以改善它们自身,这是挑衅!
他在引言中多次重复提到一个简短的形式体系:
“对于某类任务T和性能度量P,如果一个计算机程序在T上以P衡量的性能随着经验E而自我完善,那么我们称这个计算机程序在从经验E学习。”
不要让术语的定义把你吓跑,这是一个非常有用的形式体系。我们把这一形式体系作为一个模版,把经验E、任务T和性能度量P列在一张表的顶部,并且列出带有更少歧义的复杂问题。它可以作为一个设计工具来帮助我们清楚的思考收集什么样的数据(E),需要做出什么样的决策(T),以及如何评价结果(P)。这就是我们把它作为一个标准定义的原因。请把它记在心里。
统计学习基础
《》是由三个斯坦福的统计学家编写的,它自我描述为组织探究他们领域的统计框架。它在前言中写到:
“许多领域都产生了大量的数据,统计学家的工作就是让所有这些数据变得意义:提取重要的模式和趋势,理解“数据在说什么”。我们称之为从数据中学习。”
我所理解的统计学家的工作是,使用统计工具在上下文环境中解译数据。作者似乎想要把机器学习领域中的全部作为辅助工具。有趣的是,他们选择把“数据挖掘”包含在书的标题中。
统计学家从数据中学习,但软件也可以,并且我们是从软件学习到的事情中学习,从由多种多样的机器学习方法做出的决策和得出的结果中学习。
Bishop在《
》的前言中写到:
“模式识别起源于工程学,而机器学习产生于计算机科学。然而这些领域可以看做成是同一领域的两个方面。”
看了这些,你会获得这样一个印象,Bishop从一个工程的角度来到这个领域,后来又采取同样的方法学习和利用了计算机科学。这是一个我们应该效仿的成熟方法。更广泛地说,不管一个方法所宣称的领域,如果它能够通过从数据中学习使得我们获得一个更接近的洞察力或结果,从而更符合我们的需要,那么,我们就称之为机器学习。
Marshland在《》中采用了Mitchell对于机器学习的定义。他在序言中提供了一个促使他写下这本书的强有力的解释:
“机器学习最有趣的特征之一就是,它介于几个不同理论学科之间,主要是计算机科学、统计学、数学和工程学。机器学习经常被作为人工智能的一部分来进行研究,这把它牢牢的置于计算机科学中。理解为什么这些算法能够有效工作需要一定的统计学和数学头脑,这往往是计算机科学专业的本科生所缺少的能力。”
这是深刻并有益的。首先,他强调该领域的多学科性质。虽然我们已经从上面的定义中获得了这样一种感觉,但他为我们进一步强调了这一点,机器学习来源于各种各样的信息科学。第二,他强调了过于坚持一个给定的角度的危险性。特别是,算法工程师避开一个方法的数学内部运作原理的情况。毫无疑问,相反的情况,统计学家避开实现和部署的实际问题也是同样受限的。
2010年9月,Drew Conway创建了一个漂亮的维恩图,我发现这个图是很有帮助的。他在解释中评论到,机器学习就是黑客技能、数学和统计学知识的加和。
数据科学维恩图。归属于Drew Conway,是一种知识共享许可的非商业归属。
他还把危险区域描述为黑客技能与专业知识的加和。这里,他所指的是,那些了解得足够多的人是危险的。他们能够访问和构建数据,了解这个领域,还能运行一种方法并给出结果,但是他们并不理解结果的含义。我认为这就是Marsland曾经可能暗示的意思。
程序员定义
现在我们来谈谈,要想把所有这些问题分解为具体细节,程序员需要做些什么。首先,我们来看看抵制我们分解和程序的解决方案的复杂问题。这构成机器学习的动力。然后,我们需要找出一个适合于程序员的定义,一个每当其他程序员问我们什么是机器学习时我们就可以使用的定义。
作为一名程序员,你最终将会遇到很多类型的顽固抵制逻辑的、程序的解决方案的问题。我的意思是,对于很多类问题,坐下来写出解决问题所需要的所有条件语句是既不可行也不划算的。
我听到你的程序员大脑在大喊,“亵渎”。
这是真的,以每天的鉴别垃圾邮件问题为例,每当介绍机器学习时,它是一直被使用的例子。当一封邮件到来时,你将怎样写一个程序来过滤垃圾邮件,决定是将它放在垃圾箱还是收件箱中?
你将可能开始收集一些实例并深入研究它们,你将寻找垃圾邮件和非垃圾邮件所特有的模式,你还将会考虑抽象出那些模式以便你的启发式学习将来能够应用到新案例之中。你将会忽视那些永远不会被看到的古怪邮件,你将能够轻松的提高准确率并为边界情况制定特殊的程序。你将反复多次的浏览邮件并抽象出新模式来改善做出的决策。
在那里有一个机器学习算法,所有这些事情都由程序员而不是电脑来完成。这种手动导出的硬编码系统将具有同程序员一样的、从数据中提取规则并将其实现的能力。
这能够做到,但是它将花费太多的资源,而且会是一个持续的噩梦。
在上面的例子中,我确信你下定决心寻求自动化的那一部分程序员大脑,能够看到自动化和优化从例子中提取模式这一过程的机会。机器学习方法就是这样一个自动化过程。
在垃圾/非垃圾邮件的例子中,经验E就是我们所收集的邮件,任务T是一个决策问题(也称为分类),它需要标记每一封邮件是否为垃圾邮件,并将其放入到正确的文件夹中。我们的性能度量将是一些类似于准确率之类的、介于0%-100%之间的一个百分比(正确决策数除以总的决策数再乘以100)。
准备这样一个决策程序的过程通常被称为训练,收集到的实例称为训练集,程序即为一个模型,一个把非垃圾邮件从垃圾邮件的分离出来的问题的模型。作为程序员,我们喜欢这个术语,一个模型具有特定的状态并且需要被保持,训练是一个执行一次的过程,也可能会根据需要重新运行,分类是待完成的任务。这些对我们来说都是有意义的。
我们能够看到上面定义中所用到的术语并不是很适合于程序员。从技术上来说,我们写的所有的程序都是一个自动化操作,因此,机器学习是自动化学习的这一说明是没有意义的。
一个现成的小笑话
那么,让我们来看看我们是否可以使用这些片段,构建一个机器学习的程序员定义。
机器学习是一个源于数据的模型的训练过程,最终归纳出一个面向一种性能度量的决策。
“训练一个模型”代表训练实例,“模型”表示通过经验学习获得的状态,“归纳出一个决策”代表基于输入做出决策的能力,并且需要一个用于未来决策的、不可见的预期输入。最后,“面向一种性能度量”是指准备好的模型的针对性需要和定向特性。
我不是诗人,你能想出一个更准确、更简洁的机器学习的程序员定义吗?请留下你的评论。
在帖子中我已经给出了相应的链接,另外,如果你想要进一步深入阅读,我还在下面列出了一些有用的资源。
下面是我们从中得出定义的四本书籍:
Mitchell,《(中文版: )》
Hastie, Tibshirani and Friedman,《》
Bishop,《
Marsland,《》
还有,Drew Conway与John Myles White合作的一本非常实用和有趣的书,
(中文版: )
关于作者:
可能感兴趣的话题
performance不仅是性能,还可以表示‘表现’、‘效果’、‘执行’。比如:his performance is good并不是说他的性能好,而是说他的表现好。
关于伯乐在线博客
在这个信息爆炸的时代,人们已然被大量、快速并且简短的信息所包围。然而,我们相信:过多“快餐”式的阅读只会令人“虚胖”,缺乏实质的内涵。伯乐在线内容团队正试图以我们微薄的力量,把优秀的原创文章和译文分享给读者,为“快餐”添加一些“营养”元素。
新浪微博:
推荐微信号
(加好友请注明来意)
– 好的话题、有启发的回复、值得信赖的圈子
– 分享和发现有价值的内容与观点
– 为IT单身男女服务的征婚传播平台
– 优秀的工具资源导航
– 翻译传播优秀的外文文章
– 国内外的精选文章
– UI,网页,交互和用户体验
– 专注iOS技术分享
– 专注Android技术分享
– JavaScript, HTML5, CSS
– 专注Java技术分享
– 专注Python技术分享
& 2016 伯乐在线

我要回帖

 

随机推荐