了解机器学习,很多同学是从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.为啥用极大似然,然后指数问题对数化解决
概率和似然的定义,概率描述的是在一定条件下某个事件发生的可能性,概率越大说明这件事情越可能会发生;而似然描述的是结果已知的情况下,该事件在不同条件下发生的可能性,似然函数的值越大说明该事件在对应的条件下发生的可能性越大。
实际问题会涉及到多个独立事件,在似然函数的表达式中通常都会出现连乘:
对多项乘积的求导往往非常复杂,但是对于多项求和的求导却要简单的多,对数函数不改变原函数的单调性和极值位置,而且根据对数函数可以将乘积转换为加减式,这可以大大简化求导的过程,所以说将指数问题对数化是处理数学问题常见的方法