- 深度学习是什么?
- 感知器
- 感知器的训练
深度学习是什么?
在人工智能领域,有个方法叫做机器学习。在机器学习的方法里,有一类算法叫神经网络。其原理如下图所示:
上图中的每个圆圈都是一个神经元,每条线表示神经元之间的链接。每一层内的神经元没有连接,每层之间的神经元有连接。
L
a
y
e
r
L
1
Layer L_1
LayerL1是输入层,负责接受输入数据;
L
a
y
e
r
L
2
Layer L_2
LayerL2是隐藏层,往往用于提取输入数据的特征;
L
a
y
e
r
L
3
Layer L_3
LayerL3是输出层,将神经网络处理后的数据输出。
含有隐藏层数目较多(>2)的神经网络称为深度神经网络。隐藏层具有拟合数据的能力,当输入数据较为复杂时,为了有效的提取数据更深层次的特征往往需要多层神经网络。但是,深层神经网络也存在训练时间长,参数量大的缺点。
感知器
感知器–神经网络的组成单元。一个感知器是由一下几个部分组成:
输入权值 一个感知器可以接受多个输入
{
x
1
,
x
2
,
.
.
.
,
x
n
∣
x
i
∈
ℜ
}
\{x_1,x_2, ...,x_n|x_i\in\Re\}
{x1,x2,...,xn∣xi∈ℜ}, 每个输入都没分配一个权值
w
i
∈
ℜ
w_i\in\Re
wi∈ℜ,此外,还有一个偏置项
b
∈
ℜ
b\in\Re
b∈ℜ,在图中为
w
0
w_0
w0.
激活函数 有很多感知器,不同的激活函数适用不同的任务。阶跃函数
f
f
f就是感知器的一种:
f
(
z
)
=
{
1
,
z
>
0
0
,
o
t
h
e
r
w
i
s
e
f(z)=\left\{\begin{array}{l} 1,\ \ z>0\\ 0,\ \ otherwise\\ \end{array}\right.
f(z)={1, z>00, otherwise
输出 感知器的输出通过下面公式转化
y
=
f
(
w
x
+
b
)
y=f(wx+b)
y=f(wx+b)
ex:设置不同的权重系数,来实现布尔运算(and 和 or)
阶跃函数中自变量
z
>
0
z>0
z>0时,阶跃函数输出为1
阶跃函数中自变量
z
<
0
z<0
z<0时,阶跃函数输出为0
布尔运算中的 and的真值表如下
x 1 x_1 x1 | x 2 x_2 x2 | y y y |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
只有取值同是1的时候,布尔 and 的的运算结果才是1.换句话说,只有当
x
1
+
x
2
>
1
x_1+x_2>1
x1+x2>1时,函数输出结果才是1,当
x
1
+
x
2
≤
1
x_1+x_2\leq1
x1+x2≤1时,函数输出结果为0。四个红点分别是(0,0,0), (0,1,0), (1,0,0), (1,1,0)。落在在蓝色和绿色之间的曲面都可以实现and运算。蓝色曲面的
w
1
=
0.5
,
w
2
=
0.5
,
b
=
−
0.5
w_1=0.5,w_2=0.5,b=-0.5
w1=0.5,w2=0.5,b=−0.5, 绿色曲面的
w
1
=
0.5
,
w
2
=
0.5
,
b
=
−
1
w_1=0.5,w_2=0.5,b=-1
w1=0.5,w2=0.5,b=−1。
matlab画图代码:
close all
w = [0.5,0.5,-0.5];
w = [0.5,0.5,-1];
[x1,x2,y2] = meshgrid(0:0.01:2,0:0.01:2,0);
y1 = w(1)*x1+w(2)*x2+w(3);
x3=[0,0,1,1];
x4=[0,1,0,1];
z=[0,0,0,0];
plot3(x1,x2,y1,'g')
hold on
mesh(x1,x2,y2)
plot3(x3,x4,z,'r.','MarkerSize',10)
hold on
set(gca,'ZTick',[-2:0.5:2]);
xlabel('x1')
ylabel('x2')
zlabel('y')
根据上面的描述,可以很自然的理解,感知器可以实现线性分类,和线性回归 .
感知器的训练
首先对权重项初始化
w
=
0
,
b
=
0
\boldsymbol{w}=\boldsymbol{0}, b=0
w=0,b=0, 利用梯度下降法迭代修改
w
,
b
\boldsymbol{w}, b
w,b
w
k
=
w
k
−
1
+
△
w
k
−
1
,
b
k
=
b
k
−
1
+
b
k
−
1
\boldsymbol{w}^k = \boldsymbol{w}^{k-1}+\triangle\boldsymbol{w}^{k-1} , b^k =b^{k-1}+b^{k-1}
wk=wk−1+△wk−1,bk=bk−1+bk−1
其中,
△
w
k
−
1
=
η
(
t
−
y
)
x
i
,
△
b
k
−
1
=
η
(
t
−
y
)
\triangle \boldsymbol{w}^{k-1} = \eta(t-y)x_i, \triangle b^{k-1} = \eta (t-y)
△wk−1=η(t−y)xi,△bk−1=η(t−y)
η
\eta
η是学习率,
t
t
t是训练样本的实际值,
y
y
y是感知器的输出值
参考文献:https://www.zybuluo.com/hanbingtao/note/433855