Machine Learning

机器学习入门(17)--神经网络实现或非门运算

2017-01-19  本文已影响914人  Alfie20

本文讲解 一个具体的例子来解释 神经网络是如何计算 关于输入的复杂的非线性函数。此有必要在这里交代一点逻辑代数的背景,以下文字摘录自清华大学出版社的《电子技术基础》6.2节,电子书链接来自Google book,同时会在例子的介绍中引用该书中的一些基本定义:
逻辑代数是描述客观事物逻辑关系的数学方法,它首先是由英国数学家乔治*布尔提出,因此也称为布尔代数,而后克劳德*香农将逻辑代数应用到继电器开关电路的设计中,所以又称为开关代数。和普通代数一样,在逻辑代数中用字母表示变量与函数,但变量与函数的取值只有0和1两种可能。这里的0和1已不再表示数量的大小,只代表两种不同的逻辑状态。我们把这种二值变量称为逻辑变量,简称为变量,这种二值函数称为逻辑函数,简称为函数。

逻辑与神经元

我们的目标是利用神经网络实现一个逻辑代数中的同或运算
下图是一个同或的示例,其中x1,x2是二值变量(0, 1):



我们想要学习一种非线性的决策边界来区分正负样本, 那么神经网络是如何做到的呢?



我们可以用一个简单的神经网络(一个神经元)表示与逻辑运算:

其中激活函数hΘ(x)可以用如下公式表示:

hΘ(x)=g(−30+20x1+20x2)
其g(z)的图像如下:


根据上述图像,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)逻辑运算

将二值(0, 1)变量x1,x2代入,得到如下的或逻辑运算对应表:


非(NOT)逻辑运算

用一个简单的神经网络模型来模拟非(NOT)逻辑运算:




非逻辑运算仅针对一个输入值,我们来表示一个略微复杂的逻辑表达式:



这个表达式等于1的前提是”当且仅当x1=x2=0".可以用神经网络模拟如下:

好了,有了上述三个基本逻辑运算的基础和相关的神经网络模型表示,我们可以将其组合为一个略微复杂的”同或(XNOR)逻辑运算的神经网络“:
上一篇下一篇

猜你喜欢

热点阅读