笔记|李宏毅老师机器学习课程,视频3回归案例研究
《学习笔记》专栏·第3篇
文 | MLer
1922字 | 5分钟阅读
【数据科学与人工智能】开通了机器学习群,大家可以相互学习和交流。请扫描下方二维码,备注:姓名-ML,添加我为好友,诚邀你入群,一起进步。
感谢李宏毅老师的分享,他的课程帮助我更好地学习、理解和应用机器学习。李老师的网站:http://speech.ee.ntu.edu.tw/~tlkagk/index.html。这个学习笔记是根据李老师2017年秋季机器学习课程的视频和讲义做的记录和总结。因为这个视频是在Youtube上面,有些朋友可能无法观看,我把它搬运下来放在云盘上面,大家点击阅读原文,就可以直接在手机随时随地观看了。再次,感谢李老师的付出和贡献。
这门课,共有36个视频,每个视频播放的时间不一。我按着视频播放的顺序,观看,聆听和学习,并结合讲义,做学习笔记。我做学习笔记目的有三:
1 帮助自己学习和理解机器学习
2 记录机器学习的重要知识、方法、原理和思想
3 为传播机器学习做点事情
视频3:回归案例研究
一、回归的应用
李老师在视频1介绍回归任务时,举了一个预测PM2.5值的例子。回归有着广泛地应用,比方说,金融市场的股票价格预估系统、无人驾驶领域的方向盘偏转角度系统、电商领域的用户和商品最佳连接的推荐系统等。
二、回归任务:案例研究
李老师以预测宝可梦进化后的CP(Combat Power)值为例来介绍回归任务,非常地有趣味。
2.1 问题定义
它是一个机器学习问题,属于有监督学习范式场景下的回归任务。
找到一个最佳的function,让它满足下图这个关系。
2.2 问题求解
按着机器学习框架三步骤做解答。
第一步:Model(设计和定义function set),如下图:
第二步:Goodness of function (定义和度量function的好坏)
采用了损失函数,用于量化函数的好坏程度,它是第一步所设计的函数的函数,即一个复合函数。我们这里采用常用预估误差平方和函数来表示损失函数。大家,可以想一想,为什么使用预估误差平方和函数做损失函数呢?
如下图:
第三步:Best Function (找到适合具体问题的最佳函数),这是个优化问题,如何解决这个问题?我们可以想到穷举法,但是不现实;若是满足数值优化,我们可以采用数值优化的方法,利用线性代数和微积分的里面知识求解;若是不满足数值优化的方法,我们可以采用逼近的方式解决这个优化问题。不管是数值优化,还是非数值优化,梯度下降算法,都可以用来解决这个优化问题。它的弊端,只能找到局部优化的解,而不能找到全局优化的解。但是,在回归任务中,因为损失函数满足凸函数性质,利用梯度下降法,就是找到全局优化的解。
如下图:
梯度下降算法
帮助我们找到Best Function(参数w和b)
1)随机初始化参数值(思考:如何做初始化,除了随机初始化,还有别的方法吗?)
2) 计算损失函数与参数的梯度,数学里面的偏导,表示陡峭程度,值越大,越陡峭
3)参数的更新逻辑,我们发现梯度为负时,需要增加w的值;反之,需要减少w的值,只有这样,损失函数L才会不断趋向于极小值。w更新时有个超参数:学习速率,大家也可以思考一下,学习速率要怎么设定,有哪些方法可以来做这个事情。
我们可以发现,w的更新与梯度的值和学习速率紧密相关。
例子1:一个参数w的梯度下降算法
例子2:两个参数w和b的梯度下降算法
梯度是什么呢?就是损失函数L对个参数的偏导数值,如下图:
两个参数做梯度下降算法的等高线的可视化
梯度下降算法的局限性
非凸函数,局部优化值
我们利用梯度下降法找到一个最佳的function后,我们会关心和在意它的泛化能力,在测试集(没有参与模型训练的数据集或者新的数据集)上面的表现。根据训练误差和测试误差,redesign一系列模型,并进行对比分析,以找到最好的模型,这个属于模型选择所研究的问题。如下图:
模型在设计和重设计的过程中,会遇到欠拟合和过拟合的现象。前者表示,模型在训练集上表现效果不理想,后者表示模型在训练集上表现效果可以,但是在测试集上面表现效果不佳的现象。
如何解决过拟合问题呢?李老师介绍了正则化技术。
不同正则化系数(惩罚系数)下的模型的训练误差和测试误差,对比分析,以确定最佳的模型。如下图:
李老师,在介绍模型重新设计的时候,谈到了这些做法,总结如下:
1)多项式模型的应用
2)分层构建模型的思想,引入信号处理的标识函数,如下图:
3)多变量模型的应用,探索和挖掘更多的变量。
鉴于这些思想,重构新的模型,如下图:
思考题:
1) 梯度下降算法,初始化问题怎么解决?学习速率怎么设置?梯度下降算法的变体有哪些?
2)如何重新设计模型,有哪些方法?面对多个模型,如何做做选择?
3)过拟合问题如何解决?
4)正则化技术为什么可以缓解过拟合问题?
朋友们,在学习中有什么问题或者想法,请加入机器学习群,大家一起讨论,共同进步。
每周一书
课程视频点击
↓↓↓