8、Neural Networks: Representation(神经网络:表示)
8.1 Non-linear hypothesis(非线性假设)
神经网络在学习复杂的非线性假设上被证明是一种好的算法,即使输入特征空间很大,也能轻松搞定。
8.3 Model representation I(模型展示 I)
神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真是世界物体所作出的交互反应。
神经网络中最基本的成分是神经元 (neuron/unit) 模型,即上述定义中的“简单单元”。下图展示了西瓜书中的神经元模型。
在这个模型中,神经元接收到来自n个其他神经元传递过来的输入信号,这些输入信号通过带权重的连接(connection)进行传递,神经元接收到的总输入将与神经元的阈值(threshold)进行比较,然后通过“激活函数”(activation function)处理以产生神经元的输出。该图中的权重
{
ω
i
}
i
=
1
n
\{\omega_i\}_{i=1}^n
{ωi}i=1n就是前面的参数
{
θ
i
}
i
=
1
n
\{\theta_i\}_{i=1}^n
{θi}i=1n,阈值
θ
\theta
θ 就是参数
θ
0
\theta_0
θ0。
在吴恩达的视频中的神经元模型如下图所示:
这个图本质上和西瓜书中的模型是一样的。只不过该图把西瓜书中的阈值并入到了参数(权重),然后输入中多了一个相应的偏置单元
x
0
x_0
x0。下面的笔记都以吴恩达视频中的图为例,即将阈值并入到参数中。
理想中的激活函数是下图所示的阶跃函数,它将输入值映射为输出值0或1。然而,阶跃函数具有不连续、不光滑等不太好的性质,因此实际常用Sigmoid函数作为激活函数。注:激活函数有很多种,Sigmoid函数只是其中的一种;对于输出层,激活函数就不用将输入值映射到
(
0
,
1
)
(0,1)
(0,1),比如在回归问题中,输出层的激活函数可以是恒等函数。
神经网络模型如下图所示:
Layer1称为输入层,Layer2称为隐藏层(隐藏层可以不止有一层),Layer3称为输出层。
a
i
(
j
)
a_i^{(j)}
ai(j)是第
j
j
j层第
i
i
i个神经元的激活项,
Θ
(
j
)
\Theta^{(j)}
Θ(j)是第
j
j
j层到第
j
+
1
j+1
j+1层的映射矩阵。当然输出层的
h
Θ
(
x
)
h_\Theta(x)
hΘ(x)不一定要带有激活函数,即使带有激活函数也有多种可能。
8.4 Model representation II(模型展示 II)
这一节所做的事情就是将神经网络中各层之间的映射向量化。如图所示的前向传播:
将第
l
+
1
l+1
l+1层在激活函数之前的值(即第
l
l
l层的输出
a
(
l
)
a^{(l)}
a(l)的线性组合
Θ
(
l
)
a
(
l
)
\Theta^{(l)}a^{(l)}
Θ(l)a(l))记为
z
(
l
+
1
)
z^{(l+1)}
z(l+1),输出记为
a
(
l
+
1
)
a^{(l+1)}
a(l+1),这样记做的目的是方便后面第九章的反向传播算法求导时的简洁。
8.7 Multi-class classification(多元分类)
对于回归问题和二分类问题,输出层只需要一个神经单元;但是对于多分类问题,输出层就需要多个神经单元。比如多分类,分成4类,输出层就有4个单元,用向量表示就是输出层是一个4维的向量,该向量只有一个值为1,其余为0。如下图所示: