10.2 非线性二分类实现
10.2 非线性二分类实现⚓︎
10.2.1 定义神经网络结构⚓︎
首先定义可以完成非线性二分类的神经网络结构图,如图10-6所示。
图10-6 非线性二分类神经网络结构图
- 输入层两个特征值
$$ X=\begin{pmatrix} x_1 & x_2 \end{pmatrix} $$ - 隐层
的权重矩阵 $$ W1=\begin{pmatrix} w1_{11} & w1_{12} \\ w1_{21} & w1_{22} \end{pmatrix} $$ - 隐层
的偏移矩阵
- 隐层由两个神经元构成 $$ Z1=\begin{pmatrix} z1_{1} & z1_{2} \end{pmatrix} $$ $$ A1=\begin{pmatrix} a1_{1} & a1_{2} \end{pmatrix} $$
-
输出层
的权重矩阵 $$ W2=\begin{pmatrix} w2_{11} \\ w2_{21}
\end{pmatrix} $$ -
输出层
的偏移矩阵
- 输出层有一个神经元使用Logistic函数进行分类 $$ Z2=\begin{pmatrix} z2_{1} \end{pmatrix} $$ $$ A2=\begin{pmatrix} a2_{1} \end{pmatrix} $$
对于一般的用于二分类的双层神经网络可以是图10-7的样子。
图10-7 通用的二分类神经网络结构图
输入特征值可以有很多,隐层单元也可以有很多,输出单元只有一个,且后面要接Logistic分类函数和二分类交叉熵损失函数。
10.2.2 前向计算⚓︎
根据网络结构,我们有了前向计算过程图10-8。
图10-8 前向计算过程
第一层⚓︎
- 线性计算
- 激活函数
第二层⚓︎
- 线性计算
- 分类函数
损失函数⚓︎
我们把异或问题归类成二分类问题,所以使用二分类交叉熵损失函数:
在二分类问题中,
10.2.3 反向传播⚓︎
图10-9展示了反向传播的过程。
图10-9 反向传播过程
求损失函数对输出层的反向误差⚓︎
对损失函数求导,可以得到损失函数对输出层的梯度值,即图10-9中的
根据公式12,求
求 和 的梯度⚓︎
求损失函数对隐层的反向误差⚓︎
所以最后到达
有了