2021李宏毅机器学习(1):基本概念
B站上2021李宏毅机器学习课程的学习笔记,供复习用。
1 基本概念
机器学习归根结底就是寻找一个函数。
1.1 不同的函数类别
- 回归Regression——输出是数值
- 分类Classification——输出是不同的类别classes,做选择题
- 结构学习Structured Learning——产生一个有结构的文件(画一张图、写一篇文章),就是让机器学会创造
1.2 如何寻找函数(Training):
- 首先,写出一个带有未知参数的函数;
- 其次,定义loss(一个与参数有关的函数,MAE——绝对误差,MSE——均方误差);
- 最后,优化,找到使loss最小的参数——梯度下降
1)随机选择参数初始值;
2)计算 ∂ L ∂ w ∣ w = w 0 \left.\frac{\partial L}{\partial w}\right|_{w=w^{0}} ∂w∂L∣∣w=w0,然后沿着梯度下降的地方步进,步进的大小是 l r × ∂ L ∂ w ∣ w = w 0 \left.lr\times\frac{\partial L}{\partial w}\right|_{w=w^{0}} lr×∂w∂L∣∣w=w0
3)更新参数
这个方法有一个巨大的缺陷:通常会求出Local minima,但我们想要的是global minima
1.3 模型
线性模型linear model有很大的限制,无法模拟折线、曲线的情况,这种限制叫做model bias,所以需要改进。
改进方法:Piecewise Linear Curves
很多这样的集合可以拟合成曲线。
1.3.1 sigmoid
可以用sigmoid函数
y
=
c
1
1
+
e
−
(
b
+
w
x
1
)
=
c
s
i
g
m
o
i
d
(
b
+
w
x
1
)
y=c \frac{1}{1+e^{-\left(b+w x_{1}\right)}}=c sigmoid(b+wx_1)
y=c1+e−(b+wx1)1=csigmoid(b+wx1)拟合蓝色的折线:
y
=
b
+
∑
i
c
i
sigmoid
(
b
i
+
∑
j
w
i
j
x
j
)
y=b+\sum_{i} c_{i} \operatorname{sigmoid}\left(b_{i}+\sum_{j} w_{i j} x_{j}\right)
y=b+i∑cisigmoid(bi+j∑wijxj)
这里面的所有未知参数,都用
θ
\theta
θ表示:
一次性用所有
θ
\theta
θ来计算,进行梯度下降,这样的数据量太大,所以采用小批量batch:
每一个data里面更新的次数取决于数据总量和batch数量:
1.3.2 ReLU
前面用的是soft sigmoid,也就是曲线,其实可以用两个ReLU拟合成hard sigmoid,也就是折线:
上面的sigmoid公式就变成了:
1.3.3 对sigmoid的计算可以多做几次
这样的层数多了,就叫做神经网络Neural Network,后来叫做Deep learning=Many hidden layers