算法 - ML,AI 机器学习到人工智能
2024-12-31 19:47:19 8 举报AI智能生成
从小的知识点,理明白数据问题,模型训练问题。从ML背景,到AI知识图谱。详细聊聊AI的发展和模型技术,以及火爆的NLP,LLM。
ML
AI
LLM
人工智能
算法
模版推荐
作者其他创作
大纲/内容
知识点
特征工程(Feature Engineering)<br>
<b>对原始数据进行处理、转换和提取,以便更好地训练模型,提高模型性能。</b><br>
问题:选择哪些特征以及如何转换特征对模型的性能有很大影响。传统的特征工程是一个复杂且需要大量领域知识的过程。<br>
解决方案:自动特征学习(如深度学习)、特征选择算法、特征抽取技术,如主成分分析(PCA),以及多任务学习,可以减少手动特征工程的需求。
一般而言机器学习十分依赖特征工程,而深度学习可以自身习得特征。
激活函数(Activation Functions)
function trending
Sigmoid函数:Sigmoid函数是一个常用的激活函数,它将输入值映射到<b>0和1</b>之间。它的公式为f(x) = 1 / (1 + exp(-x)),在神经网络中常用于输出层。<br>
Tanh函数:Tanh函数是双曲正切函数,将输入值映射到<b>-1和1</b>之间。它的公式为f(x) = (exp(x) - exp(-x)) / (exp(x) + exp(-x)),在神经网络中常用于隐藏层。<br>
ReLU函数:ReLU函数是修正线性单元函数,<b>将负数值映射为0,正数值保持不变</b>。它的公式为f(x) = max(0, x),在神经网络中常用于隐藏层。<br>def relu(x): return np.maximum(0, x)<br>
Leaky ReLU函数:Leaky ReLU函数是ReLU函数的改进版本,当输入值为负数时,不再将其映射为0,而是乘以一个小的斜率。<br><b>它的公式为f(x) = max(0.01x, x),在神经网络中可以减少梯度消失问题。</b><br>
def gelu(x):<br> return x * norm.cdf(x)<br>
def swish(x, beta=1):<br> return x * (1 / (1 + np.exp(-beta * x)))
Softmax函数:Softmax函数将输入值映射到0和1之间,并且所有输出值的和为1,用于多分类问题的输出层。<br><b>它的公式为 f(xi) = exp(xi) / </b>Σj<b>(exp(xj))。</b><br>
归一化:Softmax 函数对输入进行归一化,将每个元素的值映射到 [0, 1] 的范围内。<br><br>概率分布:Softmax 函数输出的结果可以看作是一个概率分布,其中每个元素表示对应类别的概率,非常适合用于多分类问题。<br><br>平滑性:Softmax 函数具有平滑性,它对输入的小变化会产生相对较小的变化,这对于模型的稳定性和训练的收敛性都有利。
损失函数 (Loss)
损失函数是机器学习中非常重要的概念,它用来衡量模型预测值与真实值之间的差异。
问题:在训练模型的过程中,我们希望通过调整模型的参数,使得损失函数的值最小化,从而使模型的预测结果更加准确。<br>
常见的损失函数<br>
均方误差(Mean Squared Error,MSE)
1/n * Σi(yi - ŷi)^2
交叉熵损失函数(Cross Entropy Loss)
-1/n ΣiΣj ( yij * log(yij) )
用于二分类,多分类问题
对数损失函数(Log Loss)
-Σ ( yi * log(ŷi) + (1 - yi) * log(1 - ŷi) )
Huber Loss
1/2 * Σ ( δ^2 * (sqrt(1 + (yi - ŷi)^2/δ^2) - 1) )<br>
最小化损失函数
是机器学习模型训练的核心目标之一。通常采用梯度下降等优化算法来最小化损失函数。
在实际应用中通常会将数据集分为训练集和验证集,通过在训练集上最小化损失函数来训练模型。
判断收敛
目标函数值的变化:可以监测目标函数值随着迭代次数的变化情况,当目标函数值变化很小或者基本不再变化时,可以认为算法已经收敛。<br>
梯度的变化:可以监测梯度的变化情况,当梯度的变化很小或者基本不再变化时,可以认为算法已经收敛。
随机梯度下降(SGD)
梯度算法是一种优化算法,用于寻找函数的最小值或最大值。
原理
其原理是通过计算函数的梯度,来确定函数在该点的变化方向。然后沿着梯度的反方向更新参数,以使函数值逐渐趋于最值。
步骤
初始化参数:首先需要初始化参数的数值,可以随机选择或者根据经验设定。
计算梯度:在当前参数值下,计算函数的梯度,即函数在该点的导数。<br>
更新参数:根据计算得到的梯度值,更新参数的数值,使函数值减小。更新参数的公式为:参数 = 参数 - 学习率 * 梯度,其中学习率是一个超参数。<br>
判断停止条件:重复步骤2和步骤3,直到梯度趋近0,梯度值足够小,达到最大迭代次数等。
数据优化
数据的归一化
数据归一化是指将数据缩放到一个固定的范围内,通常是[0, 1]或[-1, 1]。
常用的归一化方法是Min-Max归一化。<br>将数据缩放到指定的最小值和最大值之间。公式: X_{norm} = {X - X_{min}} / {X_{max} - X_{min}}<br>
数据的标准化
数据标准化是指将数据按照一定的标准进行缩放,使得数据的均值为0,标准差为1。
z = x - mu / sigma<br>其中,( x ) 是原始数据,( mu ) 是数据的均值,( sigma ) 是数据的标准差,( z ) 是标准化后的数据。<br>
学习率的优化
学习率预热:前期学习率大,后期学习率小
学习率衰减:随着训练的进行,逐渐减小学习率,可以使模型更加稳定地收敛到最优解。<br>
常见的学习率衰减方法包括指数衰减、余弦衰减等。
算法优化
批量梯度下降(Batch Gradient Descent):在每一次迭代中,使用所有样本的梯度来更新模型参数。<br>
收敛加快,但是效率太慢
小批量梯度下降(Mini-batch Gradient Descent):在每一次迭代中,随机选择一小批样本来计算梯度并更新模型参数。<br>
保证了计算速度和效率
小批量数据
如通过100个数据作为一组,mini_batch=100, batch_size = total //mini_batch + 1
动量梯度下降(Momentum Gradient Descent):引入<b><i>动量项</i></b>来加速收敛,避免在局部最优解附近震荡。<br>
加速收敛,减小震荡
指数加权平均数<br>
是一种常用的平均数计算方法,它通过对数据进行加权处理,使得近期数据的权重较大,远期数据的权重较小,从而更好地反映数据的变化趋势。<br>
v = beta * gradient[l] + (1-beta) * gradient[l-1]
v = learning_rate * v
beta为动量系数,gradient为梯度。参数更新公式为:theta = theta - v。
RMSProp算法(Root Mean Square):引入<b><i>平方项</i></b>来平衡历史梯度信息和当前梯度信息。<br>
增加稳定性
在指数加权平均上引入平方,平方根
sdw = beta * gradient[l] + (1-beta) * gradient[l]^2
w = w - learning_rate * ( dw / sdw + e) 分母开根号。到dw大的时候,能控制更新参数的时候比较小而稳定。
Adam算法(Adaptive Moment Estimation):结合了动量梯度下降和RMSProp算法的优点,同时考虑了梯度的一阶矩和二阶矩信息来调整学习率。
限制了更新的波动
引入指数加权平均数
引入平方根项
beta1建议0.9
beta2建议0.999
epsilon可以为-8次方
w = w- learning_rate * (v * dw` / root(s * dw`) + epsilon)
模型衡量
精确率(Precision)
精确率表示被分类为正例的样本中真正为正例的比例。
准确率(Accuracy)
是指在所有样本中,被正确分类的样本占总样本的比例。
Accuracy = (TP + TN) / (TP + TN + FP + FN),其中TP表示真正例,TN表示真负例(True Negative),FP表示假正例,FN表示假负例。<br>
召回率(Recall)
召回率表示真正为正例的样本中被正确分类为正例的比例。
数据不足(Data Scarcity)<br>
问题:好的数据集是机器学习模型成功的关键。数据不足会导致模型无法学习到足够的信息,因此难以做出准确的预测。<br>
解决方案
数据增强(data augmentation)
迁移学习(transfer learning)
半监督学习(semi-supervised learning)
生成对抗网络(GANs)用来弥补数据不足
过拟合(Overfitting)<br>
问题:模型在训练数据上表现得很好,但在未见过的数据上表现不佳。这意味着模型“记住”了训练数据,包括噪声,而没有学到泛化的规律。<br>
解决方案
正则化(如L1/L2正则)
随机种子(Random Seed):设置随机种子可以使得模型的训练过程在不同的运行中保持一致,从而减少随机性带来的影响。<br>
批量大小(Batch Size):调整批量大小可以影响模型的训练速度和稳定性,较大的批量大小可能会减少随机性带来的影响。<br>
早停(early stopping)
集成学习(ensemble learning)
降低模型复杂度
减少偏置
减少树枝
Scaling Law
原理
Scaling law是指一种描述系统性质随着系统规模变化的规律。在自然科学和工程领域中,许多现象都遵循着某种形式的scaling law。这些规律可以帮助我们理解和预测系统的行为。<br>
应用
在物理学中,一个著名的scaling law是普朗克定律,描述了黑体辐射的能量与温度之间的关系。根据普朗克定律,黑体辐射的能量与温度的四次方成正比。这个scaling law对于理解和研究热辐射现象非常重要。
在生物学中,也存在许多scaling law。例如,生物体的代谢率与其体重的幂函数关系被称为Kleiber定律。根据Kleiber定律,生物体的代谢率与其体重的3/4次方成正比。这个scaling law对于研究生物体的能量需求和生态系统的结构具有重要意义。
在AI领域,scaling law是指随着数据量和模型规模的增加,模型的性能和效果也会相应提升的现象。<br>
机器学习算法
监督学习
线性回归(Linear Regression)<br>
原理
<b>用于预测数值型数据,模型关系假设为线性。线性回归用于建立变量之间线性关系的统计模型。</b>
回归问题
步骤
初始化模型参数,如斜率和截距。<br>计算预测值,即利用当前模型参数对样本数据进行预测。<br>计算损失函数,即计算实际值与预测值之间的差异。<br>根据损失函数的梯度,循环迭代更新模型参数,使损失函数最小化。
损失函数
L(y, ŷ) = 1/n * Σ(yi - ŷi)^2
应用
线性关系:自变量和因变量之间存在线性关系。<br>同方差性:残差(预测误差)具有相等或近似的方差。<br>无多重共线性:输入特征之间相互独立,无强烈相关性。
限制
只能处理线性关系。<br>对非线性数据,需要转换为多项式或其他函数形式。<br>容易受到异常值的影响。
变体
线性回归的变体包括岭回归和Lasso回归,它们在普通线性回归的基础上加入了正则化项,用于解决多重共线性问题和过拟合问题。
Lasso回归(Least Absolute Shrinkage and Selection Operator)
原理
是一种用于特征选择和正则化的线性回归方法。它通过在损失函数中加入L1正则化项来惩罚模型的复杂度,即更多的特征系数为0,实现特征选择的效果。
拓展
正则项
L1和L2项是正则化项,用于在机器学习算法中控制模型的复杂度,防止过拟合。<br>
L1正则化项:L1正则化项是指<b><i>参数的绝对值之和</i></b>,通常表示为λ||w||1,其中λ是正则化系数,w是模型的参数。<br>L1正则化项可以使得模型的参数更加稀疏,即使得一部分参数为0,从而可以进行特征选择,减少模型的复杂度。<br>
L2正则化项:L2正则化项是指<b><i>参数的平方和</i></b>,通常表示为λ||w||2^2,其中λ是正则化系数,w是模型的参数。<br>L2正则化项可以使得模型的参数更加平滑,避免参数过大,从而减少模型的过拟合风险。<br>
步骤
初始化模型系数β为0或者一个很小的随机值。<br>根据损失函数,通过梯度下降或者坐标下降等优化算法来更新模型系数β。<br>在更新系数的过程中,考虑L1正则化项的影响,使得模型系数更加稀疏。<br>重复步骤2和步骤3,直到模型收敛或者达到设定的迭代次数。
优点
可以进行特征选择,剔除对模型预测影响较小的特征,从而提高模型的泛化能力。
是一种强大的线性回归方法,适用于高维数据和特征选择问题。
缺点
当特征之间存在高度相关性时,Lasso回归倾向于选择其中一个特征而忽略其他相关特征。
逻辑回归(Logic Regression)
原理
<b>基于线性回归模型,通过将线性回归的输出(通常使用sigmoid)映射到一个概率范围内,从而实现对分类问题的预测。</b>
分类问题
单层神经网络是指只有一个神经元的神经网络,逻辑回归可以看作一个单层神经网络问题。<br>
步骤
初始化模型参数(权重 w 和偏置 b 向量)。<br>计算模型的输出值ŷi,即将输入特征与参数权重w相乘并加上偏置b。<br>将输出值通过激活函数(通常是sigmoid函数)转换为概率值。<br>计算损失函数(通常是交叉熵损失函数)。<br>使用梯度下降等优化算法更新模型参数,使损失函数最小化。<br>
sigmoid函数
sigmoid函数的特点是输出值在0和1之间,且具有单调递增和平滑的性质,适合用于二分类问题的概率估计。
sigmoid导数
σ′(z) = σ(z)(1−σ(z))
损失函数
L(y, ŷ) = (ŷi - y)^2
平方差损失在这容易出现多个极值点
L(y, ŷ) = -Σ ( yi * log(ŷi) + (1 - yi) * log(1 - ŷi) )
例: yi -> 1时,后项为0,前面 ŷi 趋近1损失最小。
应用
患病与否、客户流失与否等二元分类问题。<br>
变体
逻辑回归的变体包括多项式逻辑回归和支持向量机(SVM),它们在逻辑回归的基础上引入了非线性变换和核技巧,用于处理非线性分类问题和高维数据。<br>
K最近邻(K-Nearest Neighbors, KNN)<br>分类和回归算法,通过查找样本的K个最近邻居进行预测。
算法是一种基本的分类和回归算法,其逻辑是基于样本之间的距离来进行分类或回归预测。<br>
步骤
计算待分类样本与训练集中所有样本的距离。<br>根据距离找出离待分类样本最近的K个样本。<br>统计这K个样本中各个类别的出现次数。<br>将待分类样本归为出现次数最多的类别(分类问题)或计算K个样本的平均值作为预测值(回归问题)。
算法
准确率(Accuracy):分类问题中,正确分类的样本数占总样本数的比例。<br>
均方误差(MSE):回归问题中,预测值与真实值之间的平均平方误差。
支持向量机(Support Vector Machines, SVM)<br>用于分类和回归任务,通过最大化类间边界来决定分类超平面。
原理
找到能够最佳分隔不同类别数据的决策边界(超平面)。SVM 通过最大化两个类别之间的间隔(即 margin)来实现这一点,从而保证模型的泛化能力
步骤
选择核函数和参数:根据数据的特点选择适合的核函数,并初始化参数。<br>构造优化问题:将原始问题转换为对偶问题,利用核函数计算高维空间中的点积。<br>求解对偶问题:使用优化算法(如 SMO)求解对偶问题,得到最优的拉格朗日乘子𝛼𝑖。<br>计算模型参数:通过𝛼𝑖,αi 计算 𝑤 和 𝑏,或者直接用和核函数进行分类。<br>分类或回归:利用训练好的模型对新数据进行预测。
算法
随机森林(Random Forest)<br>决策树集成算法,通过构建多个决策树并集成它们的预测来改进模型性能。<br>
朴素贝叶斯(Naive Bayes)<br>基于贝叶斯定理和特征条件独立假设的分类算法,适用于小数据集。
应用
特征条件独立:假设所有特征在条件上独立,即每个特征单独影响类别的概率。<br>各类别本身的数据是平衡的。
限制
特征独立性假设过于简单,在现实中很少成立。<br>如果测试数据集里面的特征在训练集中没有出现,因为条件概率为0,可能导致预测错误。
非监督学习
K-均值聚类(K-Means Clustering)<br>将数据分为K个集群,并使集群内的方差尽可能小。<br>
步骤
应用
损失
层次聚类(Hierarchical Clustering)<br>创建一个嵌套的聚类树,反映数据的层级结构。
主成分分析(Principal Component Analysis, PCA)<br>一种降维技术,可用于提取数据中的关键特征并减少特征空间的维度。
自编码器(Autoencoders)<br>用于数据压缩和降维的神经网络,通过学习重建自身输入来提取特征。
聊些数学
向量化
减少循环,增加效率。
维度参数 * 样本特征
提高数据密度,维度
前向过程
损失函数计算
后向过程
各维度参数更新
使用numpy进行并行运算
np.dot(a, b)
np.squeeze(arr)
np.ones, np.zeros
构造矩阵:np.zeros((1, m))
np.exp, np.log
np.sum
np.abs
范数
定义
向量的范数是一个将向量映射到非负实数的函数,通常表示为||x||。它衡量了向量的 <b><i>大小 或 长度</i></b><br>
特性
非负性:对于任意向量x,其范数满足||x|| ≥ 0,且只有当x为零向量时,||x|| = 0。<br><br>齐次性:对于任意标量α,向量x,有||αx|| = |α| ||x||。<br><br>三角不等式:对于任意向量x和y,有||x + y|| ≤ ||x|| + ||y||。<br>
不同范数意义
L1范数(曼哈顿范数):||x||1 = Σ|xi|,表示向量各个元素绝对值之和。在机器学习中常用于稀疏性相关问题。<br>
L2范数(欧几里得范数):||x||2 = √(Σxi^2),表示向量各个元素平方和的平方根。在机器学习中常用于最小二乘法和正则化。<br>
无穷范数:||x||∞ = max(|xi|),表示向量中绝对值最大的元素。在机器学习中常用于支持向量机。
张量
基本原理<br>
<b>张量是一种多维数组,可以存储和表示多维数据。</b><br>
在数学和物理学中,张量是一种广义的概念,可以描述向量、矩阵等数据结构。<br>
在机器学习和深度学习中,张量是存储和处理数据的基本数据结构,常用于表示神经网络的输入、输出和参数。
图像数据案例
高维张量是指具有多个维度的张量,例如三维张量可以表示为一个立方体,四维张量可以表示为一个立方体的堆叠,依此类推。<br>高维张量在深度学习中经常用于表示多通道的图像、视频、时间序列等数据。<br><br>数据案例: 假设我们有一组包含100个样本的图像数据集,每个图像的大小为28x28像素,且有RGB三个通道。我们可以将这组数据表示为一个四维张量,其形状为(100, 28, 28, 3),其中第一个维度表示样本数量,第二和第三个维度表示图像的高和宽,第四个维度表示RGB通道。这样的高维张量可以方便地存储和处理多通道的图像数据。<br>
视频数据案例
张量可以用来表示视频帧。每个视频帧可以被表示为一个三维张量。<br>第一个维度表示图像的高度,第二个维度表示图像的宽度,第三个维度表示图像的通道数(如RGB颜色通道)。<br>
张量也可以用来表示视频序列。一个视频序列可以被表示为一个四维张量。<br>其中第一个维度表示时间步,第二个维度表示图像的高度,第三个维度表示图像的宽度,第四个维度表示图像的通道数。<br>
张量运算
加法案例
乘法案例
神经网络算法
前馈神经网络(Feedforward Neural Network,FNN)
概念
FNN是最基本的神经网络模型,由输入层、隐藏层和输出层组成。输入数据从输入层传递到隐藏层,再传递到输出层。
前向过程
反向过程
原理
隐藏层和输出层之间的连接是单向的,没有反馈。<br>
FNN通过反向传播算法来训练网络,优化网络参数,使得网络能够更好地拟合训练数据。
应用
单层神经网络:是指只有一个神经元的神经网络,也可以看作是一种特殊的浅层神经网络。
这种神经网络通常用于解决二分类问题,其输出值为0或1。<br>
算法图
z1 = W1*x + b
a = g(z1)
Loss(a, y)
浅层神经网络:是指只有一层隐藏层的神经网络,通常包括输入层、隐藏层和输出层。
常用于解决简单的分类或回归问题,因为只有一层隐藏层,所以其学习能力有限。
算法图
z1 = W1*x + b
a1 = g(z1)
z2 = W2*a1 + b2
a2 = g(z2)
Loss(a2, y)
卷积神经网络(Convolutional Neural Network,CNN)
概念
CNN是一种专门用于处理具有网格结构数据的神经网络模型,如图像、视频等。
结构
CNN的主要特点是通过卷积层、池化层和全连接层来提取图像特征并实现分类。
原理
它引入了卷积层和池化层,通过局部感知和参数共享来减少网络参数量,提高计算效率。<br><b>卷积层:</b>通过卷积操作提取输入数据的特征;<br><b>池化层:</b>通过降采样减少特征图的尺寸。<br>
应用
CNN在图像分类、目标检测、人脸识别等领域取得了巨大成功。
循环神经网络(Recurrent Neural Network,RNN)
概念
RNN是一种具有循环连接的神经网络模型,能够处理序列数据,如时间序列、自然语言序列等。
结构
RNN的前序列的计算结果会传入到下一步计算中,使得模型具有记忆功能,可以捕捉序列数据中的上下信息。
RNN网络通常由循环层和全连接层组成。
多输入,多输出的分类问提
实体识别,语言翻译(不等)
多输入,单输出的分类问题
情感分类
单输入,多输出的问题
文本生成,语音生成,序列生成
原理
RNN通过将当前时刻的输入和上一时刻的隐藏状态结合,产生当前时刻的输出和下一时刻的隐藏状态。<br>这种循环结构使得RNN能够捕捉到序列数据中的时序信息。<br>传统RNN存在梯度消失和梯度爆炸的问题,因此出现了一些改进的RNN结构,如长短期记忆网络(LSTM)和门控循环单元(GRU)。<br>
优点
模型可以处理变长序列
模型大小与输入长度无关
可以考虑较多历史信息
便于流式输出
问题
后序序列丢失前面序列的信息,或者出现权重太低
<b>使用长期记忆网络 LSTM</b>
增加新的参数门来选择性地(丢弃,更新)不重要的信息,把重要的信息传递到后面序列
没有考虑后面的序列信息,仅仅考虑前面的信息
<b>使用双向循环神经网络 BRNN</b>
使用的层数和激活函数较少
使用深层网络 DRNN
应用
RNN广泛应用于语言模型、机器翻译、语音识别等领域。
操作案例
pytorch
1线性回归问题案例
2文本分类问题案例
tensorflow
前向传播,反向传播
循环梯度下降
线性回归案例
图像分析算法案例
词向量思想
各类介绍
将图片文件转换为向量的常见方法是使用卷积神经网络(CNN)提取图片的特征向量。这些特征向量通常称为图片的“特征表示”或“特征向量”<br>
将音频文件转换为向量的常见方法是使用声学特征提取算法,如梅尔频率倒谱系数(MFCC)提取音频的特征向量。<br>
将文本文件转换为向量的常见方法是使用词袋模型(Bag of Words)或词嵌入模型(如Word2Vec、GloVe)将文本表示为稀疏或密集的向量。<br>
one-hot
一个词汇使用一个维度标识的稀疏表达算法。<br>
词库的多少决定维度的变化,会导致模型维度维护困难和维度爆炸问题。<br>
不足:<br>
1.无法感知语义。
2.无法理解词语的相似度。
3.维度爆炸问题。
Word2Vec
Word2Vec是一种用于将单词表示为连续向量的技术,它基于分布假设:即相似上下文中的单词具有相似的含义。<br>
模型优势
Word2Vec是一种基于神经网络的词嵌入模型,它可以通过训练大规模语料库来学习词向量,从而捕捉词语之间的语义关系。
Word2Vec模型简单且易于实现,训练速度较快,适用于处理大规模数据集。
Skip-gram模型:<br>
损失函数
对于Skip-gram模型,损失函数可以表示为预测目标词的条件概率的负对数似然。
连续词袋模型(CBOW):<br>
损失函数
对于CBOW模型,损失函数则是预测上下文词的条件概率的负对数似然。<br>
模型中的重要参数:
不足:
窗口长度的问题,决定了模型难以考虑全局的语义
是静态的词向量表达形式,难以理解一词多义
Glove
Glove(Global Vectors for Word Representation) 是一种用于学习词向量的无监督算法 。
模型优势:
可以通过最小化词语共现矩阵的损失函数来学习词向量,从而捕捉词语之间的语义关系。
GloVe模型在一些语义任务上表现更好,例如词语类比和词语相似度计算。
算法思路
GloVe算法的共现矩阵构建:
模型重要参数:
不足:
尽管GloVe使用了全局信息,但每个单词的向量依然是静态的,不考虑特定上下文,因此可能不适合处理多义词。
Transformer
概念
Transformer是一种基于注意力机制的深度学习模型,最初由Google提出用于自然语言处理任务。
结构
编码器(Encoder)
编码器由多个相同的层堆叠而成,每个层包括两个子层:<br>多头自注意力机制(Multi-Head Self-Attention):通过计算输入序列中每个位置的注意力权重,使模型能够关注输入序列中不同位置之间的依赖关系。<br>前馈神经网络(Feed-Forward Neural Network):对每个位置的隐藏表示进行线性变换和激活函数处理,从而学习位置之间的非线性关系。
解码器(Decoder)
解码器也由多个相同的层堆叠而成,每层:<br>多头自注意力机制(Multi-Head Self-Attention):与编码器中的自注意力机制类似,但在解码器中需要避免未来信息泄露<br>编码器-解码器注意力机制(Encoder-Decoder Attention):将编码器的输出作为查询向量,解码器的自注意力输出作为键值对,计算解码器每个位置对编码器输出的注意力权重。<br>前馈神经网络(Feed-Forward Neural Network):与编码器中的前馈神经网络相同。<br>
很多模型的应用都基于此
BERT
https://www.processon.com/view/67569efd55a1f566b673c22e
BART
https://www.processon.com/view/6752ddc0df934042284723de
GPT
LLAMA
分析介绍
https://www.processon.com/mindmap/63abfc80acf4074e9e91b29e
LargeModel
不同任务模型
Embedding编码系列
Text-embedding-3-large 是OpenAI基于Transformer架构的一个预训练文本嵌入模型。<br>
案例:训练步骤
案例:相似度计算
它通过大规模的无监督学习从海量文本数据中学习到了丰富的语义。将文本转换为高维向量,这些向量可以用于计算文本之间的相似度、聚类、分类任务。
Generative Pre-trained Transformer GPT系列<br>
GPT-1: OpenAI在2018年发布的第一个版本,是一个基于Transformer架构的预训练语言模型,能够生成连贯的文本。<br>
GPT-2: 在2019年发布,是GPT-1的升级版,拥有更多的参数(15亿个),能够生成更加自然和复杂的文本。(没有完全开放GPT-2模型)<br>
GPT-3: 在2020年发布,是目前最大的语言处理模型之一,拥有1750亿个参数。GPT-3在多种语言任务上表现出色,包括翻译、问答、摘要、编程等。
Generate Text 文本交互生成
Babbage
Babbage-002是OpenAI的一种语言模型,它是基于GPT-3架构的一个版本。它具有1750亿个参数,是OpenAI最早公开的大型语言模型之一。
Babbage-002可以用于生成文本、回答问题、完成任务等。
Davinci
Davinci-002是OpenAI的另一个语言模型,也是基于GPT-3架构的一个版本。它比Babbage-002更大,具有了更多的参数,达到了3500亿个参数。
Davinci-002在生成文本、理解语义、回答问题等方面表现出色,可以用于各种自然语言处理任务。
Codex (Coding Copilot)<br>
Codex: 是基于GPT-3的编程语言模型,能够理解和生成人类编程语言。Codex的一个著名应用是GitHub Copilot,它可以帮助开发者auto coding.
Generate Pic 图像生成
DALL·E<br>
DALL·E: 在2021年初发布,是一个基于GPT-3的图像生成模型,能够根据文本描述生成相应的图像。
案例:
DALL·E 2: 是DALL·E的升级版,于2022年发布。它在图像生成的质量和准确性上有显著提升,能够根据文本提示创造出更加逼真和详细的图像。
视频生成
基于深度学习的模型
生成对抗网络(GANs)
DCGAN:深度卷积生成对抗网络
StyleGAN:风格生成对抗网络
BigGAN:大规模生成对抗网络
Progressive GAN:渐进式生成对抗网络
变分自编码器(VAEs)
β-VAE:带约束的变分自编码器
Wasserstein VAE:基于Wasserstein距离的变分自编码器
GMVAE:高斯混合变分自编码器
VQ-VAE:向量量化变分自编码器
基于强化学习的模型
视频预测模型
SVG-LP:随机视频生成与长期预测
Action-Conditioned Video Prediction:基于动作条件的视频预测
视频字幕生成模型
Dense Video Captioning:密集视频字幕生成
Video Captioning with Attention on Temporal Segments:基于时序段注意力的视频字幕生成
视频生成模型评估标准
图像质量评估
PSNR:峰值信噪比
定义与计算方法
优缺点分析
SSIM:结构相似性指数
定义与计算方法
应用场景
FID:Fréchet Inception Distance:弗雷谢特Inception距离
定义与计算方法
与其他指标的对比
视频连贯性评估
光流法
基本原理
实现方法
时序一致性
定义与计算方法
优化策略
生成速度与效率
模型训练时间
影响因素分析
优化方法
视频生成时间
实时性评估
加速策略
收藏
立即使用
收藏
立即使用
收藏
立即使用
收藏
立即使用
Collect
Get Started
Collect
Get Started
Collect
Get Started
Collect
Get Started
评论
0 条评论
下一页