基于神经网络的分类和预测

基于神经网络的分类和预测

  • 一、基础知识
    • (一)引言
    • (二)神经网络的基本概念
      • (1)神经网络
      • (2)神经元
      • (3)常用的激活函数(非线性映射函数)
      • (4)神经网络模型
      • (5)神经网络参数
      • (6)神经网络训练
      • (7)损失函数
      • (8)流程
      • (9)可能遇到的问题
  • 二、适用赛题
    • (一)预测类问题
    • (二)分类(评价)类问题
    • (三)模型选择
      • (1)前馈神经网络
      • (2)反馈神经网络
      • (3)注意事项

一、基础知识

(一)引言

(1)两个 “集合” 通过某个 “对应法则” 将两个集合中的 “每个元素” 进行一一对应起来的关系式称为"函数"
在这里插入图片描述
(2)神经网络是机器学习的一种模型(方法)

思考: 神经网络用来做什么? 怎么做?

  • 已知有100个鸢尾花的数据(包括花萼长度、宽度,花瓣长度、宽度),以及每个鸢尾花对应的类别
  • 现在采集了一个新的鸢尾花数据(包括花萼长度、宽度,花瓣长度、宽度)该鸢尾花对应的类别如何判别?
    在这里插入图片描述
    在这里插入图片描述

(二)神经网络的基本概念

(1)神经网络

人工神经网络(英语:Artificial Neural Network,ANN),简称 神经网络(Neural Network,NN)或 类神经网络

  • 神经网络由多层多个神经元 (结点) 构成
  • 神经网络由输入层隐藏层输出层构成
  • 权重代表每个结点的重要性

在这里插入图片描述
在这里插入图片描述

(2)神经元

每个输入都有一个相关的权值(w),它是根据该输入对当前神经元的重要性来确定的,对该输入加权并与其他输入求和后,经过一个激活函数 f,计算得到该神经元的输出
在这里插入图片描述

其中:

  • x1,……,xn-1,xn 为各个输入的分量
  • w1 i, ……,xn-1 i,xn i 为各个输入分量对应的权重参数
  • θi 为偏置
  • f 为激活函数,常见的激活函数有Tanh,Sigmoid,Relu
  • yi 为神经元的输出

可见,一个神经元的功能是求得输入向量与权向量的内积后,经一个非线性传递函数得到一个标量结果

(3)常用的激活函数(非线性映射函数)

  • 如果不用激活函数,每一层输出都是上层输入的线性函数,无论神经网络有多少层,输出都是输入的线性组合,这种情况就是最原始的感知机。
  • 而激活函数给神经元引入了非线性因素,使得神经网络可以任意逼近任何非线性函数,这样神经网络就可以应用到众多的非线性模型中。
  1. Sigmoid
    由于其单增以及反函数等性质,常被用作神经网络的阈值函数将变量映射到(0,1),可以用来做二分类

缺点:

  • 当输入非常大或者非常小的时候,这些神经元的梯度是接近于0的,从图中可以看出梯度的趋势。
  • Sigmoid 的输出不是0均值,这会导致后一层的神经元将得到上一层输出的非0均值的信号作为输入。

在这里插入图片描述

  1. Tanh
    双曲正切,将变量映射到(-1,1)。Tanh是Sigmoid的变形,与 sigmoid 不同的是,tanh 是0均值的。因此,实际应用中,tanh 会比 sigmoid 更好。
    在这里插入图片描述

  2. Relu
    修正线性单元,它的作用是如果计算出的值小于0,就让它等于0,否则保持原来的值不变,克服了前两个激活函数会出现的梯度消失问题。通常用于隐层神经元输出
    在这里插入图片描述

运用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
一个由足够多的非线性单元组成的单层网络,可以近似任何具有实际意义的特征

(4)神经网络模型

在这里插入图片描述
在这里插入图片描述

(5)神经网络参数

当问题比较复杂时,感知机可能学习果不好,需要加深网络层数

多层感知机
在这里插入图片描述
BP神经网络(back propagation,前馈-反向传播)

  • BP神经网络等于叠加多个感知机来实现非线性可分
  • 梯度下降策略:以目标的负梯度方向对参数进行调整(此外还有牛顿法、最小二乘等策略)
  • 第𝑘个训练例的均方误差:
    在这里插入图片描述

(6)神经网络训练

  • 神经网络拟合某种函数,通过一些权重将一个非线性函数参数化了,我们可以通过改变这些权重来改变这个非线性函数。
  • 神经网络训练的目的是找到合适的参数(即权重),使得得到的函数尽可能逼近原函数(即损失最小)。

在这里插入图片描述
在这里插入图片描述

(7)损失函数

1、分类
在这里插入图片描述

  • 输出层神经元个数 :n个类别 --> n个神经元
    输出的是样本所属类别的概率,这个概率值反映了预测为正类的可能性:概率越大,可能性越大。经softmax回归处理后的输出为:
    在这里插入图片描述

归一化的目的:
1)保证预测的概率为非负数
2)保证各种预测结果概率之和等于1

  • 损失函数:对于m个样本,softmax(交叉熵损失)
    在这里插入图片描述
    2、预测
    在这里插入图片描述
  • 输出层神经元个数:1个
  • 损失函数:MSE(均方误差)
    在这里插入图片描述

(8)流程

  • 准备数据集:包括训练集、验证集和测试集(82分或73分)
  • 设计网络:根据需求设计网络架构
  • 训练:数学建模基本采用有监督(训练集有标签)
  • 测试模型效果

(9)可能遇到的问题

过拟合和欠拟合

  • 过拟合:把特殊当一般(见过的天鹅都是白的,就以为天鹅只有白色的)
  • 欠拟合:一般性质都没学好(“后浪”里讲述的都是年轻人,就以为年轻人都是后浪)
    在这里插入图片描述

过拟合的原因及解决
在这里插入图片描述
过拟合的原因及解决
一般是训练不够


二、适用赛题

(一)预测类问题

用已有的数据来预测未来的结果,一般为回归问题,即输出值𝑦是连续的
比如:

  • 美赛2022年C题比特币和黄金投资策略,LSTM(Long Short-Term Memory,长短时记忆网络)进行预测
  • 短时交通流量预测,小波神经网络(WNN)的时间序列
  • 电力负荷预测 ,Elman神经网络(在BP网络上加上局部反馈层),具有延时记忆,适合动态建模

基于BP网络,加上反馈信息

(二)分类(评价)类问题

对对象进行分类,一般为离散问题,即输出值𝑦是有限个离散值
比如:

  • 美赛2021年C题黄蜂传播规律和目击准确性,卷积神经网进行图像识别
  • 人体肿瘤诊断,LVQ神经网络,无需数据预处理,适合模式识别和优化
  • 柴油机故障判断,SOM神经网络,无标签,适合需要聚类的问题

网络模型可参考网站:一文读懂神经网络

(三)模型选择

(1)前馈神经网络

1、全连接网络(FCNN)
也称为多层感知器(Multilayer Perceptron,MLP),是最基本的神经网络架构之一。在全连接网络中,每一层的每个神经元都与前一层的所有神经元相连接,这种密集的连接方式使得网络能够学习到输入数据中的复杂非线性关系。
在这里插入图片描述
2、卷积神经网络(CNN)
是一种专门为处理具有类似网格结构的数据(如图像)而设计的神经网络。CNN通过卷积层、池化层和全连接层等结构,能够有效地提取图像中的局部特征和空间层次结构。
在这里插入图片描述

(2)反馈神经网络

1、递归神经网络(Hopfiled优化)
递归神经网络是一种专门设计来处理序列数据的神经网络。RNN通过在网络中引入循环连接,使得网络能够保留之前时间步的信息,并将其用于当前时间步的计算。
在这里插入图片描述

2、回馈神经网络
回馈神经网络是一种具有反馈连接的神经网络,它通过将输出或隐藏状态反馈到输入层,形成一个闭环系统。回馈神经网络可以看作是RNN的一种特殊形式。
在这里插入图片描述

(3)注意事项

1、数据量比较大时,可以考虑使用神经网络
2、数据量小时,优先选用决策树、支持向量机、线性回归


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

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

相关文章

ISO 45001:提升职业健康与安全管理水平的关键

在现代企业管理中,员工的职业健康与安全(OH&S)已经成为不可忽视的重要议题。ISO 45001作为国际标准化组织(ISO)制定的职业健康与安全管理体系标准,为企业提供了科学有效的管理规范和指南。实施这一标准…

Go-知识测试-子测试

Go-知识测试-子测试 1. 介绍2. 例子3. 子测试命名规则4. 选择性执行5. 子测试并发6. testing.T.Run7. testing.T.Parallel8. 子测试适用于单元测试9. 子测试适用于性能测试10. 总结10.1 启动子测试 Run10.2 启动并发测试 Parallel 建议先看:https://blog.csdn.net/a…

探索“搭旅万物皆可搭”小程序——构建旅行搭伴平台的创新实践

摘要 随着旅游市场的不断发展和个性化需求的日益增长,旅行搭伴平台逐渐成为连接志同道合旅者的桥梁。本文旨在介绍“搭旅万物皆可搭”小程序的设计理念、核心功能及其背后的技术实现,探讨如何通过算法优化、安全保障、社交互动等手段,打造一…

手撕Vue中的RouterLink和RouterView,深入理解其底层原理(一)

RouterLink和RouterView的作用 我们可以通过RouterLink绑定好指向的路径 点击就能够实现在RouterView中将页面显示出来 我们首先使用官方的vue-router展示一下效果 App.vue <template><div><router-link to"/">Home</router-link><ro…

51单片机STC89C52RC——17.2 红外遥控数字加减、电机调速

目的/效果 1&#xff1a;按VOL-键数字减、按VOL加数字加 2&#xff1a;按键 0&#xff0c;1&#xff0c;2&#xff0c;3&#xff0c;4 电机调速 一&#xff0c;STC单片机模块 二&#xff0c;红外遥控 详细了解红外遥控控制原理请参考《51单片机STC89C52RC——17.1 红外线遥控…

UE4 解决创建布料报错:三角形退化

**【问题】**创建创建布料时报错&#xff1a;三角形退化 【方法】 1.要重新绑定&#xff1a;导入到ue4为静态网格体&#xff0c;勾选“移除退化”&#xff0c;再导出fbx&#xff0c;再重新绑定 2.不用重新绑定&#xff1a;使用排除法&#xff08;费时&#xff09;&#xff0c…

Spring Boot快速上手

一&#xff0c;什么是spring 首先登陆Spring官网&#xff0c;看一下官网如何形容的&#xff0c; 可以看出Spring是为了使java程序更加快速&#xff0c;方便&#xff0c;安全所做出的java框架。 1.Spring Boot Spring Boot的诞生就是为了简化Spring的开发&#xff0c;也就是更…

【Quart 框架——来源于Flask的强大且灵活的异步Web框架】

目录 前言一、Quart简介1-1、简介1-2、与flask的区别 二、快速开始2-1、安装2-2、基本用法 三、核心功能3-1、异步路由3-2、WebSockets 支持3-3、中间件3-4、蓝图 (Blueprints) 四、部署4-1、使用uvicorn部署4-2、使用hypercorn部署 五、案例分析总结 前言 Quart 是一个基于 Py…

taocms 3.0.1 本地文件泄露漏洞(CVE-2021-44983)

前言 CVE-2021-44983 是一个影响 taoCMS 3.0.1 的远程代码执行&#xff08;RCE&#xff09;漏洞。该漏洞允许攻击者通过上传恶意文件并在服务器上执行任意代码来利用这一安全缺陷。 漏洞描述 taoCMS 是一个内容管理系统&#xff08;CMS&#xff09;&#xff0c;用于创建和管…

用Qwt进行图表和数据可视化开发

目录 Qwt介绍 示例应用场景 典型QWT开发流程 举一些Qwt的例子&#xff0c;多绘制几种类型的图像 1. 绘制折线图 (Line Plot) 2. 绘制散点图 (Scatter Plot) 3. 绘制柱状图 (Bar Plot) 4. 绘制直方图 (Histogram) Qwt介绍 QWT开发主要涉及使用QWT库进行图表和数据可视化…

在若依框架基础上开发新功能

本文介绍如何在若依框架&#xff08;不分离版本&#xff09;的基础上开发新功能。 目录 运行若依框架 下载若依框架代码 IDEA打开若依框架代码 初始化数据库 修改数据库配置 运行项目 设计数据库 数据表命名规则 建表及初始化数据 开发新功能 后端CRUD功能 用户前端…

从零开始做题:神奇的棋盘

题目 打开得到一副adfgvx加密棋盘 观察txt数据只有1-5&#xff0c;猜测是数字字母坐标转换&#xff0c;用notepad批量操作一下 解题 AGAXXDAGGVGGVDVADAVXDGADVGDVAADDDDFXAFAFDGDVXXDGGDGGDXDDFDDXVGXADGVDFXVVAADDXDXXADDVGGGXGXXXXGXXGGXGDVVVGGGAGAAAAGAAGGAGDDDAGAGGG…

JS实现:统计字符出现频率/计算文字在文本中的出现次数

要实现这个功能&#xff0c;JavaScript 一个非常强大的方法&#xff0c;那就是reduce() reduce() 它用于将数组的所有元素减少到一个单一的值。这个值可以是任何类型&#xff0c;包括但不限于数字、字符串、对象或数组。 reduce() 方法接收一个回调函数作为参数&#xff0c;这个…

Java单边表的局部翻转

反转链表 II 这是上一个翻转全部链表的进阶版&#xff0c;大家可以先去看我的上一篇博客 Java算法之单链表的全部翻转-CSDN博客 题目描述 给你单链表的头指针 head 和两个整数 left 和 right &#xff0c;其中 left < right 。请你反转从位置 left 到位置 right 的链表节…

Spring Cloud Eureka

引入&#xff1a;远程调用时&#xff0c;url是写死的 String url "http://127.0.0.1:9090/product/" orderInfo.getProductId(); 解决思路&#xff1a; 比如&#xff08;医院&#xff0c;学校等&#xff09;机构的电话号码发生变化&#xff0c;就需要通知各个使⽤…

mybatilsplaus 常用注解

官网地址 baomidou注解配置

vue3项目,表单增删改

效果图 ArticleChannel.vue页面代码 <script setup> import {artGetChannelsService ,artDelChannelService} from /api/article.js import { Edit, Delete } from element-plus/icons-vue //调用open方法&#xff0c;ChannelEdit去修改组件内部类容 import ChannelEdit…

【Linux】1w详解如何实现一个简单的shell

目录 实现思路 1. 交互 获取命令行 2. 子串分割 解析命令行 3. 指令的判断 内建命令 4. 普通命令的执行 补充&#xff1a;vim 文本替换 整体代码 重点思考 1.getenv和putenv是什么意思 2.代码extern char **environ; 3.内建命令是什么 4.lastcode WEXITSTATUS(sta…

linux nethogs网络监控程序(端口监控、流量监控、上传流量、下载流量、进程监控进程网络)

文章目录 Nethogs 网络监控程序详解1. 引言2. Nethogs 的安装与运行2.1 安装 Nethogs- **Debian/Ubuntu**- **Fedora**- **Arch Linux** 2.2 运行 Nethogs 3. Nethogs 的使用详解3.1 基本界面- **PID**&#xff1a;进程的 ID。- **用户**&#xff1a;运行该进程的用户。- **程序…

graphviz subgraph添加边界框

subgraph name 属性必须要以cluster开头。 A Quick Introduction to GraphvizAn awesome tool for software documentation and visualizing graphshttps://www.worthe-it.co.za/blog/2017-09-19-quick-introduction-to-graphviz.html digraph {rankdir"LR"// the n…