【深度学习课程总结】第3周
一、 本周主要内容本周主要聚焦于多层前馈网络BP网络与卷积神经网络CNN基础。从Minsky提出的XOR线性不可分问题引入详细推导了多层感知机MLP与误差反向传播BP算法的原理。随后针对全连接网络参数过多的痛点引入了深度学习与卷积神经网络CNN系统学习了CNN的基本组件卷积、池化、填充、步长并梳理了从LeNet-5、AlexNet、VGG-16到ResNet的经典图像分类网络演进史。此外还初步了解了PyTorch深度学习平台及Fashion-MNIST数据集的使用。二、 理论知识梳理2.1 多层感知机MLP与BP算法XOR问题与多层感知机单层感知机无法解决异或XOR等线性不可分问题。通过在输入与输出层之间增加隐藏层构成多层前馈网络可以解决复杂的非线性分类问题。定理1三层阈值节点网络可实现任意二值逻辑函数。定理2三层S型Sigmoid非线性网络可一致逼近紧集上的连续函数。BP算法误差反向传播正向传播输入信号从输入层经隐层传向输出层计算网络输出与误差。反向传播将误差按原联接通路反向计算利用梯度下降法调整各层节点的权值和阈值。优缺点评述优点是学习完全自主且能逼近任意非线性函数缺点是非全局收敛易陷入局部极小值、收敛速度慢、学习率α\alphaα难以选择且网络结构层数、节点数设计依赖经验。2.2 深度学习平台与PyTorch基础为什么要“深度”学习传统全连接网络面临连接权过多如1000x1000图像接入1M隐节点会产生10^12参数、算得慢、难收敛、易过拟合的问题。深度学习通过局部连接和信息分层处理提取更高级别特征来解决这些问题。PyTorch基本概念张量Tensor多维数据数组是深度学习运算的基本物理量。计算图Computational Graph用节点数学操作和线张量传输的有向图来描述计算任务。PyTorch采用动态计算图所见即所得。2.3 卷积神经网络CNN核心概念受人类视觉神经生理学Hubel Wiesel的猫脑实验启发CNN通过局部感受野提取特征。卷积Convolution使用滤波器卷积核提取局部特征。涉及填充Padding和步长Stride的概念以及RGB等多通道卷积。池化Pooling使用局部统计特征均值或最大值用于降采样解决特征过多的问题。网络普遍规律随着网络加深特征图的宽W和高H逐渐衰减而通道数C逐渐增加。三、 经典网络模型演进史本周梳理了四种具有里程碑意义的经典CNN模型LeNet-5 (早期经典)结构Input - Conv - Pool - Conv - Pool - FC - FC - Softmax - Out。特点不进行Padding采用平均池化Average Pooling激活函数为Sigmoid/Tanh参数量小约6万。AlexNet (深度学习爆发)改进全面采用最大池化Max Pooling和ReLU激活函数解决梯度消失并加速收敛引入Dropout防止过拟合使用数据增强裁剪、翻转、色彩抖动采用双GPU训练策略。参数量接近6000万。VGG-16 (走向规整)特点网络结构极其规整全部使用3×33 \times 33×3的小卷积核和2×22 \times 22×2的最大池化层堆叠。参数量进一步增大至约1.38亿。ResNet (残差网络解决退化问题)痛点普通网络加深会导致“梯度消失”和网络退化现象深层网络效果不如浅层。创新引入残差块Residual Block通过跳跃连接Skip Connection将浅层激活项直接传向深层使得训练极深的神经网络成为可能。ResNet-34的计算复杂度FLOPs仅为VGG-19的18%。注本文为课程学习记录