LR损失函数是什么?为什么不用min square loss?
-
损失函数用对数似然函数(交叉熵CE).
-
不用的原因有很多, 但因此用的人也很多.
说起最小二乘其实说的是普通的最小二乘法, 平方和开根号. 它只有基于BLUE假设:与x无关, 同方差, 0均值这三条才成立. 但LR多用于预测01概率, 误差或多或少都有关于x, 所以第一条假设就不符合. 第一条不符合, 那同方差就更不符合了.
LR是基于LPM线性概率方法, 又加了个sigmoid, 如果不加sigmoid, CE和MSL相比,后者会允许LPM结果稍微超出01范围.例如正确值是1,我预测1.1, loss只有0.01, 而CE确是plogp≈0.14, 大了十几倍, 马上就会被模型训练小.
CE是个凸函数, 而MSL在线性模型上凸, 但非线性模型(加了sigmoid)就不凸了.所以优化角度CE更好.说了这么多缺点, 就是说MSL不够准确. 但就是这些不准确, 就会让模型避免过拟合问题.
所以虽然CE用着更有道理, 理论上说得过去, 但实践时也不能那么绝对.
KKT
基于slater条件的推导和问题本身的约束,要使对偶间隙为0所需要的条件。
只有在问题为凸且slater条件满足时,才可以100%用KKT条件求解。
f
i
(
x
)
<
=
0
f_i(x)<=0
fi(x)<=0
h
i
(
x
)
=
0
h_i(x)=0
hi(x)=0
λ
i
>
=
0
\lambda _i>=0
λi>=0
L
一
阶
导
=
0
L一阶导=0
L一阶导=0
λ
i
f
i
(
x
)
=
0
\lambda _i f_i(x)=0
λifi(x)=0
hinge loss的意义
hinge loss就是L(x)=max(0,1-ty). t是label∈{-1,1}, y是predict, 预测结果从0分界. 在训练模型时, 我们不希望模型对自己的结果过度自信, 例如预测类别是正例1, 它预测了一个100, 虽然模型确实知道它是正例, 但却过度自信. 所以我们希望一旦这一例训练成功, 就不继续训练它了.
使用hinge loss就是这个思路.
linear SVM为什么设置bound为1?
因为映射可以随便放缩, 没个标准就没法确定放缩程度.所以让最近的点距离为1, 就确定了放缩.
kernel tricks是什么? 无限维空间用哪种kernel function?
kernel tricks是低维映射到高维的一些矩阵, SVM经常在低维没法分割, 所以映射到高维比较好分割.
不太了解具体有哪些kernel
LSTM原理?与RNN相比的优势?
使用门控单元控制输出.
比RNN的优势在于后期的梯度会更好地反馈给前期.
大家总会说LSTM优势在于解决了梯度消失问题. 但其实说的不准确.
如果每个单元都有输出, 那么网络的短期反馈还是足够的. 但RNN的长期反馈因为太长就占比微小, 才导致了梯度消失.LSTM解决的是长期反馈问题.
LSTM可以解决梯度爆炸吗?
只能说减小爆炸的可能.原因是它的复杂结构加了很多激活函数, 记忆路径上又是加法乘法并存, 稳定很多.
CNN可以处理文本问题吗?为什么?
可以.
因为其良好的特征提取能力和并行能力.
前者的特征提取能力基于CNN自身的结构.
而由于并行能力, 堆叠无数的显卡和服务器后, CNN就可以快速处理大量的文本, 即在数据量不限的情况下, CNN有着更快的文本学习速度, 所以即使我CNN比RNN差了一点, 但架不住学的总量多.