理解神经网络中的表示学习(附 PyTorch 示例)
Source: Dev.to
请提供您希望翻译的具体文本内容,我将为您翻译成简体中文。
引言
深度学习系统之所以强大,是因为它们能够自动学习数据的表征。与工程师手动设计特征不同,神经网络在训练过程中自行发现模式。这种能力被称为 表征学习,是现代 AI 模型优于传统机器学习方法的核心原因。从图像识别到大型语言模型,表征学习推动了人工智能的诸多突破。
什么是表征学习?
表征学习指模型将原始输入数据转换为有意义的内部特征,以帮助完成任务的能力。传统机器学习通常依赖人工设计的特征,而深度神经网络通过训练自动学习这些表征。
传统特征 vs. 学习特征
| 问题 | 传统特征 | 学习到的表征 |
|---|---|---|
| 图像分类 | 边缘、颜色直方图 | 分层视觉特征 |
神经网络的每一层都会将输入数据转换为更抽象的表征,逐步细化数据的表征。
分层特征提取
在计算机视觉中,学习到的特征的层次通常如下:
- 边缘 – 梯度的低层检测器。
- 纹理 – 由边缘组合形成的模式。
- 物体部件 – 对纹理的更高层次分组。
- 完整物体 – 完整的语义概念。
网络越深,表示越抽象,这也是深度神经网络在建模复杂模式方面表现出色的原因。
示例:PyTorch 中的简单神经网络
以下是一个最小的 PyTorch 模型,演示隐藏层如何将输入数据转换为内部表征。
import torch
import torch.nn as nn
class SimpleRepresentationNet(nn.Module):
def __init__(self):
super().__init__()
self.layer1 = nn.Linear(10, 32)
self.layer2 = nn.Linear(32, 16)
self.output = nn.Linear(16, 2)
def forward(self, x):
x = torch.relu(self.layer1(x))
x = torch.relu(self.layer2(x))
return self.output(x)
model = SimpleRepresentationNet()
x = torch.randn(1, 10)
prediction = model(x)
print(prediction)层转换
| 层 | 转换 |
|---|---|
| 输入 | 原始 10‑维向量 |
| 层 1 | 线性 → ReLU (10 → 32) |
| 层 2 | 线性 → ReLU (32 → 16) |
| 输出 | 线性 (16 → 2) |
在训练过程中,网络会学习哪些内部表征最能解决任务,从而无需手动进行特征工程。
对关键 AI 技术的影响
- 卷积神经网络 (CNNs) – 从原始像素中学习空间特征。
- Transformer 模型 – 学习上下文令牌表示。
- 推荐系统 – 将用户行为编码为潜在向量。
- 语音与音频模型 – 将声学信号转换为语言表示。
这些内部表示使神经网络能够超越训练数据进行泛化。
大语言模型中的表征学习
典型工作流程:
- Tokenization – 将标记转换为嵌入。
- Attention layers – 精炼上下文关系。
- Hidden states – 成为丰富的语义表征。
- Output layers – 将表征转换为预测。
此过程使模型能够捕获诸如语义相似性、句法和上下文依赖等关系,而无需任何显式特征工程。
相关概念
- Feature Learning
- Embeddings
- Latent Representations
- Transformer Attention
- Self‑Supervised Learning
这些理念共同构成了现代 AI 架构的基础。
结论
表征学习是一项关键创新,使深度学习模型能够自动发现有意义的特征。通过此方式,神经网络可以在以下领域的复杂任务和海量数据集上进行扩展:
- 计算机视觉
- 语音识别
- 自然语言处理
- 生成式 AI
理解表征学习对于构建视觉系统、训练语言模型或开发推荐引擎的任何人来说都是必不可少的。