深度学习开篇

首先我们要知道深度学习和机器学习的关系——深度学习(DL, Deep Learning)是机器学习(ML, Machine Learning)领域中一个新的研究方向。

深度学习简介

        我理解的深度学习就通过多层感知器,对数据进行训练,可以达到非线性变换,如何可以提取非线性的特征,深度学习里面这个多层结构叫做神经网络,我们先了解下人的神经网络。

就是有神经元,如何有突触进行连接,如何就可以传递信息了,那么我们取这个名字肯定和这个原理差不多的。

        

原理介绍

首先我们先以一层的来进行分析,就是把所有特征加上权重然后相加,最后进行非线性变换,然后再传给下一个神经元,这样我们就完成了第一次非线性变换了。

这里我们引入多个神经元,如下

这样我们就对一个数据进行了多次非线性的变换了,所以我们得到我们想要的图像了。

数学计算

像上面这样的两层神经网络,叫做感知器,因为只对数据做了一次非线性变换,所以只能进行线性的划分。

神经网络的本质

通过参数与激活函数来拟合特征与目标之间的真实函数关系。但在一个神经网络的程序中,不需要神经元和线,本质上是矩阵的运算,实现一个神经网络最需要的是线性代数库。

偏置项

其实神经网络中,输入节点都是有一个偏置项的,只是我们不会画出来,但我们要知道

中间层的确定

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

损失函数

常用的损失函数:


        0-1损失函数、均方差损失、平均绝对差损失、交叉熵损失、合页损失

神经网络既可以进行分类又可以进行回归预测,那么我们在进行分类和回归该怎么选这损失函数呢?

回归预测

回归问题是用均方差损失函数来进行衡量的,因为这个可以更好的衡量预测值和真实值之间的损失值

分类预测

分类预测是要用交叉熵损失函数

如上,我们经过多层感知器得到三个值,如果这个图片是0号图片,我们就关注第一个值,可以忽略其他值,对于这个值,我们想的肯定是越大越好,然后其他值肯定是越小越好,所以我们就先指数扩大这样就可以扩大差距了那么就更明显了,归一化,进行-log运算,至于为什么要进行-log运算,具体可以看-log的图像,就是对于值越大的映射出的就越小,如果为1那么映射的就是0,这也就符合我们的预期了,我们可以把这个看成损失值。

深度学习框架介绍

我先简述一下大致框架

输入层导入数据,先随机给一组w权值和b偏置,然后一层一层进行计算计算到最后一层输出层,前面这段叫做前向传播,对输出层进行均方差损失(回归)或者交叉熵损失(分类)计算,然后进行梯度下降,然后从后向前进行w权重的调整,这些叫做反向传播。

详细版

1. 前向传播(Forward Propagation)​

1.1 数据输入与初始化

神经网络的计算从输入层(Input Layer)​开始,输入数据(如图像像素、文本特征等)被传入网络。在训练之前,我们需要为每一层的权重(w)​偏置(b)​随机初始化一组值。这些初始值通常是较小的随机数​(如高斯分布或均匀分布),目的是打破对称性,避免所有神经元学习相同的特征。

1.2 逐层计算(线性变换 + 激活函数)​

数据从输入层开始,​逐层向前计算,直到输出层(Output Layer)。每一层的计算分为两个步骤:

​(1) 线性变换(Linear Transformation)​

对于第 l 层的某个神经元,其输入是上一层的输出 a^{[l-1]},计算方式如下:

                ​​​​​​​        

  • w^{[l]}:当前层的权重矩阵(形状取决于输入和神经元的数量)。
  • b^{[l]}:当前层的偏置向量(通常每个神经元一个偏置)。
  • z^{[l]}:线性变换后的结果(未激活的原始输出)。
​(2) 激活函数(Activation Function)​

线性变换后的 z^{[l]} 通常不能直接用于计算(因为线性组合无法学习复杂模式),因此需要通过非线性激活函数进行转换:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        

  • 常见的激活函数:
    • ReLU(Rectified Linear Unit)​​:a = max(0, z)(适用于隐藏层,计算高效)。
    • Sigmoid​:a = 1 / (1 + e^{-z})(适用于二分类输出层)。
    • Softmax​:a_i = e^{z_i} / \sum_j e^{z_j}(适用于多分类输出层)。

这样,数据经过线性变换 + 激活函数后,逐层传递,最终到达输出层,得到模型的预测结果 y_pred


2. 损失计算(Loss Calculation)​

2.1 回归任务:均方差损失(MSE)​

如果任务是回归(预测连续值,如房价、温度)​,我们使用均方误差(Mean Squared Error, MSE)​计算预测值 y_pred 和真实值 y_true 的差异:

        ​​​​​​​        ​​​​​​​        

  • 特点​:对异常值敏感(因为平方放大了大误差的影响)。

2.2 分类任务:交叉熵损失(Cross-Entropy)​

如果任务是分类(如图像识别、文本分类)​,我们使用交叉熵损失(Cross-Entropy Loss)​衡量预测概率分布与真实分布的差异:

  • 二分类(Sigmoid 输出)​​:
  • 多分类(Softmax 输出)​​:

       (C 是类别数,y_{true}^{(i,c)} 是真实标签的 one-hot 编码)

为什么分类用交叉熵?​

  • 交叉熵对错误预测惩罚更大,能更快引导模型调整参数。
  • 如果用 MSE 训练分类任务,梯度会变得很小(接近 0),导致训练变慢(称为 ​​"梯度消失"​)。

3. 反向传播(Backward Propagation)​

前向传播计算了预测值,损失函数衡量了预测与真实值的差距,接下来就是调整参数(w 和 b)​,使得损失最小化。这个过程就是反向传播,其核心是 ​梯度下降(Gradient Descent)​

3.1 梯度下降(Gradient Descent)​

梯度下降是一种优化算法,其目标是找到损失函数的最小值。基本思想是:

沿着损失函数的负梯度方向,逐步调整参数,使损失减小。​

数学表达式:

  • α(学习率,Learning Rate):控制每次更新的步长(太大可能震荡,太小收敛慢)。
  • ∂L/∂w 和 ∂L/∂b:损失函数对权重和偏置的梯度​(表示参数变化对损失的影响)。

3.2 反向传播计算梯度

梯度下降需要计算 ​损失对每个参数的偏导数,但直接计算很困难。反向传播利用链式法则(Chain Rule)​,​从输出层向输入层逐层计算梯度​:

  1. 计算输出层的梯度​(如交叉熵 + Softmax 的梯度计算较简单)。
  2. 逐层回传梯度​(利用链式法则计算 ∂L/∂w 和 ∂L/∂b)。
  3. 更新参数​(w := w - α * ∂L/∂wb := b - α * ∂L/∂b)。

关键点​:

  • 反向传播的核心是 ​链式法则,确保梯度能正确回传。
  • 梯度下降的 ​学习率(α)​​ 非常重要,影响训练速度和稳定性。

4. 完整流程总结(流程图)​

开始│↓
【1. 初始化】随机初始化权重 w 和偏置 b│↓
【2. 前向传播】│   ├── 输入数据 → 输入层│   ├── 逐层计算(线性变换 z = w·a + b + 激活函数 a = σ(z))│   └── 输出层 → 得到预测值 y_pred│↓
【3. 损失计算】│   ├── 回归任务 → 均方误差(MSE)│   └── 分类任务 → 交叉熵损失(Cross-Entropy)│↓
【4. 反向传播】│   ├── 计算损失对 w 和 b 的梯度(链式法则)│   ├── 使用梯度下降更新参数(w := w - α * ∂L/∂w)│   └── 逐层回传梯度(从输出层 → 输入层)│↓
【5. 迭代训练】重复前向传播 → 损失计算 → 反向传播,直到损失足够小│↓
结束(模型训练完成)

5. 总结

  1. 前向传播​:数据从输入层逐层计算,经过线性变换和激活函数,最终得到预测值。
  2. 损失计算​:用 MSE(回归)或交叉熵(分类)衡量预测与真实值的差距。
  3. 反向传播​:利用链式法则计算梯度,并通过梯度下降调整 w 和 b,使损失最小化。
  4. 迭代优化​:重复上述过程,直到模型收敛(损失足够小)。

神经网络的核心就是 ​​"前向计算预测 → 计算误差 → 反向调整参数"​​ 的循环过程,而梯度下降则是优化参数的关键工具。理解这一框架,是掌握深度学习的基础! 🚀

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

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

相关文章

Typescript入门-interface讲解

对象成员语法形式1)对象属性2)对象的属性索引3)对象的方法4)函数5)构造函数interface 的继承interface 继承 interfaceinterface 继承 typeinterface 继承 class接口合并interface 与 type 的异同interface 是对象的模…

数据结构青铜到王者第五话---LinkedList与链表(2)

目录 一、常见的链表题目练习(续) 1、链表的回文结构。 2、输入两个链表,找出它们的第一个公共结点。 3、给定一个链表,判断链表中是否有环。 4、给定一个链表,返回链表开始入环的第一个节点。 如果链表无环&#…

Kafa面试经典题--Kafka为什么吞吐量大,速度快

这是一个非常核心的面试题和技术问题。Kafka 的高吞吐量和速度并非来自某一项“银弹”技术,而是其架构设计中一系列精巧决策共同作用的结果。 一、核心思想:最大化利用底层硬件资源 Kafka 速度快的根本原因是,它的设计哲学是 “尽可能地避免不必要的开销,并将硬件(尤其是…

Stream API 新玩法:从 teeing()到 mapMulti()

1. 背景:Stream API 的演进 自 Java 8 引入 Stream API 以来,Java 的集合处理方式发生了质变。开发者可以用声明式风格实现复杂的数据转换与聚合。然而,随着应用场景多样化,社区逐渐发现一些“尴尬空缺”: 聚合时&…

STM32G4 SVPWM VF开环强拖电机

目录一、STM32G4 SVPWM VF开环强拖电机1 SVPWM1.1 SVPWM技术简介1.2 基于零序分量注入的SVPWM算法的实现2. VF开环强拖电机3. VF启动电机实验现象附学习参考网址欢迎大家有问题评论交流 (* ^ ω ^)一、STM32G4 SVPWM VF开环强拖电机 1 SVPWM 1.1 SVPWM技术简介 SVPWM控制策略…

产品运营必备职场通用能力及提升攻略,一文说明白

在互联网行业蓬勃发展的当下,产品运营岗位成为了连接产品、用户与商业目标的关键纽带。从用户增长到活动策划,从数据分析到跨部门协作,产品运营人员需具备多元化技能,才能在激烈竞争中崭露头角。随着企业对精细化运营与数据驱动决…

面试 总结(1)

面试总结 一、spring相关 1. Spring Security角色管理实现 在智慧种植虫害识别系统中,我实现了农户端和企业端的双角色权限控制,这一部分是这样实现的: MySQL 表时设计区分农户和企业的角色表与权限表。登录时,JWT 令牌包含用户 I…

串与数组:从字符处理到多维存储的数据结构详解

串(字符串)和数组是数据结构中的两个重要分支,它们在程序设计中承担着不同但互补的角色。串专门处理字符数据,而数组则提供了多维数据的存储和访问机制。本文将深入探讨这两种数据结构的理论基础、实现方法和核心算法。 文章目录1…

面试之JVM

类的生命周期 加载、链接、初始化(是类的初始化)、使用(对象的初始化)、卸载(GC) 链接:验证、准备、解析 类加载 JDK9的升级点:扩展类加载器改成了平台类加载器。 java中很多的包分…

webpack开发模式与生产模式(webpack --mode=development/production“, )

webpack开发模式与生产模式的区别webpack的development(开发模式)和production(生产模式)是两种常见的构建环境配置,主要区别体现在构建速度、代码优化和调试支持等方面。开发模式 (development)目标:注重开…

当自然语言遇上数据库:Text2Sql.Net的MCP革命如何重新定义开发者与数据的交互方式

想象一下,在IDE中对AI助手说"帮我找出本月销售额最高的前10个产品",然后它不仅能理解你的意图,还能直接生成并执行SQL查询,返回准确结果——这不是科幻,而是Text2Sql.Net的MCP集成带来的现实。 &#x1f3af…

2025流程图模板和工具深度评测:AI如何提升绘图效率80%?

引言:流程图模板的价值革命 在数字化办公的浪潮中,流程图已从单纯的"业务说明工具"进化为跨部门协作的"视觉语言"。据智研咨询2025年报告显示,规范使用流程图模板可使团队沟通效率提升40%,错误率降低58%。无…

WebSocket实时通信系统——js技能提升

2. WebSocket实时通信系统 功能概述 实现完整的WebSocket通信系统,支持实时消息推送、连接管理、心跳检测和自动重连。 技术难点 WebSocket连接生命周期管理消息序列化和反序列化心跳机制和连接保活错误处理和重连策略多组件状态同步 实现思路 2.1 WebSocket管理器 …

Spring AI 入门指南:三步将AI集成到Spring Boot应用

无需深入AI底层实现,Java开发者也能快速构建智能应用本文将介绍如何使用 Spring AI 在 Spring Boot 项目中快速集成 AI 能力。通过三步操作——添加依赖、配置 API 凭证和编写调用代码,Java 开发者可以轻松构建 AI 应用。一、Spring AI 简介Spring AI 是…

OOM问题排查思路及解决方案

OOM问题原因: 根本原因是创建的对象数量超过JVM堆内存容量,且这些对象无法被GC回收场景: 1.本地缓存了用户态,用户量急剧上升导致内存溢出,如使用HashMap本地缓存10万用户数据,每 个用户对象约2KB&#xf…

梨花教育暖心鹏城:深圳市养老护理院里“时光绽放”,用声音点亮银发精神之光

2025年8月24日,在深圳这座充满活力与梦想的城市,一场温暖人心的公益活动在深圳市养老护理院温情上演。梨花教育策划并组织了“梨花・时光绽放”公益活动,旨在通过声音的魅力,为市养老护理院的老人们送去关怀与欢乐,丰富…

力扣100+补充大完结

力扣100分类一、Java基础代码模板1. 基础输入输出模板import java.util.Scanner;class Solution {public static int linkedListOperation() {// 链表操作实现return 0;}public static void main(String[] args) {Scanner scanner new Scanner(System.in);int n scanner.next…

SSM从入门到实战:3.3 SpringMVC数据绑定与验证

👋 大家好,我是 阿问学长!专注于分享优质开源项目解析、毕业设计项目指导支持、幼小初高的教辅资料推荐等,欢迎关注交流!🚀 📖 本文概述 本文是SSM框架系列SpringMVC基础篇的第三篇&#xff0…

ctfshow_萌新web16-web20-----文件包含日志注入

_萌新web16解开md5?c36d_萌新web17-----文件包含禁用了php关键字&#xff0c;这个题禁了远程文件包含,进行日志注入发现日志中有user-agent信息&#xff0c;因此我们可以在user-agent中写入木马抓包burpsuitUser-agent:<?php eval($_POST[cmd])?>抓包然后连接蚁剑_萌新…

Flink的CheckPoint与SavePoint

Flink的Checkpoint&#xff08;检查点&#xff09;和Savepoint&#xff08;保存点&#xff09;是两种不同的状态快照机制&#xff0c;主要区别如下&#xff1a;1. ‌Checkpoint‌‌核心功能‌&#xff1a;周期性触发的容错机制&#xff0c;用于故障恢复时保证状态一致性57。‌触…