5. 深度学习用于计算机视觉
WU Xiaokun 吴晓堃
xkun.wu [at] gmail
2021/05/10
卷积神经网络简介。 在小型数据集上从头开始训练一个卷积神经网络。 使用预训练的卷积神经网络。 卷积神经网络的可视化。
重点:卷积和池化层的工作原理、数据增强、使用预训练的卷积神经网络;
难点:卷积神经网络的可视化方法。
from keras import models, layers
model = models.Sequential()
model.add(layers.SeparableConv2D(32, 3, activation='relu', input_shape=(height, width, channels)))
model.add(layers.MaxPooling2D(2))
model.add(layers.SeparableConv2D(64, 3, activation='relu'))
model.add(layers.MaxPooling2D(2))
model.add(layers.SeparableConv2D(128, 3, activation='relu'))
model.add(layers.GlobalAveragePooling2D())
model.add(layers.Dense(32, activation='relu'))
model.add(layers.Dense(num_classes, activation='softmax'))
# model.summary()
学到的是局部模式。
步幅为 2 意味着对特征图做 2 倍下采样(除了边界效应引起的变化)。
一般来说,最大池化的效果最好。
深度学习模型本质上具有高度的可复用性。
如何训练机器识别倒立的猫?
某个卷积层提取的表示的通用性(以及可复用性)取决于该层在模型中的深度。
将顶部的几层“解冻”,并将这解冻的几层和新增加的部分联合训练:
有助于精确理解每个过滤器容易接受的视觉模式或视觉概念。
有助于理解图像的哪个部分被识别,从而可以定位图像中的物体。
第一层是各种边缘探测器的集合。
随着层数的加深,激活变得越来越抽象,并且越来越难以直观地理解。
层数越深,其表示中关于图像视觉内容的信息就越少,而关于类别的信息就越多。
深度神经网络对数据反复变换,将无关的视觉细节过滤掉,总结出高度抽象的概念。
从带有噪声的灰度图像开始,将梯度上升应用于图像:
用“每个通道对类别的重要程度”对“输入图像对不同通道的激活强度”进行加权,从而得到了“输入图像对类别的激活强度”。