总述:机器学习就是寻找函数
1. 我们首先会想好找什么样的函数
比如能够让语音转为文字的函数,一张图片转为类别的函数,能够生成图片的函数
2. 在我们想好找什么函数之后,又怎么样告诉机器我们要找的函数是什么样子的呢?
常见有监督学习,加强学习,无监督学习
- 监督学习:我们会给机器一些带有标签的数据,也就是告诉机器我们理想中的函数是:在给定的输入下,函数输出是与标签对应的,比如一张图的标签是猫,那么图片输入经过函数,输出就是猫
- 加强学习:比如AlphaGo与自己或者其他机器进行下棋,那么输赢回座位反馈来不断调整函数,来找到理想的下一步位置
- 无监督学习:我们只给一堆数据,重要的是没有标签,我们会让机器学到什么
3. 那么在机器知道函数是什么样子之后,机器怎么样找到你想要的的函数呢?
我们需要给定机器函数搜寻的范围,我们会告诉,比如告诉机器线性函数或者是神经网络函数,比如在李老师的regression和classification告诉机器是线性方程,而在其他的使用神经网络
4. 那么在机器知道函数的范围之后,怎么来找到一个理想函数
依靠损失函数来评估函数,比如下图中的 f1 得到一半的错误率,那么我们会不断调整 f 来达到更低的错误率,从而到达更好的 f(注:loss往往比错误率更复杂)
5. 机器知道用损失函数来评估方程,那么说明样的更新方法来更新函数,使得损失更小呢?
答案呼之欲出,梯度下降算法 ,李老师课程中算法regression和classification可以由自己实现,其他就是用了框架
前沿
regression:输出是一个数值
-
ExplainableAI:现在机器都知道图片是什么类别,那么为什么机器知道是吗呢?这就是ExplainableAI所研究的
-
Adversarial Attack:添加刻意制造的噪音,来使网络出错
-
network compression:我们有些模型很大,我们有没有方法可以让网络变小
-
Anomaly Detection:在动物识别的系统,我们输出类别,那我们输入不属于这些类别的,机器能够知道自己不知道这个图片
-
transfer learning:比如原本数据识别是黑白,但是输入的是彩色的,也就是训练资料和测试资料不一样的分布,那么如何在分布不一样学到知识呢
-
meta learning :学习如何学习,能不能让机器更聪明一点(现在的机器只是勤奋而已),比如我们使用加强学习来让机器玩一个游戏,人类在两小时就能达到4000分,但是机器却需要900天
-
life-long learning:让机器终身学习,交给机器一连串的任务,有难点