用单层感知器完成逻辑或运算的学习过程

用单层感知器完成逻辑或运算的学习过程

这道题目是我“认知科学”(专业必修/doge)课程的结课作业题之一,目的在于加深对单层感知器的理解,对于后续学习神经网络打下基础。


有关知识:

B站有关视频
单层感知器的学习过程比较简单,其主要目的在于对给出值域进行一个线性划分。主要步骤为:

  1. 初始化连接权值和阈值(一般为为零的较小随机数);
  2. 取样本域中数据作为输入,在每一条输入边上进行加权求和,t表示迭代次数;
    i n p u t = ∑ i = 1 n w i ( t ) x i + b θ ( t ) input=\sum_{i=1}^n{w_i(t)x_i} + b\theta(t) input=i=1nwi(t)xi+bθ(t)
  3. 将2中求和结果带入激活函数 f (在此取符号函数) 进行判断;
    o u t p u t = y = s e g ( i n p u t ) = { 1 i n p u t ≥ 0 0 i n p u t < 0 output = y=seg(input) = \begin{cases} 1 & input\geq0\\ 0 & input<0 \end{cases} output=y=seg(input)={10input0input<0
  4. 如果输出值和期望值相同则取下一组数据,回到 2 ;否则根据如下规则进行调整,然后 t 加一,调整之后接着取下一组数据。
    { w i ( t + 1 ) = w i ( t ) + η ( d − y ) x i θ ( t + 1 ) = θ ( t ) + η ( d − y ) ( − 1 ) \begin{cases} w_i(t+1)=w_i(t)+\eta(d-y)x_i \\ \theta(t+1)=\theta(t)+\eta(d-y)(-1) \end{cases} {wi(t+1)=wi(t)+η(dy)xiθ(t+1)=θ(t)+η(dy)(1)
  5. 直至样本域中所有数据输出值与期望值相同。

这里要注意的是,i 表示输入数据的组内序号,不是第 i 组数据。


题目:假设w1(0)=0.2, w2(0)=0.4, θ(0)=0.3, η(0)=0.4, 请用单层感知器完成逻辑或运算的学习过程。

由题意可以构造下图的单层感知器,需要迭代求解出中分界线使得分界线可以分割值域。

根据逻辑或的关系可以得到下图的真值表。

  • 步骤1:取第①组输入值:x1=0, x2=0, 期望输出:d=0,实际上:y=f(w1(0)x1+w2(0)x2-θ(0))=f(-0.3)=0,与期望输出相同;
  • 步骤2:取第②组输入值:x1=0, x2=1, 期望输出:d=1,实际上:y=f(w1(0)x1+w2(0)x2-θ(0))=f(0.1)=1,与期望输出相同;
  • 步骤3:取第③组输入值:x1=1, x2=0, 期望输出:d=1,实际上:y=f(w1(0)x1+w2(0)x2-θ(0))=f(-0.1)=0,与期望输出不相同;
    • 调整:
    • θ(1)=θ(0)+η(d-y)*(-1)=-0.1;
    • w1(1)=w1(0)+η(d-y)x1=0.6;
    • w2(1)=w2(0)+η(d-y)x2=0.4;
  • 步骤4:取第④组输入值:x1=1, x2=1, 期望输出:d=1,实际上:y=f(w1(1)x1+w2(1)x2-θ(1))=f(1.1)=1,与期望输出相同;
  • 步骤5:取第①组输入值:x1=0, x2=0, 期望输出:d=0,实际上:y=f(w1(1)x1+w2(1)x2-θ(1))=f(0.1)=1,与期望输出不相同;
    • 调整:
    • θ(2)=θ(1)+η(d-y)*(-1)=0.3;
    • w1(2)= w1(1)+η(d-y)x1=0.6;
    • w2(2)= w2(1)+η(d-y)x2=0.4;
  • 步骤6:取第②组输入值:x1=0, x2=1, 期望输出:d=1,实际上:y=f(w1(2)x1+w2(2)x2-θ(2))=f(0.1)=1,与期望输出相同;
  • 步骤7:取第③组输入值:x1=1, x2=0, 期望输出:d=1,实际上:y=f(w1(2)x1+w2(2)x2-θ(2))=f(0.3)=1,与期望输出相同;
  • 步骤8:取第④组输入值:x1=1, x2=1, 期望输出:d=1,实际上:y=f(w1(2)x1+w2(2)x2-θ(2))=f(0.7)=1,与期望输出相同;
  • 步骤9:取第①组输入值:x1=0, x2=0, 期望输出:d=0,实际上:y=f(w1(2)x1+w2(2)x2-θ(2))=f(-0.3)=0,与期望输出相同。

由于步骤6~步骤9已经遍历了所有输入数据且实际输出结果均与期望输出相同,故可以结束迭代,此时阈值和连接权值以满足结束条件。
得到:w1=0.6, w2=0.4, θ=0.3
通过可视化也可以验证(如下图)


如有错误还望指出!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

A91A981E

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值