3Blue1Brown-深度学习之反向传播算法

机器学习(Machine Learning)系列

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

请先看 3Blue1Brown-深度学习之人工神经网络3Blue1Brown-深度学习之梯度下降法

1、关于前向传播(Forward Propagation)

在3B1B视频中的手写数字识别的案例:一个包含784个输入神经元(对应28×28像素图像)、两个各16个神经元的隐藏层,以及10个输出神经元(对应0-9数字)的神经网络。输入层收到图像后,信号通过各层神经元的加权连接和激活函数处理,输出层输出预测结果。这一过程就是"前向传播"。

前向传播的作用:

  • 将输入数据从输入层传递到输出层
  • 按照当前的权重和偏置,计算每一层的激活值
  • 最终得到模型的预测输出

前向传播只是"推理"或"预测"的过程。 如果只是做预测,只需要前向传播。比如对于训练好的神经网络,只需前向传播就可以对一张图手写数字图片进行识别。

前向传播无法告诉我们 如何改进参数。 前向传播只能告诉你:"现在模型输出了什么"、"误差有多大";

但它不知道:"哪个权重导致了误差?"、"应该增加还是减少?"、"影响有多大?"

2、训练需要反向传播(Backpropagation)

神经网络的强大之处在于能通过数据自动学习特征和参数。这个"学习"过程就是训练,该过程调整网络中的权重,使得预测结果尽可能接近真实标签。

反向传播 是一种在神经网络中高效计算损失函数关于各层权重和偏置的梯度的算法。它基于链式法则(Chain Rule),从输出层开始,将误差信号逐层向后传递,从而为参数更新提供依据。

举例:一个有100万个权重的网络,若用数值方法近似梯度,至少需要100万次前向传播;而反向传播只需1次前向 + 1次反向即可算出所有梯度。

反向传播是从"输出层开始,逐层向前分配误差责任"的过程------每个神经元都要知道自己对最终误差的"贡献"有多大,从而决定该如何调整自己的参数。这个过程类似一个任务失败,层层追溯,明确每个人的责任。

用类比理解

  • 前向传播 是水流从山顶(输入层)顺着河道(权重连接)流到山脚(输出层),最终形成水流输出(预测值);
  • 反向传播 是发现山脚水流不符合预期(误差大),从山脚逆流而上,检查每段河道的宽窄(权重)、坡度(偏置)对水流的影响(梯度),并调整河道参数,让下次水流输出符合预期。

总结

  • 只有前向传播,模型可以预测,但无法学习。
  • 反向传播提供了"学习的方向",是训练的关键。
  • 训练阶段必须结合前向传播和反向传播。
相关推荐
zy_destiny2 小时前
SegEarth-OV系列(二):面向遥感图像的无训练开放词汇分割
人工智能·深度学习·算法·机器学习·计算机视觉·语义分割·开放词汇
NCU_wander2 小时前
RAG Embedding Reranker 、Bert、CLIP&T5
人工智能·深度学习·bert
AI人工智能+3 小时前
基于深度学习与计算机视觉的高精度表格识别技术,精准识别复杂表格结构,自动输出结构化数据
深度学习·计算机视觉·ocr·表格识别
菩提树下的凡夫3 小时前
强化学习和深度学习的区别与联系
人工智能·深度学习
Francek Chen3 小时前
【自然语言处理】02 文本规范化
人工智能·pytorch·深度学习·自然语言处理·easyui
咚咚王者5 小时前
人工智能之核心技术 深度学习 第二章 神经网络训练与优化
人工智能·深度学习·神经网络
盼小辉丶6 小时前
PyTorch实战(25)——使用PyTorch构建DQN模型
人工智能·pytorch·深度学习·强化学习
醉舞经阁半卷书116 小时前
Python机器学习常用库快速精通
人工智能·python·深度学习·机器学习·数据挖掘·数据分析·scikit-learn
爱喝可乐的老王18 小时前
神经网络的基础:核心是 “搭积木 + 激活信号”
人工智能·深度学习·神经网络