7、神经网络
7.1非线性假设
无论是线性回归还是逻辑回归都有这样一个缺点,即:当特征太多时,计算的负荷会非常大
当特征变量只有
x
1
x_1
x1和
x
2
x_2
x2时,我们可以利用高阶多项式进行很好的预测,但是当特征变量更多时,我们希望用这100个特征来构建一个非线性的多项式模型,
结果将是数量非常惊人的特征组合,计算量也非常之大
而神经网络可以用来学习复杂的非线性假设模型
7.2神经网络模型
如下图为多个逻辑单位,逻辑单位负责:传递信息——>计算——>输出结果
在神经网络术语中,我们称之为带有sigmoid或logistic激活函数的人工神经元(激活函数指的是非线性函数 ),
参数
θ
\theta
θ在神经网络称权重
x
0
x_0
x0为偏置单元(又称偏置神经元),通常不出现在图中
隐藏层和输出层中的神经元由激活函数表达,我们用字母g表示。激活函数有很多种类型,最常用是sigmoid函数,它的表达式如下:
g
(
x
)
=
1
1
+
e
−
x
g(x)=\frac{1}{1+e^{-x}}
g(x)=1+e−x1
一般,传递进来的特征值在经过与权重的运算后再带进
g
(
x
)
g(x)
g(x)中计算
神经网络指的是一组神经元连接在一起的集合
神经网络构架指的是神经网络的连接方式
神经网络分为三层:输入层、隐藏层、输出层
a
i
j
a_i^{j}
aij指第j层第i个神经元的激活项(激活项指计算输出值)
Θ
j
\Theta^{j}
Θj为权重矩阵,控制着第j层到第j+1层的映射
如果在j层有
s
j
s_j
sj个单元,在j+1层有
s
j
+
1
s_{j+1}
sj+1个单元,那么
Θ
j
\Theta^{j}
Θj的维度是
s
j
+
1
×
(
s
j
+
1
)
s_{j+1}\times(s_j +1)
sj+1×(sj+1)
特征向量x也可以被
a
(
1
)
=
[
a
0
(
1
)
,
a
1
(
1
)
,
a
2
(
1
)
,
a
3
(
1
)
]
T
a^{(1)}=[a_0^{(1)},a_1^{(1)},a_2^{(1)},a_3^{(1)}]^T
a(1)=[a0(1),a1(1),a2(1),a3(1)]T代替
以上过程被称为前向传播
我们的输入项不仅可以是原本的
x
1
,
x
2
,
x
3
x_1,x_2,x_3
x1,x2,x3,还可以是
x
1
x
2
,
x
2
x
3
,
x
1
x
3
x_1x_2,x_2x_3,x_1x_3
x1x2,x2x3,x1x3等各种各样组成的多次项或多项式项,
这体现了神经网络算法的一个特点:可以灵活快速学习任意的特征值
计算逐层深入复杂
7.3神经计算的简单例子
AND运算
OR运算
7.4神经计算的复杂例子
XNOR运算
7.5多元分类
当要将结果分类成4类时
y
i
y_i
yi不再用1、2、3、4来表示,而是采用[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]来表示