我们首先从一个简单的神经元的构建开始:

构建神经元与神经网络简单介绍

P代表输入信号源,W代表权重,这里列出一些常用的传递函数:

阶梯函数(step) 输出0&1
符号函数(sgn) 输出-1&1
线性函数(linear) n本身就是神经元的输出
饱和线性函数(Ramp) 线性斜线n<0,输出0,n在0 1之间,输出n,n>1时输出n
对数S型函数(sigmoid) 有界函数,输出介于0 1 之间
双曲正切S型函数(Tanh) 有界函数,输出介于-1 1之间

这样,我们就构造了一个简单的神经元。

----------------------------------------------------------------------------------------------------------------------------------

感知机:是最简单的神经网络。

举一个简单的例子:分辨苹果和香蕉,假设我们识别他们只需要两个特征,颜色,形状。权重都默认为1,b初始值设为0,并且我们定义结果输出1为苹果,2为香蕉。

品种                                             颜色                                             形状
苹果                                                 红色1                                             圆形1
香蕉                                             黄色-1                                             弯形-1

根据上面的公式:

对苹果的辨别:S1 = 1*1+1*1 = 2

对香蕉的辨别:S2 = -1*1+-1*1=-2

通过二者的特征值,我们得到两类不同结果,几乎可以得到判别结果,但我们初始设定输出1为苹果,0为香蕉,这里就要用到传递函数处理了,在这我们采用step函数,step(-2) = 0,step(2) = 1。至此,完成辨别。

----------------------------------------------------------------------------------------------------------------------------------那么可能会有疑问,我们为什么可以设置w 和 b 的值是1和0呢,这需要使用感知机的一套学习规则,保证我们随意换个权重参数,也能得到我们想要的输出。

w(new) = w(old)+ep(1)

b(new) = b(old)+e (2)

e为误差,e = t - a . t为期望输出,a为实际输出。

我们假设W1和W2的初始值为1和-1,b的初始值是0.

下面进行计算:

s = p1w1+p2w2+b = 1*1+-1*1+0 = 0  使用step传递函数step(0) = 0,即a = 0,我们期望t = 1,那么此时e = t - a = 1

根据(1)式,

w1(new) = 1+1*1= 2

w2(new)= -1 + 1*1 = 0,

b(new) = 0+1 = 1,

将新的权重值带入,s(new)= 1*2+-1*0+1=3,step(3)= 1,输出正确。

接下来判别香蕉,s = 2*-1+0*-1+1 =-1   step(-1) = 0 输出正确。

---------------------------------------------------------------------------------------------------------------------------



相关文章:

  • 2021-10-01
  • 2021-09-06
  • 2021-12-04
  • 2021-03-28
  • 2021-10-14
  • 2021-09-22
  • 2021-08-15
  • 2022-01-01
猜你喜欢
  • 2021-08-26
  • 2021-12-07
  • 2021-12-14
  • 2021-08-27
  • 2021-11-27
  • 2021-11-02
  • 2021-11-10
相关资源
相似解决方案