李弘毅机器学习课程笔记(一):机器/深度学习入门
文章目录
- 什么是ML
- ML分类
- 一个例子
- Model(function)
- Loss function
- Error surface
- Optimization
- Conclusion
最近在Youtube上(当然万能的B站上也有)看了台大李弘毅老师的机器学习课程,感觉非常不错,介绍概念清晰明了,但是看时一时爽,看到后面就会发现前面的一些似乎清晰的概念开始模糊了,再往后看可能会越来越模糊,因此决定在这个讲自己学习过程中的一些问题Mark下来,为后面的学习打牢基础。
下面截图均来自来自台大2021春机器学习课程,这里也有课程详细介绍。
什么是ML
ML就是寻找某个特定领域的一个函数f,使得我们能够在给定一个输入时,根据函数能够有靠谱的输出(预测)
ML分类
ML一般分为两类:
- Regression: 回归,函数根据输入输出一个值(标量),比如根据历史天气预测明天温度。
- Classification: 分类,函数根据给定的选项,判断一个输入是其中的哪一种
也有一类小众的叫做Structured Learning, 比如通过ML自动生成新闻,生成图片等。
一个例子
根据已有历史的观看次数数据,训练一个Model,根据第t天的观看次数,预测第t+1天的观看次数
Model(function)
最初的Model一般是基于domain knowledge猜测给出的,Model中的变量一般叫做feature, 变量的权重叫weight, Model的修正量叫bias; Weight和Bias是未知值(unknown parameters),ML就是通过已有的数据找到最好的unknown parameters。
Loss function
怎么定量的说明什么是“最好的unknown parameters”,那么我们就要找到一个度量的方法,这个方法就是Loss function.
如何度量,就是拿Model预测值和真实值,也叫Label, 也有人叫ground truth进行比较,比较的方法有下面的MAE或者MSE,得到的值叫误差(error)
把所有的误差加起来就是Loss function了。
Error surface
对于下面的Model, 如果我们把所有的b和w进行穷举(这个地方当然是选定了一个大概的范围再进行穷举),那么代入模型,依据training data, 根据上面的Loss function, 我们就可以得到一个Loss值。把所有Loss值相同的(w, b)点用直线连接起来,那么就会得到一条曲线,多条曲线就构成了一个Error Surface.
对于下面的图,我们发现右上角Loss值较小,左下角Loss值较大。
Optimization
根据上面的分析,我们现在的问题就是在测试集合上,找到一个参数对(w,b),使得Loss最小:
如果我们固定一个变量b, 让w变化,那么问题就变为如何取得合适的w,使得L最小:
首先我们对w取初值w0, 计算L相对于w的导数,代入w0值,得到一个值(曲线在w0处切线的斜率):
- 斜率为正,说明曲线左低右高,说明最小值在w0值左侧
- 斜率为负,说明曲线左高右低,说明最小值在w0值右侧
那么我们通过下面的公式来更新w的值,那么新的w值总是倾向于得到更小的Loss值
其中 η\etaη是learning rate值,是一个正值,也是一个可调的值,不在Model中的参数叫做超参数(hyperparameters), η\etaη就是一个hyperparameter,不难发现:
- 斜率为正,更新后的值在w0左侧
- 斜率为负,更新后的值在w0右侧
这样,总可以找到最小的值(例外的情况是斜率为0时)。
将上面的原理同时运用到(w, b)两个变量上,那么,我们就得到了问题的解。
Conclusion
通过建模(Model)–>定义Loss function–>Optimization三步,我们就得到了我们的模型:
看上去很简单,是不是呢?是的,明白了原理后,事情就很简单了。
ML是不是就像上面这样容易呢?当然不是,让我们接下来继续跟随李弘毅老师来挖掘ML中的奇(坑)珍(坑)异(洼)宝(洼)吧。
李弘毅机器学习课程笔记(一):机器/深度学习入门相关推荐
- 读书笔记:《深度学习入门:基于python的理论与实现》
基于python的深度学习入门 <Deep Learning from Scratch> 这是本人在关于深度学习领域所阅读的第一本书,即日本程序员斋藤康毅著,陆宇杰译作的<深度学习入 ...
- 台大李弘毅机器学习课程(2017春季)——1.introduction
今天上B站的时候突然间看到居然有阿婆主上传了台大李弘毅教授的机器学习课程的视频,点开进去看了一下,发现这个老师真的是挺逗的,对于我这个初学者来说,课讲的也很棒(课程主页).所以打算在这里做一个课程的学 ...
- 深度学习入门笔记(一):机器学习基础
专栏--深度学习入门笔记 推荐文章 深度学习入门笔记(一):机器学习基础 深度学习入门笔记(二):神经网络基础 深度学习入门笔记(三):感知机 深度学习入门笔记(四):神经网络 深度学习入门笔记(五) ...
- 送你一份机器/深度学习自学指南(附视频amp;速成方案)
本文经AI新媒体量子位(公众号ID:qbitai )授权转载,转载请联系出处. 本文约3052字,建议阅读6分钟. 本文详细讲解了机器/深度学习的学习方法,一共为分三个部分,做出了详细的指南. 怎么入 ...
- 深度学习如何入门?怎么入门机器/深度学习?
链接:https://www.zhihu.com/question/26006703/answer/536169538 怎么入门机器/深度学习? 回答这个问题,最先要考虑的问题是:你有多少时间? 准备 ...
- 深度学习入门笔记系列 ( 二 )——基于 tensorflow 的一些深度学习基础知识
本系列将分为 8 篇 .今天是第二篇 .主要讲讲 TensorFlow 框架的特点和此系列笔记中涉及到的入门概念 . 1.Tensor .Flow .Session .Graphs TensorFlo ...
- 深度学习入门笔记(五):神经网络的学习
专栏--深度学习入门笔记 推荐文章 深度学习入门笔记(一):机器学习基础 深度学习入门笔记(二):神经网络基础 深度学习入门笔记(三):感知机 深度学习入门笔记(四):神经网络 深度学习入门笔记(五) ...
- 纯新手入门机器/深度学习自学指南(附一个月速成方案)
原作:Masum Hasan 问耕 编译整理 量子位 出品 | 公众号 QbitAI 怎么入门机器/深度学习? 回答这个问题,最先要考虑的问题是:你有多少时间? 准备用三个月入门,和想要一个月速成,肯 ...
- 机器学习/深度学习入门资料汇总
作者:刘才权 编辑:栾志勇 经常被同学和朋友询问机器学习或深度学习入门,有哪些不错的参考资料.老实讲,这个问题在网上随便一搜就是一大把的答案.我自己在最开始的时候也有同样的困惑,同样在搜索引擎和论坛里 ...
最新文章
- FPGA中系统运行频率计算方法
- 设计模式-简单工厂模式
- java上机题四取三排列_Java练习题
- labview求n阶乘的和_LABVIEW求1到N所有数的阶乘之和
- mysql主从配置常见问题_mysql 主从复制配置,以及常见问题解决!
- 转:Xcode下的GDB调试命令
- 卸载nginx php mysql_centos7中配置nginx+php-fpm+swoole+mysql环境教程
- (43)System Verilog 类中变量随机化
- anaconda 包区别 版本_我是如何用Anaconda来管理Python的
- [笔记][随笔]近期小结
- linux高级知识,LAMP架构(一),MYSQL安装
- 这周我加星(8-11)
- 阿里云张献涛:如何修炼云计算的弹指神通
- java面试逻辑题_精选程序员面试常问的逻辑题
- 四川江安戏剧“青年训练营”:播撒颗颗戏剧种子
- 源IP源MAC目的IP目的MAC,在整个网络中的变化
- Python编程从入门到实践:动手试一试8-3T恤
- windows挂载webdav
- 管道仪表流程图中常用的字母及其含义
- 2021年第16届首尔国际电视节圆满落幕