深度学习01 神经网络

目录

神经网络

​感知器

感知器的定义

感知器的数学表达

感知器的局限性

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

多层感知器的定义

多层感知器的结构

多层感知器的优势

偏置

偏置的作用

偏置的数学表达

神经网络的构造

​神经网络的基本组件

前向传播(Forward Propagation)

损失函数

损失函数的作用

常见的损失函数

0-1损失函数

​均方差损失

平均绝对差损失

​交叉熵损失

​合页损失

总结

正则化惩罚

反向传播(BP神经网络)

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

神经网络

神经网络:是由大量的节点(或称“神经元”)和之间相互的联接构成。 每个节点代表一种特定的输出函数,称为激励函数、激活函数(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不适合概率输出,对噪声敏感

正则化惩罚

正则化惩罚用于避免模型过拟合到训练数据,从而提高模型的泛化能力。正则化惩罚通过在目标函数中引入一个正则化项,以限制模型参数的大小或复杂度。

1)正则化惩罚的功能
        主要用于惩罚权重参数w,一般有L1和L2正则化。

2)L1正则化
        L1正则化通过在目标函数中加入参数的L1范数(绝对值之和),使得模型更倾向于产生稀疏的权重矩阵,即将一部分参数置为0,从而减少模型的复杂度。这可以帮助筛选出对模型影响较大的特征,提高模型的鲁棒性和可解释性。

3)L2正则化        
        L2正则化通过在目标函数中加入参数的L2范数(平方和的开方),使得模型更倾向于产生较小的权重值。这可以有效地控制模型参数的大小,避免出现过大的参数值,从而减少模型对训练数据的过拟合。

反向传播(BP神经网络)

反向传播的原理

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

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

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

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

相关文章

电脑右下角小喇叭没反应怎么回事,快速解决方案

当电脑右下角的小喇叭(音量图标)没有反应时,可以尝试以下快速解决方案: 一、基础检查与操作 检查键盘音量键: 按下键盘上的音量增加或减少键,或尝试Fn音量键(部分笔记本需组合键)&a…

P3654 First Step (ファーストステップ)(贪心算法)

#include<bits/stdc.h> using namespace std;int main() {int r,c,k;cin>>r>>c>>k;char a[105][105];int ans0;for(int i0;i<r;i){for(int j0;j<c;j){cin>>a[i][j];}}for(int i0;i<r;i){int cnt0; // 用来记录连续空地的数量for(int j…

ASP.NET Core对JWT的封装

目录 JWT封装 [Authorize]的注意事项 JWT封装 NuGet 库 |Microsoft.AspNetCore.Authentication.JwtBearer 9.0.1https://www.nuget.org/packages/Microsoft.AspNetCore.Authentication.JwtBearerhttps://www.nuget.org/packages/Microsoft.AspNetCore.Authentication.JwtBea…

【热点文章-定时计算】分布式任务调度框架xxl-job

分布式任务调度 在分布式架构下&#xff0c;一个服务会部署多个实例来运行业务&#xff1b;如果在这种分布式系统环境下运行任务调度&#xff0c;称为分布式任务调度。 分布式任务调度框架&#xff1a;xxl-job xxl-job环境搭建 本机 仓库源码&#xff1a;xxl-job 初始化…

嵌入式面试题 C/C++常见面试题整理_7

一.什么函数不能声明为虚函数? 常见的不能声明为虚函数的有:普通函数(非成员函数):静态成员函数;内联成员函数;构造函数;友元函数。 1.为什么C不支持普通函数为虚函数?普通函数(非成员函数)只能被overload&#xff0c;不能被override&#xff0c;声明为虚函数也没有什么意思…

【MySQL】深入了解索引背后的内部结构

目录 索引的认识&#xff1a; 作用&#xff1a; 索引的使用&#xff1a; 索引底层的数据结构&#xff1a; 哈希表 AVL树 红黑树 B树&#xff1a; B树&#xff1a; B树搜索&#xff1a; 索引的认识&#xff1a; 索引是数据库中的一个数据结构&#xff0c;用于加速查询…

最新版Node.js下载安装指定版本图文版教程(非常详细)

文字目录 1、什么是Node.js&#xff1f;2、什么是 npm&#xff1f;3、下载Node.js安装包4、详细安装步骤 1、什么是Node.js&#xff1f; Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境&#xff0c;它使 JavaScript 可以在服务器端运行。在 Node.js 出现之前&#…

Spring Boot Web 入门

目录 Spring Boot Web 是 Spring Boot 框架的一个重要模块&#xff0c;它简化了基于 Spring 的 Web 应用程序的开发过程。以下是一个 Spring Boot Web 项目的入门指南&#xff0c;涵盖了项目创建、代码编写、运行等关键步骤。 1. 项目创建 使用 Spring Initializr 使用 IDE …

深度解读 Docker Swarm

一、引言 随着业务规模的不断扩大和应用复杂度的增加,容器集群管理的需求应运而生。如何有效地管理和调度大量的容器,确保应用的高可用性、弹性伸缩和资源的合理分配,成为了亟待解决的问题。Docker Swarm 作为 Docker 官方推出的容器集群管理工具,正是在这样的背景下崭露头…

eggnog后kegg结果提取和注释

首先进入KEGG BRITE: KEGG Orthology (KO) 下载json文件 用python处理一下 import json import re import osos.chdir("C:/Users/fordata/Downloads/") with open("ko00001.json","r") as f:fj f.read()kojson json.loads(fj)with open(&qu…

qt6.8安装mysql8.0驱动

qt6.8安装mysql8.0驱动 qt6.8本身是不带mysql驱动。想要在qt里面使用mysql,还是比较麻烦的。需要自己编译驱动 首先下载qt源码&#xff0c;链接Index of /archive/qt/6.8/6.8.1/single 下载mysql对于驱动文件&#xff0c;链接是MySQL :: Download MySQL Connector/C (Archiv…

学习threejs,使用Lensflare模拟镜头眩光

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️THREE.Lensflare 二、&…

Cortex-M异常处理深度解析:从HardFault到调试实战

文章目录 引言一、Cortex-M异常类型全景图二、关键寄存器:故障分析的“密码本”1. HardFault状态寄存器(HFSR, 0xE000ED2C)2. 可配置故障状态寄存器(CFSR, 0xE000ED28)3. 地址寄存器(BFAR/MMFAR)三、调试实战:从寄存器到代码定位四、自定义HardFault处理程序五、Keil与…

【大模型】DeepSeek与chatGPT的区别以及自身的优势

目录 一、前言二、核心技术对比2.1 模型架构设计2.1.1 ChatGPT的Transformer架构2.1.2 DeepSeek的混合架构 2.2 训练数据体系2.2.1 ChatGPT的数据特征2.2.2 DeepSeek的数据策略 三、应用场景对比3.1 通用场景表现3.1.1 ChatGPT的强项领域3.2.2 DeepSeek的专项突破 3.3 响应效率…

RabbitMQ 从入门到精通:从工作模式到集群部署实战(二)

接上篇&#xff1a;《RabbitMQ 从入门到精通&#xff1a;从工作模式到集群部署实战&#xff08;一&#xff09;》 链接 文章目录 4.安装RabbitMQ Messaging Topology Operator 裸金属环境部署RabbitMQ部署单实例部署集群 4.安装RabbitMQ Messaging Topology Operator 使用 cer…

低至3折,百度智能云千帆宣布全面支持DeepSeek-R1/V3调用

DeepSeek-R1和 DeepSeek-V3模型已在百度智能云千帆平台上架 。 出品|产业家 新年伊始&#xff0c;百度智能云又传来新动作 。 2月3日百度智能云宣布&#xff0c; DeepSeek-R1和 DeepSeek-V3模型已在百度智能云千帆平台上架&#xff0c;同步推出超低价格方案&#xff0c;并…

STM32G0B1 ADC DMA normal

目标 ADC 5个通道&#xff0c;希望每1秒采集一遍&#xff1b; CUBEMX 配置 添加代码 #define ADC1_CHANNEL_CNT 5 //采样通道数 #define ADC1_CHANNEL_FRE 3 //单个通道采样次数&#xff0c;用来取平均值 uint16_t adc1_val_buf[ADC1_CHANNEL_CNT*ADC1_CHANNEL_FRE]; //传递…

【翻译+论文阅读】DeepSeek-R1评测:粉碎GPT-4和Claude 3.5的开源AI革命

目录 一、DeepSeek-R1 势不可挡二、DeepSeek-R1 卓越之处三、DeepSeek-R1 创新设计四、DeepSeek-R1 进化之路1. 强化学习RL代替监督微调学习SFL2. Aha Moment “啊哈”时刻3. 蒸馏版本仅采用SFT4. 未来研究计划 部分内容有拓展&#xff0c;部分内容有删除&#xff0c;与原文会有…

OpenEuler学习笔记(二十一):搭建企业AI客户服务例子

在 OpenEuler 上搭建企业 AI 客服可以按照以下步骤进行&#xff0c;以下将以使用开源的 Rasa 框架作为 AI 客服核心&#xff0c;搭配前端界面展示为例&#xff1a; 1. 系统准备 1.1 安装 OpenEuler 确保你已经安装好了 OpenEuler 操作系统&#xff0c;可以从官方网站下载镜像…

【大模型】Ubuntu下安装ollama,DeepSseek-R1:32b的本地部署和运行

1 ollama 的安装与设置 ollama官网链接&#xff1a;https://ollama.com/ 在左上角的【Models】中展示了ollama支持的模型在正中间的【Download】中课可以下载支持平台中的安装包。   其安装和模型路径配置操作流程如下&#xff1a; ollama的安装 这里选择命令安装curl -fsSL …