(2023版)斯坦福CS231n学习笔记:DL与CV教程 (4) | 神经网络与反向传播

前言

⚠️ 本节重点内容

  1. 神经网络基础
  2. 激活函数
  3. 神经网络结构
  4. 反向传播

一、什么是神经网络?

这里不做多解释,深度学习的基础,只记录几个重点。

  1. 类比人类大脑神经元结构:输入、权重、激活函数、计算、输出;

大脑的基本计算单位是神经元(neuron) 。人类的神经系统中大约有 860 亿个神经元,它们被大约 1014 - 1015 个突触(synapses)连接起来。上方是一个生物学的神经元,下方是一个简化的常用数学模型。每个神经元都从它的树突(dendrites)获得输入信号,然后沿着它唯一的轴突(axon) 产生输出信号。轴突在末端会逐渐分枝,通过突触和其他神经元的树突相连。

在神经元的计算模型中,沿着轴突传播的信号(比如 公式 )将基于突触的突触强度(比如 公式 ),与其他神经元的树突进行乘法交互(比如 公式 )。

二、神经网络算法基础

2.1 激活函数(也称"非线性映射函数")

Q:为什么需要激活函数呢?

A:如果不使用激活函数,无论多少层,最终都是输入层的线性组合,即计算下来还是一个线性分类器!!!

注意:非线性函数在计算上是至关重要的,如果略去这一步,那么两个矩阵将会合二为一,对于分类的评分计算将重新变成关于输入的线性函数。这个非线性函数就是改变的关键点。

激活函数的作用:激活函数的主要作用就是加入非线性因素,以解决线性模型表达能力不足的缺陷,

常见激活函数:

2.2 神经网络结构

参数调整可视化:https://cs.stanford.edu/people/karpathy/convnetjs/demo/

对于普通神经网络,最普通的层级结构是全连接层(fully-connected layer) 。全连接层中的神经元与其前后两层的神经元是完全成对连接的,但是在同层内部的神经元之间没有连接。网络结构中没有循环(因为这样会导致前向传播的无限循环)。

下面是两个神经网络的图例,都使用的全连接层:

注意:当我们说N层神经网络的时候,我们并不计入输入层。单层的神经网络就是没有隐层的(输入直接映射到输出)。也会使用人工神经网络(Artificial Neural Networks 缩写ANN)或者多层感知器(Multi-Layer Perceptrons 缩写MLP)来指代全连接层构建的这种神经网络。此外,输出层的神经元一般不含激活函数。

用来度量神经网络的尺寸的标准主要有两个:一个是神经元的个数 ,另一个是参数的个数。用上面图示的两个网络举例:

  • 第一个网络有4+2=6个神经元(输入层不算),「3x4」+「4x2」=20 个权重,还有4+2=6个偏置,共「20+6 = 26」个可学习的参数。
  • 第二个网络有4+4+1=9个神经元,「3x4」+「4x4」+「4x1」=32 个权重,4+4+1 =9个偏置,共41个可学习的参数。
    现代卷积神经网络能包含上亿个参数,可由几十上百层构成(这就是深度学习)。

代码解释

实际上生物神经元很复杂:

  1. 多种不同类型
  2. 树突可进行复杂的非线性计算
  3. 突触不是一个单一的权重,而是一个复杂的非线性动态系统

🔥 同样的神经网络也不是简简单单的一个线性分类器,不然无法处理非常复杂的任务!!!

这也就引入了损失函数,那怎么让损失函数最小,需要找到最合适的参数,怎么找到呢?按照梯度下降最合适的方向?那怎么找到这个方向呢?答案是:计算图和反向传播

三、反向传播

神经网络的训练,应用到的梯度下降等方法,需要计算损失函数的梯度,而其中最核心的知识之一是反向传播,它是利用数学中链式法则递归求解复杂函数梯度的方法。

3.1 一个简单的例子

下图是整个计算的线路图,绿字部分是函数值,红字是梯度,前向传播从输入计算到输出(绿色),反向传播从尾部开始,根据链式法则递归地向前计算梯度(显示为红色),一直到网络的输入端。可以认为,梯度是从计算链路中回流。

3.2 爆肝推导BP

讲真到现在都没有认真推一边反向传播算法计算步骤,原本想不在这里记录了,看PPT最直观,但还是想要稍微记一下!!!因为太直观啦!!!

🔥标量推导

🔥案例:

  1. 正向计算
  2. 反向计算






    特别说明:计算图形表示法可能不是唯一的。选择一种可以轻松表达每个节点局部梯度的表示方法!

补充

代码对应






到这里,其实我已经完全了解了反向传播的工作机制,但是目前好多框架已经集成了这些方法,大家可以直接在实际中调用了解即可!

向量推导

这部分不做详细推导,其实和标量差不多,只不过是求偏导!

注意:要分析维度!不要去记忆 dW 和 dx 的表达式,因为它们很容易通过维度推导出来。

相关推荐
逻辑君几秒前
Research in Brain-inspired Computing [1]-果蝇大脑被上传
人工智能·机器学习
jay神4 分钟前
基于YOLOv8的传送带异物检测系统
人工智能·python·深度学习·yolo·可视化·计算机毕业设计
强风7946 分钟前
OpenCV基础入门
人工智能·opencv·计算机视觉
小超同学你好6 分钟前
Langgragh 19. Skills 4. SkillToolset 式设计 —— 工具化按需加载的 Skills(含代码示例)
人工智能·语言模型·langchain
人工智能培训7 分钟前
如何衔接知识图谱与图神经网络
人工智能·神经网络·知识图谱
火星资讯10 分钟前
Zenlayer Fabric Port 新加坡首发:城域免费,全球畅连
人工智能·科技
新缸中之脑10 分钟前
20个Nano Banana 2创意工作流
人工智能
智驱力人工智能12 分钟前
馆藏文物预防性保护依赖的图像分析技术 文物损害检测 文物破损检测 文物损害识别误报率优化方案 文物安全巡查AI系统案例 智慧文保AI监测
人工智能·算法·安全·yolo·边缘计算
tobias.b14 分钟前
机器学习 超清晰通俗讲解 + 核心算法全解(深度+易懂版)
人工智能·算法·机器学习