猪猪のAI笔记
  • README
  • 读书笔记
    • 1.特征工程
      • 1.1.数值空间
      • 1.2.文本数据
      • 1.3.词袋到TF-IDF
      • 1.4.分类变量
      • 1.5.数据降维:PCA
    • 2.自然语言
      • 2.1.处理文本的机器
      • 2.2.词频背后
      • 2.3.神经网络基础
      • 2.4.Word2Vec,词向量推理
      • 2.5.神经网络深入
    • 3.神经网络
      • 3.1.绪论
      • 3.2.机器学习
      • 3.3.线性模型
      • 3.4.前馈神经网络
      • 3.5.卷积神经网络
      • 3.6.循环神经网络
      • 3.7.网络优化
      • 3.8.注意力机制/外部记忆
      • 3.9.无监督学习
    • 4.XGboost
      • 4.1.基础和初探
  • 课程系列
    • CDA III
      • 1.数据挖掘
      • 2.特征工程
      • 3.自然语言
      • 4.神经网络
      • 5.支持向量机
      • 6.集成学习
      • 7.朴素贝叶斯
      • 8.决策树
      • 9.聚类
      • 10.模型评估
      • 11.关联规则
      • 12.计算题知识点
      • 13.计算题分析
    • 题库分析
      • 深度学习
      • 机器学习-01
      • 机器学习-02
      • 机器学习-03
      • 机器学习-04
      • 机器学习-05
      • 机器学习-06
      • 机器学习-07
      • 机器学习-08
      • 机器学习-09
      • 机器学习-10
      • Level III模拟(一)
      • Level III模拟(二)
    • 知识点
      • Transformer模型
      • ELMO,BERT,GPT
      • 正则化之L1,L2
      • 距离详解
    • K-RPA
      • RPA行业展望
      • 命名规范和开发原则
      • 脚本向导编程
      • K-RPA异常处理
      • K-RPA文件/目录操作
      • (高)K-RPA环境
      • (高)K-RPA命名规范和开发原则
      • (高)K-RPA脚本向导编程
      • (实)01:安装K-RPA
      • (实)02:脚本向导编程
      • (实)03:完整案例
      • (实)04:文件和集成
由 GitBook 提供支持
在本页
  • 1.人工智能
  • 1.1.发展历史
  • 1.2.流派
  • 2.机器学习
  • 3.表示学习
  • 3.1.局部表示和分布式表示
  • 3.2.表示学习
  • 4.深度学习
  • 4.1.端到端
  • 5.神经网络
  • 5.1.人脑神经网络
  • 5.2.人工神经网络
  • 5.3.发展历史
  • 6.结构图
  • 7.深度学习框架

这有帮助吗?

  1. 读书笔记
  2. 3.神经网络

3.1.绪论

    神经网络和深度学习并不等价,深度学习可以采用神经网络模型,也可以采用其他模型(如深度信念网络是概率图模型),由于神经网络容易解决贡献度分配问题,因此神经网络模型为深度中主要使用的模型。

1.人工智能

    定义:人工智能(Artificial Intelligence,AI)就是让机器具有人类智能,这也是人们追求的长期目标。图灵测试:一个人在不接触对方的情况下,通过一种特殊方式和对方进行一系列回答,如果在相当长时间内,无法根据这些问题判断对方是机器还是人,那么就可以认为这个计算机通过了图灵测试。

    另一定义:人工智能就是要让机器的行为看起来就像是人所表现的智能行为一样。所以人工智能体现在三个方面:

  1. 感知:模拟人的感知能力,对外部刺激信息(视觉和语音)进行感知和加工,主要研究领域包括语音信息处理和计算机视觉。

  2. 学习:模拟人的学习能力,主要研究如何从样例或从与环境的交互中学习,主要研究领域包括监督学习、无监督学习和强化学习等。

  3. 认知:模拟人的认知能力,主要研究领域包括知识表示、自然语言理解、推理、规划、决策等。

1.1.发展历史

  • 推理期

  • 知识期:专家系统 = 知识库 + 推理机

    • 1)领域专家知识

    • 2)模拟专家思维

    • 3)专家级水平(Prolog语言)

  • 学习期:机器学习ML(Machine Learning, ML),设计和分析一些学习算法,让计算机从数据(经验)中获得规律,对未知领域进行预测

1.2.流派

  • 符号主义(Symbolism,可解释性强)

    • 信息可以用符号来表示

    • 符号可以通过显式的规则来操作

  • 连接主义(Connectionism,可解释性弱):人的认知过程是由大脑简单神经元构成,而不是符号运算。

2.机器学习

    机器学习(ML)是从优先的观测数据中学习(猜测)具有一般规律,并利用这些规律对未知数据进行预测的方法。传统机器学习关注预测模型,将数据表示为特征(Feature),这类机器学习可以看做浅层学习(Shallow Learning)。

  1. 数据预处理

  2. 特征提取

  3. 特征转换:特征抽取/特征选择,如PCA、LDA

  4. 预测

最后很多机器学习变成了特征工程(Feature Engineering)问题。

3.表示学习

    为提高机器学习准确率,我们需将输入信息转换为有效的特征,或者一般性称为表示(Representation);如果有一种算法可自动学习有效特征提高模型性能,那么这种学习就可以称表示学习(Representation Learning)。

    语义鸿沟(Samantic Gap)问题是表示学习的关键,表示:输入数据的底层特征和高层信息之间的不一致性和差异性。——如果有一个好的表示在某种程度上能反映出数据的高层语义特征,那么我们就能相对容易地构建后续机器学习模型,核心问题:

  1. 什么是一个好的表示?

  2. 如何学习到好的表示?

3.1.局部表示和分布式表示

    一个好的表示的优点:

  1. 一个好的表示应该具有很强的表示能力,同样大小的向量可以表示更多信息。

  2. 一个好的表示应该使后续的学习任务变得简单,即需要包含更高层的语义信息。

  3. 一个好的表示应该具有一般性,是任务或领域独立的,所以我们期望学到的表示更容易迁移到其他任务上。

    表示学习的两种特征表示方式:

  • 局部表示(Local Representation)

    • 这种方式又称为离散表示和符号表示,局部表示通常可以表示为One-Hot向量(独热编码)。

    • 它的优点:

      • 这种离散表示方式有很好的解释性,有利于人工归纳和总结特征,并通过特征组合进行高效的特征工具。

      • 通过多种特征组合得到的表示向量通常是稀疏的二值向量,用于线性模型时效率很高。

    • 它的缺点:

      • One-Hot向量维度很高,不能扩展,如果新增一种颜色就需要增加一维的表示。

      • 不同颜色之间相似度为0,所以无法估计维度之间相似度。

  • 分布式表示(Distributed Representation)

    • 例:表示颜色时候用RGB值表示,对应的R, G, B三维空间中一个点,直接使用三维坐标表示,这种是分布式表示。

    例子:

颜色
局部
分布式

琥珀色

天蓝色

中国红

咖啡色

    嵌入:将一个度量空间中的一些对象映射到另一个低维的度量空间中,并尽可能保持不同对象之间的拓扑关系,如NLP中分布式表示就称为词嵌入。

3.2.表示学习

    要学习一种好的高层语义表示(分布式),通常要从底层特征开始,经过许多非线性转换才能得到;深层结构的优点是增加特征重用性,从而指数级增加表示能力。

    这种方式的传统方法:

  1. 主成分分析

  2. 线性判别分析

  3. 独立成分分析

4.深度学习

    深度:指原始数据进行非线性特征转换的次数(如果是有向图,则深度是输入到输出经过的最长路径长度),所以需要一种学习方法从数据中学习一个“深度模型”,这就是深度学习。

    深度步骤:

    深度学习要解决的关键问题是贡献度分配问题(Credit Assignment Problem, CAP)——即一个系统中不同的组件(Component)或其参数对最终系统输出结果的影响。深度学习可以看做一种强化学习(Reinforcement Learning, RL),每个内部组件并不能直接得到监督信息,要通过整个模型的最终监督信息得到。

4.1.端到端

    传统机器学习的问题

  1. 每一个模块都要单独优化,其优化目标和任务总体目标并不一致。

  2. 二是错误传播,前一步错误会对后续模型造成影响。

    端到端(End-To-End Learning)也称端到端训练,指学习过程中不进行分模块或分阶段训练,直接优化任务的总体目标,同样要解决贡献度分配问题(Credit Assignment Problem, CAP),神经网络模型就是端到端。

5.神经网络

    机器学习领域,神经网络是由很多人工神经元构成的网络结构模型。

5.1.人脑神经网络

    神经元(Neuron)、也叫神经细胞(Nerve Cell),是携带和传输信息的细胞,人脑中的基本单元。神经元结构大可分为细胞体和细胞突起:

  1. 细胞体(Soma)

  2. 细胞突起

    1. 树突(Dendrite)

    2. 轴突(Axon)

    神经元只有两种状态:兴奋和抑制,神经元之间没有物理连接,两个连接之间有20纳米缝隙,通过突触(Synapse)传递信息——即神经网络。

    赫布理论(Hebbian Theory)和赫布规则(Hebbian Rule):如果神经元A一个轴突和神经元B接近,并产生影响,持续重复参与了B的兴奋,那么这两个神经元或其中之一会发生某种生产过程或新城代谢变化,以至A作为使神经元B兴奋的细胞之一。

    赫布学习(Hebbian Learning):如果两个神经元总是相关联地受到刺激,它们之间的突触强度增加,人脑有两种记忆:长期记忆和短期记忆,短期转长期的过程就是凝固作用(在人脑的海马区中执行)。

5.2.人工神经网络

    人工神经网络是模拟人脑神经网络而设计的计算模型,从结构、实现机理和功能上模拟人脑神经网络。

  1. 赫布网络:首个可学习的人工神经网络、采用基于赫布规则的无监督学习法。

  2. 感知机:最早的具有机器学习思想的神经网络,但学习方法无法扩展到多层神经网络上。

  3. 反向传播算法:解决了多层神经网络的学习问题,成为流行的神经网络的学习算法。

    把一个人工神经网络塑造复杂函数的能力称为网络容量(Network Capacity),和存储在网络中的信息的复杂度以及数量相关。

5.3.发展历史

    五个阶段

  1. 模型提出

    1. 1943年,MP模型。

    2. 1948年,基于Hebbian法则的“B型图灵机”。

    3. 1951年,第一台神经网络机器SNARC。

    4. 1958年,可以模拟人类感知能力的神经网络模型,感知机(Perceptron)。

  2. 冰河期

    1. 1974年,反向传播算法(BackPropagation, BP)。

    2. 1980年,新知机(Neocognitron)。

  3. 反向传播算法引起的复兴

    1. 1983年,用于联想记忆(Associative Memory)的神经网络,称为Hopfield网络。

    2. 1984年,随机化版本的Hopfield网络,即玻尔兹曼机(Boltzmann Machine)。

    3. 1986年,连接主义模型,分布式并行处理(Parallel Distributed Processing, PDP)。

    4. 1989年,卷积神经网络,自动微分可以算作BP的扩展。

    5. 1992年,多层循环神经网络,用于解决梯度消失问题(Vanishing Gradient Problem)。

  4. 流行度降低

    1. 1995 ~ 2006年,支持向量机/线性分类器兴起。

  5. 深度学习崛起

    1. 2006年,逐层预训练来学习深度信念网络。

    2. 2012年,深度学习在语音识别、图像分类应用中的成功。

6.结构图

7.深度学习框架

  1. Theano:Python工具包,高效定义、优化和计算张量数据的数据表达式。

  2. Caffe:卷积网络的计算框架,主要用于计算机视觉。

  3. TensorFlow:Google的深度学习框架,1.0使用静态计算图,2.0使用动态计算图。

  4. PyTorch:(Facebook、NVIDIA、Twitter)基于动态图计算框架,若动态改变网络结构有明显优势。

  5. 飞桨(PaddlePaddle):百度开发的高效和可扩展的学习框架。

  6. MindSpore:华为开发的一种适用于端边云场景的新型深度学习训练/推理框架。

  7. Chainer:最早采用动态计算图的深度学习框架。

  8. MXNet:亚马逊、华盛顿大学、卡内基梅隆大学维护的深度学习框架,支持混合符号和命令编程让效率最大化。

    知名的模块化神经网络框架:

  1. 基于TensorFlow和Theano的Keras。

  2. 基于Theano的Lasagne。

  3. 面向图结构数据的DGL。

上一页3.神经网络下一页3.2.机器学习

最后更新于3年前

这有帮助吗?

[1,0,0,0]T[1,0,0,0]^T[1,0,0,0]T
[1.00,0.75,0.00]T[1.00,0.75,0.00]^T[1.00,0.75,0.00]T
[0,1,0,0]T[0,1,0,0]^T[0,1,0,0]T
[0.00,0.5,1.00]T[0.00,0.5,1.00]^T[0.00,0.5,1.00]T
[0,0,1,0]T[0,0,1,0]^T[0,0,1,0]T
[0.67,0.22,0.12]T[0.67,0.22,0.12]^T[0.67,0.22,0.12]T
[0,0,0,1]T[0,0,0,1]^T[0,0,0,1]T
[0.44,0.31,0.22]T[0.44,0.31,0.22]^T[0.44,0.31,0.22]T