了解机器学习,很多同学是从 LR 开始的,LR 也不简单,回顾这块时我发现核心要理解的是两个问题,记录如下:
1. 损失函数为啥是交叉熵
2. 为啥用极大似然,然后指数问题对数化解决
1. 损失函数为啥是交叉熵
简单理解下概念
熵:体系混乱程度的度量,表示时间的信息量,也就是包含了多少信息,表示为 H(x)
KL 散度: 从事件 A 的角度看,事件 B 有多大不同,或者说如果用 A 来表示 B 额外的工作量
也叫相对熵,表示使用理论分布拟合真实分布时产生的信息损耗 表示为 DL(A||B)
交差熵:用来表示从时间 A 角度看如何描述事 B,交差熵表示为 H(A,B)
按照如上理解,那么 KL 散列才应该用作损失函数才对,那为啥用交差熵做损失函数呢,
DL(A||B) = -H(A)+ H(A,B)
简单可以理解为 KL 散度 = 交叉熵 - 熵(不严谨)
所以如果事件 A 的熵不变时,最小化 KL 散度就等于最小化交差熵
2. 为啥用极大似然,然后指数问题对数化解决
概率和似然的定义,概率描述的是在一定条件下某个事件发生的可能性,概率越大说明这件事情越可能会发生;而似然描述的是结果已知的情况下,该事件在不同条件下发生的可能性,似然函数的值越大说明该事件在对应的条件下发生的可能性越大。
实际问题会涉及到多个独立事件,在似然函数的表达式中通常都会出现连乘:
对多项乘积的求导往往非常复杂,但是对于多项求和的求导却要简单的多,对数函数不改变原函数的单调性和极值位置,而且根据对数函数可以将乘积转换为加减式,这可以大大简化求导的过程,所以说将指数问题对数化是处理数学问题常见的方法