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

news2024/12/29 8:15:08

目录

神经网络简介

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

围绕工业 APT 攻击的主要问题

高级持续威胁 (APT) 行动在受害者网络内取得成功的关键因素包括人为因素、安全措施不足、网络安全解决方案更新和配置方面的挑战以及其他因素。 虽然其中一些原因可能看起来微不足道,但卡巴斯基专家在事件响应活动中经常遇到这些问题。 为帮助公司减轻相关威胁并确…

win系统将脚手架的软链接指向本地脚手架

先了解一下脚手架研发、发布、安装、调试发大致流程: 本地研发,具体研发过程略当前目录下登录npm npm login发布脚手架 npm publish安装脚手架 npm i -g xxxx(win系统会在系统盘的nodejs文件夹下自动添加脚手架执行命令和执行文件&#xff0…

94.构建样品餐部分第二节

上节课完成的页面是这样的 ● 之后我们设置一下图标 .meal-attribute {font-size: 1.8rem;font-weight: 500;display: flex;align-items: center;gap: 1.6rem; }.meal-img {width: 100%; }.meal-icon {height: 2.4rem;width: 2.4rem;color: #e67e22; }● 为了突出这些参数的…

Go1.21 速览:新内置函数 clear、min、max 和新标准库包 cmp!

大家好,我是煎鱼。 前面给大家分享了 Go1.21 正式不支持 macOS 10.13 和 10.14 的支持。吓得我赶紧把我的 2017 款的老爷机从 10.14 升成 13.4。感觉 mbp 已经变成了暖宝宝。😅 今天给大家分享的是 Go 1.21 中的两个双新增项,分别是新的 3 个…

QTYX量化系统实战案例分享|涨停股池中寻找反弹机会-202306

前言 “实战案例分享系列”是和大家分享一些股票量化分析工具QTYX在实战中的应用案例(包括失败的案例),这样能够帮助大家更好地去理解QTYX中的功能设计,也能更好地帮助大家搭建出属于自己的量化交易系统。 关于QTYX的使用攻略可以…

Clion开发STM32之链接文件进行模块的一个解耦(编程方式)

问题的引入 在单片机的开发过程中,往往涉及到驱动的移植,但是移植的过程中又会去添加和修改主逻辑的驱动引脚初始化或时钟初始化,这里面就会存在一个问题就是:改动的地方太多了,容易影响到其它功能模块。所以能不能做…

200SMART CPU输入/输出接线的几个关键点

总结来看,S7-200系列PLC提供4个不同的基本型号的8种CPU,其接线方式也可大致分为6种: 1.CPU SR20接线 2.CPU SR40接线 3.CPU CR40接线 4.CPU ST40接线 5. CPU SR60接线 6. CPU ST60接线 除了CPU外,我们还需要了解200smart PLC的数…

Rocketmq面试(二)Rocketmq如何保证消息不丢失

如果想要保证消息不丢失就要知道,消息可能出现丢失得地方。 1.producer发送消息 2.Broker存储消息 3.Consumer消费消息 4.Broker主从切换 下面一共有9个维度可以保证消息不丢失。 目录 维度一:同步发送 维度二.异步发送 维度三.刷盘策略 维度四…

后端——平台登录功能实战

这里写目录标题 一、登录接口设计示意图二、后端设计三、创建用户表四、后端鉴权逻辑五、登录接口实现六、使用 JWT 生成 token七、路由鉴权八、登录与测试用例服务结合九、跨域一、登录接口设计示意图 二、后端设计 三、创建用户表 db=SQLAlchemy(app

华尔街新风向:多基金失英伟达机会

在过去一年多的美联储暴力加息周期中,科技成长股一直不怎么受到主流投资者待见,但面对今年美股“人工智能涨个不停”的局面后,过去两周里大量的知名基金都在撒开脚丫子狂追高速狂飙的“英伟达列车”。 根据监管文件显示,包括道富…

视频与AI,与进程交互(一)

目的 正在写一个视频与AI的工具,从接入,算法处理,转发,存储, 到调用AI进程,并且与AI进程进行交互,插件化,脚本化,做得比较辛苦,期间的进程和线程交互以及结果…

基于奥比中光深度相机进行虹膜识别处理

MATLAB仿真实现效果展示 图1 奥比中光红外深度相机拍摄效果 MATLAB仿真红外效果的图片,使用奥比中光的Astra_Pro深度相机和Astra进行拍摄,效果很好。 声明:本文的虹膜识别系统模型参考了西澳大利亚大学,计算机科学与软件工程学…

Spark 优化

1.RDD分区数 Task是作用在每个分区上的,每个分区至少需要一个Task去处理 改变分区数可间接改变任务的并行度,类似手动指定Reduce数量 第一个RDD的分区数由切片的数量决定 默认情况下子RDD的分区数等于父RDD的分区数 Shuflle类算子可手动指定RDD分区数 设…

chatgpt赋能python:Python屏幕截图并保存:简单易用的库

Python屏幕截图并保存:简单易用的库 屏幕截图是程序员们在软件开发中常用到的一个小技巧,对于调试、记录Bug、编写文档等方面有极大的帮助。而其中,Python成为了众多程序员的利器之一。 在Python中,大量的库提供了屏幕截图的方法…

PX4-机架选取(基于QG地面站)

因为我的无人机是F450,所以我选用F450的机架 点击应用后,要稍等一会 应用完成后在概述会标识

经纬度坐标为中心点生成米距离长度半径的圆形面,含java js源码+在线绘制,代码简单零依赖

文章目录 java版源码js版源码在线绘制预览效果关于计算的精确度 前些时间在更新我的坐标边界查询工具的时候,需要用到经纬度坐标点的距离计算,和以坐标点为中心生成一个指定距离为半径的圆,搜了一下没有找到现成简单又合适的代码,…

基于OpenCV 和 Dlib 进行头部姿态估计

写在前面 工作中遇到,简单整理博文内容涉及基于 OpenCV 和 Dlib头部姿态评估的简单Demo理解不足小伙伴帮忙指正 庐山烟雨浙江潮,未到千般恨不消。到得还来别无事,庐山烟雨浙江潮。 ----《庐山烟雨浙江潮》苏轼 https://github.com/LIRUILONGS…

2023智源大会议程公开 | 大模型新基建与智力运营论坛

6月9日,2023北京智源大会,将邀请这一领域的探索者、实践者、以及关心智能科学的每个人,共同拉开未来舞台的帷幕,你准备好了吗?与会知名嘉宾包括,图灵奖得主Yann LeCun、OpenAI创始人Sam Altman、图灵奖得主…

【模型评估】混淆矩阵(confusion_matrix)之 TP、FP、TN、FN;敏感度、特异度、准确率、精确率

你这蠢货,是不是又把酸葡萄和葡萄酸弄“混淆”啦!!!这里的混淆,我们细品,帮助我们理解名词“混淆矩阵” 上面日常情况中的混淆就是:是否把某两件东西或者多件东西给弄混了,迷糊了。把…

数据隐私保护的最佳实践:全面了解数据脱敏方案

1、数据脱敏 数据脱敏是一种保护敏感信息的安全措施,通常会将真实数据替换成模拟数据或者经过处理后的数据。下面是常见的数据脱敏实现方案: 字符串替换:将需要脱敏的字符串中指定位置的字符替换为“****”或其他符号。例如,将银…