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

《深度学习》—— 神经网络模型中的损失函数及正则化惩罚和梯度下降

文章目录

  • 前言
  • 一、损失函数
  • 二、正则化惩罚
  • 三、梯度下降

前言

  • 在神经网络中,损失函数正则化惩罚梯度下降是三个关键的概念,它们共同作用于网络的训练过程,以提升网络的性能和泛化能力。
  • 神经网络模型结构如下图所示:
    在这里插入图片描述
  • 在构建好一个神经网络模型后,为了让模型得出的结果更加的准确,那么必须对模进行训练,找到最接近真实结果的模型
  • 定义损失函数用来判断模型预测的结果和真实值的误差,在对损失函数添加正则化惩罚项,提高对输入数据的拟合效果,达到好的泛化能力
  • 为了达到最小的误差值,需要运用梯度下降的方法来找到模型中最优的权重参数

一、损失函数

  • 损失函数是用来评估神经网络预测值与实际值之间差异的函数。通过最小化损失函数的值,网络可以学习到如何更好地进行预测。不同类型的任务需要不同类型的损失函数,常见的损失函数包括:
    • 交叉熵损失函数
    • 均方差损失函数
    • 0-1损失函数
    • 平均绝对差损失函数
    • 合页损失函数
  • 示例:多分类的情况下,如何计算损失值呢?
    • softmax交叉熵损失函数多用于实现分类问题,用于多分类公式如下:
      在这里插入图片描述
      • yi表示第 i 个预测的结果值
    • 下面是猫、狗、羊的照片,标签分别为0、1、2
      在这里插入图片描述
    • 如果我们传入猫的照片进行训练,训练过程如下图所示:
      在这里插入图片描述
    • 首先先对训练后的各目标结果进行e的指数倍放大
    • 再将其值进行归一化,得到各个结果的概率
    • 最后通过损失函数计算出每个标签结果上的损失值
    • 由于我们输入的是猫的照片进行训练,所以只需要关注第一个输出神经元的结果,如果损失值越小,说明越靠近真实结果,模型的效果也就越好

二、正则化惩罚

  • 正则化是一种减少过拟合的技术,它通过向损失函数中添加一个正则化项来实现。正则化项通常是对模型参数(如权重)的某种形式的惩罚,旨在限制模型的复杂度,从而提高其泛化能力。常见的正则化方法包括:

    • L1正则化:向损失函数中添加权重绝对值的和作为惩罚项。L1正则化有助于产生稀疏的权重矩阵,即许多权重为零,这有助于模型的解释性,并可能减少计算量。

    • 公式如下:
      在这里插入图片描述

    • L2正则化:向损失函数中添加权重平方和的一半作为惩罚项。L2正则化有助于减小权重的值,从而防止模型过于复杂,避免过拟合。

    • 公式如下:
      在这里插入图片描述

      • 各参数的含义与L1正则化中的相同
  • 下面通过一个实例来说明为什么要增加正则化惩罚:
    在这里插入图片描述

    • w1和w2与输入的乘积都为1,但w2 与每一个输入数据进行计算后都有数据,使得w2会学习到每一个特征信息。
    • 而w1只和第1个输入信息有关系,容易出现过拟合现象,因此w2的效果会比w1 好
    • 因此需要引入正则化惩罚项来避免第一种权重值的情况

三、梯度下降

  • 损失函数具有良好的梯度信息,使得优化算法(如梯度下降)能够有效地更新模型参数
  • 在神经网络中,我们希望通过调整网络参数(如权重和偏置)来降低损失函数的值。梯度下降算法通过计算损失函数关于网络参数的梯度,并沿着梯度的反方向更新参数,从而逐步逼近损失函数的最小值。
  • 具体步骤如下:
    • 1.计算梯度:首先,需要计算损失函数关于每个参数的梯度。这通常通过反向传播算法(Backpropagation)来实现,该算法从网络的输出层开始,逐层计算梯度,直到到达输入层。
    • 2.更新参数:然后,使用计算得到的梯度来更新网络的参数。更新规则通常遵循以下形式:
      在这里插入图片描述
    • 3.重复迭代:不断重复上述步骤,直到满足某个停止条件(如达到最大迭代次数、损失函数值低于某个阈值或梯度接近于零)
  • 用下图来解释梯度下降的过程:
    • 参数取不同的初始值,可能会得到不同的最小损失值,但是每个初始的参数只是得到了此模型局部的最小损失值
    • 就好像当你处在一个谷底时,只会认为此时的位置是最低的,但并不知道其他的低谷处还有更低的位置
    • 梯度下降就是通过不断地寻找梯度方向和计算得到不同的损失值,直到找到最优和满足条件的值为止
      在这里插入图片描述

http://www.kler.cn/news/312533.html

相关文章:

  • 如何搭建虚拟机Ubuntu?
  • icpc江西:L. campus(dij最短路)
  • el-input 只能输入数字和一个小数点,或者只能输入两位小数
  • OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【时间管理】
  • 探索自闭症寄宿学校的专属教育模式
  • java原子操作类
  • 基于LSTM的文本摘要生成实战教程
  • Python学习的主要知识框架
  • 同样实用的CSS剪裁属性clip-path
  • esp32-C2 对接火山引擎实现语音转文本(二)
  • Windows安装启动:stable-diffusion-webui,AIGC大模型文生图、文生视频,Python
  • 使用mlp算法对Digits数据集进行分类
  • 必应bing广告优势,国内开户注意事项备忘录
  • Windows系统 Bat命令生成快捷方式
  • LLM - 理解 多模态大语言模型(MLLM) 的 指令微调(Instruction-Tuning) 与相关技术 (四)
  • 【例题】lanqiao3225 宝藏排序Ⅰ
  • 2-100 基于matlab的水果识别
  • 【诉讼流程-健身房-违约-私教课-诉讼书提交流程-民事诉讼-自我学习-铺平通往法律的阶梯-讲解(3)】
  • spring MVC 拦截器
  • 本地git仓库配置远程仓库的地址
  • el-table的树形结构结合多选框使用,实现单选父子联动,全选,反选功能
  • SpringBoot结合Mybatis-plus项目直接执行sql语句
  • Vue学习记录之五(组件/生命周期)
  • IO流体系(FiletOutputStream)
  • Go Testify学习与使用
  • Linux环境变量进程地址空间
  • 毕业设计选题:基于springboot+vue+uniapp的驾校报名小程序
  • MySQL从入门到精通二
  • Java企业面试题3
  • MySQL_图形管理工具简介、下载及安装(超详细)