在机器学习与深度学习相关项目需求实现中,通常可以细分成很多个回归、分类、生成任务的实现,由这些任务组成一个完整的任务。下面分别介绍这三种任务
回归:
什么是回归?
找到一个函数,通过输入的特征值X,输出一个连续的数值Y。
回归任务的目标是预测连续值的输出。例如,预测房价、温度或股票价格、商品推荐等。
回归任务常用解决方案:
线性回归:通过找到输入特征X和输出值Y之间的最佳线性关系来预测连续值。输入特征可以是多个变量,但是变量的幂只能是1,保证输入变量与输出变量之间是线性变化关系。数学表达式如下:
Y=W1X+B或Y=W1X+W2Z+B
在Scikit-learn中用LinearRegression实现。
多项式回归:当为非线性可分数据创建模型时,多项式回归是比较受欢迎的选择之一。它类似于线性回归,但使用变量 X 和 Y之间的关系来找到绘制适合数据点的曲线(非直线)。这里输入变量可以是多个,变量的最高幂可能大于1,当幂大于1,表示输入变量与输出变量之间的非线性关系,图像是是一条曲线。数学表达式如下:
在Scikit-learn中用PolynomialFeatures与LinearRegression实现。
支持向量机回归(SVR):使用支持向量机(SVM)的原理来找到一个超平面,使得所有数据点到该平面的距离最小化。在Scikit-learn中提供了SVR用于实现,在使用SVR之前,先用StandardScaler() 执行特征缩放,使每个特征具有相似的重要性。
决策树回归:使用决策树来分割数据,并在每个叶节点上预测一个连续值。Scikit-learn 中提供了DecisionTreeRegressor 用于实现。
随机森林回归:属于集成学习方法的一种,通过构建多个决策树并将它们的预测结果进行组合来提高模型的性能和鲁棒性。数据集的各种子样本上拟合多个决策树,并使用平均来提高预测准确性和控制过拟合。在Scikit-learn中用RandomForestRegressor实现。
神经网络回归:神经网络由多个相互连接的神经元(或称为节点、单元)组成,这些神经元通常分层排列,形成输入层、隐藏层(可以有多层)和输出层。神经网络广泛用于机器学习与深度学习中。深度学习使用多层神经网络来学习复杂的非线性关系,并预测连续值。它提供了一种灵活、强大的框架用于建模和预测回归问题。选用适当的 网络结构、训练策略和正则化技术,可以有效地从数据中学习并做出准确的预测。深度神经网络适用于训练集过万的情况下。torch.nn、 torch.optim支持构建神经网络回归模型。
分类:
什么是分类?
分类算法通过对已知类别训练集的计算和分析,从中发现类别规则并预测新数据的类别。分类任务的目标是将输入数据分配到预定义的类别中。例如,垃圾邮件检测、图像识别或疾病诊断等。
分类任务常用解决方案
逻辑回归:通过计算概率来决定数据点属于哪个类别。输出标签通常是满足0-1分布的离散型变量。逻辑回归通过引入联系函数,将线性回归输出值转换为分布在 (0,1) 之间的值,当值接近0时样本的标签为类别0,当 值接近1时样本的标签为类别1,这样就得到了一个分类模型。而这个联系函数对于逻辑回归来说,就是Sigmoid
函数。
这就是线性回归的输出值。
逻辑回归是不直接预测标签值,而是去预测标签为类别1的概率。一般地如果标签为类别1的概率大于0.5,就认为其为类别1,否在为类别2。Scikit-learn中用LogisticRegression实现逻辑回归。
KNN:K-Nearest Neighbors (KNN)根据输入数据点在特征空间中最近的邻居的类别来预测其类别。基本原理是基于“物以类聚”的思想,即一个样本的类别由其最接近的 K 个邻居的类别决定。常用计算距离方法有:欧氏距离、曼哈顿距离。Scikit-learn中用KNeighborsClassifier
实现KNN。
朴素贝叶斯分类器:这是一种基于概率统计的分类方法,在条件独立假设的基础上使用贝叶斯定理构建算法,能够通过提供后验概率估计来量化预测中的不确定性的概率分布模型。
贝叶斯定理
朴素贝叶斯假设所有属性的类条件概率可以被分解为类条件概率的乘积:(给定类别标签,属性是相互独立的)
在小数据集上仍然可以使用先验概率P(Y)作为后验概率的估计,通过不断增加更多的属性X,可以不断细化后验概率。
Scikit-learn中用sklearn.naive_bayes
下属类:
GaussianNB
GaussianNB:适用于连续特征,假设特征服从高斯分布。
MultinomialNB:适用于离散特征,例如文本分类中的词频。
BernoulliNB:适用于二值特征,例如布尔值特征。
支持向量机分类器:找到一个超平面,使得不同类别之间的间隔最大化。支持向量机算法分类和回归方法的中都支持线性性和非线性类型的数据类型。非线性类型通常是二维平面不可分,为了使数据可分,需要通过一个函数将原始数据映射到高维空间,从而使得数据在高维空间很容易可分,需要通过一个函数将原始数据映射到高维空间,从而使得数据在高维空间很容易区分,这样就达到数据分类或回归的目的,而实现这一目标的函数称为核函数。常用的核函数有:
线性核(Linear Kernel)
多项式核(Polynomial Kernel)
高斯核(Gaussian Kernel)
拉普拉斯核(Laplacian Kernel)
Sigmoid核(Sigmoid Kernel)
Scikit-learn中用sklearn.svm.SVC
实
现。
决策树分类器:使用决策树来分割数据,并在每个叶节点上预测一个类别。数模型通过递归切割的方法来寻找最佳分类标准,进而最终形成规则。分类树用基尼系数最小化准则,进行特征选择,生成二叉树。决策树的学习算法包含特征选择、决策树的生成、决策树的剪枝过程
。Scikit-learn中用sklearn.tree.DecisionTreeClassifier实现。
随机森林分类器:属于集成学习方法的一种,它通过组合多个决策树来提高分类性能。在随机森林中,每个决策树都是独立构建的,使用随机选择的特征和样本进行训练,最终将每个决策树的分类结果进行投票,得到最终的分类结果。在Scikit-learn中sklearn.ensemble.RandomForestClassifier实现。
神经网络分类器:使用多层神经网络来学习复杂的非线性关系,并通过输出层的激活函数(如softmax)来决定类别。选用适当的 网络结构、训练策略和正则化技术,可以有效地从数据中学习并做出准确的分类。深度神经网络适用于规模庞大训练集的情况下。torch.nn、 torch.optim支持构建神经网络分类模型。
在图像识别方面,著名的深度卷积神经网络达到非常高的准确率,如GoogLeNet, VGG, ResNet;
在文本分类方面,RNN、LSTM、基于Transformer的BERT, GPT都是著名的深度分类模型。
生成:
什么是生成?
生成任务的目标是创建新的数据实例,这些实例与训练数据集中的实例相似。例如,生成新的图像、文本或音乐等。
生成任务常用解决方案
朴素贝叶斯:它首先学习数据的联合概率分布,然后通过贝叶斯定理求得条件概率分布。这种通过联合概率分布和先验概率分布来计算条件概率分布的方法,使得朴素贝叶斯成为一种典型的生成模型。
Scikit-learn中用sklearn.naive_bayes下属类实现:
GaussianNB
GaussianNB:适用于连续特征,假设特征服从高斯分布。
MultinomialNB:适用于离散特征,例如文本分类中的词频。
BernoulliNB:适用于二值特征,例如布尔值特征。
生成对抗网络(GAN):由两个网络组成,一个生成器和一个判别器,生成器试图生成与真实数据相似的数据,而判别器试图区分生成的数据和真实数据。
可以将GAN架构想象成一个伪造者和一个警察的对立,其中伪造者正在学习通过假钞,而警察正在学习检测它们。双方都在动态变化。
这意味着,随着伪造者学习完善制造假钞,警察也在训练并变得更好,双方都在不断升级中学习对方的方法。
GAN架构由两个主要网络组成:
1.生成器:试图将随机噪声转换为看起来像是从原始数据集中采样的观测值。
2.鉴别器:试图预测一个观测值是来自原始数据集还是生成器的伪造品。
使用多层感知器(MLP)网络构建生成器和鉴别器网络。并且已经证明卷积层能够增强鉴别器的预测能力,这反过来又提高了生成器和整体模型的准确性。这种类型的GAN被称为DCGAN(深度卷积GAN)。
变分自编码器(VAE):变分自动编码器(Variational autoEncoder,VAE)是一种基于神经网络的生成模型。这些方法的主要目标是从对象的学习潜在分布来生成新的采样数据。VAE 包含两个部分:编码器 encoder 和解码器 decoder。编码器计算每个输入数据的低维均值μ和方差δ,然后从隐变量空间采样,得到Z={Z1,Z ...,Zn},通过解码器生成新数据Y ={Y1,Y2...,Yn}。从隐变量空间中的采样的数据 Z 遵循原始数据 X 的概率分布,这样根据采样数据 Z 生成的新数据 Y也就可以遵循原始数据的概率分布。
它的开源实现有:https://github.com/pytorch/examples/tree/master/vae
https://github.com/YixinChen-AI/CVAE-GAN-zoos-PyTorch-Beginner
循环神经网络(RNN):特别是长短期记忆网络(LSTM)和门控循环单元(GRU),用于生成序列数据,如文本或音乐。
BERT:预训练模型,可用于实现文本摘要,有两种摘要方式:抽取式摘要, 生成式摘要。BERT:基于Transformer特征提取器,它的Transformer只有编码器,没有解码器。可以在预训练模型基础上增加数据继续训练。
GPT:预训练模型,可用于机器翻译、人机对话,它基于Transformer特征提取器,它的Transformer既有编码器,又有解码器。可以在预训练模型基础上增加数据继续训练。
大模型:基于Transformer特征提取器,在大规模训练数据集上,充分利用Transformer的多头注意力机制,提取数据的特征。
著名的有ChatGPT、Gemini、Llama, 文心一言、盘古、通义千问、ChatGLM、百川等。通过提示词,要么他这些模型接口,可以生成相应的文本。可以用数据在原有模型基础上微调,使模型掌握私有化、某些领域专业知识,从而能回答相关领域的问题。大模型可以与专业小模型结合,获取小模型提取的特征,作为训练数据,效果达到比原来小模型更高的准确率与精度。
stable diffusion: 这是一个通过提示词生成图片或通过提示词与图片对图片进行优化修改的生成模型。前者在提示词后接文本编码器CLIP,然后进入扩散模型; 后者,提示词同样经过文本编码器CLIP进入扩散模型,图片经过VAE_encoder进入扩散模型。两者都经过扩散模型生成图片。
标签:回归,分类,生成,类别,数据,模型,三大 From: https://blog.csdn.net/heyiqiunet/article/details/141939737