台大李宏毅机器学习2020学习笔记(一):机器学习简介

前言


         去年走马观花式的听了一遍台大李宏毅老师的Machine Learning 2019,觉得老师讲的很好。于是打算今年细致的听一遍Machine Learning 2020,并做一份完整的笔记。前言就写这么多,从此开始吧。


机器学习内涵


        机器学习(Machine Learning),就是让机器自动找函数。如语音识别,就是让机器找一个函数,输入是声音信号,输出是对应的文字。如下棋,就是让机器找一个函数,输入是当前棋盘上黑子白子的位置,输出是下一步应该落子何处。


机器学习任务——我们想要机器找什么样的函数


  •  回归(regression)

        输出是数值。如房价、PM2.5预测。

  •  二元分类(binary classification)

        输出只有两种可能,正面或负面。

  •  多元分类(multi-class classification)

        输出当前输入属于既定N个类别的概率值,并将N个概率值中最大者所对应的类别作为正确答案。

  • 生成(generation)

        输出有结构的复杂东西。如翻译,画图。


机器学习分类-告诉机器我们想要什么样的函数


  • 监督学习(supervised learning)

        如果期望机器对每一次输入都给出理想的答案,就涉及监督学习,其中分类和回归都属于监督学习。监督学习在训练时不仅需要给机器数据,同时还要给标签(label),标签即期望的正确答案,如下图(引自课程演示文稿),其中x即输入图片,y即标签。

                           

  • 强化学习(reinforcement learning)  

        如果完成一件事分为很多步骤,但不愿或者不能告诉机器每一步正确的处理方式时,就可以用强化学习。让机器自己玩或者与别人玩,然后得到事情的最终结果,如果机器完成的好就奖励,完成的不好就惩罚(奖励和惩罚是两种更新模型参数的式),最后机器学到的就是对于每一个步骤,应当如何处理才让得到好结果的概率最大。alphaGO是监督学习与强化学习结合的产物,其升级版alphaGO zero是完全的强化学习的产物。

                        

  • 无监督学习(unsupervised learning)   

        拥有大量数据,但是没有先验知识无法标注或者很难标注,但是又希望得到其中数据的结构时,就涉及无监督学习。无监督学习的典型例子就是聚类。


函数范围-函数结构


        目前的机器学习,不是要求机器凭空的产生一个较优的函数,而是给机器一个函数结构(特定函数集合),让其去学出一组较优参数。然后机器通过这组参数所决定的函数,就可以较好的完成给定任务。SVM、线性函数、CNN和RNN等都是函数结构,函数结构决定了机器所能的搜寻的函数的范围。下图是CNN的一种经典结构。

                                                                


获取最佳函数典型方法-梯度下降(gradient decent)     


        我们希望模型(为了和其他函数区别,此处用模型代替)最佳,就是希望其损失函数(loss function)最小。梯度方向是函数值变化最快的方向,一个多元函数对其各个变量求梯度,可以确定各个变量的变化对函数值变化的贡献,并且确定各个变量应该怎样变化,才能使函数值以最快的速率减小到最小值。我们根据当前损失函数值,就可以计算出当前损失函数对于各个变量的梯度值,然后朝着可以让损失函数值减小的方向更新各个变量的值,就可以实现梯度下降了(梯度值中包含了更新的幅度和方向信息)。减小损失函数值 ,就是在优化模型。   


前沿研究


  • 可解释AI(explanable ai )

        现在只是知道机器学习可以实现某种操作,但是不清楚为什么可以实现。李宏毅老师的解释是:比如一个分类系统,可以识别一张图片上有一只猫,但是它无法告诉我们它为什么觉得图片中有一只猫。我觉得这个解释有些问题,因为我们自己看见一张图片中有猫,也解释不了为什么,因为猫就是存在在那里的。可解释背后其实是数学与物理的支撑,物理和数学的解释可以使算法更令让人信服 。 

  •  对抗攻击(adversarial attack )

        当前的机器学习系统已经一般的干扰鲁棒,但是如果干扰是人为添加的呢。一些人为设计的,肉眼不可见的干扰攻击,有没有可能使得机器决策错误(骗过训练好的模型),这就是对抗攻击研究的内容。

  • 网络压缩(network compression)

        现在的深度神经网络,动辄上亿个参数,千万个连接,体量非常庞大,只有在服务器上或者较好的GPU上才能完美运行。网络压缩要做的就是压缩网络体量,让其可以适应手机甚至更小的设备使用。

  • 异常检测(Anomaly detection) 

        在测试输入是系统没有见过的时候,系统是随意输出一个它学过的东西呢,还是输出它不知道,这就是异常检测研究的内容。比如系统没有见过猫,但是见过狗,狐狸、熊,当它遇到猫时,它是说那是狗、狐狸或者是熊呢,还是说它不认识这是什么。引自课程演示文稿

                                                

  • Domain Adversarial learning 

             当测试输入与我们的训练集有不同分布(distribution)的时候,系统是否还能有较好的表现,就是Domain Adversarial learning (不知道怎么翻译)的内容。如下图中(引自课程演示文稿),如果手写数字识别的训练集是黑白的图片,但是测试的却是各种颜色的数据,那怎样避免结果坏掉。

                                               

  • 元学习(meta learning) 

          元学习是让机器学会学习,即让机器具备学习的能力。李宏毅老师的解释是:以往机器之所以能获得某项技能,是人为其设计了演算法则,并通过大量训练让机器具备了那种能力。元学习旨在让机器面对一项任务时,能够自己发明比人为设计更优的演算法则,而我们需要做的只赋予机器学习的能力(有点抽象,后面学习了再完善此处的叙述)。另外,之所以要进行元学习,是因为现在人为设计的算法都很“笨”,人们希望它能聪明一点。如下图(引自LakeEtAlBBS)的一个小游戏结果,达到相同的分数,机器通过强化学习需要900小时(换成现实时间了的,不是机器运行时间),而人只需要两小时,这有可能是因为人为设计的算法不够有效率。

                                                                                                            

  • 终身学习 (life-long learning)

          对于人来说,这个词也是一个很时髦的词。终身学习就是希望机器可以学习多个任务,教它一个任务它就会一个任务,感觉就和我们的大脑差不多了,这个难度很大,千万年的进化不是盖的。下图引自课程演示文稿

                                          


结语


        水平有限,如果有地方写错了,还请有缘看到的朋友赐教,一起学习,一起进步。                                                            

参考


http://speech.ee.ntu.edu.tw/~tlkagk/courses/ML2020/introduction.pdf 

https://www.bilibili.com/video/av94519857?p=1

https://www.jianshu.com/p/2c24a81dcd6b

发布了28 篇原创文章 · 获赞 34 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/sinat_35907936/article/details/104944811
今日推荐