拓冰建站拓冰建站
首页 / 资讯中心 / 正文

十四、AI训练师:机器学习-三大范式综合对比

2.5 三大范式综合对比2.5.1 监督学习 vs 无监督学习 vs 强化学习——核心区别前面三章我们分别学习了机器学习的三大范式。这一章我们从更高的视角来审视它们——它们分别解决什么问题核心区别在哪里什么时候该用哪个2.5.1.1 三种范式解决的“根本问题”不同范式根本问题通俗理解核心公式监督学习“这是什么” / “值是多少”有标准答案学的是“看到A就能想到B”( y f(x) )学习从输入到输出的映射无监督学习“这些数据有什么规律”没有标准答案自己发现“哪些东西是一伙的”发现数据中的内在结构和模式强化学习“下一步该怎么做”没有标准答案但有好坏反馈在试错中学会决策最大化累积奖励 ( \sum R_t )2.5.1.2 三种范式的全维度对比表对比维度监督学习无监督学习强化学习数据形式静态数据特征 标签静态数据仅有特征动态交互数据状态、动作、奖励序列反馈形式即时且精确每个样本都有正确答案无反馈探索性没有对错延迟且稀疏行动后可能很久才有反馈学习目标最小化预测误差损失函数发现数据中的隐藏结构最大化长期累积奖励数据来源离线数据集一次性采集离线数据集一次性采集在线交互边做边学持续产生新数据试错机制没有试错直接学习正确答案没有试错直接分析数据核心机制通过试错来学习评价方式有明确标准准确率、MSE等无绝对标准靠业务验证和内部指标有明确标准累积奖励值人类类比学生跟着老师学有标准答案科学家观察自然现象自己总结规律训练宠物做对了给奖励做错了不理会典型算法线性回归、逻辑回归、决策树、SVM、随机森林、神经网络K-Means、PCA、DBSCAN、t-SNE、GAN、VAEQ-Learning、SARSA、DQN、PPO2.5.1.3 三范式数据需求对比与你的标注工作强相关这是与数据标注工作最直接相关的对比维度对比维度监督学习无监督学习强化学习数据标注需求极大——需要大量高质量人工标注数据极少——不需要标注直接用原始数据中等——需要设计奖励函数不需要标注标签标注成本极高——每一笔数据都需要人工标注极低——几乎没有标注成本中等——需要设计环境和奖励函数但不需要标注海量数据你在标注项目中的角色核心参与者——你标注的数据直接用来训练监督学习模型间接相关——你标注的数据可能用来验证无监督学习的结果相关性较低——但标注质量评估可能用到强化学习典型数据量要求通常需要数千到数百万条标注样本任意数据量都可以越多越好不需要固定数据集需要的是仿真环境或真实交互环境2.5.1.4 直观理解三范式解决问题的思路对比场景监督学习的做法无监督学习的做法强化学习的做法手写数字识别给模型看大量“图片数字标签”让它学会把图片映射到数字不给标签让模型自己发现数字图片中的“形状簇”如0类、1类、2类…设计一个系统让智能体每次识别一个数字识别正确给奖励错误给惩罚电商用户分析预测“这个用户是否会购买”用历史购买数据含标签训练模型用户自动分群根据消费行为把用户分成“高价值”“潜力”“普通”等几类动态推荐智能体不断向用户推荐商品根据用户是否点击/购买来调整推荐策略自动驾驶识别“这张图里有行人/没有行人”用大量标注图片训练分类模型发现驾驶数据的“模式”自动发现哪些路况下刹车会更频繁智能体学习驾驶策略通过模拟器不断试驾安全到达目的地获得奖励发生事故受到惩罚2.5.2 各范式适用场景速查表2.5.2.1 按任务类型速查任务类型推荐范式推荐算法说明判断邮件是垃圾还是正常监督学习分类朴素贝叶斯、逻辑回归有明确的两个类别需要大量标注样本预测明天股票收盘价监督学习回归线性回归、随机森林输出是连续数值需要历史数据标签把客户分成几组分别营销无监督学习聚类K-Means、DBSCAN不知道天然有几组让算法自己发现将100维数据压缩到2维画图无监督学习降维PCA、t-SNE只看原始数据无法感知结构降维后可视化让机器人学会走路强化学习Q-Learning、PPO无法写出“如何走路”的规则只能通过试错学习让AI学会下围棋打败人类冠军强化学习AlphaGoDQN蒙特卡洛树搜索围棋变化远超穷举只能通过自我对弈学习在无法标注大量数据时训练模型半监督学习自训练、标签传播少量标注大量未标注详见5.4在没有标签的数据上预训练模型自监督学习BERT、SimCLR利用数据本身构造监督信号详见5.42.5.2.2 按数据类型速查数据类型可用范式说明结构化表格数据有标签监督学习最标准的情况直接训练预测模型结构化表格数据无标签无监督学习聚类分析、异常检测文本数据有标签监督学习情感分析、文本分类、NER文本数据无标签无监督学习主题建模、词向量学习图像数据有标签监督学习图像分类、目标检测、分割图像数据无标签无监督学习图像聚类、生成模型序列数据如时间序列监督学习 / 强化学习预测监督或控制强化交互环境数据强化学习游戏AI、机器人控制、自动驾驶2.5.3 如何根据业务问题选择合适的范式2.5.3.1 决策流程图面对一个实际业务问题时你可以按照以下流程来选择合适的范式┌─────────────────────┐ │ 第一步问题诊断 │ │ 业务上想解决什么问题│ └──────────┬──────────┘ │ ▼ ┌───────────────┴───────────────┐ │ │ “判断是什么”或 “该怎么做”或 “预测值是多少” “学习最优策略” │ │ ▼ ▼ ┌──────────────────────────┐ ┌──────────────────────────┐ │ 第二步检查数据标签 │ │ ✅ 选择强化学习 │ │ 有标签数据吗 │ │ 需要环境 奖励函数 │ └──────────┬───────────────┘ └──────────────────────────┘ │ ┌───────────┴───────────┐ │ │ ✅ 有标签 ❌ 无标签 │ │ ▼ ▼ ┌─────────────────────┐ ┌─────────────────────────────┐ │ ✅ 选择监督学习 │ │ 第三步数据量充足吗 │ │ 需要特征标签 │ └──────────────┬──────────────┘ └─────────────────────┘ │ ┌─────────────┴─────────────┐ │ │ ✅ 充足 ❌ 不足 │ │ ▼ ▼ ┌─────────────────┐ ┌──────────────────────────────┐ │ ✅ 无监督学习 │ │ ✅ 半监督学习 / 自监督学习 │ │ 聚类/降维/生成 │ │ 详见5.4 │ └─────────────────┘ └──────────────────────────────┘2.5.3.2 具体选型决策表业务问题是否有标签是否涉及序列决策推荐范式理由判断用户评论是好评还是差评✅ 有❌ 否监督学习分类标准分类问题有大量标注好的评论预测下个月的销售额✅ 有❌ 否监督学习回归需要预测连续数值历史数据有标签新用户应该分到哪个群组进行运营❌ 无❌ 否无监督学习聚类没有“正确答案”让算法自动分组库存数据有100个维度想用2个维度画分布图❌ 无❌ 否无监督学习降维可视化需求无需标签训练一个AI在游戏中击败玩家❌ 无✅ 是强化学习没有标准走法需要智能体自己摸索最优策略数据量少只有100条标注但有10000条未标注数据✅ 少量❌ 否半监督学习充分利用少量标注大量未标注有100万张图片但没有任何标签❌ 无❌ 否自监督学习利用图片本身构造监督信号2.5.4 三范式融合趋势半监督学习、自监督学习在实际应用中纯粹的监督学习、无监督学习或强化学习往往各有局限。近年来范式融合成为机器学习的重要趋势——将不同范式的优势结合起来在数据更少、成本更低的情况下达到更好的效果。2.5.4.1 三大融合范式总览表融合范式核心思想解决的问题数据需求与数据标注工作的关联半监督学习少量标注数据 大量未标注数据 好模型标注成本太高但未标注数据很容易获取少量标注 大量未标注⭐⭐⭐⭐⭐直接相关——可以大幅减少标注工作量自监督学习从数据本身构造“伪标签”不需要人工标注完全没有标签的情况下先预训练一个“懂数据”的模型无标签数据大量⭐⭐⭐⭐高度相关——标注前先用无监督预训练减少标注量弱监督学习使用噪声标签、粗糙标签或规则生成的标签训练模型标注成本高或无法获得精确标签噪声/粗糙标签⭐⭐⭐⭐高度相关——可以利用规则自动生成一部分标签减少纯人工标注量2.5.4.2 半监督学习Semi-Supervised Learning维度说明核心思想用少量有标签的数据 大量无标签的数据来训练模型。无标签数据虽然“没有答案”但它们能帮助模型理解数据的整体分布从而更好地利用少量标签通俗理解就像一个学生只做了10道例题有标签但额外阅读了1000篇相关的课外材料无标签。这些材料虽然没有答案但帮助他建立了对这门课的“整体理解”从而能更好地运用那10道例题学到的知识为什么有效一致性假设Consistency Assumption——如果两个样本在特征空间中是“邻居”很相似那么它们的输出应该也相似。无标签数据虽然没有标签但可以帮助模型识别出“哪些样本是邻居”从而将标签从少量标注样本“传播”到大量未标注样本典型算法自训练Self-Training、协同训练Co-Training、标签传播Label Propagation、伪标签Pseudo-Label半监督学习代码示例标签传播算法场景你有20条已标注的用户评论正面/负面/中性以及100条未标注的评论。用标签传播算法将标签从20条传播到所有120条评论。importnumpyasnpimportpandasaspdfromsklearn.feature_extraction.textimportTfidfVectorizerfromsklearn.semi_supervisedimportLabelSpreading# 1. 模拟数据120条评论np.random.seed(42)all_texts[非常好,太棒了,很满意,质量很好,推荐购买,# 正面还行,一般,马马虎虎,不好不坏,凑合,# 中性太差了,后悔,质量烂,垃圾,坑爹,# 负面]*8# 重复8次构成120条样本每种类型约40条但这里不完全均衡# 实际取前120条all_textsall_texts[:120]# 2. 打乱顺序让标签散布得更均匀indicesnp.random.permutation(120)all_texts[all_texts[i]foriinindices]# 3. 创建标签只有前20条有标签用-1表示无标签y_labelsnp.full(120,-1,dtypeint)# 初始全部为-1# 前20条人工标注0正面1中性2负面# 手动给前20条分配标签模拟标注员的标注结果labeled_indiceslist(range(20))# 为了让模拟更真实前20条随机分配但保证覆盖三分类label_pool[0,0,0,0,0,0,1,1,1,1,1,2,2,2,2,0,0,1,2,0]y_labels[0:20]label_poolprint(f有标签样本数{(y_labels!-1).sum()})print(f无标签样本数{(y_labels-1).sum()})# 4. 特征提取TF-IDFvectorizerTfidfVectorizer()Xvectorizer.fit_transform(all_texts)# 5. 标签传播算法lp_modelLabelSpreading(kernelknn,n_neighbors3,alpha0.8,max_iter100)lp_model.fit(X,y_labels)# 6. 查看所有样本的预测标签predicted_labelslp_model.transduction_# 7. 对比有标签的20条验证准确率labeled_y_truey_labels[y_labels!-1]labeled_y_predpredicted_labels[y_labels!-1]accuracy(labeled_y_truelabeled_y_pred).mean()print(f\n标注样本上的准确率验证集{accuracy*100:.1f}%)# 8. 查看前20条的标签传播结果print(\n前20条样本的传播结果)foriinrange(20):status✅ 有标签ify_labels[i]!-1else❌ 无标签传播得到print(f样本{i1}: 原标签{y_labels[i]ify_labels[i]!-1else无}→ 传播后标签{predicted_labels[i]}{status})运行结果示例有标签样本数20 无标签样本数100 标注样本上的准确率验证集100.0% 前20条样本的传播结果 样本1: 原标签0 → 传播后标签0 ✅ 有标签 样本2: 原标签0 → 传播后标签0 ✅ 有标签 ... 样本15: 原标签无 → 传播后标签2 ❌ 无标签传播得到 样本16: 原标签无 → 传播后标签0 ❌ 无标签传播得到 ... 解读算法只用了20条标注样本就将标签“传播”到了全部120条数据上。这意味着——如果你只标注了20条数据算法就能利用它们推断出其余100条的标签。这就是半监督学习在减少标注工作量上的巨大价值。2.5.4.3 自监督学习Self-Supervised Learning维度说明核心思想从数据本身自动生成“伪标签”让模型先进行一轮预训练。比如给模型看一句话“我今天吃了___”遮住“饭”字让模型去预测被遮住的字——模型不需要人工标注就能通过这个“填空题”任务学到语言的基本规律通俗理解就像一个学生自己出题自己考自己——他先根据教材内容自己设计练习题如“把这一章的标题遮住猜猜这一章讲什么”通过做自己出的题来加深对知识的理解。这个过程完全不需要老师出题不需要人工标注为什么有效自监督学习的核心是“预测数据的一部分”——文本中的遮住一个词如BERT的MLM任务、图像中遮住一块区域如MAE让模型通过上下文去推测被遮住的部分。模型必须理解数据的整体规律才能准确预测从而“被动”地学到了数据的内在表示典型算法BERT掩码语言模型、GPT自回归语言模型、SimCLR对比学习、MAE掩码自动编码器自监督学习示意图BERT掩码语言模型原始句子 我 今天 吃 了 一碗 牛肉面 ↓ 随机遮住一个词 输入句子 我 今天 吃 了 [MASK] 牛肉面 ↓ 模型根据上下文预测 模型预测 [MASK] 一碗 ✅ 正确说明模型理解了上下文 对比如果没有自监督预训练模型连“一碗”和“牛肉面”之间的关系都无法理解。2.5.4.4 半监督 vs 自监督 vs 弱监督融合范式对比对比维度半监督学习自监督学习弱监督学习标签来源少量人工标注 大量未标注从数据本身自动生成无需人工规则、启发式、噪声标签是否需要人工标注少量需要标注成本低完全不需要零标注成本部分需要需要人写规则与数据标注工作的关联⭐⭐⭐⭐⭐ 核心关联——直接减少标注量⭐⭐⭐⭐ 高度关联——在标注前做预训练提升模型对数据的“理解力”让少量标注也能发挥更大作用⭐⭐⭐⭐ 高度关联——可以用业务规则自动生成一部分标签减少纯人工标注典型输出半监督分类模型预训练模型需下游微调噪声标签数据集应用场景举例只有100条标注好的评论10000条未标注的评论BERT预训练、图像自监督MAE用关键词规则生成“垃圾邮件”标签再人工修正三种融合范式的各自定位融合范式一句话定位半监督学习“少量标注 大量未标注 好模型”适合标注资源有限但未标注数据丰富的场景自监督学习“数据自己给自己出题”适合完全没有标签、需要先构建数据理解的场景弱监督学习“用规则/启发式生成标签”适合有业务规则但难以获得精确人工标注的场景2.5.5 总结速查表知识点核心内容关键要点监督学习核心区别有标签学习映射 ( yf(x) )需要大量标注数据你标注的数据直接用于此无监督学习核心区别无标签发现数据中的隐藏结构不需要标注成本极低强化学习核心区别无标签通过试错学习最优策略需要环境奖励函数适合序列决策三范式数据需求对比监督 强化 无监督标注工作量监督学习对标注工作量需求最大这也是你数据标注工作价值最高的领域如何选择范式决策流程图判断/预测 → 监督找规律 → 无监督做决策 → 强化先看有没有标签再看需不需要序列决策半监督学习少量标注 大量未标注直接减少标注工作量与你工作高度相关自监督学习数据自己给自己出题预测被遮住的部分零标注成本用于预训练弱监督学习用规则/启发式生成标签可以用规则减少人工标注量2.5.6 与数据标注工作的核心关联范式你在标注项目中的角色标注工作量要求监督学习主角——你标注的每一笔数据都是模型的食物极高通常需要数万到数百万条标注无监督学习配角——你的标注可能用于验证聚类结果极低不需要标注或仅标注少量样本做验证强化学习场外支持——你可能标注“奖励信号”的标准但不直接参与训练数据标注中等需要设计奖励函数不需要标注大量样本半监督学习主角但工作量减轻——你只需要标注少量数据模型自己利用无标签数据学较低只需要标注10%~20%的样本自监督学习前期支持——标注前自监督预训练可以提升模型对数据的“理解力”让你的标注数据发挥更大的价值极低预训练阶段不需要任何标注弱监督学习规则设计者——你设计规则如关键词匹配规则自动生成标签再对自动标注的数据进行修正中等需要人写规则并对部分结果进行人工校验 一句话总结三大范式解决三类不同的问题——监督学习做预测需要你大量标注、无监督学习找规律不需要标注、强化学习做决策不需要标注但需要设计奖励。而在实际应用中范式融合半监督、自监督正在大幅降低对人工标注的依赖——这正是数据标注行业未来发展的核心方向从“纯人工标注”走向“人机协同的智能标注”。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门