I refuse to say anything beyond five years because I don't think we can see much beyond five years.
本文最后更新于 2024年10月2日 晚上
课程视频
网上找到的笔记
详细笔记请见网上大佬的笔记(见上👆)他好像用语音识别把每句话都记下来了,这里只是一些总结性质的随手记
类神经网络(续)
Q:为什么分类问题中 Cross-entropy 优于 MSE?
A:若在采用梯度下降法的情况下使用 MSE,则会在 Loss 较大时 stuck(左上角)
批次标准化 - Batch Normalization
training
Q:考虑 W 时,到底要对 z 还是 a 做标准化?
A:在实际操作中可能差异不是很大。如果激活函数采用sigmoid,则推荐对 z 做标准化,因为在 0 附近 gradient 比较大。
batch 需要足够大。
testing
Network 架构设计
CNN
CNN 通常用于图像分类
假设输入图片大小是固定的(否则 rescale)
观察 & 简化 1
不需要将整张图片作为输入(fully connected network 的做法),只需要将图片的一小部分作为输入即可找到关键 pattern。
简化: 设定 receptive field,每个 Neuron 只接收一个 receptive field 内的输入,并进行计算。
receptive field 可以互相重叠,也可相同,可以是连通的也可以不连通的(例如,可以指定“左上角”与“右下角”,但是这样的receptive field 不一定适合解决通常情况下的问题)
receptive field 可以大小不一,形状也可以不一(长方形也可),也可以只考虑某些 channels(例如 RGB 三个中只考虑 R)
经典 setting
- all channels
- kernel size = receptive field size = 3x3
- 一个 receptive field 对应一组 Neurons (e.g. 64 neurons)
- stride = 1 or 2 (自己设置的超参数),超出部分自行采用合适的补植方案(padding)
观察 & 简化 2
简化: 不同的 receptive field 共享参数,相同的 receptive field 不同参数(如果共享,则会导致输出完全相同)
经典 setting:
- 每个 receptive field 上同一组的 neurons 使用不同的 filter,不同 receptive field 对应的不同 Neurons 共享 filter
(如下图所示,不同 receptive field 的不同 neurons 共享参数 filter1, filter2 …)
卷积层
Convolutional Layer
filter 如何运作?
使用如下 filter 1,由于 filter 主对角线上全为 1,当输入 receptive field 主对角线全为 1 时出现最大值 3。于是从输出上可以看到在 image 左上、左下位置出现了对角线“三连1”的情形。
Multiple Convolutional Layer
经过 filter 输出的 称为 feature map,feature map 大小与输入相同,channel 数目与 filter 数目相同。
只要 network 足够深,就能够监测到足够大的 pattern
两种角度对比
Max Pooling
有多种 pooling 的方式,max pooling 就是取 每一组中的最大值作为输出。
Convolutional Layer + Pooling 实现减少运算量
基本结构: 次 convolutional + 次 pooling。
但是 pooling 会损失信息,如果算力足够强的话,可以不用 pooling。
Flatten:将本来排成矩阵的数据拉直为一个向量。
Alpha Go
将棋盘看作是 19 19 的 image