深度学习介绍(Deep Learning)
·
目标:
-
搞懂什么是“深度学习”
-
弄清楚它和传统机器学习有啥不一样
-
看懂“神经网络”的结构和工作方式
-
跑通一个最简单的神经网络示例
一、什么是深度学习?
定义(通俗版):
深度学习就是用“多层神经网络”让机器学会感知世界的一种方法。
它是机器学习的一个子领域,重点在于构建更复杂的“脑”结构,来解决“图像识别”、“语言理解”、“语音识别”等高感知类任务。
类比理解:
| 人类感知 | 深度学习对应 |
|---|---|
| 看图 | 图像识别 CNN |
| 听声音 | 语音识别 RNN |
| 理解语言 | NLP 模型 Transformer |
| 做决策 | 强化学习(有时配合 DL) |
二、深度学习 vs 传统机器学习
| 项目 | 传统机器学习 | 深度学习 |
|---|---|---|
| 特征提取 | 人工设计特征 | 自动学习特征 |
| 模型结构 | 决策树、SVM、KNN | 神经网络(NN) |
| 表达能力 | 有限,依赖手工经验 | 表达能力强,可学习复杂抽象 |
| 训练数据 | 小数据也能学 | 越多数据越好(大数据) |
三、神经网络长啥样?
结构示意:
输入层(input) → 隐藏层(hidden layers) → 输出层(output)
每一层由多个“神经元”构成,神经元之间通过“权重”连接。
举个例子:手写数字识别(MNIST)
-
输入层:28×28 像素 → 784 个神经元
-
隐藏层:64 或 128 个神经元
-
输出层:10 个神经元(表示 0–9 的数字)
工作原理简述:
-
输入像素值(图片转成数字)
-
每层进行加权和(权重 × 输入)+ 偏置
-
激活函数(如 ReLU)处理非线性关系
-
输出层给出预测结果
-
比较预测结果和真实值 → 算损失(Loss)
-
通过反向传播优化网络(调整权重)
四、一个简单的神经网络代码示例(用 PyTorch)
import torch
import torch.nn as nn
import torch.optim as optim
# 模拟数据:x 是输入,y 是目标输出
x = torch.tensor([[1.0], [2.0], [3.0]])
y = torch.tensor([[2.0], [4.0], [6.0]])
# 定义一个神经网络:输入1维,输出1维
model = nn.Sequential( nn.Linear(1, 1) # y = wx + b )
# 损失函数 & 优化器
loss_fn = nn.MSELoss()
optimizer = optim.SGD(model.parameters(), lr=0.01)
# 训练 100 次
for epoch in range(100):
y_pred = model(x)
loss = loss_fn(y_pred, y)
optimizer.zero_grad()
loss.backward()
optimizer.step()
print("训练完成,预测结果:", model(torch.tensor([[4.0]])))
五、深度学习能干嘛?(现实案例)
| 应用场景 | 技术模型 |
|---|---|
| 人脸识别 | CNN |
| 自动驾驶感知 | CNN + LIDAR处理 |
| 翻译和对话 | Transformer(GPT 就是这个) |
| 推荐系统 | 深度协同过滤 |
| AI绘图 / 视频生成 | GAN、Diffusion、大模型 |
| 医学影像分析 | 深度残差网络(ResNet) |
六、想学深度学习,该准备什么?
技术基础建议:
| 领域 | 内容 |
|---|---|
| 编程 | Python(最常用) |
| 数学 | 线性代数、微积分、概率基础 |
| 框架 | PyTorch(推荐)或 TensorFlow |
📚 拓展资料推荐
| 资源 | 链接 |
|---|---|
| 吴恩达深度学习系列 | https://www.deeplearning.ai |
| PyTorch 官方教程 | https://pytorch.org/tutorials |
| B站:李宏毅《深度学习》课程 | 搜索“李宏毅 深度学习 2024” |
| 书籍:《动手学深度学习》 | 中文版有配套代码,强烈推荐 |
更多推荐
所有评论(0)