机器学习中常用的矩阵求导公式
主要copy自新浪微博MachineLearner的博客希望作为自己学习机器学习的工具。矩阵求导好像从来没有学过,讲矩阵的课不讲求导,讲求导的课不讲矩阵。像维基百科什么的查找起来又费劲。其实在实际机器学习工作中,最常用的就是实值函数yy对向量x\bf x求导。定义如下:∂y∂x=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢∂y∂x1∂y∂x2⋮∂y∂xn⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥\frac{\partial y
·
主要copy自新浪微博MachineLearner的博客希望作为自己学习机器学习的工具。
矩阵求导好像从来没有学过,讲矩阵的课不讲求导,讲求导的课不讲矩阵。像维基百科什么的查找起来又费劲。其实在实际机器学习工作中,最常用的就是实值函数 y <script type="math/tex" id="MathJax-Element-8204">y</script>对向量
∂y∂x=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢∂y∂x1∂y∂x2⋮∂y∂xn⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥
<script type="math/tex; mode=display" id="MathJax-Element-8206"> \frac{\partial y}{\partial \bf x}=\left[ \begin {array}{c} \frac{\partial y}{\partial x_1}\\ \frac{\partial y}{\partial x_2}\\ \vdots\\ \frac{\partial y}{\partial x_n} \end {array}\right ] </script>
实值函数 y <script type="math/tex" id="MathJax-Element-8207">y</script>对矩阵
∂y∂X=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢∂y∂x11∂y∂x21⋮∂y∂xn1∂y∂x12∂y∂x22⋮∂y∂xn2⋯⋯⋱⋯∂y∂x1n∂y∂x2n⋮∂y∂xnn⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥
<script type="math/tex; mode=display" id="MathJax-Element-8209">\frac{\partial y}{\partial \bf X}=\left[ \begin {array}{c} \begin{array}{ccc} \frac{\partial y}{\partial x_{11}} & \frac{\partial y}{\partial x_{12}}& \cdots &\frac{\partial y}{\partial x_{1n}}\\ \frac{\partial y}{\partial x_{21}} & \frac{\partial y}{\partial x_{22}}&\cdots &\frac{\partial y}{\partial x_{2n}}\\ \vdots & \vdots & \ddots & \vdots\\ \frac{\partial y}{\partial x_{n1}} & \frac{\partial y}{\partial x_{n2}}&\cdots &\frac{\partial y}{\partial x_{nn}}\\ \end{array} \end {array}\right ] </script>
因为有监督的机器学习的一般套路是给定输入 x <script type="math/tex" id="MathJax-Element-8210">\bf x</script>,选择一个模型 f <script type="math/tex" id="MathJax-Element-8211">f</script>作为决策函数,由
为方便推倒有以下公式:
∂βTx∂x=β
<script type="math/tex; mode=display" id="MathJax-Element-8222">\frac{\partial \beta^T\bf x}{\partial \bf x}=\beta</script>
∂xTx∂x=2x
<script type="math/tex; mode=display" id="MathJax-Element-8223">\frac{\partial \bf x^T\bf x}{\partial \bf x}=2\bf x</script>
∂xTAx∂x=(A+AT)x
<script type="math/tex; mode=display" id="MathJax-Element-8224">\frac{\partial \bf x^T Ax}{\partial \bf x}=(\bf{A+A}^T)x</script>
Andrew Ng使用矩阵的迹相关公式:
tr(a)=a
<script type="math/tex; mode=display" id="MathJax-Element-8225">\text{tr}(a)=a</script>
tr(AB)=tr(BA)
<script type="math/tex; mode=display" id="MathJax-Element-8226">\text{tr}(AB)=\text{tr}(BA)</script>
tr(ABC)=tr(CAB)=tr(BCA)
<script type="math/tex; mode=display" id="MathJax-Element-8227">\text{tr}(ABC)=\text{tr}(CAB)=\text{tr}(BCA)</script>
∂tr(AB)A=BT
<script type="math/tex; mode=display" id="MathJax-Element-8228">\frac{\partial{\text{tr}(AB)}}{A}=B^T</script>
tr(A)=tr(AT)
<script type="math/tex; mode=display" id="MathJax-Element-8229">\text{tr}(A)=\text{tr}(A^T)</script>
∂tr(ABATC)A=CAB+CTABT
<script type="math/tex; mode=display" id="MathJax-Element-8230">\frac{\partial{\text{tr}(ABA^TC)}}{A}=CAB+C^TAB^T</script>
更多推荐
所有评论(0)