3Blue1Brown-深度学习之神经网络

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

主体使用AI 生成

1、神经网络

神经网络是受大脑神经元启发的分层模型,用于自动识别数据中的模式。

生物神经元通过树突接收信号,细胞体处理,达到一定阈值后通过轴突传递信号。人工神经网络正是对这一过程的简化与抽象,核心目标是让机器像人一样,从原始数据中提取特征、识别模式。

视频中用 手写数字识别 进行了说明:

1、一张28×28像素的手写数字图片,会被转化为784个0-1之间的灰度值(像素越亮,值越接近1),这些数值就是神经网络"输入层"的激活值

2、信号通过隐藏层,最终传递到"输出层"(10个神经元分别对应0-9十个数字)

3、哪个神经元的激活值最高,网络就判断输入的数字是哪一个

  • 关于分层
    分层本质是其实就是任务分解,让神经网络具备了从简单到复杂的特征提取能力。比如第一层隐藏层识别一些特定特征、第二层隐藏层识别更复杂的组合特征,输出层将这些特征组合起来完成识别。

2、核心要素

2.1 权重

权重(w)表示神经元之间的"连接强度"

在神经网络中,上一层的每个神经元都与下一层的所有神经元相连,这种结构叫"全连接",权重就是衡量这种连接强度的参数。

  • 权重为正:表示上一层神经元的激活值会"促进"下一层神经元的激活
  • 权重为负:表示"抑制"作用
  • 权重的绝对值越大,促进或抑制的效果越明显

比如在 手写数字识别 中,识别"水平短边"的隐藏层神经元,会对图像中对应位置的像素赋予正权重,对其他位置的像素赋予负权重。通过调整权重,神经元就能"学会"关注自己需要的特征。

2.2 偏置

偏置(b)是神经元的"激活门槛"

因为不同特征的"激活难度"不同。偏置的作用,就是给神经元设置一个"激活门槛":上一层信号的加权和,必须加上偏置后达到一定数值,神经元才会被激活。

举个例子,识别"水平直线"和"斜线"的两个神经元,可能接收到的加权和相近,但通过设置不同的偏置,可以让只有加权和更高的"水平直线"信号才能激活对应的神经元,从而提高识别的准确性。简单来说,权重决定"关注什么特征",偏置决定"特征要多明显才有效"。

3.激活函数

激活函数:给网络注入"非线性能力"。

激活函数引入非线性因素,使得神经网络能够学习和逼近复杂的非线性关系。如果没有激活函数,神经网络就只是一系列线性运算的组合,无论网络有多少层,其整体行为仍然是线性的。

Sigmoid 函数

  • 公式: σ(x)=11+e−x\sigma(x) = \frac{1}{1 + e^{-x}}σ(x)=1+e−x1
  • 输出范围:(0, 1)

Tanh(双曲正切函数)

  • 公式: tanh⁡(x)=ex−e−xex+e−x=2σ(2x)−1\tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}} = 2\sigma(2x) - 1tanh(x)=ex+e−xex−e−x=2σ(2x)−1
  • 输出范围:(-1, 1)

ReLU(Rectified Linear Unit)

  • 公式:
    ReLU(x)=max⁡(0,x)\text{ReLU}(x) = \max(0, x)ReLU(x)=max(0,x)
  • 输出范围:[0, +∞)

激活函数的核心作用,就是对神经元的加权和进行"非线性压缩",把输出值限制在固定范围(比如0

-1或-1-1),同时给网络注入非线性能力。

3、工作流程

计算步骤:输入 → 加权求和 → 加偏置 → 激活函数 → 输出

  1. 接收输入(Input)

    接收来自前一层的多个输入信号 x1,x2,...,xnx_1, x_2, \dots, x_nx1,x2,...,xn。

  2. 加权求和(Weighted Sum)

    每个输入都有一个对应的权重 w1,w2,...,wnw_1, w_2, \dots, w_nw1,w2,...,wn,表示该输入的重要性。

    计算加权和:
    z=w1x1+w2x2+⋯+wnxn=∑i=1nwixiz = w_1x_1 + w_2x_2 + \cdots + w_nx_n = \sum_{i=1}^{n} w_i x_iz=w1x1+w2x2+⋯+wnxn=∑i=1nwixi

  3. 加上偏置(Bias)

    引入偏置项 bbb,用于调整激活阈值:
    z=∑i=1nwixi+bz = \sum_{i=1}^{n} w_i x_i + bz=∑i=1nwixi+b

  4. 通过激活函数(Activation Function)

    将线性输出 zzz 输入激活函数 fff,得到非线性输出:
    a=f(z)a = f(z)a=f(z)

    常见激活函数:ReLU、Sigmoid、Tanh 等。

  5. 输出结果(Output)

    输出 aaa 作为该神经元的最终响应,传递给下一层神经元或作为最终预测。

神经网络通过大量神经元分层协作,在前向传播中提取特征并做出预测,在反向传播(本文未做说明)中不断调整参数,最终学会从输入到输出的复杂映射关系。

相关推荐
芷栀夏11 小时前
从 CANN 开源项目看现代爬虫架构的演进:轻量、智能与统一
人工智能·爬虫·架构·开源·cann
梦帮科技11 小时前
OpenClaw 桥接调用 Windows MCP:打造你的 AI 桌面自动化助手
人工智能·windows·自动化
User_芊芊君子11 小时前
【分布式训练】CANN SHMEM跨设备内存通信库:构建高效多机多卡训练的关键组件
分布式·深度学习·神经网络·wpf
永远都不秃头的程序员(互关)11 小时前
CANN模型量化赋能AIGC:深度压缩,释放生成式AI的极致性能与资源潜力
人工智能·aigc
爱华晨宇11 小时前
CANN Auto-Tune赋能AIGC:智能性能炼金术,解锁生成式AI极致效率
人工智能·aigc
聆风吟º11 小时前
CANN算子开发:ops-nn神经网络算子库的技术解析与实战应用
人工智能·深度学习·神经网络·cann
觉醒大王11 小时前
强女思维:着急,是贪欲外显的相。
java·论文阅读·笔记·深度学习·学习·自然语言处理·学习方法
偷吃的耗子12 小时前
【CNN算法理解】:CNN平移不变性详解:数学原理与实例
人工智能·算法·cnn
勾股导航12 小时前
OpenCV图像坐标系
人工智能·opencv·计算机视觉
神的泪水12 小时前
CANN 生态实战:`msprof-performance-analyzer` 如何精准定位 AI 应用性能瓶颈
人工智能