LR
- 分类问题为什么不用MSE,而是要用交叉熵
- 用了MSE后非凸,不好求全局最小值
- 对于错误分类的惩罚很小,即使完全分错
- 梯度消失
参考:为什么不用平方误差(MSE)作为Logistic回归的损失函数?
【机器学习】逻辑回归(非常详细)
- 逻辑回归是一个分类算法,那么它是在回归什么呢?
回归的就是对数几率,也就是log(p/(1-p))。一个事件的几率指的是该事件发生的概率与该事件不发生的概率的比值
过拟合、欠拟合
欠拟合
1. 添加其他特征项
组合、泛化、相关性、上下文特征、平台特征
2. 添加多项式特征
3. 减少正则化参数
过拟合
1.增加训练集数据
从数据入手,将更多的数据参与到模型的训练中,这样可以让模型学习到更多更有效的特征,降低噪声对模型的影响
如果直接增加数据比较困难,可以通过一定的规则来扩充训练数据,列举两种:
1)如图像分类问题中可以通过对图像的平移、缩放。旋转等方式来扩充(数据增强);
2)使用生成式对抗网络类合成大量数据。
2. 降低模型复杂度
高次多项式拟合曲线问题
1)神经网络中减少神经元个数,对神经元进行dropout随机失活等;
2)决策树中降低树的深度和进行剪枝。
3. 增加正则化约束项
正则化方法包括L0正则、L1正则和L2正则,而正则一般是在目标函数之后加上对于的范数。但是在机器学习中一般使用L2正则。
L0正则是NP难问题,L1正则是L0正则的最优凸近似。
L1正则会让更多的参数等于0,而L2正则使参数的每个元素都很小,趋于0,不等于0。
更小的参数值w意味着模型的复杂度更低,对训练数据的拟合刚刚好(奥卡姆剃刀)
4. 通过集成学习的方式训练模型
参考:
- https://www.nowcoder.com/questionTerminal/e5f6ea5293824f7d8be86ea229c6fc09
- https://blog.csdn.net/willduan1/article/details/53070777
常见的损失函数
参考自博客
1. 0-1损失
L
(
Y
,
f
(
X
)
)
=
{
1
,
Y
≠
f
(
X
)
0
,
Y
=
f
(
X
)
L(Y, f(X))=\left\{\begin{array}{ll} 1, & Y \neq f(X) \\ 0, & Y=f(X) \end{array}\right.
L(Y,f(X))={1,0,Y=f(X)Y=f(X)
2. 平方损失
L
(
Y
,
f
(
X
)
)
=
(
Y
−
f
(
X
)
)
2
L(Y, f(X))=(Y-f(X))^{2}
L(Y,f(X))=(Y−f(X))2
3. 绝对值损失函数
L
(
Y
,
f
(
X
)
)
=
∣
Y
−
f
(
X
)
∣
L(Y, f(X))=|Y-f(X)|
L(Y,f(X))=∣Y−f(X)∣
4. 对数损失函数
L
(
Y
,
P
(
Y
∣
X
)
)
=
−
log
P
(
Y
∣
X
)
L(Y, P(Y \mid X))=-\log P(Y \mid X)
L(Y,P(Y∣X))=−logP(Y∣X)
5. 指数损失
L
(
Y
,
f
(
X
)
)
=
e
x
p
(
−
Y
f
(
X
)
)
L(Y, f(X))=exp(-Yf(X))
L(Y,f(X))=exp(−Yf(X))
常见的激活函数
参考
1. Sigmoid 函数
- 数学公式
σ ( x ) = 1 1 + e − x \sigma(x)=\frac{1}{1+e^{-x}} σ(x)=1+e−x1 - 函数图像及梯度函数图像
- 优点
便于求导的平滑函数,其导数为 σ ( x ) ( 1 − σ ( x ) ) \sigma(x)(1-\sigma(x)) σ(x)(1−σ(x)) - 缺点
-梯度消失
-幂运算计算量大
-Sigmoid函数的输出不是Zero-centered
2. tanh 函数
- 数学公式
tanh x = e x − e − x e x + e − x \tanh x=\frac{e^{x}-e^{-x}}{e^{x}+e^{-x}} tanhx=ex+e−xex−e−x - 函数图像及梯度函数图像
计算可知: tanh ( x ) = 2 sigmoid ( 2 x ) − 1 \tanh (x)=2 \operatorname{sigmoid}(2 x)-1 tanh(x)=2sigmoid(2x)−1 - 优缺点
-解决了zero-centered的输出问题
-gradient vanishing的问题和幂运算的问题仍然存在。
3. ReLU (Rectified Linear Unit)函数
- 数学公式
ReLU ( x ) = max ( 0 , x ) \operatorname{ReLU}(x)=\max (0, x) ReLU(x)=max(0,x) - 函数图像及梯度函数图像
- 优点
-解决了gradient vanishing问题:ReLU在 x < 0 x<0 x<0时硬饱和。由于 x > 0 x>0 x>0时导数为1,所以,ReLU能够在 x > 0 x>0 x>0时保持梯度不衰减,从而缓解梯度消失的问题。
-计算速度快
-收敛速度快,相较于sigmoid和tanh函数,ReLU对于随机梯度下降的收敛有巨大的加速作用
-ReLU另外一个性质是提供神经网络的稀疏表达能力,relu函数在负半区的导数为0,所以一旦神经元激活值进入负半区,那么梯度就会为0,也就是说这个神经元不会经历训练,即所谓的稀疏性。 - 缺点
-Dead ReLU Problem 随着训练的推进,部分输入会落入硬饱和区,某些神经元可能永远不会被激活,这个ReLU单元在训练中将不可逆转的死亡,导致相应的参数永远不能被更新,使得数据多样化丢失
-偏移现象,即输出均值恒大于零。
偏移现象和Dead ReLU Problem会共同影响网络的收敛性。
硬饱和、软饱和
- 硬饱和:对 ∀ x \forall x ∀x,如果 ∃ c \exists c ∃c, 当 ∣ x ∣ > c |x|>c ∣x∣>c时,恒有 f ′ ( x ) = 0 f^{'}(x)=0 f′(x)=0,那么称其为硬饱和,比如relu,为左硬饱和;
- 软饱和:对 ∀ x \forall x ∀x,如果 ∃ c \exists c ∃c, 当 ∣ x ∣ > c |x|>c ∣x∣>c时,恒有 f ′ ( x ) f^{'}(x) f′(x)趋于0,那么就可以称为软饱和,比如有sigmoid和relu,为软饱和
- ReLU 函数的变体
变体图像
4. Softmax函数
- 数学公式
p ( y = j ∣ x ) = e z j ∑ k ∈ K e z k p(y=j \mid \mathbf{x})=\frac{e^{z_{j}}}{\sum_{k \in K} e^{z_{k}}} p(y=j∣x)=∑k∈Kezkezj
这里, z k = w k T x + b k z_{k} = w_{k}^{T}x+b_{k} zk=wkTx+bk。
Softmax直白来说就是将原来输出是3,1,-3通过Softmax函数一作用,就映射成为(0,1)的值,而这些值的累和为1(满足概率的性质),那么我们就可以将它理解成概率,在最后选取输出结点的时候,我们就可以选取概率最大(也就是值对应最大的)结点,作为我们的预测目标! - 本质是将逻辑回归公式延伸到了多分类。
举例