深度学习的优化:理论和算法《Optimization for d

2020-01-12  本文已影响0人  数据小新手

本文提供了训练神经网络过程中优化算法和理论的概览,主要包括:

1.梯度消失和梯度爆炸问题,以及相对应的初始化和规范化的算法

2.总结了在训练神经网络过程中的常用的优化算法,如SGD,adaptive gradient methods 和distributed methods 和这些方法的结果。

3.总结了现有的研究关于全局问题,如陷入局部极小值,mode connectivity, lottery ticket hypothesis and infinite- width analysis.

1. 介绍

神经网络有效的三个原则

1.合适的网络。包括网络结构和激活函数。

2.训练算法。 如SGD,Adam , momentum算法等。

3.训练技巧。合适的初始化,normalization layers 和skip connections.

可以粗暴的把优化的优势分成三部分:controlling Lipschitz constants, faster convergence and better landscape.

本文主要讨论监督学习的NN结构,不包括GAN,RNN,attention和Capsule.

本文主要是写给对神经网络的优化理论有兴趣的读者。

1.1分解理论

表达,优化和泛化:监督学习的目标是第一步找到一个非常丰富的函数(rich family of functions)。第二步通过最小化损失函数的方式找到函数的参数。第三步用学习到的函数来对未知的数据进程预测。预测结果的误差成为test error。 测试误差可以被分为三部分。表达误差(representation error),优化误差(optimization error),泛化误差(generalization error)。分别对应前面的三步。

在机器学习中,通常表达,优化,和泛化三部分是分别来研究的/

最优问题分解: 深度学习的优化问题非常复杂,需要更近一步的分别。最优问题的发展可以分为三部分。第一步是让算法运行并收敛到稳定点。第二步是让算法瘦了尽可能快。第三部是让算法收敛到全局最优点(非局部)。即 convergence issue:gradient explosion/vanishing, convergence speed issue, bad local minima,plaeaus.

2.问题定义

在一个标准的全连接神经网络中:
f(x)=W^L\phi(W^{L-1})...\phi(W^1x)
我们想要通过选取神经网络合适的参数来使得预测的y^{hat}和真实y 接近。因此我们想要最小化他们之间的距离。对于一个距离函数L ,最优化的问题可以定义为
minF(\theta) = \frac1n\sum_{i=1}^nL(y_i,f_\theta(x_i))
对于回归问题,通常我们定义损失函数为mse.对于分类问题,通常使用logloss。

2.1 least squares

对于线性回归的最小二乘问题。如果神经网络只有一个线性神经元,那么神经网络将退化成最小二乘问题。最小二乘问题是最简单的神经网络,研究者可以通过研究最小二乘问题获得一些发现
min ||y-w^TX||^2

2.2 Relation with matrix factorization

神经网络的优化问题非常接近数值计算中的一个问题,即矩阵分解matrix factorization. 如果只有2层线性网络。问题变为:
min||Y-W_2W_1||_F^2
矩阵分解在工程中经常应用,并且有很多扩展,如non-negative matrix factorzation 和low rank matrix completion.

上一篇 下一篇

猜你喜欢

热点阅读