前言
一、感知机是什么?
感知机是最简单的神经网络,为了解决其退化为线性模型的问题,引入了激活函数。
感知机perceptron
数学公式:
y
=
{
0
(
w
1
x
1
+
w
2
x
2
≤
Θ
)
1
(
w
1
x
1
+
w
2
x
2
>
Θ
)
(2.1)
y= \begin{cases} 0 \text{ }\text{ }\text{ }(w_1x_1+w_2x_2\le\Theta) \\ 1 \text{ }\text{ }\text{ }(w_1x_1+w_2x_2>\Theta) \end{cases} \tag{2.1}
y={0 (w1x1+w2x2≤Θ)1 (w1x1+w2x2>Θ)(2.1)
在上式子中倒入偏置
b
b
b权重
w
1
w_1
w1和
w
2
w_2
w2
y
=
{
0
(
b
+
w
1
x
1
+
w
2
x
2
≤
0
)
1
(
b
+
w
1
x
1
+
w
2
x
2
>
0
)
(2.2)
y= \begin{cases} 0 \text{ }\text{ }\text{ }(b+w_1x_1+w_2x_2\le0) \\ 1 \text{ }\text{ }\text{ }(b+w_1x_1+w_2x_2>0) \end{cases} \tag{2.2}
y={0 (b+w1x1+w2x2≤0)1 (b+w1x1+w2x2>0)(2.2)
偏置的值决定了神经元被激活的难易程度
感知机的局限性:单层感知机无法分割非线性空间。(线性空间、非线性空间)
与门、或门是单层感知机,异或门是2层感知机,叠加了多层的感知机为多层感知机(multi-layered perceptron)
感知机可以表示计算机,2层感知机(激活函数使用了sigmoid函数)可以表示任意函数。
激活函数
sigmoid函数
也叫挤压函数 squashing function
h
(
x
)
=
1
1
+
e
x
p
(
−
x
)
(3.6)
h(x)=\frac{1}{1+exp(-x)} \tag{3.6}
h(x)=1+exp(−x)1(3.6)
exp
(
−
x
)
\exp(-x)
exp(−x)表示
e
−
x
e^{-x}
e−x
e
e
e表示纳皮尔常数 2.7182……
阶跃函数和sigmoid函数的区别:
sigmoid函数的平滑性对神经网络的学习有重要作用
感知机中神经元之间流动的是0或1的二元信号,神经网络中流动的是连续的实数信号。
阶跃函数和sigmoid函数的相同点:
当输入信号为重要信息时,会输出较大的值,当输入信号为不重要的信息时,两者都输出较小的值
不管输入的信号有多小,或者有多大,输出信号的值都在0-1之间。
两者都是非线性函数
神经网络的激活函数必须使用非线性函数:使用线性函数时,无法发挥多层网络带来的优势,为了发挥叠加层所带来的优势,激活函数必须使用非线性函数。
ReLu函数
ReLU(Rectified Linear Unit)函数。
也叫修正线性单元
h
(
x
)
=
{
x
(
x
>
0
)
0
(
x
≤
0
)
(3.7)
h(x)= \begin{cases} x \text{ }\text{ }\text{ } (x>0) \\ 0 \text{ }\text{ }\text{ } (x\le0) \tag{3.7} \end{cases}
h(x)={x (x>0)0 (x≤0)(3.7)
tanh 函数
与sigmoid类似,将其输入压缩转换到区间(-1,1)
双曲正切函数
权重衰减
权重衰减 weight decay 是最广泛使用的正则化技术 也叫 L 2 L_2 L2正则化
模型选择、过拟合和欠拟合
模型复杂度:VC维
支持N维输入的感知机的VC维是N+1
一些多层感知机的VC维
O
(
N
l
o
g
2
N
)
O(Nlog_2N)
O(Nlog2N)
优点:提供为什么一个模型好的理论依据,可以衡量训练误差和泛化误差之间的间隔。但是深度学习中很少使用,衡量不是很准确,计算深度学习模型的VC维很困难。
数据复杂度:样本个数、每个样本的元素个数、时间和空间结构、多样性
总结
提示:这里对文章进行总结:
多层感知机是最简单的神经网络。