-
能干什么?分类、回归、生成任务
-
优点:拥有大规模参数的结构、可扩展性(结构化输入输出,便于扩展和复用)(结构化:输入输出无论含义,格式一样,比如n维向量)、非线性
-
机器学习定义: 机器学习任务由模型M、经验E、任务T、性能量度P组成。 模型的学习指M通过E,在P意义下相对得到E并运行学习算法前在T上有所改进。
-
统计机器学习的三个基础假设: 真实分布假设、独立同分布假设、低维流形假设
-
线性感知机算法(PLA)
-
多层感知机(MLP)
-
实际问题->数值优化问题,在数值计算领域,优化问题的最常用、效果最好的算法绝大部分是基于梯度的算法。神经网络的简单基本结构的可导性(直接乘矩阵怎么微?)以及参数空间的连续性,我们可以方便地使用梯度法作为优化方法。
-
梯度下降算法
-
随机梯度下降算法(SGD) 随机选取中引入噪声,噪声的作用? 为什么达到极小?
-
数值微分法
(中值数值微分法)
该方法的时间复杂度是 O ( N ) × O ( f o r w a r d ),N是参数规模。通常来说, O(forward) 与参数量成近似线性关系,因此总的复杂度为 O(N2) 。这个复杂度在参数量很大(现代深度神经网络的参数量通常在千万到百亿级别)时是不可接受的。
我们注意到,在进行网络中靠近输出部分的参数的梯度计算时,两次正向传播中有大量的重复计算。因此我们希望寻找一种能够复用计算结果的方法来降低重复计算的开销。
-
反向传播
反向传播法是现有的神经网络计算梯度的最优方法。现代深度神经网络训练框架全部使用反向传播进行梯度计算。
-
通过计算图理解反向传播算法
-
神经空间的假设空间
-
理解神经网络结构设计的目的: 神经网络的结构设计一定依赖于对于特定问题结构或者数据的信息结构的研究。 不变性是一种常见的问题结构:
(1)平移不变性:系统在受到平移操作时,其性质保持不变。(CNN)
(2)特征空间不变性(embedding)(自回归编码器Autoencoder, AE)
自回归编码器(Autoregressive Encoder)是一种特殊类型的神经网络模型,主要由两个主要部分组成:编码器(Encoder)和解码器(Decoder)。编码器将高维输入数据映射到低维特征空间,而解码器则从低维特征空间中重构出原始数据。它结合了自回归模型和编码器的特性。这种模型在序列数据处理、生成模型和压缩等领域有广泛应用。
(a). 基本概念:
- 自回归(Autoregressive):指模型使用过去的观测值来预测未来的值。
- 编码器(Encoder):将输入数据转换为潜在表示(latent representation)的网络部分。
(b). 结构特点:
- 编码器部分:将输入序列转换为潜在表示。
- 自回归部分:基于潜在表示和之前的输出,逐步生成输出序列。
- 通常包含注意力机制,以捕捉序列中的长距离依赖。
(c). 工作原理:
- 输入序列通过编码器转换为潜在表示。
- 解码过程是自回归的,即每次生成一个输出元素。
- 每个输出元素依赖于之前生成的元素和潜在表示。
(d). 优势:
- 能够捕捉序列数据中的复杂依赖关系。
- 适用于生成任务,如文本生成、音乐生成等。
- 可以处理变长序列。
- 在某些任务中,比传统的序列到序列模型表现更好。
(e). 应用领域:
- 自然语言处理:文本生成、机器翻译、摘要生成。
- 语音处理:语音合成、语音识别。
- 音乐生成:创作音乐序列。
- 图像生成:条件图像生成。
- 时间序列预测:金融数据分析、天气预报。
(f). 典型模型示例:
- Transformer:虽然不完全是自回归编码器,但其解码器部分使用了自回归原理。
- GPT(Generative Pre-trained Transformer)系列:主要基于自回归原理。
- PixelCNN:用于图像生成的自回归模型。
- WaveNet:用于音频生成的自回归模型。
(g). 挑战与限制:
- 训练和推理可能比较慢,特别是对于长序列。
- 可能存在错误累积问题,即早期的错误预测会影响后续预测。
- 需要大量数据和计算资源进行训练。
(h). 最新发展:
- 结合强化学习技术,改善长期依赖的建模。
- 使用更高效的注意力机制,如稀疏注意力,以处理更长的序列。
- 探索更好的训练策略,如课程学习(curriculum learning)。
自回归编码器代表了序列建模和生成任务的一个重要发展方向。它们在多个领域展现出强大的能力,尤其是在需要理解和生成复杂序列数据的任务中。随着研究的深入,我们可以期待看到这类模型在效率、准确性和应用范围方面的进一步改进。
自回归编码器通过最小化重构误差来确保特征空间中的点能够有效地表示原始数据。重构误差通常通过均方误差来衡量:
(i). 延申:词向量、stable diffusion中的图片编码
(3). 转移概率不变性:在序列的不同时间步之间,状态转移的概率保持不变
时间步(Time Step)是在处理序列数据或时间序列数据时的一个基本单位。它代表了数据序列中的一个具体时间点或位置。在许多机器学习和统计模型中,特别是在处理时序数据时,这个概念非常重要。
通过几个例子来理解时间步:
-
在自然语言处理中: 每个单词可以被视为一个时间步。比如在句子"我喜欢人工智能"中,有4个时间步,每个词对应一个时间步。
-
在时间序列分析中: 如果你在分析每日股票价格,每一天就是一个时间步。
-
在视频处理中: 每一帧可以被视为一个时间步。
-
在循环神经网络(RNN)中: 网络处理序列数据时,每次处理一个输入元素,这个处理单位就是一个时间步。
在马尔可夫链或隐马尔可夫模型(?)中,时间步表示状态转换的离散时间点。当我们说"转移概率不变性"时,我们指的是无论在哪个时间步,从一个状态转移到另一个状态的概率都是相同的。
理解时间步的概念对于处理序列数据和设计相关算法非常重要,因为它帮助我们定义了如何在时间或序列维度上组织和处理数据。
(b). 递归神经网络(Recurrent Neural Network)是一类适合处理序列数据的神经网络模型。RNN的设计基于特征空间不变性和转移概率不变性,能够有效捕捉序列数据的动态特征和时间依赖性。
RNN由一系列递归单元组成,每个单元在每个时间步接收当前输入和前一个时间步的隐藏状态,并输出新的隐藏状态。
在RNN中,转移概率不变性通过两处设计来实现。首先是共享权重:RNN在每个时间步使用相同的权重,确保所有时间步的输入和隐藏状态都在相同的特征空间中处理。其二是隐藏状态的连续性:隐藏状态在时间序列中连续传递,确保每个时间步的特征表示与前后时间步的特征表示之间的关系保持一致。
————————
神经网络算法是典型的统计机器学习算法:从数据中获取信息,进而实现特定任务。
通过使用基于梯度的优化算法,我们在数据上训练神经网络,使其在任务上具有更好的表现。
通过一些对于数据和真实分布性质的假定,我们期望神经网络能够拥有超越经典优化问题的特点——泛化性。
同时,通过研究问题、数据与信息的结构,我们设计和改进神经网络的结构,进而提高神经网络的训练和泛化性能。
希望大家能够体会到机器学习的核心:数据与信息,任务与模型,进而理解并适当使用神经网络这一强大的工具。