您好,欢迎来到榕意旅游网。
搜索
您的当前位置:首页winogard一维运算参数详细推导

winogard一维运算参数详细推导

来源:榕意旅游网


对于winogard算法而言,我初始不太明白几个参数矩阵的含义及具体过程,于是进行了详细的证明和参数分析如下。

一维卷积的定义

经典的例子:输入信号为:   d = [ d 0 , d 1 , d 2 , d 3 ] T   \ d=[d{_{0}},d{_{1}},d{_{2}},d{_{3}}]^{T} \,  d=[d0,d1,d2,d3]T
卷积核为:   g = [ g 0 , g 1 , g 2 ] T   \ g=[g{_{0}},g{_{1}},g{_{2}}]^{T} \,  g=[g0,g1,g2]T
卷积核指的是图像处理时,给定输入图像,输入图像中一个小区域中像素加权后成为输出图像中的每个对应的元素,权值由一个函数定义,这个函数就是卷积核。

根据一维wingoard卷积运算的定义可知:
  F ( 2 , 3 ) = [ d 0 d 1 d 2 d 1 d 2 d 3 ] [ g 0 g 1 g 2 ] = [ d 0 g 0 + d 1 g 1 + d 2 g 2 d 1 g 0 + d 2 g 1 + d 3 g 2 ] = [ r 0 r 1 ]   \ F(2,3)=\left[\begin{matrix}d_{_0}&d_{_1}&d_{_2}\\ d_{_1}&d_{_2}&d_{_3}\end{matrix} \right]\left[\begin{matrix} g_{_0}\\ g_{_1}\\g_{_2} \end{matrix} \right]=\left[ \begin{matrix} d_{_0}g_{_0}+d_{_1}g_{_1}+d_{_2}g_{_2}\\d_{_1}g_{_0}+d_{_2}g_{_1}+d_{_3}g_{_2} \end{matrix} \right]=\left[\begin{matrix}r_{_0}\\r_{_1} \end{matrix}\right] \,  F(2,3)=[d0d1d1d2d2d3]g0g1g2=[d0g0+d1g1+d2g2d1g0+d2g1+d3g2]=[r0r1]

第一步推导

首先证明
  F ( 2 , 3 ) = [ d 0 g 0 + d 1 g 1 + d 2 g 2 d 1 g 0 + d 2 g 1 + d 3 g 2 ] = [ m 1 + m 2 + m 3 m 2 − m 3 − m 4 ]   \ F(2,3)=\left[\begin{matrix}d_{_0}g_{_0}+d_{_1}g_{_1}+d_{_2}g_{_2}\\d_{_1}g_{_0}+d_{_2}g_{_1}+d_{_3}g_{_2}\end{matrix}\right]=\left[\begin{matrix} m_{_1}+m_{_2}+m_{_3}\\m_{_2}-m_{_3}-m_{_4}\end{matrix}\right] \,  F(2,3)=[d0g0+d1g1+d2g2d1g0+d2g1+d3g2]=[m1+m2+m3m2m3m4]
其中:
  m 1 = ( d 0 − d 2 ) g 0 m 2 = ( d 1 + d 2 ) g 0 + g 1 + g 2 2 m 3 = ( d 2 − d 1 ) g 0 − g 1 + g 2 2 m 4 = ( d 1 − d 3 ) g 2   \ m_{1}=(d_{0}-d_{2})g_{0} \quad\quad\quad m_{2}=(d_{1}+d_{2})\frac{g_{0}+g_{1}+g_{2}}{2}\\ m_{3}=(d_{2}-d_{1})\frac{g_{0}-g_{1}+g_{2}}{2} \quad m_{4}=(d_{1}-d_{3})g_{2} \,  m1=(d0d2)g0m2=(d1+d2)2g0+g1+g2m3=(d2d1)2g0g1+g2m4=(d1d3)g2

  m 1 + m 2 + m 3 = ( d 0 − d 2 ) g 0 + ( d 1 + d 2 ) g 0 + g 1 + g 2 2 + ( d 2 − d 1 ) g 0 − g 1 + g 2 2 = g 0 ( d 0 − d 2 + d 1 + d 2 2 + d 2 − d 1 2 ) + g 1 ( d 1 + d 2 2 − d 2 − d 1 2 ) + g 2 ( d 1 + d 2 2 + d 2 − d 1 2 ) = g 0 d 0 + g 1 d 1 + g 2 d 2   \ m_{1}+m_{2}+m_{3}=\\(d_{0}-d_{2})g_{0}+(d_{1}+d_{2})\frac{g_{0}+g_{1}+g_{2}}{2}+(d_{2}-d_{1})\frac{g_{0}-g_{1}+g_{2}}{2}=\\g_{0}(d_{0}-d_{2}+\frac{d_{1}+d_{2}}{2}+\frac{d_{2}-d_{1}}{2})+g_{1}(\frac{d_{1}+d_{2}}{2}-\frac{d_{2}-d_{1}}{2})+g_{2}(\frac{d_{1}+d_{2}}{2}+\frac{d_{2}-d_{1}}{2})\\=g_{0}d_{0}+g_{1}d_{1}+g_{2}d_{2} \,  m1+m2+m3=(d0d2)g0+(d1+d2)2g0+g1+g2+(d2d1)2g0g1+g2=g0(d0d2+2d1+d2+2d2d1)+g1(2d1+d22d2d1)+g2(2d1+d2+2d2d1)=g0d0+g1d1+g2d2
  m 2 − m 3 − m 4 = ( d 1 + d 2 ) g 0 + g 1 + g 2 2 − ( d 2 − d 1 ) g 0 − g 1 + g 2 2 − ( d 1 − d 3 ) g 2 = g 0 ( d 1 + d 2 2 − d 2 − d 1 2 ) + g 1 ( d 1 + d 2 2 + d 2 − d 1 2 ) + g 2 ( d 1 + d 2 2 − d 2 − d 1 2 − ( d 1 − d 3 ) ) = g 0 d 1 + g 1 d 2 + g 2 d 3   \ m_{2}-m_{3}-m_{4}=\\(d_{1}+d_{2})\frac{g_{0}+g_{1}+g_{2}}{2} -(d_{2}-d_{1})\frac{g_{0}-g_{1}+g_{2}}{2}-(d_{1}-d_{3})g_{2} =\\g_{0}(\frac{d_{1}+d_{2}}{2}-\frac{d_{2}-d_{1}}{2})+ g_{1}(\frac{d_{1}+d_{2}}{2}+\frac{d_{2}-d_{1}}{2})+ g_{2}(\frac{d_{1}+d_{2}}{2}-\frac{d_{2}-d_{1}}{2}-(d_{1}-d_{3}))\\=g_{0}d_{1}+g_{1}d_{2}+g_{2}d_{3} \,  m2m3m4=(d1+d2)2g0+g1+g2(d2d1)2g0g1+g2(d1d3)g2=g0(2d1+d22d2d1)+g1(2d1+d2+2d2d1)+g2(2d1+d22d2d1(d1d3))=g0d1+g1d2+g2d3

由此可以证明:   F ( 2 , 3 ) = [ d 0 g 0 + d 1 g 1 + d 2 g 2 d 1 g 0 + d 2 g 1 + d 3 g 2 ] = [ m 1 + m 2 + m 3 m 2 − m 3 − m 4 ]   \\\ F(2,3)=\left[\begin{matrix}d_{_0}g_{_0}+d_{_1}g_{_1}+d_{_2}g_{_2}\\d_{_1}g_{_0}+d_{_2}g_{_1}+d_{_3}g_{_2}\end{matrix}\right]=\left[\begin{matrix} m_{_1}+m_{_2}+m_{_3}\\m_{_2}-m_{_3}-m_{_4}\end{matrix}\right] \,  F(2,3)=[d0g0+d1g1+d2g2d1g0+d2g1+d3g2]=[m1+m2+m3m2m3m4]

参数矩阵的推导

首先推导   A T   \ A^{T}\,  AT

  F ( 2 , 3 ) = A T . M ,   \ F(2,3)=A^{T}.M, \,  F(2,3)=AT.M,其中   M = [ m 1 m 2 m 3 m 4 ]   \ M=\left[\begin{matrix} m_{1}\\m_{2}\\m_{3}\\m_{4}\end{matrix}\right]\,  M=m1m2m3m4;
由此可以推出:
  F ( 2 , 3 ) = [ m 1 + m 2 + m 3 m 2 − m 3 − m 4 ] = [ 1 1 1 0 0 1 − 1 − 1 ] [ m 1 m 2 m 3 m 4 ] = A T . M   \ F(2,3)=\left[\begin{matrix} m_{1}+m_{2}+m_{3}\\ m_{2}-m_{3}-m_{4}\end{matrix}\right] =\left[\begin{matrix}1 \quad1\quad1\quad0\\0\quad1\quad-1\quad-1\end{matrix}\right]\left[\begin{matrix} m_{1}\\m_{2}\\m_{3}\\m_{4}\end{matrix}\right]=A^{T}.M \,  F(2,3)=[m1+m2+m3m2m3m4]=[11100111]m1m2m3m4=AT.M

  A T = [ 1 1 1 0 0 1 − 1 − 1 ]   \ A^{T}=\left[\begin{matrix} 1 \quad1\quad1\quad0\\0\quad1\quad-1\quad-1\end{matrix}\right]\,  AT=[11100111];

推导   G 和 B T   \ G和B^{T}\,  GBT

  M = [ ( G ⋅ g ) ⊙ ( B T ⋅ d ) ]   \ M=[(G\cdot g)\odot(B^{T}\cdot d)] \,  M=[(Gg)(BTd)]
  M = [ m 1 = ( d 0 − d 2 ) g 0 m 2 = ( d 1 + d 2 ) g 0 + g 1 + g 2 2 m 3 = ( d 2 − d 1 ) g 0 − g 1 + g 2 2 m 4 = ( d 1 − d 3 ) g 2 ]   \ M=\left[\begin{matrix} m_{1}=(d_{0}-d_{2})g_{0} \\ m_{2}=(d_{1}+d_{2})\frac{g_{0}+g_{1}+g_{2}}{2}\\ m_{3}=(d_{2}-d_{1})\frac{g_{0}-g_{1}+g_{2}}{2} \\ m_{4}=(d_{1}-d_{3})g_{2}\\ \end{matrix}\right] \,  M=m1=(d0d2)g0m2=(d1+d2)2g0+g1+g2m3=(d2d1)2g0g1+g2m4=(d1d3)g2
  G ⋅ g = [ g 0 g 0 + g 1 + g 2 2 g 0 − g 1 + g 2 2 g 2 ] = [ 1 0 0 1 2 1 2 1 2 1 2 − 1 2 1 2 0 0 1 ] [ g 0 g 1 g 2 ]   \ G\cdot g=\left[\begin{matrix} g_{0} \\ \frac{g_{0}+g_{1}+g_{2}}{2}\\ \frac{g_{0}-g_{1}+g_{2}}{2} \\ g_{2}\\ \end{matrix}\right]=\left[\begin{matrix} 1 \quad0\quad0\\\frac{1}{2} \quad\frac{1}{2}\quad\frac{1}{2}\\\frac{1}{2} \quad\frac{-1}{2}\quad\frac{1}{2} \\ 0 \quad0\quad1 \end{matrix}\right]\left[\begin{matrix} g_{0}\\g_{1}\\g_{2}\end{matrix}\right] \,  Gg=g02g0+g1+g22g0g1+g2g2=100212121212121001g0g1g2
由此可得:
  G = [ 1 0 0 1 2 1 2 1 2 1 2 − 1 2 1 2 0 0 1 ]   \ G=\left[\begin{matrix} 1 \quad0\quad0\\\frac{1}{2} \quad\frac{1}{2}\quad\frac{1}{2}\\\frac{1}{2} \quad\frac{-1}{2}\quad\frac{1}{2} \\ 0 \quad0\quad1 \end{matrix}\right]\,  G=100212121212121001

同理可以推导   B   \ B\,  B参数如下:
  B T ⋅ d = [ d 0 − d 2 d 1 + d 2 d 2 − d 1 d 1 − d 3 ] = [ 1 0 − 1 0 0 1 1 0 0 − 1 1 0 0 1 0 − 1 ] [ d 0 d 1 d 2 d 3 ]   \ B^{T}\cdot d=\left[\begin{matrix}d_{0}-d_{2} \\ d_{1}+d_{2}\\d_{2}-d_{1} \\ d_{1}-d_{3} \end{matrix}\right]=\left[\begin{matrix} 1 \quad0\quad-1\quad0\\0\quad1\quad1\quad0 \\0\quad-1\quad1\quad0 \\0\quad1\quad0\quad-1 \end{matrix}\right] \left[\begin{matrix} d_{0}\\d_{1}\\d_{2}\\d_{3}\end{matrix}\right] \,  BTd=d0d2d1+d2d2d1d1d3=1010011001100101d0d1d2d3
由此可得:
  B T = [ 1 0 − 1 0 0 1 1 0 0 − 1 1 0 0 1 0 − 1 ]   \ B^{T}=\left[\begin{matrix} 1 \quad0\quad-1\quad0\\0\quad1\quad1\quad0 \\0\quad-1\quad1\quad0 \\0\quad1\quad0\quad-1 \end{matrix}\right]\,  BT=1010011001100101

综上完成了一维winogard算法的证明以及参数的含义和推导。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- nryq.cn 版权所有 赣ICP备2024042798号-6

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务