Datawhale X 李宏毅苹果书 AI夏令营 深度学习入门TASK 1
沁丌 2024-10-03 15:31:05 阅读 93
基本概念
让机器具备找一个函数的能力
常见类别
回归
定义
要找到函数的输出是一个数值。
例子
假设机器要预测未来某一个时间的 PM2.5 的数值。机器要找一个函数 <code>f,其输入可能是与预测 PM2.5 相关的各类指数,包括今天的 PM2.5 的数值、平均温度、平均的臭氧浓度等等,输出为明天中午的 PM2.5 的数值。
分类
定义
要找的函数的输出在设定好的类别中。
例子
每个人都有邮箱账户,邮箱账户里有一个函数可以检测一封邮件是否为垃圾邮件。(类别也可以是多个)
结构化学习
定义
机器不只是要做选择题或输出一个数字,而是产生一个有结构的物体。
例子
例如生成图片、写文章等。
机器学习基本步骤
一、定义目标函数
定义一个数学函数 f
,该函数包含未知参数,用于预测目标变量。在文本中,这个函数是 y = b + w * x1
。其中,y
是预测目标,即频道的总观看次数;x1
是特征,即前一天的观看次数。b
是偏置(bias),它是一个常数项,用于调整函数的输出。w
是权重(weight),它是一个系数,用于调整特征 x1
对预测结果的影响。这个模型是基于领域知识(domain knowledge)的一个初步猜测,可能需要通过后续步骤进行调整。
二、定义损失函数
损失函数 L
用于衡量模型预测值与实际值之间的差距,其输入是模型参数 b
和 w
。文本中提到的损失函数是一个简单的例子,使用平均绝对误差来计算,公式为 L = (1/N) * Σ(|yn - ŷn|)
,其中 N
是数据点的总数,yn
是第 n
天的实际观看次数,ŷn
是预测的观看次数。损失函数的目的是量化预测误差,帮助我们评估模型的性能,并指导模型参数的调整。
损失函数基本知识
参考于 B 站 UP 主
信息量
用
I
(
x
)
I(x)
I(x) 表示,
I
(
x
)
=
−
log
2
(
x
)
I(x) = -\log_2(x)
I(x)=−log2(x)小概率事件信息量大,大概率事件信息量小。
例子:
例1:抛硬币,正面概率
p
(
A
)
=
0.5
p(A)=0.5
p(A)=0.5,反面概率
p
(
B
)
=
0.5
p(B)=0.5
p(B)=0.5
I
(
A
)
=
log
2
(
0.5
)
=
1
I
(
B
)
=
log
2
(
0.5
)
=
1
I(A) = \log_2(0.5) = 1\\I(B) = \log_2(0.5) = 1
I(A)=log2(0.5)=1I(B)=log2(0.5)=1例2:抛硬币,正面概率
p
(
A
)
=
0.2
p(A)=0.2
p(A)=0.2,反面概率
P
(
B
)
=
0.8
P(B)=0.8
P(B)=0.8
I
(
A
)
=
log
2
(
0.2
)
=
2.32
I
(
B
)
=
log
2
(
0.8
)
=
0.32
I(A) = \log_2(0.2) = 2.32\\ I(B) = \log_2(0.8) = 0.32
I(A)=log2(0.2)=2.32I(B)=log2(0.8)=0.32结论:小概率事件有较大的信息量,大概率事件有较小的信息量。
熵
定义
概率分布的信息量期望:
H
(
p
)
:
=
E
(
I
(
x
)
)
H(p) := E(I(x))
H(p):=E(I(x))
公式
H
(
p
)
:
=
E
(
I
(
x
)
)
=
−
∑
i
p
i
log
(
p
i
)
H(p) := E(I(x)) = -\sum_{i} p_i \log(p_i)
H(p):=E(I(x))=−i∑pilog(pi)
例子
假设有:
p
(
A
)
=
0.2
,
I
(
A
)
=
−
log
2
(
0.2
)
=
2.32
p(A) = 0.2,I(A) = -\log_2(0.2) = 2.32
p(A)=0.2,I(A)=−log2(0.2)=2.32
p
(
B
)
=
0.8
,
I
(
B
)
=
−
log
2
(
0.8
)
=
0.32
p(B) = 0.8,I(B) = -\log_2(0.8) = 0.32
p(B)=0.8,I(B)=−log2(0.8)=0.32
则:
H
(
p
)
=
p
(
A
)
∗
I
(
A
)
+
p
(
B
)
∗
I
(
B
)
=
0.2
∗
2.32
+
0.8
∗
0.32
=
0.72
\begin{align*} H(p) &= p(A)*I(A) + p(B)*I(B)\\ &= 0.2*2.32 + 0.8*0.32\\ &= 0.72 \end{align*}
H(p)=p(A)∗I(A)+p(B)∗I(B)=0.2∗2.32+0.8∗0.32=0.72
作用
用于评估概率模型的不确定性:
不确定性越大,熵越大。不确定性越小,熵越小。
交叉熵
定义
预测概率分布
q
q
q 对真实概率
p
p
p 的平均信息量估计。
公式
H
(
p
,
q
)
:
=
∑
i
p
i
I
i
q
=
−
∑
i
p
i
log
2
(
q
i
)
H(p,q) := \sum_i{p_i}{I_i^q} = -\sum_i{p_i}{\log_2({q_i}})
H(p,q):=i∑piIiq=−i∑pilog2(qi)
例子:
抛硬币,正面真实概率
p
(
A
)
=
0.5
p(A)=0.5
p(A)=0.5,反面真实概率
p
(
B
)
=
0.5
p(B)=0.5
p(B)=0.5;正面估计概率
q
(
A
)
=
0.2
q(A) = 0.2
q(A)=0.2 ,反面估计概率
q
(
B
)
=
0.8
q(B) = 0.8
q(B)=0.8 .
H
(
p
,
q
)
=
−
∑
p
i
log
2
(
q
i
)
=
p
(
A
)
∗
log
2
(
1
q
(
A
)
)
=
0.5
∗
log
2
(
1
0.2
)
+
0.5
∗
log
2
(
1
0.8
)
=
0.5
+
2.32
+
0.5
∗
0.32
=
1.32
\begin{align*} H(p,q) &= -\sum{p_i}{\log_2({q_i})}\\ &= p(A)*\log_2(\frac{1}{q(A)}) \\ &= 0.5*\log_2(\frac{1}{0.2}) + 0.5*\log_2(\frac{1}{0.8})\\ &= 0.5+2.32 +0.5*0.32\\ &= 1.32 \end{align*}
H(p,q)=−∑pilog2(qi)=p(A)∗log2(q(A)1)=0.5∗log2(0.21)+0.5∗log2(0.81)=0.5+2.32+0.5∗0.32=1.32
结论
若概率密度均匀,产生的随机变量的不确定性更高,则熵的值更大;若概率密度聚拢,产生的随机变量的不确定性更低,则熵的值较小。
相对熵(KL 散度)
作用
用于衡量两个概率分布之间的差异。
公式
D
K
L
(
p
∣
∣
q
)
=
∑
p
i
[
I
q
−
I
p
]
=
∑
p
i
[
log
2
1
q
i
−
log
2
1
p
i
]
=
∑
p
i
log
2
(
1
q
i
)
−
∑
p
i
log
2
(
1
p
i
)
=
H
(
p
,
q
)
−
H
(
p
)
=
∑
p
i
log
2
(
p
i
q
i
)
\begin{align*} D_{KL}(p||q) &= \sum{ {p_i}{[I_q - I_p]}}\\ %信息量之差 &= \sum{ {p_i}{[\log_2{\frac{1}{q_i}} - \log_2{\frac{1}{p_i}}]}}\\ &= \sum{ {p_i}{\log_2(\frac{1}{q_i})}} - \sum{ {p_i}{\log_2(\frac{1}{p_i})}}\\ &= H(p,q) - H(p)\\ &= \sum{p_i}{\log_2(\frac{p_i}{q_i})} \end{align*}
DKL(p∣∣q)=∑pi[Iq−Ip]=∑pi[log2qi1−log2pi1]=∑pilog2(qi1)−∑pilog2(pi1)=H(p,q)−H(p)=∑pilog2(qipi)
重要性质:
吉布斯不等式
D
KL
(
p
∣
∣
q
)
≥
0
D_{\text{KL}}(p||q) \geq 0
DKL(p∣∣q)≥0;当分布
q
q
q 和分布
p
p
p 完全一样时,
D
KL
(
p
∣
∣
q
)
=
0
D_{\text{KL}}(p||q) = 0
DKL(p∣∣q)=0。
吉布斯不等式说明:
若
∑
i
=
1
n
p
i
=
∑
i
n
q
i
=
1
\sum_{i=1}^n{p_i} = \sum_i^n{q_i} = 1
∑i=1npi=∑inqi=1 ,且
p
i
,
q
i
∈
(
0
,
1
]
p_i,q_i\in(0,1]
pi,qi∈(0,1] ,则有:
−
∑
i
=
1
n
p
i
log
p
i
≤
−
∑
i
=
1
n
p
i
log
q
i
-\sum_{i=1}^{n}{p_i}{\log{p_i}} \le -\sum_{i=1}^{n}{p_i}{\log{q_i}}
−∑i=1npilogpi≤−∑i=1npilogqi ,
等号成立当且仅当
p
i
=
q
i
∀
i
p_i = {q_i}{\forall{i}}
pi=qi∀i非对称性
D
KL
(
p
∣
∣
q
)
≠
D
KL
(
q
∣
∣
p
)
D_{\text{KL}}(p||q) \neq D_{\text{KL}}(q||p)
DKL(p∣∣q)=DKL(q∣∣p)。
D
KL
(
p
∣
∣
q
)
D_{\text{KL}}(p||q)
DKL(p∣∣q) 表示以
p
p
p 为基准(视为真实概率分布),估计概率分布
q
q
q 与真实概率分布
p
p
p 之间的差距。
D
KL
(
q
∣
∣
p
)
D_{\text{KL}}(q||p)
DKL(q∣∣p) 表示以
q
q
q 为基准(视为真实概率分布),估计概率分布
p
p
p 与真实概率分布
q
q
q 之间的差距。
交叉熵损失函数
说明
在机器学习中,我们通常希望模型预测的概率分布
q
q
q 能尽可能接近真实的数据分布
p
p
p,即理想情况下,
损失函数:
L
o
s
s
=
D
K
L
(
p
∣
∣
q
)
=
H
(
p
,
q
)
−
H
(
p
)
=
∑
p
i
log
2
(
1
/
q
i
)
−
∑
p
i
log
2
1
/
p
i
Loss = D_{KL}(p||q) = H(p,q) - H(p) = \sum{p_i}{\log_2{(1/q_i)}} - \sum{p_i}{\log_2{1/p_i}}
Loss=DKL(p∣∣q)=H(p,q)−H(p)=∑pilog2(1/qi)−∑pilog21/pi .
对于分类问题,真实分布
p
p
p 是一个单点分布,即真实类别的概率为 1,其他类别的概率都为 0,
H
(
p
)
=
∑
p
i
log
2
1
/
p
i
=
0
H(p) = \sum{p_i}{\log_2{1/p_i}} = 0
H(p)=∑pilog21/pi=0 .
因此,损失函数
L
o
s
s
Loss
Loss 可以进一步表示为:
L
o
s
s
=
D
K
L
(
p
∣
∣
q
)
=
H
(
p
,
q
)
−
H
(
p
)
=
H
(
p
,
q
)
Loss = D_{KL}(p||q) = H(p,q) - H(p) = H(p,q)
Loss=DKL(p∣∣q)=H(p,q)−H(p)=H(p,q) .
因为
H
(
p
,
q
)
H(p,q)
H(p,q) 是交叉熵,所以上述损失函数又称为交叉熵损失函数:
C
r
o
s
s
E
n
t
r
o
p
y
L
o
s
s
=
H
(
p
,
q
)
=
−
∑
p
i
log
2
q
i
CrossEntropyLoss = H(p,q) = -\sum{p_i}{\log_2{q_i}}
CrossEntropyLoss=H(p,q)=−∑pilog2qi .
因为真实分布为单点分布,真实类别概率
p
c
l
a
s
s
=
1
p_{class} = 1
pclass=1 ,其他类别概率为0,可进一步化简为:
C
r
o
s
s
E
n
t
r
o
p
y
L
o
s
s
=
H
(
p
,
q
)
=
−
log
2
q
c
l
a
s
s
CrossEntropyLoss = H(p,q) = -\log_2{q_{class}}
CrossEntropyLoss=H(p,q)=−log2qclass
三、定义优化方法
通过优化算法,如梯度下降(Gradient Descent),来调整模型的参数 b
和 w
,目的是最小化损失函数 L
。在每次迭代中,根据损失函数对参数的梯度信息来更新参数值,使得预测结果更接近实际值。这个过程可能需要多次迭代,直到找到一组参数,使得损失函数的值达到一个较低的水平,或者满足其他停止条件。参数优化是一个动态的过程,随着数据的增加和模型的调整,可能会持续进行。
附上我的关于损失函数的思维导图:
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。