矩阵求导方法&最小二乘最优解求解过程
2017-11-21 11:20
1371 查看
一、 矩阵求导方法
1. 对于映射f:ℜm∗n↦ℜ,即将m∗n的矩阵A映射为实数
20000
f(A),则函数f关于A的偏导为:
∇Af(A)=⎡⎣⎢⎢⎢⎢⎢∂f∂A11⋮∂f∂Am1⋯⋱⋯∂f∂A1n⋮∂f∂Amn⎤⎦⎥⎥⎥⎥⎥
2. tr trace operator
对于n∗n的方阵A,则Tr(A)为A矩阵的对角线元素之和,即:
tr(A)=∑i=1nAii
实数的trace等于实数本身,即tr(a)=a,a∈ℜ
3.使用tr对矩阵求偏导,公式如下:
∇Atr(AB)=BT∇ATf(A)=(∇Af(A))T∇Atr(ABATC)=CAB+CTABT
二、使用基于tr矩阵求导公式计算最小二乘的最优解
1. 最小二乘问题
最小二乘问题没有约束条件,目标函数是若干项的平方和,每一项都具有aTiX−bi的形式,,具体如下:
minimizef0(X)=∑i=1k(aTiX−bi)2
其中A∈ℜk×n,aTi是矩阵A的行向量,其中向量X∈ℜn为优化变量。设B=[b1,b2,…,bk]T,则:
∇Xf(X)=∇X(AX−B)T(AX−B)=∇X(XTAT−BT)(AX−B)=∇X(XTATAX−XTATB−BTAX−BTB)
因为括号中为实数,则可变换为:
∇Xf(X)=∇X(XTATAX−XTATB−BTAX−BTB)=∇X(tr(XTATAX)−2tr(BTAX))=∇Xtr(XTATAX)−2∇Xtr(BTAX)=∇Xtr(XTATAX)−2ATB
而∇Atr(ABATC)=CAB+CTABT,假设B=ATA,c=I得∇Xtr(XTATAX)=ATAX+ATAX=2ATAX,则:
∇Xf(X)=∇X(XTATAX−XTATB−BTAX−BTB)=∇X(tr(XTATAX)−2tr(BTAX))=∇Xtr(XTATAX)−2∇Xtr(BTAX)=∇Xtr(XTATAX)−2ATB=2ATAX−2ATB
目标函数(成本)为
minimizef0(X)
则使∇Xf(X)=0即可得最优解,则2ATAX−2ATB=0
得:ATAX=ATB
则:X=(ATA)−1ATB
1. 对于映射f:ℜm∗n↦ℜ,即将m∗n的矩阵A映射为实数
20000
f(A),则函数f关于A的偏导为:
∇Af(A)=⎡⎣⎢⎢⎢⎢⎢∂f∂A11⋮∂f∂Am1⋯⋱⋯∂f∂A1n⋮∂f∂Amn⎤⎦⎥⎥⎥⎥⎥
2. tr trace operator
对于n∗n的方阵A,则Tr(A)为A矩阵的对角线元素之和,即:
tr(A)=∑i=1nAii
实数的trace等于实数本身,即tr(a)=a,a∈ℜ
3.使用tr对矩阵求偏导,公式如下:
∇Atr(AB)=BT∇ATf(A)=(∇Af(A))T∇Atr(ABATC)=CAB+CTABT
二、使用基于tr矩阵求导公式计算最小二乘的最优解
1. 最小二乘问题
最小二乘问题没有约束条件,目标函数是若干项的平方和,每一项都具有aTiX−bi的形式,,具体如下:
minimizef0(X)=∑i=1k(aTiX−bi)2
其中A∈ℜk×n,aTi是矩阵A的行向量,其中向量X∈ℜn为优化变量。设B=[b1,b2,…,bk]T,则:
∇Xf(X)=∇X(AX−B)T(AX−B)=∇X(XTAT−BT)(AX−B)=∇X(XTATAX−XTATB−BTAX−BTB)
因为括号中为实数,则可变换为:
∇Xf(X)=∇X(XTATAX−XTATB−BTAX−BTB)=∇X(tr(XTATAX)−2tr(BTAX))=∇Xtr(XTATAX)−2∇Xtr(BTAX)=∇Xtr(XTATAX)−2ATB
而∇Atr(ABATC)=CAB+CTABT,假设B=ATA,c=I得∇Xtr(XTATAX)=ATAX+ATAX=2ATAX,则:
∇Xf(X)=∇X(XTATAX−XTATB−BTAX−BTB)=∇X(tr(XTATAX)−2tr(BTAX))=∇Xtr(XTATAX)−2∇Xtr(BTAX)=∇Xtr(XTATAX)−2ATB=2ATAX−2ATB
目标函数(成本)为
minimizef0(X)
则使∇Xf(X)=0即可得最优解,则2ATAX−2ATB=0
得:ATAX=ATB
则:X=(ATA)−1ATB
相关文章推荐
- 最小二乘法-矩阵求导求解
- 利用统计方法求π(PI),并可视化显示求解过程(C++&&OpenCV)
- 题目1102:最小面积子矩阵(暴力求解&最大连续子序列)
- 数据结构第5章例题 若矩阵Am×n中存在某个元素aij满足:aij是第i行中的最小值且是第j列中的最大值,则称该元素为矩阵A的一个鞍点。试编写一个算法,找出A中的所有鞍点。
- 深度学习笔记(五) 代价函数的梯度求解过程和方法
- android调用jni方法生成的so库函数的过程&发生的异常解决方法(持续更新)
- 矩阵求导方法
- c编程:求出4×4矩阵中最大和最小元素值及其所在行下标和列下标,求出两条主对角线元素之和。
- vault 创建过程 & 新增编码的方法
- 【HDU】1757 - A Simple Math Problem(矩阵构造方法 & 快速幂)
- css3 矩阵 js旋转过程运算
- SQL2008无法连接到.\SQLEXPRESS,用户'sa'登录失败(错误18456)图文解决方法 已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: 共享内存提供程序, er
- 软件安装过程中产生的临时文件&&手动清除系统拉圾8大方法
- 使用C语言实现最小生成树求解的简单方法
- 顺时针旋转矩阵90°的几种方法
- 【机器学习】求解过程快速又简单的最小二乘支持向量机LSSVM二分类
- 记录开发过程中遇到的bugs&解决方法
- 斐波那契数列的递归与非递归求解方法&递归的优缺点
- [矩阵树定理 模板题] BZOJ 1016 [JSOI2008]最小生成树计数 & HDU 4408 Minimum Spanning Tree
- Floyd-Warshall算法过程中矩阵计算方法—十字交叉法