引言:

最近开始学习“机器学习”,早就听说祖国宝岛的李宏毅老师的大名,一直没有时间看他的系列课程。今天听了一课,感觉非常棒,通俗易懂,而又能够抓住重点,中间还能加上一些很有趣的例子加深学生的印象。

视频链接(bilibili):李宏毅机器学习(2017)

另外已经有有心的同学做了速记并更新在github上:李宏毅机器学习笔记(LeeML-Notes)

所以,接下来我的笔记只记录一些我自己的总结和听课当时的困惑,如果有能够帮我解答的朋友也请多多指教。

1、人工智能、机器学习、深度学习的关系



人工智能是目标,机器学习是实现目标的手段,而深度学习是实现机器学习的方法之一。

人类想要创造“智能”,有两种方式:

  • hand crafted rules(人工编制的规则):需要大量的if then,是一种被摒弃的路线
  • 让机器可以自己学习:是课程探讨的方向



    Yann LeCun曾经在twitter上发过的一则漫画,讽刺的是很多外形酷炫的所谓AI,拆开看源码其实就是很多的hand crafted rules程序而已。这又不得不让人联想到以前有人说过,“用PPT写的往往不是人工智能,用python写的才是”。这么看来,用python写的也不保险啊。

2、机器学习做的是什么事情?



机器学习≈寻求一个函数(function)

这个函数可以在我们输入确定的数据,经过它以后,可以输出我们想要的结果。

3、机器如何学习?



如何找到上面提到的函数?以图像识别为例,想要找到合适的函数,需要先准备一系列的函数,这一系列的函数集被称为模型(Model)。模型里有的函数是我们需要的,比如上图中的f1,因为当你输入猫的图片,它可以给出正确的结果。而f2显然不是我们想要的函数。机器学习的目的就是要找出可以认出所有动物的最优函数f*。当在训练数据中,既给出了输入的数据(图片),又给出了我们想让机器输出的结果(动物的名称),这种机器学习被称为监督学习。在监督学习中给出的输出结果又被称为标签。

4、机器学习的步骤



机器学习的过程往往分为3大步(类似于将大象放进冰箱):

  • 定义一个函数集合,或者选择何种模型
  • 让机器可以衡量一个函数的好坏
  • 让机器可以挑出最好的函数

5、机器学习的学习路线



机器学习分为(按场景,越来越难):

  • 监督学习(按任务):

    1. 回归问题(regression):需要输出的是数字(scalar),比如预测明天PM2.5的数据
    2. 分类问题(classificasion):
      • 二元分类问题:需要输出的是“是”或“否”,比如垃圾邮件的判别
      • 多元分类问题:比如新闻内容的自动分类,属于财经、体育、政治……
    3. 结构化学习(structure learning):就像暗黑大陆,有很多我们还不了解的东西,比较有名的方法——生成对抗网络GAN
  • 半监督学习:少量有标签的数据,大量无标签数据
  • 迁移学习:除了有一些无标签的数据,还有大量与要做的工作无关的数据
  • 无监督学习:无标签的数据学习
  • 强化学习:需要通过评价来学习,learning from critics,比较符合人类学习的模式

其中分类问题可以用到的模型有:

  • 线性模型:最简单
  • 非线性模型:要主要花精力的地方,非线性模型里最耳熟能详的就是深度学习模型(又分为以下方法):
    1. 深度学习

      • 图像识别:吴恩达当年在google用深度学习让计算机识别出了猫
      • 围棋:AlphaGo,类似于一个19*19(围棋棋盘)的分类问题
    2. K-NN
    3. 决策树
    4. SVM(支持向量机)

李宏毅老师机器学习课程笔记_ML Lecture 0-1: Introduction of Machine Learning的更多相关文章

  1. 李宏毅老师机器学习课程笔记_ML Lecture 3-1: Gradient Descent

    引言: 这个系列的笔记是台大李宏毅老师机器学习的课程笔记 视频链接(bilibili):李宏毅机器学习(2017) 另外已经有有心的同学做了速记并更新在github上:李宏毅机器学习笔记(LeeML- ...

  2. 李宏毅老师机器学习课程笔记_ML Lecture 1: ML Lecture 1: Regression - Demo

    引言: 最近开始学习"机器学习",早就听说祖国宝岛的李宏毅老师的大名,一直没有时间看他的系列课程.今天听了一课,感觉非常棒,通俗易懂,而又能够抓住重点,中间还能加上一些很有趣的例子 ...

  3. 李宏毅老师机器学习课程笔记_ML Lecture 2: Where does the error come from?

    引言: 最近开始学习"机器学习",早就听说祖国宝岛的李宏毅老师的大名,一直没有时间看他的系列课程.今天听了一课,感觉非常棒,通俗易懂,而又能够抓住重点,中间还能加上一些很有趣的例子 ...

  4. 李宏毅老师机器学习课程笔记_ML Lecture 1: 回归案例研究

    引言: 最近开始学习"机器学习",早就听说祖国宝岛的李宏毅老师的大名,一直没有时间看他的系列课程.今天听了一课,感觉非常棒,通俗易懂,而又能够抓住重点,中间还能加上一些很有趣的例子 ...

  5. 李宏毅老师机器学习课程笔记_ML Lecture 0-2: Why we need to learn machine learning?

    引言: 最近开始学习"机器学习",早就听说祖国宝岛的李宏毅老师的大名,一直没有时间看他的系列课程.今天听了一课,感觉非常棒,通俗易懂,而又能够抓住重点,中间还能加上一些很有趣的例子 ...

  6. 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 10—Advice for applying machine learning 机器学习应用建议

    Lecture 10—Advice for applying machine learning 10.1 如何调试一个机器学习算法? 有多种方案: 1.获得更多训练数据:2.尝试更少特征:3.尝试更多 ...

  7. Andrew 机器学习课程笔记

    Andrew 机器学习课程笔记 完成 Andrew 的课程结束至今已有一段时间,课程介绍深入浅出,很好的解释了模型的基本原理以及应用.在我看来这是个很好的入门视频,他老人家现在又出了一门 deep l ...

  8. Andrew Ng机器学习课程笔记(四)之神经网络

    Andrew Ng机器学习课程笔记(四)之神经网络 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7365730.html 前言 ...

  9. 【读书笔记与思考】Andrew 机器学习课程笔记

    Andrew 机器学习课程笔记 完成 Andrew 的课程结束至今已有一段时间,课程介绍深入浅出,很好的解释了模型的基本原理以及应用.在我看来这是个很好的入门视频,他老人家现在又出了一门 deep l ...

随机推荐

  1. Golang: chan定义问题(7)

    通常都是定义读写双向的 chan,定义单向 chan 问题. 专栏的介绍可以参考 <GotchaGolang专栏>,代码可以看<宝库-Gotcha>. 通过 只写 chan 传 ...

  2. charles添加https支持

  3. 达拉草201771010105《面向对象程序设计(java)》第一周学习总结

    达拉草201771010105<面向对象程序设计(java)>第一周学习总结 第一部分:课程准备部分 填写课程学习 平台注册账号, 平台名称 注册账号 博客园:www.cnblogs.co ...

  4. Python第一周基本语句学习整理

    目录 Python第一周基本语句学习整理 一.字符串切割 二.体重单位转换 三.计算器的实现 四.猜年龄游戏 Python第一周基本语句学习整理 一.字符串切割 代码实现: s = 'luowenxi ...

  5. AWS EC2+Docker+JMeter构建分布式负载测试基础架构

    目录 概述及范围 前提条件 Part 1: Local setup-本地配置 Part 2: Cloud端基础架构--Infrastructure 总结: 原文链接 @ 概述及范围 本文介绍有关如何使 ...

  6. js变量提升、函数提升详解

    一.变量提升是指将变量声明提升到它所在作用域的最开始部分 console.log(a) // 为什么会出现以上的结果,是因为js的变量提升,将a变量的声明提升到全局作用域的最上面部分,实际代码如下: ...

  7. 零基础HTML及CSS编码总结

    任务目的 针对设计稿样式进行合理的HTML架构,包括以下但不限于: * 掌握常用HTML标签的含义.用法 能够基于设计稿来合理规划HTML文档结构 理解语义化,合理地使用HTML标签来构建页面 掌握基 ...

  8. js的变量——基本类型保存在栈中,引用类型保存在堆中

    javascript的基本类型:Undefined,Null,Boolean,Number,String 引用类型:Object,Array,Function 基本类型值在内存中占据固定大小,被保存在 ...

  9. GO系列 | 5分钟入门GO【译】

    什么是Google Go? Google Go是由Robert Griesmer,Rob Pike和Ken Thompson在Google设计的一种开源编程语言. Go在语法上类似于C语言: 除了内存 ...

  10. 2019-2020-2 20174313张博 《网络对抗技术》Exp1 PC平台逆向破解

    写在前面 ·实践目标 本次实践的对象是一个名为pwn1的linux可执行文件.该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串.该程序同时包含另一个代码片段——g ...