当我们最初学习机器学习时候,了解到最简单的神经网络可能便是单层感知器,他也是监督学习的最简单一种。本文章就通过《人工神经网络理论、设计及应用》书中介绍的单层感知器一节,进行python的代码实现。

单层感知器的网络结构如下:

上图便是一个单层感知器,很简单的一个结构,图中说明我们有个3维的输入值分别是x1、x2、x3,输入端和其上的权值0.3相乘,然后将乘积相加后,最后通过激活函数对乘积和进行处理得到输出值y。

感知器学习算法:

采用感知器学习规则(对误差平方求导推极值问题),考虑到训练过程是感知器权值随每一步调整改变的过程,为此用t表示学习的迭代次数,权值看作t的函数。t=0表示学习开始前的初始状态,此时对应的权值为初始化值。训练可按如下步骤进行:

(1)、对各权值

(m为计算层的节点数)赋予较小的非零随机数;

(2)、输入样本对 {

} ,x是训练样本,d是样本的目标值;

(3)、计算各节点的实际输出

(t) = sgn[

(t)

] , j =1 ,2 ...... m;

(4)、调整各节点的权值

(t+1) =

+

[

]

,j=1,2......m;其中

为学习率,用于控制调整速度,学习率太大会影响训练的稳定性,太小则使训练的收敛速度变慢,一般取值范围0<

1;

(5)、返回到步骤2输入下一对样本

好了,有了上面的基本知识后,我们通过简单的python代码来实现单层感知网络。比如我们有如下图的例子:

首先建立数据集

import numpy as np

#建立数据集

x = np.mat([[1,0,0],[1,0,1],[1,1,0],[1,1,1],[0,0,1],[0,1,0],[0,1,1],[0,0,0]])

y = np.mat([[-1],[1],[1],[1],[-1],[-1],[1],[-1],])

#设置初始权值和偏置值

w = np.mat([0.3,0.3,0.3])

baise = 0.4

#学习率

rate = 0.01

#激活函数

def sgn(x):

return np.where(x >= 0.0, 1, -1)

#通过学习规则,进行迭代

for i in range(1000):

#误差计算

errors = 0

for j in range(len(x)):

#误差计算

r = rate*(y[j] - sgn(x[j]*w.T+baise))

#r = rate*(y[j] - (x[j]*w.T+baise))

#调整权值

w += r*x[j]

baise += r

#误差计算

errors += abs(r)

print(i,' iter :error is ', errors)

if errors ==0:

break

下图,是我运行上面程序的结果,可以看到迭代了8次后,误差为0:

通过计算出来的权值W和偏置值baise进行验证模型是否正确:

sgn(x*w.T+baise)

可以看到模型的输出和实际y的值一模一样:

单层感知器python_深度学习之单层感知器(一)相关推荐

  1. 从单层感知器到深度学习以及深度学习必知的框架

    从单层感知器到深度学习以及深度学习必知的框架 一 单层神经网络(感知器) 1.结构 下面来说明感知器模型. 在原来MP模型的"输入"位置添加神经元节点,标志其为"输入单元 ...

  2. 【深度学习】多层感知器高级使用

    [深度学习]多层感知器高级使用 文章目录 1 JSON序列化模型 2 YAML格式 3 模型增量更新 4 神网检查点 5 导入模型 6 可视化训练过程 神经网络的变种目前有很多,如误差反向传播(Bac ...

  3. 自动驾驶感知中的深度学习

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 自动驾驶是一种自主决策系统,它处理来自不同车载来源的观测流,如照相 ...

  4. 【深度学习】超强优化器如何与网络有机结合

    [深度学习]超强优化器如何与网络有机结合 1 Ranger优化器 2 一个例子(基于CNN和pytorch) 3 剪枝(减小优化器压力) 1 Ranger优化器 RAdam + Lookahead + ...

  5. 【深度学习】协同优化器和结构化知识蒸馏

    [深度学习]协同优化器和结构化知识蒸馏 文章目录 1 概述 2 什么是RAdam(Rectified Adam) 3 Lookahead - 探索损失面的伙伴系统=更快,更稳定的探索和收敛. 4 Ra ...

  6. 深度学习训练营之优化器对比

    深度学习训练营之优化器对比 原文链接 环境介绍 前置工作 设置GPU 数据处理 导入数据 数据集处理 数据集可视化 模型构造 模型训练 结果可视化 原文链接

  7. 深度学习算法(第5期)----深度学习中的优化器选择

    欢迎关注微信公众号"智能算法" – 原文链接(阅读体验更佳): 深度学习算法(第5期)----深度学习中的优化器选择 上一期,我们一起学习了TensorFlow在训练深度网络的时候 ...

  8. 深度学习——day36 读论文:基于深度学习的海洋环境感知

    基于深度学习的海洋环境感知(2022 IEEE Transactions on Intelligent Transportation Systems) 名词解释: 研究背景: 研究方法: 训练数据和真 ...

  9. 深度学习笔记--多层感知器以及BP算法

    简介 多层感知器,是指包含1个或多个隐层的前馈神经网络. 前馈神经网络的特点: 第0层为输入层,最后一层为输出层,中间层为隐层. 整个网络无反馈,信号从输入层向输出层单向传播,整个网络为有向无环图. ...

  10. 深度学习相关概念:感知器

    深度学习相关概念:交叉熵损失 摘要 背景 应用于深度学习的感知器. 数学定义 训练感知器 误差 学习率 摘要   如今,Keras.TensorFlow 或 PyTorch 等框架提供了对大多数深度学 ...

最新文章

  1. 网易云课堂解析_网易云课堂课程下载教程
  2. CSS3无前缀脚本prefixfree.js与Animatable使用
  3. 自学HTML5第三节(拖放效果)
  4. RPA如何助力企业解决人才短缺难题?
  5. 使用Maven archetype 自定义项目脚手架
  6. 高并发之API接口,分布式,防刷限流,如何做?
  7. 时过境迁:Oracle跨平台迁移之XTTS方案与实践
  8. SpringBoot2.1.5(13)--- SpringBoot 特性下
  9. ora03135连接失去联系 进程id 0_Daemon 进程的创建
  10. 为什么吃红薯容易放屁
  11. php 压缩js css文件,PHP实现动态压缩js与css文件的方法
  12. HDU4552 怪盗基德的挑战书【文本处理】
  13. 简单git用ssh方式下载代码
  14. python——平方根
  15. 如何将图片转换成PCBLogo
  16. 前端程序员兼职副业平台推荐
  17. 服务器断电mysql文件丢失_服务器断电了怎么恢复数据?
  18. Buildroot 构建根文件系统(Jz2440)
  19. 程序设计语言中的 一等公民,二等公民,三等公民
  20. 河北工业大学 离散数学学习资料分享(课件,教材,习题,总结)

热门文章

  1. Axure绘制开关按钮
  2. python verilog就业_[持续演进] 应届生 FPGA 就业,一点微小的看法
  3. 如何将虚拟机上的文件复制到主机上
  4. TC27x启动过程(2)-TC277
  5. sap se06和scc4
  6. C语言判断闰年计算某月的天数代码
  7. 关于华为P9手机的解锁、刷Recovery、获取Root、安装Busybox,以及升级降级的全过程(和一些错误的解决方法)
  8. python导入表格数据混乱_Python按行打乱Excel表格数据
  9. BigBlueButton 2.2安装指南
  10. 如何理解STM32单片机引脚的复用功能?