3Blue1Brown-深度学习之梯度下降法

本文是在看了 3Blue1Brown-深度学习之人工神经网络 视频后的学习笔记。3B1B的"深度学习"系列视频 用可视化动画和深入浅出的讲解让我们看清人工神经网络的本质。

我之前困惑 一个有大量参数组成的人工神经网络,是怎么训练学会识别出动植物,生成图像的。"梯度下降法"是人工神经网络"学会"知识的底层逻辑,机器通过梯度下降持续优化自身参数。

主体使用AI 生成

1、神经网络的学习目标

神经网络的"学习",本质上是在找一组最优的"权重和偏置"参数。3B1B在视频中以手写数字识别为例,形象地拆解了这个问题:

  • 输入层是28×28像素的手写数字图像(784个神经元),隐藏层设两层(每层16个神经元),输出层是10个神经元(对应0-9十个数字)。
  • 整个网络的参数的包括13000多个权重(连接神经元的"强弱系数")和偏置(神经元"激活门槛")。
  • 在初始状态,这些参数都是随机初始化的,此时的神经网络是"瞎猜"的。类似像一个毫无经验的新手完全没有经验,只能凭直觉尝试。

那么目标已经清楚,后续需要做的就是通过训练数据,调整参数,找到最优参数,让识别准确率越来越高。

新的问题来了,怎么知道识别的准不准呢?此时需要一个"裁判"来判定差距有多少,这个裁判就是引入一个损失函数(Loss Function),它表示当前模型的预测值与真实值之间的差距。代价函数的输出值越小,说明模型预测越准确,参数越优;反之,代价越大,说明模型的错误越严重。

举个例子

假设输入"3"的图像,准确的输出应该是[0,0,0,1,0,0,0,0,0,0],若模型输出是[0.2,0.1,0.3,0.1,0.05,0.05,0.1,0.02,0.03,0.05],此时代价函数会计算两者每个元素的差值平方和,得到一个较大的数值,明确告诉网络"当前参数很差,需要调整"。

神经网络无法直接"看到"预测错误,只能通过损失函数的数值,感知自己的"表现好坏"。


2、梯度下降

在面对这么大量的参数,如何找到最优解?

在3Blue1Brown的视频用了一个非常形象的比喻:

在一个复杂的地形中寻找最低点------你站在某座山的半山腰,看不见全局地图,只能根据脚下的坡度判断往哪里走才能最快地下山。这个"下山"的过程,就是梯度下降。

我们可以把损失函数的曲面想象成一座崎岖的山谷:山谷的每一个点,对应一组网络参数;山谷的最低点,就是代价最小的"最优参数点"(网络预测最准的状态);网络当前的参数状态,就是你在山谷中的位置。而你被困在浓雾中,只能看清脚下的区域,无法预判全局地形------这就像神经网络无法一次性找到最优参数,只能基于当前状态逐步调整。

在这种情况下,最快走到谷底(找到最优参数)的方法,就是梯度下降法的核心逻辑:在当前位置,找到坡度最陡的下坡方向,迈出一小步,重复这个过程,直到走到谷底。

神经网络的参数调整,这个过程拆解为3个关键步骤:

  • 1.找方向:负梯度="最陡下坡方向

    梯度(Gradient)是一个向量,3Blue1Brown的核心解读是:梯度指向"损失函数值增长最快的方向"(也就是山谷中最陡的上坡方向);梯度的反方向(负梯度)就是"损失函数值下降最快的方向"(最陡的下坡方向)。

  • 2.定步长:学习率="迈步的大小"

    找到下坡方向,还需要确定"迈多大一步",它直接决定了网络的"学习效率"和"学习效果"。

    学习率太小:每次只迈一小步,下山速度极慢------对应神经网络,就是参数调整幅度太小,需要迭代成千上万次;

    学习率太大:每次迈一大步,可能会跨过谷底,甚至跳到对面的山坡上。对应神经网络,就是参数调整幅度过大,导致损失函数值来回震荡,训练发散,无法收敛,模型越学越差。

  • 3.做调整:迭代更新参数

    明确了方向和步长,进行参数调整。这个过程是迭代进行的,循环往复,直到损失函数的值不再明显下降。

相关推荐
2501_948120152 小时前
深度学习在爬虫图片数据内容识别中的应用
人工智能·爬虫·深度学习
AI街潜水的八角2 小时前
医学图像算法之基于MK_UNet的肾小球分割系统1:数据集说明(含下载链接)
pytorch·深度学习
摘星星的屋顶3 小时前
2026年1月19日~2026年1月25日周报
人工智能·深度学习·学习
海绵宝宝de派小星3 小时前
手写实现一个简单神经网络
人工智能·深度学习·神经网络·ai
AI即插即用3 小时前
即插即用系列 | AAAI 2025 Mesorch:CNN与Transformer的双剑合璧:基于频域增强与自适应剪枝的篡改定位
人工智能·深度学习·神经网络·计算机视觉·cnn·transformer·剪枝
应用市场3 小时前
视频目标追踪完全指南:从原理到实战部署
人工智能·深度学习
编码小哥3 小时前
OpenCV DNN模块:深度学习模型部署实战
深度学习·opencv·dnn
一招定胜负3 小时前
项目案例:指纹匹配,图像拼接
人工智能·深度学习·计算机视觉
星河天欲瞩4 小时前
【深度学习Day4】线性代数基础
人工智能·深度学习·学习·线性代数