来源

最近在学习图像分类的相关知识,卷积是其中不可忽略的技术


github:https://github.com/WZMIAOMIAO/deep-learning-for-image-processing

学习链接:

什么是卷积神经网络

包含了卷积层的神经网络都可以理解为卷积神经网络

卷积层




卷积神经网络应用基础 卷积神经网络基础知识_机器学习


卷积:卷积核覆盖到计算的特征值上,将卷积核上的值与特征值上的值相乘,最后相加

卷积目的:图像特征提取

卷积特性:局部感知,权值共享


卷积神经网络应用基础 卷积神经网络基础知识_卷积核_02


输入:具有RGB三通道的图像

卷积核的深度要和输入图像的深度保持一致,三通道图像需要三维的卷积核

将卷积核分别放在RGB三通道上,进行对应元素相乘相加,最后再将三个通道卷积后的值相加,得到特征矩阵

卷积核的channel与输入特征层的channel相同

输出的特征矩阵channel与卷积核个数相同

padding操作,并计算卷积后的特征矩阵大小


卷积神经网络应用基础 卷积神经网络基础知识_卷积神经网络应用基础_03


常用的激活函数

为什么要引入激活函数?

在计算过程中是一个线性计算的过程,通过激活函数引入非线性因素,使其具备解决非线性问题的能力

常用的激活函数有两种:Sigmoid激活函数和Relu激活函数


卷积神经网络应用基础 卷积神经网络基础知识_卷积核_04


池化层

池化目的:对特征图进行稀疏处理,减少数据运算量

池化特征:没有训练参数;只改变特征矩阵的高和宽,不改变通道;一般池化size和stride相同

常用的两种池化:最大池化,平均池化


卷积神经网络应用基础 卷积神经网络基础知识_深度学习_05


卷积神经网络应用基础 卷积神经网络基础知识_Powered by 金山文档_06


误差计算


卷积神经网络应用基础 卷积神经网络基础知识_卷积核_07


分类问题多用交叉熵损失

Softmax输出:类别之间无交叉(类别之间互斥),如,猫和狗

Sigmoid输出:类别之间有交叉,如,人类和男人

权重的更新


卷积神经网络应用基础 卷积神经网络基础知识_深度学习_08


卷积神经网络应用基础 卷积神经网络基础知识_深度学习_09


卷积神经网络应用基础 卷积神经网络基础知识_卷积核_10


最常用的优化器:SGD+Momentnum


卷积神经网络应用基础 卷积神经网络基础知识_卷积神经网络应用基础_11


卷积神经网络应用基础 卷积神经网络基础知识_卷积核_12


卷积神经网络应用基础 卷积神经网络基础知识_机器学习_13


卷积神经网络应用基础 卷积神经网络基础知识_卷积核_14


总结

    1. 卷积核改变channel数,卷积核的数量 = 输出的channel数
     nn.Conv2d(输入channel数量,卷积核数量,卷积核大小)
     如,nn.Conv2d(3, 16, 5),输入三通道图像,采用16个5x5卷积核,输出通道变为16
    2. 池化层不改变channel数量,改变图像的高和宽
     nn.MaxPool2d(池化size,stride)
    3. 全连接层,输入输出是一维向量,需要进行flatten操作
     nn.Linear(3*32*32, 120)
    4. 在计算交叉熵的内部已经实现了softmax,不需要再额外添加softmax
    loss_function = nn.CrossEntropyLoss()
    outputs = net(inputs)
    loss = loss_function(outputs, labels)
    loss.backward()
    5. 定义优化器,net.parameters()是模型中需要训练的参数,lr是学习率
     optimizer = optim.Adam(net.parameters(), lr=0.001)
     optimizer.step()