李宏毅机器学习课程笔记
Posted ^_^|
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了李宏毅机器学习课程笔记相关的知识,希望对你有一定的参考价值。
课程资源
下面仅记录自己的所得所感
第一节
Regression
从单变量回归引入,再sigmoid/RELU拟合函数从而一步步到深度学习的框架,介绍的非常巧妙。尤其在sigmoid/RELU拟合函数那里,听了之后很有收获。
老师在引入的例子中用的x表示的是前几天的数据关系,不过我理解的时候还是觉得用特征来理解好不少。
to learn more——backpropagation
就是应用链时法则,从后往前求微分
第二节
overfitting
一般会出现这样的情况:模型太简单,出现high bias的情况(训练误差和验证误差都比较大);模型太复杂,出现overfitting的状况(训练误差小,验证误差大)
Cross Validation
把Training的资料分成两半,一部分叫作Training Set,一部分是Validation Set
你在Validation Set上面,去衡量它们的分数,你根据Validation Set上面的分数,去挑选结果,最终在test set中去测评模型的泛化能力。
N-fold Cross Validation
N-fold Cross Validation就是你先把你的训练集切成N等份,在这个例子裡面我们切成三等份,切完以后,你拿其中一份当作Validation Set,另外两份当Training Set,然后这件事情你要重复三次
也就是说,你先第一份第二份当Train,第三份当Validation,然后第一份第三份当Train,第二份当Validation,第一份当Validation,第二份第三份当Train
然后接下来 你有三个模型,你不知道哪一个是好的,你就把这三个模型,在这三个setting下,在这三个Training跟Validation的,data set上面,通通跑过一次,然后把这三个模型,在这三种状况的结果都平均起来,把每一个模型在这三种状况的结果,都平均起来,再看看谁的结果最好
Local Minimum And Saddle Point
过去常见的一个猜想,是因為我们现在走到了一个地方,这个地方参数对loss的微分為零
讲到gradient為零的时候,大家通常脑海中最先浮现的,可能就是local minima。
但gradient为零还可能是其他情况,比如说 saddle point,所谓的saddle point,像图中显示那样,它在左右这个方向是比较高的,前后这个方向是比较低的,它就像是一个马鞍的形状,所以叫做saddle point,那中文就翻成鞍点
像saddle point这种地方,它也是gradient為零,但它不是local minima,那像这种gradient為零的点,统称為critical point,所以你可以说你的loss,没有办法再下降,也许是因為卡在了critical point,但你不能说是卡在local minima,因為saddle point也是微分為零的点
判断微分为0的情况
要知道我们loss function的形状,可是我们怎麼知道,loss function的形状呢,network本身很复杂,用复杂network算出来的loss function,显然也很复杂,我们怎麼知道loss function,长什麼样子,虽然我们没有办法完整知道,整个loss function的样子
但是如果给定某一组参数,比如说蓝色的这个 θ ′ \\theta^{'} θ′,在 θ ′ \\theta^{'} θ′附近的loss function,是有办法被写出来的,它写出来就像是这个样子
那如果我们今天走到了一个critical point,意味著gradient為零,也就是绿色的这一项完全都不见了
判断方法如下
Don’t afraid of saddle point
对于saddle point的情况,从图中我们也可以形象地看出它的loss是有办法可以继续下降的
Saddle Point v.s. Local Minima
当维度很多的时候,其实我们是有很多“路”可以走的,很难出现真正H为正定的情况
从经验上看起来,其实local minima并没有那麼常见,多数的时候,你觉得你train到一个地方,你gradient真的很小,然后所以你的参数不再update了,往往是因為你卡在了一个saddle point
以上是关于李宏毅机器学习课程笔记的主要内容,如果未能解决你的问题,请参考以下文章
李宏毅2020机器学习深度学习笔记1+2 &&深度学习基础与实践课程笔记2
学习笔记李宏毅2021春机器学习课程第5.1节:Transformer
李宏毅机器学习笔记(2016年的课程):Support Vector Machine (SVM)