深度学习与神经网络学习笔记一

参考文章
https://www.analyticsvidhya.com/blog/2016/03/introduction-deep-learning-fundamentals-neural-networks/?spm=5176.100239.blogcont117233.10.n2UTWC

概念那些就不解释了,Google一下就有很多资料。

单一神经元节点如何工作

深度学习与神经网络学习笔记一_第1张图片
Single NN Working

X1, X2, ...Xn是这个神经元的输入,
X0时偏移量
W1,W2...Wn代表权重
从输入数据X1, X2, ...Xn产生的输出数据a的表达式是:


f是一个激活函数,可以是高斯函数,双曲函数,也可以是简单的线性函数
在这篇文章中,我用以下的激活函数:
激活函数

使用单一节点实现布尔运算

布尔运算包括与,或,非,异或等等……

与运算:

另X0 = -1.5;输出a = f(-1.5 + X1 + X2);得到真值表:

X1 X2 X1 & X2 -1.5 + X1 + X2 a
1 1 1 0.5 1
1 0 0 -0.5 0
0 1 0 -0.5 0
0 0 0 -1.5 0

这样就用一个神经元节点成功地实现了与运算。注意,X0可以是[-2, -1)之间的任何数。

或运算:

另X0 = -0.5;输出a = f(-0.5 + X1 + X2);得到真值表:

X1 X2 X1 & X2 -0.5 + X1 + X2 a
1 1 1 1.5 1
1 0 0 0.5 1
0 1 0 0.5 1
0 0 0 -0.5 0

同样,用单一神经元节点成功实现了或运算。

非运算:

另X0 = 0;输出a = f(1- 2X1);得到真值表:

X1 !X1 1- 2X1 a
1 0 -1 0
0 1 1 1

同样,用单一神经元节点成功实现了非运算。

使用多个神经元节点实现同或门

同或门XNOR又称异或非门,异或是指相同为0,不同为1,XNOR恰好相反
实现证明一个神经元节点不能实现同或门:
可以证明:
A XNOR B = NOT (A XOR B)
= NOT [ (A or B) and (!A OR !B) ]
= !(A OR B) OR !(!A OR !B)
=(!A and !B) OR (A and B)
利用表达式a = f(0.5-X1-X2)可以表示(!A and !B);
因此,用一个神经元节点表示(!A and !B),用另一个神经元节点表示(A and B),最后将这两个神经元节点做或运算就可以表示XNOR,如图所示:

深度学习与神经网络学习笔记一_第2张图片
XNOR

a 1: !A and !B
a 2: A and B
a 3: a 1 or a 2

你可能感兴趣的:(深度学习与神经网络学习笔记一)