循环神经网络(RNN)

文章目录

  • 循环神经网络(RNN)
    • 一.介绍
    • 二.python实现(LSTM)
    • 三.总结
一.介绍

  以序列数据为输入,在序列的演进方向进行递归且所有节点(循环单元)按链式连接的递归神经网络。

  循环神经网络具有记忆性、参数共享并且图灵完备。
  逐渐演变的有:双向循环神经网络(Bi-RNN)
         长短期记忆网络(LSTM)
         门控循环单元网络(GRU)

  循环卷积神经网络(RCNN):卷积层替换为内部具有递归结构的循环卷积层。

RNN常用的激励函数:logistic函数,双曲正切函数
     输出函数:归一化指数函数

长短期记忆网络有输入门、遗忘门和输出门;
门控循环单元网络的复位门对应LSTM的输入门,更新门对应LSTM的遗忘门和输出门。

二.python实现(LSTM)

使用长短期记忆网络对肌电信号进行分类:

from keras.models import Sequential
from keras.layers import *import numpy as np
import pandas as pd
import tensorflow as tf
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt# 数据集
raw_data = pd.read_csv('1_raw_data_13-12_22.03.16.txt',sep='\t',header=0)  # 读取csv数据,并将第一行视为表头,返回DataFrame类型
data = raw_data.valuestimes=data[::,0]
features_data = raw_data[['channel1', 'channel5']]
features = features_data.valueslabels = data[::,-1]    # 最后一列为特征值#选取33%数据作为测试集,剩余为训练集
train_features, test_features, train_labels, test_labels = train_test_split(features, labels, test_size=0.33, random_state=0)x_train = np.array(train_features)
x_test = np.array(test_features)
y_train = np.array(train_labels)
y_test = np.array(test_labels)# Seque构建方式(推荐)
class SequeClassifier():def __init__(self, units):self.units = unitsself.model = None# 构建神经网络模型:(根据各层输入输出的shape)搭建网络结构、确定损失函数、确定优化器def build_model(self, loss, optimizer, metrics):self.model = Sequential()self.model.add(LSTM(self.units, return_sequences=True,activation='tanh'))self.model.add(LSTM(self.units))self.model.add(Dense(8, activation='softmax'))  # 最后一层全连接层。对于N分类问题,最后一层全连接输出个数为N个,这里数据集为8分类问题;self.model.compile(loss=loss,optimizer=optimizer,metrics=metrics)if __name__ == "__main__":# 1 获取训练数据集,并调整为三维输入格式x_train = x_train[:, :, np.newaxis]x_test = x_test[:, :, np.newaxis]# 2 构建神经网络模型:(根据各层输入输出的shape)搭建网络结构、确定损失函数、确定优化器units = 128  # lstm细胞个数loss = "sparse_categorical_crossentropy"  # 损失函数类型optimizer = "adam"  # 优化器类型metrics = ['accuracy']  # 评估方法类型sclstm = SequeClassifier(units)sclstm.build_model(loss, optimizer, metrics)# 3 训练模型epochs = 10batch_size = 64history = sclstm.model.fit(x_train, y_train, epochs=epochs, batch_size=batch_size)# 4 模型评估score = sclstm.model.evaluate(x_test, y_test, batch_size=16)print("model score:", score)
三.总结

  本文中所使用的分类算法为循环神经网络演变的长短期记忆网络,激励函数为双曲正切函数,损失函数为交叉熵函数,数据集中的肌电信号共有8个通道,8类动作,通过对通道1和通道5进行分析,得到整体的准确率为65%。后面会继续对该算法进行改进,提高分类精度。
  介绍RNN部分较少,主要是使用该网络对表面肌电信号进行分类实现的。如果大家有什么更好的想法的话,可以留言哦✌️✌️
  后面会继续更新相关分类算法,请大家持续关注

循环神经网络(RNN)简单介绍及实现(基于表面肌电信号)相关推荐

  1. 基于表面肌电信号的手势识别——深度学习方法

    文章目录 基于表面肌电信号的手势识别--深度学习方法 1.方法和代码 2.数据下载 基于表面肌电信号的手势识别--深度学习方法 1.方法和代码 https://github.com/malele4th ...

  2. 循环神经网络(RNN, Recurrent Neural Networks)介绍

    循环神经网络(RNN, Recurrent Neural Networks)介绍   循环神经网络(Recurrent Neural Networks,RNNs)已经在众多自然语言处理(Natural ...

  3. python输出一首诗_基于循环神经网络(RNN)的古诗生成器

    基于循环神经网络(RNN)的古诗生成器,具体内容如下 之前在手机百度上看到有个"为你写诗"功能,能够随机生成古诗,当时感觉很酷炫= = 在学习了深度学习后,了解了一下原理,打算自己 ...

  4. TensorFlow练手项目二:基于循环神经网络(RNN)的古诗生成器

    基于循环神经网络(RNN)的古诗生成器 2019.01.02更新: 代码比较老了,当时的开发环境为Python 2.7 + TensorFlow 1.4,现在可能无法直接运行了.如果有兴趣,可以移步我 ...

  5. 循环神经网络(RNN)相关知识

    文章目录 RNN概述 前向传播公式 通过时间反向传播(BPTT) RNN确定序列长度方式 其他RNN结构 基于RNN的应用 1,序列数据的分析 2,序列数据的转换 3,序列数据的生成 RNN的不足 1 ...

  6. Tensorflow与keras学习 (3)——循环神经网络RNN

    循环神经网络RNN 3.1 RNN与LSTM介绍: 循环神经网络中的神经单元类似于模拟数字电路技术中的门电路,具有很多控制门来控制输入输出. RNN结构: LSTM结构: 相比与传统的神经网络,RNN ...

  7. dive into deep learning 循环神经网络 RNN 部分 学习

    dive into deep learning 循环神经网络 RNN 部分 学习 到目前为止,我们遇到过两种类型的数据:表格数据和图像数据. 对于图像数据,我们设计了专门的卷积神经网络架构来为这类特殊 ...

  8. Deep Learning × ECG (5) :利用循环神经网络RNN对心律失常ECG数据进行分类

    文章目录 1. RNN 介绍 2. 搭建RNN模型进行训练 1. RNN 介绍 循环神经网络RNN的提出主要针对于时间序列数据. 类似于股票.心律失常 ECG 和 电力数据 等数据都是属于时间序列数据 ...

  9. 循环神经网络(RNN)知识入门

    循环神经网络(RNN)知识入门 原创:方云 一. RNN的发展历史 1986年,Elman等人提出了用于处理序列数据的循环神经网络(Recurrent Neural Networks).如同卷积神经网 ...

最新文章

  1. css知识点笔记-常用属性
  2. Activiti与SpringBoot的整合
  3. MVC+EF三层+抽象工厂
  4. 转: Spark 的核心概念 RDD
  5. 【转】4.SharePoint服务器端对象模型 之 使用CAML进行数据查询
  6. php无限次执行函数,php-PHP一个方法根据传递值怎么执行多次?
  7. 上古卷轴 java_上古卷轴II-双帝传奇
  8. 如何获取免费比特币?
  9. 在Linux上显示某个进程的线程的几种方式
  10. Python学习笔记之 函数基础,pass
  11. Windows程序设计--起步
  12. python动态演示数据gdp_荐爬取世界各国历年的GDP数据
  13. 清华山维EPS二次开发VBS基础篇
  14. php999换算人民币计算器,将cm换算为px (厘米换算为像素)
  15. 调试EasyDarwin开源项目EasyCamera-HK接入海康IPCamera 摄像机所遇到的大坑
  16. 太极图php代码,如何实现太极图
  17. VirtualBox虚拟机全屏显示
  18. thingworx集中常见数据存储方法
  19. 如何在win10自带的Edge浏览器中切换成IE浏览器浏览网站
  20. 方舟建立服务器显示cmd,家庭电脑建方舟服务器

热门文章

  1. 基于PHP的校园视频点播系统,基于ThinkPHP框架的IPv6视频点播系统的实现
  2. python之界面案例
  3. 变频器按启动没反应_变频器通电无反应故障是什么情况?
  4. 最详细的Hadoop安装教程
  5. 90%公链项目将死?那些号称超越以太坊的“颠覆者”咋样了?
  6. StringUtils.split用法
  7. 用户画像体系与构建方法概述
  8. 电路分析题目详解(三)
  9. json对象和字符串相互转换
  10. 怎样备考计算机二级,如何备考计算机二级Ms office高级应用