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

[深度学习]多层神经网络

多层神经网络

文章目录

  • 多层神经网络
    • 单个神经元
    • 人类大脑神经与神经元
      • 神经元与矩阵
      • 神经元的串联
      • 激活函数
      • 激活函数位置
      • 神经网络的三种表现形式
      • 神经网络的参数(可训练的)
    • 深度学习的训练过程
    • 全连接网络
    • 过拟合和欠拟合

单个神经元

image-20250121103834250

一个神经元实际表示的数据公式为
y ^ = w ∗ x + b \hat y=w*x+b y^=wx+b
由于是线性关系,因此只能表示出线性图像,有很多局限性,比如在如下场景中:

image-20250121104045662

线性关系所表示的图像形式为一条直线,要想找到一个线性模型将三角形划分在一起,将正方形划分在一起是不可能办到的,因此要使用更复杂的神经网络才能满足需求。

人类大脑神经与神经元

实际上,神经网络就是在模仿人类的运行机制,神经网络之所以称之为神经网络,也是仿照人类的神经元所取得的名字。

image-20250121104446496

神经网络和人类大脑一样,收到相应的输入后得到相应输出。

人类接受输入的来源是各个神经元的末梢突触,神经网络仿照人类设置结点来表示神经元,用输入数据仿照神经元的突触。

image-20250121104759980

人类收到多个神经元突触的输入后,输入经过神经元,最终交给大脑处理这些输入得到输出,同样的神经网络通过 x 1 , x 2 , x 3 , x 4 x_1,x_2,x_3,x_4 x1,x2,x3,x4接收输入,经过神经网络得到输出结果。

神经元与矩阵

神经网络中结点各层结点中具有相应的线性关系,各节点的值等于上一层连接结点的对应输入乘以相应权重加上偏置,节点的值由上一层结点计算得到,节点同时又作为下一层输入。

image-20250121105123929

神经网络中的结点是线性关系,因此神经结点之间的关系可以由矩阵运算表示。

image-20250121105709493

神经元的串联

如果神经元仅仅是将多个神经元连接成一条直线,这种情况下串联的神经元似乎只有传递的作用, 那么一根和多根似乎没有区别。

image-20250121110209544

同样的,在神经网络中单纯的增加神经结点的层数也是没有去别的的,就像神经元的串联一样。

image-20250121110800753

无论由多少层神经结点,最终都可以表示成输出只与输入有关的线性关系,如果只能表示线性关系就只能模拟出线性模型,无法解决复杂的问题。

激活函数

生物神经元具有兴奋和抑制两种状态,当接受的刺激高于一定阈值时,则会进入兴奋状态并将神经冲动由轴突传出, 反之则没有神经冲动,因此神经元之间的串联才变得有区别。

仿照神经元,神经网络设置了激活函数来解决无论多少层神经网络都等效于一层的问题。由于激活函数都是非线性的,这样就给神经元引入了非线性元素,使得神经 网络可以逼近任何非线性函数,这样使得神经网络应用到更多非线性模型中。 常见的且简单的激活函数:

image-20250121144811389

激活函数位置

激活函数加在结点的输出后,也就是让结点的输出作为激活函数的输入,然后激活函数的输出作为下一层结点的输入。

image-20250121145808030

**激活函数最重要的特性:能求导!**因为在深度学习的训练过程中,要不断调整参数,调整参数采用的是梯度下降算法,因为结点的输出作为了激活函数的输入,因此激活函数必须可导。

注:激活函数在某一点不可导是被允许的,因此relu函数在x=0时不可导是被允许的。

激活函数的效果展示

image-20250121150112660

没有激活函数时,模型只能表示线性关系,加入激活函数后,模型能更好的贴合实际函数关系。

image-20250121150225465

另一个角度理解拟合和激活函数

image-20250121150746313

图中红色为实际函数关系,不使用激活函数只能得到表示一条直线的线性关系,因此通过将两个relu函数得到的非线性结构相加模拟真实函数关系。

模型整体结构

虽然加入了激活函数,但是模型的整体结构还是可以用矩阵运算来表示。

image-20250121151048304

神经网络的三种表现形式

image-20250121151207391

神经网络的参数(可训练的)

深度学习中包含不可修改超参数,比如学习率,模型结构,还包括可以修改的在训练过程中可以不断调整的参数。深度学习的目的就是不断调整参数让最终的模型足够拟合真实函数关系。

image-20250121151812090

在上图的神经网络中权重矩阵W, c T c^T cT,偏置向量b都是要训练的参数,这些可训练的参数统称为θ

深度学习的训练过程

image-20250121154552257

多层神经网络和单个神经元的深度学习流程是相同的。

image-20250121154649833

在多层神经网络中:

  • 从输入层向输出层传播,将输入层通过一层一层的神经结点计算得到最终的预测值的过程称为前向过程
  • 从输出层向输入层传播,采用链式求导法则逐层,求出LOSS函数在每一层中的参数的过程称为梯度回传过程
  • 在调整模型时,每个参数的梯度都要计算,并且每个参数都要进行更新。采用梯度下降算法。

全连接网络

全连接网络指的是神经网络中每层结点与上一层的所有结点都有连接。image-20250121161115430

**所谓深度学习,深度指的就是神经网络的层数。**神经网络的层数不是越多越好,神经网络的层数的增加或减少都有可能使得训练出来的模型的效果更好。 PyTorch 库中nn.Linear(in_features: int, out_features: int, bias: bool = True)表示的就是全连接,in_features为上一层输入的结点个数,out_featuress为下一层输出的结点个数。

过拟合和欠拟合

欠拟合是指模型在训练数据上表现不佳,甚至连训练集上的基本模式也未能捕捉到

过拟合是指模型在训练数据上表现得非常好,甚至几乎完美,但在新数据(测试数据)上表现较差。

image-20250121162408175


http://www.kler.cn/a/514366.html

相关文章:

  • flume系列之:flume落cos
  • Python----Python高级(正则表达式:语法规则,re库)
  • 55.【5】BUUCTF WEB NCTF2019 sqli
  • 深入探索 Nginx 的高级用法:解锁 Web 服务器的强大潜能
  • WPF1-从最简单的xaml开始
  • 以 RFID 为钥,开启民兵装备管理的科技之门
  • 图片专栏——概念
  • 管道符、重定向与环境变量
  • LeetCode:3097. 或值至少为 K 的最短子数组 II(滑动窗口 Java)
  • element UI的日期选择器固定日期变色
  • GD32F303 GCC 环境搭建
  • 2025展望:“安全计算”平价时代加速到来,数据流通产业兴起
  • 期权懂|你了解场内期权和场外期权的区别吗?
  • Windows 服务程序实现鼠标模拟
  • 【头歌】Scrapy爬虫(二)热门网站数据爬取
  • 【Vim Masterclass 笔记22】S09L40 + L41:同步练习11:Vim 的配置与 vimrc 文件的相关操作(含点评课内容)
  • 【2024 博客之星评选】请继续保持Passion
  • EXCEL+Python搞定数据处理(第一部分:Python入门-第2章:开发环境)
  • C语言程序设计十大排序—冒泡排序
  • vim文本编辑器
  • Leetcode:2239
  • 卸载和安装Git小乌龟、git基本命令
  • npm install 报错:Command failed: git checkout 2.2.0-c
  • 自然语言处理(NLP)领域相关模型概述
  • MOS怎样选型,步骤详解
  • 20250119面试鸭特训营第27天