DeepLearning 1
神经网络基础笔记 1
线性神经网路
线性模型
- 处理高维数据集用向量、矩阵形式 -> 矢量化代码
- w, b 为模型参数
y
和X
有观测误差,引入噪声项,服从正态分布- 是输入特征的一个 仿射变换,加系数和常数的线性变换
损失函数
- 对拟合程度的度量,表现实际值和预测值之间的差距
- 最常用的损失函数是平方误差函数
- 损失函数求导 =0 可求损失极小点,得到解析解
梯度下降
- 无法得到解析解时,可通过梯度下降的方法优化(通用),通过不断地在损失函数递减的方向上更新参数来降低误差
- 简单用法:计算损失函数(所有样本的损失均值) 关于模型参数的导数(梯度)。但需要遍历数据集,通常随机抽取一部分样本计算,称为小批量随机梯度下降
- 步骤:
- 初始化模型参数的值,如随机初始化
- 随机抽样小批量固定数量的训练样本
- 计算平均损失关于模型参数的梯度
- 我们将梯度乘以一个预先确定的正数
为学习率,并从当前参数的值中减掉,即在负梯度的方向上更新参数,学习率表示更新移动的步长
似然估计法
- 观测中包含噪声,其中噪声服从正态分布,可以写出通过给定的
观测到特定 的似然
根据极大似然估计法,参数
SoftMax 回归
- 图像分类,编码标签作为数据,一个类别作为一个输出,一个特征作为一个输入,共 n(输入)*n(输出)个权重参数
- 如三个输出,四个输入的三个未规范化的预测
- 能够将未规范化的预测 o 变换为非负数并且总和为 1,同时让模型保持可导的性质。
- 参数过多,平衡开销和模型有效性: d 个输入 q 个输出成本减小到 O(dq/n),n 为超参数
SoftMax 及其导数
熵
- 量化数据中的信息内容:
- 交叉熵损失:所有标签分布的预期损失值
- 信息熵:不能完全预测每一个事件,用信息量
来量化预测失败的惊异程度 - 交叉熵:H(P, Q)
多层感知机
隐藏层
- 克服线性模型的限制
- 将许多全连接层堆叠在一起
- 在仿射变换之后对每个隐藏单元应用非线性的 激活函数
,避免多层感知机退化成线性模型
激活函数
ReLU 函数,修正线性单元 ,要么让参数消失,要么让参数通过
sigmoid 函数,将输入变换为区间 (0, 1) 上的输出,挤压函数 ,是一个平滑的、可微的阈值单元近似
tanh 函数,将其输入压缩转换到区间(-1, 1)
欠拟合,过拟合
- 欠拟合:模型无法捕捉数据的内在规律
- 过拟合:训练数据上拟合的比在潜在分布中更接近
- 如果有足够多的神经元、层数和训练迭代周期, 模型最终可以在训练集上达到完美的精度,此时测试集的准确性却下降了。
- 泛化误差:在同样原始样本的分布中抽无限多数据样本,模型误差的期望。
统计学习理论
- 前提为独立同分布假设:假设训练数据和测试数据都是从相同的分布中独立提取的
- 但几乎所有现实的应用都至少涉及到一些违背独立同分布假设的情况,如时间相关性
模型复杂性
- 影响泛化的因素
- 可调整参数的数量:当可调整参数的数量(自由度)很大时,模型往往更容易过拟合。
- 参数采用的值:当权重的取值范围较大时,模型可能更容易过拟合。
- 训练样本的数量:尽量大
模型选择
- 测试希望比较具有不同数量的隐藏层、不同数量的隐藏单元以及不同的激活函数组合的模型
- 在模型选择过程中使用测试数据,可能会有过拟合测试数据的风险,测试时无法发现
- 所以在训练模型时,需要将训练数据集分成训练集、验证集和测试数据集,使用 验证集 确定候选模型中的最佳模型
- K 折交叉验证:训练数据被分成 K 个不重叠的子集。执行 K 次模型训练和验证,每次在 K-1 个子集上进行训练,并在剩余的一个子集上进行验证, 结果取平均来估计训练和验证误差
权重衰减
范数
- 向量的范数是表示一个向量有多大。 这里考虑的大小(size)概念不涉及维度,而是分量的大小,Lp 范数:向量中各个分量的绝对值的 p 次方的和的 p 次方根
- 欧几里得距离:L2 范数
权重衰减:L2 正则化
- 通过函数与零的距离来衡量函数的复杂度,控制复杂度,保证权重向量比较小
- 将其范数,如
作为惩罚项加到最小化损失的问题中, 最小化预测损失和惩罚项之和 - 其中
是正则化超参数,控制惩罚项在损失函数中的相对重要性 - L2 正则化线性模型构成经典的岭回归算法,对权重向量的大分量施加了巨大的惩罚。偏向于在大量特征上均匀分布权重的模型,使实践中对单个变量中的观测误差更为稳定
- L1 正则化线性回归是统计学中类似的基本模型,称为套索回归,模型将权重集中在一小部分特征上而将其他权重清除为零,为特征选择
- L2 正则化回归的小批量随机梯度下降更新如下式:
暂退法
- 先验:权重的值取自均值为 0 的高斯分布
- 目标:模型深度挖掘特征,将其权重分散到许多特征中,而不是过于依赖少数潜在的虚假关联
- “好”的预测模型:在未知的数据上有很好的表现
- 缩小训练和测试性能之间的差距,应该以 简单的模型 为目标
- 平滑性:即函数不应该对其输入的微小变化敏感,在计算后续层之前向网络的每一层 注入噪声 训练 -> 暂退法
如何注入噪声
无偏向:标准暂退法正则化中,通过按保留(未丢弃)的节点的分数进行规范化来消除每一层的偏差。 换言之,每个中间活性值 h 以暂退概率 p 由随机变量 h' 替换,期望值保持不变。如下所示:
概 率 为 其 他 情 况 测试时使用暂退法,以 p 的概率将隐藏单元置为零,用于估计神经网络预测的“不确定性”
前向传播、反向传播
前向传播
- 前向传播:按顺序(从输入层到输出层)计算和存储神经网络中每层的结果