首页 > 其他分享 >构造感知机

构造感知机

时间:2022-11-22 14:35:11浏览次数:39  
标签:p2 构造 感知机 step w2 w1 ep

大江东去,浪淘尽,千古风流人物……

我不知道未来的黑洞会将我拽入何方,但是滚滚长江却毕竟向东流去,尽可能的去挖掘不同的东西,看看到底自己适合什么。2018年已经接近尾声了,有了清晰的目标就放手去干吧,别留遗憾。
今天记录一下构造神经网络的过程。

1.模拟一个神经元

首先我们所谓的神经网络全称是人工神经网络(ANN),区别于生物神经网络。
构造感知机_感知机
我们将输入当做树突,权重当做兴奋程度,将输入和权重做內积,即得到一个信号。
构造感知机_感知机_02
s = p 1 w 1 + p 2 w 2 + p 3 w 3 + . . . . . . + p n w n s=p_1w_1+p_2w_2+p_3w_3+......+p_nw_n s=p1​w1​+p2​w2​+p3​w3​+......+pn​wn​
光有信号还不行,我们需要得到一个结果,神经网络往往用于处理分类问题,故需要一个激励函数来讲信号作为输入,输出我们想看到的分类,如0or1.
构造感知机_NN_03
常见的激励函数有:
构造感知机_其他_04
这里我们模拟了一个神经元的功能,但是神经元本身的特性也需要考虑,故此时我们将内部强度加一个basis,即偏置,
构造感知机_感知机_05
s = p 1 w 1 + p 2 w 2 + p 3 w 3 + . . . . . . + p n w n + b s=p_1w_1+p_2w_2+p_3w_3+......+p_nw_n+b s=p1​w1​+p2​w2​+p3​w3​+......+pn​wn​+b
这便是一个神经元功能的完整描述。

2.感知机

构造感知机_NN_06
有句话广为流传:深度学习源于神经网络,神经网络源于感知机。感知机就是我们上面模拟的神经元,一回事。
网络接收若干个输入,并通过输入函数、传递函数给出网络的一个输出。在监督学习中,我们可以通过期望值不断修正权重,最终得到一个可用的权重并用训练好的感知机去预测。

3.一个小例子

光说不练假把式,通过一个特别简单的例子来说明道理。
我个人特别喜欢音乐,那么就来一个乐器分类的例子。现在有吉他和钢琴两种乐器,我们通过声音的两个特性音高和音调来区分乐器,通过表格设置特征值。

种类 音调 音高
钢琴 1(柔和) 1(高)
吉他 -1(清脆) -1(低)

这里列举的几个特性可能不恰当,仅仅抛砖引玉,则
p 1 ( 音 调 ) = − 1 或 1 p_1(音调)=-1或1 p1​(音调)=−1或1
p 2 ( 音 高 ) = − 1 或 1 p_2(音高)=-1或1 p2​(音高)=−1或1
假设: w 1 = w 2 = 1 , b = 0 w_1=w_2=1,b=0 w1​=w2​=1,b=0,将特征值与权重做內积,
钢琴:11+11+0=2
吉他:-1-1+(-1)*1+0=-2
我们定义1是钢琴,0是吉他,借用step函数作为激励函数,则
s t e p ( 2 ) = 1 , s t e p ( − 2 ) = 0 step(2)=1,step(-2)=0 step(2)=1,step(−2)=0,正是我们想要的结果。
这里我们预先设定好的权重和偏置,而感知机的训练过程正是学习合适的权重和偏置来得到合理的预测模型满足我们的要求。训练过程如下:

  • w ( n e w ) = w ( o l d ) + e p w(new)=w(old)+ep w(new)=w(old)+ep
  • b ( n e w ) = b ( o l d ) + e b(new)=b(old)+e b(new)=b(old)+e
    e e e表示误差, e = t ( 期 望 输 出 ) − a ( 实 际 输 出 ) e=t(期望输出)-a(实际输出) e=t(期望输出)−a(实际输出)

(1)

利用这个学习方法,我们先假设 w 1 = 1 , w 2 = − 1 , b = 0 w_1=1,w_2=-1,b=0 w1​=1,w2​=−1,b=0
钢琴: s = p 1 w 1 + p 2 w 2 + b = 0 s=p_1w_1+p_2w_2+b=0 s=p1​w1​+p2​w2​+b=0, f = 0 , 利 用 s t e p 公 式 f=0,利用step公式 f=0,利用step公式
我们期望1结果却得到0显然不符,此时误差为: e = t − a = 1 − 0 = 1 e=t-a=1-0=1 e=t−a=1−0=1

(2)

带入学习模型,有:
w 1 n e w = w 1 o l d + e p = 1 + 1 ∗ 1 = 2 w_{1new}=w_{1old}+ep=1+1*1=2 w1new​=w1old​+ep=1+1∗1=2
w 2 n e w = w 2 o l d + e p = − 1 + 1 ∗ 1 = 0 w_{2new}=w_{2old}+ep=-1+1*1=0 w2new​=w2old​+ep=−1+1∗1=0
b n e w = b o l d + e = 1 b_{new}=b_{old}+e=1 bnew​=bold​+e=1

(3)

使用新权值带入感知机模型,有:
n e t = p 1 w 1 + p 2 w 2 + b = 1 ∗ 2 + 1 ∗ 0 + 1 = 3 net=p_1w_1+p_2w_2+b=1*2+1*0+1=3 net=p1​w1​+p2​w2​+b=1∗2+1∗0+1=3, f = 1 f=1 f=1,达到要求

(4)

现在用新权值计算吉他:
n e t = p 1 w 1 + p 2 w 2 + b = − 1 ∗ 2 + ( − 1 ) ∗ 0 + 1 = − 1 net=p_1w_1+p_2w_2+b=-1*2+(-1)*0+1=-1 net=p1​w1​+p2​w2​+b=−1∗2+(−1)∗0+1=−1, f = 0 f=0 f=0,达到要求
两者都判断正确,训练结束,得到理想模型。

标签:p2,构造,感知机,step,w2,w1,ep
From: https://blog.51cto.com/u_13875041/5877981

相关文章

  • Pytorch入门(3)—— 构造网络模型
    参考:动手学深度学习注意:由于本文是jupyter文档转换来的,代码不一定可以直接运行,有些注释是jupyter给出的交互结果,而非运行结果!!文章目录​​1.模型构造​​​​1.1继承`M......
  • 线性代数拾遗(1)—— 行列式的三种公理化构造
    在前文​​线性代数(1)——行列式​​中,我们已经对行列式有了比较直观的理解。行列式最初用于表示线性方程组的系数,其值可以用于判别齐次线性方程组的解情况,也可以用于......
  • 构造方法
    构造方法构造方法名必须和类名相同没有返回值,也不能用void修饰作用new的本质就是在调用构造方法初始化一些对象的值注意:定义有参构造之后,如果想使用无参构造,必须......
  • 【算法】Java解答有序链表转换二叉搜索树,从中序与后序遍历序列构造二叉树
    有序链表转换二叉搜索树给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差......
  • Day18.1:构造器详解
    构造器详解构造器也叫构造方法,是创造对象时调用的方法我们建立一个类时,即使我们什么都没开始写,我们可以看到其反编译文件中已经出现了一个方法,这个方法就是构造方法浅谈......
  • “蛇形”方阵的构造
        编写一个程序,将自然数1~n2按“蛇形”填入n×n矩阵中。例如,当n=5时,构造的方阵如下。      (1)编程思路1。    分析数的填法,是按“从右上到......
  • Spring-IoC中Set和构造器注入
     新建Maven工程  修改pom文件1<?xmlversion="1.0"encoding="UTF-8"?>2<projectxmlns="http://maven.apache.org/POM/4.0.0"3xmlns:xsi="http......
  • Net6 反射反射程序员的快乐/遍历属性、字段、构造方法、函数及相关操作
    十年河东,十年河西,莫欺少年穷学无止境,精益求精反射反射,程序员的快乐,利用反射可以获取到私有属性及其值 在C#中反射无处不在,用好反射,就可以为所欲为有这么一个学生类:publicc......
  • JS中this在【全局、事件绑定、对象定义、构造函数】下的理解
    学前端也好久啦,看了很多文档,结合自己的一点经验来讲,对于this,最通俗易懂的理解就是:函数在哪里调用的,this就指向哪里。首先看个例子:这里的函数getFullName,在哪里调用呢,是不......
  • 【UOJ771】【UER11】科考工作(数论,构造)
    题意:给定质数\(p\)和\(2p-1\)个数\(a_1,\cdots,a_{2p-1}\),从中选出\(p\)个数使得它们模\(p\)意义下的和为\(0\),要求给出构造。\(p\leq3\times10^5\)。题解:......