【吴恩达机器学习】第四周—前馈神经网络

31.jpg

1. 神经元

1.1 神经元

为了构建神经网络模型,我们需要首先思考大脑中的神经网络是怎样的?每一个神经元都可以被认为是一个处理单元/神经核(processing unit/Nucleus),它含有许多输入/树突(input/Dendrite),并且有一个输出/轴突(output/Axon)。神经网络是大量神经元相互链接并通过电脉冲来交流的一个网络。

1.png
1.png

1.2 神经元间的沟通

神经元之间通过电信号进行沟通(微弱的电流)。所以如果神经元想要传递一个消息,它就会就通过它的轴突,发送一段微弱电流给其他神经元的树突。
接收到信号的神经元会对消息进行处理,处理后可能会通过自己的轴突再将信息传递出去给其他神经元。这就是神经元之间信号传递的简要概述。

2. 神经网络

神经网络是模仿大脑神经元,建立的模型。模型中的每个神经元都是一个单独的【学习模型】,这些神经元也叫做激活单元(activation unit)

2.1 Sigmod神经元

以下示例为逻辑回归模型中常用的,sigmoid神经元的简单示例:

2.png
2.png
中间的神经元(激活单元)是一个sigmoid函数,它将左边输入的和参数θ相乘后作为输入,经过自身的计算得到结果,在神经网络中,参数又可被成为权重(weight)

2.2 三层神经网络和前向传播算法

在Sigmod神经元的基础上,我们可以设计出一个简单的三层神经网络:

3.png
3.png
作为神经网络的第一层,被称为输入层(Input Layer),输入层中的每个节点即输入单元,每个输入单元即包含着原始的输入值,作为中间单元,构成了神经网络的第二层,也称为中间层/隐藏层(Hidden Layers),他们的作用是:负责将数据进行处理,然后呈递到下一层;最后一层被称为输出层(Output Layer)
神经网络模型中,通常只有一个输入层,一个输出层,中间层/隐藏层可以有任意多个。所有层加起来构成了整个神经网络模型。每一层的输出变量都是下一层的输入变量。

对于上述模型,给每一层添加偏差单位(bias unit)后,图像如下:

5.png
5.png
中间层激活单元的表达式:
4.png
4.png
代表第i层的第j个激活单元;
右上角 j 代表是从第j层映射到第 j + 1层时权重的矩阵;
右下角mn代表该参数在θ矩阵中的位置
其中,θ 矩阵的形态m = 第 j + 1层激活单元数 ;n = 第 j 层激活单元数 + 1。

例如:\theta_{mn}^{(1)} 第一层θ参数矩阵的形态3 x 4
m = 第二层激活单元数 = 3;n =第一层激活单元数 3 + 1 = 4
\theta_{mn}^{(2)} 第二层θ参数矩阵的形态1_ x 4_
m = 第三层激活单元数 = 1;n =第二层激活单元数 3 + 1 = 4
输出层表达式:

6.png
6.png

总表达式:
x,\theta,\alpha 分别用矩阵表示,我们可以得到:X\theta = \alpha
X = \begin{Bmatrix} x_0\\x_1\\x_2\\x_3 \end{Bmatrix} ,\theta = \begin{Bmatrix} \theta_{10} & \theta_{11} & \theta_{12} &\theta_{13} \\ \theta_{20} &..&..&.. \\ \theta_{30} &..&..& \theta_{33} \end{Bmatrix},\alpha = \begin{Bmatrix} \alpha_1\\\ \alpha_2\\ \alpha_3 \end{Bmatrix}
从式子里可以看出,对于每个a_i都依赖上层的x以及x对应的参数θ,这样从左至右逐级依赖的算法模型,称为:前向传播算法( FORWARD PROPAGATION )

2.3 神经网络的优势

从2.2节我们可以看到,位于神经网络模型输出层的预测函数可以写作:​
image

我们可以把 a_0, a_1, a_2, a_3 看成更为高级的特征值,也就是x_0, x_1, x_2, x_3的进化体,虽然他们是由x决定的,但由于是梯度下降的,所以a是变化的,并且变化的越来越厉害,所以这些高级的特征值比普通的逻辑回归/线性回归模型中仅仅将x次方厉害,也能更好地预测新数据。
从本质上来讲,神经网络能够通过学习得出其自身的一系列特征。在普通的逻辑回归中,我们被限制为使用数据中的原始特征x_1, x_2... x_n.我们虽然可以使用一些二项式项来组合这些特征,但是我们仍然受到这些原始特征的限制。在神经网络中,原始特征只是输入层,在我们上面三层的神经网络例子中,第三层也就是输出层做出的预测利用的是第二层的特征,而非输入层中的原始特征,我们可以认为第二层中的特征是神经网络通过学习后自己得出的一系列用于预测输出变量的新特征。
这就是神经网络模型相比于逻辑回归和线性回归的优势。

3.样本和直观理解

我们可以用一个单一的激活单元 + 不同的权重即可描三种二元逻辑运算符(BINARY LOGICAL OPERATORS):逻辑与(AND)、 逻辑或(OR)、逻辑非(NOT)
我们只需要将假设函数h_\theta(x)使用Sigmoid函数即可:
h_\theta(z) = g(z) = \frac{1}{1+e^{-z}}

7.png
7.png

从而:

要想实现逻辑与AND,我们可以设置\theta_0,\theta_1,\theta_2分别 = -30,20,20,表达式h_\theta(x) = g(-30 + 20x_1 + 20x_2)

要想实现逻辑或OR,可以设置\theta_0,\theta_1,\theta_2分别 = -10,20, 20,h_\theta(x) = g(-10 + 20x_1 + 20x_2)要想实现逻辑非NOT,更简单,只需要一个输入即可。可以设置\theta_0,\theta_1分别 = 10,-20,h_\theta(x) = g(10 - 20x_1)

4.多类分类

当我们要用神经网络模型来实现多分类,譬如训练一个模型来识别路人、汽车、摩托车和卡车。那么神经网络模型改如何构成?
假设我们的输入有三个维度、输出根据上述可知有4个分类,并且是4个互斥的分类。那么我们的神经网络模型可以设计成如下的形状:

8.png
8.png
即总共4层、中间有两层隐藏层的网络结构。结果是4 x 1维矩阵。
我们可以用
、、、
来分别表示输出:路人、汽车、摩托、卡车。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容