BP神经网络笔记_1

这是第一篇神经网络的笔记,希望能够坚持写下去。这个笔记的内容主要是吴恩达机器学习视频中的内容,为了方便本人的理解,才有了这篇笔记。

两层

这是一个两层神经网络模型,只含有输入层和输出层,没有隐含层。

我们来看最简单的,似逻辑回归里的情况,\(x_1, x_2, x_3\)全为实数,并且我们添加一个恒为1的\(x_0\),则可设

\[x = [x_0,x_1,x_2, x_3]^T \]

\[\theta = [\theta_0, \theta_1, \theta_2, \theta_3]^T \]

我们选择sigmoid函数为

\[g(\theta^Tx) = 1/{(1+e^{-\theta^Tx})} \]

则当\(\theta\)确定时

\[h_\theta(x) = g(\theta^Tx) \]

若我们对其扩展,设有\(n\)个变量,且\(x_1, x_2,\dots, x_n\)全为\(m\)维向量,则\(x_0\)也为\(m\)维向量,则\(x\)\(n+1 \times m\)矩阵

\[x = \left[ \begin{matrix} x_0^1 & x_0^2 & \cdots & x_0^m\\ x_1^1 & x_1^2 & \cdots & x_1^m\\ \vdots& \vdots& \ddots & \vdots\\ x_n^1 & x_n^2 & \cdots & x_n^m \end{matrix} \right] = \left[ \begin{matrix} x_0\\ x_1\\ \vdots\\ x_n \end{matrix} \right] \]

同时\(\theta\)为一个\(n+1\)维列向量

\[\theta = \left[ \begin{matrix} \theta_0\\ \theta_1\\ \vdots\\ \theta_n \end{matrix} \right] \]

\(\theta^Tx\)为一个\(m\)维行向量

\[\theta^Tx= \left[ \begin{matrix} \theta_0x_0^1 + \theta_0x_0^2 + \cdots+\theta_0x_0^m\\ \theta_1x_1^1 + \theta_1x_1^2 + \cdots + \theta_1x_1^m\\ \vdots\\ \theta_nx_n^1 + \theta_nx_n^2 + \cdots + \theta_nx_n^m\\ \end{matrix} \right]^T \]

\[g(\theta^Tx) = g(\left[ \begin{matrix} \theta_0x_0^1 + \theta_0x_0^2 + \cdots+\theta_0x_0^m\\ \theta_1x_1^1 + \theta_1x_1^2 + \cdots + \theta_1x_1^m\\ \vdots\\ \theta_nx_n^1 + \theta_nx_n^2 + \cdots + \theta_nx_n^m\\ \end{matrix} \right]^T) = h_\theta(x) \]

我们得到了一个\(m\)维的结果行向量

三层

有了上面两层神经网络的认识,我们现在来看三层的神经网络

我们先单独分析\(a_1\),对\(a_1\)来说,其原理即为上述两层神经网络模型。我们可以设layer1对\(a_1\)的参数为\(\theta_1\),则\(\theta_1\)为4维列向量,\(x\)\(4\times m\)矩阵

\[\theta_1 = \left[ \begin{matrix} \theta_1^0\\ \theta_1^1\\ \theta_1^2\\ \theta_1^3 \end{matrix} \right] \]

\[x = \left[ \begin{matrix} x_0^1 & x_0^2 & \cdots & x_0^m\\ x_1^1 & x_1^2 & \cdots & x_1^m\\ x_2^1 & x_2^2 & \cdots & x_2^m\\ x_3^1 & x_3^2 & \cdots & x_3^m \end{matrix} \right] \]

所以对于\(a_1\)来说,\(a_1\)\(m\)维行向量

\[a_1 = h_{\theta_1}(x) = g(\theta_1^Tx) \]

同理

\[a_2 = h_{\theta_2}(x) = g(\theta_2^Tx) \]

所以我们可以将\(\theta_1, \theta_2, \theta_3\)组合起来,构成一个矩阵\(\Theta_1\),则

\[\Theta_1 = \left[ \begin{matrix} \theta_1 & \theta_2 & \theta_3 \end{matrix} \right] = \left[ \begin{matrix} \theta_1^0 & \theta_2^0 & \theta_3^0\\ \theta_1^1 & \theta_2^1 & \theta_3^1\\ \theta_1^2 & \theta_2^2 & \theta_3^2\\ \theta_1^3 & \theta_2^3 & \theta_3^3 \end{matrix} \right] \]

\[\Theta_1^Tx = \left[ \begin{matrix} \theta_1^0x_0^1+\theta_1^1x_1^1+\theta_1^2x_2^1+\theta_1^3x_3^1 & \theta_1^0x_0^2+\theta_1^1x_1^2+\theta_1^2x_2^2+\theta_1^3x_3^2 & \cdots & \theta_1^0x_0^m+\theta_1^1x_1^m+\theta_1^2x_2^m+\theta_1^3x_3^m \\ \theta_2^0x_0^1+\theta_2^1x_1^1+\theta_2^2x_2^1+\theta_2^3x_3^1 & \theta_2^0x_0^2+\theta_2^1x_1^2+\theta_2^2x_2^2+\theta_2^3x_3^2 & \cdots & \theta_2^0x_0^m+\theta_2^1x_1^m+\theta_2^2x_2^m+\theta_2^3x_3^m \\ \theta_3^0x_0^1+\theta_3^1x_1^1+\theta_3^2x_2^1+\theta_3^3x_3^1 & \theta_3^0x_0^2+\theta_3^1x_1^2+\theta_3^2x_2^2+\theta_3^3x_3^2 & \cdots & \theta_3^0x_0^m+\theta_3^1x_1^m+\theta_3^2x_2^m+\theta_3^3x_3^m \\ \end{matrix} \right] \]

我们另

\[a = h_{\Theta_1}(x) = g(\Theta_1^Tx) \]

\(a\)\(3\times\) m矩阵,同时我们对\(a\)进行扩充,加入一恒为1的\(m\)维行向量,则\(a\)\(4\times m\)矩阵

\[a = \left[ \begin{matrix} a_0^1 & a_0^2 & \cdots & a_0^m\\ a_1^1 & a_1^2 & \cdots & a_1^m\\ a_2^1 & a_2^2 & \cdots & a_2^m\\ a_3^1 & a_3^2 & \cdots & a_3^m\\ \end{matrix} \right] \]

同时我们对layer2与layer3进行分析,发现也为二层神经网络模型,于是套用公式,设\(\Theta_2\),由于layer3只有一个节点,所以

注:此时的\(\theta_1\)与上面的layer1的\(\theta_1\)不同,是layer2的参数

\[\Theta_2 = \theta_1 = \left[ \begin{matrix} \theta_1^0\\ \theta_1^1\\ \theta_1^2\\ \theta_1^3 \end{matrix} \right] \]

最后我们得到

\[y = h_{\Theta_2}(a) = g(\Theta_2^Ta) \]

结果\(y\)\(m\)维行向量

若layer3含有\(k\)个输出节点,则我们可对上面式子进行扩展

\[\Theta_2 = \left[ \begin{matrix} \theta_1 & \theta_2 & \cdots & \theta_k \end{matrix} \right] = \left[ \begin{matrix} \theta_1^0 & \theta_2^0 & \cdots & \theta_k^0\\ \theta_1^1 & \theta_2^1 & \cdots & \theta_k^1\\ \theta_1^2 & \theta_2^2 & \cdots & \theta_k^2\\ \theta_1^3 & \theta_2^3 & \cdots & \theta_k^3 \end{matrix} \right] \]

所以\(\Theta_2^Ta\)\(k\times m\)矩阵,所以我们得到的\(y=h_{\Theta_2}(a)=g(\Theta_2^Ta)\)\(k\times m\)矩阵

posted @ 2020-10-23 17:54  zzhASDa  阅读(90)  评论(1)    收藏  举报