读书笔记:深度学习入门-基于Python的理论与实现

  • 机器学习:讨论各式各样的适用于不同问题的函数形式,以及如何使用数据来有效地获取函数参数具体值的学科。
  • 深度学习:机器学习中的一类函数,它们的形式通常为多层神经网络。
    • ch1-Python入门

      • Python解释器

        • 数据类型:type()函数
          • int整型
          • float浮点型
          • str字符串
        • 变量:x/y等
        • 列表(数组)
          • a[索引]
        • 字典:以键值对的形式储存数据
        • 布尔型(bool型):取True或False中的一个值。
        • if语句
        • for语句:循环处理
        • 函数
      • Python脚本文件

        • class:类
      • Numpy

        • 生成Numpy数组
          • np.array()接收Python列表作为参数,生成NumPy数组(numpy.ndarray)。

        • Numpy的算数运算(元素个数需要相同,否则程序报错)
        • Numpy的N维数组
          • 一维数组:向量
          • 二维数组:矩阵
          • 多维数组:一般化后的向量或矩阵--张量
        • 广播:形状不同的数组之间运算,先进行扩展
        • 访问元素

      • Matplotlib

        • pyplot模块

          • 显示图像imread()
    • ch2-感知机

      • 感知机的概念

      • 简单逻辑电路

        • 与门:全1为1,其余为0

        • 与非门:与门取反

        • 或门:全0为0,其余为1

        • 异或门:相同为0,相异为1(单层感知机的局限性就在于无法实现曲线分割,即非线性空间,可采用叠加层)

      • 多层感知机

    • ch3-神经网络

      • 激活函数

        • sigmoid函数

        • 阶跃函数

        • ReLu函数

      • 多维数组的运算

        • 维度和形状
        • 内积(点乘)
      • 三层神经网络的实现

        • 符号确认

        • 代码实现

      • 输出层的设计

        • 恒等函数—回归问题
          • 输入等于输出,原封不动
        • softmax函数—分类问题(概率)

          • 防止溢出的处理(值过大)

      • 手写数字识别-MNIST数据集

        • 前向传播
          • load_minist函数

          • PIL模块:用于显示图像

        • 推理处理
          • 输入出输出设置数值的来源

          • 定义三个函数

          • 评价识别精度

          • 预处理
            • 正规化:把数据限定到某 个范围内的处理称为正规化(所有像素值除以255,即限定在0~1)
            • 白化:数据整体的分布形状均匀化
          • 批处理

            • range() 函数:若指定为range(start, end),则会生成一个由start到end-1之间的整数构成的 列表。若像range(start, end, step)这样指定3个整数,则生成的列表中的 下一个元素会增加 step 指定的值。
            • argmax()函数:获取值最大的元素的索引。不过这里需要注意的是, 我们给定了参数 axis=1。这指定了在 100 × 10 的数组中,沿着第 1 维方向(以 第 1 维为轴)找到值最大的元素的索引(第 0 维对应第 1 个维度)。
    • ch4-神经网络的学习

      • 神经网络的特征:从数据中学习

        • 泛化能力:处理未被观察过的数据的能力
        • 监督数据:训练数据
        • 过拟合:只对某个数据集过度拟合的状态
      • 损失函数:一种指标,神经网络以此为线索寻找最优权重参数

        • 均方误差

          • one-hot表示:正确解标签表示为1,其余为0
        • 交叉熵误差

        • mini-batch学习:从大量的训练数据中随机选择指定个数的数据进行学习
      • 数值微分

        • 导数

        • 舍入误差

        • 例子

        • 偏导数:有多个变量的函数的导数
      • 梯度:由全部变量的偏导数汇总而成的向量。梯度指示的方向是各点处的函数值减小最多的方向。

        • 数学式表示梯度

        • 神经网络的梯度
      • 算法的实现

        • 随机梯度下降法

        • 2层神经网络的类

    • ch5-误差反向传播

      • 反向传播

        • 加法

          • 直接传给下游

        • 乘法

          • 需要正向的输入值

      • 简单层的实现

        • 乘法层(MulLayer类)代码实现

          • 加法层代码实现

      • 激活函数层的实现

        • ReLU层

        • Sigmoid层

      • Affinie的实现

        • Affinw层定义
          • 神经网络的正向传播中进行的矩阵的乘积运算在几何学领域被称为“仿射变换”A。因此,这里将进行仿射变换的处理实现为“Affine 层”。

        • 批版本Affine层

      • Softmax-with-Loss 层

      • 误差反向传播法

        • 误差反向传播法的梯度确认

    • ch6-调参技巧

      • 参数的更新方法

        • 最优化:寻找最优参数

        • SGD
        • Momentum
        • AdaGrad
        • Adam
      • 权重初始值

        • Xavier初始值
        • He初始值
        • Batch Normalization
      • 抑制过拟合的正则化技术

        • 权值衰减
        • Dropout
    • ch7-卷积神经网络CNN

      • 整体结构

      • 卷积层

        • 输入输出数据称为特征图(feature map)。其中,卷积层的输入数据称为输入特征图(input feature map),输出数据称为输出特征图(output feature map)。
          • 填充:向输入数据的周围填入固定的数据,比如 0
          • 步幅:应用滤波器的位置间隔
          • 输出大小
            • 增大步幅后,输出大小会变小。而增大填充后,输出大小会变大。

      • 池化层

        • 池化的定义:缩小高、长方向上的空间的运算。在图像识别领域主要使用Max池化
        • 池化层的特征

      • 卷积层和池化层的实现

        • 4维数组

        • 基于im2col展开(image to column)
          • 定义:im2col 是一个函数,将输入数据展开以适合滤波器(权重)
        • 卷积层的实现

        • 池化层的实现

        • CNN的实现
          • 网络构成(SimpleConvNet的类)

          • 初始化最开始的部分

          • 权重参数的初始化部分

          • 生成必要的层

          • 基于误差反向传播法求梯度的代码实现

        • CNN可视化
          • 第1层权重的可视化

          • 基于分层机构的信息提取

        • 具有代表性的CNN
          • LeNet
            • 与现在的CNN相比有几个不同点。第一个不同点在于激活 函数。LeNet 中使用 sigmoid 函数,而现在的 CNN 中主要使用 ReLU 函数。 此外,原始的LeNet中使用子采样(subsampling)缩小中间数据的大小,而 现在的 CNN 中 Max 池化是主流。
          • AlexNet
            • 与LeNet没有太大不同。主要差异在于激活函数使用ReLU;使用进行局部正规化的LRN(Local Response Normalization)层;使用Dropout
    • ch8-深度学习

      • 加深网络

      • 提高识别精度

        • 集成学习
        • 学习率衰减
        • Data Augmentation
          • 数据扩充,例如旋转平移裁剪翻转等变形,施加亮度等外观变化,放大缩小等尺度变化
        • 加深层的好处
          • 可以减少参数的数量,扩大感受野(receptive field,给神经元施加变化的某个局部空间区域)。并且, 通过叠加层,将 ReLU 等激活函数夹在卷积层的中间,进一步提高 了网络的表现力。
        • ImageNet
          • 拥有超过 100 万张图像的数据集,它包含 了各种各样的图像,并且每张图像都被关联了标签(类别名)。每年都会举办 使用这个巨大数据集的 ILSVRC 图像识别大赛。
      • 深度学习的历史

        • VGG

          • 由卷积层和池化层构成的基础的 CNN。不过,如图 8-9 所示, 它的特点在于将有权重的层(卷积层或者全连接层)叠加至 16 层(或者 19 层), 具备了深度

        • GoogleLeNet

          • 网络不仅 在纵向上有深度,在横向上也有深度(广度)。GoogLeNet 在横向上有“宽度”,这称为“Inception 结构”

        • ResNet

          • 导入了“快捷结构”(也称为“捷径”或“小路”)。导入这 个快捷结构后,就可以随着层的加深而不断提高性能了

        • 迁移学习

      • 深度学习的高速化

        • 基于GPU的高速化
          • GPU 原本是作为图像专用的显卡使用的,但最近不仅用于图像处理, 也用于通用的数值计算。由于 GPU 可以高速地进行并行数值计算,因此 GPU 计算的目标就是将这种压倒性的计算能力用于各种用途。
        • 分布式学习
        • 运算精度的位数缩减
          • 今后半精度浮点数将 被作为标准使用
      • 深度学习的应用案例

        • 物体检测

        • 图像分割
          • 最简单的是以所有像素为对象,对 每个像素执行推理处理。
          • FCN

        • 图像标题的生成
          • NIC

      • 深度学习的未来

        • 图像风格变换
        • 图像的生成
          • DCGAN

        • 自动驾驶
          • SegNet
        • Deep Q-Network(强化学习)
          • 基本框架:代理(Agent)根据环境选择行动,然后通过这 个行动改变环境。根据环境的变化,代理获得某种报酬。强化学习的目的是 决定代理的行动方针,以获得更好的报酬

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值