1. 卷积层是干啥的?
你可以把卷积层想象成:
-
相机镜头 📷:不同的卷积核像不同滤镜,能抓住不同的特征。
-
多层卷积 = 多重观察:
- 第一层:看边缘和线条
- 第二层:看形状和纹理
- 第三层:看出"这是一只猫"
2. 常用卷积函数(记住就好)
Conv1D
→ 处理 一维数据(声音波形、股票曲线)Conv2D
→ 处理 图片(最常用)Conv3D
→ 处理 视频 / 医学 CT 扫描SeparableConv2D
→ 轻量化,适合 手机端模型Conv2DTranspose
→ 把小图变大图(生成图片、分割任务)
👉 大多数情况下,图像直接用 Conv2D
。
3. 激活函数是干啥的?
没有激活函数,网络就像一个"只能拉直线的画家",学不了复杂图形。
激活函数让网络会"弯",能画出复杂关系。
4. 激活函数怎么选?
隐藏层(卷积层后面)
- ReLU 👉 默认首选,简单好用
- LeakyReLU 👉 ReLU 的改进版,避免神经元"死掉"
- Swish / GELU 👉 更高级,现代模型里常用,但计算慢
输出层(最后一层,和任务相关)
- 二分类 (猫 vs 狗) 👉
sigmoid
- 多分类 (猫 / 狗 / 兔子) 👉
softmax
- 回归(预测房价) 👉 不加激活(线性输出)
👉 口诀:中间层 ReLU,最后一层看任务。
5. 示例(大量对比)
示例 A:猫狗二分类
ini
layers.Conv2D(32, (3,3), activation='relu') # 隐藏层用 ReLU
...
layers.Dense(1, activation='sigmoid') # 最后一层 sigmoid
示例 B:三分类(猫/狗/兔子)
ini
layers.Conv2D(64, (3,3), activation='relu')
...
layers.Dense(3, activation='softmax') # 最后一层 softmax
示例 C:预测房价(回归)
ini
layers.Conv2D(32, (3,3), activation='relu')
...
layers.Dense(1) # 最后一层不用激活
示例 D:声音数据(语音情感识别)
ini
layers.Conv1D(64, 3, activation='relu', input_shape=(1000, 20))
layers.GlobalMaxPooling1D()
layers.Dense(3, activation='softmax') # 三种情感
示例 E:视频分类(动作识别:跑 / 跳 / 走)
ini
layers.Conv3D(32, (3,3,3), activation='relu', input_shape=(16, 112, 112, 3))
layers.MaxPooling3D((2,2,2))
layers.Dense(3, activation='softmax') # 三类动作
示例 F:轻量化模型(移动端)
ini
layers.SeparableConv2D(32, (3,3), activation='relu')
layers.Dense(1, activation='sigmoid')
6. 总结一句话
-
卷积层选法:
- 图片 → Conv2D
- 视频 → Conv3D
- 声音/文本 → Conv1D
-
激活函数选法:
- 中间层 → ReLU
- 输出层 → 按任务选(sigmoid / softmax / 无)
👉 口诀:
"中间 ReLU,最后看任务;图像 2D,视频 3D,声音 1D。" 🎯