一、定义

Rosenblatt感知器建立在一个线性神经元之上,神经元模型的求和节点计算作用于突触输入的线性组合,同时结合外部作用的偏置,对若干个突触的输入项求和后进行调节。

二、基本计算过程

Rosenblatt感知器的基本计算步骤如下:

(1)将数据作为输入送入神经元。

(2)通过权值和输入共同计算诱导局部域,诱导局部域是指求和节点计算得到的结果,计算结果如下:

(3)以硬限幅器为输出函数,诱导局部域被送入硬限幅器,形成最终的输出硬限幅器的工作原理如下。

硬限幅器输入为正时,神经元输出+1,反之输出为-1.计算公式为:

三、权值修正

首先,会产生一个初始权值,由初始权值计算得到的输出结果肯定有误差。接着,要想办法让误差减少,这个过程就是权值w修正的过程。

权值修正有单样本修正算法和批量修正算法

单样本修正算法的步骤为:神经网络每次读入一个样本,进行修正,样本读取完毕,修正过程结束。算法过程描述如下:

(1)设置如下参数:

其中,b为偏置,x为输入向量,w为权值。

(2)感知器激活

对于每个时间步n,通过输入向量x(n)和期望输出d(n)激活感知器。

(3)计算感知器的输出。

其中,n为时间步,x(n)为输入向量,w(n)为权值向量,sgn为硬限幅函数,v为硬限幅函数的输入值

(4)更新感知器的权值向量

其中,n为学习速率,调整更新的步伐。

用Python实现上述算法。代码如下:

# -*- coding: utf-8 -*-
"""
Created on Wed Jun 10 10:41:14 2015 @author: chaofn
"""
import numpy as np
b=0
a=0.5
x=np.array([[b,1,1],[b,1,0],[b,0,0],[b,0,1]])
d=np.array([1,1,0,1])
w=np.array([b,0,0])
def sgn(v):
if v>0:
return 1
else:
return 0
def comy(myw,myx):
return sgn(np.dot(myw.T,myx))
def neww(oldw,myd,myx,a):
return oldw+a*(myd-comy(oldw,myx))*myx
i=0
for xn in x:
w=neww(w,d[i],xn,a)
i+=1
print(w)
for xn in x:
print("%d and %d => %d"%(xn[1],xn[2],comy(w,xn)))

Rosenblatt感知器的更多相关文章

  1. 机器学习:Python实现单层Rosenblatt感知器

    如果对Rosenblatt感知器不了解,可以先查看下相关定义,然后对照下面的代码来理解. 代码中详细解释了各步骤的含义,有些涉及到了数学公式的解释. 这篇文章是以理解Rosenblatt感知器的原理为 ...

  2. 神经网络与机器学习第3版学习笔记-第1章 Rosenblatt感知器

    神经网络与机器学习第3版学习笔记 -初学者的笔记,记录花时间思考的各种疑惑 本文主要阐述该书在数学推导上一笔带过的地方.参考学习,在流畅理解书本内容的同时,还能温顾学过的数学知识,达到事半功倍的效果. ...

  3. 神经网络与机器学习 笔记—Rosenblatt感知器收敛算法C++实现

    Rosenblatt感知器收敛算法C++实现 算法概述 自己用C++实现了下,测试的例子和模式用的都是双月分类模型,关于双月分类相关看之前的那个笔记: https://blog.csdn.net/u0 ...

  4. Coursera机器学习基石 第2讲:感知器

    第一讲中我们学习了一个机器学习系统的完整框架,包含以下3部分:训练集.假设集.学习算法 一个机器学习系统的工作原理是:学习算法根据训练集,从假设集合H中选择一个最好的假设g,使得g与目标函数f尽可能低 ...

  5. 神经网络与机器学习 笔记—多层感知器(MLP)

    多层感知器(MLP) Rosenblatt感知器和LMS算法,都是单层的并且是单个神经元构造的神经网络,他们的局限性是只能解决线性可分问题,例如Rosenblatt感知器一直没办法处理简单异或问题.然 ...

  6. 机器学习 —— 基础整理(六)线性判别函数:感知器、松弛算法、Ho-Kashyap算法

    这篇总结继续复习分类问题.本文简单整理了以下内容: (一)线性判别函数与广义线性判别函数 (二)感知器 (三)松弛算法 (四)Ho-Kashyap算法 闲话:本篇是本系列[机器学习基础整理]在time ...

  7. Python_sklearn机器学习库学习笔记(七)the perceptron(感知器)

    一.感知器 感知器是Frank Rosenblatt在1957年就职于Cornell航空实验室时发明的,其灵感来自于对人脑的仿真,大脑是处理信息的神经元(neurons)细胞和链接神经元细胞进行信息传 ...

  8. 感知器(Perception)

    感知器是一种早期的神经网络模型,由美国学者F.Rosenblatt于1957年提出.感知器中第一次引入了学习的概念,使人脑所具备的学习功能在基于符号处理的数学到了一定程度模拟,所以引起了广泛的关注. ...

  9. python机器学习——感知器

    最近在看机器学习相关的书籍,顺便把每天阅读的部分写出来和大家分享,共同学习探讨一起进步!作为机器学习的第一篇博客,我准备从感知器开始,之后会慢慢更新其他内容. 在实现感知器算法前,我们需要先了解一下神 ...

随机推荐

  1. 常用 SQL Server 规范集锦

    常用 SQL Server 规范集锦 常见的字段类型选择   1.字符类型建议采用varchar/nvarchar数据类型 2.金额货币建议采用money数据类型 3.科学计数建议采用numeric数 ...

  2. 【java】HashSet

    package com.tn.hashSet; public class Person { private int id; private String name; private String bi ...

  3. Node.js前言

    最近在学Node.js,所以学到一点东西就更新在上面吧,如果有错误,欢迎大家指正.

  4. jstree 学习

    最近的项目用到了jstree,因为对官方文档理解不充分,所以很多功能都是在网站上搜索再进行使用的.(我只是大自然的搬运工) 对每一级的节点,右键后出现不同的结果. 在jstree中右键是由 conte ...

  5. 理解Kubernetes(1):手工搭建Kubernetes测试环境

    系列文章: 1. 手工搭建环境 1. 基础环境准备 准备 3个Ubuntu节点,操作系统版本为 16.04,并做好以下配置: 系统升级 设置 /etc/hosts 文件,保持一致 设置从 0 节点上无 ...

  6. lesson - 2 笔记 yum /single /rescue /

    一. yum  作用:                     yum 命令是在Fedora 和RedHat 以及SUSE 中基于rpm 的软件包管理器,它可以使系统管理人员交互和自动化地更新与管理R ...

  7. 用python在excel中读取与生成随机数写入excel中

    今天是我第一次发博客,就关于python在excel中的应用作为我的第一篇吧. 具体要求是:在一份已知的excel表格中读取学生的学号与姓名,再将这些数据放到新的excel表中的第一列与第二列,最后再 ...

  8. Anti-pattern/反模式

      常见的与"直觉"相背离的anti-pattern产生的实际原因是没有深入.全面地考虑问题,即只关注到自己关心的方面,忽略了其他重要的.起相反作用的因素. 所以这个"直 ...

  9. 微信公众号H5支付遇到的那些坑

    简史 官方文档说的很清楚,商户已有H5商城网站,用户通过消息或扫描二维码在微信内打开网页时,可以调用微信支付完成下单购买的流程. 当然,最近微信支付平台也加入了纯H5支付,也就是说用户可以在微信以外的 ...

  10. Flask-配置与调试

    配置管理 复杂的项目需要配置各种环境.如果设置项很少,可以直接硬编码进来,比如下面的方式: app = Flask(__name__) app.config['DEBUG'] = True app.c ...