机器学习是什么 #
机器学习就是让机器能自动找到一个函数function
- 语音识别(Speech Recognition):输入是音频,输出是音频对应的文字
- 图像分类:输入是图片,输出是类别(比如猫、狗)
- AlphaGo下围棋:输入是当前棋盘的状态,输出是下一步落棋的位置
- 对话/问答系统
机器能够找到哪些函数 #
为解决不同的问题、完成不同的任务,需要找到不同的函数,那机器学习能找到哪些函数呢?
- 回归(Regression):输出是一个连续的数值、标量,比如PM2.5预测
- 分类(Classification):输出是一个离散的值。
- 二分类(Binary Classification)的输出就是0或1、Yes或No、…,比如文本情感分析的输出可以是正面和负面
- 多分类(Multi-Category Classification)的输出就是[1,2,3,…,N],比如图像分类里判断一张图片是猫还是狗还是杯子
- 生成(Generation):很多教科书吧机器学习划分为回归问题和分类问题,但其实不止这两种问题,比如生成(Generation)。生成是指让机器学习如何创造/生成,比如生成文本、图片等。
如何告诉机器我们希望找到什么函数 #
我们该如何为机器提供学习资料?
- 有监督学习(Supervised Learning):可以把有监督学习种的“监督”理解为标签(Label),即数据集种不仅包括特征还包括标签。有了标签,我们就可以评价一个函数的好坏,进而优化这个函数。使用Loss判断函数的好坏,Loss越小,函数越好。
- 强化学习(Reinforcement Learning):原始的AlphaGo是先通过有监督学习优化到一定程度,然后用强化学习继续优化。新版本的AlphaGo是完全通过强化学习实现的,优于原始的AlphaGo。
- 无监督学习(Unsupervised Learning):只给机器提供数据特征,但不提供数据标签。那机器能学到什么呢?
下面以让机器学习下围棋为例:有监督学习VS强化学习
- 有监督学习:函数的输入(数据特征)就是期盼状态,函数的输出(数据标签)就是下一步落棋的位置。此时,我们需要为机器提供的数据就类似棋谱(如果现在棋局是这样,那下一步怎么落棋最好),但其实人类不一定知道怎么落棋最好。
- 强化学习:让机器跟自己、别人下棋,把结果(赢或输)作为Reward,引导机器学习如何下棋。如果它赢了,那它就知道这一盘里有几步棋下得好,但不知道是哪几步;如果它输了,它就知道这一盘里有几步棋下得不好,但不知道是哪几步。
机器如何找出我们想找到的函数 #
- 我们要给定函数形式/范围(模型),比如假定函数是线性模型、神经网络等等。模型就是一个函数集,模型的参数确定以后,才得到一个函数。
- 找到更好的函数: 使用梯度下降(Gradient Descent),找到更好的函数。
前沿研究 #
- AI的可解释性(Explainable AI):比如,机器为什么认为这张图片里有一只猫?
- 对抗攻击(Adversarial Attack):对输入故意添加一些人无法察觉的细微的干扰,导致模型以高置信度给出一个错误的输出。
- 模型压缩(Network Compression): 把模型压缩以减少模型对计算资源消耗。
- 异常检测(Anomaly Detection):使机器知道它遇到了自己不知道的东西。
- 迁移学习(Transfer Learning/Domain Adversarial Learning): 一个模型已经学到了一些知识,将这些知识应用到另一个任务中。
- 元学习(Meta Learning): 让机器学习如何学习。机器学习是我们教机器学习某种知识,元学习是我们教机器如何学习。
- 终身学习(Life-Long Learning):让机器终身学习,学习完任务1、再继续学任务2、……
机器学习的三个步骤 #
- 确定模型(Model)/函数集(Function Set)
- 确定如何评价函数的好坏
- 确定如何找到最好的函数