深度学习01 神经网络

深度学习是机器学习领域中的一个新的研究方向。所以在学习深度学习之前我们需要了解一下神经网络。

神经网络

神经网络:是由大量的节点(或称“神经元”)和之间相互的联接构成。 每个节点代表一种特定的输出函数,称为激励函数、激活函数(activation function)。 每两个节点间的联接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。

神经网络的本质

通过参数与激活函数来拟合特征与目标之间的真实函数关系。本质上是矩阵的运算。

神经网络是一种模拟人脑神经元工作方式的数学模型,用于解决各种机器学习问题。它由多个层(layers)组成,每一层包含多个神经元(neurons),这些神经元通过权重(weights)和偏置(biases)连接在一起。

感知器

感知器的定义

由两层神经元组成的神经网络--“感知器”(Perceptron),感知器只能线性划分数据。

感知器的数学表达
感知器的局限性

感知器只能解决线性可分的问题,无法解决非线性问题(如异或问题)。

多层感知器(MLP, Multi-Layer Perceptron

多层感知器的定义

多层感知器是由多个感知器组成的神经网络,包含输入层、隐藏层和输出层。通过增加隐藏层,MLP能够解决非线性问题。

tip:增加一个中间层,即隐含层,这也是神经网络可以做非线性分类的关键。

多层感知器的结构
  • 输入层:接收输入数据。

  • 隐藏层:对输入数据进行非线性变换。

  • 输出层:输出最终结果。

多层感知器的优势

通过增加隐藏层和神经元数量,MLP可以拟合任意复杂的函数。

偏置

在神经网络中需要默认增加偏置神经元(节点),这些节点是默认存在的。 它本质上是一个只含有存储功能,且存储值永远为1的单元。在神经网络的每个层次中,除了输出层以外,都会含有这样一个偏置单元。

tips:

  1. 偏置节点没有输入。

  1. 一般情况下,不会明确画出偏置节点。

偏置的作用

偏置是神经元中的一个参数,用于调整神经元的激活阈值。它允许模型在输入为0时仍然能够输出非零值。

偏置的数学表达

在加权求和公式中,偏置 b是一个常数项:

神经网络的构造

神经网络的基本组件
  • 神经元:计算加权和并通过激活函数输出。

  • 层(Layer):由多个神经元组成,分为输入层、隐藏层和输出层。

    中间层如何确定?

    输入层的节点数:与特征的维度匹配 输出层的节点数:与目标的维度匹配。 中间层的节点数:目前业界没有完善的理论来指导这个决策。一般是根据经验来设置。较好的方法就是预先设定几个可选值,通过切换这几个值来看整个模型的预测效果,选择效果最好的值作为最终选择。

  • 连接(Connection):神经元之间通过权重连接。

tips: 1、设计一个神经网络时,输入层与输出层的节点数往往是固定的,中间层则可以自由指定; 2、神经网络结构图中的拓扑与箭头代表着预测过程时数据的流向,跟训练时的数据流有一定的区别; 3、结构图里的关键不是圆圈(代表“神经元”),而是连接线(代表“神经元”之间的连接)。每个连接线对应一个不同的权重(其值称为权值),这是需要训练得到的。

前向传播(Forward Propagation)

输入数据通过每一层的神经元,最终得到输出结果的过程。

损失函数

损失函数的作用

损失函数用于衡量模型预测值与真实值之间的差距。通过最小化损失函数,模型能够逐步优化。

常见的损失函数
0-1损失函数

0-1损失函数是最简单的分类损失函数,用于衡量分类任务中预测值与真实值是否一致。

均方差损失

均方差损失是回归任务中最常用的损失函数,衡量预测值与真实值之间的平方差。

平均绝对差损失

平均绝对差损失是回归任务中另一种常用的损失函数,衡量预测值与真实值之间的绝对差。

交叉熵损失

交叉熵损失是分类任务中最常用的损失函数,衡量预测概率分布与真实概率分布之间的差异。

神经网络多分类情况下,交叉熵损失函数运算过程如下:

合页损失

合页损失是支持向量机(SVM)中常用的损失函数,用于最大化分类间隔。

总结
损失函数应用场景优点缺点
0-1损失函数分类任务简单直观不可导,无法优化
均方差损失回归任务可导,易于优化对异常值敏感
平均绝对差损失回归任务对异常值不敏感在零点不可导,优化效率低
交叉熵损失分类任务适合概率输出,优化效果好对预测概率准确性要求高
合页损失二分类任务对分类间隔敏感,适合SVM不适合概率输出,对噪声敏感

梯度下降

反向传播(BP神经网络)

反向传播的原理

BP(Back-propagation,反向传播)前向传播得到误差,反向传播调整误差,再前向传播,再反向传播一轮一轮得到最优解的。

反向传播是一种高效计算梯度的方法,通过链式法则从输出层到输入层逐层计算损失函数对每个参数的梯度。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于JUnit4和JUnit5配合例子讲解JUnit的两种运行方式

1 引言 最近读的书有老有新,在读的过程中都完全完成了相应例子的构建和运行。在读《Spring in Action》1第4版时,其第37页的例子(以下称例子1)基于JUnit 4,并需要spring-test.jar;而在读《JUnit in Action…

【提示词工程】探索大语言模型的参数设置:优化提示词交互的技巧

在与大语言模型(Large Language Model, LLM)进行交互时,提示词的设计和参数设置直接影响生成内容的质量和效果。无论是通过 API 调用还是直接使用模型,掌握模型的参数配置方法都至关重要。本文将为您详细解析常见的参数设置及其应用场景,帮助您更高效地利用大语言模型。 …

使用Python创建、读取和修改Word文档

自动化文档处理是提升工作效率的关键路径之一,而Python凭借其简洁语法和丰富的生态工具链,是实现文档自动化处理的理想工具。通过编程手段批量生成结构规范的合同模板、动态注入数据分析结果生成可视化报告,或是快速提取海量文档中的关键信息…

Android Studio 2024.2.2.13版本安装配置详细教程

Android Studio 是由 Google 官方开发和维护的集成开发环境(IDE),专为 Android 应用开发设计。它是基于 JetBrains 的 IntelliJ IDEA 平台构建的,集成了丰富的工具和功能,帮助开发者高效构建、调试、测试和发布 Androi…

Qt实现简易音乐播放器

使用Qt6实现简易音乐播放器,效果如下: github: Gabriel-gxb/MusicPlayer: qt6实现简易音乐播放器 一、整体架构 基于Qt框架构建 整个音乐播放器程序以Qt框架为基础进行开发。Qt提供了丰富的类库和工具,方便开发者构建图形用户界…

GPT-4使用次数有上限吗?一文了解使用规则

GPT-4的推出,让越来越多的用户开始体验其卓越的功能。无论是用于日常需求还是专业内容制作,GPT-4的应用范围广泛,获得了用户的广泛赞誉。但是,在具体使用过程中,不少用户发现自己似乎触碰到了GPT-4的使用上限&#xff…

水波效果

水波效果指在计算机图形学中模拟水面波纹的视觉效果,通常用于游戏、动画或者其他虚拟场景中。主要用于体现水体的动态感,比如水的波动、反射、折射、透明等,可以让人感觉像真实的水一样流动闪耀。 核心特点就是: 动态波纹光学特…

Redis | 十大数据类型

文章目录 十大数据类型概述key操作命令数据类型命令及落地运用redis字符串(String)redis列表(List)redis哈希表(Hash)redis集合(Set)redis有序集合(ZSet / SortedSet&…

Linux之安装docker

一、检查版本和内核是否合格 Docker支持64位版本的CentOS 7和CentOS 8及更高版本,它要求Linux内核版本不低于3.10。 检查版本 cat /etc/redhat-release检查内核 uname -r二、Docker的安装 1、自动安装 Docker官方和国内daocloud都提供了一键安装的脚本&#x…

【WebLogic】Oracle发布WebLogic 14c最新版本-14.1.2.0

根据Oracle官方产品经理的博客,Oracle于2024年12月20日正式对外发布了WebLogic 14c的第二个正式版本,版本号为 14.1.2.0.0 ,目前官方已开放客户端下载。该版本除继续支持 Jakarta EE 8 版本外,还增加了对 Java SE 17(J…

feign 远程调用详解

在平常的开发工作中,我们经常需要跟其他系统交互,比如调用用户系统的用户信息接口、调用支付系统的支付接口等。那么,我们应该通过什么方式进行系统之间的交互呢?今天,简单来总结下 feign 的用法。 1:引入依…

解决 npm : 无法加载文件 D:\nodeJS\node_global\npm.ps1,因为在此系统上禁止运行脚本。

问题 在我将nodeJS从18更新到22之后,我发现在黑窗口运行npm run dev,可以成功启动项目,但是在Cursor的终端中却报如下错误: PS D:\DESKTOP\项目\vue-ems-admain> npm run dev npm : 无法加载文件 D:\Users\Download\nodeJS\no…

快速对QWen2.5大模型进行微调

先看看训练结果: 目录 前言什么是LLaMA-Factory?安装LLaMA-Factory准备数据集配置微调参数运行微调脚本评估和保存模型使用微调后的模型可视化微调大模型总结 前言 在当今人工智能领域,大模型(如LLaMA、GPT等)的微调…

深入理解linux中的文件(下)

目录 一、语言级缓冲区和内核级缓冲区 二、C语音中的FILE* fp fopen(“./file.txt”,"w"): 四、理解磁盘结构: 物理结构 逻辑结构 五、未被打开的文件: 六、更加深入理解inode编号怎么找到文件: 七、对路径结构进行…

自动化测试、压力测试、持续集成

因为项目的原因,前段时间研究并使用了 SoapUI 测试工具进行自测开发的 api。下面将研究的成果展示给大家,希望对需要的人有所帮助。 SoapUI 是什么? SoapUI 是一个开源测试工具,通过 soap/http 来检查、调用、实现 Web Service 的…

BUU28 [GXYCTF2019]BabySQli1

常规万能密码,发现登不上去 过滤掉了or,,当尝试了n种方法以后,最关键的是发现()居然也被过滤了 哈哈,那玩个淡, 再搜wp!! 当输入admin的时候,提示密码错误&#xff0…

Zenoh在工业物联网场景中的性能研究

论文标题 中文标题:Zenoh在工业物联网场景中的性能研究 英文标题:On the performance of Zenoh in Industrial IoT Scenarios 作者信息 Miguel Barn, Luis Diez, Mihail Zverev, Jos R. Jurez, Ramn Agero Miguel Barn:Ikerlan技术研究中心…

一次奇怪的空指针问题分析:事务、死锁与隐式回滚

最近我们在排查一个诡异的 空指针异常,整个分析过程可以说是跌宕起伏,最终的结论也颇具隐蔽性。今天就把这个问题分享出来,希望对大家有所帮助。 问题现象 在系统中,我们有 单据 B,它通过一个 关联 ID 字段与 上级单…

掌握API和控制点(从Java到JNI接口)_37 JNI开发与NDK 05

*.so的入口函数&#xff1a;JNI_OnLoad() 执行System.loadLibrary()函数时&#xff0c; VM会反向调用*.so里的JNI_OnLoad()函数。用途有二&#xff1a; 1. VM询问此*.so使用的JNI版本编号。 2. VM要求*.so做一些初期设定工作(Initialization)&#xff0c;例如登记<函…

MySQL数据库 (三)- 函数/约束/多表查询/事务

目录 一 函数 (一 字符串函数 (二 数值函数 (三 日期函数 (四 流程函数 二 约束 (一 概述 (二 约束演示 (三 外键约束 三 多表查询 (一 多表关系 1 一对多&#xff08;多对一&#xff09; 2 多对多 3 一对一 (二 多表查询概述 (三 内连接 1 查询语法 2 代码实…