5.11 加权Gram-Schmidt 分解

前面介绍了加权最小二乘法的解为 x^=(ATDA)−1ATDb\mathbf{\hat{x}} = (A^TDA)^{-1}A^TD\mathbf{b}x^=(ATDA)−1ATDb ,其中 DDD 为权重矩阵,最常用的是对角阵,每个对角元素表示对应测量点的权重,均为正值,元素值越大表示该测量点越重要。本节仅研究权重矩阵为对角阵的情况,权重矩阵记为 W=diag(w1,w2,⋯,wm)W=diag(w_1,w_2,\cdots,w_m)W=diag(w1​,w2​,⋯,wm​) ,wiw_iwi​ 为测量点 iii 的权重。

假设矩阵 A=QRA=QRA=QR ,其中 QmnQ_{mn}Qmn​ 为列满秩矩阵,RnnR_{nn}Rnn​ 为上三角方阵,带入上式得
x^=((QR)TW(QR))−1(QR)TWb=(RTQTWQR)−1RTQTWb=R−1(QTWQ)−1R−TRTQTWb=R−1(QTWQ)−1QTWb\mathbf{\hat{x}} = ((QR)^TW(QR))^{-1}(QR)^TW\mathbf{b}\\ = (R^TQ^TWQR)^{-1}R^TQ^TW\mathbf{b} \\ = R^{-1}(Q^TWQ)^{-1}R^{-T}R^TQ^TW\mathbf{b} \\ = R^{-1}(Q^TWQ)^{-1}Q^TW\mathbf{b} x^=((QR)TW(QR))−1(QR)TWb=(RTQTWQR)−1RTQTWb=R−1(QTWQ)−1R−TRTQTWb=R−1(QTWQ)−1QTWb

其中矩阵 QTWQQ^TWQQTWQ 求逆,为了简化求逆,我们希望其为对角阵,又当权重矩阵为单位阵时,QTEQ=QTQQ^TEQ=Q^TQQTEQ=QTQ 必须为单位阵,以便和一般 Gram-Schmidt 分解保持一致。在这个约束下,各矩阵尺寸为 Qmn,WmmQ_{mn},W_{mm}Qmn​,Wmm​ ,(QTWQ)nn(Q^TWQ)_{nn}(QTWQ)nn​ ,所以可以使 QTWQ=WnQ^TWQ=W_nQTWQ=Wn​ ,对角阵 WnW_nWn​ 为对角阵 WWW 前 nnn 个对角元素构成的对角阵,即 Wn=diag(w1,w2,⋯,wn)W_n = diag(w_1,w_2,\cdots,w_n)Wn​=diag(w1​,w2​,⋯,wn​) 。注意此时矩阵 QQQ 一般不再是正交阵,即 QTQ=EQ^TQ=EQTQ=E 不再成立。

我们先研究矩阵乘法 QTWQQ^TWQQTWQ ,首先 WQ=(Wq1,⋯,Wqn)WQ=(W\mathbf{q}_1,\cdots,W\mathbf{q}_n)WQ=(Wq1​,⋯,Wqn​) ,QTWQ=([q1T⋮,qnT])(Wq1,⋯,Wqn)=[q1TWq1,⋯,q1TWqn⋮,qnTWq1,⋯,qnTWqn]Q^TWQ=(\left[ \begin{matrix} \mathbf{q}^T_1 \\ \vdots,\\ \mathbf{q}^T_n \end{matrix} \right])(W\mathbf{q}_1,\cdots,W\mathbf{q}_n)=\left[ \begin{matrix} \mathbf{q}^T_1W\mathbf{q}_1,\cdots, \mathbf{q}^T_1W\mathbf{q}_n\\ \vdots,\\ \mathbf{q}^T_nW\mathbf{q}_1,\cdots, \mathbf{q}^T_nW\mathbf{q}_n \end{matrix} \right]QTWQ=(⎣⎢⎡​q1T​⋮,qnT​​⎦⎥⎤​)(Wq1​,⋯,Wqn​)=⎣⎢⎡​q1T​Wq1​,⋯,q1T​Wqn​⋮,qnT​Wq1​,⋯,qnT​Wqn​​⎦⎥⎤​ ,所以 QTWQQ^TWQQTWQ 第 iii 行第 jjj 列的元素为 qiTWqj\mathbf{q}^T_iW\mathbf{q}_jqiT​Wqj​ 。根据 QTWQ=WnQ^TWQ=W_nQTWQ=Wn​ 等式,则 qiTWqj=wifori=j,else0i≠j\mathbf{q}^T_iW\mathbf{q}_j = w_i \quad for \quad i=j, else \quad 0 \quad i \ne jqiT​Wqj​=wi​fori=j,else0i​=j ,从这个意义上说向量组 qi\mathbf{q}_iqi​ 关于矩阵 WWW 正交,因为不同向量的广义内积 qiTWqj\mathbf{q}^T_iW\mathbf{q}_jqiT​Wqj​ 为 000 ,相同向量广义内积为 wiw_iwi​ 。

根据 A=QRA=QRA=QR 和 QTWQ=WnQ^TWQ=W_nQTWQ=Wn​ 两个等式,可以推导出加权Gram-Schmidt 分解公式。

首先,a1=q1r11\mathbf{a}_1=\mathbf{q}_1 r_{11}a1​=q1​r11​ 两边左乘 q1TW\mathbf{q}^T_1Wq1T​W 得,q1TWa1=q1TWq1r11=w1r11\mathbf{q}^T_1W\mathbf{a}_1=\mathbf{q}^T_1W\mathbf{q}_1 r_{11}=w_1r_{11}q1T​Wa1​=q1T​Wq1​r11​=w1​r11​ ,又 q1TWa1=a1TWa1/r11\mathbf{q}^T_1W\mathbf{a}_1=\mathbf{a}^T_1W\mathbf{a}_1/r_{11}q1T​Wa1​=a1T​Wa1​/r11​ ,所以 a1TWa1/r11=w1r11\mathbf{a}^T_1W\mathbf{a}_1/r_{11}=w_1r_{11}a1T​Wa1​/r11​=w1​r11​ 得 r11=a1TWa1/w1r_{11}=\sqrt{\mathbf{a}^T_1W\mathbf{a}_1}/\sqrt{w_1}r11​=a1T​Wa1​​/w1​​ ,令 a12=a1TWa1a^2_1=\mathbf{a}^T_1W\mathbf{a}_1a12​=a1T​Wa1​ 为广义内积,则 r11=a1/w1r_{11}=a_1/\sqrt{w_1}r11​=a1​/w1​​ ,q1=a1/r11=w1a1/a1\mathbf{q}_1=\mathbf{a}_1/r_{11}=\sqrt{w_1}\mathbf{a}_1/a_1q1​=a1​/r11​=w1​​a1​/a1​ 。

其次,a2=q1r12+q2r22\mathbf{a}_2 = \mathbf{q}_1 r_{12} + \mathbf{q}_2 r_{22}a2​=q1​r12​+q2​r22​ 两边左乘 q1TW\mathbf{q}^T_1Wq1T​W 得,q1TWa2=q1TWq1r12+q1TWq2r22\mathbf{q}^T_1W\mathbf{a}_2 = \mathbf{q}^T_1W\mathbf{q}_1 r_{12} + \mathbf{q}^T_1W\mathbf{q}_2 r_{22}q1T​Wa2​=q1T​Wq1​r12​+q1T​Wq2​r22​ ,根据 qiTWqj=wifori=j,else0i≠j\mathbf{q}^T_iW\mathbf{q}_j = w_i \quad for \quad i=j, else \quad 0 \quad i \ne jqiT​Wqj​=wi​fori=j,else0i​=j ,得 q1TWa2=q1TWq1r12+0=w1r12\mathbf{q}^T_1W\mathbf{a}_2 = \mathbf{q}^T_1W\mathbf{q}_1 r_{12} + 0 = w_1 r_{12}q1T​Wa2​=q1T​Wq1​r12​+0=w1​r12​ 得 r12=q1TWa2/w1r_{12} = \mathbf{q}^T_1W\mathbf{a}_2/w_1r12​=q1T​Wa2​/w1​ 为广义投影坐标值。

a2=q1r12+q2r22\mathbf{a}_2 = \mathbf{q}_1 r_{12} + \mathbf{q}_2 r_{22}a2​=q1​r12​+q2​r22​ 两边左乘 q2TW\mathbf{q}^T_2Wq2T​W 得,q2TWa2=q2TWq1r12+q2TWq2r22\mathbf{q}^T_2W\mathbf{a}_2 = \mathbf{q}^T_2W\mathbf{q}_1 r_{12} + \mathbf{q}^T_2W\mathbf{q}_2 r_{22}q2T​Wa2​=q2T​Wq1​r12​+q2T​Wq2​r22​ ,得 q2TWa2=0+w2r22\mathbf{q}^T_2W\mathbf{a}_2 = 0 + w_2 r_{22}q2T​Wa2​=0+w2​r22​ ,得 w2r22=q2TW(a2−q1r12)w_2 r_{22} = \mathbf{q}^T_2W(\mathbf{a}_2- \mathbf{q}_1 r_{12})w2​r22​=q2T​W(a2​−q1​r12​) ,又 q2=(a2−q1r12)/r22\mathbf{q}_2 = (\mathbf{a}_2 - \mathbf{q}_1 r_{12})/r_{22}q2​=(a2​−q1​r12​)/r22​ 带入得 w2r222=(a2−q1r12)W(a2−q1r12)w_2 r^2_{22} = (\mathbf{a}_2 - \mathbf{q}_1 r_{12})W(\mathbf{a}_2 - \mathbf{q}_1 r_{12})w2​r222​=(a2​−q1​r12​)W(a2​−q1​r12​) ,令 a22=(a2−q1r12)W(a2−q1r12)a^2_2=(\mathbf{a}_2 - \mathbf{q}_1 r_{12})W(\mathbf{a}_2 - \mathbf{q}_1 r_{12})a22​=(a2​−q1​r12​)W(a2​−q1​r12​) 为广义内积,所以 r22=a2/w2r_{22} = a_2/\sqrt{w_2}r22​=a2​/w2​​ 。所以q2=w2(a2−q1r12)/a2\mathbf{q}_2 = \sqrt{w_2}(\mathbf{a}_2 - \mathbf{q}_1 r_{12})/a_2q2​=w2​​(a2​−q1​r12​)/a2​ 。

最后同理对任意列向量 ai=q1r1i+q2r2i+⋯+qirii\mathbf{a}_i = \mathbf{q}_1 r_{1i} + \mathbf{q}_2 r_{2i} + \cdots + \mathbf{q}_i r_{ii}ai​=q1​r1i​+q2​r2i​+⋯+qi​rii​ ,两边左乘 qjTW,j<i\mathbf{q}^T_jW,j < iqjT​W,j<i 得
qjTWai=qjTWq1r1i+qjTWq2r2i+⋯+qjTWqirii=qjTWqjrji=wjrji\mathbf{q}^T_jW\mathbf{a}_i = \mathbf{q}^T_jW\mathbf{q}_1 r_{1i} + \mathbf{q}^T_jW\mathbf{q}_2 r_{2i} + \cdots + \mathbf{q}^T_jW\mathbf{q}_i r_{ii} = \mathbf{q}^T_jW\mathbf{q}_j r_{ji} = w_j r_{ji}qjT​Wai​=qjT​Wq1​r1i​+qjT​Wq2​r2i​+⋯+qjT​Wqi​rii​=qjT​Wqj​rji​=wj​rji​ 所以 rji=qjTWai/wjr_{ji} = \mathbf{q}^T_jW\mathbf{a}_i/w_jrji​=qjT​Wai​/wj​ 。两边左乘 qiTW\mathbf{q}^T_iWqiT​W 得
qiTWai=qiTWq1r1i+qiTWq2r2i+⋯+qiTWqirii=qiTWqirii=wirii\mathbf{q}^T_iW\mathbf{a}_i = \mathbf{q}^T_iW\mathbf{q}_1 r_{1i} + \mathbf{q}^T_iW\mathbf{q}_2 r_{2i} + \cdots + \mathbf{q}^T_iW\mathbf{q}_i r_{ii} = \mathbf{q}^T_iW\mathbf{q}_i r_{ii} = w_i r_{ii}qiT​Wai​=qiT​Wq1​r1i​+qiT​Wq2​r2i​+⋯+qiT​Wqi​rii​=qiT​Wqi​rii​=wi​rii​ 所以 rii=qiTWai/wir_{ii} = \mathbf{q}^T_iW\mathbf{a}_i/w_irii​=qiT​Wai​/wi​ ,根据 ai=q1r1i+q2r2i+⋯+qirii\mathbf{a}_i = \mathbf{q}_1 r_{1i} + \mathbf{q}_2 r_{2i} + \cdots + \mathbf{q}_i r_{ii}ai​=q1​r1i​+q2​r2i​+⋯+qi​rii​ 最后化简得,令 ai2=(ai−(q1r1i+q2r2i+⋯))W(ai−(q1r1i+q2r2i+⋯))a^2_i=(\mathbf{a}_i - (\mathbf{q}_1 r_{1i} + \mathbf{q}_2 r_{2i} + \cdots))W(\mathbf{a}_i - (\mathbf{q}_1 r_{1i} + \mathbf{q}_2 r_{2i} + \cdots))ai2​=(ai​−(q1​r1i​+q2​r2i​+⋯))W(ai​−(q1​r1i​+q2​r2i​+⋯)) 为广义内积,所以 rii=ai/wir_{ii} = a_i/\sqrt{w_i}rii​=ai​/wi​​ 。所以 qi=wi(ai−(q1r1i+q2r2i+⋯))/ai\mathbf{q}_i = \sqrt{w_i}(\mathbf{a}_i - (\mathbf{q}_1 r_{1i} + \mathbf{q}_2 r_{2i} + \cdots))/a_iqi​=wi​​(ai​−(q1​r1i​+q2​r2i​+⋯))/ai​ 。

上面介绍的方法就是经典的加权Gram-Schmidt分解,过程和经典的Gram-Schmidt分解一样,差别在于上三角矩阵 RRR 的元素 rji=qjTWai/wjr_{ji} = \mathbf{q}^T_jW\mathbf{a}_i/w_jrji​=qjT​Wai​/wj​ 为广义投影 qjTWai\mathbf{q}^T_jW\mathbf{a}_iqjT​Wai​ 除以权重 wjw_jwj​ ,rii=ai/wir_{ii} = a_i/\sqrt{w_i}rii​=ai​/wi​​ 为广义内积 aia_iai​ 除以权重 wi\sqrt{w_i}wi​​ ,当广义内积趋近 000 时,则方程是病态。qi=wi(ai−(q1r1i+q2r2i+⋯))/ai\mathbf{q}_i = \sqrt{w_i}(\mathbf{a}_i - (\mathbf{q}_1 r_{1i} + \mathbf{q}_2 r_{2i} + \cdots))/a_iqi​=wi​​(ai​−(q1​r1i​+q2​r2i​+⋯))/ai​ 是垂直分量的标准化 (ai−(q1r1i+q2r2i+⋯))/ai(\mathbf{a}_i - (\mathbf{q}_1 r_{1i} + \mathbf{q}_2 r_{2i} + \cdots))/a_i(ai​−(q1​r1i​+q2​r2i​+⋯))/ai​ 乘以权重 wi\sqrt{w_i}wi​​ 。

改进加权 Gram-Schmidt 分解

如同改进Gram-Schmidt分解,可以按行计算矩阵 RRR 和先减去投影分量,得到改进加权 Gram-Schmidt 分解:令 ai2=aiTWaia^2_i=\mathbf{a}^T_iW\mathbf{a}_iai2​=aiT​Wai​ 为广义内积。

1、r11=a1/w1r_{11}=a_1/\sqrt{w_1}r11​=a1​/w1​​ ,q1=w1a1/a1\mathbf{q}_1=\sqrt{w_1}\mathbf{a}_1/a_1q1​=w1​​a1​/a1​ ,r1i=q1TWai/w1r_{1i} = \mathbf{q}^T_1W\mathbf{a}_i/w_1r1i​=q1T​Wai​/w1​ ,ai=ai−q1r1i,i>1\mathbf{a}_i = \mathbf{a}_i - \mathbf{q}_1 r_{1i}, i>1ai​=ai​−q1​r1i​,i>1 。令 b0=b\mathbf{b}_0=\mathbf{b}b0​=b ,注意对向量 b\mathbf{b}b 也要同样处理,即令 δ1=q1TWb/w1\delta_1 = \mathbf{q}^T_1W\mathbf{b}/w_1δ1​=q1T​Wb/w1​ ,b=b−q1δ1\mathbf{b} = \mathbf{b} - \mathbf{q}_1\delta_1b=b−q1​δ1​ 。

2、r22=a2/w2r_{22}=a_2/\sqrt{w_2}r22​=a2​/w2​​ ,q2=w2a2/a2\mathbf{q}_2=\sqrt{w_2}\mathbf{a}_2/a_2q2​=w2​​a2​/a2​ ,r2i=q2TWai/w2r_{2i} = \mathbf{q}^T_2W\mathbf{a}_i/w_2r2i​=q2T​Wai​/w2​ ,ai=ai−q2r2i,i>2\mathbf{a}_i = \mathbf{a}_i - \mathbf{q}_2 r_{2i}, i>2ai​=ai​−q2​r2i​,i>2 。注意对向量 b\mathbf{b}b 也要同样处理,即令 δ2=q2TWb/w2\delta_2 = \mathbf{q}^T_2W\mathbf{b}/w_2δ2​=q2T​Wb/w2​ ,b=b−q2δ2\mathbf{b} = \mathbf{b} - \mathbf{q}_2\delta_2b=b−q2​δ2​ 。

3、rii=ai/wir_{ii}=a_i/\sqrt{w_i}rii​=ai​/wi​​ ,qi=wiai/ai\mathbf{q}_i=\sqrt{w_i}\mathbf{a}_i/a_iqi​=wi​​ai​/ai​ ,rij=qiTWaj/wir_{ij} = \mathbf{q}^T_iW\mathbf{a}_j/w_irij​=qiT​Waj​/wi​ ,aj=aj−qirij,j>i\mathbf{a}_j = \mathbf{a}_j - \mathbf{q}_i r_{ij}, j>iaj​=aj​−qi​rij​,j>i 。注意对向量 b\mathbf{b}b 也要同样处理,即令 δi=qiTWb/wi\delta_i = \mathbf{q}^T_iW\mathbf{b}/w_iδi​=qiT​Wb/wi​ ,b=b−qiδi\mathbf{b} = \mathbf{b} - \mathbf{q}_i\delta_ib=b−qi​δi​ 。

一直计算,直到 i=ni=ni=n 结束。

令向量 d=(δ1,⋯,δm)\mathbf{d} = (\delta_1,\cdots,\delta_m)d=(δ1​,⋯,δm​) ,因为 d=(QTWQ)−1QTWb0\mathbf{d} = (Q^TWQ)^{-1}Q^TW\mathbf{b}_0d=(QTWQ)−1QTWb0​ ,则最优近似解为 x^=R−1d\mathbf{\hat{x}} = R^{-1}\mathbf{d}x^=R−1d ,即 x^i=(δi−∑j=i+1n(δjx^j))/rii\hat{x}_i = (\delta_i - \sum^{n}_{j=i+1} (\delta_j\hat{x}_j))/r_{ii}x^i​=(δi​−∑j=i+1n​(δj​x^j​))/rii​。

阻尼倒数法

计算 qi=wiai/ai\mathbf{q}_i=\sqrt{w_i}\mathbf{a}_i/a_iqi​=wi​​ai​/ai​ 涉及到除以广义内积 aia_iai​ ,为了增加数值稳定性,可以采用阻尼倒数法,具体方法和QR分解的阻尼倒数法一样,这里省略。

权重排序

计算上三角阵 RRR 元素 rij=qiTWaj/wir_{ij} = \mathbf{q}^T_iW\mathbf{a}_j/w_irij​=qiT​Waj​/wi​ 涉及除以权重 wiw_iwi​ ,如果其为或者趋近 000 ,则也会导致数值不稳定。为了解决这个问题,可采用权重排序计算。即按照权重从大到小排序 wi>wi+1w_i > w_{i+1}wi​>wi+1​ ,根据权重排序结果调整方程 Ax=bA\mathbf{x} = \mathbf{b}Ax=b 中子方程的顺序,使之与权重顺序对应。这样只要前 nnn 个权重不趋近 000 即可保证数值稳定。如果所有权重大小差不多,则不必排序,可直接计算。注意此时不能采用阻尼倒数法。

5.11 加权Gram-Schmidt 分解相关推荐

  1. 网络协议栈11:Connect函数分解之TCP层

    Connect函数之分解1. 首先,connect函数从参数获得远端的IP,把这个地址赋值给对应的sock结构体的对应变量,并设置了sock结构体中的一些其他变量后,首先分配(skb_buff+用户空 ...

  2. 【矩阵论笔记】正交分解——满秩Schmidt分解(施密特正交化)

    QR分解 例子 要求可逆,但是是不可逆的时候是不是又QR分解呢?这就是涉及到下一篇讲的household分解

  3. 机器学习(十一)——机器学习中的矩阵方法(1)LU分解、QR分解

    http://antkillerfarm.github.io/ 因子分析的EM估计(续) 去掉和各参数无关的部分后,可得: ∑i=1mE[logp(x(i)|z(i);μ,Λ,Ψ)]=∑i=1mE[1 ...

  4. 矩阵分解及其Eigen实现

    主要是用来记录自己的学习过程,内容也主要来自于网上的各种资料,然后自己总结而来,参考的资料都以注明,感谢这些作者的分享.如果内容有误,请大家指点. LU分解1 理论 定义        将矩阵等价为两 ...

  5. 正交矩阵,(标准)正交基,正交投影,正交分解定理,最佳逼近定理,格拉姆-施密特方法求正交基(手算+MATLAB),QR分解(手算+MATLAB计算、分析)

    正交(orthogonality).正交集(orthogonal set).单位正交集 定义:如果向量uuu和向量vvv是相互正交的,则有:u⋅v=0u\cdot v=0u⋅v=0. 因为对于零向量, ...

  6. 【BI学习心得05-SVD矩阵分解与基于内容的推荐】

    内容目录 写在前面的话 1.矩阵的几种分解方式 1.1共轭转置 Conjugate transpose 1.2Hermitian 1.3正定 positive definite 1.4正交矩阵 ort ...

  7. 最优化方法——QR分解

    目录 系列文章目录 一.问题 二.实验思路综述 1.实验工具及算法 2.实验数据 3.实验目标 4.实验步骤 三.相关线性代数知识导入 1.线性无关与基 2.标准正交 3.Gram-Schmidt(正 ...

  8. QR decomposition and Givens Rotation (QR分解与Givens旋转)

    在最近做的一个研究中,需要对 QR 分解进行更新,因此了解了一些关于 QR 分解和 Givens 旋转的内容.在这里进行总结. QR 分解 所谓 QR 分解,就是将一个矩阵(可以不是方阵)分解成一个正 ...

  9. 混合像元分解研究综述——线性混合像元分解算法

    本文转载来自:http://hi.baidu.com/hilbertspace/blog/item/aae6a20f2cb564e4ab6457c5.html -------------------- ...

最新文章

  1. JOGL - Java与OpenGl的绑定(转)
  2. 【C 语言】结构体 ( 结构体变量内存操作 | 通过 “ . “ 操作符操作结构体内存空间 | 通过 “ -> “ 操作符操作结构体内存空间 )
  3. IOS开发 Block的学习
  4. 漫画:什么是数据仓库
  5. MySQL执行计划EXPLAIN详解
  6. 统计学基础知识之统计思维
  7. 滴滴程序员年薪80万却被亲戚鄙视:钱多有啥用,我儿子二本大学教师
  8. html转微信公众号,通过htmlparse动态抓取微信公众号的文章
  9. 《东周列国志》第十三回 鲁桓公夫妇如齐 郑子亹君臣为戮
  10. Linux systemd启动流程
  11. ENE轨道线的选股公式
  12. dos的几种打开方式
  13. 4.Python数据结构与算法分析课后习题__chapter4
  14. 容器三把斧之 | OverlayFS原理与实现
  15. Eatting外卖基于瑞吉外卖代码全功能优化含源码
  16. python之turtle库学习(海龟图形)
  17. 高通android usb otg,Android OTG支持USB读卡器
  18. latex表格调整行距
  19. 笔记本不能用无线网策略服务器,笔记本不能上网的解决方法适用于使用无线路由器上网...
  20. 完美解决:不能为虚拟电脑打开一个新任务的问题

热门文章

  1. 使用vue-router的meta实现 设置每个页面的title标题
  2. PC端设置每行固定三个元素多余换行
  3. shell脚本判断linux系统,并判断该系统版本号,从而关闭防火墙
  4. 后台接收富文本内容报错ParserException: syntax error
  5. 三维重建13X-2:FCN和MaskRCNN中Mask的获取
  6. CaffeMFC:caffe.pb.h(2525): error C2059: syntax error : 'constant'
  7. Boost-QT兼容问题:#define FUSION_HASH #
  8. java Base64转码传图到C#
  9. laravel进阶系列--通过事件和事件监听实现服务解耦
  10. 英特尔物联网产业的布局中,优势和劣势都在哪?