1. 定义:函数f(X)=log⁡det⁡Xf\left( X \right) = \log \det Xf(X)=logdetX,domf∈S++ndomf \in S_{ + + }^ndomf∈S++n​,则称函数fff为对数-行列式函数,现在我们想分析该函数是凸函数还是凹函数?或是非凸又非凹?
    总体思路:由于该函数的自变量是正定的对称矩阵(n×nn \times nn×n矩阵),定义域为正定对称矩阵构成的一个矩阵空间,是一个典型的高维函数,针对这类函数,我们可以先用一些特例去验证:譬如n=1n=1n=1,即X为一维矩阵,那么det⁡X\det XdetX就等于它本身,而我们知道log函数是凹函数,因此至少对数—行列式函数不是凸函数,因为我们已经找到一个反例了,那它是不是凹函数呢?接下来我们将去验证。
  2. 准备知识:在分析对数—行列式函数的凹凸性之前,回顾一下有关线性代数的知识,这些知识将是我们接下来分析中需要用的。
    (1)设A、B为两个n×nn \times nn×n的矩阵,那么我们有det⁡(AB)=det⁡Adet⁡B\det (AB)=\det A \det Bdet(AB)=detAdetB,即两个相乘矩阵的行列式等于分别求行列式再相乘。
    (2)假设λ1,λ2,⋯ ,λn\lambda_1,\lambda_2,\cdots,\lambda_nλ1​,λ2​,⋯,λn​为矩阵AAA的特征值,那么det⁡A=λ1λ2⋯λn\det A=\lambda_1\lambda_2\cdots\lambda_ndetA=λ1​λ2​⋯λn​.
    (3)特征值分解:即任何一个对称矩阵AAA都可以分解成QΛQTQ\Lambda {Q^T}QΛQT的形式,其中,Λ\LambdaΛ为对角阵,且其对角线上的元素为矩阵AAA的特征值,QQT=IQ{Q^T}=IQQT=I。
  3. 分析与证明:我们将函数f(X)=log⁡det⁡Xf\left( X \right) = \log \det Xf(X)=logdetX转化为任意直线上的单变量函数来分析它的凹凸性(这也是对高维变量函数验证凹凸性通常的做法)。令X=Z+tVX=Z+tVX=Z+tV,其中,Z,V∈SnZ,V \in S^nZ,V∈Sn,定义g(t)=f(Z+tV)g \left(t\right)=f \left(Z+tV \right)g(t)=f(Z+tV),变量t满足X=Z+tV≻0X=Z+tV \succ0X=Z+tV≻0(假设t=0t=0t=0时,Z≻0Z \succ0Z≻0),有:g(t)=log⁡det⁡(Z+tV)=log⁡det⁡(Z12(I+tZ−12VZ−12)Z12)g \left(t\right)= \log \det \left(Z+tV\right) =\log \det \left( Z^{\frac{1}{2}}\left( I + tZ^{ - \frac{1}{2}}VZ^{ - \frac{1}{2}} \right){Z^{\frac{1}{2}}} \right)g(t)=logdet(Z+tV)=logdet(Z21​(I+tZ−21​VZ−21​)Z21​)
    =log⁡det⁡(Z12)det⁡(I+tZ−12VZ−12)det⁡(Z12)=\log \det \left(Z^{\frac{1}{2}} \right) \det \left(I + t{Z^{ - \frac{1}{2}}VZ^{ - \frac{1}{2}}} \right)\det \left(Z^{\frac{1}{2}} \right)=logdet(Z21​)det(I+tZ−21​VZ−21​)det(Z21​)
    =log⁡det⁡(Z12)+log⁡det⁡(I+tZ−12VZ−12)+log⁡det⁡(Z12)=\log \det\left(Z^{\frac{1}{2}} \right)+\log \det\left(I + t{Z^{ - \frac{1}{2}}VZ^{ - \frac{1}{2}}} \right)+\log \det\left(Z^{\frac{1}{2}} \right)=logdet(Z21​)+logdet(I+tZ−21​VZ−21​)+logdet(Z21​)
    =2log⁡det⁡(Z12)+log⁡det⁡(I+tZ−12VZ−12)=2\log \det\left(Z^{\frac{1}{2}} \right)+\log \det\left(I + t{Z^{ - \frac{1}{2}}VZ^{ - \frac{1}{2}}} \right)=2logdet(Z21​)+logdet(I+tZ−21​VZ−21​)
    =log⁡det⁡(Z)+log⁡det⁡(I+tZ−12VZ−12)=\log \det\left(Z \right)+\log \det\left(I + t{Z^{ - \frac{1}{2}}VZ^{ - \frac{1}{2}}} \right)=logdet(Z)+logdet(I+tZ−21​VZ−21​)
    下面我们考虑矩阵Z−12VZ−12Z^{ - \frac{1}{2}}VZ^{ - \frac{1}{2}}Z−21​VZ−21​,因为Z,V∈SnZ,V \in S^nZ,V∈Sn是对称矩阵,则Z−12VZ−12Z^{ - \frac{1}{2}}VZ^{ - \frac{1}{2}}Z−21​VZ−21​可以进行特征值分解(见准备知识2),因此,我们可以将矩阵I+tZ−12VZ−12I + t{Z^{ - \frac{1}{2}}VZ^{ - \frac{1}{2}}}I+tZ−21​VZ−21​写成QQT+tQΛQTQ{Q^T}+tQ\Lambda{Q^T}QQT+tQΛQT形式,那么det⁡(I+tZ−12VZ−12)=det⁡(QQT+tQΛQT)=det⁡(Q(I+tΛ)QT)=det⁡(QQT)det⁡(I+tΛ)=det⁡(I)det⁡(I+tΛ)=∏i=1n(1+tλi)\det\left( I + tZ^{ - \frac{1}{2}}VZ^{ - \frac{1}{2}} \right)=\det\left( Q{Q^T}+tQ\Lambda{Q^T} \right)=\det\left( Q\left(I+t\Lambda \right){Q^T}\right)=\det\left(Q{Q^T}\right)\det\left(I+t\Lambda\right)=\det \left(I\right) \det \left(I+t\Lambda\right)=\prod \limits_{i = 1}^n {\left( {1 + t{\lambda _i}} \right)}det(I+tZ−21​VZ−21​)=det(QQT+tQΛQT)=det(Q(I+tΛ)QT)=det(QQT)det(I+tΛ)=det(I)det(I+tΛ)=i=1∏n​(1+tλi​)
    所以g(t)=log⁡det⁡(Z)+log⁡det⁡(I+tZ−12VZ−12)=log⁡det⁡(Z)+log⁡(∏i=1n(1+tλi))=log⁡det⁡(Z)+∑i=1nlog⁡(1+tλi)g \left(t\right)=\log \det\left(Z \right)+\log \det\left(I + t{Z^{ - \frac{1}{2}}VZ^{ - \frac{1}{2}}} \right)=\log \det\left(Z \right)+\log \left(\prod \limits_{i = 1}^n {\left( {1 + t{\lambda _i}} \right)}\right)=\log \det\left(Z \right)+\sum\limits_{i = 1}^n {\log \left( {1 + t{\lambda _i}} \right)}g(t)=logdet(Z)+logdet(I+tZ−21​VZ−21​)=logdet(Z)+log(i=1∏n​(1+tλi​))=logdet(Z)+i=1∑n​log(1+tλi​)
    我们对函数g(t)g \left(t\right)g(t)求一阶导和二阶导,结果分别为:
    g′(t)=∑i=1nλi1+tλig'\left( t \right) = \sum\limits_{i = 1}^n {\frac{{{\lambda _i}}}{{1 + t{\lambda _i}}}}g′(t)=i=1∑n​1+tλi​λi​​
    g′′(t)=−∑i=1nλi2(1+tλi)2g''\left( t \right) = - \sum\limits_{i = 1}^n {\frac{{{\lambda _i}^2}}{{{{\left( {1 + t{\lambda _i}} \right)}^2}}}}g′′(t)=−i=1∑n​(1+tλi​)2λi​2​
    可以看出二阶导g′′(t)⩽0g''\left( t \right) \leqslant0g′′(t)⩽0,所以g(t)g\left(t\right)g(t)是凹函数,则函数f(X)=log⁡det⁡Xf\left( X \right) = \log \det Xf(X)=logdetX也为凹函数,证毕!
    ———————————————————————————————
    总结:对于高维变量的函数的凹凸性判断,我们首先可以从直观上进行特例假设(如维数为1时),看看特例的函数是凹函数还是凸函数数,有了直观的判断以后,我们就可以进行分析了,而通常对高维变量函数的凹凸性证明,我们都是将该函数转化为任意直线上的单变量函数去进行证明。

对数—行列式函数的分析相关推荐

  1. Stata:因子变量全攻略-双向固定效应-超越对数生产函数

    作者:连玉君 | 杨柳 ( 知乎 | 简书 | 码云 )   注:该文已发表: 连玉君, 杨柳.<郑州航空工业管理学院学报>, 2018, 36(2): 90-103. [ -点击下载-] ...

  2. linux lock函数,Linux lock_kernel()函数的分析。

    这只是暂时的记录,以后会把它归类到start_kernel()函数的分析.在分析之前,我先要说说几个概念. 内核抢占:在2.6内核加入了抢占的能力,就是说调度程序有办法在一个内核级的任务正在执行的时候 ...

  3. DbgPrint 函数流程分析

    DbgPrint 函数流程分析 前言 Windows 下编写内核驱动时经常用到 DbgPrint 函数输出一些调试信息,用来辅助调试.当正在用 WinDbg 内核调试时,调试信息会输出到 WinDbg ...

  4. Boost:使用行列式函数和transform()算法计算许多4x4矩阵的行列式

    Boost:使用行列式函数和transform()算法计算许多4x4矩阵的行列式 实现功能 C++实现代码 实现功能 使用行列式函数和transform()算法计算许多4x4矩阵的行列式 C++实现代 ...

  5. 增长黑客系列:今天比昨天增长多少?快使用环比函数来分析日志

    摘要: 增长黑客系列:今天比昨天增长多少?快使用环比函数来分析日志 在我们平时分析业务时,一个最重要的指标就是,今天比昨天增长多少,本周比上周增长多少:或者同上一个周期相比增长最大的分类是哪个?这些问 ...

  6. mysql 源码 缓存_MySQL源码:MYSQL存储过程/函数的分析原理及缓存机制

    前言:我个人认为,有关MYSQL存储过程/函数在MYSQL中的实现比较粗糙,可扩展性不够好,其实现的耦合性太高,所以主要讲一些它的原理方面的内容,但有可能在某些方面理解不够好或者有些不正确的地方,欢迎 ...

  7. linux中request_region()函数的分析

    linux中request_region()函数的分析 struct resource ioport_resource = { .name = "PCI IO", .start = ...

  8. caffe中loss函数代码分析--caffe学习(16)

    接上篇:caffe中样本的label一定要从序号0开始标注吗?–caffe学习(15) A: 1:数学上来说,损失函数loss值和label从0开始还是从1或者100开始是没有直接联系的,以欧式距离损 ...

  9. 三阶行列式的题目_考研数学 | 线性代数中的行列式重难点分析

    巧儿姐姐叨一叨 线性代数是考研高数试卷中的一个重要组成部分,大约占整个试卷中22%的比例.据历年的考察情形来看,线代的题型变化不大,比较容易拿分.这样也就要求大家在线性代数的地方一定要把该拿的分拿到! ...

  10. Linux时钟管理clk_get函数透彻分析

    硬件资源越来越庞大和复杂,内核的另一个挑战就是要便捷的管理这些资源.同时,面对如此之多的平台不同的CPU ,管理机制需要统一适用,这就需要对资源的管理抽象到更加通用的层次.CPU中各个模块都需要时钟驱 ...

最新文章

  1. Android超时退出功能解决方案
  2. 【arduino】arduino ISP下载程序方法,用arduino uno给arduino nano下载程序
  3. 无RTOS下使用队列出现的问题记录
  4. SpringBoot+Redis(实现处理热点数据)
  5. ob 接oracle10时接不上怎么办?
  6. 启动“powershell.exe”时出现错误 0x8007000
  7. 被夸了几十年,地球都要因为它变秃了,你还天天用它......
  8. LOJ.2865.[IOI2018]狼人(Kruskal重构树 主席树)
  9. 实战GraphQL+express+mysql项目完整demo
  10. 3.建造者模式(Builder)
  11. 计算机操作系统有几种基本管理,操作系统有哪些管理功能
  12. Excel竟然能够按照单元格的指定颜色顺序排序
  13. op 反馈电阻并联二极管
  14. 腾讯云服务器添加虚拟内存
  15. word文档被覆盖了怎么恢复原状
  16. python人民币小写转大写_Python小程序 -- 人民币小写转大写辅助工具
  17. 宇宙中最大的神秘结构被发现 跨度达40亿光年
  18. 浣溪沙·残雪凝辉冷画屏
  19. 离线数据系统之MapReduce加强
  20. 大数据平台架构设计案例

热门文章

  1. Itil v3 process model
  2. Codeforces Round #215 (Div. 2) 解题报告
  3. 业界大佬患互联网手机焦虑症 圈地运动骤然爆发
  4. Asp.net2.0 中自定义过滤器对Response内容进行处理
  5. 天梯赛L2-10:排座位
  6. 闹钟流程_国际航班流程全攻略(中转+不同航空公司+中转换机场+航班变动)
  7. 1067 Sort with Swap(0, i) (25 分) 好,容易出错
  8. 性能计数器驱动_Vulkan 探密:AMD Vulkan 开源驱动源码解析-零
  9. 2022届秋招笔试题小结:图
  10. java未_Java未被捕获的异常