简短介绍AGI/AI训练领域内一些基础理论与常用术语及其概念,不讨论详细的算法实现与计算过程
更新截止2025-07-30
总体框图
由于github markdown渲染器的问题暂时先用矢量图
AI算法基础
监督学习(Supervised learning)
监督学习是一种机器学习任务,其中算法通过从标记的训练数据中学习模式和关系,以进行预测或分类。 在监督学习中,算法的目标是通过输入特征与其相应的标签之间的关联性,构建一个能够准确预测新数据标签的模型。
- 监督学习的典型任务包括分类和回归问题 1.分类问题:给定一组输入特征,目标是将其分为预定义的类别。例如,根据邮件的特征(主题、正文等)将其分类为“垃圾邮件”或“非垃圾邮件”。 2.回归问题:给定一组输入特征,目标是预测连续值的输出。例如,根据房屋的特征(面积、卧室数量等)预测其价格。 在监督学习中,关键是有标记的训练数据,这些数据包含输入特征和对应的标签或输出。通过使用这些标记的数据来训练模型,监督学习算法可以学习输入特征和输出之间的关系,并能够用于预测新的未标记数据的输出。
- 监督学习的流程监督 学习的基本流程要点如下
- 准备数据集:监督学习的前提是收集并整理好的数据集。数据集应确保完整性、准确性和可操作性。
- 特征工程:特征是从数据中提取的用于训练模型的特定可测量属性。特征工程就是从原始数据中提取有用特征和构造新的特征,以便让模型更好地拟合数据。
- 模型选择和训练:选择适合问题的模型来对样本进行拟合,并使用训练数据对模型进行训练。
- 模型评估:使用测试数据集评估模型的性能。通常情况下需要将数据集分成训练集和测试集两部分,避免模型过度拟合。
- 模型优化:根据模型评估结果对模型进行调整,以使其能够更好地适应数据并产生更好的预测结果。优化模型可以通过调整模型的超参数、添加新的特征等方法进行。
- 监督学习的算法可以分为以下几类
cata | content |
---|---|
线性模型: | 线性回归、逻辑回归等 |
基于核函数的模型: | 支持向量机(SVM) |
决策树和基于集成的方法: | 随机森林、Adaboost 等 |
人工神经网络和深度学习: | 全连接神经网络、卷积神经网络( CNN)、循环神经网络(RNN)及其变种模型 |
非监督学习(Unsupervised learning)
非监督学习是指在没有类别信息情况下,通过对所研究对象的大量样本的数据分析实现对样本分类的一种数据处理方法。由于在很多实际应用中,缺少所研究对象类别形成过程的知识,或者为了判断各个样本(模式)所属的类别需要很大的工作量,因此往往只能用无类别标答的样本集进形学习。
通过无监督式学习,把样本集划分为若干个子集(类别),从而直接解决看样本的分类问题,或者把它作为训练样本集,再用监督学习方法进行分类器设计。 非监督学习目标不是告诉计算机怎么做,而是让计算机自己学习怎么做事情。
非监督学习一般有两种思路:
- 第一种思路称为聚类(Clustering),这类学习类型的目标不是让效用函数最大化,而是找到训练数据中的近似点。常见的应用场景包括关联规则的学习及聚类等。常见算法包括Apriori、K-Means、EM等。
- 第二种思路是在指导Agent时不为其指定明确的分类,而是在成功时采用某种形式的激励制度。需要注意的是,这类训练通常会被置于决策问题的框架里,因为它的目标不是产生一个分类系统,而是做出最大回报的决定,这类学习往往被称为强化学习。
强化学习
强化学习是基于环境的反馈而行动,通过不断的与环境的交互、试错,最终完成特定的目的,或者使得整体行动收益最大化,强化学习不需要训练数据的Label,但是它需要每一步行动环境给予的反馈,是奖励还是惩罚,反馈可以量化,给予反馈不断的调整训练对象的行为。
强化学习这个概念是2017年Alpha Go战胜了当时世界排名第一的柯洁而被大众知道,后面随着强化学习在各大游戏比如王者荣耀中被应用,而被越来越多人熟知。
基本原理: 强化学习是从动物学习、参数扰动自适应控制等理论发展而来,其基本原理是:如果Agent的某个行为策略导致的奖赏(强化信号),那么Agent以后产生这个行为策略的趋势便会加强。Agent的目标是在每个离散状态发现最优策略以使期望的折扣奖赏和最大。
graph TD
A(Agent) --> B(环境)
B(环境) --> C{观察者}
C --reward--> A
C --state--> A
深度学习
深度学习是机器学习中的一种基于人工神经网络的机器学习方法,其关键在于通过多层神经网络对输入数据进行逐深度学习。 人工神经网络(ANN)是由试图去模仿生物神经系统而激发的。人的大脑主要由神经元(neuron)组成,神经元通过轴突(axon)连接在一起。当树突收到刺激时,神经脉冲(nerve impulses)通过轴突由一个神经元的突触传递到另一个神经元的树突(dendtrite) 感知器就是一个最简单的神经元模型,含有输入层,隐藏层和输出层。也叫单层神经网络,多个感知器集合就是深度神经网络,常见的多层神经网络是前馈神经网络。 在前馈网络中,来自上一层的信号会被乘以权重并增加偏置,然后通过激活函数,传递到下一层。前馈网络使用反向传播来迭代更新参数,直到达到理想的性能为止。这里的前馈网络、反向传播和激活函数后面会提到
- 神经网络:其名称和结构均受到人脑的启发,目的是模拟大脑的某些机理与机制,来处理任务,由神经元和层组成。
- 神经元:每个神经元接收一组输入和一个偏置值,当信号(值)到达时会乘以一个权值。
- 层:神经网络由相互连接的节点组成,一般包括包括输入层、隐藏层和输出层。
- 标准网络:是最基本的神经网络类型,包括感知器和前馈网络。感知器是所有神经网络的基础,并且是更复杂的神经网络的基本构建模块。它只连接一个输入神经元和一个输出神经元。前馈网络是由多个感知器组成的集合,其中包含三种基本类型的层:输入层、隐藏层和输出层。在前馈网络中,来自上一层的信号会被乘以权重并增加偏置,然后通过激活函数,传递到下一层。前馈网络使用反向传播来迭代更新参数,直到达到理想的性能为止。
隐藏层
在多级神经网络中,除输入层和输出层以外的其他各层叫做隐藏层。隐藏层其实是对输入特征多层次的抽象,最终的目的就是为了更好的线性划分不同类型的数据。 隐藏层通过非线性变换将输入数据进行特征转换,从而使得神经网络能够更好地学习和预测复杂的模式。 根据不同的任务和数据特征,可以设置不同数量和类型的隐藏层。
一般来说,隐藏层及其神经元的数量越多,神经网络的表达能力越强,但同时也会增加神经网络的计算复杂度和训练难度。
激活函数
激活函数(Activation functions)对于人工神经网络模型去学习、理解非常复杂和非线性的函数来说具有十分重要的作用。它们将非线性特性引入到我们的网络中。在神经元中,输入的 inputs 通过加权,求和后,还被作用了一个函数,这个函数就是激活函数,输入该节点的值为 x1到xn 时,在进入这个隐藏节点后,会先进行一个线性变换,经过权重累积和偏置求和,计算出值再经过激活函数进行非线性变化,输出y。常用的激活函数主要有:sigmoid函数,tanh函数,ReLU函数。
引入激活函数是为了增加神经网络模型的非线性,即表达能力或抽象能力
我们知道神经网络模拟了人类神经元的工作机理,激活函数(Activation Function)是一种添加到人工神经网络中的函数,旨在帮助网络学习数据中的复杂模式。在神经元中,输入的input经过一系列加权求和后作用于另一个函数,这个函数就是这里的激活函数。类似于人类大脑中基于神经元的模型,激活函数最终决定了是否传递信号以及要发射给下一个神经元的内容。在人工神经网络中,一个节点的激活函数定义了该节点在给定的输入或输入集合下的输出。
标准的计算机芯片电路可以看作是根据输入得到
1
或0
输出的数字电路激活函数。
损失函数(Loss function)
损失函数用来评价模型的预测值和真实值之间的差距,损失函数给出的差距越小,通常模型的性能越好,根据损失函数反馈,不断的变换权重参数来最终确定哪个权重是预测准度最高的值。常用的损失函数有softmax或SVM。 举个栗子:以图片分类问题为例,通过线性分类器计算出的各个图片对应分类的置信度,我们需要人为的寻找该图片在哪一个分类上得分最高,并不断的变换权重参数来最终确定哪个权重是预测准度最高的值。这是一件非常麻烦的事情,因此引入一个能够自动帮我们衡量寻找最优权重参数(W)的函数是必要的,这就是损失函数的由来了
似然和梯度下降
- 似然:选取模型在某个事实上计算出的概率作为似然
- 梯度下降:全部参数沿着损失函数(Loss)最小的方向,直至损失函数下降到很低的水平。
真实情况由于模型一次能看很多条数据。所以应该是所有事实同时发生的概率作为似然。数学上独立事件同时发生的概率可以视作全部概率的乘积。最优化过程就是这个乘积最大化。节省算力起见,可以让模型输出概率的对数,然后所有数据的情况加在一起取负号再最小化。与直接最大化是等价的。这个加和的结果叫做交叉熵损失函数。 真实的梯度下降是对一批数据同时执行的,这样可以保障避免单个数据上的规律与其他数据规律过于冲突,因此正确的全称是随机批梯度下降,所以越是复杂的数据,学习率越不能设置的太大,否则容易造成在新一批数据上损失无法下降,因此如何让损失稳定下降,是个炼丹级别的经验性艺术,需要对数据和模型都有非常深刻的理解。 深度学习中的两种优化方法是最大似然估计(Maximum Likelihood Estimation,MLE)和梯度下降(Gradient Descent) 似然估计是一种常见的统计推断方法,它通过找到一组参数值,使得似然函数最大化。
在机器学习中,我们通常将最大似然估计应用于训练模型中,以找到一组最优的参数。 梯度下降是一种使得损失函数最小化的方法,为了得到最小化损失函数,可以沿着损失函数梯度的反方向来寻找使得损失函数最小的参数取值
前向计算
从神经网络的输入层开始,依次逐层往前计算,即将上一层的输出作为下一层的输入,并计算下一层的输出,一直到运算到输出层为止。即不断求$\vec{y}=f_n(\vec{x})$的过程。
每个神经元接受前一层的信号输入,并计算后输出到下一层,模型中没有反馈
反向传播
反向传播算法,简称BP算法,BP神经网络是由一个输入层、一个输出层和一个或多个隐层构成的,它的激活函数采用sigmoid函数。信号经输入层输入,通过隐层计算,并由输出层输出,输出值与标记值比较,若有误差,将误差反向由输出层向输入层传播,在这个过程中,利用梯度下降算法对神经元权值进行调整。
训练(Training)
训练是通过大量数据优化模型参数以学习数据特征的过程。深度学习训练流程至少具备已下功能:在训练集上进行训练;在验证集上进行验证;模型可以保存最优权重并读取权重;记录训练集和验证集的精度,便于调参。 举个栗子:以人脸识别为例,通过神经网络训练识别人物的训练过程,实线代表权重、圆代表对输入特征数据计算的操作。其中Wn表示权重,即可以被学习和更新的数值。通过损失函数计算的结果调整权重,使人脸识别的功能达到最优。
推理(inference)
推理是利用训练好的模型对新数据进行高效准确的处理以得出结论的过程。 举个栗子:以人脸识别为例,使用训练好的模型,完成输入到输出的各个层的矩阵运算(如卷积、池化层等),产生输出。输入人脸图片,输出结果为4个向量[0.8,0.04,0.06,0.03], 向量中的各个维度编码了图像的类别和可能概率,其中第一个位置的编码向量类别概率最大,后续在转换为可读信息
卷积神经网络
卷积神经网络是一种深度学习神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元。它们被专门设计用来处理像素数据,并被用于图像识别和处理。它包含卷积层、池化层和全连接层。 我们知道CNN的全称是”Convolutional Neural Network”(卷积神经网络)。而神经网络是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)结构和功能的数学模型或计算模型。神经网络由大量的人工神经元组成,按不同的连接方式构建不同的网络,每个神经元其实没有必要对全局图像进行感知,只需要对局部进行感知,然后在更高层将局部的信息综合起来就得到了全局的信息。 神经网络能够类似人一样具有简单的决定能力和简单的判断能力,在图像和语音识别方面能够给出更好的结果。
循环神经网路
循环神经网络是一种是具有短期记忆能力的神经网络,会对前面的信息进行记忆并应用于当前的输出的计算中,即隐藏层之间的节点不再无连接而是有连接的,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。它被常用于机器翻译、语音识别、生成图像描述等。 循环神经网络(Recurrent Neural Network, RNN)一般是指时间递归神经网络而非结构递归神经网络 (Recursive Neural Network),其主要用于对序列数据进行建模。RNN有个很大的缺陷,越晚的输入影响越大,越早的输入影响越小,且无法改变这个逻辑。短期的记忆影响较大,但是长期的记忆影响就很小,这就是RNN存在的短期记忆问题,无法处理很长的输入序列。
Transformer神经网络
Transformer是一种基于自注意力机制的神经网络架构,与传统的序列模型如RNN,CNN
不同,Transformer不需要像RNN那样依赖于先前时刻的隐藏状态来推理当前时刻的状态。相反,Transformer通过自注意力机制来对序列中的所有位置进行编码。
Transformer包含两个主要部分:编码器和解码器。编码器用于将源语言句子编码为一系列的向量,而解码器则使用这些向量生成目标语言的翻译。编码器和解码器都由多层自注意力层和前馈神经网络层组成。
GPT类的模型多数只使用解码器(Decoder-Only)结构,配合自回归假设的因果掩码进行训练即可获得语言生成模型。其他类型的基础模型的L1层复用的也主要是解码器部分。传统 Transformer编码器在多模态或翻译类问题中使用较多。