机器学习矩阵求导

矩阵求导好像读书的时候都没学过,因为讲矩阵的课程上不讲求导,讲求导的课又不提矩阵。如果从事机器学习方面的工作,那就一定会遇到矩阵求导的东西。维基百科上: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://www.mzph.cn/news/566054.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【OpenCV 例程300篇】12. 图像通道的合并(cv2.merge)

文章目录:『youcans 的 OpenCV 例程200篇 - 总目录』 【OpenCV 例程300篇】12. 图像通道的合并(cv2.merge) 函数 cv2.merge() 将 B、G、R 单通道合并为 3 通道 BGR 彩色图像。 函数说明: cv2.merge(mv[, dst]) -> retval # BG…

机器学习向量化练习

机器学习向量化练习 在先前的练习里面,我们已经通过对自然图像完成了一个稀疏自编码的练习。在这次我们将通过向量化来使我们运行速度更快,并且我们将把它应用到手写数字里面。 数据下载 MNIST Dataset (Training Images)MNIST Dataset (Training Labe…

【OpenCV 例程200篇】13. 图像的加法运算(cv2.add)

专栏地址:『youcans 的 OpenCV 例程 200 篇』 文章目录:『youcans 的 OpenCV 例程200篇 - 总目录』 【youcans 的 OpenCV 例程 200 篇】13. 图像的加法运算(cv2.add) 函数 cv2.add() 用于图像的加法运算。 函数说明: …

【OpenCV 例程200篇】14. 图像与标量相加(cv2.add)

专栏地址:『youcans 的 OpenCV 例程 200 篇』 文章目录:『youcans 的 OpenCV 例程200篇 - 总目录』 【youcans 的 OpenCV 例程 200 篇】14. 图像与标量相加(cv2.add) 函数 cv2.add() 用于图像的加法运算。 函数说明: …

UFLDL之Softmax回归

Softmax回归 Contents [hide]1 简介2 代价函数3 Softmax回归模型参数化的特点4 权重衰减5 Softmax回归与Logistic 回归的关系6 Softmax 回归 vs. k 个二元分类器7 中英文对照8 中文译者 简介 在本节中,我们介绍Softmax回归模型,该模型是logistic回归模…

【OpenCV 例程200篇】15. 图像的加权加法(cv2.addWeight)

专栏地址:『youcans 的 OpenCV 例程 200 篇』 文章目录:『youcans 的 OpenCV 例程200篇 - 总目录』 【youcans 的 OpenCV 例程 200 篇】15. 图像的加权加法(cv2.addWeight) 函数 cv2.addWeight() 用于图像的加权加法运算。 函数说…

【OpenCV 例程200篇】16. 不同尺寸的图像加法

专栏地址:『youcans 的 OpenCV 例程 200 篇』 文章目录:『youcans 的 OpenCV 例程200篇 - 总目录』 【youcans 的 OpenCV 例程 200 篇】16. 不同尺寸的图像加法 函数 cv2.add() 用于图像的加法运算, 对两张相同大小和类型的图像进行加法运算&…

二维数据的白化处理

二维数据的白化处理 这篇博客实现起来比较简单,首先先去下载pca_2d.zip,然后打开pca_2d.m改代码,具体代码见下面close all%%%% Step 0: Load data% We have provided the code to load data from pcaData.txt into x.% x is a 2 * 45 matri…

【youcans 的图像处理学习课】4. 图像的叠加与混合

专栏地址:『youcans 的图像处理学习课』 文章目录:『youcans 的图像处理学习课 - 总目录』 【youcans 的图像处理学习课】4. 图像的叠加与混合 文章目录【youcans 的图像处理学习课】4. 图像的叠加与混合1. 图像的加法运算基本例程:1.22 图像…

PCA白化

自然图片的PCA白化 在这个练习里面我们将实现PCA和ZCA白化。首先先下载这个文件pca_exercise.zip, 然后我们解压它,并用matlab打开它,我们只需要更改pca_gen.m.这个文件。 然后把代码改成下面这个形式 %% %% Step 0a: Load data % Here we provide th…

【OpenCV 例程200篇】17. 两张图像的渐变切换

专栏地址:『youcans 的 OpenCV 例程 200 篇』 文章目录:『youcans 的 OpenCV 例程200篇 - 总目录』 【youcans 的 OpenCV 例程 200 篇】17. 两张图像渐变切换 函数 cv2.addWeight() 用于图像的加权加法运算。 函数说明: cv2.addWeighted(sr…

深度网络概览

深度网络概览 Contents [hide]1 概述2 深度网络的优势3 训练深度网络的困难 3.1 数据获取问题3.2 局部极值问题3.3 梯度弥散问题 4 逐层贪婪训练方法 4.1 数据获取4.2 更好的局部极值 5 中英文对照6 中文译者 概述 在之前的章节中,你已经构建了一个包括输入层、隐…

【OpenCV 例程200篇】18. 图像的掩模加法(mask)

专栏地址:『youcans 的 OpenCV 例程 200 篇』 文章目录:『youcans 的 OpenCV 例程200篇 - 总目录』 【youcans 的 OpenCV 例程200篇】18. 图像的掩模加法 图像掩模(image mask),也常被写成 “图像掩膜”,是…

【OpenCV 例程200篇】19. 图像的圆形遮罩

专栏地址:『youcans 的 OpenCV 例程 200 篇』 文章目录:『youcans 的 OpenCV 例程200篇 - 总目录』 【youcans 的 OpenCV 例程200篇】19. 图像的圆形遮罩 图像掩模(image mask),也常被写成 “图像掩膜”,是…

【OpenCV 例程200篇】20. 图像的按位运算(cv2.bitwise)

专栏地址:『youcans 的 OpenCV 例程 200 篇』 文章目录:『youcans 的 OpenCV 例程200篇 - 总目录』 【youcans 的 OpenCV 例程200篇】20. 图像的按位运算 函数 cv2.bitwise 提供了图像的位运算,对图像的像素点值按位操作,快速高效…

栈式自编码算法

栈式自编码算法 Contents [hide]1 概述2 训练3 具体实例4 讨论5 中英文对照6 中文译者 概述 逐层贪婪训练法依次训练网络的每一层,进而预训练整个深度神经网络。在本节中,我们将会学习如何将自编码器“栈化”到逐层贪婪训练法中,从而预训练…

【OpenCV 例程200篇】21. 图像的叠加

『youcans 的 OpenCV 例程200篇 - 总目录』 【OpenCV 例程200篇】21. 图像的叠加 两张图像直接进行加法运算后图像的颜色会改变,通过加权加法实现图像混合后图像的透明度会改变,都不能实现图像的叠加。 实现图像的叠加,需要综合运用图像阈值…

微调多层自编码算法

微调多层自编码算法 Contents [hide]1 介绍2 一般策略3 使用反向传播法进行微调4 中英文对照5 中文译者 介绍 微调是深度学习中的常用策略,可以大幅提升一个栈式自编码神经网络的性能表现。从更高的视角来讲,微调将栈式自编码神经网络的所有层视为一个…

【OpenCV 例程200篇】22. 图像添加非中文文字(cv2.putText)

『youcans 的 OpenCV 例程200篇 - 总目录』 【youcans 的 OpenCV 例程200篇】22. 图像添加非中文文字 函数 cv2.putText() 用于在图像上绘制文本字符串,即添加文字。 OpenCV 不支持显示中文字符,使用 cv2.putText() 时添加的文本字符串不能包含中文字符…

自我学习

自我学习 今天让我们来完成自我学习的代码。完成这个代码需要结合稀疏自编码和softmax分类器,具体的可以看我以前的博客。依赖MNIST DatasetSupport functions for loading MNIST in MatlabStarter Code (stl_exercise.zip) 第一步:生成相应的输入和测试数据集这需要…