精华内容
下载资源
问答
  • 3.继续沿用上述的比喻阐述机器学习到底在做什么 (又名:机器学习自带暴力破解法的基因) 4.继续沿用上述的比喻阐述为什么机器学习需要一个生态系统 (又名:现在的小学生都在干什么?) 5.提出“双决策核心学习系统...

    前言

      在这篇文章里,不会有代码不会有理论也不会有什么知识,全部都是个人的一些比较宏观和抽象一点的看法和见解,会尽量浅显易懂除了第五部分以外高中生都能看懂。

    主要内容有:
      
    1.目前人工智能、机器学习的局限性
    (又名:媒体大肆宣扬人工智能威胁论,工程师笑了)

    2.用一个简单的比喻阐述“学习”的本质和价值
    (又名:学习的本质是拟合)

    3.继续沿用上述的比喻阐述机器学习到底在做什么
    (又名:机器学习自带暴力破解法的基因)

    4.继续沿用上述的比喻阐述为什么机器学习需要一个生态系统
    (又名:现在的小学生都在干什么?)

    5.提出一个被命名为“双决策核心学习系统”的机器学习生态系统初步架构。
    (又名:让人类和人工智能处于系统中的平等位置)

    一、媒体大肆宣扬人工智能威胁论,工程师笑了

      最近从阿法狗和李世石的大战开始,人工智能着实火了一把,然后人工智能威胁论又像某种复古时尚一样每隔那么几十年又回潮一次。下面有一张生动形象并且有点讽刺的图。
      但作为对人工智能有过了解的人,都知道目前人工智能比起威胁人类还不如说处于某种巨大的瓶颈当中。
      为什么这么说呢?对任何一个正常的小学生来说,他们都可以这节课学算数下节课学拼音,幸运的话还会被语文老师带到小花园里边观赏植物认识世界,顺别写出一篇叫“美丽校园的一角”命题作文。
      也就是说,真正的智能个体(小学生)在完成上述这些林林种种各类任务,使用的是同一套决策核心(大脑)。如果你让一个工程师训练出一个既能辨认拼音又能学习算数还能写作文的神经网络,他会呵呵你一脸。而小学生自己,基本也不会知道学习算数和学习拼音有什么共通之处以至于他们可以用同一套系统去完成这两个迥异的任务,更别提当他们长大之后,处理这一生当中可能会面临的复杂情景了。
      如果把人类智能比喻为,由各式各样不同分化程度的细胞组成,有复杂结构体系的人类躯体,目前的“人工智能”顶多算是一点高度分化的角质层罢了。人们会认为角质层细胞有什么威胁,真是很可笑的,特别是在它们还完全单打独斗无法通信无法联合的情况下,最大的威胁无非是让自己掉下来给你制造一些头皮屑罢了。
      所以想要摆脱瓶颈创造出真正的人工智能,需要更低分化程度的模型、需要除“角质层”之外的不同功能的高分化程度模型、最重要的是还需要一个“模型中枢”——不同分化程度、不同功能的模型和模型之间需要依赖这个中枢进行通信,进行协同工作。

    二、学习的本质是拟合

      个人认为,学习的本质就是拟合,不管是人类学习还是机器学习。
      那为什么需要学习,为什么需要拟合?先放一个不说人话的结论:
      
      “学习”是人类从更高维度认识世界的过程。
      
      接下来我会分以下两步解释这句话:
      1. 什么叫更高维度
      2. 为什么需要从更高维度认识世界(=为什么需要学习)
      

    什么叫更高维度

      说起高维度,学过线性代数的人可能会想到矩阵维度;看过《星际穿越》的人可能会想到高纬度空间;而做过数据挖掘的人会想起特征的维度。实际上,这三者的维度之间其实有着深层次的密切联系,在这里就不具体展开阐述,有兴趣的人可以在看完本文后自行进行想象和思考,这会是一个很有意思的过程。这里我选择从第三个角度,特征的维度上入手阐述什么是高纬度。
      举一个例子,这个例子可能一直要沿用到本文第三第四部分。
      先来看故宫。首先故宫是作为一个具有一定体积的物体立在地表。假设你家就住在故宫附近,或者更直接假设你就住在故宫里,你每天上下班上下学出出入入从小到大可能见过故宫无数次,在你心里故宫可能是一个无比熟悉的事物了。
      但这并没有什么用,你对故宫的熟悉仅仅只是错觉。因为简单来讲,故宫此时在你脑子里只是一个很平面化的很刻板的一个存在。为什么这么说?如果来了一个外国友人Rob,他用蹩脚的中文问你:“哇你住在故宫这么厉害,那故宫占地面积有多大啊?”
      这时候你就会一脸懵逼,存在你面前这么多年的故宫,你见过它无数次但你却不会因此就知道它的长宽高,因为你没有进行“学习”这个动作。
      而长、宽、高、占地面积,只是故宫所拥有的几个基本的特征。与此同时,外国友人有很多个,问题也能问无数个。你很不忿气,你下定决心开始“学习”试图掌握足以应付所有外国友人的知识。
      于是你知道了故宫有多少个房间,每个房间的面积是多少;包含有多少个走廊多少个拐角,用了多少种不同颜色的油漆,每个颜色有什么讲究有什么含义;摆放了多少个古董,每个分别是什么,叫什么名字,有什么含义有什么故事……
      而所有这些知识,放在工程师眼里就是特征。这些特征可以有多少个?也就是有多少维?成千上万维,成万上亿维,甚至无穷维。当然你的精力是有限的,你为了应付外国友人学习了五百个维度的特征,非常厉害了,已经是“故宫通”了。
      于是故宫不再是你每天上下班经过的一个物理性存在,所有这些知识,加上你最初的那个刻板的故宫印象,在你脑海里组成了一个全新的五百零一维的故宫。换句话说
      故宫在你脑海里,变成了五百零一维的存在。
      或者说,这时候你所认识的故宫,是真实故宫从你的这个角度(某个角度)的五百零一维的一个映射。
      而故宫实际上是一个什么样的存在呢?这是一个经典哲学问题,这里我斗胆给出一个答案。故宫是一个,存在于无穷维度空间的存在。无穷维度的存在是一个什么概念?——下令建造故宫那个掌权者最初的存在的那个念头、建造过程中每只不慎被封存在木材与木材缝隙中的昆虫、每个曾经住在那里的人留下的一点一滴的痕迹、每个游览它的人对它产生的每个看法、流传出去的每个关于故宫的传说和印象……这些通通都是无穷维特征中,除了长宽高外的一份子。
      通过学习,你利用人类智能,成功在脑子里拟合了一个五百零一维的故宫。但你无法通过学习拟合出最原本、最真实的那个无穷维的故宫。
      (这里简单夹带私货,学习做不到的事情,有别的方法可以做到,比如说禅定,这里就完全超纲了,stop。)
      

    为什么需要从更高维度认识世界

      先从最简单最直接最暴力的角度来讲,为什么需要从更高维度认识世界。回到那个叫Rob的外国友人,以及他问的那个问题“故宫的占地面积是多少?”作为每天住在里面的你回答不了,但肯定有人能够回答,比如说土地局,又比如说文物局。
      他们为什么要知道呢?因为只有知道这些知识,他们才有可能做一些什么,比如说改善一下故宫地下的排水系统、对故宫进行整修。
      再简单举一个贴近生活的例子,高中生物要学习细胞模型。就算摆一个鹅蛋这么大的真实细胞切面在你面前让你任意看任意摸,你还是会一脸懵逼。你不会知道细胞核、细胞质、线粒体、叶绿体、高尔基体各个细胞器的名称、结构、功能,还有他们的协作方式。约等于什么都不知道。
      认识世界的维度多还是少、多角度还是单一角度、广泛还是狭窄,是不同的思维模式。体现在目前的狭义的机器学习过程(也就是数学建模)上,就是特征工程,决定了你模型的能力上限;体现在人类智能上,就是一个人对万事万物的看法,决定了他的思想境界以及他会做的事。
      

    三、机器学习自带暴力破解法的基因

      学习,是人类利用自己的大脑,以及一些或简单或复杂的工具(纸和笔、试验器材……)干了几千年的事。而现在,人类发展出了一样新工具来辅助自己学习这个世界,这就是机器。
      一言以蔽之,这就是机器学习。
      那么机器是如何帮助人类学习的呢?又回到那个爱问问题的故宫爱好者Rob,这回他问你:“故宫一共有多少面承重墙?”好了,这个特征并不在你已经学习到的五百零一维里面,你告诉他等下一回见面的时候再告诉他答案。
      回家之后,你基本上有两种选择:
      一、想办法搞到故宫的图纸,再通过图纸里的信息得到答案;
      二、自己去遍历整个故宫的每一面墙,数出答案。
      第一个办法,是“专家”方法。也就是长久以来人类认识世界的典型方法——搞清楚事物背后的原理、真相,再具象到具体问题的答案。一旦找到了图纸,你不但能知道“故宫有多少面承重墙”、还易如反掌地同时掌握了“有多少个房间”、“内部是什么结构”等等一系列诸如此类的问题了。而且这个办法还有个优点,一旦搞到了图纸,基本你的答案就不会出错。然而想要搞到图纸,那就是老大难的问题了。
      第二个办法,就是暴力破解法。耗时耗力、出现误差的可能性大,一般情况下只能得到一个近似的结果。然而只要你肯下功夫就肯定能得出一个答案,不存在拿不到图纸的可能。但是故宫多大啊,自己去遍历一遍是实在是太累了。于是你雇佣了50个有闲没钱的小学生来帮你做这件事。
      50个小学生什么都不懂,既没有你了解故宫,也不懂什么叫承重墙,还像一团散沙一样。他们只会执行你给出的足够明确的指令,他们就是人类请来的帮手——机器。
      而如何拆解“故宫有多少面承重墙”这个问题把它化为具体的可执行的步骤,如何对50个小学生进行组织和领导,如何安排他们高效率低误差地对故宫进行遍历,50个小学生之间可能会发展出层次和等级关系,发展到如何让他们针对遇到的具体地形进行自适应调整以提高效率,其中还可以贯穿一些奖励和惩罚机制。这些都是算法问题。
      机器学习的出现,让原本可能对故宫一无所知,但很擅长领导小学生的人有机会解决“故宫有多少面承重墙”的问题,解决所有能用暴力拆解法解决的问题。
      而“拟合”,几乎就是暴力拆解的同义词。
      

    四、现在的小学生都在干什么?

      在第一部分,提到了人工智能目前处于一个很大的瓶颈期。而这个瓶颈为什么存在,要怎么解决。将在本部分给出一个比较抽象的解决方案,稍微具体一点点的解决方案将在最后一部分给出。
      在此之前,为了避免概念上的混淆,先区分一下“数据挖掘”、“机器学习”、“人工智能”这三个概念的区别。
      “数据挖掘”是最具体的一个定义。顾名思义,就是从一堆某批小学生收集回来的数据中,利用另外一批小学生来对数据进行各种操作,来从中提取出问题的答案的过程。数据挖掘和“智能”没有太大的关联,智能或者不智能,都可以进行数据挖掘。
      “机器学习”,一个比数据挖掘抽象很多的概念。“挖掘”强调的是最终得到了问题的答案或者说新的知识,而“学习”则强调的是赋予了机器自适应、类似于人一样的学习的能力。
      “人工智能”是三个中最强调“智能”的一个概念。“人工”很大程度指的就是“机器”,而“学习”是“智能”的一个部分。所以个人认为,可以说“机器学习”是“人工智能”的一部分。而“智能”除了“学习”以外应该还会有其他的能力,比如说“娱乐(自我满足)”和“想象(创造)”。挺好玩的。
       这里有一点,别说“自我满足”和“创造”,目前人工智能连“学习”这个功能都远远没有达到,而且目前来说主要的关注都是放在了“学习”上,所以在本文还有其他不那么严谨的文章中,机器学习和人工智能这两个概念没有严格的区分,常常在哪个场景下看着顺眼用哪个(一般来说机器学习比人工智能要具体很多)。
       回到本章标题“现在的小学生都在干什么?”他们都在忙着数有多少承重墙,有多少个房间,有多少根柱子,故宫可以住多少个人。他们几乎都连轴转,忙着解决各种各样具体的问题,其实只需要对整个故宫的图纸进行一次拟合,就可以得到众多问题的答案了。
       为什么会出现目前小学生们通通忙于高度分化的问题这个状况呢?一来小学生很贵,而会通过操纵小学生得到问题答案的人也很贵而且难找。而有能力置办起这么贵一套系统的甲方们主要目的就赚钱,而得到某个问题的答案只是他们复杂的赚钱流程中有点重要甚至不那么重要的一步而已。那么对于自带短视基因的他们来说(非贬义),画出整个图纸实际上是低性价比的一个做法。
       第二原因是,对于现实问题来说,比如说一个推荐系统问题、一个点击率预测问题、一个图像识别问题,“图纸”到底是什么?这个问题不管在理论还是实践上仍然很空白。
       而因为正如前言所言,这篇文章所有内容没有参考任何文献,完完全全是自己的理解和直觉。而在理论知识上深耕细作的缺乏,就让把问题阐述到这个地步的笔者自己处于很诚惶诚恐的状态了。但即使如此我也觉得把自己的想法比较清晰地阐述出来是有价值的(即使对我自己来说)。
       个人认为,知识图谱,或者说广义的知识图谱,具有成为图纸的潜力。
       个人认为,高纬度空间中复杂结构的相似度比对,是涉及到学习本质的东西。
       第一个观点可能不需要什么解释,知识图谱有成为模型与模型间通信和协作的“中枢结构”的潜力,因为知识图谱本身就兼具了知识和模型的基因,或者说是一种知识的结构化表示。更具体的东西才疏学浅的我也讲不出来,而证实、实现这个猜想正是个人一个比较长远的目标。
       而第二个观点更加抽象。我一直在寻找高效学习(掌握)知识的模式。而与已成型的结构化知识在结构上进行相似性对比,在这个基础上进行的知识扩展是我通过内视自己的学习过程得到的最高效率的学习方法之一。这里是更深一步的内容,而且有点超纲,这里不展开讲。
       
       

     五、让人类和人工智能处于系统中的平等位置

      这里简单粗暴地抛出一个定义,或者说很基础的原型。
      
      双决策核心学习系统=人类智能+模型中枢+模型+数据采集机制(爬虫)

    系统组成:

      1. 模型中枢:负责模型与模型之间协同和通信,同时负责与人类智能之间的通信。是整个生态系统不断演化的优化目标之一。可以近似看成是人工智能。到底具体由什么充当模型中枢,不同的系统中可以有不同的选择。(目前我会考虑使用知识图谱开发的某种决策引擎)
      2. 模型:如果说模型中枢是人工智能的大脑,那么模型就是手脚。负责实现各种分化的功能,在接受外部数据的输入同时也接受内部数据(模型中枢)的输入,而人类智能对模型的输入往往像空气一样常见。
      3.数据采集机制:相当于爬虫,可能是更具结构化的爬虫。在不同的系统设计上,可以接受人类智能控制或者接受模型中枢的控制,也可能同时受到两个核心智能的控制。
      4. 人类智能:在不同的系统设计中可以充当不同种类的功能。在初级的系统中是主导者的存在,而越高级的系统越独立于人类智能。最终的目标,可能并非让人类智能完全功成身退(这样可能会陷入某种极端)。而是让人类智能和人工智能就像人类的右脑和左脑一样高效率的协同工作。
      

    核心特点

      (生态系统与常见机器学习流程的不同之处)
      
      平权:让模型中枢和人类智能共同决定系统(模型)优化的方向。
     
      自适(暂定):并不为了解决具体问题而优化,而是为优化自身而优化。

      如果非要把目前一个缺少结构化的,非常常见的,从爬虫到建模输出的流程看做是本文定义的“机器学习生态系统”的话。一来,在这一类流程中,人类智能渗透在系统中的每一丝每一毫中,而人工智能(模型中枢)这个角色只能在特征筛选、模型评价这些步骤中看到一丝影子。二来,如同上文所言,整个流程的存在目的是为了解决具体的问题,而机器学习生态系统存在的意义是为了自我演进。
      

    双决策核心学习系统存在的价值和意义

      从短期来看,这种结构化设计有望打破目前人工智能存在的瓶颈,让人工智能的步伐往前迈进。从长期来看,整个生态系统演化的目的,是对人类智能和人工智能这个系统的左脑和右脑进行协同优化。甚至就我个人而言,最希望看到的是人工智能对人类智能的优化。这个说法看起来有点可怕,换一种更具体的。比如说,我认为人工智能很有希望帮助人类智能发现任意两样事物之间存在的联系。让人类智能从左脑中解放出来,甚至替代左脑,更多的开发右脑的潜能,这也是人工智能有可能做到的事情
      对于人工智能威胁论的持有者,我想对他们说的是。人工智能本质上只是人类智能的一个映射。人类如何管理人类智能的作恶,人工智能的作恶不会超出这个的范本。我并不是指人工智能的作恶不会发生,甚至认为是必然发生的,但既然人类据称已经能控制人类智能的作恶,基本不用担心不是人工智能的对手。
      但说句心里话,个人认为人类的一切发展正朝着自我毁灭的路上不可阻挡的前行,本文所提出的内容可能“有望”成为加速这一过程的因素。
      

    后记

      之所以动笔写这篇博客,是因为工作的部门里有人提议每人分享一下自己在机器学习领域最熟悉的部分。我反思了一下,从大二下接触机器学习到现在差不多两年半,我到底能讲些什么?好像什么都不能,因为在我看来我并没有在机器学习的某个领域里掌握比较高价值的一技之长。如果非要讲点什么,可能会是特征工程。但我又觉得,我这两年半来,对机器学习可谓是心之所向、尽心尽力,不可能没有一些什么可讲。所以在整个星期六一天里废寝忘食,毫不夸张的说同时耗尽了体力和精神,提炼出这两年半来我认为的对于机器学习的我脑子里最有价值的内容,完成了这一篇文章。也算是对我在机器学习这个进程上入门阶段的一个交代,同时也是我对自己未来前进方向的一记录和指引。由于精力上的原因,最后一个章节完成的比较仓促。并没有很好的表达出自己的观点,但目前为止只能先这样了。


    finish!
    2017.08.19

    展开全文
  • 02.ai机器学习工程师做什么? 03.ai机器学习工程师所需的技能 04.ai机器学习工程师的求职 05.人工智能相关岗位及职表 06.如何成为机器学习工程师 07.Google Researcher深度解析人工智能技术与市场需求 08.Al工程师...

    课程介绍:

    本套课程主要讲解人工智能面试常用的算法、所需要的技能、岗位的要求、高位的职责、市场需求、如何成为AI工程师。

    授课时长:

    71分钟

    课程目录:

    01.ai机器学习是什么?
    02.ai机器学习工程师做什么?
    03.ai机器学习工程师所需的技能
    04.ai机器学习工程师的求职
    05.人工智能相关岗位及职表
    06.如何成为机器学习工程师
    07.Google Researcher深度解析人工智能技术与市场需求
    08.Al工程师到底在做什么?进入这个行业,你要做好哪些准备?
    09.Al 强化学习从入门到精通
    10.带你成为Al工程师
    更多课程youkexuexi163邮箱

    展开全文
  • 大数据分析和机器学习是这一战略的核心。几乎每个行业的高管、数字架构师、IT管理员和通信运营人员都需要了解数据处理和人工智能的基础知识。   【课程亮点】  在本课程中,经验丰富的两位讲师提供了有效...
  • 以下内容是我听吴恩达深度学习微专业第一课的学习笔记,主要是按自己的理解回答一些问题,并非全部出自课程内容。1. 什么是神经网络?神经网络是诸多机器学习方法中的一种,受人类大脑工作方式的启发而发明的。...

    以下内容是我听吴恩达深度学习微专业第一课做的学习笔记,主要是按自己的理解回答一些问题,并非全部出自课程内容。

    1. 什么是神经网络?

    神经网络是诸多机器学习方法中的一种,受人类大脑工作方式的启发而发明的。人类大脑的一个神经元通过多个树突来接收来自不同神经元的信号,接着细胞核处理信号,然后通过同一个轴突输出信号,很多的神经元通过连接组成人类的大脑。在神经网络中,类比于单个神经元的是所谓的“操作”,它可以接收来自其他操作的输出,处理这些信息,并输出唯一的一个结果。很多的“操作”按照一定的方式组装形成神经网络。

    2. 什么是深度学习?

    深度学习是神经网络算法的一种,这里的“深度”指的是神经网络的层数较多,一般至少要包含1个隐含层。

    3. 深度学习为什么会在火起来?

    最主要的原因是深度学习的特性,在小数据量下,深度学习的优势不是很明显,而随着供给给深度学习算法的数据越来越多,其优势越发明显。而近来在三个方面的进展,可以总结为“ABC”,使得其优势发挥出来。这里的A就是指算法的进步,B指的是大数据,C指的是计算力。在算法方面,包括更好更深的网络架构,比如VGG16,ResNet等,更好的激活函数,比如线性整流函数Relu的使用,更多的正则化方法,比如随机失活Dropout等。在大数据方面,互联网和手机的普及,使得可用的数据急剧增大。在计算力方面,基于摩尔定律的CPU算力增长和GPU的广泛使用,使得计算力大幅增长。正是在这样的背景下,深度学习才能这么火。

    4. 什么是监督学习?

    监督学习是指从有标记的数据集中学习输入和输出之间关系的一类机器学习算法。

    5. 什么是逻辑回归?

    逻辑回归又叫二分类算法,是指输出只有0和1两种结果的算法。

    6. 逻辑回归的数学表达式推导?


    展开全文
  • 最近进公司实习培训,大概get了一下数据挖掘工程师的本职工作是什么:理解业务场景,根据业务抽取特征,建模预测。所以重点还是在于业务的理解与算法在什么场景下适用的,我将最近的工作了个总结。汇总了常见...

    最近进公司实习培训,大概是get了一下数据挖掘工程师的本职工作是什么:理解业务场景,根据业务抽取特征,建模预测。所以重点还是在于业务的理解与算法在什么场景下是适用的,我将最近的工作做了个总结。汇总了常见的机器学习算法适合使用的业务场景。

    主要参考了以下的文章,写的很好,我写的内容相当于这两个链接的汇总和一些添加吧:

    https://zhuanlan.zhihu.com/p/46831267

    https://www.zhihu.com/question/26726794

    部分常见机器学习算法适合使用的业务场景汇总

    1正则化算法

    正则化是一种降低过拟合风险的方法,本质是在模型训练的过程中,不一味的降低损失函数,追求偏差的降低,而是在损失函数中加入“正则化惩罚项”,常见的有L1、L2正则化惩罚项。惩罚项保证了模型方差与偏差之间的平衡,增加模型的方差,以确保模型的泛化性。

    适用场合:模型结构复杂,数据量少。

    缺点:增加欠拟合风险,难以校准(L1、L2正则化惩罚项的系数需要手动调节)。

    Ps.

    L0正则化的值是模型参数中非零参数的个数。

    L1正则化表示各个参数绝对值之和。L0与L1可以让特征参数变得稀疏,利于特征选择。(Lasso)

    L2正则化标识各个参数的平方和。L2让特征参数变得均匀。(Ridge)

    正则化惩罚项带来的附加作用就是让特征之间的相关性降低,L1是将类似的特征参数变得只剩一个,L2是将具有强相关性的两个特征的参数变的类似,从而模型的稳定性得到提升。

    2 集成学习(boosting+bagging+RF)

    集成学习是多个弱学习器组合成为一个强学习器的方法。一般弱学习器集成的方法有两种,一种是boosting,一种是bagging。

    Boosting中的弱学习器是通过串行的方式连接的,每个学习器都和其前一个学习器有依赖关系。比如Adaboost,用于二分类的集成学习算法,采用了重赋权的方式,每个基学习器的输入数据将根据其上一个学习器的预测结果来决定,预测错误的样本权值将被提高,预测正确的样本权值将被降低。最后将每个弱学习器的预测结果进行加权相加作为最后的输出结果。

    优点:Boosting更注重bias的降低,所以可以将泛化性弱的学习器组合成一个强学习器。

    缺点:稳定性不佳。

    Bagging中的弱学习器是通过并行的方式连接的,各个学习器之间没有依赖关系,采用有放回的采样得到每个弱学习器的样本集。最后结果是通过投票法、平均法、

    优点:Bagging更注重得到泛化性强的学习器。

    缺点:需要大量维护工作,Bagging的效果和参数的选择关系比较大,用默认参数往往没有很好的效果。

    而随机森林是bagging的一种升级,不仅每个决策树使用的数据集是抽样得到的,其中使用的样本特征也要通过抽样。由于每个树是独立的,并且有袋外数据(0.368),所以泛化性强。

    优点:不容易过拟合,默认参配置就能得到不错的效果。随机森林在现实分析中被大量使用,它相对于决策树,在准确性上有了很大的提升,同时一定程度上改善了决策树容易被攻击的特点。

    3决策树

    决策树是用树形结构来对问题进行层层剖析的算法,主要结构中有根节点、内部节点与叶节点。叶节点是决策结果,非叶节点是对某一种属性的测试。

    有三种较为著名的决策树:

    ID3决策树使用的分支划分策略是信息增益,该数值表示选择该属性对树进行分支后的系统纯度上升最高,数值越大表示纯度上升越大。该指标对于样本数量多的属性有偏好。

    C4.5使用的信息增益率,该指标对于样本数量少的属性有偏好。

    CART决策树使用的是基尼系数(gini_index),基尼系数是指从样本集中同时抽取两个样本,两个样本类型不同的概率。

    优点:易于解释,最后结果树可以看到。

    缺点:趋向过拟合,容易陷入局部最小值,没有在线学习。数据集有增量后决策树需要重建。

    实用场景:因为它能够生成清晰的基于特征(feature)选择不同预测结果的树状结构,数据分析师希望更好的理解手上的数据的时候往往可以使用决策树。同时它也是相对容易被攻击的分类器。这里的攻击是指人为的改变一些特征,使得分类器判断错误。常见于垃圾邮件躲避检测中。因为决策树最终在底层判断是基于单个条件的,攻击者往往只需要改变很少的特征就可以逃过监测。受限于它的简单性,决策树更大的用处是作为一些更有用的算法的基石。

    4 基于实例的算法

    典型的例子是KNN,它的思路是对于待判断的点,找到离它最近的几个数据点,根据它们的类型决定待判断点的类型,它的特点是完全跟着数据走,没有数学模型可言。

    适用情景:需要一个特别容易解释的模型的时候,比如需要向用户解释原因的推荐算法。

    5 贝叶斯算法

    典型的例子是朴素贝叶斯,核心思路是根据条件概率计算待判断点的类型。它是高偏差低方差的模型,因为它简单的假设了各个数据之间是无关的,是一个被严重简化了的模型。所以,对于这样一个简单模型,大部分场合都会Bias部分大于Variance部分,也就是说高偏差而低方差。

    优点:①速度快。朴素贝叶斯模型发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率。对大数量训练和查询时具有较高的速度。即使使用超大规模的训练集,针对每个项目通常也只会有相对较少的特征数,并且对项目的训练和分类也仅仅是特征概率的数学运算而已;对小规模的数据表现很好,能个处理多分类任务,适合增量式训练(即可以实时的对新增的样本进行训练);

    如果注有条件独立性假设(一个比较严格的条件),朴素贝叶斯分类器的收敛速度将快于判别模型,比如逻辑回归,所以你只需要较少的训练数据即可。即使NB条件独立假设不成立,NB分类器在实践中仍然表现的很出色。

    ②对缺失数据不太敏感,算法也比较简单,常用于文本分类;朴素贝叶斯对结果解释容易理解。

    缺点:需要计算先验概率;分类决策存在错误率;对输入数据的表达形式很敏感;由于使用了样本属性独立性的假设,所以如果样本属性有关联时其效果不好;

    朴素贝叶斯应用领域:目前还在垃圾邮件分类中被使用,欺诈检测,文本分析:文本分类。文本情感分析。

    6 回归算法  Logistic Regression(逻辑回归)+线性回归

    逻辑回归属于判别式模型,相当于把线性回归的结果通过softmax函数映射到了【0,1】区间。同时伴有很多模型正则化的方法(L0, L1,L2,etc),而且不必像在用朴素贝叶斯担心特征是否相关,并且使用在线梯度下降算法-online gradient descent可以轻松地利用新数据来更新模型。

    优点:实现简单,广泛的应用于工业问题上;分类时计算量非常小,速度很快,存储资源低;便利的观测样本概率分数;对逻辑回归而言,多重共线性并不是问题,它可以结合L2正则化来解决该问题;计算代价不高,易于理解和实现;

    缺点:当特征空间很大时,逻辑回归的性能不是很好;容易欠拟合,一般准确度不太高;不能很好地处理大量多类特征或变量;只能处理两分类问题(在此基础上衍生出来的softmax可以用于多分类,也可以使用一对多分类。),且必须线性可分;对于非线性特征,需要进行转换。

    logistic回归应用领域:用于二分类领域,可以得出概率值,适用于根据分类概率排名的领域,如搜索排名等。Logistic回归的扩展softmax可以应用于多分类领域,如手写字识别等。信用评估,测量市场营销的成功度,预测某个产品的收益,特定的某天是否会发生地震。如果你需要一个概率架构(比如,简单地调节分类阈值,指明不确定性,或者是要获得置信区间),或者你希望以后将更多的训练数据快速整合到模型中去,那么使用它吧。

    线性回归,优点: 实现简单,计算简单;缺点: 不能拟合非线性数据.

    7 SVM支持向量机

    原理参考:

    https://blog.csdn.net/weixin_41090915/article/details/79177267

    支持向量机,寻找空间中间隔最大的分割平面,该分割平面可以尽可能的分离不同类别的数据。而离这个分割平面边界最近的点就是支持向量。本质是求min||w||。

    优点:SVM具有高准确率,强泛化能力,因为过拟合的意思是训练结果跟着全体数据走,但是SVM只侧重于支持向量,无需依赖整个数据。可以解决小样本下机器学习问题;

    而且就算数据在原特征空间线性不可分,只要给个合适的核函数,它就能运行得很好。在动辄超高维的文本分类问题中特别受欢迎。能够处理非线性特征的相互作用。

    无局部极小值问题;(相对于神经网络等算法)

    缺点:

    内存消耗大,当观测样本很多时,效率并不是很高;

    对非线性问题没有通用解决方案,有时候很难找到一个合适的核函数;

    对于核函数的高维映射解释力不强,尤其是径向基函数。常规SVM只支持二分类;

    对缺失数据敏感;SVM运行和调参也有些烦人,而随机森林却刚好避开了这些缺点,比较实用。

    SVM应用领域:文本分类、图像识别(主要二分类领域,毕竟常规SVM只能解决二分类问题)

    7.1 SVM核函数

    主要参考:https://blog.csdn.net/v_JULY_v/article/details/7624837

    对于核的选择也是有技巧的(libsvm中自带了四种核函数:线性核、多项式核、RBF径向基函数、以及sigmoid核):

    第一,如果样本数量小于特征数,那么就没必要选择非线性核,简单的使用线性核就可以了;

    第二,如果样本数量大于特征数目,这时可以使用非线性核,将样本映射到更高维度,一般可以得到更好的结果;

    第三,如果样本数目和特征数目相等,该情况可以使用非线性核,原理和第二种一样。对于第一种情况,也可以先对数据进行降维,然后使用非线性核,这也是一种方法。

    8 降维算法

    无监督:PCA

    有监督:LDA 让同类的数据尽可能投射在一起,不同类的数据尽可能的分开。

    适用场景:线性问题

    缺点:非线性问题难以解决。不过可以使用基于核的PCA。

    9 神经网络

    优点:在语音、视觉、游戏任务中表现的极好,算法可以快速的调整。

    缺点:是需要大量的数据支持,内部黑箱状态,可解释性差。

    10 非均值算法

    原理:设定数据中k个中心,每次迭代都计算样本数据,就计算这个样本数据到这k个中心的距离,距离最短的为一类,然后通过均值法重新设定每一类数据的中心。聚类满足:同一聚类中的对象相似度较高,而不同聚类中的对象相似度较低。

    适用场合:聚类,K-means算法通常可以应用于维数、数值都很小且连续的数据集,比如:从随机分布的事物集合中将相同事物进行分组。

    应用场合汇总可参考此链接:https://blog.csdn.net/weixin_34357267/article/details/89754121

    展开全文
  • 什么这些解释信息有价值的 调试模型用 指导工程师做特征工程 指导数据采集的方向 指导人们决策 建立模型和人之间的信任 本文主要讲三种方法: 特征重要性(Feature Importance) Permutation Importance SHAP
  • 从本质上讲,机器学习的算法核心还是数学,人工智能的覆盖面更广泛一些,需要了解一些逻辑。 对于数据挖掘、人工智能、模式识别主要是高等数学(微积分、优化)、线性代数、概率与统计这三门是非常重要而且必要的...
  • 大数据方向的工作目前分为三个主要方向: 01.大数据工程师 ...很多初学者,对大数据的概念都模糊不清的,大数据什么,能做什么,学的时候,该按照什么线路去学习,学完往哪方面发展,想深入了解,想学...
  • 光环大数据 --大数据培训 &人工智能培训 AI 时代如何成为一名优秀的算法工程师 _光环大数据 1算法工程师是做什么的 广义上是指搞软件算法的 也就是开发和应用软件算法实现工业控制和程序 处理除了机器学习之外 还...
  • 其晋升之路,大致上分为五个层次:代码级、应用级、工程级、算法级、专家级,下面我就针对这五个层次,一些介绍,包括每个层次主要的内容是什么一个什么样的水平等。 阶段一:代码级 内容 Python语言及数据...
  • 主要的岗位有这些:Python全栈开发工程师(10k-20K)Python运维开发工程师(15k-20K)Python高级开发工程师(15k-30K)Python大数据工程师(15K-30K)Python机器学习工程师(15k-30K)Python架构师(20k-40k)Python 可以做什么...
  • 大数据方向的工作目前分为三个主要方向: 01.大数据工程师 ...很多初学者,对大数据的概念都模糊不清的,大数据什么,能做什么,学的时候,该按照什么线路去学习,学完往哪方面发展,想深入了解,想学...
  • 首先自我介绍,专业,专业课,排名,课题组(重点问了...问了常用的机器学习框架,各有什么特点,如何分类。 问了你如何理解深度学习。你认为深度学习中最重要的是什么? 然后就是喜闻乐见的手撕代码,15分钟手写...
  • 强化学习基础.rar

    2020-01-15 19:54:33
    并且这种联系可以产生大量关于因果,行为后果以及为了实现一个目标我们要做什么等信息。在我们的整个生活中,这种交互无疑我们了解环境和自己的主要知识来源。无论我们学习驾驶汽车还是进行对话,我们都非常...
  • 同时,人工智能的大风刮起,大数据、机器学习将前端的热度又降下去一些。那么,学前端到底有没有前途?下面蛋花花就来给大家分析一下。 学习web前端到底有没有“钱途”?蛋花花认为我们先要了解它是做什么的。Web...
  • 全文共2121字,预计学习时长8分钟图源:linkedin什么是数据工程师?过去,数据工程师只需知道基本的数据仓库、数据的提取转换加载(ETL)和...事实上,很多高级数据工程师主要是做软件或数据科学(DS)工作,需要...
  • 作为程序员,你肯定遇到过这样的领导: “别人还没走,你先走了不...而说到Python,它的主要就业方向其实就这几种:爬虫工程师、Web工程师,再深一些会选择做机器学习。这里就跟大家说说Python入门这点事儿! 积累项目
  • 渲染进程做什么? 它的开发主要涉及到两个进程的协作——Main(主)进程和Renderer(渲染)进程。简单的理解两个进程的作用: 1.Main进程主要通过Node.js、Chromium和Native APIs来实现一些系统以及底层的操作,...
  • 凤凰网实习生面试

    千次阅读 2017-03-20 23:48:41
    机器学习主要是决策树推到,面试官看的很仔细。 第二面是leader面试,上来就开始问L1和L2正则得区别,自然语言处理了解多少,SVM推到,奇异值分解,矩阵分解基于随机梯度和最小二乘的区别,什么时候用user-cf,什么...
  • 阿里(三面)(asir) 岗位:保险技术部的算法工程师-机器学习职位 ...4、相互交流,一定要把握住交流的机会,多问问将来要去的组是做什么的,业务是什么。 阿里(hr面)(asir) 岗位:保险技术...
  • 阿里实习 2017/5/4

    2017-05-05 01:31:20
    阿里实习 2017/5/4实习岗位是机器学习算法工程师高德地图部门,主要做路径规划,流量预测等。1面主要问了我的项目经历,让我详细介绍了我所研究的内容和使用的一些深度网络。具体的细节涉及到研究路线和策略,如何...
  • 蚂蚁金服面试凉经

    2019-04-03 22:30:47
    专业性的问题,主要是机器学习方面的,ROC计算公式,过拟合与欠拟合原因与解决办法,Relu优缺点,L1和L2正则化区别,优劣;归一化的方法,为什么进行归一化,归一化是必须的吗;正例和反例数目不一样时,如何;...

空空如也

空空如也

1 2 3 4
收藏数 73
精华内容 29
关键字:

机器学习工程师主要是做什么