赞
踩
我们之前已经学习过线性回归和逻辑回归算法了,为什么还要研究神经网络? 我们先看一个例子。下面是一个监督学习分类问题的训练集。
当我们使用x1,x2的多次项式进行预测时,我们可以应用的很好。 使用非线性的多项式项,能够建立更好的分类模型。假设有非常多的特征,例如大于100个变量,希望用这100个特征来构建一个非线性的多项式模型,结果将是数量非常惊人的特征组合,即便只采用两两特征的组合,也会有接近5000个组合而成的特征。这对于一般的逻辑回归来说需要计算的特征太多了。
普通的逻辑回归模型,不能有效地处理这么多的特征,这时候就需要神经网络模型。
神经网络模型建立在很多神经元之上,每个神经元是一个学习模型。这些神经元(也叫激活单元,activation unit)采纳一些特征作为输入,并且根据本身的模型提供一个输出。
神经元接收来自其他神经元传递过来的输入信号,这些输入信号通过带权重的连接进行传递,神经元接收到的总输入值将与神经元的阈值进行比较,然后通过”激活函数“处理以产生神经元的输出。实际常用Sigmoid函数作为激活函数。(引用西瓜书上的原话)
感知机(Perceptron)由两层神经元组成。输入层接收外界输入信号后传递给输出层,输出层是M-P神经元(亦称”阈值逻辑单元“(threshold logic unit))。
注意:
感知机只有输出层神经元进行激活函数处理,即只拥有一层功能神经元,学习能力有限。
感知机只能解决线性可分问题
要解决非线性可分问题,需要多层感知机,就是多层网络。
输入层和输出层之间的层称为”隐层“或”隐含层“,隐含层和输出层都是拥有激活函数的功能神经元。
在神经网络中,只需包含隐层,即可称为多层网络。
其中:
x
1
,
x
2
,
x
3
\small x_{1},x_{2},x_{3}
x1,x2,x3 是输入单元,将原始数据输入给它们,处于输入层;
a
1
,
a
2
,
a
3
\small a_{1},a_{2},a_{3}
a1,a2,a3是中间单元,负责将数据进行处理,然后呈递到下一层;最后是输出单元,它负责计算
h
θ
(
x
)
\small h_{\theta}(x)
hθ(x)。
标记:
L
L
L:表示神经网络层数
S
L
S_L
SL:表示第L层的单元数(不包括偏置单元)
a
i
(
j
)
a_i^{(j)}
ai(j):第
j
\small j
j层的第
i
\small i
i个单元的激活值
θ
(
j
)
\theta^{(j)}
θ(j):从第
j
\small j
j层映射到第
j
+
1
\small j+1
j+1层的权重矩阵
k
k
k:表示输出的类别数,相当于输出单元数
说明:
当类别k=2时,则直接用一个输出单元
当类别k>=3时,就有k个输出单元。 S L = k S_L=k SL=k
下图为一个3层的神经网络,第一层为输入层(Input Layer),最后一层为输出层(Output Layer),中间一层为隐藏层(Hidden Layers)。我们为每一层都增加一个偏差单位(bias unit)。
标记:
a i ( j ) \small a_i^{(j)} ai(j):第 j \small j j层的第 i \small i i个单元的激活值
θ ( j ) \small \theta^{(j)} θ(j):从第 j \small j j层映射到第 j + 1 \small j+1 j+1层的权重矩阵;例如 θ ( 1 ) \small \theta^{(1)} θ(1)代表从第1层映射到第2层的权重矩阵,其大小为:第 j + 1 \small j+1 j+1层的激活单元数量为行数,以第 j \small j j层的激活单元数加1为列数的矩阵。
对上述模型,激活单元和输出分别表达为:
把
x
,
θ
,
a
x,\theta,a
x,θ,a 分别用矩阵表示:
可得
Θ
⋅
x
=
a
\Theta \cdot x=a
Θ⋅x=a
把这样从左到右的算法称为前向传播算法( Forward Propagation )
说明:
此处 θ ( 1 ) ∈ R 3 × 4 \theta^{(1)}\in R^{3\times4} θ(1)∈R3×4 ,属于 3 × 4 3\times4 3×4的向量
更一般的,如果一个网络在第 j j j层有 S j S_j Sj个单元,那么矩阵 θ ( j ) \theta^{(j)} θ(j)的维度为 S j + 1 × ( S j + 1 ) S_{j+1} \times (S_j+1) Sj+1×(Sj+1),这里包含了偏置单元
介绍神经网络模型的展示,实现不同的功能。此处假设 h Θ ( x ) = 1 1 + e − θ T X \small h_\Theta(x)=\frac{1}{1+e^{-\theta^TX}} hΘ(x)=1+e−θTX1
单层神经网络可以解决线性可分问题,比如逻辑与、或、非等。
举例说明:逻辑与(AND)
当
θ
0
=
−
30
,
θ
1
=
20
,
θ
2
=
20
\theta_0=-30,\theta_1=20,\theta_2=20
θ0=−30,θ1=20,θ2=20,此时
h
Θ
(
x
)
=
g
(
−
30
+
20
x
1
+
20
x
2
)
h_\Theta(x)=g(-30+20x_1+20x_2)
hΘ(x)=g(−30+20x1+20x2)
从图中可以看出
h
Θ
(
x
)
≈
x
1
A
N
D
x
2
\small h_{\Theta}(x) \approx x_{1} AND \small x_{2}
hΘ(x)≈x1ANDx2
举例说明:逻辑或(OR)
多层功能神经元,解决非线性可分问题
举例说明:逻辑同或(XNOR)
XNOR = (x and y) or ((NOT x) and (NOT y))
x,y也可表示为下图中的
x
1
,
x
2
x_1,x_2
x1,x2
这种方法可以逐渐构造出越来越复杂的函数,也能得到更加厉害的特征值。
以逻辑回归代价函数作为一般形式有
L
o
g
i
s
t
i
c
r
e
g
r
e
s
s
i
o
n
Logistic \ \ regression
Logistic regression:
J
(
θ
)
=
−
1
m
[
∑
i
=
1
m
y
(
i
)
l
o
g
h
θ
(
x
(
i
)
)
+
(
1
−
y
(
i
)
)
l
o
g
(
1
−
h
θ
(
x
(
i
)
)
)
]
+
λ
2
m
∑
j
=
1
n
θ
j
2
J(\theta)=-\frac{1}{m}\Biggl [\sum_{i=1}^my^{(i)}logh_\theta(x^{(i)})+(1-y^{(i)})log(1-h_\theta(x^{(i)}))\Biggl ]+\frac{\lambda}{2m}\sum_{j=1}^n\theta_j^2
J(θ)=−m1[i=1∑my(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))]+2mλj=1∑nθj2
可以这样理解,上述式子代表神经网络中一个输出单元的代价函数。
在逻辑回归中,我们只有一个输出变量,又称标量(scalar),也只有一个因变量
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。