本专栏是书《深度学习入门》的阅读笔记一共八章:
第一章深度学习中的Python基础。主要讲解了深度学习将要用到的python的基础知识以及简单介绍了numpy库和matpoltlib库,本书编写深度学习神经网络代码仅使用Python和numpy库,不使用目前流行的各种深度学习框架,适合入门新手学习理论知识。
第二章感知机。主要介绍了神经网络和深度学习的基本单元感知机。感知机接收多个输入,产生一个输出,单层感知器可以实现与门,或门以及与非门,但是不能实现异或门,异或门的实现需要借助多层感知机,这也就是说,单层感知机只能表示线性空间,而非线性空间的表示需要借助多层感知机。
第三章神经网络——基于numpy的代码详解。主要讲解了神经网络的构成,神经网络中的激活函数,神经网络中层与层的矩阵乘法,3层神经网络的代码,输出层的设计和批处理。
第四章神经网络的学习算法——随机梯度下降numpy代码详解。主要讲解了神经网络中的学习算法,介绍了损失函数,通过微分求导的方法求梯度,随机梯度下降算法的原理以及基于numpy的代码详解。
第五章误差反向传播算法——基于numpy的代码详解。这一章主要介绍了,实现误差反向传播的一种工具,计算图,从最简单的加法节点乘法节点的计算图开始,介绍了加法节点乘法节点的反向传播,一步步深入,到加法层,乘法层,激活函数层等层的反向传播,最终把各种层的反向传播拼接在一起,就形成了整个网络的反向传播。
第六章神经网络的学习技巧——原理+numpy代码详解。这一章主要介绍了除了随机梯度下降算法以外其他更新参数的学习算法,权重初始值的设置,解决过拟合的方法以及batch normalization,最后简单介绍了神经网络超参数的确定规则。
第七章卷积神经网络(Convolutional Neural Network,CNN)
7.1整体结构
前面我们介绍的是全连接(fully-connected)网络,CNN除了具有全连接层以外,还具有适合处理图像的卷积层(Convolutional)和池化层(Pooling)。
典型的全连接网络的例子为:
典型的卷积神经网络的例子为:
7.2卷积层
7.2.1卷积运算
因为在全连接层中,数据都被展成了1维的形式,忽略了图片的形状信息,而图像是由3维数据构成,完全不考虑图像的结构肯定是不合理的,图像的信息很有可能隐藏在图像的结构中,而卷积层可以保持输入的数据形状不变,当输入图像信息时,卷积层会以3维数据的形状接收输入数据,并以3维数据的形状输出数据,因为这一点,在卷积层中,输入数据又叫输入特征图(input feature map),输出数据又叫输出特征图(output feature map)。
那么卷积层对输入特征图做了哪些运算呢?实际上,卷积层做的运算就是卷积运算,卷积运算相当于图像处理中的“滤波器运算”。有的文献中也将“滤波器”叫做“核”。下面给出一个卷积运算的例子。