引言:

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

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

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

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

1、回归问题的应用



回归问题因为主要输出的是数字,所以可以有以下应用:

  • 股票市场预测:输入历史股票数据,预测第二天大盘点位
  • 自动驾驶:输出的是方向盘应该转动的角度
  • 推荐系统:输出购买者购买某商品或阅读某文章的可能性

2、解决回归问题需要了解的一些概念



以宝可梦训练后的CP值(战斗力数值)预测为例,y=b+wxcp这组线性函数就是模型(model),xi 是特征(feature),wi 是权重(weight),b是偏差(bias)

3、宝可梦cp预测项目的分析步骤

  • 根据数据选择模型:选择线性模型
  • 评估模型中函数的好坏:根据10只宝可梦的训练数据计算出估测误差loss function(如图3)
  • 选出最好的函数:即第二步中可以使得loss function中数值最小的函数。这里李老师推荐方法为gradient descent(梯度下降法),因为它是一种对可微函数取最小值的通用解决方案。



4、Gradient descent(梯度下降法)



以比较简单的损失函数为例(如图5),梯度下降法就是对该函数的x坐标求导,即曲线在该点的斜率,如果斜率为负,需要向右加载,反之亦然,知道斜率为零,找到极小值或局部最优解(Local optimal)。每次加载的距离被称为步长或学习率。

5、梯度下降法最害怕的事情

如图6左侧,如果损失函数像左侧那样,那么梯度下降法能不能找到全局的最优解就是考验“人品”的事情,但幸运的是,对于线性回归问题,它的损失函数都是凸函数(convex),也就是不会出现像图5或图6左侧那种情况,它只有最小值,没有局部的极小值。

6、如何让损失值降到最小?

损失函数取值最小,很多人第一感觉就是增加函数的复杂度。图7到图10分别是二元至五元方程的模型,但可以看出虽然在训练集上损失值变得较小,但测试集上却没有这种趋势,甚至五元方程的模型还表现出了很荒谬的结果。

7、过拟合

上面出现那种荒谬结果的现象被称为过拟合。

8、导入更多数据后结果如何?

导入更多数据后发现,很多宝可梦的点并没有落在预测的模型函数曲线上,推测在起初建模的时候忽略了一些重要的特征(feature),当不同类型的宝可梦训练的时候,成长曲线是不同的。

增加特征以后如何构建线性模型?见图14。

9、如何防止过拟合?



需要重新定义损失函数,有一种方法叫正则化。

因为过拟合往往是因为原有模型空间过大,而正则化就是一种控制模型空间的方法。

李宏毅老师机器学习课程笔记_ML Lecture 1: 回归案例研究的更多相关文章

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

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

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

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

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

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

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

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

  5. 李宏毅老师机器学习课程笔记_ML Lecture 0-1: Introduction of Machine Learning

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

  6. Andrew Ng机器学习课程笔记--week3(逻辑回归&正则化参数)

    Logistic Regression 一.内容概要 Classification and Representation Classification Hypothesis Representatio ...

  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. android应用程序源码结构分析

    工程; 1. src文件夹存放源码. 2. gen下有跟src中一样的包文件,内部有一个名为R.java类,它是自动生成的一个类:该目录不用我们开发人员维护, 但又非常重要的目录 . 该目录用来存放由 ...

  2. <pre>标签的使用

    做做笔记.碰见了一个网站,显示代码的时候自带语法高亮,这很新鲜.它的代码被pre标签包裹,原本以为pre标签下的所有的内容会以文本原来的样式输出,特意查了查发现它依然支持html标签. 先来个菜鸟教程 ...

  3. 理解 Java 内存模型的因果性约束

    目录 理解 Java 内存模型的因果性约束 欢迎讨论 规范理解 例子练习 例子1 例子2 总结 理解 Java 内存模型的因果性约束 欢迎讨论 欢迎加入技术交流群186233599讨论交流,也欢迎关注 ...

  4. 关于响应式web设计

    手机网站+电脑网站+平版网站 = 响应式网站 在没有足够经费跟精力的做一个手机网站的情况下,响应式网站是个不错的选择.它有以下的优点: 减少工作量(网站代码只要一份,只需要做js方面的改动及可以了) ...

  5. 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/ZRjGGy 可交互视频 此视频是可 ...

  6. Postgresql存放数组形式的数据

    Postgres 数据库允许把字段定义为可变长度的数组.数据类型既可以是内置类型,也可以是用户自定义的类型或枚举类型. 例如: 创建表 create table demo(name text,subj ...

  7. An incompatible version [1.1.33] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]

    Springboot项目启动出现如下错误信息 解决办法在此地址:http://archive.apache.org/dist/tomcat/tomcat-connectors/native/1.2.1 ...

  8. Java实现生产者消费者(一)

    问题描述:生产者和消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一个存储空间,生产者往存储空间中添加产品,消费者从存储空间中取走产品,当存储空间为空时,消费者阻塞,当存储空间满时 ...

  9. iview的render函数使用

    render渲染函数详解 https://www.cnblogs.com/weichen913/p/9676210.html iview表格的render函数作用是自定义渲染当前列,权限高于key,所 ...

  10. frida入门总结

    一.Frida概述     Frida是一款轻量级HOOK框架,可用于多平台上,例如android.windows.ios等.     frida分为两部分,服务端运行在目标机上,通过注入进程的方式来 ...