网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
K
L
(
P
,
Q
)
=
E
x
~
P
(
l
o
g
P
(
x
)
−
l
o
g
Q
(
x
)
)
D_{KL}(P,Q)=\mathbb{E}_{\bold{x} \text{\textasciitilde} P}{(log {P(x)}-log{Q(x)})}
DKL(P,Q)=Ex~P(logP(x)−logQ(x))
在机器学习中,通常用KL散度来衡量训练数据上的经验分布
P
^
d
a
t
a
\hat{P}_{data}
P^data和模型分布
P
m
o
d
e
l
P_{model}
Pmodel之间的差异1。
D
K
L
(
P
^
d
a
t
a
∣
∣
P
m
o
d
e
l
)
=
E
x
~
P
^
d
a
t
a
(
l
o
g
P
^
d
a
t
a
(
x
)
−
l
o
g
P
m
o
d
e
l
(
x
)
)
D_{KL}(\hat{P}_{data}||P_{model})=\mathbb{E}_{\bold{x} \text{\textasciitilde} {\hat{P}_{data}}}{(log{\hat{P}_{data}{(\boldsymbol{x})}}-log{P_{model}{(\boldsymbol{x})}})}
DKL(Pdata∣∣Pmodel)=Ex~Pdata(logP^data(x)−logPmodel(x))
交叉熵(cross-entropy)
交叉熵
H
(
P
,
Q
)
H(P,Q)
H(P,Q)与KL散度相比,少一项
H
(
P
)
H§
H§:
H
(
P
,
Q
)
=
−
E
x
~
P
l
o
g
Q
(
x
)
H(P,Q)=-\mathbb{E}_{\bold{x} \text{\textasciitilde} P}{log{Q(x)}}
H(P,Q)=−Ex~PlogQ(x)
在给定分布P的情况下,如果分布Q和P越接近,交叉熵越小;如果分布Q和P越远,交叉熵就越大。
由于训练数据上的经验分布
P
^
d
a
t
a
\hat{P}_{data}
P^data是不变的,所以最小化两个分布之间的差异性,就相当于最小化两个分布之间的交叉熵:
H
(
P
^
d
a
t
a
,
P
m
o
d
e
l
)
=
−
E
x
~
P
^
d
a
t
a
l
o
g
P
m
o
d
e
l
(
x
)
)
H(\hat{P}_{data},P_{model})=-\mathbb{E}_{\bold{x} \text{\textasciitilde} {\hat{P}_{data}}}{log{P_{model}{(\boldsymbol{x})}})}
H(Pdata,Pmodel)=−Ex~PdatalogPmodel(x))
分类任务中的交叉熵损失
交叉熵可以衡量模型输出和标签之间的距离,所以机器学习、深度学习都常用交叉熵作为损失函数。
以分类任务为例,标签是
[
0
,
0
,
1
]
T
[0, 0, 1]^T
[0,0,1]T,而模型的输出概率是
[
0.3
,
0.3
,
0.4
]
T
[0.3, 0.3, 0.4]^T
[0.3,0.3,0.4]T,则交叉熵损失为
−
(
0
×
l
o
g
(
0.3
)
0
×
l
o
g
(
0.3
)
1
×
l
o
g
(
0.4
)
)
=
−
l
o
g
(
0.4
)
-(0×log(0.3)+0×log(0.3)+1×log(0.4)) = -log(0.4)
−(0×log(0.3)+0×log(0.3)+1×log(0.4))=−log(0.4)。2
为了减少模型输出和标签之间的距离,模型学习的准则就是找到使经验风险最小化的参数。
经验风险用训练集
D
D
D上的平均损失来表示:
R
D
(
θ
)
=
1
N
∑
n
=
1
N
L
(
y
(
n
)
,
f
(
x
(
n
)
最后
不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~
给大家准备的学习资料包括但不限于:
Python 环境、pycharm编辑器/永久激活/翻译插件
python 零基础视频教程
Python 界面开发实战教程
Python 爬虫实战教程
Python 数据分析实战教程
python 游戏开发实战教程
Python 电子书100本
Python 学习路线规划
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!