极客时间
21天打卡行动 22/21
<<人工智能基础课24>>深度学习中的正则化
今日所学理论比较多,也可能比较深入了;
回答老师问题:
既然正则化方法可以基于学习算法中的多个变量来实现,那么你觉得那种方式能够达到最好的抑制过拟合效果呢?
简单浏览了下网络上的各种总结抑制过拟合的策略,大概有如下几点:
* 数据增强
* Early stopping
* 增加噪声
* 简化网络结构
* Dropout
* 贝叶斯方法
迁移学习会好些;
[来源:https://www.jianshu.com/p/97aafe479fa1]
今日所学:
1,正则化(Regularization)作为抑制过拟合的手段,是机器学习和深度学习之中必不可少的环节,具有举足轻重的地位。好的机器学习算法不仅要在训练集上表现出色,当推广到未知的测试数据时,其优良的性能依然能够得以保持。正则化就是一类通过显式设计降低泛化误差,以提升算法通用性的策略的统称。由于深度学习中涉及的参数众多,正则化就变得尤为重要。
2,正则化被定义为对学习算法的修改,这些修改的目的在于减少泛化误差;
3,正则化处理可以看成是奥卡姆剃刀原则(Occam's razor)在学习算法上的应用。奥卡姆剃刀原则的表述是:“当两个假说具有完全相同的解释力和预测力时,以那个较为简单的假说作为讨论依据。”在机器学习中,正则化处理得到的正是更加简单的模型。
4,从概率论角度看,许多正则化技术对应的是在模型参数上施加一定的先验分布,其作用是改变泛化误差的结构。
5,正则化策略就可以分为以下几类:a,基于训练数据(data)的正则化,b,基于网络架构(network architecture)的正则化,c,基于误差函数(error function)的正则化,d,基于正则化项(the regularization term)的正则化,e,基于最优化过程(optimization)的正则化
6,对训练数据正则化的做法是在训练数据集上施加变换,从而产生新的训练数据集。变换的形式是以满足某种概率分布的随机变量为自变量的函数,最简单的实例就是向数据添加随机的高斯噪声。由于提升机器学习模型泛化性能最直接的办法就是使用更多的数据进行训练,因而使用随机参数的变换可以用于生成“假”数据,这种方法被称为数据集增强(data augmentation)。
7,另一种针对训练数据的正则化方法是 Dropout,Dropout 是一种集成方法,通过结合多个模型来降低泛化误差。之所以说 Dropout 属于基于训练数据的正则化,是因为它构造不同的数据集来训练不同的模型,每个数据集则通过对原始数据集进行“有放回采样”得到。
8,基于网络架构的正则化通常会简化关于映射的假设,再让网络架构逐步逼近简化后的映射。
9,参数共享(weight sharing)是一类重用参数的正则化方法;
10,另一种针对网络架构的处理是对传递函数的正则化(activation regularization);
11,正则化项也叫做惩罚项。与误差函数不同,正则化项与目标无关,而是用于表示所需模型的其他属性。误差函数表示的是算法输出与目标输出之间的一致性,正则化项表示的则是关于映射关系的额外的假设。
12,常用的正则化项是权重衰减项(weight decay)。深度学习中的参数包括每个神经元中的权重系数和偏置。由于每个权重会指定两个变量之间相互作用的方式,因而拟合权重所需要的数据量要比拟合偏置多得多。
13,最后一类正则化方法是基于最优化过程的正则化。根据其作用阶段的不同,这类正则化方法可以分为三种:对初始化(initialization)的正则化,对参数更新(weight update)的正则化,对终止条件(termination)的正则化。对初始化的正则化影响的是权重系数的最初选择,这既可以通过在特定的概率分布中选择初始参数完成,也可以经由预训练实现。对参数更新的正则化则包括对更新规则的改进和对权重参数的过滤;
14,早停的简单性和有效性使它成为深度学习中应用最广泛的正则化方法;
总结重点:
1,基于训练数据的正则化方法包括数据集增强和 Dropout;
2,基于网络架构的正则化方法包括参数共享和传递函数正则化;
3,基于误差函数和正则化项的正则化方法包括使用 L2 范数和 L1 范数;
4,基于最优化过程的正则化方法包括早停。
展开