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

简介: 学习总结(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

相关文章
|
5月前
|
机器学习/深度学习 人工智能 自然语言处理
【Python机器学习】文本特征提取及文本向量化讲解和实战(图文解释 附源码)
【Python机器学习】文本特征提取及文本向量化讲解和实战(图文解释 附源码)
345 0
|
4月前
|
机器学习/深度学习 搜索推荐 算法
【阿旭机器学习实战】【37】电影推荐系统---基于矩阵分解
【阿旭机器学习实战】【37】电影推荐系统---基于矩阵分解
|
5月前
|
机器学习/深度学习 Python
【Python 机器学习专栏】混淆矩阵与 ROC 曲线分析
【4月更文挑战第30天】本文介绍了机器学习中评估模型性能的两种工具——混淆矩阵和ROC曲线。混淆矩阵显示了模型在不同类别上的预测情况,包括真正例、假正例、真反例和假反例,帮助评估模型错误类型和数量。ROC曲线则通过假正率和真正率展示了模型的二分类性能,曲线越接近左上角,性能越好。文章还提供了Python中计算混淆矩阵和ROC曲线的代码示例,强调它们在模型选择、参数调整和理解模型行为中的应用价值。
178 0
|
5月前
|
机器学习/深度学习 搜索推荐 算法
python机器学习:推荐系统实现(以矩阵分解来协同过滤)
python机器学习:推荐系统实现(以矩阵分解来协同过滤)
|
5月前
|
机器学习/深度学习 JavaScript Python
GEE机器学习——混淆矩阵Classifier.confusionMatrix()和errorMatrix()和exlain()的用法(js和python代码)
GEE机器学习——混淆矩阵Classifier.confusionMatrix()和errorMatrix()和exlain()的用法(js和python代码)
156 0
|
5月前
|
机器学习/深度学习 人工智能 算法
【人工智能】<吴恩达-机器学习>批量梯度下降&矩阵和向量运算概述
【1月更文挑战第26天】【人工智能】<吴恩达-机器学习>批量梯度下降&矩阵和向量运算概述
|
12月前
|
机器学习/深度学习 监控 PyTorch
机器学习 - 混淆矩阵:技术与实战全方位解析
机器学习 - 混淆矩阵:技术与实战全方位解析
374 0
|
机器学习/深度学习
【吴恩达机器学习笔记】三、矩阵
【吴恩达机器学习笔记】三、矩阵
75 0
|
15天前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
44 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
2月前
|
机器学习/深度学习 算法 数据挖掘
8个常见的机器学习算法的计算复杂度总结
8个常见的机器学习算法的计算复杂度总结
8个常见的机器学习算法的计算复杂度总结
下一篇
无影云桌面