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 用于衡量模型预测值与实际值之间的差距,其输入是模型参数 bw。文本中提到的损失函数是一个简单的例子,使用平均绝对误差来计算,公式为 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∑​pi​log(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∑​pi​Iiq​=−i∑​pi​log2​(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)​=−∑pi​log2​(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​[log2​qi​1​−log2​pi​1​]=∑pi​log2​(qi​1​)−∑pi​log2​(pi​1​)=H(p,q)−H(p)=∑pi​log2​(qi​pi​​)​

重要性质

吉布斯不等式

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=1n​pi​=∑in​qi​=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=1n​pi​logpi​≤−∑i=1n​pi​logqi​ ,

等号成立当且仅当

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)=∑pi​log2​(1/qi​)−∑pi​log2​1/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)=∑pi​log2​1/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)=−∑pi​log2​qi​ .

因为真实分布为单点分布,真实类别概率

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)=−log2​qclass​

三、定义优化方法

通过优化算法,如梯度下降(Gradient Descent),来调整模型的参数 bw,目的是最小化损失函数 L。在每次迭代中,根据损失函数对参数的梯度信息来更新参数值,使得预测结果更接近实际值。这个过程可能需要多次迭代,直到找到一组参数,使得损失函数的值达到一个较低的水平,或者满足其他停止条件。参数优化是一个动态的过程,随着数据的增加和模型的调整,可能会持续进行。

附上我的关于损失函数的思维导图:

在这里插入图片描述



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。