(一)Introduction of Deep Learning

什么是机器学习?

Machine Learning ≈ Looking for Function

机器学习就是帮助人类找出一个函数。

不同类型的函数

different types of Functions

image.png

Regression(回归):The function outputs a scalar.

Classification(分类):Given options(classes),the function outputs the correct one.

Structured Learning(结构化学习):Create something with structure(image,document).

机器如何自动找一个函数?

Supervised learning(监督学习)

提供训练数据集,数据集包括数据和标签(label)。

缺点:It is not efficient to collect data for each task.(为每个任务收集数据是不高效的。)

Self-supervised Learning(自监督学习)

将大量未标注的数据(unlableed datas)交给机器学习一些基本能力,它可以在我们真正关心的任务上(Downstream Tasks,下游任务)得到好的结构。

在训练之前,模型先进行 Pre-train,使之在新的任务上做得更好。Pre-train 中使用的是没有标记的资料,得到 Pre-trained Model,最终结果是在下游任务(真正要做的任务)上能得到好的结果。

Pre-trained Model(Foundation Model)

image.png

无监督学习

通过Generative Adversarial Network(GAN,生成对抗网络),只需收集大量输入输出,而不需要他们的成对关系,也不需要他们是相关的关系,训练后的机器就能自动实现输入到输出的转换。

image.png

Reinforcement Learning(RL,强化学习)

当人们不知道如何标注数据,但可以定义或判断好坏时,可以使用强化学习。

正确率之外的进阶目标

Anomaly Detection(异常检测)

机器能够发现异常的输入数据。让机器具有回答“我不知道”的能力。

Explainable AI(可解释AI)

机器可以得到答案,同时可以解释为什么得出这样的结果。

Model Attack(模型攻击)

添加扰动后的对抗样本使得模型分类错误。

Transfer Learning(迁移学习)

当测试样本与训练样本的分布不是类似的时候,模型依然要有很高的正确率,即 Domain Adaptation领域自适应)。

Network Compression(网络压缩)

当计算资源等有限时,需要对模型进行压缩。

Life-long Learning(终身学习)

无法训练一个学会所有技术、能够“统治”人类的机器。

Meta Learning(元学习)

让机器学习如何学习。机器从大量任务、过去的经验中,发明新的算法进行训练。可以达到只用少量标注的样本就能进行学习(Few-shot Learning,小样本学习)。

Few-shot Learning is usually achieved by meta-learning.

机器学习的三个步骤(Training 训练)

1. Function with Unknown Parameters.(带有未知参数的函数)

给出一个带有未知参数的函数。比如模型为 y=b+wx\mathrm{y}=\mathrm{b}+\mathrm{wx},其中 xx 是特征, yy 是模型的预测值(注意这里的 yy 不是标签,标签是正确的数值),和特征相乘的未知参数 ww 是权重(weight),最后加上的未知参数 bb 是偏置(bias)。

2. Define Loss from Training Data.(从训练数据中定义损失)

Loss is a function of parameters. (损失是一个参数的函数。)

Loss:how good a set of values is.

比如定义 Loss 函数为 L(b,w)L ( b , w ),损失函数是关于模型中的未知参数的函数,损失函数表示模型预测值和真实值之间的差距。Loss 函数可以选择为平均绝对值误差、平均平方误差、交叉熵(yy 是概率分布时)等,根据对具体任务的要求进行选择。Loss 函数值越小表明参数越好。

3. Optimization(最优化)

Gradient Descent(梯度下降法)

w,b=argminw,bLw^*,b^*=arg\min_{w,b}L

image.png

每一次更新,参数的变化由学习率和偏导(梯度值)两方面决定。
注:关于梯度和偏导数的关系,在此处,梯度是各个维度上的偏导数(标量)构成的向量,在一维情况下,可以认为偏导数和梯度是等价的。
说明:从理论上来说,梯度下降法可能会有仅仅是收敛到局部最优解的问题,不过李老师说在实际中不是问题(原因之后解释)。

learning rate(学习率)
hyperparameters(超参数):包括学习率在内的需要自己设置的参数叫做超参数。

对模型进行修改:对模型进行的修改来自于对问题的理解(domain knowledge),用相对复杂的模型可以使得学习效果更好。

深度学习

Linear model have severe limitation. Model Bias
需要一个更复杂、更有弹性 有未知参数的 Function。

Sigmoid Function

σ(z)=11+ez\sigma(z)=\frac{1}{1+e^{-z}}

上图所示的 sigmoid function 是一种 soft sigmoid function,而如果函数图像的中间也是直线则是 hard sigmoid function
image.png
用多个 sigmoid function 和一个常数项进行叠加可以逼近任何折线函数,而曲线函数又可以近似为无穷多个折线,故用多个 sigmoid function 和一个常数项进行叠加可以逼近任何函数。

image.png

New Model:More Features

image.png

New Loss

定义新的损失函数为 L(θ)L(θ),其中 θθ 代表所有未知参数。

Optimization of New Model

image.png
在实际训练过程中,往往会将训练数据分成很多批(batch),对每一个 batch 都会计算一个 Loss 函数,计算一个梯度并进行更新,对所有的 batch 完成一次计算叫做一轮(epoch)。

ReLU

f(x)=max(0,x)f(x)=\max(0,x)

Deep Learning

Neural Network(神经网络)
hidden layer(隐藏层)
Deep = Many hidden layers
image.png
只要有足够多的 sigmoid、ReLU 就可以逼近任何的 Function。