机器学习的之数据学习算法

229 阅读3分钟

有监督学习

监督学习利用大量的标注数据来训练模型,对模型的预测值和数据的真实标签计算损失,然后将误差进行反向传播(计算梯度、更新参数),通过不断的学习,最终可以获得识别新样本的能力。

每条数据都有正确答案,通过模型预测结果与正确答案的误差不断优化模型参数

有监督学习分为类

有监督学习又分类-单模型与集成学习

单模型

graph TD

B[单模型] --> B0[线性模型]
B[单模型] --> B1[线性回归]
B[单模型] --> B2[K近邻 KNN]
B[单模型] --> B3[决策树]
B[单模型] --> B4[BP神经网络]
B[单模型] --> B5[支持向量机 SVM]
B[单模型] --> B6[朴素贝页斯]

B1[线性回归] --> 逻辑回归
B1[线性回归] --> lasso

集成学习

graph TD

C[集成学习] --> C1[Boosting]
C[集成学习] --> C2[Bagging]

C1[Boosting] --> BGDT
C1[Boosting] --> adaboost
C1[Boosting] --> XGBoost
C1[Boosting] --> LightGBM
C1[Boosting] --> CatBoost

C2[Bagging] --> 随机森林
C2[Bagging] --> C22[Extra Trees]

无监督学习

无监督学习不依赖任何标签值,通过对数据内在特征的挖掘,找到样本间的关系,比如聚类相关的任务。有监督和无监督最主要的区别在于模型在训练时是否需要人工标注的标签信息。

只有数据没有答案,常见的是聚类算法,通过衡量样本之间的距离来划分类别

无监督学习分类

graph TD

A[无监督学习] --> A1[聚类]
A[无监督学习] --> A2[降维]

A1[聚类] --> A11[K-mean算法]
A1[聚类] --> A12[分层聚类]

A2[聚类] --> A21[PCA主成份分析]
A2[聚类] --> A22[SVD寄存值分解]
A2[聚类] --> A23[LDA线性判别]

半监督学习

利用有标签数据和无标签数据来训练模型。一般假设无标签数据远多于有标签数据。例如使用有标签数据训练模型,然后对无标签数据进行分类,再使用正确分类的无标签数据训练模型;

利用大量的无标注数据和少量有标注数据进行模型训练

充分利用未标记数据的信息来提高模型性能

自监督学习

机器学习的标注数据源于数据本身,而不是由人工标注。目前主流大模型的预训练过程都是采用自监督学习,将数据构建成完型填空形式,让模型预测对应内容,实现自监督学习。

通过对数据进行处理,让数据的一部分成为标签,由此构成大规模数据进行模型训练

自监督学习方法

基于自监督学习的生成学习方法主要有AE、VAE、GAN这三大种,其中VAE是基于AE的基础上进行变形的生成模型,而GAN是近年来较为流行并有效的生成式方法。

自监督分类

自监督学习又可分为比学习(contrastive learning)生成学习(generative learning) 两类。

对比学习(contrastive learning)

对比学习的核心思想是将正样本和负样本在特征空间进行对比,学习样本的特征表示。

生成学习(generative learning)

生成学习是学习某些(伪)标签的映射模型然后重构输入样本,通过在输入样本之间进行比较来学习表示。

远程监督学习

主要用于关系抽取任务,采用bootstrap的思想通过已知三元组在文本中寻找共现句,自动构成有标签数据,进行有监督学习。

基于现有的三元组收集训练数据,进行有监督学习

强化学习

强化学习是智能体根据已有的经验,采取系统或随机的方式,去尝试各种可能答案的方式进行学习,并且智能体会通过环境反馈的奖赏来决定下一步的行为,并为了获得更好的奖赏来进一步强化学习。

以获取更高的环境奖励为目标优化模型