人工智能概念之十:人工神经网络(ANN)

【神经网络算法】一文搞懂ANN(人工神经网络) 本文将从、分类与应用四个方面,带您一文搞懂人工神经网络ANN。生物神经网络。 阅读详情
AI摘要

本文详细介绍了人工神经网络(ANN),它模仿生物神经系统,可拟合复杂函数。阐述了神经元与网络结构,包括输入、隐藏和输出层。讲解了单个神经元及网络前向、反向传播的计算过程,还对激活函数、参数初始化等关键组件进行数学解析,掌握这些能助于调试和优化模型。


一、什么是人工神经网络?

人工神经网络(Artificial Neural Network,ANN)是一种模仿生物神经系统结构的计算模型,通过多层神经元的协同计算实现对复杂模式的学习。其核心是非线性变换与参数优化,使网络能拟合任意复杂函数。

生物神经元通过树突接收信号,在细胞体(soma)进行电化学整合,通过轴突传递至突触末梢;人工神经元则通过加权求和与激活函数处理输入,输出结果传递给下一层。这种结构使ANN在图像识别、自然语言处理等领域表现卓越。


二、神经元与神经网络的结构详解

2.1 人工神经元的结构

人工神经元是神经网络的基本单元,其结构模拟生物神经元的工作机制:

  • 输入端:接收多个输入信号( x 1 , x 2 , . . . , x n x_1, x_2, ..., x_n x1​,x2​,...,xn​),对应生物神经元的树突。
  • 权重与偏置:每个输入信号被赋予权重( w 1 , w 2 , . . . , w n w_1, w_2, ..., w_n w1​,w2​,...,wn​),表示该信号的重要性;偏置( b b b)用于调整神经元的激活阈值,类似生物神经元的静息电位。
  • 整合单元:对输入信号进行加权求和,得到内部状态值( z z z)。
  • 激活函数:对内部状态值进行非线性变换,输出激活值( a a a),模拟生物神经元的“激活-放电”过程。

结构示意图:
在这里插入图片描述

2.2 神经网络的层级结构

神经网络由多层神经元连接而成,典型结构包括:

  1. 输入层:接收原始数据(如图像的像素值、文本的特征向量),神经元数量等于输入特征维度。
  2. 隐藏层:位于输入层与输出层之间,负责特征提取与转换。隐藏层数量决定网络的“深度”,每层神经元数量可根据任务调整。
  3. 输出层:输出预测结果,神经元数量由任务类型决定(如二分类问题用1个神经元,10分类问题用10个神经元)。

全连接神经网络(FCNN)的特点:

  • 层内神经元无连接,层间神经元全连接(第 N N N层每个神经元与第 N − 1 N-1 N−1层所有神经元相连)。
  • 信息单向流动,属于前馈神经网络。

结构示意图:
在这里插入图片描述


三、单个神经元的计算过程

3.1 数学原理

单个神经元的计算分为两步:

  1. 加权求和(内部状态值)
    对输入特征与权重的线性组合:
    z = ∑ i = 1 n ( w i ⋅ x i ) + b z = \sum_{i=1}^n (w_i \cdot x_i) + b z=i=1∑n​(wi​⋅xi​)+b

  2. 非线性变换(激活值)
    通过激活函数 f f f处理内部状态值:
    a = f ( z ) a = f(z) a=f(z)

3.2 数值示例:单个神经元计算

假设神经元接收3个输入信号,具体参数如下:

  • 输入特征: x 1 = 1.2 , x 2 = 3.4 , x 3 = 2.6 x_1=1.2, x_2=3.4, x_3=2.6 x1​=1.2,x2​=3.4,x3​=2.6
  • 权重: w 1 = 0.8 , w 2 = 0.5 , w 3 = 0.3 w_1=0.8, w_2=0.5, w_3=0.3 w1​=0.8,w2​=0.5,w3​=0.3
  • 偏置: b = 0.2 b=0.2 b=0.2
  • 激活函数:ReLU( f ( z ) = max ⁡ ( 0 , z ) f(z)=\max(0, z) f(z)=max(0,z))

步骤1:计算加权求和( z z z)
逐个计算每个输入与权重的乘积,再累加并加偏置:

  • w 1 ⋅ x 1 = 0.8 × 1.2 = 0.96 w_1 \cdot x_1 = 0.8 \times 1.2 = 0.96 w1​⋅x1​=0.8×1.2=0.96
  • w 2 ⋅ x 2 = 0.5 × 3.4 = 1.7 w_2 \cdot x_2 = 0.5 \times 3.4 = 1.7 w2​⋅x2​=0.5×3.4=1.7
  • w 3 ⋅ x 3 = 0.3 × 2.6 = 0.78 w_3 \cdot x_3 = 0.3 \times 2.6 = 0.78 w3​⋅x3​=0.3×2.6=0.78
  • 求和: 0.96 + 1.7 + 0.78 = 3.44 0.96 + 1.7 + 0.78 = 3.44 0.96+1.7+0.78=3.44
  • 加偏置: z = 3.44 + 0.2 = 3.64 z = 3.44 + 0.2 = 3.64 z=3.44+0.2=3.64

步骤2:应用激活函数( a a a)
ReLU函数对 z = 3.64 z=3.64 z=3.64的处理:
a = max ⁡ ( 0 , 3.64 ) = 3.64 a = \max(0, 3.64) = 3.64 a=max(0,3.64)=3.64

输出结果:该神经元的激活值为 3.64 3.64 3.64。


四、神经网络前向传播的计算过程

4.1 网络结构与参数

以一个含1个隐藏层的神经网络为例:

  • 输入层:2个神经元( x 1 , x 2 x_1, x_2 x1​,x2​)
  • 隐藏层:2个神经元( h 1 , h 2 h_1, h_2 h1​,h2​,激活函数为sigmoid)
  • 输出层:1个神经元( y ^ \hat{y} y^​,激活函数为sigmoid)

参数设置:

  • 隐藏层权重矩阵: W ( 1 ) = [ w 11 ( 1 ) w 12 ( 1 ) w 21 ( 1 ) w 22 ( 1 ) ] = [ 0.3 0.5 0.2 0.4 ] W^{(1)} = \begin{bmatrix} w_{11}^{(1)} & w_{12}^{(1)} \\ w_{21}^{(1)} & w_{22}^{(1)} \end{bmatrix} = \begin{bmatrix} 0.3 & 0.5 \\ 0.2 & 0.4 \end{bmatrix} W(1)=[w11(1)​w21(1)​​w12(1)​w22(1)​​]=[0.30.2​0.50.4​]
  • 隐藏层偏置: b ( 1 ) = [ b 1 ( 1 ) b 2 ( 1 ) ] = [ 0.1 0.2 ] b^{(1)} = \begin{bmatrix} b_1^{(1)} \\ b_2^{(1)} \end{bmatrix} = \begin{bmatrix} 0.1 \\ 0.2 \end{bmatrix} b(1)=[b1(1)​b2(1)​​]=[0.10.2​]
  • 输出层权重: W ( 2 ) = [ w 1 ( 2 ) w 2 ( 2 ) ] = [ 0.6 0.7 ] W^{(2)} = \begin{bmatrix} w_1^{(2)} \\ w_2^{(2)} \end{bmatrix} = \begin{bmatrix} 0.6 \\ 0.7 \end{bmatrix} W(2)=[w1(2)​w2(2)​​]=[0.60.7​]
  • 输出层偏置: b ( 2 ) = 0.3 b^{(2)} = 0.3 b(2)=0.3
  • 输入: x = [ x 1 x 2 ] = [ 1.0 2.0 ] x = \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} = \begin{bmatrix} 1.0 \\ 2.0 \end{bmatrix} x=[x1​x2​​]=[1.02.0​]

4.2 隐藏层计算( h 1 , h 2 h_1, h_2 h1​,h2​)

神经元 h 1 h_1 h1​的计算:

  1. 加权求和( z 1 ( 1 ) z_1^{(1)} z1(1)​):
    z 1 ( 1 ) = w 11 ( 1 ) x 1 + w 12 ( 1 ) x 2 + b 1 ( 1 ) z_1^{(1)} = w_{11}^{(1)}x_1 + w_{12}^{(1)}x_2 + b_1^{(1)} z1(1)​=w11(1)​x1​+w12(1)​x2​+b1(1)​
    代入数值:
    z 1 ( 1 ) = 0.3 × 1.0 + 0.5 × 2.0 + 0.1 = 0.3 + 1.0 + 0.1 = 1.4 z_1^{(1)} = 0.3×1.0 + 0.5×2.0 + 0.1 = 0.3 + 1.0 + 0.1 = 1.4 z1(1)​=0.3×1.0+0.5×2.0+0.1=0.3+1.0+0.1=1.4

  2. sigmoid激活( a 1 ( 1 ) a_1^{(1)} a1(1)​):
    a 1 ( 1 ) = 1 1 + e − z 1 ( 1 ) = 1 1 + e − 1.4 ≈ 1 1 + 0.2466 ≈ 0.8025 a_1^{(1)} = \frac{1}{1 + e^{-z_1^{(1)}}} = \frac{1}{1 + e^{-1.4}} \approx \frac{1}{1 + 0.2466} \approx 0.8025 a1(1)​=1+e−z1(1)​1​=1+e−1.41​≈1+0.24661​≈0.8025

神经元 h 2 h_2 h2​的计算:

  1. 加权求和( z 2 ( 1 ) z_2^{(1)} z2(1)​):
    z 2 ( 1 ) = w 21 ( 1 ) x 1 + w 22 ( 1 ) x 2 + b 2 ( 1 ) z_2^{(1)} = w_{21}^{(1)}x_1 + w_{22}^{(1)}x_2 + b_2^{(1)} z2(1)​=w21(1)​x1​+w22(1)​x2​+b2(1)​
    代入数值:
    z 2 ( 1 ) = 0.2 × 1.0 + 0.4 × 2.0 + 0.2 = 0.2 + 0.8 + 0.2 = 1.2 z_2^{(1)} = 0.2×1.0 + 0.4×2.0 + 0.2 = 0.2 + 0.8 + 0.2 = 1.2 z2(1)​=0.2×1.0+0.4×2.0+0.2=0.2+0.8+0.2=1.2

  2. sigmoid激活( a 2 ( 1 ) a_2^{(1)} a2(1)​):
    a 2 ( 1 ) = 1 1 + e − 1.2 ≈ 1 1 + 0.3012 ≈ 0.7685 a_2^{(1)} = \frac{1}{1 + e^{-1.2}} \approx \frac{1}{1 + 0.3012} \approx 0.7685 a2(1)​=1+e−1.21​≈1+0.30121​≈0.7685

4.3 输出层计算( y ^ \hat{y} y^​)

  1. 加权求和( z ( 2 ) z^{(2)} z(2)):
    z ( 2 ) = w 1 ( 2 ) a 1 ( 1 ) + w 2 ( 2 ) a 2 ( 1 ) + b ( 2 ) z^{(2)} = w_1^{(2)}a_1^{(1)} + w_2^{(2)}a_2^{(1)} + b^{(2)} z(2)=w1(2)​a1(1)​+w2(2)​a2(1)​+b(2)
    代入数值:
    z ( 2 ) = 0.6 × 0.8025 + 0.7 × 0.7685 + 0.3 ≈ 0.4815 + 0.5380 + 0.3 = 1.3195 z^{(2)} = 0.6×0.8025 + 0.7×0.7685 + 0.3 \approx 0.4815 + 0.5380 + 0.3 = 1.3195 z(2)=0.6×0.8025+0.7×0.7685+0.3≈0.4815+0.5380+0.3=1.3195

  2. sigmoid激活( y ^ \hat{y} y^​):
    y ^ = 1 1 + e − 1.3195 ≈ 1 1 + 0.2665 ≈ 0.7896 \hat{y} = \frac{1}{1 + e^{-1.3195}} \approx \frac{1}{1 + 0.2665} \approx 0.7896 y^​=1+e−1.31951​≈1+0.26651​≈0.7896

网络输出结果: y ^ ≈ 0.7896 \hat{y} \approx 0.7896 y^​≈0.7896


五、反向传播的详细计算过程

5.1 损失函数与梯度公式

设真实标签 y = 1.0 y=1.0 y=1.0,损失函数为均方误差(MSE):
L = 1 2 ( y ^ − y ) 2 L = \frac{1}{2}(\hat{y} - y)^2 L=21​(y^​−y)2

参数更新公式:
w = w − η ⋅ ∂ L ∂ w ( η = 0.1 为学习率 ) w = w - \eta \cdot \frac{\partial L}{\partial w} \quad (\eta=0.1为学习率) w=w−η⋅∂w∂L​(η=0.1为学习率)

5.2 输出层梯度计算

  1. 损失对输出层内部状态的梯度:
    ∂ L ∂ z ( 2 ) = ( y ^ − y ) ⋅ y ^ ⋅ ( 1 − y ^ ) \frac{\partial L}{\partial z^{(2)}} = (\hat{y} - y) \cdot \hat{y} \cdot (1 - \hat{y}) ∂z(2)∂L​=(y^​−y)⋅y^​⋅(1−y^​)
    代入数值:
    ∂ L ∂ z ( 2 ) = ( 0.7896 − 1.0 ) × 0.7896 × ( 1 − 0.7896 ) = ( − 0.2104 ) × 0.7896 × 0.2104 ≈ − 0.0344 \begin{align*} \frac{\partial L}{\partial z^{(2)}} &= (0.7896 - 1.0) \times 0.7896 \times (1 - 0.7896) \\ &= (-0.2104) \times 0.7896 \times 0.2104 \\ &\approx -0.0344 \end{align*} ∂z(2)∂L​​=(0.7896−1.0)×0.7896×(1−0.7896)=(−0.2104)×0.7896×0.2104≈−0.0344​

  2. 损失对输出层权重的梯度:

    • 对 w 1 ( 2 ) w_1^{(2)} w1(2)​:
      ∂ L ∂ w 1 ( 2 ) = ∂ L ∂ z ( 2 ) ⋅ a 1 ( 1 ) ≈ − 0.0344 × 0.8025 ≈ − 0.0276 \frac{\partial L}{\partial w_1^{(2)}} = \frac{\partial L}{\partial z^{(2)}} \cdot a_1^{(1)} \approx -0.0344 \times 0.8025 \approx -0.0276 ∂w1(2)​∂L​=∂z(2)∂L​⋅a1(1)​≈−0.0344×0.8025≈−0.0276
    • 对 w 2 ( 2 ) w_2^{(2)} w2(2)​:
      ∂ L ∂ w 2 ( 2 ) = ∂ L ∂ z ( 2 ) ⋅ a 2 ( 1 ) ≈ − 0.0344 × 0.7685 ≈ − 0.0264 \frac{\partial L}{\partial w_2^{(2)}} = \frac{\partial L}{\partial z^{(2)}} \cdot a_2^{(1)} \approx -0.0344 \times 0.7685 \approx -0.0264 ∂w2(2)​∂L​=∂z(2)∂L​⋅a2(1)​≈−0.0344×0.7685≈−0.0264

5.3 隐藏层梯度计算

  1. 损失对隐藏层内部状态的梯度:

    • 对 z 1 ( 1 ) z_1^{(1)} z1(1)​:
      ∂ L ∂ z 1 ( 1 ) = ∂ L ∂ z ( 2 ) ⋅ w 1 ( 2 ) ⋅ σ ′ ( z 1 ( 1 ) ) ≈ − 0.0344 × 0.6 × 0.8025 × 0.1975 ≈ − 0.0344 × 0.6 × 0.1585 ≈ − 0.00325 \begin{align*} \frac{\partial L}{\partial z_1^{(1)}} &= \frac{\partial L}{\partial z^{(2)}} \cdot w_1^{(2)} \cdot \sigma'(z_1^{(1)}) \\ &\approx -0.0344 \times 0.6 \times 0.8025 \times 0.1975 \\ &\approx -0.0344 \times 0.6 \times 0.1585 \\ &\approx -0.00325 \end{align*} ∂z1(1)​∂L​​=∂z(2)∂L​⋅w1(2)​⋅σ′(z1(1)​)≈−0.0344×0.6×0.8025×0.1975≈−0.0344×0.6×0.1585≈−0.00325​
    • 对 z 2 ( 1 ) z_2^{(1)} z2(1)​:
      ∂ L ∂ z 2 ( 1 ) = ∂ L ∂ z ( 2 ) ⋅ w 2 ( 2 ) ⋅ σ ′ ( z 2 ( 1 ) ) ≈ − 0.0344 × 0.7 × 0.7685 × 0.2315 ≈ − 0.0344 × 0.7 × 0.1779 ≈ − 0.00430 \begin{align*} \frac{\partial L}{\partial z_2^{(1)}} &= \frac{\partial L}{\partial z^{(2)}} \cdot w_2^{(2)} \cdot \sigma'(z_2^{(1)}) \\ &\approx -0.0344 \times 0.7 \times 0.7685 \times 0.2315 \\ &\approx -0.0344 \times 0.7 \times 0.1779 \\ &\approx -0.00430 \end{align*} ∂z2(1)​∂L​​=∂z(2)∂L​⋅w2(2)​⋅σ′(z2(1)​)≈−0.0344×0.7×0.7685×0.2315≈−0.0344×0.7×0.1779≈−0.00430​
  2. 损失对隐藏层权重的梯度:

    • 对 w 11 ( 1 ) w_{11}^{(1)} w11(1)​:
      ∂ L ∂ w 11 ( 1 ) = ∂ L ∂ z 1 ( 1 ) ⋅ x 1 ≈ − 0.00325 × 1.0 = − 0.00325 \frac{\partial L}{\partial w_{11}^{(1)}} = \frac{\partial L}{\partial z_1^{(1)}} \cdot x_1 \approx -0.00325 \times 1.0 = -0.00325 ∂w11(1)​∂L​=∂z1(1)​∂L​⋅x1​≈−0.00325×1.0=−0.00325
    • 对 w 12 ( 1 ) w_{12}^{(1)} w12(1)​:
      ∂ L ∂ w 12 ( 1 ) = ∂ L ∂ z 1 ( 1 ) ⋅ x 2 ≈ − 0.00325 × 2.0 = − 0.00650 \frac{\partial L}{\partial w_{12}^{(1)}} = \frac{\partial L}{\partial z_1^{(1)}} \cdot x_2 \approx -0.00325 \times 2.0 = -0.00650 ∂w12(1)​∂L​=∂z1(1)​∂L​⋅x2​≈−0.00325×2.0=−0.00650

5.4 参数更新

  • w 1 ( 2 ) w_1^{(2)} w1(2)​:
    w 1 ( 2 ) = 0.6 − 0.1 × ( − 0.0276 ) ≈ 0.6 + 0.00276 ≈ 0.6028 w_1^{(2)} = 0.6 - 0.1 \times (-0.0276) \approx 0.6 + 0.00276 \approx 0.6028 w1(2)​=0.6−0.1×(−0.0276)≈0.6+0.00276≈0.6028
  • w 11 ( 1 ) w_{11}^{(1)} w11(1)​:
    w 11 ( 1 ) = 0.3 − 0.1 × ( − 0.00325 ) ≈ 0.3 + 0.000325 ≈ 0.3003 w_{11}^{(1)} = 0.3 - 0.1 \times (-0.00325) \approx 0.3 + 0.000325 \approx 0.3003 w11(1)​=0.3−0.1×(−0.00325)≈0.3+0.000325≈0.3003

六、关键组件的数学解析

6.1 激活函数的导数特性

激活函数公式导数特点
Sigmoid σ ( x ) = 1 1 + e − x \sigma(x)=\frac{1}{1+e^{-x}} σ(x)=1+e−x1​ σ ′ ( x ) = σ ( x ) ( 1 − σ ( x ) ) \sigma'(x)=\sigma(x)(1-\sigma(x)) σ′(x)=σ(x)(1−σ(x))梯度范围(0,0.25),易消失
Tanh tanh ⁡ ( x ) = e x − e − x e x + e − x \tanh(x)=\frac{e^x-e^{-x}}{e^x+e^{-x}} tanh(x)=ex+e−xex−e−x​ tanh ⁡ ′ ( x ) = 1 − tanh ⁡ 2 ( x ) \tanh'(x)=1-\tanh^2(x) tanh′(x)=1−tanh2(x)梯度范围(0,1),零中心化
ReLU max ⁡ = ( 0 , x ) \max = (0,x) max=(0,x) 1 1 1 if x > 0 x>0 x>0 else 0 0 0缓解梯度消失,可能神经元死亡

6.2 参数初始化的数学依据

  • Xavier初始化(适用于Sigmoid/Tanh):
    确保输入输出方差一致:
    w ∼ U ( − 6 f a n i n + f a n o u t , 6 f a n i n + f a n o u t ) w \sim \mathcal{U}\left(-\sqrt{\frac{6}{fan_{in}+fan_{out}}}, \sqrt{\frac{6}{fan_{in}+fan_{out}}}\right) w∼U(−fanin​+fanout​6​ ​,fanin​+fanout​6​ ​)

  • Kaiming初始化(适用于ReLU):
    考虑ReLU对梯度的影响:
    w ∼ N ( 0 , 2 f a n i n ) w \sim \mathcal{N}\left(0, \sqrt{\frac{2}{fan_{in}}}\right) w∼N(0,fanin​2​ ​)

6.3链式法则

链式法则的核心作用
神经网络的参数更新依赖反向传播算法,而反向传播的数学基础正是链式法则。其核心作用是:将复杂复合函数的求导分解为多个简单函数的导数乘积,从而高效计算损失函数对深层网络中每个参数的梯度。

具体来说,神经网络的前向传播是“输入→隐藏层→输出”的多层复合函数计算(例如 y pred = f 3 ( f 2 ( f 1 ( x ) ) ) y_{\text{pred}} = f_3(f_2(f_1(x))) ypred​=f3​(f2​(f1​(x)))),损失函数 L L L 是预测值 y pred y_{\text{pred}} ypred​ 与真实值 y true y_{\text{true}} ytrue​ 的函数(例如 L = Loss ( y pred , y true ) L = \text{Loss}(y_{\text{pred}}, y_{\text{true}}) L=Loss(ypred​,ytrue​))。要计算损失对底层参数(如第一层权重 w 1 w_1 w1​)的梯度,需要通过链式法则逐层传递导数:
∂ L ∂ w 1 = ∂ L ∂ y pred ⋅ ∂ y pred ∂ f 2 ⋅ ∂ f 2 ∂ f 1 ⋅ ∂ f 1 ∂ w 1 \frac{\partial L}{\partial w_1} = \frac{\partial L}{\partial y_{\text{pred}}} \cdot \frac{\partial y_{\text{pred}}}{\partial f_2} \cdot \frac{\partial f_2}{\partial f_1} \cdot \frac{\partial f_1}{\partial w_1} ∂w1​∂L​=∂ypred​∂L​⋅∂f2​∂ypred​​⋅∂f1​∂f2​​⋅∂w1​∂f1​​

没有链式法则,深层网络的参数梯度计算将变得极其复杂(需要直接对嵌套多层的函数求导),而链式法则通过“分步骤、传梯度”的方式,让反向传播高效可行。

形象例子:用“工厂流水线”理解链式法则
假设一个工厂的产品质量(类比损失 L L L)由三个环节的操作共同决定:

  1. 原料处理(类比输入层 x x x):工人A(类比权重 w 1 w_1 w1​)处理原料,产出半成品1;
  2. 加工组装(类比隐藏层):工人B(类比权重 w 2 w_2 w2​)用半成品1生产半成品2;
  3. 质检包装(类比输出层):工人C(类比权重 w 3 w_3 w3​)用半成品2生产最终产品。

如果最终产品质量不达标(损失 L L L 大),管理者需要追溯每个工人的责任(计算 ∂ L ∂ w 1 , ∂ L ∂ w 2 , ∂ L ∂ w 3 \frac{\partial L}{\partial w_1}, \frac{\partial L}{\partial w_2}, \frac{\partial L}{\partial w_3} ∂w1​∂L​,∂w2​∂L​,∂w3​∂L​):

  • 首先判断“质检包装”对质量的影响:产品质量差有多少比例是工人C的操作导致的( ∂ L ∂ 半成品2 \frac{\partial L}{\partial \text{半成品2}} ∂半成品2∂L​);
  • 再追溯“加工组装”:半成品2的缺陷有多少是工人B导致的( ∂ 半成品2 ∂ 半成品1 \frac{\partial \text{半成品2}}{\partial \text{半成品1}} ∂半成品1∂半成品2​);
  • 最后追溯“原料处理”:半成品1的缺陷有多少是工人A导致的( ∂ 半成品1 ∂ w 1 \frac{\partial \text{半成品1}}{\partial w_1} ∂w1​∂半成品1​)。

链式法则的作用:将“总质量问题”分解为每个环节的责任比例,相乘后得到每个工人对最终质量的影响(例如 ∂ L ∂ w 1 = ∂ L ∂ 半成品2 ⋅ ∂ 半成品2 ∂ 半成品1 ⋅ ∂ 半成品1 ∂ w 1 \frac{\partial L}{\partial w_1} = \frac{\partial L}{\partial \text{半成品2}} \cdot \frac{\partial \text{半成品2}}{\partial \text{半成品1}} \cdot \frac{\partial \text{半成品1}}{\partial w_1} ∂w1​∂L​=∂半成品2∂L​⋅∂半成品1∂半成品2​⋅∂w1​∂半成品1​)。


七、总结

单个神经元通过“加权求和+激活函数”实现非线性变换,是神经网络的基本计算单元;神经网络则通过多层神经元的嵌套计算,实现从输入到输出的特征转换(前向传播),并通过反向传播的梯度计算优化参数。

详细的数值计算过程展示了从输入信号到输出预测的完整逻辑,其中每一步加权求和、激活函数应用、梯度推导都严格遵循数学公式,是理解神经网络工作机制的核心。掌握这些细节,能帮助更深入地调试模型、优化网络结构,为复杂任务(如深度学习)奠定基础。

从零开始:神经网络(1)——什么是人工神经网络 众所周知,人类大脑是人体最复杂的器官,由神经元、神经胶质细胞、神经干细胞和血管组成。神经元(Neuron),也叫神经细胞(Nerve Cell),是携带和传输信息的细胞,是人脑神经系统中最基本的单元。神经元结构如下图所示:图1 神经元结构图神经元结构组成部分介绍:(1)是神经元的中心部分,含有细胞的染色体,能够迅速评估同时接收到的数百上千条信息。其中有些信息可能是兴奋性的(“放电”),有些是抑制性的(“不要放电”),胞体的唤起程度取决于所有传入信息的汇总。胞体相当于一个信息处理器。 阅读详情

相关推荐

机器学习六—深度学习算法之人工神经网络(ANN)

人工神经网络的灵感来自其生物学对应物。生物神经网络使大脑能够以复杂的方式处理大量信息。大脑的生物神经网络由大约1000亿个神经元组成,这是大脑的基本处理单元。神经元通过彼此之间巨大的连接(称为突触)来执行其功能。接收区(receptive zone):树突接收到输入信息。触发区(trigger zone):位于轴突和细胞体交接的地方,决定是否产生神经冲动。传导区(conducting zone):由轴突进行神经冲动的传递。输出区。...

ex_6450的博客 1万+

神经网络详解(基本完成)

Fill you up with petrol概述人工神经网络(artificial neural network,ANN),简称神经网络(neural network,NN),是一种模仿生物神经网络的结构和功能的数学模型或计算模型。神经网络由大量的人工神经元联结进行计算。大多数情况下人工神经网络能在外界信息的基础上改变内部结构,是一种自适应系统。现代神经网络是一种非线性统计性数据建模工具,常用来对

大土的博客 20万+

实现人工神经网络ANN对医疗数据分类

2.3 使用ANN对医疗数据分类IBM在2015年5月宣布推出Watson Health服务,收集健康数据交给Watson超级计算机进行分析。目前IBM Waston Health最主要的应用便是在癌症的诊疗上,通过对医学影像的分析和学习,帮助医生做出对癌症患者的精准诊断。另外一方面,在每一个国家的医疗资源都是十分稀缺的,如何提高基层医生的诊疗水平显得至关重要。我们并不需要智能诊疗会取代医生,因为医

2225

人工神经网络

人工神经网络是对人类大脑进行抽象模型化,建立起的一种按不同方式连接起来的网络。在工程与学术界常称其为神经网络(NN)。

VicXu的博客 1006

给初学者们讲解人工神经网络(ANN)

给初学者们讲解人工神经网络(ANN)

qq_45059014的博客 1007

【深度学习】最强算法之:人工神经网络(ANN)

深度学习必会算法之 ANN

商务合作 | 面试培训 | 职场规划 ==>主页扫码 5150

大数据与人工智能:脑科学与人工神经网络ANN

人工神经网络(ANN, Artificial Neural Networks)是一种受生物神经网络启发的计算模型,用于模拟人类大脑处理信息的方式。它由大量相互连接的节点(称为神经元)组成,这些神经元通过权重连接形成网络。ANN的基础构成包括输入层、隐藏层和输出层。输入层接收原始数据,隐藏层负责提取和处理数据的特征,而输出层则提供最终结果。每个神经元通过激活函数(如Sigmoid、ReLU等)处理输入信号,并将结果传递给下一个层的神经元。这种结构使得ANN能够进行复杂的模式识别和数据分类。

专注 AI、大数据、Python、爬虫、数据分析可视化、机器学习、推荐算法、知识图谱、大模型应用与全栈系统开发,长期沉淀真实项目案例、源码解析、系统设计、部署经验与工程化实践,分享可运行、可复用、可落地的技术方案。 2885

单目和多目视觉统一标定

单目和多目视觉统一标定 一.单目视觉标定 在图像测量过程以及机器视觉应用中,为确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,必须建立相机成像的几何模型,这些几何模型参数就是相机参数。在大多数条件下这些参数必须通过实验与计算才能得到,这个求解参数的过程就称之为相机标定(或摄像机标定)。无论是在图像测量或者机器视觉应用中,相机参数的标定都是非常关键的环节,其标定结果的精度及算法的稳定性直接影响相机工作产生结果的准确性。因此,做好相机标定是做好后续工作的前提,提高标定精度是科研工作的重点所在

吴建明wujianming_110117 2911

深度学习模型:人工神经网络(ANN)详解

然后,将求和结果输入到激活函数中,激活函数的作用是引入非线性因素,使得神经网络能够处理复杂的非线性关系。首先定义输入层的维度,然后添加隐藏层,并指定隐藏层的神经元数量、激活函数等参数,最后定义输出层。深度神经网络(DNN),即包含多个隐藏层的 ANN,在众多领域取得了惊人的成果,推动了人工智能技术的快速进步。然而,在 1969 年,Marvin Minsky 和 Seymour Papert 指出了感知机的局限性,即它无法处理复杂的非线性问题,这一观点使得神经网络的研究陷入了低谷。

池央的博客 7413

跨域问题 - 其他 method 都没有跨域问题,只有delete有跨域的问题

跨域的配置等一切正常,GETPOSTPUTOPTIONS都可以正常访问, 唯独有一个DELETE有跨域的问题, 经过排查发现这个DELETE请求有body, 经过一系列排查, 发现头部有一个不太正常的值是为了避免浏览器的影响, 直接在 postman 中新建一个请求, 竟然也有跨域的问题, 后来把的值改成了请求就可以正常调用了.

galoiszhou的博客 527

ET篇:Google.Protobuf的学习(理解基本的使用流程)

据我目前所知,ET使用的数据交换协议是Google.Protobuf,所以今天就来学习一下,但是网上许多人都是以高下立判的方式讲解的,对新手小白很不友好,所以我今天就以纯小白的视角和大家一起学习 学习环境: .NET Core2.2 .NET Framework 4.7.2 Rider protobuf-csharp-3.7.0-rc-2 Google.Protobuf简介 prot...

设计师养成记 3563

【AI x FPGA自学笔记】一种加速FPGA实现人工神经网络(ANN)的有效设计方法

在文章【1】中,提出并制定了一种基于C++的训练方法,以加速在FPGA中实现人工神经网络(ANN)。所提出的ANN实现方法使用一个自定义的。

Dead_Simba的博客 1955

描述符链表(Descriptor Chain)是什么?

描述符链表是硬件加速数据传输的核心数据结构,通过链式描述符(包含地址、长度、控制标志等)实现DMA自动批量处理,显著降低CPU负载。其工作原理为:CPU初始化链表后,硬件按序处理每个描述符,完成自动跳转与中断通知。在网卡收包、NVMe存储等场景中应用广泛,优势包括批处理、低延迟和灵活调度。需注意内存对齐、缓存一致性等实现细节,优化手段包括预分配描述符池、环形缓冲区等。该技术是网络/存储领域提升吞吐量的关键方案。

guigenyi的专栏 774

人工神经网络(ANN)简单介绍

我自己的关于人工神经网络的理解 机器学习是人工智能的一个分支,可以通过专门的算法来时机器识别数据的模式和趋势,并成功进行预测和分类; 人工神经网络是机器学习中的一个概念; 人工神经元模型 人工神经元就是受自然神经元静息和动作电位的产生机制启发而建立的一个运算模型。神经元通过位于细胞膜或树突上的突触接受信号。当接受到的信号足够大时(超过某个门限值),神经元被激活然后通过轴突发射信号,发射的信...

gehulushang的博客 5586

【ATC/DTC方法第一期】经典平均/昼夜温度周期ATC/DTC方法介绍(含Python代码实现)

【ATC/DTC方法第一期】经典平均/昼夜温度周期ATC/DTC方法介绍(含Python代码实现)

WW、forever的博客 484

uniapp - 解决App端报错reportJSException >>>> exception function:createInstanceContext, exception:white sc

uni-app,安卓Android,苹果ios,安卓app端,苹果App端,uniapp苹果安卓app,uniApp报错,reportJSException>>>>exceptionfunction:createInstanceContext,exception:whitescreencausecreateinstanceContextfailed,运行自定义基座时白屏,uniapp项目运行白屏reportJSException,检查没问题依旧报错,第三方库插件,组件,uniapp打包调试

🏆 前端领域优质创作者 1万+

人工神经网络(ANN):从背景到代码实现的详细解析

人工神经网络是一种强大的机器学习模型,具有广泛的应用前景。本文介绍了ANN的背景和原理,并通过一个简单的代码实现示例,展示了ANN的基本结构和训练过程。希望本文能够帮助读者更好地理解和应用人工神经网络。

qq_53298558的博客 5027

宇树科技嵌入式面试题及参考答案(春晚机器人的公司)

内存对齐是指在内存中为数据对象分配存储空间时,按照一定的规则将数据存储在特定的地址上,以提高内存访问效率。不同的数据类型在内存中都有其特定的对齐要求,例如,int类型通常要求 4 字节对齐,double类型通常要求 8 字节对齐。这意味着数据的存储地址必须是其对齐字节数的整数倍。如果不进行内存对齐,处理器在访问数据时可能需要进行多次内存访问,从而降低了访问效率。指令可以用于控制结构体内存布局,它允许程序员指定结构体成员的对齐方式。其基本用法是在结构体定义之前使用来指定对齐字节数n,其中n。

大模型大数据攻城狮的专栏 3225

ann人工神经网络_深度学习-人工神经网络(ANN)

ann人工神经网络Building your first neural network in less than 30 lines of code. 用不到30行代码构建您的第一个神经网络。 1.What is Deep Learning ? 1.什么是深度学习? Deep learning is that AI function which is able to learn features...

weixin_26752765的博客 3089

一个中科大差生的8年程序员工作总结

今年终于从大菊花厂离职了,离职前收入大概60w不到吧,在某乎属于比较差的,今天终于有空写一下自己的职场故事,也算是给自己近8年的程序员工作做个总结复盘。近8年有些事情做对了,也有更多事情做错了,在这里记录一下,希望能够给后人一些帮助吧,也欢迎私信交流。文笔不好,见谅,有些细节记不清了,如果有出入,就当是我编的这个故事吧。 PS:有几个问题先在这里解释一下,评论就不一一回复了 1、关于差生,我本人在科大时确实成绩偏下,差生主要讲这一点,没其他意思。 2、因为买房是我人生中的大事,我认为需要记录和总结一下

陈小房的自我修炼 5万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

一张图看懂:人工智能、机器学习、深度学习和人工神经网络四个概念之间的相互关系

在这个例子中,人工智能是驾驶员整体的能力,机器学习是他通过经验提升驾驶技巧的过程,深度学习是他应对复杂驾驶情境的能力,而神经网络是支持这些决策的具体技术工具。最外层代表人工智能 (AI),内部依次嵌套机器学习 (ML)、深度学习 (DL) 和人工神经网络 (ANN),展示了它们从广义到狭义的递进关系。这张图,展示了人工智能(AI)、机器学习(ML)、深度学习(DL)和人工神经网络(ANN)之间的相互关系。人工智能(AI)、机器学习(ML)、深度学习(DL)和人工神经网络(ANN)是相互关联的层次性概念。

3012

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

19-人工神经网络(ANN):概述ANN的基本结构和功能

人工神经网络(Artificial Neural Network, ANN)是一种模拟人脑神经元结构和功能的计算模型,广泛应用于计算机科学和人工智能领域。其基本概念源于对生物神经系统的仿生学研究,旨在通过大量相互连接的简单计算单元(即"神经元")来实现复杂的数据处理和模式识别任务。本文将详细介绍ANN的基本结构、功能、特点、应用领域及其未来发展,为读者提供全面而深入的理解。

rengang66的博客 1401

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

什么是人工神经网络(ANN)?

作者 | Ben Dickson 编译 | CDA数据分析师 过去十年中最具影响力的技术之一是人工神经网络,它是深度学习算法的基本组成部分,是人工智能的前沿。 每天使用神经网络的应用程序有很多,例如Google的翻译服务,Apple的Face ID iPhone锁和Amazon的Alexa AI驱动的助手。神经网络也在其他领域的一些重要人工智能突破背后,例如诊断皮肤和乳腺癌,让目光投向自动驾...

CDA数据分析师 2142
上一篇: Transformer架构:解码器部分代码实现(基于PyTorch)
下一篇: Transformer架构:输出部分代码实现(基于PyTorch)
.30-06Springfield
博客等级 码龄7年 321粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值