基于Frobenius范数的标准NMF更新公式推导

目标函数

在标准非负矩阵分解中,其目标函数很简单,形式为O(W, H)=\frac{1}{2}\left \| V-WH \right \|_{F}^{2},其中V为观测矩阵,W为基矩阵,H为系数矩阵, 这里假设V为m×n维的,W为m×l维的,H为l×n维的。

更新公式推导

其更新公式是基于梯度下降法,因此第一步就是要将目标函数分别对矩阵变量W和H求偏导,求出偏导后根据W_{ik}=W_{ik}-\alpha \frac{\partial O(W,H) }{\partial W_{ik}}更新矩阵W,根据H_{kj}=H_{kj}-\beta \frac{\partial O(W,H)}{\partial H_{kj}}来更新矩阵H。

矩阵W的更新

先对W中的变量求偏导

\frac{\partial O(W,H))}{\partial W_{ik}}=\frac{\partial \frac{1}{2}\sum_{i,j}^{ }(V_{ij}-(WH)_{ij})^{2}}{\partial W_{ik}}

=\frac{1}{2}\sum_{j=1}^{n}2(V_{ij}-(WH)_{ij})(-H_{kj})  (链式求导法则)

=\sum_{j=1}^{n}((WH)_{ij}-V_{ij})H_{kj}

=\sum_{j=1}^{n}(WH)_{ij}H_{kj}-\sum_{j=1}^{n}V_{ij}H_{kj}

=\sum_{j=1}^{n}(WH)_{ij}H_{jk}^{T}-\sum_{j=1}^{n}V_{ij}H_{jk}^{T}

=(WHH^{T})_{ik}-(VH^{T})_{ik}

W_{ik}=W_{ik}-\alpha [(WHH^{T})_{ik}-(VH^{T})_{ik}]

\alpha =\frac{W_{ik}}{(WHH^{T})_{ik}},带入上式中可得更新公式为W_{ik}=W_{ik}\frac{(VH^{T})_{ik}}{(WHH^{T})_{ik}}

可以看出W的更新为乘法更新,因此能在更新的过程中保证矩阵的非负性。

矩阵H的更新

先对H中的变量求偏导

\frac{\partial O(W,H))}{\partial H_{kj}}=\frac{\partial \frac{1}{2}\sum_{i,j}(V_{ij}-(WH)_{ij})^{2}}{\partial H_{kj}}

=\frac{1}{2}\sum_{i=1}^{m}2(V_{ij}-(WH)_{ij})(-W_{ik})  (链式求导法则)

=\sum_{i=1}^{m}((WH)_{ij}-V_{ij})W_{ik}

=\sum_{i=1}^{m}W_{ik}(WH)_{ij}-\sum_{i=1}^{m}W_{ik}V_{ij}

=\sum_{i=1}^{m}W_{ki}^{T}(WH)_{ij}-\sum_{j=1}^{n}W_{ki}^{T}V_{ij}

=(W^{T}WH)_{kj}-(W^{T}V)_{kj}

H_{kj}=H_{kj}-\beta [(W^{T}WH)_{kj}-(W^{T}V)_{kj}]

\beta =\frac{H_{kj}}{(W^{T}WH)_{kj}},带入上式中可得更新公式为H_{kj}=H_{kj}\frac{(W^{T}V)_{kj}}{(W^{T}WH)_{kj}}

你可能感兴趣的:(NMF,机器学习,人工智能)