数据挖掘(6.1)--神经网络

目录

神经网络简介

BP算法

Delta学习规则的基本原理

BP神经网络的结构 

BP神经网络的算法描述

神经网络训练一般步骤

后向传播算法的主要步骤 

优缺点

BP算法简单举例


神经网络简介

神经网络是一种计算模型,它受到人脑处理信息的生物神经网络过程的启发。人工神经网络(ANN)一般也称为神经网络(Neural Network,NN)。  

神经网络是由多个神经元组成的,每个神经元都有一个输入和一个输出,它们之间通过权重进行连接。当输入数据经过多个神经元后,输出结果就是由这些神经元的输出加权求和得到的。

BP算法

BP算法(Back Propagation Algorithm)是一种常用的神经网络训练算法,用于在监督学习中对前向传播算法

神经网络是一种计算模型,它受到人脑处理信息的生物神经网络过程的启发。人工神经网络(ANN)一般也称为神经网络(Neural Network,NN)。  

神经网络是由多个神经元组成的,每个神经元都有一个输入和一个输出,它们之间通过权重进行连接。当输入数据经过多个神经元后,输出结果就是由这些神经元的输出加权求和得到的。

进行优化。BP算法基于误差反向传播原理,通过计算每个神经元对于输出结果的误差,然后将误差从输出层反向传播到输入层,逐层更新每个神经元的权重和偏置值,以最小化预测结果与真实结果之间的误差。

Delta学习规则的基本原理

Delta学习规则又称梯度法或最速下降法,其要点是改变单元间的连接权重来减小系统实际输出与期望输出间的误差 

BP神经网络的结构 

BP神经网络是具有三层或三层以上的阶层型神经网络,由输入层、隐含层和输出层构成,相邻层之间的神经元全互连,同一层内的神经元无连接 

BP神经网络的算法描述

BP算法的主要思想是从后向前(反向)逐层传播输出层的误差以间接算出隐层误差。

算法分为两个阶段:

第一阶段(正向传播过程)输入信息从输入层经隐层逐层计算各单元的输出值

第二阶段(反向传播过程)输出误差逐层向前算出隐层各单元的误差,并用此误差修正前层权值

具体来说,BP算法包括以下几个步骤:

  1. 初始化模型参数(如神经元的权重和偏置值)。

  2. 前向传播计算网络的输出结果。

  3. 计算网络输出结果与真实结果之间的误差。

  4. 根据误差反向传播原理,计算每个神经元对于误差的贡献,并根据梯度下降算法更新每个神经元的权重和偏置值。

  5. 重复执行以上步骤,直到达到一定的迭代次数或损失函数收敛。 

神经网络训练一般步骤

初始化权重

将输入元组一个一个注入网络

于每个输入元组,执行如下过程:

每个单元的经输入计算为这个单元所有输入的线性组合

使用激活函数计算输出值

新权重值和阈值(偏差)

向传播算法的主要步骤 

用随机值初始化权重

向前传播输入,对每个隐含层或输出单元,计算其输入和输出,并最终计算出预测结果

单元j的净输入:

假设一个隐藏或输出单元为j,单元j的输人来自上一层的输出,Wij是由上一层单元i到单元j的连接权重,O_{i}是上一层单元i的输出,\theta j是单元j的偏倚。

单元j的净输出:

向后传播误差。更新权重和阈值(从输出层开始)

输出层单元j的误差

隐含层单元j的误差

其中w_{jk},是单元j到下一较高层单元k的连接权重,Errk是单元k的误差。

 

其中\bigtriangleup w_{ij}是权重w_{ij}的改变;l是学习速率,通常取0.0~1.0之间的常数,一种经验的设置是将学习率设置为1/t ,t是当前训练集迭代的次数。

优缺点

优点

  • 非线性映射能力
  • 自学习和自适应能力
  • 泛化能力
  • 容错能力

缺点

  • 结构选择不一
  • 局部极小化、收敛速度慢
  • 预测能力和训练能力的矛盾问题
  • 样本依赖性问题

BP算法简单举例

import numpy as np
from sklearn.datasets import load_iris
from sklearn.preprocessing import StandardScaler

# 定义sigmoid函数
def sigmoid(x):
    return 1 / (1 + np.exp(-x))

# 定义BP算法
def backpropagation(X, y, hidden_nodes, output_nodes, learning_rate, epochs):
    # 初始化权重
    input_nodes = X.shape[1]
    hidden_weights = np.random.normal(scale=1 / input_nodes ** 0.5, size=(input_nodes, hidden_nodes))
    output_weights = np.random.normal(scale=1 / hidden_nodes ** 0.5, size=(hidden_nodes, output_nodes))

    # 训练
    for i in range(epochs):
        # 前向传播
        hidden_inputs = np.dot(X, hidden_weights)
        hidden_outputs = sigmoid(hidden_inputs)
        output_inputs = np.dot(hidden_outputs, output_weights)
        output_outputs = sigmoid(output_inputs)

        # 计算误差
        output_error = y - output_outputs
        output_delta = output_error * output_outputs * (1 - output_outputs)

        hidden_error = np.dot(output_delta, output_weights.T)
        hidden_delta = hidden_error * hidden_outputs * (1 - hidden_outputs)

        # 更新权重
        output_weights += learning_rate * np.dot(hidden_outputs.T, output_delta)
        hidden_weights += learning_rate * np.dot(X.T, hidden_delta)

    return output_outputs

# 加载数据集
iris = load_iris()
X = iris.data
y = iris.target

# 数据预处理
scaler = StandardScaler()
X = scaler.fit_transform(X)
# 将标签转换为one-hot编码
y_onehot = np.zeros((y.size, y.max()+1))
y_onehot[np.arange(y.size), y] = 1

# 训练模型
output = backpropagation(X, y_onehot, hidden_nodes=5, output_nodes=3, learning_rate=0.1, epochs=10000)

# 预测结果
y_pred = np.argmax(output, axis=1)

# 计算准确率
accuracy = np.mean(y_pred == y)
print('Accuracy:', accuracy)

 输出结果:

Accuracy: 0.9933333333333333

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/32318.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

第44步 深度学习图像识别:ResNet50建模(Tensorflow)

基于WIN10的64位系统演示 一、写在前面 (1)ResNet50 ResNet50是一种深度学习模型,由微软研究院的研究人员在2015年提出。"ResNet"的全称是"Residual Network",意为"残差网络","…

React 基本介绍

目录 1、React是什么 2、React 三大颠覆性的特点 2.1 组件 2.2 JSX 2.3 Virtual DOM 3、Flux 架构(redux) 3.1 Flux 3.2 redux 4、打包工具(webpack) 4.1 webpack与RequireJS、browserify 4.2 模块规范 4.3 非 JavaSc…

实验篇(7.2) 17. 站对站安全隧道 - FortiGate作为SSL客户端(SSL) ❀ 远程访问

【简介】虽然常用的站到站的连接用的是IPsec VPN,但是在某些特殊情况下,UDP500或4500端口被阻断,IPsec VPN无法连接,那么还有其它办法实现站到站的连接吗?SSL VPN也可以的。 实验要求与环境 OldMei集团深圳总部部署了域…

【云原生】二进制k8s集群(下)部署高可用master节点

本次部署说明 在上一篇文章中,就已经完成了二进制k8s集群部署的搭建,但是单机master并不适用于企业的实际运用(因为单机master中,仅仅只有一台master作为节点服务器的调度指挥,一旦宕机。就意味着整个集群的瘫痪&#…

【软考网络管理员】2023年软考网管初级常见知识考点(23)- 路由器的配置

涉及知识点 华为路由器的配置,华为路由器命令大全,软考大纲路由命令,静态路由和动态路由的配置命令,软考网络管理员常考知识点,软考网络管理员网络安全,网络管理员考点汇总。 原创于:CSDN博主-…

数字化转型的难点是什么?该如何突破?

01为什么要进行数字化转型? 数字化转型不仅是企业提高效率和竞争力的必经之路,也是市场发展趋势的体现。 提升业务效率:数字化转型可以采用自动化流程、数据分析和智能化技术,从而提高企业业务的自动化水平,优化流程…

贝叶斯算法人生

哈喽大家好,我是咸鱼 之前看到过耗子叔写的一篇文章《程序算法与人生选择》,这篇文章中耗子叔结合计算机中的经典算法(排序、动态规划等等),让大家在人生道路的选择上获得了一些启发 我最近看了一些关于贝叶斯思想的…

数字图像处理-图像复原与重建

文章目录 一、图像退化/复原过程的模型二、噪声模型2.1噪声的空间和频率特性2.2一些重要的噪声概率密度函数2.2.1高斯噪声2.2.2瑞利噪声2.2.3爱尔兰(伽马)噪声2.2.4指数噪声2.2.5均匀噪声2.2.6脉冲(椒盐)噪声 2.3周期噪声 三、只存…

为什么有了HTTP,还需要WebSocket协议?

目录 WebSocket是什么? WebSocket怎样建立连接? WebSocket的实际用途 WebSocket 与 HTTP 的选择 HTTP是基于TCP协议的,同一时间里,客户端和服务器只能有一方主动发数据,是半双工通信。 通常,打开某个网…

Redis从入门到精通【进阶篇】之高可用主从详解

文章目录 0.前言1.详解1.1 主从复制概述1.2 主从复制原理1.2.1.全量复制1.2.2.增量复制1.2.3.详细描述1.3 更深入理解1.4 常见面试题 2. 总结3. Redis从入门到精通系列文章 0.前言 Redis是一个高性能的键值存储系统,广泛应用于Web应用、缓存、消息队列等领域。在实…

论文解读:End-to-End Object Detection with Transformers

发表时间:2020 论文地址:https://arxiv.org/pdf/2005.12872.pdf 项目地址:https://github.com/facebookresearch/detr 提出了一种将对象检测视为集合预测问题的新方法。我们的方法简化了检测流程,有效地消除了许多手工设计的组件…

python自动化办公——读取PPT写入word表格

Python自动化办公——读取PPT内容写入word表格 文章目录 Python自动化办公——读取PPT内容写入word表格一、需求分析二、导入依赖三、代码四、结果及总结 一、需求分析 📖由于我们知识图谱课程需要将课堂小组汇报的PPT总结成word文档,而我觉得一页一页复…

python爬虫并做可视化分析--前程无忧

一.数据采集 1.采集逻辑 2.数据schema 招聘信息Schema { "岗位名称": "财务会计主管", "薪资":"1.3-2万", "地址": "*******", "经验要求": "5-7年", "公司名": "***…

JavaWeb小记——重定向和内部转发

目录 重定向 原理图 重定向语句 重定向特点 内部转发 原理图 请求转发特点 路径的书写 请求域对象request 特点 请求转发特点 重定向特点 重定向 原理图 重定向语句 response.setStatus(302); response.setHeader("location","http://www.baidu.c…

MS1826 HDMI 多功能视频处理器 4*4矩阵切换器

基本介绍 MS1826 是一款多功能视频处理器,包含 4 路独立 HDMI 音视频输入通道、4 路独立 HDMI 音视频输出通道以及四路独立可配置为输入或者输出的 SPDIF、I2S 音频信号。支持 4 个独立的字 库定制型 OSD;可处理隔行和逐行视频或者图形输入信号&#xff…

【计算机网络】网络安全,HTTP协议,同源策略,cors,jsonp

❤️ Author: 老九 ☕️ 个人博客:老九的CSDN博客 🙏 个人名言:不可控之事 乐观面对 😍 系列专栏: 文章目录 网络安全非对称加密中间人攻击XSSSQL注入CSRF HTTP协议同源策略corsjsonp 网络安全 非对称加密…

推荐好用的AI工具集

AI技术未来已来,我们要拥抱变化 ,笔记试用好用AI工具,也在代码中试用chatGPT 一、工具集 解决任何问题:ChatGPT 写文案:Jasper Al 、Copysmith 生成真人视频:Synthesia、 CogView2 AI AI 解决法律问题…

MySQL面试题--索引概念以及底层

目录 概述 索引的底层数据结构 二叉树 B树 B树 B树与B树对比: 面试回答 大纲 回答 概述 索引(index)是帮助MySQL高效获取数据的数据结构(有序)。 在数据之外,数据库系统还维护着满足特定查找算法的数据结构(B树&#xff0…

springboot 国家公务员招聘网站-计算机毕设 附源码80528

springboot 国家公务员招聘网站 目 录 摘要 1 绪论 1.1研究背景与意义 1.2开发现状 1.3系统开发技术的特色 1.4springboot框架介绍 1.5论文结构与章节安排 2 2国家公务员招聘网站系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1数据增加流程 2.3.2数据修改流程 2.…

【Solr】体验极速安装solr

目录 前言 安装下载- 方式一:官网下载- 方式二:仓库下载 启动方式 快速使用 关于查询 前言 solr是基于java开发的,所以solr需要用到jdk环境,并且solr需要在tomcat容器中才能运行,所以需要提前配置好jdk和tomcat环境。 安装下载 需要注意的…