2019-05-26 | Deep Learning | UNLOCK

Deep Learning | 图解机器学习

第一章 绪论

Dropout——防止过拟合

激活函数、预训练 ——使训练过程顺利收敛

定义:深度学习一般是指具有多层结构的网络,不过对于网络的层数没有严格定义,网络生成方法也是多种多样

深度学习的起源:

  • 感知器
    • 有监督学习
    • 将多个感知器组合到一起得到多层感知器,在多层感知器的基础上加入类似人类视觉皮质的结构得到卷积神经网络
    • 广泛应用于图像识别领域
  • 玻尔兹曼机
    • 无监督学习
    • 深度玻尔兹曼机和深度信念网络通过将多个玻尔兹曼机组合到一起得到

第二章 神经网络

2.2 M-P模型

首个通过模仿神经元而形成的模型。当时还没有通过对训练样本进行训练来确定参数的方法,只能人为事先计算后确定。

2.3 感知器

  • 与M-P模型需要人为确定参数不同,感知器能通过训练自动确定参数。训练方式为有监督学习,即需要设定训练样本和期望输出,然后调整实际输出和期望输出之差的方式(误差修正学习)。

  • 但是感知器只能解决线性可分问题,不能解决线性不可分问题。为了解决线性不可分问题使用多车感知器

    • 无法用一条直线将两个类别区分开的就是线性不可分问题

2.4 多层感知器(multilayer perception)

定义:由多层结构的感知器递阶组成的输入值向前传播的网络,也被称为前馈网络或正向传播网络。

结构组成

  • 输入层
  • 中间层
    • 中间层的感知器通过权重与输入层的各单元相连接,通过阀值函数计算中间层各单元的输出值
    • 中间层与输出层之间同样时通过权重相连接
  • 输出层

对于多层网络如何训练连接权重,引入了误差反向传播算法。

2.6 误差函数和激活函数

  • M-P模型中使用step函数作为激活函数
  • 多层感知器中使用sigmoid函数
  • tanh函数(双曲正切函数)
  • 修正线性单元(Rectified Linear Unit, ReLU)

2.8 随机梯度下降法

  • 批量学习(batch learning)
    • 每次迭代时遍历全部训练样本
    • 优点:有效抑制训练集内带噪声的样本所导致的输入模式剧烈变动
    • 缺点:训练时间长
  • 在线学习(sequential learning或online Learning)
    • 迭代出现大幅变动,可能导致训练无法收敛。可以在迭代时逐渐降低学习率
  • 小批量梯度下降法(mini-batch learning)
    • 能同时弥补在线学习和批量学习的缺点

小批量梯度下降法和在线学习都是使用部分训练样本进行迭代计算,这种方法也叫作随机梯度下降法(Stocastic Gradient Descent, SGD)。减少迭代结果陷入局部最优解的情况。

2.9 学习率

定义:用来确定权重连接调整成都的系数。

  • 多数情况是设定一个较大的值,再慢慢把这个值减小
  • 自适应调整学习率,如AdaGrad方法
  • AdaDelta方法
  • 动量(momentum)方法

第三章 卷积神经网络

3.1 卷积神经网络的结构

  • 输入层(input layer)
  • 卷积层(convolution layer)
    • 输入样本和卷积核的内积运算。第一层卷积层对输入样本进行卷积操作后,就可以得到特征图。卷积层中使用同一卷积核对每个输入样本进行卷积操作。第二层及其以后的卷积层,把前一层的特征图作为输入数据,同样进行卷积操作。
      • 特征图的个数由上一层的卷积核决定
    • 填充(padding)
      • 零填充(zero-padding)用0填充输入样本的边界
    • 卷积结果不能直接作为特征图,需要经过激活函数计算,将函数结果作为特征图
  • 池化层(pooling layer)
    • 减少卷积层产生的特征图的尺寸。选取一个区域,根据该区域的特征图得到新的特征图,这个过程就称为池化操作。
    • 最大池化
    • 平均池化
    • Lp池化,通过突出图像区域内的中央值而计算新的特征图
  • 全连接层(fully connected layer)
    • 与多层感知器一样,先计算激活值,然后通过激活函数计算各单元的输出值
    • 需要对二维特征图进行降维处理
  • 输出层(output layer)
    • 使用似然函数计算各类别的似然概率
      • softmax函数
      • 线性输出函数

邱锡鹏《神经网络与深度学习》

第一章 绪论

深度学习目前需要解决的关键问题是贡献度分配问题(Credit Assignment Problem, CAP)。

将输入信息转换为有效的特征,也称为表示

目前深度学习模型主要是神经网络模型,这是因为神经网络模型可以使用误差反向传播算法,可以比较好的解决贡献度分配问题。

超过一层的神经网络都可以看作是深度学习模型。

所谓深度就是指原始数据进行非线性特征转换的次数,深度学习是机器学习的一个子问题,其主要目的是从数据中自动学习到有效的特征表示。

1566470614273

特征转换:主成分分析PCA,线性判别分析

  • 降维
    • 特征抽取feature extraction
    • 特征选择feature selection
  • 升维

第二章 机器学习概述

2.1 基本概念

样本:标记好特征及标签

数据集:一组样本构成

2.2 机器学习三个基本要素

2.2.1 模型

​ 由于我们不知道真实的映射函数g(x)或条件概率分布pr(y|x)的具体形式,只能根据经验来确定一个假设函数集合F,称为假设空间 (hypothesis space),然后通过观测其在训练集D 上的特性,从中选择一个理想的假设(hypothesis)f∗ ∈ F。

  • 线性模型
  • 非线性模型

2.2.2 学习准则

  • 损失函数:一个非负实数函数,用来量化模型预测和真实标签之间的差异。一般损失函数都是连续可微的

  • 经验风险(Empirical Risk):训练集上的平均损失

    • 经验风险最小化准则(Empirical Risk Minimization,ERM),经验风险最小化原则很容易导致模型在训练集上错误率很低,但是在未知数据上错误率很高,这就是所谓的过拟合 (Overfitting)。
    • 结构风险最小化准则(Structure Risk Minimization, SRM),在经验风险最小化的基础上引入参数的正则化 (regularization),来限制模型能力,使其不要过度地最小化经验风险。

    欠拟合(underfitting):模型不能很好的拟合训练数据,在训练集的错误率比较高,由于模型的能力不足造成的。

    防止过拟合的方法:

    1. 正则化
    2. 提前停止(early stop):每次迭代时,把新得到的模型$f(x,\theta)$ 在验证集(validation set)上进行测试,并计算错误率。如果在验证集上错误率不再下降,就停止迭代。

2.2.3 优化算法

不同机器学习算法的区别在于模型、学习准则(损失函数)和优化算法的差异。

  • 批量梯度下降法(Batch Gradient Descent, BGD)

    • 每次迭代的优化目标为所有样本的平均损失函数
  • 随机梯度下降法(Stochastic Gradient Descent, SGD)

    • 每次迭代的优化目标为单个样本的损失函数
  • 小批量梯度下降法(Mini-Batch Gradient Descent)

    • 每次迭代时,随机选取小部分训练样本来计算梯度并更新参数

易混淆概念

1. 神经网络中Epoch、Iteration、Batchsize的相关理解和思考

参考链接https://blog.csdn.net/program_developer/article/details/78597738

Batchsize

批大小,决定我们一次训练的样本数目,影响模型的优化程度和速度。

在内存效率和内存容量之间寻找最佳平衡

Iteration

迭代

每一次迭代得到的结果都会作为下一次迭代的初始值

一个迭代=一个正向通过+一个反向通过

Epoch

时期

一个时期=所有训练样本的一个正向传递和一个方向传递

深度学习中经常看到epoch、iteration和batchsize,下面按照自己的理解说说这三个区别:

(1)batchsize:批大小。在深度学习中,一般采用SGD训练,即每次训练在训练集中取batchsize个样本训练;
(2)iteration:1个iteration等于使用batchsize个样本训练一次;
(3)epoch:1个epoch等于使用训练集中的全部样本训练一次;

举个例子,训练集有1000个样本,batchsize=10,那么:
训练完整个样本集需要:100次iteration,1次epoch。

评论加载中