单层感知器python_深度学习之单层感知器(一)
当我们最初学习机器学习时候,了解到最简单的神经网络可能便是单层感知器,他也是监督学习的最简单一种。本文章就通过《人工神经网络理论、设计及应用》书中介绍的单层感知器一节,进行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.结构 下面来说明感知器模型. 在原来MP模型的"输入"位置添加神经元节点,标志其为"输入单元 ...
- 【深度学习】多层感知器高级使用
[深度学习]多层感知器高级使用 文章目录 1 JSON序列化模型 2 YAML格式 3 模型增量更新 4 神网检查点 5 导入模型 6 可视化训练过程 神经网络的变种目前有很多,如误差反向传播(Bac ...
- 自动驾驶感知中的深度学习
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 自动驾驶是一种自主决策系统,它处理来自不同车载来源的观测流,如照相 ...
- 【深度学习】超强优化器如何与网络有机结合
[深度学习]超强优化器如何与网络有机结合 1 Ranger优化器 2 一个例子(基于CNN和pytorch) 3 剪枝(减小优化器压力) 1 Ranger优化器 RAdam + Lookahead + ...
- 【深度学习】协同优化器和结构化知识蒸馏
[深度学习]协同优化器和结构化知识蒸馏 文章目录 1 概述 2 什么是RAdam(Rectified Adam) 3 Lookahead - 探索损失面的伙伴系统=更快,更稳定的探索和收敛. 4 Ra ...
- 深度学习训练营之优化器对比
深度学习训练营之优化器对比 原文链接 环境介绍 前置工作 设置GPU 数据处理 导入数据 数据集处理 数据集可视化 模型构造 模型训练 结果可视化 原文链接
- 深度学习算法(第5期)----深度学习中的优化器选择
欢迎关注微信公众号"智能算法" – 原文链接(阅读体验更佳): 深度学习算法(第5期)----深度学习中的优化器选择 上一期,我们一起学习了TensorFlow在训练深度网络的时候 ...
- 深度学习——day36 读论文:基于深度学习的海洋环境感知
基于深度学习的海洋环境感知(2022 IEEE Transactions on Intelligent Transportation Systems) 名词解释: 研究背景: 研究方法: 训练数据和真 ...
- 深度学习笔记--多层感知器以及BP算法
简介 多层感知器,是指包含1个或多个隐层的前馈神经网络. 前馈神经网络的特点: 第0层为输入层,最后一层为输出层,中间层为隐层. 整个网络无反馈,信号从输入层向输出层单向传播,整个网络为有向无环图. ...
- 深度学习相关概念:感知器
深度学习相关概念:交叉熵损失 摘要 背景 应用于深度学习的感知器. 数学定义 训练感知器 误差 学习率 摘要 如今,Keras.TensorFlow 或 PyTorch 等框架提供了对大多数深度学 ...
最新文章
- 网易云课堂解析_网易云课堂课程下载教程
- CSS3无前缀脚本prefixfree.js与Animatable使用
- 自学HTML5第三节(拖放效果)
- RPA如何助力企业解决人才短缺难题?
- 使用Maven archetype 自定义项目脚手架
- 高并发之API接口,分布式,防刷限流,如何做?
- 时过境迁:Oracle跨平台迁移之XTTS方案与实践
- SpringBoot2.1.5(13)--- SpringBoot 特性下
- ora03135连接失去联系 进程id 0_Daemon 进程的创建
- 为什么吃红薯容易放屁
- php 压缩js css文件,PHP实现动态压缩js与css文件的方法
- HDU4552 怪盗基德的挑战书【文本处理】
- 简单git用ssh方式下载代码
- python——平方根
- 如何将图片转换成PCBLogo
- 前端程序员兼职副业平台推荐
- 服务器断电mysql文件丢失_服务器断电了怎么恢复数据?
- Buildroot 构建根文件系统(Jz2440)
- 程序设计语言中的 一等公民,二等公民,三等公民
- 河北工业大学 离散数学学习资料分享(课件,教材,习题,总结)
热门文章
- Axure绘制开关按钮
- python verilog就业_[持续演进] 应届生 FPGA 就业,一点微小的看法
- 如何将虚拟机上的文件复制到主机上
- TC27x启动过程(2)-TC277
- sap se06和scc4
- C语言判断闰年计算某月的天数代码
- 关于华为P9手机的解锁、刷Recovery、获取Root、安装Busybox,以及升级降级的全过程(和一些错误的解决方法)
- python导入表格数据混乱_Python按行打乱Excel表格数据
- BigBlueButton 2.2安装指南
- 如何理解STM32单片机引脚的复用功能?