深度学习概述
- 深度学习是利用包含多个隐藏层的人工神经网络实现的学习。
- 深度学习的思想来源于人类处理视觉信息的方式;
- 深度学习的发展得益于数据的井喷和计算力的飙升;
- 深度学习的理论基础依然有待深入。
深度前馈网络
- 网络架构的建立、损失函数的选择、输出单元和隐藏单元的设计、训练误差的处理等问题就成为深度前馈网络设计中的一系列核心问题。
- 深度前馈网络利用深度架构实现工程上可实现的对任意函数的通用逼近;
- 深度前馈网络使用梯度下降的方法进行学习;
- 深度前馈网络的损失函数通常是交叉熵或最小均方误差;
- 深度前馈网络的隐藏神经元通常使用整流线性单元作为传递函数。
深度学习中的正则化
- 正则化(Regularization)作为抑制过拟合的手段,是机器学习和深度学习之中必不可少的环节,具有举足轻重的地位。好的机器学习算法不仅要在训练集上表现出色,当推广到未知的测试数据时,其优良的性能依然能够得以保持。正则化就是一类通过显式设计降低泛化误差,以提升算法通用性的策略的统称。由于深度学习中涉及的参数众多,正则化就变得尤为重要。
- 正则化是对欠拟合和过拟合的折中,在不过度增加偏差的情况下显著减少方差。正则化能够改变数据分布,让通过模型得到的数据分布尽可能和真实的数据生成过程相匹配。
正则化策略就可以分为以下几类:
- 基于训练数据(data)的正则化
- 基于网络架构(network architecture)的正则化
- 基于误差函数(error function)的正则化
- 基于正则化项(the regularization term)的正则化
- 基于最优化过程(optimization)的正则化
- 正则化来提升训练数据的质量。正则化处理数据的一个目的是执行预处理和特征提取,从而将特征空间或数据分布修改为其他形式; 另一个目的是通过生成新样本来创建具有更大容量、甚至是无限容量的增强数据集。这两个目的之间相互独立,因而可以结合起来使用。
基于训练数据的正则化方法
- 对训练数据正则化的做法是在训练数据集上施加变换,从而产生新的训练数据集。变换的形式是以满足某种概率分布的随机变量为自变量的函数,最简单的实例就是向数据添加随机的高斯噪声。由于提升机器学习模型泛化性能最直接的办法就是使用更多的数据进行训练,因而使用随机参数的变换可以用于生成“假”数据,这种方法被称为数据集增强(data augmentation)。
- 另一种针对训练数据的正则化方法是Dropout。Dropout 是一种集成方法,通过结合多个模型来降低泛化误差。之所以说 Dropout 属于基于训练数据的正则化,是因为它构造不同的数据集来训练不同的模型,每个数据集则通过对原始数据集进行“有放回采样”得到。Dropout 的关键想法是在训练期间从神经网络中随机丢弃神经元及其连接,得到简化的网络。而在测试时,一个简单的小权重网络就可以逼近所有这些简化网络的预测的平均效果。其优点在于计算简单方便,同时还具有对不同的模型和训练过程的普适性。但 Dropout 对训练集容量的要求很高,少量训练样本并不能发挥其优势。
基于网络架构的正则化方法
- 参数共享(weight sharing)是一类重用参数的正则化方法。通过强迫某些参数相等,可以让不同模型共享唯一的参数,从而让它们对相似的输入产生相似的输出。如果放宽参数共享的条件,使它们不必完全相等而是相互接近,对应的就是对参数范数添加正则化项。常用的参数共享方法是将一个监督学习模型的参数正则化,令其接近另一个无监督学习的模型,那么这个无监督学习模型就可以匹配监督模型的参数。
- 传递函数的正则化(activation regularization)。一些传递函数是专门为正则化设计的,比如在 Dropout 中使用的 maxout 单元,它能在测试时更精确地近似模型集合预测结果的几何平均值。而通过添加噪声,原始的确定传递函数就可以被泛化为随机模型,其分布特性也就可以被利用起来。
- 基于误差函数和正则化项的正则化方法包括使用 L2 范数和 L1 范数;
- 基于最优化过程的正则化方法包括早停。
深度学习中的优化
- 随机梯度下降法(stochastic gradient descent)就是在传统机器学习和深度神经网络中都能发挥作用的经典算法。
- 深度学习中的优化需要解决病态矩阵、局部极小值和鞍点等问题;
- 深度学习优化中的降噪方法包括动态采样、梯度聚合和迭代平均;
- 深度学习优化中的二阶导数近似方法是对原始牛顿法的各种改进;
- 其他优化方法包括动量方法、加速下降方法和坐标下降方法。
自编码器
自编码器(auto-encoder)是一类执行无监督学习任务的神经网络结构,它的目的是学习一组数据的重新表达,也就是编码。
- 自编码器是一种无监督学习方式,目的在于学习数据的重新表达;
- 多个浅层自编码器级联可以得到深度的栈式自编码器,并使用无监督预训练结合有监督微调的方式加以训练;
- 稀疏自编码器利用稀疏的高维表达提取出训练集中隐含的统计规律;
- 变分自编码器对隐藏层做参数化处理,可以用于学习数据的生成模型。
深度强化学习
强化学习(reinforcement learning)实质上是智能系统从环境到行为的学习过程,智能体通过与环境的互动来改善自身的行为,改善准则是使某个累积奖励函数最大化。
- 深度强化学习(deep reinforcement learning)是深度学习和强化学习的结合,它将深度学习的感知能力和强化学习的决策能力熔于一炉,用深度学习的运行机制达到强化学习的优化目标,从而向通用人工智能迈进。
根据实施方式的不同,深度强化学习方法可以分成三类,分别是基于价值、基于策略和基于模型的深度强化学习。
- 基于价值的深度强化学习的基本思路是建立价值函数的表示,通过优化价值函数得到最优策略;
- 基于策略的深度强化学习的基本思路是直接搜索能够使未来奖励最大化的最优策略;
- 基于模型的深度强化学习的基本思路是构造关于环境的转移概率模型,再用这个模型指导策略。