第 6 课
← 返回系列列表

Course 3:机器学习策略(下)

Deep Learning Specialization — 深度学习专项课程

迁移学习、多任务学习、端到端学习等高级项目设计策略。

Course 3:机器学习策略(下)

课程简介

迁移学习、多任务学习、端到端学习等高级项目设计策略。

🎬 本课程视频:Deep Learning Specialization — 深度学习专项课程


一、迁移学习

迁移学习是在大型数据集上预训练模型,然后在目标任务上微调。

1.1 核心流程

预训练→替换输出层→微调:

# 加载预训练模型
base_model = load_model('imagenet_weights.h5')
base_model.pop()  # 移除输出层

# 添加新分类器
x = base_model.output
x = Dense(256, activation='relu')(x)
output = Dense(num_classes, activation='softmax')(x)
model = Model(inputs=base_model.input, outputs=output)

# 冻结预训练层(数据少时)
for layer in model.layers[:-3]:
    layer.trainable = False

model.compile(optimizer=Adam(lr=1e-4), loss='categorical_crossentropy')
model.fit(X_train, y_train, epochs=10)

1.2 微调策略选择

1.3 迁移学习何时失效

预训练与目标任务分布差异太大(自然图像→医学影像),或目标任务数据充足。

二、多任务学习

一个网络同时学习多个任务。示例:自动驾驶同时检测行人、车辆、交通标志、交通灯。

损失函数:$J = \frac{1}{m}\sum_i\sum_j \mathcal{L}(\hat{y}_j^{(i)}, y_j^{(i)})$

有效条件:任务共享低层特征、单个任务数据有限、网络足够大。

三、端到端学习

传统流水线:音频→特征提取→声学模型→语言模型→文本
端到端:音频→神经网络→文本

优点:免去手工特征工程、简化系统设计、全局联合优化
缺点:需要大量数据、排除有用先验知识、可解释性差

Andrew Ng建议:数据不足时用混合方法;随数据增长逐步向端到端推进。

四、项目实践建议

  1. 快速搭建第一个系统(能跑通就行)
  2. 分析系统瓶颈(偏差/方差分析、误差分析)
  3. 针对性改进(基于分析结果)
  4. 重复步骤2-3

数据质量常比模型复杂度更重要。持续收集和标注真实场景数据。

延伸阅读

← Course 3:机器学习策略(上) Course 4:卷积神经网络基础 →