深度学习(神经网络)[1]——单层感知器
深度学习(神经网络)[1] —— 单层感知器
- 算法描述
- python实现
- 示例运行结果
- 可视化
算法描述
最原始的神经网络模型,类似于神经网络中的单个神经元,该算法局限性也很大,只适用于解决线性可分的问题,对于线性不可分的问题和异或问题则无法解决。但作为神经网络的基本单元,学习和理解单层感知器,对后续的学习是很有帮助的。
python实现
# ************************** Perception ******************
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
class CyrusPerception(object):def __init__(self,**kargs):self.X = Noneself.Y = Noneself.W = Noneself.output = Noneif "epoch" in kargs.keys():self.epoch = kargs["epoch"]else:self.epoch = 1000if "lr" in kargs.keys():self.lr = kargs["lr"]else:self.lr = 0.1def fit(self,X,Y,**kargs):self.X = np.hstack((np.ones((np.array(X).shape[0],1)),np.array(X)))self.Y = np.array(Y).reshape(-1,1)# 1、初始化权值if "W" in kargs.keys():self.W = kargs["W"]else:self.W = (np.random.random([self.X.shape[1],1])-0.5)*2# 2、更新权值for i in range(self.epoch):self.update_w()print("*"*20)print("epoch:",i+1)print("w:",self.W)if (self.Y == self.output).all():print("*"*20)print("Finihed")print("epoch",self.epoch)breakdef update_w(self):self.output = np.sign(self.X.dot(self.W)).reshape(-1,1)self.W += self.lr*(self.X.T.dot(self.Y - self.output))/int(self.X.shape[0])
if __name__ == "__main__":model = CyrusPerception()x = [[3,3],[4,3],[1,1],[0,2]]y = [1,1,-1,-1]model.fit(x,y)# 绘图k = -model.W[1]/model.W[2]b = -model.W[0]/model.W[2]x_lineal = np.array([0,5])y_lineal = k*x_lineal + bplt.figure()colors = "rgb"[plt.scatter(x[i][0],x[i][1],color = colors[y[i]]) for i in range(len(x))]plt.plot(x_lineal,y_lineal,color = "r")plt.show()
示例运行结果
********************
epoch: 1
w: [[-0.31672519][-0.16285498][ 0.19094236]]
********************
epoch: 2
w: [[-0.26672519][ 0.18714502][ 0.39094236]]
********************
epoch: 3
w: [[-0.36672519][ 0.13714502][ 0.24094236]]
********************
epoch: 4
w: [[-0.46672519][ 0.08714502][ 0.09094236]]
********************
epoch: 5
w: [[-0.46672519][ 0.08714502][ 0.09094236]]
********************
Finihed
epoch 1000
可视化
by CyrusMay 2020 05 05
当烟雾随晨光飘散
枕畔的湖已风干
期待已退化成等待
而我告别了突然
——五月天(后青春期的诗)——
深度学习(神经网络)[1]——单层感知器相关推荐
- 【深度学习】1:感知器原理,以及感知器解决异或问题
前言: 写完上一篇<KNN算法实现手写数字识别>到现在已经过去了十天,2018年伊始几天同学同事都是各种浪,自己坚持学习实在是痛苦啊! 不悲不气,闲话不多说了,开始自己神经网络的学习旅程吧 ...
- 为什么在反向传播中感知器初始值不能为0_深度学习理论分享之——单层感知器简述...
1单层感知器概述单层感知器(Single Layer Perceptron)是最简单的神经网络.它包含输入层和输出层,而输入层和输出层是直接相连的.单层感知器属于感知器中最简单的一种分类器,属于机器学 ...
- 零基础入门深度学习 | 第一章:感知器
北京 | 高性能计算之GPU CUDA课程11月24-26日3天密集学习 快速带你晋级阅读全文> 无论即将到来的是大数据时代还是人工智能时代,亦或是传统行业使用人工智能在云上处理大数据的时代,作 ...
- 【深度学习BookNote】多层感知器(multi-layer perceptron)
多层感知器(multi-layer perceptron) 神经网络的变种目前有很多,如误差反向传播(Back Propagation,BP)神经网路.概率神经网络.卷积神经网络(Convolutio ...
- 深度学习笔记整理2 - 感知器算法
深度学习 基本概念 深度学习是机器学习算法中的一类,其源于人工神经网络的研究. 深度学习广泛应用在计算机视觉,音频处理,自然语言处理等诸多领域. 深度可以理解为数据计算转换的层数. 机器学习& ...
- 神经网络 - 用单层感知器实现多个神经元的分类 - (Matlab建模)
训练样本矩阵: P = [0.1 0.7 0.8 0.8 1.0 0.3 0.0 –0.3 –0.5 –1.5; 1.2 1.8 1.6 0.6 0.8 0.5 0.2 ...
- 入门深度学习(一)感知器
感知器(神经元) 以下即为一个感知器 一个感知器有如下组成部分: 输入权值 一个感知器可以接收多个输入,每个输入上有一个权值,此外还有一个偏置项,就是上图中的w0. 激活函数 输出 感知器的输出由下面 ...
- 深度学习 神经网络 神经元 单层神经网络的实现
使用 tensorflow1.14, 数据集 cifar10 代码 初始化 数据集一览 数据预处理 构建模型图 神经元 单层神经网络 注意点 other 代码 初始化 import tensorflo ...
- 图解深度学习-神经网络
深度学习 深度学习是一种统计学习方法,可以在大量数据中自动提取关键特征信息. 深度学习的分类 深度学习的起源有感知器和基于图模型的玻尔兹曼机.在这两个的基础上引入多层结构形成了现在的深度学习. 神经网 ...
最新文章
- [Tips on Ember 2] 如何尝试 angle-bracket component
- Redis 命令--Redis列表(List))
- 一文整理IEEE问题汇总【IEEE PDF Checker】(更新中)
- 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1107:校门外的树
- metasploit 使用search报错
- firebase连接不上_如何在Firebase上托管Blazor应用程序
- github比sourceforge好在哪?
- Mysql多表关联删除操作
- 系统待办事项设计_B端产品工作台设计详解
- Java多线程之同步与阻塞队列
- 罗技g502鼠标使用感受,以及与g402的对比体验
- java 判定1个IP地址是否是合法IP
- 虚拟账户 FTP 服务器不能上传可下载
- aqs clh java_并发编程——详解 AQS CLH 锁
- 计算机桌面图标出现蓝框,win10桌面快捷图标蓝框怎么去除 附黑色方块去除/白色方块修复的方法步骤...
- Python 操控手机 APP
- 视频播放器(一):流程
- 从简单工厂到抽象工厂
- C语言100题练习计划 27——字符串替换
- Vue 3 中 v-if 和 v-show 指令实现的原理(源码分析)
热门文章
- Java线程详解(18)-障碍器
- Spring Boot 启动加载数据 CommandLineRunner
- Android --- 刚刚进入 Activity 页面的时候无法打开对话框,报错 Unable to add window -- token null is not valid; is your
- 图说数据中心新风节能技术
- Html画布w3c,HTML canvas 标签
- 成功解决but is 0 and 2 (computed from start 0 and end 9223372 over shape with rank 2 and stride-1)
- 成功解决ImportError: cannot import name ‘ft2font‘ from ‘matplotlib‘
- 成功解决preprocessing\label.py:151: DeprecationWarning: The truth value of an empty array is ambiguous.
- Py之nltk:nltk包的简介、安装、使用方法、代码实现之详细攻略
- 成功解决Not possible to connect to the Web3 provider. Make sure the provider is running and a connection