机器学习中常用的矩阵求导公式
2015-12-26 16:50
302 查看
本文转载自:http://blog.sina.com.cn/s/blog_8eac0b290101fsqb.html
矩阵求导好像读书的时候都没学过,因为讲矩阵的课程上不讲求导,讲求导的课又不提矩阵。如果从事机器学习方面的工作,那就一定会遇到矩阵求导的东西。维基百科上:http://en.wikipedia.org/wiki/Matrix_calculus , 根据Y与X的不同类型(实值,向量,矩阵),给出了具体的求导公式,以及一堆相关的公式,查起来都费劲。
其实在实际的机器学习工作中,最常用到的就是实值函数y对向量X的求导,定义如下(其实就是y对向量X的每一个元素求导):
实值函数对矩阵X求导也类似:
因为机器学习(这里指的是有监督的机器学习)的一般套路是给定输入X,选择一个模型f作为决策函数,由f(X)预测出Y'。而得到f的参数θ(往往是向量),需要定义一个loss函数(一般都是实值函数),描述当前f预测值Y'与实际的Y值的接近程度。模型学习的过程就是求使得 loss函数 L(f(X),Y)最小的参数θ。这是一个最优化问题,实际应用中都是用和梯度相关的最优化方法,如梯度下降,共轭梯度,拟牛顿法等等。
其实只要掌握上面这个公式,就能搞定很多问题了。
为了方便推导,下面列出一些机器学习中常用的求导公式,其中andrew ng那一套用矩阵迹的方法还是挺不错的,矩阵的迹也是实值的,而一个实数的迹等于其本身,实际工作中可以将loss函数转化成迹,然后在求导,可能会简化推导的步骤。
以上只是一些最基本的公式,能够解决一些问题,主要是减少大家对矩阵求导的恐惧感。关于矩阵方面的更多信息可以参考上面的wiki链接以及《Matrix cookbook》(感谢 @王树森 CS 推荐)。
矩阵求导好像读书的时候都没学过,因为讲矩阵的课程上不讲求导,讲求导的课又不提矩阵。如果从事机器学习方面的工作,那就一定会遇到矩阵求导的东西。维基百科上:http://en.wikipedia.org/wiki/Matrix_calculus , 根据Y与X的不同类型(实值,向量,矩阵),给出了具体的求导公式,以及一堆相关的公式,查起来都费劲。
其实在实际的机器学习工作中,最常用到的就是实值函数y对向量X的求导,定义如下(其实就是y对向量X的每一个元素求导):
实值函数对矩阵X求导也类似:
因为机器学习(这里指的是有监督的机器学习)的一般套路是给定输入X,选择一个模型f作为决策函数,由f(X)预测出Y'。而得到f的参数θ(往往是向量),需要定义一个loss函数(一般都是实值函数),描述当前f预测值Y'与实际的Y值的接近程度。模型学习的过程就是求使得 loss函数 L(f(X),Y)最小的参数θ。这是一个最优化问题,实际应用中都是用和梯度相关的最优化方法,如梯度下降,共轭梯度,拟牛顿法等等。
其实只要掌握上面这个公式,就能搞定很多问题了。
为了方便推导,下面列出一些机器学习中常用的求导公式,其中andrew ng那一套用矩阵迹的方法还是挺不错的,矩阵的迹也是实值的,而一个实数的迹等于其本身,实际工作中可以将loss函数转化成迹,然后在求导,可能会简化推导的步骤。
以上只是一些最基本的公式,能够解决一些问题,主要是减少大家对矩阵求导的恐惧感。关于矩阵方面的更多信息可以参考上面的wiki链接以及《Matrix cookbook》(感谢 @王树森 CS 推荐)。
相关文章推荐
- C 运算符优先级
- 空间向量投影的一些整理
- 硬盘和显卡的访问与控制(二)——《x86汇编语言:从实模式到保护模式》读书笔记02
- 数据挖掘-关联分析频繁模式挖掘Apriori、FP-Growth及Eclat算法的JAVA及C++实现
- 文字+图片的混编(富文本)
- StreamUtils
- PHP表单详解
- 优配良品:向死而生
- 装配bean
- 硬盘和显卡的访问与控制(二)——《x86汇编语言:从实模式到保护模式》读书笔记02
- Bitwise Equations
- Android通过一个long值(秒数)返回格式化日期样式
- Git: 一些基本命令
- 特征值和特征向量的几何和物理意义
- 网络爬虫Heritrix1.14.4在MyEclipse中的安装配置与使用教程
- SmsUtils
- QueryAddressUtils
- python的utc8小时时间问题
- 【Shader】人物选中高亮状态
- POJ 2594 Treasure Exploration