阅读文本需要8分钟。
本篇主要为绍神经网络模型,讲解神经网络计算与、或、非、异或逻辑。
神经元模型
在机器学习中谈论的神经网络指的是 " 神经网络学习 " ,或者说是机器学习与神经网络这两个学科领域的交叉部分。
神经网络中最基本的成分是神经元 ( neuron ) 模型 。图 5.1 就是一个一直沿用至今的神经元模型,神经元接收到来自n个其他神经元传递过来的输入信号,这些输入信号通过带权重的链接进行传递,神经元接收到的总输入值将与神经元的阈值进行比较,然后通过 " 激活函数 " 处理以产生神经元的输出。
一般激活函数是图 5.2(a) 所示的阶跃函数,输出值为 " 0 " 或 " 1 " 。然而阶跃函数不连续、不太光滑,实际常用 Sigmoid 函数作为激活函数。图 5.2(b) 是典型的 Sigmoid 函数。
感知机与逻辑“与”、“或”、“非”运算
感知机由两层神经元组成,如图 5.3 ,输出层接受外界输入信号后传递给输出层,输出层是 M-P 神经元。
感知机能很容易实现逻辑与、或、非运算,输出为
假定f是图 5.2 中的阶跃函数。
逻辑与 (and) 运算
用一个简单的神经元来表示逻辑“与”运算,同样像之前做的PLA算法笔记一样添加一个偏置单元 X等于 1 ,然后分配一些权重
其中激活函数hΘ(x)可以用如下公式表示:hΘ(x)=g(−30+20x1+20x2)
根据 Sigmoid 函数,x1, x2取不同的值,h(x)如下:
x1=0 and x2=0 then g(−30)≈0
x1=0 and x2=1 then g(−10)≈0
x1=1 and x2=0 then g(−10)≈0
x1=1 and x2=1 then g(10)≈1
可以看出,这里的神经网络激活函数hΘ(x)近似等于与逻辑运算。
逻辑或 (or) 运算
用一个简单的神经网络模型来模拟“非”逻辑运算:
其中激活函数hΘ(x)可以用如下公式表示:hΘ(x)=g( -10 + 20x1+ 20 x2)
根据 Sigmoid 函数,x1, x2取不同的值,h(x)如下:
x1=0 and x2=0 then g(−10)≈0
x1=0 and x2=1 then g(10)≈1
x1=1 and x2=0 then g(10)≈1
x1=1 and x2=1 then g(30)≈1 可以看出,这里的神经网络激活函数hΘ(x)近似等于或逻辑运算。
逻辑非 (not) 运算
同样用一个简单的神经网络模型来模拟“非”逻辑运算:
逻辑异或 (xor) 运算
感知机能实现逻辑与、或、非的运算,感知机只拥有一层神经元,学习能力非常有限,事实上,与、或、非问题都是线性可分的问题。如果两类模式是线性可分的,就存在一个线性超平面能将他们分开,如图 5.4(a)-(c) ,则感知机学习过程一定会收敛得到适当的权值。否则学习过程会发生振荡,难以求得权值,例如感知机甚至不能解决如图 5.4(d) 所示的异或这样的非线性可分问题。
解决非线性可分问题需要考虑使用多层神经元,例如图 5.5 中这个简单的两层感知机就能解决异或问题。
领取专属 10元无门槛券
私享最新 技术干货