第一章 深度学习
第一节 神经网络
第二节 卷积神经网络(CNN)
1.2.1 卷积网络 07:47
- 原始图 3 通道,
- CONV层
- Filter: 就是CONV层, ①可以有多层 ②图片是几通的,
- Bias: 偏置, 每个Filter层都有一个偏置
- RELU层: 非线性变化
- POLL层: Max Pooling: 02:48 (别名: 压缩, 下采样)
- FC: 打平后全连接softmax出每个分类的概率
VGG-16
|
+-- conv3-64 (第1个卷积层, 一次操作)
| |
| +-- filter W0 3x3x3 --> 27个权重 + 1个bias --> 出图0
| +-- filter W1 3x3x3 --> 27个权重 + 1个bias --> 出图1
| +-- ...
| +-- filter W63 3x3x3 --> 27个权重 + 1个bias --> 出图63
| |
| +-- 64张图叠成 224x224x64(64就是上面每个filter扫一遍各自出的图)
| --> 整块逐元素 ReLU (224×224×64=3211264中每个数都独立做一次 max(0,x))
|
+-- conv3-64 (第2个卷积层)
| +-- filter W0 3x3x64 ... 64个, 深度变成64
| +-> 224x224x64 --> ReLU
|
+-- maxpool 2x2/s2 --> 112x112x64
+-- conv3-128 (第3个卷积层)
| +-- filter W0 3x3x64 --> 576个权重 + 1个bias --> 出图0
| +-- filter W1 3x3x64 --> 576个权重 + 1个bias --> 出图1
| +-- ...
| +-- filter W127 3x3x64 --> 576个权重 + 1个bias --> 出图127
| |
| | 深度还是 64, 因为输入是上一层那 64 张图;
| | 变的是 filter 个数: 64 --> 128
| |
| +-- 128张 112x112 的图叠成 112x112x128
| --> 整块逐元素 ReLU (112×112×128=1605632 中每个数各做一次 max(0,x))
| 本层参数量 = 128 x (3x3x64 + 1) = 73856
|
+-- conv3-128 (第4个卷积层)
| +-- 128个 filter, 每个 3x3x128, 出 128 张图
| +-> 112x112x128 --> ReLU 本层参数量 = 128 x 1229 = 157312
|
+-- maxpool 2x2/s2 --> 56x56x128
1.2.2 经典网络
| Alexnet(2012): 00:59 |
VGG(2014): 01:52 |
 |
 |
| ①卷积盒太大 ②步子太大 ③padding都没有 |
①maxpooling的损失, 下一层卷积弥补回来(pooling后特征图×2) 问题: 发现不是越深越好 |
Resnet(2015): 04:57
 ①有个跳线的保底 |
|
第三节 循环神经网络(RNN)
1.3.1 RNN网络架构 03:37
会把前一层得到的中间结果保留下来, 参与下一层的运算
1.3.2 LSTM网络架构 09:05
- RNN的问题: 会把之前所有的结果记忆下来 => LSTM

第四节 Word2Vec
上下文 ①one-hot x ──× W──> 词向量 h ──× W'──> 全词表打分 ──softmax──> y
(固定不动) ^^^^^^^^ ^^^^^^^^^^
可训练② 可训练③
① one-hot编码:
语料: "the cat sat on the mat the cat"
↓ 数词频
the=3 cat=2 sat=1 on=1 mat=1
↓ 按频次排序,发编号
the=0 cat=1 sat=2 on=3 mat=4 <- 词表 V=5
↓ 编号写成向量
cat = [0, 1, 0, 0, 0]
the = [1, 0, 0, 0, 0]
sat = [0, 0, 1, 0, 0]
1.4.1 CBOW 和 Skip-grame 06:01
- 区别: CBOW那里给的
传入上下文 最后y:预测中间词; Skip-grame: 给中间词, 预测上下文
| W那里喂什么内容 |
一次更新同时更新W, W’ |
训练结束后W②的样子 |
 |
 |
 |
- 问题: 10W分类? 不不不, 直接给两个
not``thou让它判断对/错(二分类)
- 负采样模型
| target全是1, 模型学会了, 蒙1就行了 |
认为添加负样本 |

|
 |
VIT源码
1. vscode环境配置
- 手动创建: ①点击
RUN AND DEBUG图标 ② Select a debug configuration ③Python Debugger ④Python File
- 等价运行:
python train.py --name cifar10-100_500 --dataset cifar10 --model_type ViT-B_16 --pretrained_dir checkpoint/ViT-B_16.npz
{
"version": "0.2.0",
"configurations": [
{
"name": "train",
"type": "debugpy",
"request": "launch",
"program": "${workspaceFolder}/train.py",
"cwd": "${workspaceFolder}",
"console": "integratedTerminal",
"args": [
"--name", "cifar10-100_500",
"--dataset", "cifar10",
"--model_type", "ViT-B_16",
"--pretrained_dir", "checkpoint/ViT-B_16.npz"
]
}
]
}