精华内容
下载资源
问答
  • 吴恩达机器学习笔记pdf格式,共分10学习课程,可以通过视频资源对照学习。 吴恩达机器学习笔记pdf格式,共分10学习课程,可以通过视频资源对照学习。
  • 吴恩达机器学习第三quiz小测验.pdf
  • 吴恩达机器学习第一quiz小测验.pdf
  • 吴恩达机器学习第四quiz小测验.pdf
  • 王德科—第一.
  • 基于机器学习方法对23太阳活动质子事件的研究.pdf
  • 神经网络遥感相关论文
  • 机器学习介绍

    2018-04-29 15:06:26
    机器学习模型介绍 流程处理 神经元模型 向量机 等等 计算机学习理论
  • 机器学习概论 An Introduction to Machine Learning 邓志鸿 北京大学信息科学技术学院 20132014学年第二学期 第一讲 内容 课程简介 机器学习简介 浅议机器学习 课程简介内容提要 教辅人员 参考资料 课程网站 课程...
  • 当 前 的 基 于 h c fl Z S G I ) 这 类 工 作 大 多 釆 用 固 定 期 和 步 长 的 策 略, 然 而一 个 随 着 迭 代 过程 进 行 而 不 断 自 适 应 变 化 的 期 或 步 长, 往往 具 有 更 好 的 性 能...
  • 斯坦福公开课machine learning机器学习第七SVM编程作业ex6
  • 机器学习在ArcGIS的应 提纲 个实例 GeoAI-数据 GeoAI-具 总结 引发交通事故的原因 道路向 道路类型 道数 道路宽度 路段类型 道路交叉 直道/ 拐弯 双向 / 单向 1,2,3. 20-30 M 速公路桥梁 字路, 环岛. 隧道. 时间 ...
  • 斯坦福大学 2014机器学习教程中文笔记 Machine Learning(机器学习 机器学习 )是研究计算机怎样模拟或实现人类的 学习行为,以获取新是研究计算机怎样模拟或实现人类的 学习行为,以获取新是研究计算机怎样模拟或实现...
  • 国家网络安全宣传聚焦新兴技术亚信安全童宁:机器学习驱动网络安全发展.pdf
  • 宝藏机器学习资料分享(超高质量pdf直接下载) 个人珍藏资料分享、入门机器学习的宝藏 整理不易,有帮助到的话请点赞支持哦~ 机器学习 《Python神经网络编程》 《机器学习》(西瓜书) 《机器学习》(西瓜书)手推笔记...

    宝藏机器学习资料分享(超高质量pdf直接下载)

    个人珍藏资料分享、入门机器学习的宝藏(点击超链接可直接下载哦)

    整理不易,有帮助到的话请点赞支持哦~

    机器学习

    《Python神经网络编程》

    神经网络是一种模拟人脑的神经网络,以期能够实现类人工智能的机器学习 技术。

    本书揭示神经网络背后的概念,并介绍如何通过Python实现神经网络。全书 分为3章和两个附录。第1章介绍了神经网络中所用到的数学思想。第2章介绍使 用Python实现神经网络,识别手写数字,并测试神经网络的性能。第3章带领读 者进一步了解简单的神经网络,观察已受训练的神经网络内部,尝试进一步改善 神经网络的性能,并加深对相关知识的理解。附录分别介绍了所需的微积分知识 和树莓派知识。

    本书适合想要从事神经网络研究和探索的读者学习参考, 也适合对人工智 能、机器学习和深度学习等相关领域感兴趣的读者阅读。

    《机器学习》(西瓜书)

    为什么这本 《机器学习》, 封面会有很多西瓜? 为什么要叫他西瓜书? 就因为封面是西瓜?
    因为所有的这些个基本术语的理解和后续一些问题的解释以及比喻, 周大大都是用西瓜来做比喻商! ! ! 通俗易懂! 恰到好处! 很有可能, 它会成为一本中国无数 Machine Learning热爱者的启蒙教材。

    周老师似乎在力求用轻松、简要而又能帮你将思维一层一层捋清楚, 从而搭建出关于这门学科的思维大楼的方式在写整本书。既适合于入门读者, 也适合于已有这门学科背 景但又想再一次如沐春风的进阶读者。

    之所以说它为启蒙教材, 是因为它非常合适没有任何背景的初学者看。每一个概念, 甚至每一个概念的来龙去脉都讲的非常清楚。

    《机器学习》(西瓜书)手推笔记完结16章全214页

    这个公式看起来很熟,却怎么也搞不懂怎么办?周志华《机器学习》西瓜书 手推笔记带你上路。

    《南瓜书》

    “周志华老师的《机器学习》(西瓜书)是机器学习领域的经典入门教材之一,周老师为了使尽可能多的读 者通过西瓜书对机器学习有所了解, 所以在书中对部分公式的推导细节没有详述,但是这对那些想深究公式推 导细节的读者来说可能“不太友好”,本书旨在对西瓜书里比较难理解的公式加以解析,以及对部分公式补充 具体的推导细节。”

    读到这里,大家可能会疑问为啥前面这段话加了引号,因为这只是我们最初的遐想,后来我们了解到,周 老师之所以省去这些推导细节的真实原因是,他本尊认为“理工科数学基础扎实点的大二下学生应该对西瓜书 中的推导细节无困难吧,要点在书里都有了,略去的细节应能脑补或做练习”。所以… 本南瓜书只能算是我 等数学渣渣在自学的时候记下来的笔记,希望能够帮助大家都成为一名合格的“理工科数学基础扎实点的大二下学生”。

    南瓜书的所有内容都是以西瓜书的内容为前置知识进行表述的,所以南瓜书的最佳使用方法是以西瓜书 为主线,遇到自己推导不出来或者看不懂的公式时再来查阅南瓜书;

    《百面机器学习算法工程师带你去面试》

    人工智能领域正在以超乎人们想象的速度发展,本书赶在人工智能彻底“占 领”世界之前完成编写,实属万幸。

    书中收录了超过100道机器学习算法工程师的面试题目和解答,其中大部分源 于Hulu算法研究岗位的真实场景。本书从日常工作、生活中各种有趣的现象出 发,不仅囊括了机器学习的基本知识,而且还包含了成为优秀算法工程师的相关 技能,更重要的是凝聚了笔者对人工智能领域的一颗热忱之心,旨在培养读者发 现问题、解决问题、扩展问题的能力,建立对机器学习的热爱,共绘人工智能世 界的宏伟蓝图。

    “不积跬步,无以至千里”,本书将从特征工程、模型评估、降维等经典机器 学习领域出发,构建一个算法工程师必备的知识体系;见神经网络、强化学习、 生成对抗网络等最新科研进展之微,知机器学习领域胜败兴衰之著;“博观而约 取,厚积而薄发”,在最后一章为读者展示生活中各种引领时代的人工智能应用。

    《吴恩达机器学习视频》个人笔记完整版.pdf

    Machine Learning(机器学习)是研究计算机怎样模拟或实现人类的学习行为,以获取新的

    知识或技能,重新组织已有的知识结构使之不断改善自身的性能。它是人工智能的核心,是 使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而 不是演绎。在过去的十年中,机器学习帮助我们自动驾驶汽车,有效的语音识别,有效的网 络搜索,并极大地提高了人类基因组的认识。机器学习是当今非常普遍,你可能会使用这一 天几十倍而不自知。很多研究者也认为这是最好的人工智能的取得方式。在本课中,您将学 习最有效的机器学习技术,并获得实践,让它们为自己的工作。更重要的是,你会不仅得到 理论基础的学习,而且获得那些需要快速和强大的应用技术解决问题的实用技术。最后,你 会学到一些硅谷利用机器学习和人工智能的最佳实践创新。

    本课程提供了一个广泛的介绍机器学习、数据挖掘、统计模式识别的课程。主题包括:

    (一)监督学习(参数/非参数算法,支持向量机,核函数,神经网络)。

    (二)无监督学习(聚类,降维,推荐系统,深入学习推荐)。

    (三)在机器学习的最佳实践(偏差/方差理论;在机器学习和人工智能创新过程)。 本课程还将使用大量的案例研究,您还将学习如何运用学习算法构建智能机器人(感知,控 制),文本的理解(Web 搜索,反垃圾邮件),计算机视觉,医疗信息,音频,数据挖掘, 和其他领域。

    本课程需要 10 周共 18 节课,相对以前的机器学习视频,这个视频更加清晰,而且每课 都有 ppt 课件,推荐学习。

    我和我的团队翻译了部分视频,目前已经翻译完毕,内嵌中英文字幕,推荐使用 potplayer。 此外,我无偿把字幕贡献给了网易云课堂,他们开了免费课:吴恩达机器学习。

    这篇中文笔记,主要是根据视频内容和中文字幕以及 ppt 来制作,部分来源于网络,如 “小小人_V”的笔记,并持续更新。

    本人水平有限,如有公式、算法错误,请及时指出,发邮件给我,也可以加我 qq。

    今日发现这个笔记被下载超过 10 万次,应该说这个笔记有点用,我发现以前一些翻译 小错误,进行了修改,以免误导初学者。

    黄海广

    《神经网络与深度学习》邱锡鹏

    本书的写作目的是使得读者能够掌握神经网络与深度学习技术的基本原理,知其然还要知其所以然.全书共 15 章.第1章是绪论,概要介绍人工智能、 机器学习和深度学习,使读者全面了解相关知识.第2、3章介绍机器学习的基础 知识.第4~6章分别讲述三种主要的神经网络模型:前馈神经网络、卷积神经网络 和循环神经网络.第7章介绍神经网络的优化与正则化方法.第8章介绍神经网络 中的注意力机制和外部记忆.第9章简要介绍一些无监督学习方法.第10章介绍 一些模型独立的机器学习方法:集成学习、自训练和协同训练、多任务学习、迁移 学习、终身学习、元学习等,这些都是目前深度学习的难点和热点问题.第11章介 绍概率图模型的基本概念,为后面的章节进行铺垫.第12章介绍两种早期的深度 学习模型:玻尔兹曼机和深度信念网络.第13章介绍最近两年发展十分迅速的深 度生成模型:变分自编码器和生成对抗网络.第14章介绍深度强化学习的知识.第15章介绍应用十分广泛的序列生成模型.书后还提供了相关数学分支的简要介绍,以供读者需要时参考.

    《神经网络与深度学习-3小时》邱锡鹏

    邱锡鹏教授的《神经网络与深度学习》一书较全面地介绍了神经网络、机器学习和深度学习的基本概念、模型和方法,同时也涉及深度学习中许多最新进展.此文档为对应的演示文稿.

    偏微分方程

    《非线性发展方程的有限差分法》

    《(2010)Numerical Methods in MATLAB》

    《Spectral and High-Order Methods with Applications》

    《Spectral Methods Algorithms, Analysis and Applications》

    本科教材

    《数学分析》[华东师大第四版]上册

    《数学分析》[华东师大第四版]下册

    《数学分析题解精粹》(钱吉林)

    《数学分析答案》

    《高等代数》北大第四版

    《初等数论》-闵嗣鹤-高等教育出版社

    展开全文
  • 2016中国人工智能大会(CCAI 2016),机器学习的明天论坛,北京大学信息科学技术学院机器感知与智能教育部重点实验室教授林宙辰的演讲PPT。报道:http://geek.csdn.net/news/detail/97844
  • 1. 走下神坛的机器学习我们马上就要进入20世纪的第3个十年啦,而人工智能和机器学习,也已经火了差不多有六七年的时间了。从Hinton团队在2012年的ImageNet大赛中用神经网络...

    1. 走下神坛的机器学习

    我们马上就要进入20世纪的第3个十年啦,而人工智能和机器学习,也已经火了差不多有六七年的时间了。

     

    从Hinton团队在2012年的ImageNet大赛中用神经网络模型一举夺魁开始,AI频频出圈。2014年吴恩达在Coursera 开了机器学习课,2015年周志华老师出了西瓜书,而2017年李彦宏把无人驾驶车开上了五环,AlphaGo打遍天下无敌手,波士顿动力机器人学会了后空翻,人工智能热到了极致。

     

     

    ——大家觉得,生活和信念正在被颠覆,崭新的时代即将来临。

     

    到了2020年,虽然人工智能和机器学习热度仍在,却没有什么“惊天地泣鬼神”的新东西出场,和前两年相比,机器学习在媒体中的热度降温了。

     

    那么,机器学习还香吗?内卷了吗?

    现在开始学机器学习,还来得及吗?

     

    先说一件事:

    也就是两、三年前吧,有天早上一小美女同事带着熬夜排到的iPhone进了公司。大家呼啦一下围上来。最开始屏幕是锁着的,然后小姐姐面带着微笑把电话往自己脸前一晃——好帅啊,手机解锁了!当时我们这些围观群众都惊呆了……心想这什么黑科技啊……

     

    这场景要是在今天重放一遍,大家会不会把我们全体人当傻子?—— 老土啊!不就是一人脸识别吗?这破技术早都烂大街了……

     

    我说这件事是什么意思呢?——现在技术落地的速度,实在是太快了。一种“黑科技”,从实验室里面走出来,从学术界到工业界,简直是零距离。

     

    事实上,机器学习开始真正吸引眼球,是从其分支深度学习的出现开始的。作为一种突破性的技术,深度学习把AI提升到了一个崭新的高度。新的飞跃的确尚未出现。但是机器学习和深度学习在数据分析、计算机视觉、自然语言处理、自动驾驶和机器人等场景中,具体的应用一个接一个的落地,层出不穷。因此,深度学习之后的主要发展,不全是技术的发展,而是实际应用场景的广泛拓展。

     

    因此,我的答案是机器学习并没有内卷,他正在走下神坛,从学术殿堂的象牙塔中逐渐落地,成为一种应用技术

     

    在未来的AI世界中,会存在两种人:

    ·        第一种是继续寻求AI创新的算法工程师、数据科学家,努力寻找更好的算法和新的技术突破;

    ·       第二种是机器学习的应用者,对他们而言,机器学习就像Java/C++、Excel/PPT一样,只是解决问题的一种手段。是像英文、驾车一样不得不会的工具。

     

    第二种人会比第一种人多很多,也一样会很有价值。

     

    也就是说,只要你从事与大数据、IT相关的工作,你可能就得多少学点机器学习的知识,多少会使用一些机器学习模型。——即使你的目标并不一定是成为机器学习和算法工程师。

     

    也许:

    • 你需要对未来的业务数据进行预测——可以应用回归和分类模型;

    • 你需要进行大数据的分析和处理——比如开发或优化推荐系统;

    • 你需要对非结构化的图片进行特征提取——比如为产品加入人脸识别功能;

    • 你需要通过强化学习训练智能体——比如训练更聪明的聊天机器人。

     

    下图是一些机器学习的种类和应用场景,大家可以看看(覆盖未必很全面,因为机器学习的应用领域发展太快)。

     

    机器学习的种类和应用场景

    2 为什么写这本书

    这本书,正是写给需要“懂”机器学习,并需要在工作中用到机器学习技能的人的。

     

    市面上,深奥的理论和细抠算法的资料太多。而如何从零基础开始,手把手教人“用”机器学习的教程太少。

     

    这就像一个人来到驾校想学车,而驾校的教练带他走进了造汽车的工厂,说:”来,小伙子,我们详细讲一讲你面前的这辆车是怎么造出来的。”

     

    ——这样不合适,顺序反了。

     

    应该是先学会开车,把车开好了,然后如果真有兴趣,再去了解车的内部结构。

     

    为什么我这么看中“开车”而不是“造车”?这和我的职业有关。

    我是技术顾问出身,年轻时出过几本很普通的SAP书(凡尔赛),后来一直给一家大客户做SAP系统实施和维护,生活像温水中的青蛙一样平静……

     

    突然有一天,大客户说,SAP License太贵了,我们准备停用了。上云。你们给找找云软件,替代掉SAP。

     

    从那天开始,我们这组人的生活就不再平静了。大家各显神通,也经历了各种培训,一段时间之后,都化身为了云计算、AWS、Azure和各种SaaS供应商的专家,为客户提供云解决方案。

     

    然而好景不长,客户成功上云之后,我们再次面临没事可做的窘境。

     

    新的增长点在何处呢?(打工人!总要恰饭)

     

    思考之后,我们有2个主要发现:

    • Workday、Salesforce这样的SaaS软件、AWS等云服务实在太好用了,让客户从繁琐的业务流程中逐渐解脱出来;

    • 客户开始把眼光投向他们手头所积累的数据,并希望我们能利用这些数据,为他们解决运营或者增长相关的高附加值问题,即产生洞见,优化运营。

     

    原来的客户抛给我们的第一个新项目,就是通过收集的详细用户信息,对用户进行画像,然后找出具有高欺诈风险的群体,他们将进行对其账户更严格监管。

     

    另一个客户给我们的挑战更大——他们是印尼一个较大的打印纸生产商,拥有上万公顷的树林,他们问题是每年需要派出大量的人力、物力,去深入森林勘察,侦测出今年哪个片区的森林已经成熟,值得砍伐。

     

    新项目一个接一个的来了。

     

    我们发现——这些“新”的“不同”类型的有趣项目,无不与数据相关,无不与“机器学习”相关

     

    如果你了解一些AI具体技术,你应该会知道第一个项目是一个典型的机器学习问题,而第二个项目,解决方案是使用无人机进行航拍,收集海量视频和图片数据,然后通过深度学习的方法发现图片中的颜色和模式,然后智能定位已经成熟或者发育不良的林区,对症下药。

     

    好了,从这时起,我们又摇身一遍,从“云计算”专家化身“机器学习”应用专家。

    ——其实,这个变身的过程,与我在《零基础学机器学习》书中所描述的故事大同小异。

     

    说了这么多,这些事情到底与这本书的创作有何关联呢?

     

    作为一个咨询顾问,我有自己的创作目的:就是从实际出发,强调“机器学习的应用过程”,想象着有一群像我一样的,具有一定IT背景的读者、学生,从0基础开始学起,该如何循序渐进,逐步深入,不多不少,恰到好处的给出其入门机器学习所最需要用到的知识?以节省它们的时间和精力呢?

     

    因此这本书就是我在机器学习项目实战过程中,所发掘到的对实际工作最有价值的内容记录,能够让“应用型”的你作为接触机器学习的良好起点。

     


    3 如何零基础入门

    那么,如何入门机器学习呢?

    这里总结一个较为轻松的入门路线,无论是否阅读《零基础学机器学习》,都可以参考一下。

     

    ①打消掉畏难情绪

    我第一个要打破的刻板印象就是——机器学习很难,里面有一大堆的算法。

     

    这主要是由于信息过载,初学者往往不知道从何开始,一开始一大堆新概念和算法上来头就晕。

     

    我太了解这种知识过载给人带来的焦虑和苦恼了。因为我本人也不是一个研究型的学习者,读论文可从来不是我的强项。

     

    大家首先可以放心,机器学习——真的不难!而且比起前端/后端、Java、C++、微服务和分布式系统开发等互联网技术相比,入门机器学习不仅不难,而且还是太简单了!

     

    我在《零基础学机器学习》中,特意设置了2个角色:

    咖哥引导小冰入门

     

    这本书用小冰的学习过程,串起了整本书的学习流程。初学者容易遇到的问题,小冰这个AI小白都会碰到,此时技术专家咖哥则从各种角度给以指导。

    有小伙伴一起,你也可以轻松而快速地入门机器学习!

     

    ②打牢入门基础

    在此基础上,增加机器学习必备的基础知识和实战构架,这是最最重要的内容

    请牢记,无论学习哪一领域,大家一定要在一开始就看到全貌,这样才能有的放矢。

      

    下图是机器学习上手就需要掌握的内容,学起来一点都不会累。只需要花费不到一周的时间,就能打牢入门基础。

    机器学习基础

    夯实这些机器学习领域的基础知识后,我们就可以上路了。

     

    ③从实战出发解决实际问题

    解决了“入门难”这个事儿之后呢,下一个着力点是“我们要用机器学习干什么?”

     

    学一样东西,如果没有看到学了之后具体有什么用,怎么使用,那简直是浪费时间。

    所以,如果想让自己的学习有结果,就要特别强调实战。

     

    实战案例的选择,需要具有实用性,比如银行客户流失率的预测、疾病风险评估、网站用户的聚类等等。大家可以在Kaggle网站上寻找数据集、训练机器,参加机器学习竞赛,只有解决了实际问题,才能明白机器学习是怎么一回事。

     

    对于我来说,一切抛开实际应用的理论都不是为入门阶段的读者所准备的,所以我在书中也准备了非常多的训练项目。

    此外,我还添加了一个小小的设计——

     

    一般的课程思路是这样的:

    • 讲解理论 →介绍工具→解决问题

     

    这本书的设计思路是这样的:

    • 提出问题→讲解理论→介绍工具→解决问题

     

    这一小小的设计,会让待解决的问题在整个学习过程中一直在我们的头脑中打转,也让我们的学习过程充满目的性。

     

    以结果为导向,是我在学习过程中所特别强调的。

     

    ④总结出一个实战套路反复演练

    重点来了,有了学习目标,还需要一个完善的、经过实证检验的套路,方便大家检验习得的技能。

     

    那么机器学习实战有没有套路?

     

    有套路,请看下图:

     

    这是在机器学习项目实践中总结出来的流程, 在书中所有具体机器学习项目实战章节中,全部套用同一个实战套路。

     

    具体包括:

    ·        线性回归,

    ·        逻辑回归,

    ·        深度学习,

    ·        卷积神经网络,

    ·        循环神经网络,

    ·        集成学习,

    ·        非监督学习,

    ·        生成式对抗网络,

    ·        强化学习等

     

    将各种各样的机器学习模型反复演练,强化上图中的套路,每强化一次,你就会觉得机器学习愈发简单,而且逐渐变得充满乐趣。

     

    下图就是《零基础学机器学习》为新手精心设计的入门路线。

     

     

    好了,说了这么多书的事儿,我们回到文初的问题上面:机器学习内卷了吗?

    ——机器学习当然没有内卷,机器学习只是正在被越来越多的人所了解,正在被越来越多的企业所应用,正在渗透进我们生活中的方方面面。这叫做落地,而不叫什么“内卷”。

     

    使用机器学习的技术,去解决工作和生活中具体的问题,在数据中提炼出价值,那是多酷的一件事情!

     

     推荐阅读

    《零基础学机器学习》

    本书的目标,是让非机器学习领域甚至非计算机专业出身但有学习需求的人,轻松地掌握机器学习的基本知识,从而拥有相关的实战能力。

    《零基础学机器学习》通过AI“小白”小冰拜师程序员咖哥学习机器学习的对话展开,内容轻松,实战性强,主要包括机器学习快速上手路径、数学和Python 基础知识、机器学习基础算法(线性回归和逻辑回归)、深度神经网络、卷积神经网络、循环神经网络、经典算法、集成学习、无监督和半监督等非监督学习类型、强化学习实战等内容,以及相关实战案例。本书所有案例均通过Python及Scikit-learn 机器学习库和Keras 深度学习框架实现,同时还包含丰富的数据分析和数据可视化内容。

    本书适合对AI 感兴趣的程序员、项目经理、在校大学生以及任何想以零基础学机器学习的人,用以入门机器学习领域,建立从理论到实战的知识通道。

    福利时间:

    截止到 2020 年 1 月 2 日晚上 10:00,文末留言,写下你的机器学习入门经验,纯刷留言的我不会将它们显示出来,显示出来的 5 名同学,而且点赞最多的,送出《零基础学机器学习》一本!

    小伙伴也可以直接通过点击“阅读原文”里的链接购买。

    展开全文
  • 张志华教授的两门机器学习公开课是很好的机器学习资源。但在上海交大的公开课视频网站上挂出的教学视频顺序有点乱。对于初学者来说,如果没看对顺序的话,会觉得讲得很乱,从而错过这么优质的资源。事实上板书很完整...
       张志华教授的两门机器学习公开课是很好的机器学习资源。但在上海交大的公开课视频网站上挂出的教学视频顺序有点乱。对于初学者来说,如果没看对顺序的话,会觉得讲得很乱,从而错过这么优质的资源。事实上板书很完整,有电子版讲义可下载。只是讲义上有个别地方有点笔误,但不影响理解。能用黑板直接推导的老师的逻辑和思路都是很清晰的!
    《机器学习导论》:http://ocw.sjtu.edu.cn/G2S/OCW/cn/CourseDetails.htm?Id=397
    课程讲义:http://share.weiyun.com/9b56eb04645174798ff938cdb22144bf
    01. 基本概念
    02. 随机向量
    03. 随机向量的性质
    04. 条件期望
    05. 多元高斯分布
    06. 分布的性质
    07. 多元高斯分布及其运用
    08. 多项式分布
    09. 渐进性质
    10. 核定义
    11. 正定核性质
    12. 正定核应用
    13. 主元分析
    14. 主坐标分析
    15.  核主元分析
    16. 概率PCA
    17. 最大似然估计方法
    18. 期望最大算法
    19. EM算法的收敛性
    20. MDS方法
    21. MDS中加点方法
    22. T矩阵范式
    23. 次导数
    24. 矩阵次导数
    25. Matrix_Completion
    26. K_means algorithm
    27. spectral clustering
    28. 谱聚类1
    29. 谱聚类2
    30. Fisher判别分析
    31. Fisher Discriminant Analysis
    32. computational Methods1
    33. computational Methods2
    34. Kernel FDA
    35. Linear classification1
    36. Linear classification2
    37. Naive Bayes 方法
    38. Support Vector Machinese1
    39. Support Vector Machinese2
    40. SVM 
    41. Boosting1
    42. Boosting2
     
    
    《统计机器学习》:http://ocw.sjtu.edu.cn/G2S/OCW/cn/CourseDetails.htm?Id=398 
    课程讲义:(周大神的个人网页http://bcmi.sjtu.edu.cn/log/courses/ml_2014_spring_acm.html 暂时无法打开,之前下载的打印后就删了,只能等过几天再补了)
    01. 概率基础
    02. 随机变量1
    03. 随机变量2
    04. 高斯分布
    05. 连续分布
    06. 例子
    07. scale mixture pisribarin
    08. jeffrey prior
    09. statistic interence
    10. Laplace 变换
    11. 多元分布定义
    12. 概率变换
    13. jacobian
    14. wedge production
    15. 统计量
    16. 多元正态分布
    17. Wishart 分布
    18. 矩阵元Beta分布
    19. 统计量 充分统计量
    20. 指数值分布
    21. 共轭先验性质
    22. Entropy
    23. KL distance
    24. properties
    25. 概率不等式1
    26. 概率不等式2
    27. 概率不等式1
    28. 概率不等式2
    29. 概率不等式3
    30. 概率不等式
    31. 随机投影
    32. John引理
    33. Stochastic Convergence-概念
    34. Stochastic Convergence-性质
    35. Stochastic Convergence-应用
    36. EM算法1
    37. EM算法
    38. EM算法3
    39. Markov Chain Monte carlo1
    40. Markov Chain Monte carlo2
    41. Bayesian Classification
     
    
     
    如果你觉得该帖子帮到你,还望贵人多多支持,鄙人会再接再厉,继续努力的~
    展开全文
  • 文章目录一、什么是机器学习二、机器学习的流程(一)数据收集(二)数据预处理(三)特征工程(四)模型构建和训练三、机器学习该如何学(一)AI时代首选Python(二)PyCharm可视化编辑器和Anaconda大礼包1、...


    在这里插入图片描述

    机器学习研究的是计算机怎样模拟人类的学习行为,以获取新的知识或技能,并重新组织已有的知识结构使之不断改善自身。机器学习就是计算机从数据中学习规律和模式,以应用在新数据上做预测的任务。伴随着机器学习的火热,人工智能在机器学习的推动下,快速发展,迅速席卷全球,为很多行业带来可信的深刻洞察以及充满希望的前景。

    一、什么是机器学习

    前几天我把自己最喜欢的电影《谍中谍6》又看了一遍,这部电影实在是太精彩了,可以称为“最好看的谍战片”,《碟中谍》系列电影的前5部系列在豆瓣上评分都是8分以上。每当我在豆瓣上打开这部电影,豆瓣都会推荐我可能喜欢的其他电影。这些推荐的电影还真符合我的“口味”,比如推荐的电影《生死时速》、《飓风营救》也是我喜欢看的。那么豆瓣是如何知道用户的喜好,这些推荐背后的秘密是什么呢?

    像豆瓣、淘宝、QQ音乐这些推荐系统,背后的秘密武器正是机器学习。下面我们用最通俗易懂的大白话来聊聊,到底什么是机器学习?

    机器学习有点像人类的思考过程,假设我们去买苹果,苹果是一种营养成分高的水果,国外谚语“每天一个苹果,医生远离我”。我们想挑又脆又甜的苹果,怎么挑呢?记得妈妈说过,苹果的表面要光滑,没有虫眼,没有干枯。所以我们有了一个简单的判断标准:只挑表面要光滑的。

    如果用计算机程序来帮我们挑选苹果,则可写下这样的规则:

    if (表面光滑)
    then    
        苹果是甜的
    else
        苹果不甜
    

    我们会用这些规则来挑选苹果。如果在我们的苹果实验中有了新的发现,比如在我们买回的苹果中有些是不好吃的,经过品尝各种不同类型的苹果,我们发现如果带着蒂的话那一定要选蒂比较绿的,枯黄的话就说明苹果已经不新鲜了。
    所以我们修改了规则:

    if(表面光滑 and 蒂比较绿):
        苹果是甜的
    else:    
        苹果不甜    
    

    我们会发现这个普通的计算机算法有个缺点,那就是:我们得搞清楚影响苹果甜度的所有因素的错综复杂的细节,比如又发现了自然熟透了的苹果都是黄里透红,苹果越重说明含水量越充足,等等。如果问题越来越复杂,我们就要针对所有的苹果类型建立规则,手动地制定挑选规则就变得非常困难。

    那如何解决克服这个缺点呢?机器学习算法可以解决这个问题。机器学习算法是由前面的普通算法演化而来的。通过自动地从提供的数据中学习,它会让我们的程序变得更“聪明”。

    我们从市场上的苹果里随机地抽取一定的样品(在机器学习里叫作训练数据),制作成下面的一张表格,上面记着每个苹果的物理属性,比如颜色、大小、产地等。(这些苹果的属性称之为特征)。还记录下这个苹果甜不甜(这叫作标签)。

    我们将这个训练数据提供给一个机器学习算法,然后它就会学习出一个关于苹果的特征和它是否甜之间关系的模型。下次我们再去市场买苹果,面对新的苹果(测试数据),然后将新的苹果输入这个训练好的模型,模型会直接输出这个苹果是甜的,还是不甜的。有了这个模型,我们现在可以满怀自信地去买苹果了,根本不用考虑那些挑选苹果的细节。只需要将苹果的物理属性输入这个模型,就直接可以知道苹果是不是甜的。

    更重要的是,我们可以让这个模型随着时间越变越好(增强学习),当这个模型读进更多的训练数据,它就会更加准确,并且在做了错误的预测之后进行自我修正。这还不是最棒的地方,最棒的地方在于,我们可以用同样的机器学习算法去训练不同的模型,比如我们可以使用同样的机器算法来预测橘子、西瓜的模型。这是常规计算机传统程序办不到的,这就是机器学习的专属优势。

    总结一下,机器学习是用机器学习算法来建立模型,当有新的数据过来时,可以通过模型来进行预测。机器学习最基本的做法,是使用算法来解析数据、从中学习,然后对真实世界中的事件做出决策和预测。与传统的为解决特定任务、硬编码的软件程序不同,机器学习是用大量的数据来“训练”,通过各种算法从数据中学习如何完成任务。


    机器学习过程:首先,我们需要在计算机中存储历史的数据。接着,我们将这些数据通过机器学习算法进行处理,这个过程在机器学习中叫做“训练”,处理的结果可以被我们用来对新的数据进行预测,这个结果一般称之为“模型”。对新数据的预测过程在机器学习中叫做“预测”。“训练”与“预测”是机器学习的两个过程,“模型”则是过程的中间输出结果,“训练”产生“模型”,“模型”指导“预测”

    让我们把机器学习的过程与人类对历史经验归纳的过程做个对比。
    在这里插入图片描述
    人类在成长、生活过程中积累了很多的历史与经验。人类定期地对这些经验进行“归纳”,获得了生活的“规律”。当人类遇到未知的问题或者需要对未来进行“推测”的时候,人类使用这些“规律”,对未知问题与未来进行“推测”,从而指导自己的生活和工作。

    机器学习中的“训练”与“预测”过程可以对应到人类的“归纳”和“推测”过程。通过这样的对应,我们可以发现,机器学习的思想并不复杂,仅仅是对人类在生活中学习成长的一个模拟。由于机器学习不是基于编程形成的结果,因此它的处理过程不是因果的逻辑,而是通过归纳思想得出的相关性结论。

    这也可以联想到人类为什么要学习历史,历史实际上是人类过往经验的总结。有句话说得很好,“历史往往不一样,但历史总是惊人的相似”。通过学习历史,我们从历史中归纳出人生与国家的规律,从而指导我们的下一步工作,这是具有莫大价值的。当代一些人忽视了历史的本来价值,而是把其作为一种宣扬功绩的手段,这其实是对历史真实价值的一种误用。

    ——摘自《从机器学习谈起》(https://www.cnblogs.com/subconscious/p/4107357.html


    二、机器学习的流程

    (一)数据收集

    中国古代的“神农尝百草”的故事其实就是机器学习的思想,机器学习不是基于推理的“演绎法”,而是基于观测的“归纳法”。因为它用的是归纳法,所以数据是基础。其实人们很早就意识到了数据的重要性,比如在贴吧里,会看到铺天盖地的“求数据”。AI需要见过各种类型和各种状态的实物图片才行,这就需要大量的基础数据。

    初始的人工智能软件就像初生的小婴儿一样,是一张白纸什么都不会,大家要教他认识周围的事物,告诉他鼻子是鼻子,鼻子是用来呼吸的;告诉他嘴巴是嘴巴,嘴巴是用来说话和吃东西的。AI也一样,我们需要向机器提供鼻子、嘴巴的图片,并将图片中的鼻子和嘴巴指出来,然后机器通过学习图片中鼻子和嘴巴的特征,并做好标注,机器就能够认知了。

    大家应该都使用过上下班考勤的指纹打卡机,我们使用打卡机的时候,会先输入员工的指纹,再设置此指纹对应的员工的名字或者编号,待机器确认后,往后的日子只要输入指纹机器就都可以识别了。这便是最简单的人工智能原理:先输入信息,然后机器识别信息,再做输出。

    机器学习的本质,一切都是量化的,而不是“抽象、模糊”的。原生的图片、文字等形式都是机器无法直接辨识的,都要先转化为数字、向量、矩阵。收集数据,再通过这些数据来训练人工智能模型。业界有一句非常著名的话:“数据决定了机器学习的上界,而模型和算法只是逼近这个上界。”由此可见,数据对于整个机器学习项目至关重要,有了优质数据的支持,人工智能才能更好地发展。

    (二)数据预处理

    在工程实践中,我们得到的数据会存在缺失值、重复值等,在使用之前需要进行数据预处理。数据预处理没有标准的流程,通常针对不同的任务和数据集属性的不同而不同。数据预处理的主要常用流程为:去除唯一属性、处理缺失值、特征编码、特征缩放。

    去除唯一属性是因为唯一属性通常是一些id属性,这些属性并不能刻画样本自身的分布规律,所以简单地删除这些属性即可。

    对于缺失值处理的方法,除了不处理直接使用含有缺失值的特征以及缺失值补全,也可以删除含有缺失值的特征(该方法在包含缺失值的属性含有大量缺失值并且仅仅包含极少量有效值时才是有效的)。

    特征编码是指特征必须是数值型才能统计计算,所以要对特征进行编码。比如性别特征[‘male’, ‘female’]等,模型不能直接识别的数据,处理的目的是将不能够定量处理的变量量化。

    为什么还要进行特征缩放?这是因为有些特征(属性)的值是有区间界限的,如年龄、体重。而有些特征的值是可以无限制增加的,所以特征与特征之间数值的差距会对模型产生不良影响(数量级的差异将导致量级较大的属性占据主导地位,依赖于样本距离的算法对于数据的数量级非常敏感)。如果没有对数据进行预处理的话有可能带来偏差,难以较好地反应特征之间的重要程度。通过归一化和标准化的手段将样本的属性缩放到某个指定的范围,消除样本不同属性具有不同量级时的影响。

    (三)特征工程

    特征工程也被称为特征提取,为了提取知识和做出预测,机器学习使用数学模型来拟合数据,这些模型将特征作为输入。特征就是原始数据某个方面的数值表示,在机器学习流程中,特征是数据和模型之间的纽带。

    特征工程是通过对原始数据的处理和加工,将原始数据属性通过处理转换为数据特征的过程。某种程度而言,好的数据以及特征往往是一个性能优秀模型的基础,它是机器学习流程中一个极其关键的环节,因为正确的特征可以减轻构建模型的难度,从而使机器学习流程输出更高质量的结果。机器学习从业者有一个共识,那就是建立机器学习流程的绝大部分时间都耗费在特征提取和数据预处理上。

    (四)模型构建和训练

    当我们处理好数据之后,就可以选择合适的机器学习模型进行数据的训练了。可供选择的机器学习模型有很多,每个模型都有自己的适用场景,那么如何选择合适的模型呢?

    首先我们要对处理好的数据进行分析判断,是考虑使用监督学习的模型,还是考虑使用无监督学习的模型。其次分析问题的类型是属于分类问题还是回归问题,当我们确定好问题的类型之后再去选择具体的模型。

    在模型的实际选择时,通常会考虑尝试不同的模型对数据进行训练,然后比较输出的结果,选择最佳的那个。此外,我们还会考虑到数据集的大小。若是数据集样本较少,训练的时间较短,通常考虑朴素贝叶斯等一些轻量级的算法,否则的话就要考虑一些重量级的算法。

    选好模型后是训练模型,训练模型意味着找到最合适的权重/参数,以便最大限度地分类(在分类问题中)或者预测与实际值之间的误差最小(在回归问题中)。

    在验证数据上测试你的模型,使用计算和用于训练数据的相同参数来验证验证数据。一旦你尝试了不同的模型、不同的特征和不同的精度参数,并满足自己的机器学习模型的质量要求,你的学习模型就可以用于实际数据了。

    三、机器学习该如何学

    (一)AI时代首选Python

    为何人工智能(AI)首选Python?读完这篇文章你就知道了。Python虽然是脚本语言,但是因为容易学,迅速成为了科学家的工具(MATLAB也能搞科学计算,但是软件要钱,而且很贵),从而积累了大量的工具库、架构。人工智能涉及大量的数据计算,用Python是非常自然,且简单高效。

    Python有非常多优秀的深度学习库可用,现在大部分深度学习框架都支持Python,不用Python用谁?人生苦短,就用Python吧。Python现在的确已经很火了,这已经是一个不需要争论的问题了。Facebook公司开源了PyTorch之后,Python作为AI时代头牌语言的位置基本确立了。

    你只要有一门编程语言基础,如C或VB,三天之内就能掌握了Python的使用技能。哪怕你是第一次接触编程语言,看看Python在线入门课程,花一周时间也会学得差不多了。因为Python比其他编程语言更加简单、易学,其面向对象特性甚至比Java、C#、.NET更加彻底。

    Python是一种解释型语言,这意味着Python可以节省大量的项目开发时间,因为开发者完全不需要任何类型的编译和连接。在Python中,开发者可以用交互方式来使用解释器,无须耗费大量的时间和精力,这才是程序员最想要的。毕竟,时间就是金钱。
    在这里插入图片描述

    当你掌握Python基本语法之后,需要再花一点时间去学习处理数据与操作数据的方法,熟悉一下Pandas、NumPy和Matplotlib这些工具包的使用方法。Pandas工具包可以处理数据帧,数据帧类似于Excel文件当中的信息表,有横行和纵列。这种数据就是所谓的结构化数据。NumPy工具包可以基于数据进行数值运算,机器学习可以把能想象到的一切事物转化为数字,再建立出这些数字中的模型。Matplotlib工具包可以制图,实现数据可视化。对读者来说,理解表格中的一堆数据可能很难,相信大家会更喜欢那种有线条贯穿始终的图表,实现数据可视化是交流成果的重要环节。

    非常重要的机器学习工具包scikit-learn已经成为机器学习领域当中最知名的Python模块了。scikit-learn简称sklearn,支持包括分类、回归、降维和聚类等机器学习算法,还包含了特征提取、数据处理和模型评估三大模块。sklearn涵盖了几乎所有主流机器学习算法的实现,它具有BSD许可证授权(BSD只要求你对软件原作者的工作进行必要的认可和尊重就行了,所以这是适合商业应用的),可以将项目应用于商业开发。

    sklearn官网网址http://scikit-learn.org/stable/index.html,里面讲解了基于sklearn对所有算法的实现和简单应用。在工程应用中,用Python手写代码来从头实现一个算法的可能性非常低,这样不仅耗时耗力,还不一定能够写出结构清晰、稳定性强的模型。更多情况下,是分析采集到的数据,根据数据特征选择适合的算法,在工具包中调用算法,调整算法的参数,获取需要的信息,从而实现算法效率和效果之间的平衡。而sklearn正是这样一个可以帮助我们高效实现算法应用的工具包。

    (二)PyCharm可视化编辑器和Anaconda大礼包

    “工欲善其事,必先利其器”,我更喜欢安装一些功能强大的Python软件来辅助我编写程序。就像在学习Java时,正常情况选择安装JDK,然后配置环境变量,用记事本编写程序,再到终端编译运行即可,而我一般选择安装JDK+Eclipse。将Python和Java进行类比的话,在Python中使用PyCharm或Anaconda好比是在Java中使用Eclipse。以下分别介绍PyCharm和Anaconda。

    1、PyCharm可视化编辑器

    PyCharm作为一款针对Python的编辑器,配置简单、功能强大、使用起来省时省心,对初学者友好。PyCharm官网提供免费的社区版与付费的专业版,个人学习Python使用免费的社区版已足够用了。安装过程照着提示一步步操作即可。
    ……
    总之,PyCharm是JetBrains打造的一款Python IDE(集成开发环境)。它具备调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制等功能。可以帮助程序员节约时间,提高生产效率。

    2、Anaconda大礼包

    Anaconda是一个基于Python的数据处理和科学计算平台,相当于一个“全家桶”。它已经内置了许多非常有用的第三方库。安装好Anaconda,就相当于把Python和一些如NumPy、Pandas、Scrip、Matplotlib等常用的库自动安装到位,使得安装比常规Python安装要容易。如果选择安装Python的话,那么还需要pip install逐个安装各种库,安装起来比较痛苦。

    可以选择“Anaconda Prompt”,打开一个命令行窗口,你可以输入“conda list”命令,可以查看目前已经安装的各种工具包库函数。如果需要额外安装一些其他的工具包,则可以使用“pip install”命令。如果在安装过程中报错,可以先尝试下载安装包,然后再进行安装。
    在这里插入图片描述
    还有一个好用的工具是Jupyter Notebook,Jupyter Notebook相当于在浏览器中完成编程任务,不仅可以写代码,做笔记,而且还可以得到每一步的执行结果。它是一个在浏览器中使用的交互式的笔记本,可以将代码、文字完美地结合起来。
    在这里插入图片描述

    (三)掌握算法原理与掌握机器学习软件库同等重要

    很多人会认为工具包已经很成熟了,是不是只要将相应的数据输入工具、框架中,用几行代码指定模型的类型和参数,就能自动计算出结果。既然如此,何必再去学习其中的原理,一步步推导呢?

    我的意见是机器学习的原理和数学推导一定要学!此处举个直观的例子:工具就像是武器,学会使用某种工具,只是学会了这种武器最基本的招式和套路。而理论学习即策略学习,决定了在未来真实对战中,遇到对手攻击时,你选取哪些招式套路,如何组合起来去迎敌。

    这里有两点建议:

    • 熟悉算法原理比实现算法重要:机器学习的本质是数学和统计学的结合,搞懂这些才是王道。我们知道一个模型可能有好多参数,不同参数的设置带来的模型效果可能截然不同,我们只有弄懂了理论原理,才能更好地指导我们选择合适的参数。如果你只是实现了算法,却没有让算法发挥最大的效果,那又有什么意义呢? 学习的过程是有些枯燥,本书强调机器学习极简入门,把枯燥的算法用通俗的白话演绎出来,同时又渗透高等数学知识,保持你对数据科学的兴趣和动力。
    • 熟悉掌握一个机器学习软件库:成熟的软件库一般包含了绝大多数的机器学习算法,并且在实现上使用了许多的数值计算优化技巧。为了实现自己的需求,我们不必从头实现算法,即使你实现了,你的计算效率也一定没有软件库实现的高,所以我们要熟练使用一个软件库。

    (四)机器学习与深度学习的区别

    机器学习是人工智能的一个重要的子集,深度学习又是机器学习的一个重要的子集,如下图所示。机器学习与深度学习都是需要大量数据来“喂”的,同时深度学习还需要更高的运算能力支撑,如GPU

    在这里插入图片描述
    在这里插入图片描述

    深度学习(Deep Learning,简称DL)属于机器学习的子类。它的灵感来源于人类大脑的工作方式,是用于建立、模拟人脑进行分析学习的神经网络,也是模仿人脑的机制来解释数据的一种机器学习技术。它的基本特点是试图模仿大脑的神经元之间传递、处理信息的模式。最显著的应用是计算机视觉和自然语言处理(NLP)领域。显然,“深度学习”与机器学习中的“神经网络”是强相关的,我们可以将“深度学习”称之为“改良版的神经网络”算法,可理解为包含多个隐藏层的神经网络结构。为了提高深层神经网络的训练效果,人们对神经元的连接方法以及激活函数等方面做出了调整。其目的在于建立、模拟人脑进行分析学习的神经网络,模仿人脑的机制来解释数据,如文本、图像、声音。

    神经网络的计算量非常大,事实上在很长时间里由于基础设施技术的限制进展并不大。而GPU的出现让人们看到了曙光,也造就了深度学习的蓬勃发展,“深度学习”才一下子火热起来。

    用机器学习的技术,开发算法来感知图像,例如识别图像是不是一个停止标志牌,但是它太容易受环境条件的干扰。如果遇到阴雨天,标志牌变得不是那么清晰可见,算法就难以成功了,但是随着时间的推移,学习算法的发展改变了一切。

    人工神经网络(Artificial Neural Network)是早期机器学习中的一个重要的算法,历经数十年风风雨雨。神经网络的原理是受我们大脑的生理结构—互相交叉相连的神经元启发。例如:我们可以把一幅图像切分成图像块,输入到神经网络的第一层。在第一层的每一个神经元都把数据传递到第二层。第二层的神经元也是完成类似的工作,把数据传递到第三层,以此类推,直到最后一层,然后生成结果。每一个神经元都为它的输入分配权重,这个权重的正确与否与其执行的任务直接相关。最终的输出由这些权重加总来决定。

    我们仍以识别停止(Stop)标志牌为例,用神经元进行“检查”,神经网络的任务就是给出结论,它到底是不是一个停止标志牌。神经网络会根据所有权重,给出一个经过深思熟虑的猜测。因为它还是很容易出错的。它最需要的就是几千、上万甚至几百万张图像来训练,直到神经元的输入的权值都被调制得十分精确,无论是否有雾,晴天还是雨天,每次都能得到正确的结果。只有这个时候,我们才可以说神经网络成功地自学习到一个停止标志。

    深度学习(Deep Learning)加入了“深度”(Deep)。这里的“深度”就是说神经网络中众多的层。层数非常多,神经元也非常多,然后给系统输入海量的数据来训练。现在,经过深度学习训练的图像识别,在一些场景中甚至可以比人做得更好:从识别猫,到识别血液中癌症的早期成分,到识别核磁共振成像中的肿瘤。Google的AlphaGo先是学会了如何下围棋,然后与自己下棋进行训练。它训练自己神经网络的方法,就是不断地与自己下棋,反复地下,永不停歇。

    机器学习和深度学习都是AI的具体技术实现,但两者区别明显。机器学习更是一种通用型的技术,包括决策树、贝叶斯、支持向量机等算法,也包括神经网络算法。而深度学习深耕神经网络,是深度神经网络算法技术,包括深度卷积网络、深度循环网络等。

    机器学习能够适应各种数据量,特别是数据量较小的场景。如果数据量迅速增加,那么深度学习的效果将更加突出,这是因为深度学习算法需要大量的数据才能完美理解。另外,深度学习算法需要高端GPU在大量数据的合理时间内进行训练。这些GPU非常昂贵,但是如果没有它们训练深层网络来实现高性能,这在实践上就不可行。高性能的GPU才能够实现快速计算,在建模上才能花更少时间来分析所有的图像。相对而言,传统的机器学习算法只需要一个CPU就可以训练得很好,而不需要最好的硬件

    四、机器学分类

    根据训练数据是否有标注,机器学习问题大致划分为监督学习(Supervised Learning)和无监督学习(UnsupervisedLearning)两大类。

    (一)监督学习

    在社会中,我们在很小的时候就被大人教授这是鸟啊,那是猪啊,这个是西瓜,那个南瓜,这个可以吃,那个不能吃啊之类的,我们眼里见到的这些景物和食物就是机器学习中的输入,大人们告诉我们的结果就是输出,久而久之,当我们见得多了,大人们说得多了,我们脑中就会形成一个抽象的模型,下次在没有大人提醒的时候看见别墅或者洋楼,我们也能辨别出来这是房子,不能吃,房子本身不能飞等信息。上学的时候,老师教认字、数学公式、英语单词等等,我们在下次碰到的时候,也能区分开并识别它们。这就是监督学习,它在我们生活中无处不在。每个输入样本都有标注,这些标注就像老师的标准答案一样“监督”着学习的过程。

    监督学习又大致分成两类:分类(Classification)和回归(Regression):

    • 分类问题:标注是离散值,比如用户“点击”和“不点击”。如果标注只有两个值,则称为二分类,如果标注有多个值,则称为多分类。

    • 回归问题:标注是连续值,比如如果问题是预测北京市房屋的价格,价格作为标注就是一个连续值,属于回归问题。

    假如你想预测一下现在的房价,这是一个数据集,横轴是房子的大小,纵轴是房价。例如你有一套100平方米的房子,你想知道能卖多少钱,那么机器学习算法怎么帮助你呢?它会根据数据集拟合出一个函数,让函数尽可能匹配到所有的数据。当你输入房子的大小,它就会返回给你一个目前市场上比较合理的价格。这是一个监督学习的例子,是一种回归(Regression)问题,意指要预测一个连续值的输出。例如上面的房价,给定房价的数据集,对于里面的每套房子大小数据,算法都知道其对应的正确房价。

    再看一个监督学习的例子,这是一个胸部肿瘤的数据集,横轴表示肿瘤的大小,纵轴表示肿瘤是否为良性的。假如有人非常不幸,胸部长了肿瘤,对应的机器学习算法就是,根据肿瘤的尺寸,估算出一个概率,即肿瘤为良性肿瘤的概率或者恶性肿瘤的概率。当然这是一个分类(Classification)问题。分类就是要预测一个离散值的输出,这里是0/1,也就是良性/恶性。

    总结一下,在有监督的学习中,我们得到一个训练数据集,监督学习的训练集要求包括输入输出,也可以说是特征和目标,训练集中的目标是由人标注的。数据集中的每个样本有相应的“正确答案”,即认为输入和输出之间有一个关系。我们从给定的训练数据集中学习出一个函数(模型参数),当新的数据到来时,可以根据这个函数预测结果。根据这些样本做出预测分成两类:回归问题和分类问题。回归问题举例,例如:预测房价,根据样本集拟合出一条连续曲线。分类问题举例,例如:根据肿瘤特征判断良性还是恶性,得到的是结果是“良性”或者“恶性”。

    (三)无监督学习

    我们事先没有任何训练数据样本,需要直接对数据进行建模。比如去参观一个画展,我们对艺术一无所知,但是欣赏完很多幅作品之后,我们面对一幅新的作品之后,至少可以知道这幅作品是什么流派的吧,比如更抽象一些还是更写实一点,虽然不能很清楚地了解这幅画的含义,但是至少我们可以把它分为哪一类。

    在无监督学习中,我们没有属性或者标注这个概念了。也就是所有的数据都是一样的,没有什么区别。所以在无监督学习中,我们只有一个数据集,没人告诉我们应该怎么做,我们也不知道每个数据点是什么意思。它只告诉你,这里是一个数据集,你能在其中找到某种结构或者规律吗?

    基于给出的数据集,无监督学习算法可以给出不同的聚类,这就是所谓的聚类算法。举个例子,给定一组不同的个体,对于每一个不同的个体,检测它们是否拥有某个特定的基因,然后我们运行一个聚类算法,把不同的个体归入不同的类,这就是无监督学习。因为没有提前告诉我们的算法,这种基因类型具体属于哪一类的人,我们只是告诉算法这里有一堆数据,我也不知道这些数据是什么,但是你要帮我自动找到这些数据中的类型。

    无监督学习使我们能够解决那些事先不知道结果的问题。训练样本没有标注,无监督学习解决的典型问题是聚类(Clustering)问题。虽然我们并不知道变量的影响,但是我们可以从数据中提取结构。我们可以根据数据中变量之间的关系对数据进行聚类,从而得出这种结构。比如对一个网站的用户进行聚类,看看这个网站用户的大致构成,分析一下每类用户群的特点是什么。

    总结一下,无监督学习就是:输入数据没有被标记,也没有确定的结果。样本数据类别未知,需要根据样本间的相似性对样本集进行分类(即聚类,Clustering),试图使类内差距最小化,类间差距最大化。在实际应用中,不少情况下无法预先知道样本的标签,也就是说没有训练样本对应的类别,因而只能从原先没有标注的样本集开始学习分类。

    (三)强化学习

    这里先解释一下强化学习这个名字。为什么叫强化学习呢?因为这个过程是不断重复、不断强化认知,英文ReinforcementLearning中的Reinforcement更准确的中文翻译就是“强化”。

    这里最关键的因素是三个:智能体(Agent)状态(State)奖励(Reward)。对于Agent来说,自身具备的选择决策的能力,叫作策略。这个策略意思就是,观测到了环境现在处于什么状态,而选择做出什么动作来。现在智能体处于一个很暗的环境之中,它并不知道这个环境里面到底是什么,我们希望它能够通过和环境打交道来适应这个环境,学会做什么动作才是最好的。这个智能体不是做一次决策就完成了学习的过程。实际上,它要做的是一个序列的决策。我们怎么评判智能体策略的好坏呢?评判的形式就是,它能拿到的奖励会有多大。每一步都可能有奖励,所以评判的形式是把总的奖励加起来看看它有多大。

    为了更好地认识强化学习,我们通过一个现实世界中与其类似的场景进行理解。如下图所示,使用强化学习来训练狗的一般过程。
    在这里插入图片描述
    在这种情况下,强化学习的目标是训练狗(Agent代理)在一个环境(Environment)中完成一项任务,这里的“环境”包括狗所处的物理环境和训练者。首先,驯兽师发出一条命令或指示,狗会观察(Observation),然后狗会做出反应。如果动作接近期望的行为,训练者可能会提供奖励(Reward),如食物或玩具,否则,将不提供任何奖励或提供负面奖励。在训练开始的时候,狗可能会做出更多的随机动作(Action),比如当命令是“坐下”时,它会翻身,因为它试图将特定的观察与动作和奖励联系起来。观察和动作之间的这种关联或映射称为策略(Policy)。

    从狗的角度来看,最理想的情况是它能对每一个提示做出正确的反应,这样它就能得到尽可能多的奖励。因此,强化学习训练的全部意义在于“调整”狗的策略,使它学习期望的行为,从而获得最大的回报。训练完成后,狗应该能够观察主人并采取适当的行动,例如,当命令它“坐下”时,它应该使用它“发展”出的内部策略来“坐下”。

    强化学习同样没有标签(Label),但是拥有回报函数(即奖励)来判断你是否更加接近目标。例如让学生搜寻某个正确答案,学生靠近正确答案,就进行奖励—比如给一个棒棒糖,如果更加偏离答案,就被扣一分,久而久之,学生会越来越靠近正确答案。

    五、过拟合和欠拟合

    无论在机器学习还是深度学习建模当中都可能会遇到两种最常见结果,一种叫过拟合(Over-fitting);另一种叫欠拟合(Under-fitting)。

    (一)过拟合

    1、为什么发生过拟合

    所谓过拟合(Over-fitting)其实就是所建的机器学习模型或者是深度学习模型在训练样本中表现得过于优越,导致在验证数据集以及测试数据集中表现不佳。过拟合就是学到了很多没必要的特征,比如长得像猫的狗,或者长得像狗的猫,其实这只是特例,但神经网络为了更好地降低损失(Loss),就只能被迫学习这些特征用来区分猫和狗。但是学习得太过了。举个例子:一个男人穿着蓝色的衣服,神经网络可能把是否穿蓝色衣服作为区分男人女人的特征,这就是过拟合。遇到了新样本,这些错误的特征就没有什么用了。所以过拟合就是表现为训练的时候效果很好(因为神经网络已经学到了很多有用没用的特征),但是在测试样本上的效果就很差(有的特征完全没用)。一般来说,如果训练数据集过小,特别是比模型参数数量更小时,过拟合更容易发生。

    2、降低“过拟合”的方法

    (1)增加训练数据

    举个例子,投硬币问题,如果你碰巧投了10次都是正面,那么你根据这个数据学习,是无法揭示真实规律的,根据统计学的大数定律(通俗地说,这个定理就是,在试验不变的条件下,重复试验多次,随机事件的频率近似于它的概率),当样本多了,这个真实规律是必然出现的。使用更多的训练数据是解决过拟合的最有效手段,因为更多的数据能让模型学习到更多的有效特征,减小噪声的影响。当然,直接增加实验数据一般是困难的,但是可以通过一定的规则来扩充训练数据。比如,在图像分类的问题上,可以通过图像的平移、旋转、缩放等方法来扩充数据;更进一步,可以使用生成式对抗网络(GAN)来合成大量的新数据。

    (2)降低模型复杂度

    在数据较少时,模型过于复杂是产生过拟合的主要因素,适当降低模型复杂度可以避免模型拟合过多的采样噪声。例如,在神经网络模型中减少网络层数、神经元个数等;在决策树模型中降低树的深度、进行剪枝等。

    (3)正则化的方法

    给模型的参数加上一定的正则约束。比如将权值的大小加入到损失函数中(损失函数用来评价模型的预测值和真实值不一样的程度。通常情况下,损失函数越好,模型的性能越好)。

    (二)欠拟合

    1、为什么发生欠拟合

    所谓欠拟合(Under-fitting)是什么意思呢?相对过拟合,欠拟合还是比较容易理解,可能训练样本被提取的特征比较少,导致训练出来的模型不能很好地匹配,甚至样本本身都无法高效地识别。训练的模型在训练集上表现很差,在验证集上表现也很差,其本质的原因是训练的模型太简单,最通用的特征模型都没有学习到。

    2、降低“欠拟合”的方法

    (1)添加新特征

    当特征不足或者现有特征与样本特征标签的相关性不强时,模型容易出现欠拟合。

    (2)增加模型复杂度

    简单的模型学习能力较差,通过增加模型的复杂度可以使模型拥有更强的拟合能力。例如在线性模型中添加高次项,在网络模型中增加网络层数或神经元个数。

    六、衡量机器学习模型的指标

    对于模型性能的好坏,我们并不知道这个模型很可能就是一个差的模型(对测试集不能很好地预测或分类)。那么如何知道这个模型是好是坏呢?我们必须有个评判的标准。为了进一步了解模型的能力,我们需要用某个指标来衡量,这就是性能度量的意义。有了一个指标,我们就可以对比不同模型了,从而知道哪个模型相对好,哪个模型相对差,并通过这个指标来进一步调参以逐步优化我们的模型。

    (一)正确率、精确率和召回率

    假设你有一台自动分类装置,可以自动检测、分类目标。为论述方便,我们就假设它是用来预测某种疾病的机器。这台机器需要用某种疾病的数据作为输入,输出只可能为两条信息之一:有病或者没有病。虽然机器的输出只有两种,但是其内部对疾病的概率估计是一个实数,比如说p。机器上还有一个旋钮用来控制灵敏度阈值a。因此预报过程是这样子:首先用数据计算出p,然后比较p和a的大小,p>a就输出有得病(检测结果为阳性),p<a就输出没有得病(检测结果为阴性)。

    如何评价这台机器的疾病预测性能呢?这里就要注意了,并不是每一次都能准确预报的机器就是好机器,因为它可以次次都预报有疾病(把a调得很低),自然不会漏掉,但是在绝大多数时候它都只是让大家虚惊一场,称为虚警;相反,从不产生虚警的机器也不一定就是好机器,因为它可以天天都预报没有得病(把a调得很高)——在绝大多数时间里这种预测显然是正确的,但也必然漏掉真正的病症,称为漏报。一台预测能力强的机器,应该同时具有低虚警和低漏报。精确率高意味着虚警少,能保证机器检测为阳性时,事件真正发生的概率高,但不能保证机器检测为阴性时,事件不发生。相反,召回率高意味着漏报少,能保证机器检测为阴性时,事件不发生的概率高,但不能保证机器检测结果为阳性时,事件就一定发生。

    先介绍几个常见的模型评价术语,现在假设我们的分类目标只有两类,正例(Positive)和负例(Negative)分别是:

    • True Positives(TP):被正确地划分为正例的个数,即实际为正例且被分类器划分为正例的实例数(样本数)。
    • False Positives(FP):被错误地划分为正例的个数,即实际为负例但被分类器划分为正例的实例数。
    • False Negatives(FN):被错误地划分为负例的个数,即实际为正例但被分类器划分为负例的实例数。
    • True Negatives(TN):被正确地划分为负例的个数,即实际为负例且被分类器划分为负例的实例数。

    用大白话说,真正例TP是指模型将正类别样本正确地预测为正类别,同样真负例TN是指模型将负类别样本正确地预测为负类别;假正例FP是指模型将负类别样本错误地预测为正类别,而假负例FN是指模型将正类别样本错误地预测为负类别。这四个术语的混淆矩阵,如下图所示。

    在这里插入图片描述
    正确率是我们最常见的评价指标,正确率(Accuracy)=(TP+TN)/(P+N),这个很容易理解,就是被分对的样本数除以所有的样本数。通常来说,正确率越高,分类器越好。
    错误率则与正确率相反,描述被分类器错分的比例,错误率(Error Rate)=(FP+FN)/(P+N)。对某一个实例来说,分对与分错是互斥事件。

    灵敏度(Sensitive)=TP/P,表示的是所有正例中被分对的比例,它衡量了分类器对正例的识别能力。

    特效度(Specificity)=TN/N,表示的是所有负例中被分对的比例,它衡量了分类器对负例的识别能力。

    精确率也叫精度(Precision),是针对我们预测结果而言的,表示被分为正例的示例中实际为正例的比例,那么预测为正就有两种可能了,一种就是把正类预测为正类(TP),另一种就是把负类预测为正类(FP),精度Precision=TP/(TP+FP)。

    召回率(Recall)是覆盖面的度量,度量有多个正例被分为正例。召回率也是针对我们原来的样本而言的,它表示的是样本中的正例有多少被预测正确了。那也有两种可能,一种是把原来的正类预测成正类(TP),另一种就是把原来的正类预测为负类(FN),召回率Recall=TP/(TP+FN)=TP/P=灵敏度Sensitive,可以看到召回率与灵敏度是一样的。

    举一个例子,假设儿童有5万例,识别成儿童的有4万例,识别成Other(其他)的有1万例;Other有10万例,识别成Other的有8万例,识别成儿童的有2万例。由于我们现在分析的是儿童的准确率和召回率,所以儿童是正类,Other是负类。下面分析一下儿童的准确率和召回率:

    • 检索到儿童,是儿童的数据并识别为儿童(即正类识别为正类),TP=4万。
    • 把Other识别成儿童(即负类识别为正类),FP=2万。
    • 未检索到儿童,是儿童却识别为Other(即正类识别为负类),FN=1万。
    • 把Other识别为Other(负类识别为负类,TN=8万)。

    精确率可以解释为,在所有判别为儿童的数据中是儿童的比例,精确度=TP/(TP+FP)=66.67%;召回率可解释为,在所有儿童相关的数据中,判别为儿童的比例,召回率=TP/(TP+FN)=80%。

    一般来说,我们不可能同时提高所有上面介绍的指标,比如人们希望精确率和召回率都高,最好都是100%,这样代表识别出来的样本确实都是正类别,且所有正类别都被识别出来了,但是现实中这两个指标往往是此消彼长的关系。提高精确率通常会降低召回率值,即使不从数学上去证明一下,从感觉上也能理解,因为这两个指标的目标刚好相反,一个要求尽可能精确,那么要抛弃掉难以决定的、把握不大的样本;而另一个指标要求尽可能识别出所有的正类别,那么就可能带入把握不大的样本。可以想象一下识别垃圾邮件,精确与识别全是难以两全的。

    根据实际应用场景,比如医院检测疾病的仪器是宁愿多虚警也要少漏报,因为没病的病人如果错误地检测出有病(虚警),可以通过后续更加仔细地检查进一步排除。比如网贷违约率,相对好用户,我们更关心坏用户,不能错放过任何一个坏用户。因为如果我们过多地将坏用户当成好用户,这样后续可能发生的违约金额会远超过好用户偿还的借贷利息金额,结果得不偿失。召回率越高,代表实际坏用户被预测出来的概率越高,它的含义类似“宁可错杀一千,绝不放过一个”。再比如地震预测,没有谁能准确预测地震的发生,但我们能容忍一定程度的误报,虽然谎报了几次地震,但真的地震来临时,我们没有错过,这样才是我们想要的。

    (二)F1 score和ROC曲线

    由于存在精确率和召回率两个指标,对于多个模型来说,这两个指标差不多的情况下难以判断哪个更好,于是出现了F1值。假如两个模型识别样本的精确率与召回率分别是:0.6 0.6与0.5 0.7,那么哪个更好呢?于是数学家又定义了一个指标去计算,名叫:Fscore,常见的是F1 score。

    1、F1 score

    F1 score是精确值和召回率的调和均值,它的公式如下图所示。
    在这里插入图片描述
    对于上面的两个例子,F1 score分别是:

    • precision=0.6 recall=0.6时,F1 score=0.60。
    • precision=0.5 recall=0.7时,F1 score=0.58。

    显然precision=0.6 recall=0.6的模型效果相对稍微好一点。

    2、ROC曲线

    ROC曲线起源于第二次世界大战时期雷达兵对雷达的信号判断。当时每一个雷达兵的任务就是去解析雷达的信号,但是当时的雷达技术还没有那么先进,存在很多噪声(比如一只大鸟飞过),所以每当有信号出现在雷达屏幕上,雷达兵就需要对其进行破译。有的雷达兵比较谨慎,凡是有信号过来,他都会倾向于解析成是敌军轰炸机,有的雷达兵又比较神经大条,会倾向于解析成是飞鸟。这个时候,雷达兵的上司就很头大了,他急需一套评估指标来帮助他汇总每一个雷达兵的预测信息,以及来评估这台雷达的可靠性。于是,最早的ROC曲线分析方法就诞生了,用来作为评估雷达可靠性的指标,在那之后,ROC曲线就被广泛运用于医学以及机器学习领域。

    ROC的全称是Receiver Operating Characteristic Curve,中文名字叫“受试者工作特征曲线”,顾名思义,其主要的分析方法就是画这条特征曲线,图样示例如下图所示。可以看到该曲线的横坐标为假阳性率(False Positive Rate,FPR),负例分错的概率=FP/(FP+TN),俗称假警报率。纵坐标为真阳性率(True Positive Rate,TPR),正例分对的概率=TP/(TP+FN),其实就是查全率(召回率Recall),预测对的正例数占真正的正例数的比率。
    在这里插入图片描述
    如果是随机分类(比如投掷硬币),没有进行任何学习器,FPR=TPR,即正例分对和负例分错概率相同,预测出来的正例负例和正例负例本身的分布是一致的,所以是一条45°的直线。因此,ROC曲线越向上远离这条45°直线,说明用了这个学习器在很小的代价(负例分错为正例,横轴)下达到了相对较大的查全率(TPR)。

    举一个简单的例子方便大家的理解,还是刚才雷达的例子。假设现在有10个雷达信号警报,其中8个是真的轰炸机(P是真实正样本的个数)来了,2个是老鹰(N是真实负样本的个数)飞过,经过某分析员解析雷达的信号,判断出9个信号是轰炸机,剩下1个是老鹰,其中被判定为轰炸机的信号中,有1个其实是老鹰的信号(FP=1,FP是N个负样本中被分类器预测为正样本的个数),而剩下8个确实是轰炸机信号(TP=8,TP是P个正样本中被分类器预测为正样本的个数)。因此可以计算出FPR为0.5,TPR为1,而(0.5,1)就对应ROC曲线上一点。对于敏锐的雷达系统来说,我们肯定希望它能把所有的敌方轰炸机来袭都感知到并预测出来,即TPR越高越好,但我们又不希望把飞过的老鹰也当成轰炸机来预警,即FRP越低越好。这两个坐标值其实蕴含了相互制约的一个概念。

    当绘制完成曲线后,就会对模型有一个定性的分析。ROC曲线的应用场景有很多,根据上述的定义,其最直观的应用就是能反映模型在选取不同阈值的时候其敏感性(Sensitivity,FPR)和其精确性(Specificity,TPR)的趋势走向。ROC曲线还有一个巨大的优势就是,当正负样本的分布发生变化时,其形状能够基本保持不变。

    七、补充阅读材料

    (一)机器学习的范围

    从范围上来说,机器学习跟模式识别,统计学习,数据挖掘是类似的,同时,机器学习与其他领域的处理技术的结合,形成了计算机视觉、语音识别、自然语言处理等交叉学科。因此,一般说数据挖掘时,可以等同于说机器学习。同时,我们平常所说的机器学习应用,应该是通用的,不仅仅局限在结构化数据,还有图像,音频等应用。对机器学习这些相关领域的介绍有助于我们理清机器学习的应用场景与研究范围,更好的理解后面的算法与应用层次。
    在这里插入图片描述

    1、模式识别

    模式识别 = 机器学习。两者的主要区别在于前者是从工业界发展起来的概念,后者则主要源自计算机学科。在著名的《Pattern Recognition And Machine Learning》这本书中,Christopher M. Bishop在开头是这样说的“模式识别源自工业界,而机器学习来自于计算机学科。不过,它们中的活动可以被视为同一个领域的两个方面,同时在过去的10年间,它们都有了长足的发展”。

    2、数据挖掘

    数据挖掘 = 机器学习 + 数据库。这几年数据挖掘的概念实在是太耳熟能详。几乎等同于炒作。但凡说数据挖掘都会吹嘘数据挖掘如何如何,例如从数据中挖出金子,以及将废弃的数据转化为价值等等。但是,我尽管可能会挖出金子,但我也可能挖的是“石头”啊。这个说法的意思是,数据挖掘仅仅是一种思考方式,告诉我们应该尝试从数据中挖掘出知识,但不是每个数据都能挖掘出金子的,所以不要神话它。一个系统绝对不会因为上了一个数据挖掘模块就变得无所不能(这是IBM最喜欢吹嘘的),恰恰相反,一个拥有数据挖掘思维的人员才是关键,而且他还必须对数据有深刻的认识,这样才可能从数据中导出模式指引业务的改善。大部分数据挖掘中的算法是机器学习的算法在数据库中的优化。

    3、统计学习

    统计学习近似等于机器学习。统计学习是个与机器学习高度重叠的学科。因为机器学习中的大多数方法来自统计学,甚至可以认为,统计学的发展促进机器学习的繁荣昌盛。例如著名的支持向量机算法,就是源自统计学科。但是在某种程度上两者是有分别的,这个分别在于:统计学习者重点关注的是统计模型的发展与优化,偏数学,而机器学习者更关注的是能够解决问题,偏实践,因此机器学习研究者会重点研究学习算法在计算机上执行的效率与准确性的提升。

    4、计算机视觉

    计算机视觉 = 图像处理 + 机器学习。图像处理技术用于将图像处理为适合进入机器学习模型中的输入,机器学习则负责从图像中识别出相关的模式。计算机视觉相关的应用非常的多,例如百度识图手写字符识别车牌识别等等应用。这个领域是应用前景非常火热的,同时也是研究的热门方向。随着机器学习的新领域深度学习的发展,大大促进了计算机图像识别的效果,因此未来计算机视觉界的发展前景不可估量。

    5、语音识别

    语音识别 = 语音处理 + 机器学习。语音识别就是音频处理技术与机器学习的结合。语音识别技术一般不会单独使用,一般会结合自然语言处理的相关技术。目前的相关应用有苹果的语音助手siri等。

    6、自然语言处理

    自然语言处理 = 文本处理 + 机器学习。自然语言处理技术主要是让机器理解人类的语言的一门领域。在自然语言处理技术中,大量使用了编译原理相关的技术,例如词法分析语法分析等等,除此之外,在理解这个层面,则使用了语义理解,机器学习等技术。作为唯一由人类自身创造的符号,自然语言处理一直是机器学习界不断研究的方向。按照百度机器学习专家余凯的说法“听与看,说白了就是阿猫和阿狗都会的,而只有语言才是人类独有的”。如何利用机器学习技术进行自然语言的的深度理解,一直是工业和学术界关注的焦点。

    可以看出机器学习在众多领域的外延和应用。机器学习技术的发展促使了很多智能领域的进步,改善着我们的生活。

    (二)机器学习的经典算法

    1、回归算法

    在大部分机器学习课程中,回归算法都是介绍的第一个算法。原因有两个:一.回归算法比较简单,介绍它可以让人平滑地从统计学迁移到机器学习中。二.回归算法是后面若干强大算法的基石,如果不理解回归算法,无法学习那些强大的算法。回归算法有两个重要的子类:即线性回归逻辑回归

    线性回归就是我们前面说过的房价求解问题。如何拟合出一条直线最佳匹配我所有的数据?一般使用“最小二乘法”来求解。“最小二乘法”的思想是这样的,假设我们拟合出的直线代表数据的真实值,而观测到的数据代表拥有误差的值。为了尽可能减小误差的影响,需要求解一条直线使所有误差的平方和最小。最小二乘法将最优问题转化为求函数极值问题。函数极值在数学上我们一般会采用求导数为0的方法。但这种做法并不适合计算机,可能求解不出来,也可能计算量太大。

    计算机科学界专门有一个学科叫“数值计算”,专门用来提升计算机进行各类计算时的准确性和效率问题。例如,著名的“梯度下降”以及“牛顿法”就是数值计算中的经典算法,也非常适合来处理求解函数极值的问题。梯度下降法是解决回归模型中最简单且有效的方法之一。从严格意义上来说,由于后文中的神经网络和推荐算法中都有线性回归的因子,因此梯度下降法在后面的算法实现中也有应用。

    逻辑回归是一种与线性回归非常类似的算法,但是,从本质上讲,线型回归处理的问题类型与逻辑回归不一致。线性回归处理的是数值问题,也就是最后预测出的结果是数字,例如房价。而逻辑回归属于分类算法,也就是说,逻辑回归预测结果是离散的分类,例如判断这封邮件是否是垃圾邮件,以及用户是否会点击此广告等等。

    实现方面的话,逻辑回归只是对对线性回归的计算结果加上了一个Sigmoid函数,将数值结果转化为了0到1之间的概率(Sigmoid函数的图像一般来说并不直观,你只需要理解对数值越大,函数越逼近1,数值越小,函数越逼近0),接着我们根据这个概率可以做预测,例如概率大于0.5,则这封邮件就是垃圾邮件,或者肿瘤是否是恶性的等等。从直观上来说,逻辑回归是画出了一条分类线,见下图。
    在这里插入图片描述
    假设我们有一组肿瘤患者的数据,这些患者的肿瘤中有些是良性的(图中的蓝色点),有些是恶性的(图中的红色点)。这里肿瘤的红蓝色可以被称作数据的“标签”。同时每个数据包括两个“特征”:患者的年龄与肿瘤的大小。我们将这两个特征与标签映射到这个二维空间上,形成了我上图的数据。

    当我有一个绿色的点时,我该判断这个肿瘤是恶性的还是良性的呢?根据红蓝点我们训练出了一个逻辑回归模型,也就是图中的分类线。这时,根据绿点出现在分类线的左侧,因此我们判断它的标签应该是红色,也就是说属于恶性肿瘤。

    逻辑回归算法划出的分类线基本都是线性的(也有划出非线性分类线的逻辑回归,不过那样的模型在处理数据量较大的时候效率会很低),这意味着当两类之间的界线不是线性时,逻辑回归的表达能力就不足。下面的两个算法是机器学习界最强大且重要的算法,都可以拟合出非线性的分类线。

    2、神经网络

    神经网络(也称之为人工神经网络,ANN)算法是80年代机器学习界非常流行的算法,不过在90年代中途衰落。现在,携着“深度学习”之势,神经网络重装归来,重新成为最强大的机器学习算法之一。

    神经网络的诞生起源于对大脑工作机理的研究。早期生物界学者们使用神经网络来模拟大脑。机器学习的学者们使用神经网络进行机器学习的实验,发现在视觉与语音的识别上效果都相当好。在BP算法(加速神经网络训练过程的数值算法)诞生以后,神经网络的发展进入了一个热潮。BP算法的发明人之一是机器学习大牛Geoffrey Hinton
    在这里插入图片描述
    具体说来,神经网络的学习机理是什么?简单来说,就是分解与整合。在著名的Hubel-Wiesel试验中,学者们研究猫的视觉分析机理是这样的。
    在这里插入图片描述
    比方说,一个正方形,分解为四个折线进入视觉处理的下一层中。四个神经元分别处理一个折线。每个折线再继续被分解为两条直线,每条直线再被分解为黑白两个面。于是,一个复杂的图像变成了大量的细节进入神经元,神经元处理以后再进行整合,最后得出了看到的是正方形的结论。这就是大脑视觉识别的机理,也是神经网络工作的机理。

    让我们看一个简单的神经网络的逻辑架构。在这个网络中,分成输入层隐藏层,和输出层。输入层负责接收信号,隐藏层负责对数据的分解与处理,最后的结果被整合到输出层。每层中的一个圆代表一个处理单元,可以认为是模拟了一个神经元,若干个处理单元组成了一个层,若干个层再组成了一个网络,也就是"神经网络"。
    在这里插入图片描述
    在神经网络中,每个处理单元事实上就是一个逻辑回归模型,逻辑回归模型接收上层的输入,把模型的预测结果作为输出传输到下一个层次。通过这样的过程,神经网络可以完成非常复杂的非线性分类。

    下图会演示神经网络在图像识别领域的一个著名应用,这个程序叫做LeNet,是一个基于多个隐层构建的神经网络。通过LeNet可以识别多种手写数字,并且达到很高的识别精度与拥有较好的鲁棒性。
    在这里插入图片描述
    右下方的方形中显示的是输入计算机的图像,方形上方的红色字样“answer”后面显示的是计算机的输出。左边的三条竖直的图像列显示的是神经网络中三个隐藏层的输出,可以看出,随着层次的不断深入,越深的层次处理的细节越低,例如层3基本处理的都已经是线的细节了。LeNet的发明人就是机器学习的大牛Yann LeCun
    在这里插入图片描述
    进入90年代,神经网络的发展进入了一个瓶颈期。其主要原因是尽管有BP算法的加速,神经网络的训练过程仍然很困难。因此90年代后期支持向量机(SVM - Support Vector Machine)算法取代了神经网络的地位。

    3、SVM(支持向量机)

    支持向量机算法是诞生于统计学习界,同时在机器学习界大放光彩的经典算法。

    支持向量机算法从某种意义上来说是逻辑回归算法的强化:通过给予逻辑回归算法更严格的优化条件,支持向量机算法可以获得比逻辑回归更好的分类界线。但是如果没有某类函数技术,则支持向量机算法最多算是一种更好的线性分类技术。

    但是,通过跟高斯“核”的结合,支持向量机可以表达出非常复杂的分类界线,从而达成很好的的分类效果。“核”事实上就是一种特殊的函数,最典型的特征就是可以将低维的空间映射到高维的空间。

    例如下图所示:
    在这里插入图片描述
    我们如何在二维平面划分出一个圆形的分类界线?在二维平面可能会很困难,但是通过“核”可以将二维空间映射到三维空间,然后使用一个线性平面就可以达成类似效果。也就是说,二维平面划分出的非线性分类界线可以等价于三维平面的线性分类界线。于是,我们可以通过在三维空间中进行简单的线性划分就可以达到在二维平面中的非线性划分效果。
    在这里插入图片描述
    支持向量机是一种数学成分很浓的机器学习算法(相对的,神经网络则有生物科学成分)。在算法的核心步骤中,有一步证明,即将数据从低维映射到高维不会带来最后计算复杂性的提升。于是,通过支持向量机算法,既可以保持计算效率,又可以获得非常好的分类效果。因此支持向量机在90年代后期一直占据着机器学习中最核心的地位,基本取代了神经网络算法。直到现在神经网络借着深度学习重新兴起,两者之间才又发生了微妙的平衡转变。

    4、聚类算法

    前面的算法中的一个显著特征就是我的训练数据中包含了标签,训练出的模型可以对其他未知数据预测标签。在下面的算法中,训练数据都是不含标签的,而算法的目的则是通过训练,推测出这些数据的标签。这类算法有一个统称,即无监督算法(前面有标签的数据的算法则是有监督算法)。无监督算法中最典型的代表就是聚类算法。

    让我们还是拿一个二维的数据来说,某一个数据包含两个特征。我希望通过聚类算法,给他们中不同的种类打上标签,我该怎么做呢?简单来说,聚类算法就是计算种群中的距离,根据距离的远近将数据划分为多个族群。

    聚类算法中最典型的代表就是K-Means算法。

    5、降维算法

    降维算法也是一种无监督学习算法,其主要特征是将数据从高维降低到低维层次。在这里,维度其实表示的是数据的特征量的大小,例如,房价包含房子的长、宽、面积与房间数量四个特征,也就是维度为4维的数据。可以看出来,长与宽事实上与面积表示的信息重叠了,例如面积=长 × 宽。通过降维算法我们就可以去除冗余信息,将特征减少为面积与房间数量两个特征,即从4维的数据压缩到2维。于是我们将数据从高维降低到低维,不仅利于表示,同时在计算上也能带来加速。

    刚才说的降维过程中减少的维度属于肉眼可视的层次,同时压缩也不会带来信息的损失(因为信息冗余了)。如果肉眼不可视,或者没有冗余的特征,降维算法也能工作,不过这样会带来一些信息的损失。但是,降维算法可以从数学上证明,从高维压缩到的低维中最大程度地保留了数据的信息。因此,使用降维算法仍然有很多的好处。

    降维算法的主要作用是压缩数据与提升机器学习其他算法的效率。通过降维算法,可以将具有几千个特征的数据压缩至若干个特征。另外,降维算法的另一个好处是数据的可视化,例如将5维的数据压缩至2维,然后可以用二维平面来可视。降维算法的主要代表是PCA算法(即主成分分析算法)。

    6、推荐算法

    推荐算法是目前业界非常火的一种算法,在电商界,如亚马逊,天猫,京东等得到了广泛的运用。推荐算法的主要特征就是可以自动向用户推荐他们最感兴趣的东西,从而增加购买率,提升效益。推荐算法有两个主要的类别:

    一类是基于物品内容的推荐,是将与用户购买的内容近似的物品推荐给用户,这样的前提是每个物品都得有若干个标签,因此才可以找出与用户购买物品类似的物品,这样推荐的好处是关联程度较大,但是由于每个物品都需要贴标签,因此工作量较大。

    另一类是基于用户相似度的推荐,则是将与目标用户兴趣相同的其他用户购买的东西推荐给目标用户,例如小A历史上买了物品B和C,经过算法分析,发现另一个与小A近似的用户小D购买了物品E,于是将物品E推荐给小A。

    两类推荐都有各自的优缺点,在一般的电商应用中,一般是两类混合使用。推荐算法中最有名的算法就是协同过滤算法。

    7、其它算法

    除了以上算法之外,机器学习界还有其他的如高斯判别,朴素贝叶斯,决策树等等算法。但是上面列的六个算法是使用最多,影响最广,种类最全的典型。机器学习界的一个特色就是算法众多,发展百花齐放。


    下面做一个总结,按照训练的数据有无标签,可以将上面算法分为监督学习算法和无监督学习算法,但推荐算法较为特殊,既不属于监督学习,也不属于非监督学习,是单独的一类。

    监督学习算法: 线性回归,逻辑回归,神经网络,SVM

    无监督学习算法: 聚类算法,降维算法

    特殊算法: 推荐算法

    除了这些算法以外,有一些算法的名字在机器学习领域中也经常出现。但他们本身并不算是一个机器学习算法,而是为了解决某个子问题而诞生的。你可以理解他们为以上算法的子算法,用于大幅度提高训练过程。其中的代表有:梯度下降法,主要运用在线型回归,逻辑回归,神经网络,推荐算法中;牛顿法,主要运用在线型回归中;BP算法,主要运用在神经网络中;SMO算法,主要运用在SVM中。

    展开全文
  • 机器算法学习书 肿瘤机器学习算法介绍 pdf
  • 集成学习——机器学习(周志华)

    千次阅读 2018-11-01 15:44:43
    集成学习 目录: 个体和集成 Boosting Bagging与随机森林 Bagging 随机森林 综合策略 平均法 投票法 学习法 多样性 误差-分歧分解 多样性度量 多样性增强 内容: 个体和集成 Boosting Bagging与随机森林...
  • 最近在读《机器学习理论导引》。这本书是西瓜书的作者周志华老师领衔、南大LAMDA四位教授共同撰写的新书,权威就自不必说。封面画了一只充满了阿里巴巴和四十大盗风格的木箱子,一看就是童话故事...
  • Application Example: Photo OCR 这是我在coursera上看Andrew Ng的machine learning做的英文版笔记,可以帮助学英语的小伙伴熟悉熟悉一些...想看PDF版本的笔记的话,可以去我的github中下载。谢谢大家的支持 ...
  • 基于机器学习的智能终端用户行为分析研究,勇帆,唐碧华,移动智能终端的网络数据流量特性在某种程度上可以反映用户的网络访问行为,进而能够体现用户自身的特征。在研究传统网络流量分类
  • Andrew-Ng-ML 吴恩达机器学习 编程作业;If you are using Octave (>=3.8.0), or have an existing installation of MATLAB (), download this week’s programming assignment here. This ZIP-file contains the ...
  • 每天都会收到一些小伙伴的私信问我:机器学习如何入门?这个问题我觉得目前没有明确的答案。刚好看好黄博的这篇文章,从中看到了自己想表达奈何文笔有限表达不出的意思。在此分享给大家。本篇文章不仅告...
  • 今天,我把吴恩达机器学习和深度学习课程笔记都更新了,并提供下载,这两本笔记非常适合机器学习和深度学习入门。(作者:黄海广)0.导语我和同学将吴恩达老师机器学习和深度学习课程笔记做成了打印...
  • 机器学习/深度学习并不需要很多数学基础!”也许你在不同的地方听过不少类似这样的说法。对于鼓励数学基础不好的同学入坑机器学习来说,这句话是挺不错的。不过,机器学习理论是与统计学、概率论、计算机科学、...
  • Python 机器学习经典实例

    万次阅读 多人点赞 2018-04-12 10:44:15
    本书首先通过实用的案例介绍机器学习的基础知识,然后介绍一些稍微复杂的机器学习算法,例如支持向量机、极端随机森林、隐马尔可夫模型、条件随机场、深度神经网络,等等。 用最火的 Python 语言、通过各种各样的...
  • 这是为朋友社群准备的一篇机器学习入门指南,分享了我机器学习之路看过的一些书、教程、视频,还有学习经验和建议,希望能对大家的学习有所帮助。pdf版思维导图,后台回复:指南Python——书之...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,469
精华内容 2,187
关键字:

机器学习周pdf