深度学习笔记-1

绪论&卷积神经网络基础

绪论

  • 什么是人工智能
    使一部机器像人一样进行感知、认知、决策、执行的人工程序或系统。
  • 图灵测试
    假设在一个封闭空间中,完成一个任务,外部人员能否判断出完成这个任务的是机器还是人。(验证码系统)
  • 逻辑演绎 VS 归纳总结
    • 逻辑演绎
      • 知识表达与推理
      • 符号主义:使用符号、规则和逻辑来表征知识和进行逻辑推理(自上而下)
      • 定理证明机、专家系统
    • 归纳总结
      • 模型、策略、算法
      • 贝叶斯:对事件发生的可能性进行概率推理(自上而下、自下而上)
      • 联结主义:模拟脑结构,使用概率矩阵来识别和归纳模式(自下而上)
      • 朴素贝叶斯隐马尔科夫、神经网络
  • 知识工程/专家系统 vs 机械学习

    • 知识工程
      • 根据专家定义的知识和经验,进行推理和判断,从而模拟人类专家的决策过程来解决问题。
      • 基于手工设计规则建立专家系统
      • 结果容易解释
      • 系统构建费时费力
      • 依赖专家主观经验,难以保证一致性和准确性
    • 机器学习
      • 建立决策树,对输入的测试内容进行标注,让其自动学习;当输入一个当内容,自动进行分类
      • 基于数据自动学习
      • 减少人工复杂工作,但结果可能不易解释
      • 提高信息处理的效率,且准确率较高
      • 来源于真实数据,减少人工规则主观性,可信度高
  • 模型分类

    • 数据标记
      • 监督学习模型:输入样本具有标记,从数据中学习标记分界面,适用于预测数据标记
      • 无监督学习模型:输入样本没有标记,从数据中学习模式,适用于描述数据
      • 半监督学习:部分数据标记已知
      • 强化学习:数据标记未知,但知道与输出目标相关的反馈
    • 数据分布
      • 参数模型:对数据分布进行假设,待求解的数据模式/映射可以用一组有限且固定数目的参数进行刻画
      • 非参数模型:不对数据分布进行假设,数据的所有统计特征都来源于数据本身
    • 建模对象
      • 生成模型:对输入和输出的联合分布P(X,Y)建模;从数据中先学习到 X 和 Y 的联合分布,然后通过贝叶斯公式求的 P(Y|X)
      • 判别模型:对已知输入X条件下输出Y的条件分布 P(Y|X) 建模;直接学习 P(Y|X),输入 X ,直接预测 Y
  • 深度学习的“不能”

    • 算法不稳定,容易被攻击;eg,一张图像加入噪声或像素点更改就会产生完全不同的输出结果
    • 模型复杂度高,难以纠错和调试
    • 模型层级复合程度高,参数不透明
    • 端到端训练方式对数据依赖性强,模型增量性差;当样本数据量小的时候,深度学习无法体现强大拟合能力;深度学习可以进行语义标注和关系检测,但无法进一步完成图像描述(可能需要一个新的神经网络)
    • 专注直观感知类问题,对开放性推理问题无能为力
    • 人类知识无法有效引入进行监督,机器偏见难以避免不

神经网络基础

浅层神经网络

  • 神经元
    • 多输入单输出
    • 空间整合和时间整合
    • 兴奋性输入和抑制性输入
    • 阈值特性
  • M-P神经元

  • 多输入信号进行累加x
  • 权值w正负模拟兴奋/抑制,大小模拟强度
  • 输入和超过阈值,神经元被激活
  • 激活函数f
    • 输入超过阈值,神经元被激活,但不一定传递
    • 没有激活函数相当于矩阵相乘;每一层相当于一个矩阵,矩阵相乘仍为矩阵,即多层和一层一样

  • 单层感知器
    • 通过非线性激活函数,可以实现简单的逻辑非、与、或操作(线性问题),但却不可以解决异或问题(非线性问题)
    • 但可以通过多层感知器实现异或问题(数字电路),第一层的感知器可以理解为对一个非线性问题进行空间变化,将其转变为一个线性分类问题
  • 万有逼近定理
    • 如果一个隐层包含足够多的神经元,三层前反馈神经网络(输入-隐层-输出)能以任意精度逼近任意预定的连续函数
    • 双隐层感知器(输入-隐层1-隐层2-输出)逼近非连续函数
    • 神经网络每一层的作用
    • 每一层公式 $x^{l+1} = f(Wx^l +b)$
      • 完成输入->输出空间变换
        • 升维/降维(W*x)
        • 放大/缩小(W*x)
        • 旋转(W*x)
        • 平移(+b)
        • 弯曲 a()
      • 利用矩阵的线性变换和激活函数的非线性变换,将原始输入空间投影到线性可分的空间去分类/回归
      • 数据训练就是为了让神经网络选择这样一种线性和非线性变换
      • 增加节点:增加维度,即增加线性转换能力
      • 增加层数:增加激活函数的次数,即增加非线性转换次数
  • 误差反向传播

  • 梯度和梯度下降
    • 参数沿负梯度方向更新可以使函数值下降,但可能会陷入局部极值点,无法找到全局的极值点(与初始点位置有关)

  • 梯度消失

  • 当激活函数(sigmoid)落在饱和区的时候,其导数会很小,从而导致整个链式求导的反向传播的值很小,接近于零;从而在反向传播过程中,最后几层网络的训练效果很好,但前面的网络层因为梯度消失原因得不到很好的训练,从而在有新的训练输入后,经过前面的网络层,使得数据混乱,导致最后几层的训练失去效果
  • 增加深度会造成梯度消失,误差无法传播
  • 多层网络容易陷入局部极值,难以训练
  • 逐层预训练
    • 首先训练一个三层网络,然后在该网络上逐层往上加,达到逐层预训练的目的
    • 但因为是前面的网络层,所以没有很好的监督信息,解决方法:受限玻尔兹曼机和自编码器
    • 自编码器

- 对每一个隐层,使用自编码器进行训练,然后再把所有隐层结合起来,然后微调
  • 受限玻尔兹曼机(RBM)


深度学习笔记-1
http://example.com/2020/02/22/深度学习笔记-1/
作者
hyzs1220
发布于
2020年2月22日
许可协议