今天这一节我们主要学习如何构建一层神经元,这是把构建模块组成神经网络的第一步。
让我们先看看神经网络层如何工作吧。
网络层
这是一个简单的神经网络,一点未了解的可以看我的这个博客中的内容,该神经网络将特征向量传入到隐藏层之中(该隐藏层含有三个神经元),从而获得了激活值,并将其传入仅仅含有一个神经元的输出层中,最终获得想要的值。
先看看隐藏层
让我们把隐藏层放大,来看看它的计算:
这里,我们还是类似使用上一节中使用到的例子,传入一个拥有四个特征的向量作为起始向量(这里是[197,184,136,214]),然后我们依次看看各个神经元,例如第一个神经元,其激活函数为:
a
1
=
g
(
w
1
⋅
x
+
b
1
)
g
(
z
)
=
1
1
+
e
−
(
z
)
a_1=g(w_1\cdot x + b_1)\\ g(z)=\frac{1}{1+e^{-(z)}}
a1=g(w1⋅x+b1)g(z)=1+e−(z)1
类似的,可以写出a2,a3:
a
2
=
g
(
w
2
⋅
x
+
b
2
)
g
(
z
)
=
1
1
+
e
−
(
z
)
a_2=g(w_2\cdot x + b_2)\\ g(z)=\frac{1}{1+e^{-(z)}}
a2=g(w2⋅x+b2)g(z)=1+e−(z)1
a
3
=
g
(
w
3
⋅
x
+
b
3
)
g
(
z
)
=
1
1
+
e
−
(
z
)
a_3=g(w_3\cdot x + b_3)\\ g(z)=\frac{1}{1+e^{-(z)}}
a3=g(w3⋅x+b3)g(z)=1+e−(z)1
那么根据公式,a1,a2,a3一定可以算出来指定的值,例如图中所给的,[0.3,0.7,0.2],那么只需要将这个激活值传给最终输出层,就可以得到最终的预测结果。
再给几个定义
再回到这张图:
我们一般可以把拥有特征向量的输入层叫做第零层,然后类似图中第一个隐藏层叫做第一层,层数依次往后增加,那么按照这个道理,我们可以知道紫色的最终输出层就是第二层。
第零层,第一层,第二层用符号[0],[1],[2]来表示,写在对应符号的右上角,具体可以参考上图。
最终输出层
我们再放大看看最终输出层:
我们将隐藏层得到的激活值传入最终输出层,根据相应的公式(这里应用下刚刚提到的层数表示方法)
a
1
[
2
]
=
g
(
w
1
[
2
]
⋅
x
+
b
1
[
2
]
)
g
(
z
)
=
1
1
+
e
−
(
z
)
a_1^{[2]}=g(w_1^{[2]}\cdot x + b_1^{[2]})\\ g(z)=\frac{1}{1+e^{-(z)}}
a1[2]=g(w1[2]⋅x+b1[2])g(z)=1+e−(z)1
那么就可以得到最终的答案是0.84
可选步骤
当然,如果你想要的最终结果是个布尔值的话,你可以加一个判断语句,如果概率>=0.5,则最终输出为1,否则为0。