当前位置: 首页 > news >正文

神经网络基础知识

神经网络基础知识

文章目录

  • 神经网络基础知识
    • 一、人工神经网络
      • 1.激活函数
        • sigmod函数
        • Tanh函数
        • Leaky Relu函数
        • 分析
      • 2.过拟合和欠拟合
    • 二、学习与感知机
      • 1.损失函数与代价函数
      • 2. 线性回归和逻辑回归
      • 3. 监督学习与无监督学习
    • 三、优化
      • 1.梯度下降法
      • 2.随机梯度下降法(SGD)
      • 3. 批量梯度下降法(BGD)
      • 4.小批量梯度下降法(MBGD)
      • 5.Momentum动量法
      • 6.优化学习率/步长
      • 7.反向传播算法
    • 四、卷积神经网络
      • 1.感受野
      • 2.下采样(池化)
      • 3.Flattening平整化
      • 4.举例
    • 五、循环神经网络
      • 1. RNN的基本概念
      • 2.LSTM长短期记忆网络
      • 3.GRU
      • 4.Attention注意力机制
      • 5.Transformer模型

一、人工神经网络

1.激活函数

sigmod函数

在这里插入图片描述

Tanh函数

在这里插入图片描述

Leaky Relu函数

在这里插入图片描述

分析

  1. sigmod和Tanh函数为饱和函数,leaky Relu函数为非饱和函数,使用非饱和激活函数的优势在于:
  • 非饱和函数能解决深度神经网络(层数非常多)的梯度消失问题,浅层网络才能使用sigmod作为激活函数。
  • 非饱和函数能够加快收敛速度
  1. 激活函数的作用是将ANN模型中一个节点的输入信号转换成一个输出信号,若不运用激活函数的话,则输出信号将仅仅是一个简单的线性函数。

2.过拟合和欠拟合

  • 欠拟合是指模型在训练集、验证集和测试集上均表现不佳的情况;
  • 过拟合是指模型在训练集上表现很好,到了验证和测试阶段就很差,即模型的泛化能力很差。

二、学习与感知机

1.损失函数与代价函数

  1. 代价(目标)函数是损失函数的平均值
  2. 输入x通过模型预测输出y,此过程称为向前传播,而将预测与真实值的差值减小需要更新模型中的参数,这个过程称为向后传播
  • 损失函数

在这里插入图片描述

  1. 代价函数C(x),若是有多个样本可以将所有代价函数的取值求均值,记作J(x)。优化参数x,最常用的方法就是梯度下降,就是对代价函数J(x)的偏导数。
  • 代价函数

在这里插入图片描述

  1. 均方误差通常用在线性回归问题中,交叉熵代价函数通常用在分类问题中。

  2. 损失函数(Loss Function )是定义在单个样本上的,算的是一个样本的误差。

    代价函数(Cost Function )是定义在整个训练集上的,是所有样本误差的平均,也就是损失函数的平均。

    目标函数(Object Function)定义为:最终需要优化的函数。等于经验风险+结构风险(也就是Cost Function + 正则化项)。

2. 线性回归和逻辑回归

  1. 线性回归是回归问题(预测数值是连续型的),逻辑回归是分类问题(预测数值是离散型的)
  2. 逻辑回归就是将线性回归的值映射到sigmod函数当中,两者的求解步骤是类似的。

3. 监督学习与无监督学习

  1. 监督学习的学习方法是分类和回归,常用的算法是K-近邻算法、决策树、朴素贝叶斯、逻辑回归。
  2. 无监督学习的学习方法是:
  • 聚类:K-均值聚类、BIRCH聚类、高斯混合聚类
  • 降维:主成分分析(PCA)(通过线性变换将原始数据变换为一组各维度线性无关的表示,可以用于提取数据的主要特征分量。)
  1. 监督学习是根据已有数据集,知道输入和输出结果之间的关系,然后根据这种已知关系训练得到一个最优模型。训练数据应该既有特征(x)又有标签(y),然后通过训练,找到特征和标签之间的联系。

  2. 监督学习中的数据是带有一系列标签的,在无监督学习中,需要用某种算法去训练无标签的训练集从而能够让我们找到这组数据的潜在结构。

  3. 监督式学习中的分类和回归:回归指利用训练数据预测输出值,例如利用回归从训练数据中预测股票价格。分类指将输出分组到某一类。例如使用分类预测数据样本的年龄。

  4. 监督学习中的支持向量机(SVM)

  • 支持向量机(SVM)是一类按监督学习方式对数据进行二元分类的广义线性分类器,其决策边界是对学习样本求解的最大边距超平面,可以将问题化为一个求解凸二次规划的问题。

在这里插入图片描述

三、优化

1.梯度下降法

  • 求解损失函数的最小值时,可以通过梯度下降法来迭代求解,得到最小化的损失函数和模型参数值。

  • 梯度下降的分类

在这里插入图片描述

2.随机梯度下降法(SGD)

  • 每次从训练集中随机选择一个样本来进行学习,Batch_size = 1
  • 优点:每次只随机选择一个样本更新参数,所以学习是非常快速的,并且可以在线更新;最终收敛于一个较好的局部极值点。
  • 缺点:每次更新可能不会按正确的方向进行,因此会带来优化波动,使得迭代次数增多,即收敛速度变慢。

3. 批量梯度下降法(BGD)

  • 每次使用全部的训练样本来更新模型参数
  • 优点:每次更新都会朝着正确的方向进行,最后能够保证收敛于极值点。
  • 缺点:每次学习时间过长,并且如果训练集很大以至于需要消耗大量的内存,不能进行在线模型参数更新。

4.小批量梯度下降法(MBGD)

  • 综合以上两种方法,在每次更新速度与更新次数中间的一个平衡,其每次更新从训练集中随机选择k个样本进行学习。

5.Momentum动量法

  • 参数更新时在一定程度上保留之前更新的方向,同时又利用当前batch的梯度微调最终的更新方向,简言之就是通过积累之前的动量来加速当前的梯度
  • Nesterov 动量法往标准动量中添加了一个校正因子,具体做法就是在当前的梯度上添加上一时刻的动量。(更好的修正过程)
  • Nesterov动量法中的β

6.优化学习率/步长

  1. Adagrad
  • 对于经常更新的参数,我们已经积累了大量关于它的知识,不希望被单个样本影响太大,希望学习速率慢一些;对于偶尔更新的参数,我们了解的信息太少,希望能从每个偶然出现的样本身上多学一些,即学习速率大一些。(梯度平缓时加大步长)
  1. rmsprop
  • rmsprop算法修改了AdaGrad的梯度平方和累加为指数加权的移动平均,使得其在非凸设定下效果更好。

7.反向传播算法

  1. BP算法的学习过程由正向传播过程和反向传播过程组成。

四、卷积神经网络

1.感受野

  • 就是指输出feature map上某个元素受输入图像上影响的区域。

  • 内核(kernel)是滤波器(filter)的基本元素,多张kernel组成一个filter。

  • 输入通道是3个特征时,则每一个filter中包含3张kernel。

2.下采样(池化)

  • 作用:保留主要特征的同时减少参数和计算量,防止过拟合,提高模型的泛化能力。

  • 最大池化和平均池化:保留像素值最大或取平均。

3.Flattening平整化

  • Flatten层:把多维的输入一维化,常用在从卷积层到全连接层的过渡。

在这里插入图片描述

4.举例

  1. AlexNet使用ReLU激活函数
  2. LetNet5使用sigmod激活函数

在这里插入图片描述

在这里插入图片描述

博客来源:https://blog.csdn.net/wait_ButterFly/article/details/81872706

五、循环神经网络

1. RNN的基本概念

  • 他们都只能单独的取处理一个个的输入,前一个输入和后一个输入是完全没有关系的。但是,某些任务需要能够更好的处理序列的信息,即前面的输入和后面的输入是有关系的。

2.LSTM长短期记忆网络

在这里插入图片描述

3.GRU

  • 为了解决长期记忆和反向传播中的梯度等问题而提出来的

在这里插入图片描述

4.Attention注意力机制

  • Attention机制就是对输入的每个元素考虑不同的权重参数,从而更加关注与输入的元素相似的部分,而抑制其它无用的信息。

5.Transformer模型

  • 相比 RNN 网络结构,其最大的优点是可以并行计算。
  • Self-Attention(自注意力),也称为Intra-Attention(内部注意力),是关联单个序列的不同位置的注意力机制,以便计算序列的交互表示。

相关文章:

神经网络基础知识

神经网络基础知识 文章目录神经网络基础知识一、人工神经网络1.激活函数sigmod函数Tanh函数Leaky Relu函数分析2.过拟合和欠拟合二、学习与感知机1.损失函数与代价函数2. 线性回归和逻辑回归3. 监督学习与无监督学习三、优化1.梯度下降法2.随机梯度下降法(SGD)3. 批量梯度下降法…...

SpringBoot开发规范部分通用模板+idea配置【项目通用-1】

SpringBoot开发规范通用模板 1 分页插件使用 通过MybatisPlus配置分页插件拦截器 Configuration MapperScan("com.xuecheng.content.mapper") //拦截的mapper层 public class MybatisPlusConfig {//定义分页的拦截器Beanpublic MybatisPlusInterceptor getMybatisPl…...

程序的机器级表示part3——算术和逻辑操作

目录 1.加载有效地址 2. 整数运算指令 2.1 INC 和 DEC 2.2 NEG 2.3 ADD、SUB 和 IMUL 3. 布尔指令 3.1 AND 3.2 OR 3.3 XOR 3.4 NOT 4. 移位操作 4.1 算术左移和逻辑左移 4.2 算术右移和逻辑右移 5. 特殊的算术操作 1.加载有效地址 指令效果描述leaq S, DD…...

基于YOLOV5的钢材缺陷检测

数据和源码见文末 1.任务概述 数据集使用的是东北大学收集的一个钢材缺陷检测数据集,需要检测出钢材表面的6种划痕。同时,数据集格式是VOC格式,需要进行转化,上传的源码中的数据集是经过转换格式的版本。 2.数据与标签配置方法 在数据集目录下,train文件夹下有训练集数据…...

Session与Cookie的区别(三)

中场休息 让我们先从比喻回到网络世界里,HTTP 是无状态的,所以每一个 Request 都是不相关的,就像是对小明来说每一位客人都是新的客人一样,他根本不知道谁是谁。 既然你没办法把他们关联,就代表状态这件事情也不存在。…...

七大设计原则之接口隔离原则应用

目录1 接口隔离原则介绍2 接口隔离原则应用1 接口隔离原则介绍 接口隔离原则(Interface Segregation Principle, ISP)是指用多个专门的接口,而不使用单一的总接口,客户端不应该依赖它不需要的接口。这个原则指导我们在设计接口时…...

【Shell1】shell语法,ssh/build/scp/upgrade,环境变量,自动升级bmc

文章目录1.shell语法:shell是用C语言编写的程序,是用户使用Linux的桥梁,硬件>内核(os)>shell>文件系统1.1 变量:readonly定义只读变量,unset删除变量1.2 函数:shell脚本传递的参数中包含空格&…...

JavaScript HTML DOM - 改变CSS

JavaScript 是一种动态语言,它可以动态地修改网页的外观,并且使用HTML DOM(文档对象模型)可以更方便地控制HTML元素的样式。 JavaScript 通过在HTML DOM中更改CSS属性来更改样式,这些CSS属性包括颜色、位置、字体大小…...

mycat连接mysql 简单配置

mycat三个配置文件位于conf下 可通过Notepad操作 首先配置service.xml中的user标签&#xff0c;设置用户名&#xff0c;密码&#xff0c;查询权限&#xff0c;是否只读等 只是设置了root用户&#xff0c;有所有权限 配置schema.xml <?xml version"1.0"?&g…...

Spring常用注解

文章目录一、Bean交给Spring管理1、Component2、Bean3、Controller4、Service5、Repository6、Configuration7、ComponentScan二、作用域1、Lazy(false)Scope三、依赖注入1、Autowired2、Resource3、Qualifier四、读取配置文件值1、Value一、Bean交给Spring管理 1、Component …...

I.MX6ULL内核开发9:kobject-驱动的基石

目录 一、摘要 二、重点 三、驱动结构模型 四、关键函数分析 kobject_create_and_add()函数 kobject_create()函数 kobject_init&#xff08;&#xff09;函数 kobject_init_internal(&#xff09;函数 kobject_add&#xff08;&#xff09;函数 kobject_add_varg&am…...

Docker-harbor私有仓库

一、Harbor概述 1、Harbor的概念 • Harbor是VMware公司开源的企业级Docker Registry项目&#xff0c;其目标是帮助用户迅速搭建一个企业级的Docker Registry服务 • Harbor以 Docker 公司开源的Registry 为基础&#xff0c;提供了图形管理UI、基于角色的访问控制(Role Base…...

Java之动态规划之子序列问题

目录 0.动态规划问题 一.最长递增子序列 1.题目描述 2.问题分析 3.代码实现 二.最长递增子序列 1.题目描述 2.问题分析 3.代码实现 三.最长重复子数组 1.题目描述 2.问题分析 3.代码实现 4.代码的优化(滚动数组) 四.最长公共子序列 1.题目描述 2.问题分析 3.代…...

java ArrayList

目录 一.简单介绍 二.ArrayList的底层结构 2.1ArrayList的底层结构和操作分析 2.ArrayList 底层源码分析 三.ArrayList 方法 四.代码使用方法 一.简单介绍 ArrayList 类是一个可以动态修改的数组&#xff0c;与普通数组的区别就是它是没有固定大小的限制&#xff0c;我们…...

前端——周总结系列四

1 JS变量与常量 概述 变量&#xff1a;在后续编码过程中会被重新赋值&#xff0c;是不断变化的。常量&#xff1a;固定不变的数据&#xff0c;日常生活比如性别男&#xff0c;代码层面是在编码过程中不会变化的固定数据。 命名规则 变量 可以包含数字&#xff0c;字母&…...

Linux重定向符、管道符讲解

目录 重定向 将命令与文件进行互动 输出重定向 输入重定向 管道符 将命令与命令互动起来 重定向 将命令与文件进行互动 重定向分类 一般情况下&#xff0c;Linux命令运行时都会打开一下三个文件 标准输入文件&#xff1a;stdin文件&#xff0c;文件描述符为0&#xff0c;Li…...

【C++】多态

多态一、多态的概念及定义1.1 虚函数1.2 虚函数重写的特殊情况1.3 override 和 final二、抽象类2.1 概念2.2 用处三、多态的原理3.1 虚函数表3.1.1 虚函数与虚表的位置3.2 多态的原理3.3 静态绑定和动态绑定四、单/多继承的虚函数表4.1 单继承的虚函数表4.2 多继承的虚函数表一…...

分布式项目-品牌管理(5、6)

【今日成果】&#xff1a; //使用阿里云OSS服务&#xff1a; //使用v-if如果地址没有就不显示 &#xff0c; 如果地址错误图片就显示不出来&#xff1b; 【快速回顾】&#xff1a; 任何数据的删除都不要使用物理上的删除&#xff0c;应当使用逻辑上的删除&#xff01;&…...

自定义ESLint规则开发与使用

自定义eslint及使用 项目结构 |-eslint-plugin-demo //自定义eslint插件项目 | |-demo-app // 使用自定义eslint的测试应用 |-README.md 项目效果&#xff1a; github项目地址 自定义ESLint环境准备 安装脚手架 执行下列命令来安装开发eslint的脚手架。 yo(y…...

【JavaScript】35_包装类与垃圾回收机制

10、包装类 在JS中&#xff0c;除了直接创建原始值外&#xff0c;也可以创建原始值的对象 通过 new String() 可以创建String类型的对象 通过 new Number() 可以创建Number类型的对象 通过 new Boolean() 可以创建Boolean类型的对象 但是千万不要这么做 包装类&#xff1…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

【JVM】Java虚拟机(二)——垃圾回收

目录 一、如何判断对象可以回收 &#xff08;一&#xff09;引用计数法 &#xff08;二&#xff09;可达性分析算法 二、垃圾回收算法 &#xff08;一&#xff09;标记清除 &#xff08;二&#xff09;标记整理 &#xff08;三&#xff09;复制 &#xff08;四&#xff…...

【网络安全】开源系统getshell漏洞挖掘

审计过程&#xff1a; 在入口文件admin/index.php中&#xff1a; 用户可以通过m,c,a等参数控制加载的文件和方法&#xff0c;在app/system/entrance.php中存在重点代码&#xff1a; 当M_TYPE system并且M_MODULE include时&#xff0c;会设置常量PATH_OWN_FILE为PATH_APP.M_T…...

Unity UGUI Button事件流程

场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...

Vue ③-生命周期 || 脚手架

生命周期 思考&#xff1a;什么时候可以发送初始化渲染请求&#xff1f;&#xff08;越早越好&#xff09; 什么时候可以开始操作dom&#xff1f;&#xff08;至少dom得渲染出来&#xff09; Vue生命周期&#xff1a; 一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个…...

人工智能 - 在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型

在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型。这些平台各有侧重&#xff0c;适用场景差异显著。下面我将从核心功能定位、典型应用场景、真实体验痛点、选型决策关键点进行拆解&#xff0c;并提供具体场景下的推荐方案。 一、核心功能定位速览 平台核心定位技术栈亮…...

土建施工员考试:建筑施工技术重点知识有哪些?

《管理实务》是土建施工员考试中侧重实操应用与管理能力的科目&#xff0c;核心考查施工组织、质量安全、进度成本等现场管理要点。以下是结合考试大纲与高频考点整理的重点内容&#xff0c;附学习方向和应试技巧&#xff1a; 一、施工组织与进度管理 核心目标&#xff1a; 规…...

对象回调初步研究

_OBJECT_TYPE结构分析 在介绍什么是对象回调前&#xff0c;首先要熟悉下结构 以我们上篇线程回调介绍过的导出的PsProcessType 结构为例&#xff0c;用_OBJECT_TYPE这个结构来解析它&#xff0c;0x80处就是今天要介绍的回调链表&#xff0c;但是先不着急&#xff0c;先把目光…...

【51单片机】4. 模块化编程与LCD1602Debug

1. 什么是模块化编程 传统编程会将所有函数放在main.c中&#xff0c;如果使用的模块多&#xff0c;一个文件内会有很多代码&#xff0c;不利于组织和管理 模块化编程则是将各个模块的代码放在不同的.c文件里&#xff0c;在.h文件里提供外部可调用函数声明&#xff0c;其他.c文…...

深入理解 React 样式方案

React 的样式方案较多,在应用开发初期,开发者需要根据项目业务具体情况选择对应样式方案。React 样式方案主要有: 1. 内联样式 2. module css 3. css in js 4. tailwind css 这些方案中,均有各自的优势和缺点。 1. 方案优劣势 1. 内联样式: 简单直观,适合动态样式和…...