下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、KNN演算法-通俗易懂的机器学习理论介绍May 16th, 2007 by mmdays 原文为繁体转化过来,欢迎访问计算机视觉论坛:Posted By Mr. Thursday /2007/05/16/knn/各位看到标题,如果没有听过kNN算法,会不会觉得疑惑:KNN是甚么呢?是不是CNN看久了,就变成DNN、ENN、最后变成KNN了呢?当然不是啦 XD!KNN全名是k-th nearest neighbour,中文意思是第k位最接近的邻居。甚么是第k位最接近的邻居呢?假设在一个广场上,有100个朋友,每位朋友都是你的邻居,
2、最接近你的邻居,就是第一位距离最近的邻居了,比第一位稍微远一点的邻居,就是第二位距离最近的邻居了,以此类推,第10位距离最近的邻居,就是k=10的时候了。至于KNN算法是甚么,又有甚么特别呢?之前提过了人工智能与机器学习。KNN算法就是一种机器学习的算法。在进一步探讨甚么是KNN算法之前,我们先介绍一下甚么是算法。算法可以看成是一种步骤的集合。举例来说:我们煮一道菜,第一步是先洗菜,第二步切菜,第三步放油,第四步快炒,第五步加点水闷几分钟,第六步再炒几分钟,最后第七步加盐和味精,然后炒到菜煮熟为止。算法就是这样子,把工作分成详细的步骤,有些步骤可能会重复执行,象是菜不够咸,就再加点盐,一直到口
3、味对了为止。有时候会依照情况的不同而有不同的步骤,象是过马路的时候,如果是红灯,我们重复等待的步骤,如果是绿灯,我们会进行走路过斑马线的步骤。由于计算机本身就是执行一道一道的指令,因此算法详细列出来的步骤,已经很接近计算机执行工作的语言。至于KNN算法又是由哪些步骤所组成的呢?在这之前,我们再稍微提一下KNN算法和机器学习之间的关系。之前在人工智能与机器学习的文章中稍微提了一下,机器学习就是让机器接收外界输入的资料以后,依照某种算法(一些步骤的集合),训练出一种模型,这个模型是一种从资料学习出来的东西,有了这个东西,机器看到新的资料的时候,不会空空如也,而是有某种程度的经验和智慧,可以了解新的
4、资料了。在这个过程中,有两种训练的方法:监督式和非监督式的学习。所谓监督式的学习,是指在训练机器学出一个模型的之前,会先有一段训练的时间,在这段时间里面,每一笔资料会有一个正确答案,机器学习以后,会根据答案调整自己学习的方法。举例来说:我们学习数学的时候,可能会练习一些题目,练习以后,会对一下答案,如果算错了,就会调整自己的计算方式,或是检查有没有粗心算错的地方。机器学习里面的监督式学习正是如此,训练之后,才开始有预测的阶段,这个时候输入机器的资料没有正确答案,机器必须根据他之前学习的模型来判断,预测新的资料应该输出哪一个正确答案,而不像再训练阶段的时候,输入的资料会有人类提供的正确答案了。另
5、外一种非监督式的学习,则是连训练的阶段都没有。我们只给予机器简单的学习方法,或是一个简单的价值观,然后就开始把资料输入机器,让机器自行判断正确答案。举例来说:我们还没上小学之前,已经有了一些基本的说话能力。我们从婴儿开始哑哑学语,我们并不晓得,甚么是主词、动词、受词。我们可能连注音符号都不晓得。但是我们的父母一直跟我们讲话,我们有一天就突然蹦出一些词,第一句可能是妈妈!第二句可能是爸爸!之后可能开始简单的对话,最后在上小学之前,我们至少会问简单的问题,老师讲的句子也都听的懂,才有办法起立、立正、敬礼,还有学习注音符号,练习写字了。非监督式的学习就是类似如此,我们给机器资料,简单的规则和价值观,
6、剩下的就交给机器一边学习一边预测正确答案是甚么了。KNN就是一种非监督式的学习法。首先,我们要替每一笔资料定出一个位置,象是下图:我们的目标是要机器学会怎样子分出红点和蓝点。每个点在平面上有个位置,分别用(x,y)来代表,举个例子来说:红点代表女生的大头照,蓝点代表男生的大头照,x轴代表照片中头发的长度,y轴代表照片中脸面积的大小。现在机器已经知道某些点是男生的大头照(蓝色的点)、某些是女生的大头照(红色的点)。当一张新的大头照输入机器以后(图片里面打问号没有颜色的点),KNN算法就先计算这个点,和其他已经知道男生或女生的资料点之间的距离(图里面画了几条线代表在计算距离)。今天KNN的K如果设
7、定成1,也就是(1-NN)的话,代表机器会找第一位距离最近的点,然后看这个点是男生(图中蓝色点)或是女生(图中红色点)。如果这个点是男生,那么我们也预测刚才打问号的这个点(新的资料点)是男生的大头照。之后这个问号点就变成蓝色的,然后继续反覆同样的动作在下一个新输入的资料点,预测新的问号点是男生或是女生。如果k=3,也就是使用3-NN学习,情况会变成怎样子呢?机器同样先计算图中打问号的点和各个颜色的点的距离,接着选出前三名距离最近的点,然后看看里面红色的点比较多(2个以上的点是红色)还是蓝色的点比较多(2个以上的点是蓝色),如果蓝色点比较多,就判断这个新问号点,是男生的大头照了。以此类推,会有5
8、-NN,7-NN,9-NN学习法,端看问题的需要而定。KNN学习法就是如此。他的好处是简单,而且是一种非监督式学习方法,让人们省去准备训练资料(资料和对应的正确答案)的时间。然而KNN也有他困难的地方。首先是每个机器学习法都要面对的问题,就是选择特征,用刚才的例子,我们用头发长度和脸大小的面积来让机器学习,如果遇到留长发的男生或是轮廓比较大的女生,可能就判断不大出来:或是说,如果我们改用肤色来判断,比较白的是女生,比较黑的是男生,万一这个规则拿来判断欧洲人,可能也不大行。另一个困难则是距离的订定。刚才的例子中,头发长度如果用公分来算,差距1公分的头发长度,可能有办法分辨男女。如果是用头发的颜色
9、来判断的话,那么颜色的距离就不知道要怎么定了,或许可以定成光线频率的距离,那机器还可以学习,不然红色和黑色两种颜色之间的距离,可能就不知道要怎么定了。这个问题在语意的问题上,也特别重要。如果我们要判断两个词是否属于同一类东西,但是只看两个词差别的字数,用相异字数的个数来当做坐标上的距离,就会出现一些意想不到的状况。譬如说:巴黎铁塔、和巴黎蛋塔,只差了一个字,和巴黎圣母院差了三个字,所以巴黎铁塔和巴黎蛋塔比较接近,属于同一类,那么机器学出来的东西,可能就不是我们想要的了。因此,KNN是个好用的机器学习法,然而在某些问题上,仍然有改进的空间了!希望大家读完这一篇以后,都能了解KNN算法囉!总结1
10、算法是一些步骤的集合,包含重覆部分与依条件执行的部分2 机器学习可分为监督和非监督两种学习法,差别在于有无训练资料(训练资料里面有正确答案给机器参考)3 KNN是一种非监督式学习算法,是参考最近k个邻居的答案来做判断4 某些问题上(例如语意问题)以及特征的选择,是使用KNN需要注意的地方KNN算法 (更正篇)上回和各位分享了KNN算法。不过在算法的归类上,我错把KNN归类成非监督式学习,英文称为unsupervised learning。在这边我重新定义监督式/非监督式学习:监督式学习是说,我们把资料给机器学习的时候,资料会有label,也就是说,每一个资料对应的正确答案,都会给机器看。机器学
11、完以后,会产生一个模型 (model),也就是他学习完的成果,之后遇到新的资料,他就用学习出来的模型来判断新的东西,输出新东西该有的正确答案。用之前判断大头照是男生或女生的例子,每一张照片给机器学习的时候,除了照片本身,还会让机器知道每张照片的正确答案 (男生还是女生)。之后机器用他学出来的模型 (model) 来判断新的照片,接着输出答案 (男生或女生)。非监督式学习就有些不同了。在非监督式学习的情况下,机器只能看到资料,但是不知道资料的label,也就是说,资料是甚么东西并不晓得。机器学出来的模型,是这些资料的pattern,之后遇到新的资料,机器是根据学出来的模型,判断新的资料比较像以前
12、看过的哪一种资料(比较像以前看过的照片里面的某几张照片),而不是说这个资料对应的答案(男生还是女生)。KNN算法因为输入的资料有正确答案 (每张照片是男生或是女生),而不是没有答案的资料 (一堆照片)。学习之后也是判断新资料的正确答案 (男生或女生),而不是仅仅告诉我们这张照片和以前看过的哪几张照片比较像。所以KNN算法是一种监督式算法 (supervised learning)。另一种学习法的分类是parametric learning和instance-based learning。parametric learning中文称作参数式的学习,主要是假设观察到的资料,是由几个关键的参数所决定
13、,机器要做的就是从观察到的资料中去学到这些参数应该是多少,之后用学到的参数当作模型 (model)来判断新的资料。instance-based learning则是把所有观察到的资料都列入考虑,成为学习到的模型,当遇到新的资料的时候,过去所有观察到的资料或多或少都发挥一些判断力,让机器作为根据来判断新的资料。KNN算法因为会计算每一个点和新资料点的距离,因此是一种instance-based学习法。其他算法,譬如说回归分析,假设有一条线可以分出男生和女生的资料点,我们要学出这条线 (这条线的斜率和截距),就是根据观察到的资料点来求出这条直线的斜率以及和坐标轴相交的截距,此时斜率和截距,就是要学习的参数,也因此称为parametric learning,和把所有资料点都当成判断依据的instance-based学习法 (例如KNN) 有所不同了。最后再提一下reinforcement learning (加强学习法),是先定义每一种情况的好或坏,也就是给机器一套价值观,之后让机器自行去学习。机器观察很多资料以后,作出不同的反应 (反应可以是输出正
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 零工经济算法考核中“自动化解雇”的法律正当程序构建困境-基于英国上诉法院2024年涉及算法辞退劳动纠纷裁决的教义学分析
- 2025-2026学年江苏省淮安市小学三年级数学第二学期期中教学质量检测试题含答案
- 2027届吉林省吉林市高三第三次测评物理试卷(含答案解析)
- 商铺与配套库房租赁合同书模板
- 季度安全生产考核评价工作总结
- 跨境智算中心电算协同中跨国算力绿电联合调度气候变化诉讼-基于气候变化诉讼框架算力绿电联合调度碳排放诉讼责任规范分析
- 跨境算力中心与水力压裂返排液发电协同中跨国返排液波动算力-基于国际水力压裂能源协会算力中心返排液发电调度指南规范分析
- 2026 年军训学习国防常识树立国家安全观念
- 公共游泳馆日常水质安全卫生管控课
- 夏季熟食存放安全时长科普知识
- 2026宁波高新区机关各部门、事业单位及街道编外招聘30人考试备考题库及答案详解
- 实验室生物安全手册
- 2026广西来宾市商务局招聘编外聘用人员10人备考题库及完整答案详解(必刷)
- 2026年上半年教师资格证考试《高中地理学科知识与教学能力》真题
- SYT 6620-2025《立式圆筒形钢制焊接储罐完整性评价技术规范》
- 2026年消防局文员考试试题题库及答案解析
- 2026年公共卫生执业医师考试(实践技能)综合能力测试题及答案
- 华为CAE试题及答案
- 【江苏考区】2026年4月初级注册安全工程师《法律法规》考试真题
- 2026年完整军队文职考试真题解析试卷及答案
- 2026年留疆战士选拔章节练习题及深度解析
评论
0/150
提交评论