【机器学习中的矩阵求导】(七)矩阵向量化复习

简介: 学习总结(1)矩阵乘法。

学习总结

(1)矩阵乘法。

image.png

一、几个梯度的栗子

1.1 迹函数相对于矩阵的梯度

迹函数对矩阵求导

image.png

image.png

1.2 行列式相对于矩阵的梯度

矩阵的行列式对矩阵求导:

image.png

二、实值函数相对于实向量的梯度

2.1 实值标量函数对向量的梯度

其实就是标量函数对向量的求导,在之前我们用过定义法求导:

寻找较复杂的实值函数求导更方便的方法,不是每次都先针对任意一个分量,再进行排列。

标量对向量求导的基本法则(PS:和我们以前标量对标量求导的法则类似):

常量对向量的求导结果为0

线性法则:如果f ff、g gg都是实值函数,c 1 c1c1、c 2 c2c2为常数,则

image.png以列向量为自变量的标量函数,其对于自变量的梯度仍然为一阶数相同的列向量

梯度的每个分量代表着函数在该分量方向上的变化率。

2.2 实值向量函数对向量的梯度

即向量对向量求导。

(1)先回顾之前的定义法:

y = A x \mathbf{y} = \mathbf{A} \mathbf{x}y=Ax是向量。

A \mathbf{A}A为n×m矩阵

x \mathbf{x}x为m维向量;y \mathbf{y}y为n维向量

先分别求【矩阵的第 i ii 行和向量的内积】对向量的第 j jj 分量求导,定义法:


image.pngimage.pngimage.pngimage.png

image.png

  • 向量函数对于向量的求导,相当于向量函数中的每一个分量函数对向量求导。
  • 行向量函数对列向量自变量求导形成矩阵;
  • 列向量函数对行向量自变量求导也可以形成矩阵。

2.3 简单练习

image.png

三、矩阵向量化vec

3.1 向量化定义

image.png

四、Python实现Kronecker积等

可以参考numpy的官方文档。

from numpy import dot,cross,kron
# cross ref:https://docs.scipy.org/doc/numpy/reference/generated/numpy.cross.html#numpy.cross
# dot,kron ref:https://docs.scipy.org/doc/numpy/reference/routines.linalg.html
from scipy.linalg import hadamard
# hadamard ref:https://docs.scipy.org/doc/scipy/reference/generated/scipy.linalg.hadamard.html#scipy.linalg.hadamard

这里举个求Kronecker积和向量的外积的栗子:

import numpy as np
a = np.array([[1], [2]])
b = np.array([[3], [4]])
kron1 = np.kron(a, b)
outer = np.outer(a, b)
kron2 = np.kron(a, b.T)

结果如下,可以发现Kronecker积结果是,a的1乘b向量,a的2乘b向量,然后两个向量拼接起来。并且如果a向量和b向量的转置进行Kronecker积,其结果和a和b做向量外积outer结果相同。

复习:K=kron(A,B),获得 A 和 B 的 Kronecker 张量积。如果 A 是 m×n 矩阵,而 B 是 p×q 矩阵,则 kron(A,B) 是通过获取 A 元素与矩阵 B 元素之间的所有可能积而形成的一个 mp×nq 矩阵。

【外积】即两个向量的向量

image.png

积,即两个向量的组成的平面的法向量。

符号表示:a× b

向量积的大小:|a|·|b|·sin<a,b>.

栗子:(x1,y1,z1)×(x2,y2,z2)=(y1z2-y2z1,z1x2-z2x1,x1y2-x2y1)

image.png

相关文章
|
7月前
|
机器学习/深度学习 人工智能 自然语言处理
【Python机器学习】文本特征提取及文本向量化讲解和实战(图文解释 附源码)
【Python机器学习】文本特征提取及文本向量化讲解和实战(图文解释 附源码)
418 0
|
6月前
|
机器学习/深度学习 搜索推荐 算法
【阿旭机器学习实战】【37】电影推荐系统---基于矩阵分解
【阿旭机器学习实战】【37】电影推荐系统---基于矩阵分解
|
7月前
|
机器学习/深度学习 Python
【Python 机器学习专栏】混淆矩阵与 ROC 曲线分析
【4月更文挑战第30天】本文介绍了机器学习中评估模型性能的两种工具——混淆矩阵和ROC曲线。混淆矩阵显示了模型在不同类别上的预测情况,包括真正例、假正例、真反例和假反例,帮助评估模型错误类型和数量。ROC曲线则通过假正率和真正率展示了模型的二分类性能,曲线越接近左上角,性能越好。文章还提供了Python中计算混淆矩阵和ROC曲线的代码示例,强调它们在模型选择、参数调整和理解模型行为中的应用价值。
206 0
|
7月前
|
机器学习/深度学习 搜索推荐 算法
python机器学习:推荐系统实现(以矩阵分解来协同过滤)
python机器学习:推荐系统实现(以矩阵分解来协同过滤)
|
7月前
|
机器学习/深度学习 JavaScript Python
GEE机器学习——混淆矩阵Classifier.confusionMatrix()和errorMatrix()和exlain()的用法(js和python代码)
GEE机器学习——混淆矩阵Classifier.confusionMatrix()和errorMatrix()和exlain()的用法(js和python代码)
183 0
|
7月前
|
机器学习/深度学习 人工智能 算法
【人工智能】<吴恩达-机器学习>批量梯度下降&矩阵和向量运算概述
【1月更文挑战第26天】【人工智能】<吴恩达-机器学习>批量梯度下降&矩阵和向量运算概述
|
机器学习/深度学习 监控 PyTorch
机器学习 - 混淆矩阵:技术与实战全方位解析
机器学习 - 混淆矩阵:技术与实战全方位解析
501 0
|
机器学习/深度学习
【吴恩达机器学习笔记】三、矩阵
【吴恩达机器学习笔记】三、矩阵
81 0
|
16天前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
51 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
【MM2024】阿里云 PAI 团队图像编辑算法论文入选 MM2024
阿里云人工智能平台 PAI 团队发表的图像编辑算法论文在 MM2024 上正式亮相发表。ACM MM(ACM国际多媒体会议)是国际多媒体领域的顶级会议,旨在为研究人员、工程师和行业专家提供一个交流平台,以展示在多媒体领域的最新研究成果、技术进展和应用案例。其主题涵盖了图像处理、视频分析、音频处理、社交媒体和多媒体系统等广泛领域。此次入选标志着阿里云人工智能平台 PAI 在图像编辑算法方面的研究获得了学术界的充分认可。
【MM2024】阿里云 PAI 团队图像编辑算法论文入选 MM2024