欢迎来到爱学习小可爱的机器学习入门小天地
文章目录
第一节课 基本概念
Error
来源:
- variance(方差)
- bias(偏差)
根据不同来源去对症提高模型的效果
估计方差是有差估计
估计均值是无差估计
如果我的模型不可以很好的适应训练样本,那就是有很大的偏差。–underfitting
如果可以很好的适应训练数据,但是在测试数据上有很大的无差,那就很有可能是 大方差。–overfitting
第二节课 梯度下降
步骤
- 随机选取一个初始点 w 0 , b 0 w^0,b^0 w0,b0
- 计算
d
L
d
w
∣
w
=
w
0
,
b
=
b
0
\frac{dL}{dw}|_{w=w^0,b=b^0}\quad
dwdL∣w=w0,b=b0
d L d b ∣ w = w 0 , b = b 0 \frac{dL}{db}|_{w=w^0,b=b^0}\quad dbdL∣w=w0,b=b0
如果导数为正,则需减小w,b;如果导数为负,则需增加w,b;使得Loss 变小 - 改变w,b的时候走的步长,首先由微分值定,微分值越大,说明越陡峭,则走的就越多;同时,又由 η \eta η(学习率)决定,它是提前确定好的,它若大,则走一步,数值更新的幅度就越大,学习的速度就越大。
-
w
1
=
w
0
−
η
d
L
d
w
∣
w
=
w
0
,
b
=
b
0
w^1=w^0-\eta\frac{dL}{dw}|_{w=w^0,b=b^0}
w1=w0−ηdwdL∣w=w0,b=b0
b 1 = w 0 − η d L d b ∣ w = w 0 , b = b 0 b^1=w^0-\eta\frac{dL}{db}|_{w=w^0,b=b^0} b1=w0−ηdbdL∣w=w0,b=b0 - 更新w,b后,重新2、3、4直到微分=0,则找到loss最小的点
tips
1. Learning rate
θ
i
=
θ
i
−
1
−
η
∗
∇
C
(
θ
i
−
1
)
\theta^i=\theta^{i-1}-\eta*\nabla C(\theta^{i-1})
θi=θi−1−η∗∇C(θi−1)
η
\eta
η是学习率
越大,步伐大,可能就走过了
越小,步伐小,速度慢
不同的学习率导致的loss function的趋势不一样
所以合适的学习率很重要,那能不能找到一个调学习率的方法呢?
adaptive learning Rates
常识:一开始函数值距离目标值比较远,Learning Rates可以大一些,快一些的变化,后来越接近目标值,为了不错过,Learning rates就需要小一点。
方法1-- Adagrad
思想–每个参数的学习率都不一样
w
t
+
1
←
w
t
−
η
t
σ
t
g
t
w^{t+1}\leftarrow w^t- \frac {\eta^t}{\sigma^t}g^t
wt+1←wt−σtηtgt
σ
t
\sigma^t
σt是之前所有的w的微分的均方根值
η
t
=
η
t
+
1
\eta^t=\frac {\eta}{\sqrt{t+1}}
ηt=t+1η
g
t
=
α
L
(
θ
t
)
α
w
g^t=\frac {\alpha L(\theta^t)}{\alpha w}
gt=αwαL(θt)
2. Stochastic Gradient Descent(随机梯度下降)
每看到一个example,就update一次参数
3. Feature Scaling(特征缩放)
多个特征的范围不一样,可以将其中的特征缩小是他们范围差不多。
由图可以知,特征们范围不一样时,对损失函数的影响不一样,范围小的可能变化很大,对loss的影响很小。这两个特征共用一个学习率,就会有不好的影响(不容易找到最值),就需要用adgrad。
如果范围一致,就可以共用一个学习率,指向圆心运动。
做Feature Scaling的方法
1.求每个特征上第i个元素组合起来的平均值
2.求每个特征上第i个元素组合起来的标准差
3.代入公式
x
i
r
←
x
i
r
−
m
i
σ
i
x_i^r \leftarrow \frac {x^r_i -m_i}{\sigma_i}
xir←σixir−mi
梯度下降的限制
1.可能找到的是局部最小值
2.可能找到的是鞍点
3.有可能在一个高原地方,不一定在局部最小附近
第三节课 分类
输入:一个样本
中间:一个function
输出:该样本的类别
例子:Pokemon
用一个装了不同特征对应的值的vector表示一种pokemon
需要根据这个vector去预测这个pokemon的种类
当f(
x
n
)
≠
y
^
n
,
δ
=
1
x^n)\not=\hat{y}^n,\delta=1
xn)=y^n,δ=1,否则
δ
=
0
\delta=0
δ=0.
生成模型
prior概率(prior):
P
(
C
1
)
、
P
(
C
2
)
P(C_1)、P(C_2)
P(C1)、P(C2)
概率密度:
P
(
x
∣
C
1
)
,
P
(
x
∣
C
2
)
P(x|C_1),P(x|C_2)
P(x∣C1),P(x∣C2)
假设密度服从高斯分布,我们就需要估测出这堆数据的平均值和方差,去得到密度。
我们用最大似然估计(Maximum Likelihood去估计均值和方差
方差和均值可用来算概率密度,这样P(C|x)就很容易算出来了。然后可以与0.5比较,得到该样品所属类别。