【深度学习知识点扫盲】病态、病态条件

时间:2024-04-14 17:28:24

【深度学习知识点扫盲】病态、病态条件

花书内容

先看看花书大致的内容如下:

【深度学习知识点扫盲】病态、病态条件
【深度学习知识点扫盲】病态、病态条件

关于病态,书中多次提及这个概念,实际上,在CV领域大部分问题都是非适定问题(ill-posed problem)。但是书中对其的解释却不是很直观。当(4.2)式的值很大的时候,一种比较有特点的网络就是这个样子:

【深度学习知识点扫盲】病态、病态条件

对于这样的网络,训练中存在的问题是对于不同的权重参数,需要的学习率可能不同,对于平坦的误差曲面需要较大的学习率来加速收敛,而这个较大的学习率可能在错误曲面的峡谷区发散,此时单一学习率的方法不能很好地训练模型。

推荐一个优秀的博客。我这里对其内容进行一个大致的整理。

1. 概念定义

1.1 病态/ 良态问题

病态问题(ill-conditioned problem):问题的解关于条件非常敏感。条件(或数据)中即使存在极微妙的噪声,也会对问题的解造成剧烈的变化。
反之,关于条件不敏感的问题,我们称之为良态问题(well-conditioned problem)

显然,我们能把这两个概念拓展至病态/ 良态系统(算法),“条件”即系统的输入,“问题的解”即系统的输出。
举一些例子:

  • 人体体温调控系统是良态的,因为体表温度微小的变化也只会带来微小的体温调控;
  • 汽车动力系统是良态的,因为微踩油门时,汽车动力也只会稍作改变。

再延伸至机器学习算法:

  • 如果一个算法对噪声非常敏感,即病态的,那么其健壮性(robustness)也不佳(健壮性就是说系统抗扰动的能力)。
  • 如果一个算法是过拟合的,那么该算法一定是病态的。

1.2 适定/ 非适定问题

**适定问题(ill-posed problem)**的定义来源于1903年哈达玛(Hadamard)的演讲:一个问题是适定的,当其满足以下3个条件:

  1. 解存在;
  2. 解是唯一的;
  3. 解连续依赖于输入(解随着初始条件的改变而连续改变)(The solution depends continuously on the input)。

只要不满足其中一个条件,那么该问题就是非适定的(ill-posed)

注意:(非)适定问题既可以是良态的,也可以是病态的。

2.数学解释

2.1 良态/病态矩阵

【深度学习知识点扫盲】病态、病态条件

【深度学习知识点扫盲】病态、病态条件

2.2 机器学习和条件数

【深度学习知识点扫盲】病态、病态条件

2.3 病态的根源

既然已经定义了条件数,定义了什么是病态,什么是良态,我们不禁会想,引起病态的根源是什么,或者说什么样的矩阵具备病态特征。
当然,你可能会说,前面不是定义了条件数较大的矩阵属于病态矩阵吗,这不是多此一问吗?
过大的条件数会导致矩阵病态只是我们的结论,并不是根本的原因。最根本的原因在于矩阵的列之间的相关性过大

2.3.1 示例

【深度学习知识点扫盲】病态、病态条件

2.3.2 特征值和特征向量

【深度学习知识点扫盲】病态、病态条件

可以看出,输入分别沿着两个特征向方向增加1%后,而特征向量ξ1、ξ2对应的特征值(λ1=1300)远大于特征向量ξ2对应的特征值(λ1=1.57)。

因此,当矩阵的特征值差异过大时,即使输入沿着较大特征值的方向有微小的改变,也会导致最终的输出结果的较大改变。 原因很简单,较大的特征值意味着对应特征方向上较大的*度。

2.3.3 机器学习中的应用

【深度学习知识点扫盲】病态、病态条件

参考资料

  1. 《深度学习》(花书)
  2. https://blog.****.net/foolsnowman/article/details/51614862
  3. https://flat2010.github.io/2018/06/30/%E7%97%85%E6%80%81%E9%97%AE%E9%A2%98%E5%8F%8A%E6%9D%A1%E4%BB%B6%E6%95%B0/