top of page
アンカー 1

已更新:2021年8月18日

一、前文回顾

感知机:人工神经元

权重:输入信号有多重要

阈值:触发某一事件的临界值

它们之间的关系:


上一节我们了解了感知机(人工神经元)的构成以及工作原理,这节我们利用神经元来模拟一些简单的问题,也就是模拟与非门。


二、与非门

与门就是对于两个输入信号x1或者x2,只有两个输入信号都为1,则输出y为1,否则输出y为0.


为了实现这个这个与门,我们就需要确定w1,w2和θ,那么什么样的值才能满足上面那个表呢?答案是无限个值,比如(w1,w2,θ)=(0.5,0.5,0.7)的时候就可以满足,也就是说下面的神经元就可以实现与门。


同样的道理,当(w1,w2,θ)=(0.5,0.5,0.8)或者(1.0,1.0,1.0)的时候也是可以实现与门。

接下来我们用Python代码来验证一下。


def AND(x1,x2):
  w1, w2, theta = 0.5, 0.5, 0.7
  sum = x1 * w1 + x2 * w2
  if sum <= theta:
     return 0
  elif sum > theta:
     return 1

※代码很简单,就是把权重w1和w2以及阈值theta分别设定为(0.5,0.5,0.7),然后分别把输入信号x1,x2和对应的权重w1,w2相乘求和,如果大于阈值theta就返回1否则返回0.那么我看看执行结果,很明显和我们期待的结果一致。


print("x1 = 0, x2 = 0, y =", AND(0, 0)) 
print("x1 = 1, x2 = 0, y =", AND(1, 0))
print("x1 = 0, x2 = 1, y =", AND(0, 1))
print("x1 = 1, x2 = 1, y =", AND(1, 1)) 

x1 = 0, x2 = 0, y = 0

x1 = 1, x2 = 0, y = 0

x1 = 0, x2 = 1, y = 0

x1 = 1, x2 = 1, y = 1

同样的道理,或门,非门也是可以通过神经元来模拟。(方法省略)

三、偏置项(bias)

我们还需要导入一个新的概念:偏置项。为什么突然要提出偏置项这个概念?其实是因为我不知道该怎么承上启下,所以只能这么暴力的丢出来。毕竟优美细腻的文笔已经超出了我的能力范畴。 首先我们需要对神经元公式进行稍微的改进,让它看起来更完美。

很简单,我们只是把阈值θ移到公式左边变为-θ,然后用字母b来代替,这个b就是偏置项bias。那么神经元也相应的如下所示。


这样子的话我们就可以把所有参数都反映到神经元里面。

四、总结

我们用神经元实现了电路里面经常见到的逻辑或门,非门,与门。为什么我们要去实现这些逻辑电路?是因为我们用的计算机就是靠这些逻辑电路门组合起来的。 那么岂不是用神经元就可以模拟计算机?答案是肯定的,但是单个神经元却做不到,为什么?因为它会遇到一个瓶颈,这便是下节的内容:【神经元的极限】。


微信公众号:DeepVisionZero

bottom of page