96SEO 2026-02-23 12:15 13
参数学习矩阵求导链式法则更为高效的参数学习反向传播算法目标计算

\mathcal{L}(y_i,\hat{y}_i)}{\partial
∂z(l)∂L(yi,y^i)合并求梯度误差的反向传播算法过程
Network,FNN也称为多层感知器实际上前馈神经网络由多层Logistic回归模型组成
整个网络中无反馈信号从输入层向输出层单向传播可用一个有向无环图表示
z^{(l)}W^{(l)}a^{(l-1)}b^{(l)}其中
W^{(l-1)}f_{l-1}(z^{(l-1)})b^{(l)}
z(l)W(l)a(l−1)b(l)其中W(l)∈RMl×Ml−1W(l−1)fl−1(z(l−1))b(l)
a(l)fl(z(l))fl(W(l)a(l−1)b(l))
xa^{(0)}\xrightarrow{W_1}z^{(1)}\xrightarrow{f_1()}a^{(1)}\cdots\xrightarrow{f_{L-1}()}a^{(L-1)}\xrightarrow{W_{L}}z^{(L)}\xrightarrow{f_L()}a^{(L)}\phi(x;W;b)
前馈神经网络可以通过逐层的信息传递整个网络可以看做一个复合函数
的隐藏层组成的前馈神经网络只要隐藏层的神经元数量足够就可以以任意精度来近似任何一个定义在实数空间中的有界闭函数
神经网络可以作为一个万能函数用于进行复杂的特征转换或逼近一个条件分布
则相当于在输出层引入分类器神经网络直接输出在不同类别的条件概率
\mathcal{D}\{(x_i,y_i)\}_{i1}^N
\mathcal{R}(W,b)\frac{1}{N}\sum\limits_{i1}^N\mathcal{L}(y_i,\hat{y}_i)\frac{1}{2}\lambda\Vert
R(W,b)N1i1∑NL(yi,y^i)21λ∥W∥F2
W\Vert_F^2\sum\limits_{l1}^L\sum\limits_{i1}^{M_l}\sum\limits_{j1}^{M_{l-1}}\left(\omega_{ij}^{(l)}\right)^2
∥W∥F2l1∑Li1∑Mlj1∑Ml−1(ωij(l))2
W^{(l)}-\alpha\left(\frac{1}{N}\sum\limits_{i1}^N\frac{\partial
\mathcal{L}(y_i,\hat{y}_i)}{\partial
b^{(l)}-\alpha\left(\frac{1}{N}\sum\limits_{i1}^N\frac{\partial
\mathcal{L}(y_i,\hat{y}_i)}{\partial
W(l)b(l)←W(l)−α∂W(l)∂R(W,b)←W(l)−α(N1i1∑N∂W(l)∂L(yi,y^i)λW(l))←b(l)−α∂b(l)∂R(W,b)←b(l)−α(N1i1∑N∂b(l)∂L(yi,y^i))
分子布局结果的行维度与分子行维度相同分母布局结果的行维度与分母行维度相同
不论是向量也好矩阵也好对向量求导也好对矩阵求导也好结果都可以转化成标量之间的求导最后把结果按照一定的方式拼接起来以向量或者矩阵的形式表达出来。
如果向量或矩阵对标量求导则以分子布局为主如果标量对向量或矩阵求导则以分母布局为主向量对向量求导有些分歧一般以分子布局的雅克比矩阵为主。
x\left[\begin{matrix}x^{(1)}\\x^{(2)}\\\vdots\\x^{(M)}\end{matrix}\right]\in
y\left[\begin{matrix}y_1\\y_2\\\vdots\\y_N\end{matrix}\right]\in
∂x∂y[∂x∂y1,∂x∂y2,⋯,∂x∂yN]
∂x1∂y1∂x2∂y1⋮∂xM∂y1∂x1∂y2∂x2∂y2⋮∂xM∂y2⋯⋯⋱⋯∂x1∂yN∂x2∂yN⋮∂xM∂yN
yf_5(f_4(f_3(f_2(f_1(x)))))\rightarrow
yf5(f4(f3(f2(f1(x)))))→∂x∂y∂f4∂f5∂f3∂f4∂f2∂f3∂f1∂f2∂x∂f1
y_ig_i(x)y[g_1(x),g_2(x),\cdots,g_M(x)]\in
z_if_i(y)z\left[f_1(y),f_2(y),\cdots,f_N(y)\right]\in
{yigi(x)zifi(y)y[g1(x),g2(x),⋯,gM(x)]∈RMz[f1(y),f2(y),⋯,fN(y)]∈RN
y_ig_i(x)y[g_1(x),g_2(x),\cdots,g_K(x)]\in
z_if_i(y)z\left[f_1(y),f_2(y),\cdots,f_N(y)\right]\in
{yigi(x)zifi(y)y[g1(x),g2(x),⋯,gK(x)]∈RKz[f1(y),f2(y),⋯,fN(y)]∈RN
y_ig_i(X)y[g_1(X),g_2(X),\cdots,g_K(X)]\in
{yigi(X)zif(y)∈Ry[g1(X),g2(X),⋯,gK(X)]∈RK
∂xij∂z∂xij∂y1×K∂y∂zK×1∈R
梯度下降法需要计算损失函数对参数的偏导数如果通过链式法则逐一对每个参数求偏导会很低效
W^{(l)}-\alpha\left(\frac{1}{N}\sum\limits_{i1}^N\frac{\partial
\mathcal{L}(y_i,\hat{y}_i)}{\partial
b^{(l)}-\alpha\left(\frac{1}{N}\sum\limits_{i1}^N\frac{\partial
\mathcal{L}(y_i,\hat{y}_i)}{\partial
W(l)b(l)←W(l)−α∂W(l)∂R(W,b)←W(l)−α(N1i1∑N∂W(l)∂L(yi,y^i)λW(l))←b(l)−α∂b(l)∂R(W,b)←b(l)−α(N1i1∑N∂b(l)∂L(yi,y^i))
\mathcal{L}(y_i,\hat{y}_i)}{\partial
\mathcal{L}(y_i,\hat{y}_i)}{\partial
\mathcal{L}(y_i,\hat{y}_i)}{\partial
\mathcal{L}(y_i,\hat{y}_i)}{\partial
\mathcal{L}(y_i,\hat{y}_i)}{\partial
∂wij(l)∂L(yi,y^i)∂wij(l)∂z(l)∂z(l)∂L(yi,y^i)∂b(l)∂L(yi,y^i)∂b(l)∂z(l)∂z(l)∂L(yi,y^i)
M_{l-1}}a^{(l-1)}_{M_{l-1}\times
zMl×1(l)WMl×Ml−1(l)aMl−1×1(l−1)bMl(l)
\mathcal{L}(y_i,\hat{y}_i)}{\partial
\mathcal{L}(y_i,\hat{y}_i)}{\partial
层神经元的敏感程度不同神经元对网络能力的贡献程度从而比较好地解决了贡献度分配问题
\delta^{(l)}\overset{\Delta}{}\frac{\partial
\mathcal{L}(y_i,\hat{y}_i)}{\partial
\mathcal{L}(y_i,\hat{y}_i)}{\partial
\mathcal{L}(y_i,\hat{y}_i)}{\partial
\mathcal{L}(y_i,\hat{y}_i)}{\partial
\right]\overset{\Delta}{}\left[
∂z1(l)∂L(yi,y^i)∂z2(l)∂L(yi,y^i)⋮∂zMl(l)∂L(yi,y^i)
\frac{z^{(l1)}}{a^{(l)}}\xlongequal{分母布局}\left[
w11w12⋮w1Mlw21w22⋮w2Ml⋯⋯⋱⋯wMl11wMl12⋮wMl1Ml
a^{(l)}f_l(z^{(l)})\left(\begin{matrix}f_l(z_1^{(l)})\\f_l(z_2^{(l)})\\\vdots\\f_l(z_{M_l}^{(l)})\\\end{matrix}\right)
fl(z1(l))fl(z2(l))⋮fl(zMl(l))
z^{(l)}\left(\begin{matrix}z_1^{(l)}\\z^{(l)}_2\\\vdots\\z_{M_l}^{(l)}\end{matrix}\right)
z_{M_l}^{(l)}}\cdots\frac{\partial
∂z1(l)∂fl(z1(l))∂z2(l)∂fl(z1(l))⋮∂zMl∂fl(z1(l))∂z1(l)∂fl(z2(l))∂z2(l)∂fl(z2(l))⋮∂zMl(l)∂fl(z2(l))⋯⋯⋱⋯∂z1(l)∂fl(zMl(l))∂z2(l)∂fl(zMl(l))⋮∂zMl(l)∂fl(zMl(l))
∂z1(l)∂fl(z1(l))0⋮00∂z2(l)∂fl(z2(l))⋮0⋯⋯⋱⋯00⋮∂zMl(l)∂fl(zMl(l))
diag(∂zi(l)∂fl(zi(l)))∈RMl×Ml,i1,⋯,Ml
\sum\limits_{t1}^{M_{l1}}w_{t1}\delta_t^{(l1)}\\
\sum\limits_{t1}^{M_{l1}}w_{t2}\delta_t^{(l1)}\\
\sum\limits_{t1}^{M_{l1}}w_{tM_{l1}}\delta_t^{(l1)}\\
z_i^{(l)}}\right)\left[W^{(l1)}\right]^T\cdot
\sum\limits_{t1}^{M_{l1}}w_{t1}\delta_t^{(l1)}\\
\sum\limits_{t1}^{M_{l1}}w_{t2}\delta_t^{(l1)}\\
\sum\limits_{t1}^{M_{l1}}w_{tM_{l1}}\delta_t^{(l1)}\\
z_1^{(l)}}\sum\limits_{t1}^{M_{l1}}w_{t1}\delta_t^{(l1)}\\
z_i^{(l)}}\sum\limits_{t1}^{M_{l1}}w_{ti}\delta_t^{(l1)}\\
z_{M_l}^{(l)}}\sum\limits_{t1}^{M_{l1}}w_{tM_{l}}\delta_t^{(l1)}
\right]\overset{\Delta}{}\left[\begin{matrix}
[W(l1)]T⋅δ(l1)diag(∂zi(l)∂fl(zi(l)))[W(l1)]T⋅δ(l1)
w11w12⋮w1Mlw21w22⋮w2Ml⋯⋯⋱⋯wMl11wMl12⋮wMl1Ml
t1∑Ml1wt1δt(l1)t1∑Ml1wt2δt(l1)⋮t1∑Ml1wtMl1δt(l1)
∂z1(l)∂fl(z1(l))0⋮00∂z2(l)∂fl(z2(l))⋮0⋯⋯⋱⋯00⋮∂zMl(l)∂fl(zMl(l))
t1∑Ml1wt1δt(l1)t1∑Ml1wt2δt(l1)⋮t1∑Ml1wtMl1δt(l1)
∂z1(l)∂fl(z1(l))t1∑Ml1wt1δt(l1)⋮∂zi(l)∂fl(zi(l))t1∑Ml1wtiδt(l1)⋮∂zMl(l)∂fl(zMl(l))t1∑Ml1wtMlδt(l1)
\mathcal{L}(y_i,\hat{y}_i)}{\partial
w_{ij}^{(l)}}\left[0,\cdots,a_j^{(l-1)},\cdots
a_j^{(l-1)}\delta^{(l)}_ia^{(l-1)}_j\frac{\partial
z_i^{(l)}}\sum\limits_{t1}^{M_{l1}}w_{ti}\delta_t^{(l1)}\\
\mathcal{L}(y_i,\hat{y}_i)}{\partial
W^{(l)}}\right]_{ij}\left[\delta^{(l)}\cdot
∂wij(l)∂L(yi,y^i)即[∂W(l)∂L(yi,y^i)]ij[0,⋯,aj(l−1),⋯0]
aj(l−1)δi(l)aj(l−1)∂zi(l)∂fl(zi(l))t1∑Ml1wtiδt(l1)⟺[δ(l)⋅a(l−1)]ij[δ(l)⋅a(l−1)]ij
\mathcal{L}(y_i,\hat{y}_i)}{\partial
\mathcal{L}(y_i,\hat{y}_i)}{\partial
∂W(l)∂L(yi,y^i)δ(l)⋅a(l−1)∈RMl×Ml−1
\mathcal{L}(y_i,\hat{y}_i)}{\partial
\delta^{(l)}\left[\begin{matrix}
z_1^{(l)}}\sum\limits_{t1}^{M_{l1}}w_{t1}\delta_t^{(l1)}\\
z_i^{(l)}}\sum\limits_{t1}^{M_{l1}}w_{ti}\delta_t^{(l1)}\\
z_{M_l}^{(l)}}\sum\limits_{t1}^{M_{l1}}w_{tM_{l}}\delta_t^{(l1)}
\left[\left(W^{(l1)}\right)^T\delta^{(l1)}\right]
∂z1(l)∂fl(z1(l))t1∑Ml1wt1δt(l1)⋮∂zi(l)∂fl(zi(l))t1∑Ml1wtiδt(l1)⋮∂zMl(l)∂fl(zMl(l))t1∑Ml1wtMlδt(l1)
在计算出每一层的误差项后就可以求得本层的梯度可以用随机梯度下降法来训练前馈神经网络
神经网络的参数主要通过梯度下降来优化需要手动用链式求导来计算风险函数对每个参数的梯度并转换为计算机程序。
目前主流的深度学习框架都包含了自动梯度计算功能只需要考虑网络结构并用代码实现大大提高了开发效率
则每个参数都需要单独施加扰动并计算梯度。
假设每次正向传播的计算复杂度为
符号计算一般来讲是对输入的表达式用计算机来通过迭代或递归使用一些事先定义的规则进行转换当转换结果不能再继续使用变换规则时便停止计算
一般包括对数学表达式的化简、因式分解、微分、积分、解代数方程、求解常微分方程等运算
符号微分可以在编译时就计算梯度的数学表示并进一步利用符号计算方法进行优化
编译时间较长特别是对于循环需要很长时间进行编译为了进行符号微分一般需要设计一种专门的语言来表示数学表达式并且要对变量符号进行预先声明很难对程序进行调试
复合函数关于参数的导数可以通过计算图路径上节点的所有导数连乘法得到
如果函数与参数之间有多条路径则将这些路径上的导数相加可以得到最终的梯度
符号微分在编译阶段先构造一个符合函数的计算图通过符号计算得到导数表达式并对表达式进行优化在程序运行运行阶段才代入变量数值计算导数
无需事先编译程序运行阶段边计算边记录计算图计算图上的局部梯度都直接代入数值进行计算然后用前向或反向模式计算最终梯度
\left[\left(W^{(l1)}\right)^T\delta^{(l1)}\right]
在饱和区导数接近于0这样误差经过每一层传递会不断衰减当网络层数很深时梯度就会不断衰减
自然图像中的问题有局部不变形比如尺寸缩放、平移、旋转等操作不影响语义特征但全连接的前馈神经网络很难提取这些局部不变的特征——数据增强
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback