【深度学习入门基础】一、从线性代数和微积分的角度看神经网络

这篇深度学习入门文章从矩阵乘法和微积分的角度解释神经网络。通过矩阵运算理解神经网络的结构,使用梯度下降和反向传播进行参数训练,以最小化损失函数,使预测输出接近实际值。适合初学者快速掌握神经网络基本原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【深度学习入门基础】从线性代数和微积分的角度看神经网络

这是深度学习入门系列文章,我们企图用最简洁的语言、最干净的表达,让读者快速获取到他所想要的。本系列文章持续更新。一些网上能查到的基础知识,诸如激活函数有哪些等,不再介绍。

导言

大多数介绍深度学习的资料,一开始就从生物神经元、轴突、树突、刺激等等讲起,本来很简单的东西,却被介绍得云里雾里。本文将从矩阵乘法和导数的角度入手,让你一下子 get 到什么是神经网络。

矩阵乘法看神经网络

问题是这样一个问题:假设有一个列向量 x \mathbf{x} x,希望它通过一个“黑箱子”的操作之后,出来的向量和另外的一个等长度的已知向量 y \mathbf{y} y 尽可能地“接近”,如何衡量“接近”?且听稍后介绍。

这里的“黑箱子”就是一个网络,它可以简单地理解为矩阵乘向量的嵌套,即:
F ( x ) : = σ ( A n [ ⋯ ( A 3 [ σ ( A 2 [ σ ( A 1 x + b 1 ) ] + b 2 ) ] + b 3 ) ] + b n ) F(\mathbf{x}):=\sigma(A_n[\cdots (A_3[\sigma(A_2[\sigma(A_1\mathbf{x}+\mathbf{b_1})]+\mathbf{b_2})]+\mathbf{b_3})]+\mathbf{b_n}) F(x):=σ(An[(A3[σ(A2[σ(A1x+b1)]+b2)]+b3)]+bn)
这里的 A 1 、 A 2 … A n A_1、A_2…A_n A1A2An 是参数矩阵,里面的元素都是一些未知的参数,这里的 b 1 、 b 2 … b n \mathbf b_1、\mathbf b_2… \mathbf b_n b1b2bn 是参数列向量。 A i , b i , i = 1 , ⋯   , n A_i, \mathbf{b}_i, i=1,\cdots,n Ai,bi,i=1,,n 的规模总是让上式是合理的。 σ \sigma σ 是一个函数,人们喜欢称之为激活函数,它作用于一个向量表示分别作用于向量的每个分量。 A i , b i A_i, \mathbf{b}_i Ai,bi 中元素都是未知量,我们统称为参数。

举个简单的例子。令 A = [ w 1 , w 2 ] A = [w_1,w_2] A=[w1,w2]。取激活函数为 sigmoid 函数:
σ ( z ) = 1 1 + e − z \sigma(z)=\frac{1}{1+e^{-z}} σ(z)=1+ez1
那么, F ( x ) = σ ( A x + b ) F(\mathbf{x}) = \sigma(A\mathbf{x}+b) F(x)=σ(Ax+b),这就是逻辑回归的输出形式。逻辑回归就是一种最简单的神经网络。

微积分视角看训练

由上可知, F ( x ) F(\mathbf{x}) F(x) 本质上就是一个含参的表达式,神经网络训练要做的事情就是调整参数,使得对于已知的 x \mathbf{x} x y \mathbf{y} y F ( x ) F(\mathbf{x}) F(x) y \mathbf{y} y 尽可能地近。度量向量之间的远近有很多种度量,比如欧式距离:
L ( A 1 , A 2 , ⋯   , A n , b 1 , ⋯   , b n ) : = ∣ ∣ F ( x ) − y ∣ ∣ \mathcal{L} (A_1,A_2,\cdots,A_n,\mathbf{b}_1,\cdots,\mathbf{b}_n):= || F(\mathbf{x}) - \mathbf{y} || L(A1,A2,,An,b1,,bn):=F(x)y
∣ ∣ ⋅ ∣ ∣ || \cdot || 表示向量 2 范数。我们也称 $\mathcal{L} $ 为损失函数。显然,这里的 L \mathcal{L} L 只是一个关于参数的函数,优化上称之为目标函数,我们想做的就是关于这个函数的参数极小化目标函数。

给定一个目标函数,我们要关于参数极小化它,这是一个无约束优化问题,在数值上有很多求解方法,神经网络采用梯度下降。梯度下降的步长,被人们称为“学习率”。

要用梯度下降,就要求损失函数的梯度,梯度是由目标函数对各个参数求导组成的一个向量,所以, L \mathcal{L} L 需要对各个参数求导。 F ( x ) F(\mathbf{x}) F(x) 的表达式可以看出,不同层的参数之间存在嵌套关系,微积分告诉我们,复合类型的函数求导,需要用到链式法则,链式法则在神经网络上的应用,人们喜欢称之为“反向传播”。

上面提到的仅仅是一组输入输出的情况,当有多组输入输出 { x i , y i , i = 1 , 2 , ⋯   , N } \{\mathbf x_i,\mathbf y_i, i = 1,2,\cdots,N\} {xi,yi,i=1,2,,N} 的时候,我们如此定义损失函数:
L ( A 1 , A 2 , ⋯   , A n , b 1 , ⋯   , b n ) : = 1 2 ∑ i = 1 N ∣ ∣ F ( x i ) − y i ∣ ∣ 2 \mathcal{L} (A_1,A_2,\cdots,A_n,\mathbf{b}_1,\cdots,\mathbf{b}_n):= \frac{1}{2}\sum_{i=1}^N || F(\mathbf{x}_i) - \mathbf{y}_i ||^2 L(A1,A2,,An,b1,,bn):=21i=1NF(xi)yi2
训练的优化过程和上述是一致的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陆嵩

有打赏才有动力,你懂的。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值