CNN_book_Chap 01 卷积神经网络基础知识

什么是深度学习?

机器学习(machine learning):是人工智能的一个分支,致力于研究如何通过计算的手段,利用经验来改善计算机系统自身的性能。凭借机器学习算法来从经验中学习到所需的所有知识,经验:对应以“特征”形式存储的“数据”,传统机器学习算法依靠这些数据产生“模型”。

表示学习(representation learning):用机器自动学习“特征”,从而帮助算法学到优质模型。其自适应性使人工智能系统可以很快移植到新的任务上。“深度学习”是“表示学习”的一个经典代表。

深度学习以数据原始形态作为算法输入,经过算法层层抽象将原始数据逐层抽象为自身任务所需的最终特征表示,最后以特征到任务目标的映射作为结束——从原始数据到最终任务目标,一气呵成,不涉及人为操作。深度学习的代表算法有深度置信网络(deep belief network)、递归神经网络(recurrent neural network)、卷积神经网络(convolution neural network)。

总结:传统机器学习——仅学得模型这一单一“任务模块”;深度学习——除了模型学习,还有特征学习、特征抽象等任务模块的参与。借助多层任务模块完成最终学习任务,故称其为深度学习。

Chap 01 卷积神经网络基础知识

卷积神经网络最主要的特点是卷积运算操作,在诸多领域应用,特别是图像相关任务上表现优异,诸如,图像分类、图像语义分割、图像检索、物体检测等计算机视觉问题。此外,随着CNN研究的深入,如自然语言处理中的文本分类,软件工程数据挖掘中软件缺陷预测等问题都在尝试利用卷积神经网络解决,并取得了比传统方法更优的预测结果。

卷积神经网络是一种层次模型。由前馈运算和反馈运算两部分组成。

前馈运算

输入为原始数据,如RGB图像、原始音频数据等。通过卷积、汇合和非线性激活函数映射等一系列操作的层层堆叠,将高层语义信息逐层由原始数据输入层中抽取出来,逐层抽象。卷积网络的最后一层将其目标任务(分类、回归等)形式化为目标函数。

神经网络的损失函数为:(注:神经网络的输入为原始数据\( \mathbf{x}^1 \),输出为\( \mathbf{x}^L \),\( \mathbf{y} \)是输入\( \mathbf{x}^1 \)对应的真实标签。其中,神经网络的参数为\( \mathbf{w}^1,…, \mathbf{w}^{L-1} \)。)
\begin{equation}
\mathcal{z} = \mathcal{L}(\mathbf{x}^L,\mathbf{y})
\label{eq:loss_function}
\end{equation}

对于回归问题,常用的\( \mathcal{l}_{2} \)损失函数,即可作为卷积网络的目标函数,则

\begin{equation}
\mathcal{z} = \mathcal{L}_{regression}(\mathbf{x}^L,\mathbf{y})=\frac{1}{2} ||\mathbf{x}^L-\mathbf{y}||
\end{equation}

对于分类问题,神经网络的目标函数常用交叉熵损失函数,有

\begin{equation}
\mathcal{z} = \mathcal{L}_{classification}(\mathbf{x}^L,\mathbf{y}) = - \sum_i y_i \log{p_i}
\end{equation}

其中,\( p_i=\frac{exp{(x_i^L)}} { {\sum_{j=1}^C} {exp{(x_j^L)}} } \), (i=1,2,…,C),注:C  为分类任务类别数。在利用交叉熵损失函数训练后得到的网络中,\( \mathbf{x}^L \in \Re^C\)的每一维可表示\( \mathbf{x}^1 \)分别隶属C个类别的后验概率,因此,可通过下式
a r g max i x i L { arg \max_{i} x_i^L }

得到输入图像\( \mathbf{x}^1 \)对应的预测标记。

由以上内容可知,在计算\( \mathcal{z} \)之前,需要通过合适的操作得到与 \( \mathbf{y} \)同纬度的\( \mathbf{x}^L \),才能正确计算样本预测的损失值。

先验概率和后验概率
先验概率:是指根据以往经验和分析得到的概率。
后验概率:事情已经发生,要求这件事情发生的原因是由某个因素引起的可能性的大小。
“如果我们把事件\(A\)看做’结果’,把诸事件\( B_1 \),\( B_2 \),…看做导致这个结果的可能的’原因’,则可以形象地把全概率公式看做成为’由原因推结果’;而贝叶斯公式则恰好相反,其作用于’由结果推原因’:现在有一个’结果’A已发生,在众多可能的’原因’中,到底是哪一个导致了这结果”。
\begin{equation}
P(B_1|A)=\frac{P(A,B_1)}{P(A)}=\frac{P(A|B_1)*P(B_1)}{ P(A|B_1)*P(B_1)+P(A|B_2)*P(B_2) }
\end{equation}
\( P(B_1) \)是先验概率。\( P(B_1|A) \)是后验概率:代表由原因\( B_1 \)导致\( A \)发生的概率。其中\( P(A) \)的展开运用了全概率公式。

反馈运算

通过计算预测值与真实值之间的误差或损失(loss),凭借反向传播算法,将误差或损失由最后一层逐层向前反馈,更新每层参数。前馈与反馈运算反复进行,直至网络模型收敛,从而达到模型训练的目的。

所有深度学习模型都依赖最小化损失函数来学习模型参数,即最小化前文中的\( \mathcal{z} \)。先通过前馈运算得到预测并计算其误差,后采用随机梯度下降法或批梯度下降法来更新参数,梯度从后往前逐层反馈。另外,批处理样本的大小(batch size)应适中,一般而言,设为32、64、128、256即可。若batch size过小,会使训练过程产生振荡;batch size的上限主要取决于硬件资源的限制。(Stochastic Gradient Descent->Mini-batch Gradient Descent->Full-batch Gradient Descent)

猜你喜欢

转载自blog.csdn.net/qq_35533703/article/details/82818082