从流形的观点分析神经网络

从流形的观点分析神经网络

无意中看到一本用数学分析神经网络的书,里面用各种数学工具来分析神经网络(如数学分析、线性代数、流形、信息论、概率论、优化等),书的信息如下:

Ovidiu Calin, Deep Learning Architectures - A Mathematical Approach, Springer, 2020.

我看了用流形解释神经网络那一章的前面几页,觉得写的还不错,记录一下。

考虑一个神经元,输入是 x ∈ R n \textbf{x}\in \mathbb{R}^n x∈Rn,输出是 y = σ ( w T x + b ) ∈ R y=\sigma(w^T\textbf{x}+b )\in \mathbb{R} y=σ(wTx+b)∈R。不妨取 σ \sigma σ 是 logistic function。则集合
S = { σ ( w T x + b ) ; w ∈ R n , b ∈ R } S=\{\sigma(w^T\textbf{x}+b );w\in\mathbb{R}^n,b\in \mathbb{R} \} S={σ(wTx+b);w∈Rn,b∈R}

是一个 n + 1 n+1 n+1 维的流形。它可以看成是 R n \mathbb{R}^n Rn上全体连续函数空间(其维数是无穷维)的一个子流形。事实上,计算得
∂ y ∂ b = σ ′ ( w T x + b ) = y ( 1 − y ) ∂ y ∂ w j = σ ′ ( w T x + b ) x j = y ( 1 − y ) x j \frac{\partial{y}}{\partial{b}}=\sigma'(w^T\textbf{x}+b )=y(1-y) \\ \frac{\partial{y}}{\partial{w_j}}=\sigma'(w^T\textbf{x}+b )x_j=y(1-y)x_j ∂b∂y=σ′(wTx+b)=y(1−y)∂wj∂y=σ′(wTx+b)xj=y(1−y)xj

我们说明 { ∂ y ∂ b , ∂ y ∂ w j } \{\frac{\partial{y}}{\partial{b}},\frac{\partial{y}}{\partial{w_j}}\} {∂b∂y,∂wj∂y}线性无关。若 α 0 ∂ y ∂ b + ∑ i = 1 n α i ∂ y ∂ w i = 0 \alpha_0\frac{\partial{y}}{\partial{b}}+\sum_{i=1}^{n}\alpha_i\frac{\partial{y}}{\partial{w_i}}=0 α0∂b∂y+∑i=1nαi∂wi∂y=0,则代入得 α 0 y ( 1 − y ) + ∑ i = 1 n α i y ( 1 − y ) x j = 0 \alpha_0y(1-y) +\sum_{i=1}^{n}\alpha_iy(1-y) x_j=0 α0y(1−y)+∑i=1nαiy(1−y)xj=0,由 y ( 1 − y ) ≠ 0 y(1-y)\neq0 y(1−y)=0 知道 α 0 + ∑ i = 1 n α i x j = 0 \alpha_0 +\sum_{i=1}^{n}\alpha_i x_j=0 α0+∑i=1nαixj=0。再由 x j x_j xj任意性即得结论。从而Jacobian矩阵 J y J_y Jy满秩(为 n + 1 n+1 n+1)。

接下来,训练神经网络的过程实际上是拟合一个函数 z = z ( x ) z=z(\textbf{x}) z=z(x)。如果 z z z在流形 S S S上,那么存在 w ∗ ∈ R n , b ∗ ∈ R w^*\in\mathbb{R}^n,b^*\in \mathbb{R} w∗∈Rn,b∗∈R使得 z = y ∗ = y ( w ∗ , b ∗ ) z=y^*=y(w^*,b^*) z=y∗=y(w∗,b∗)。然而,更一般的情况是 z ∉ S z\notin S z∈/S,这意味着需要找 w ∗ ∈ R n , b ∗ ∈ R w^*\in\mathbb{R}^n,b^*\in \mathbb{R} w∗∈Rn,b∗∈R使得
( w ∗ , b ∗ ) = a r g m i n w , b d i s t ( z , S ) (w^*,b^*)=\mathop{argmin}\limits_{w,b} dist(z,S) (w∗,b∗)=w,bargmindist(z,S)

给定初值 ( w 0 , b 0 ) (w_0,b_0) (w0,b0),一个学习算法会产生一个序列 ( w n , b n ) n (w_n,b_n)_n (wn,bn)n,期望它收敛到 ( w ∗ , b ∗ ) (w^*,b^*) (w∗,b∗)。按作者原话:If the parameters update is made continuously (implied by an infinitesimal learning rate), then we obtain a curve c ( t ) = ( w ( t ) , b ( t ) ) c(t) = (w(t),b(t)) c(t)=(w(t),b(t)) joining ( w 0 , b 0 ) (w_0,b_0) (w0,b0) and ( w ∗ , b ∗ ) (w^*,b^*) (w∗,b∗). This can be lifted to the curve γ ( t ) = y ∘ c ( t ) γ(t) = y \circ c(t) γ(t)=y∘c(t) on the manifold S S S. The fastest learning algorithm corresponds to the "shortest" curve between y ( w 0 , b 0 ) y(w_0,b_0) y(w0,b0) and y ( w ∗ , b ∗ ) y(w^*,b^*) y(w∗,b∗). The attribute "shortest" depends on the intrinsic geometry of the manifold S S S, and this topic will be discussed in the next section. 这样这个优化问题就可以和后面的黎曼度量、测地线等概念建立关联了。

对一般的神经网络,如果我们增大神经元的个数,则对应的参数也相应增多, S S S的维数也增加。记 M = C ( [ 0 , 1 ] ) M=C([0,1]) M=C([0,1]),我们知道对于任意固定的 ϵ > 0 \epsilon>0 ϵ>0,以及任意的 f ∈ M f\in M f∈M,总有一个足够高维数的 S S S使得 d i s t ( f , S ) < ϵ dist(f,S)<\epsilon dist(f,S)<ϵ,其中
d i s t ( f , S ) = i n f s ∈ S m a x x ∈ [ 0 , 1 ] ∣ f ( x ) − s ( x ) ∣ dist(f,S)=\mathop{inf}\limits_{s\in S}\mathop{max}\limits_{x\in [0,1]}|f(x)-s(x)| dist(f,S)=s∈Sinfx∈[0,1]max∣f(x)−s(x)∣

然而实际问题中神经元个数是受限的,如何处理也是作者讨论的话题。

相关推荐
华清元宇宙实验中心3 分钟前
【每天学点AI】前向传播、损失函数、反向传播
深度学习·机器学习·ai人工智能
可均可可25 分钟前
C++之OpenCV入门到提高005:005 图像操作
c++·图像处理·opencv·图像操作
DevinLGT27 分钟前
6Pin Type-C Pin脚定义:【图文讲解】
人工智能·单片机·嵌入式硬件
宋一诺3331 分钟前
机器学习—高级优化方法
人工智能·机器学习
龙的爹233344 分钟前
论文 | The Capacity for Moral Self-Correction in LargeLanguage Models
人工智能·深度学习·机器学习·语言模型·自然语言处理·prompt
Mr.简锋1 小时前
opencv视频读写
人工智能·opencv·音视频
Baihai_IDP1 小时前
「混合专家模型」可视化指南:A Visual Guide to MoE
人工智能·llm·aigc
寰宇视讯1 小时前
“津彩嘉年,洽通天下” 2024中国天津投资贸易洽谈会火热启动 首届津彩生活嘉年华重磅来袭!
大数据·人工智能·生活
Light602 小时前
低代码牵手 AI 接口:开启智能化开发新征程
人工智能·python·深度学习·低代码·链表·线性回归
墨绿色的摆渡人2 小时前
用 Python 从零开始创建神经网络(六):优化(Optimization)介绍
人工智能·python·深度学习·神经网络