diff --git a/SVD-for-homogeneous-linear-equation/index.html b/SVD-for-homogeneous-linear-equation/index.html new file mode 100644 index 0000000..53d3690 --- /dev/null +++ b/SVD-for-homogeneous-linear-equation/index.html @@ -0,0 +1,534 @@ + + + + + + + + 想法速记:SVD求齐次线性方程组 Ax=0 的解 - Blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+
+
+ +
+
+
+
+
+ +
+ +
+
+
+
+
+
+

+ + 「 + IDEA + + 六月 04, 2020 +

+

想法速记:SVD求齐次线性方程组 Ax=0 的解 +

+ +

+ + + 文章字数 + 2.9k + + + + + 阅读约需 + 3 mins. + + + + + + 阅读次数 + 0 + + +

+ + +
+
+
+ +
+
+
+ +
+
+
+ +
+
+
+
+

原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

+
+

众所周知,SVD(奇异值分解)可以用于最小二乘法求齐次线性方程组$A\vec{x}=\vec{0}$的解。我看了很多资料,大多使用数学公式推导,得出结论。但是,曾经线性代数差点挂科的我,总觉得有些蹊跷。想了两天,终于有了一些感性的认知(不一定是对的😂),赶紧记录下来。

+

矩阵有何意义

+

按照我的理解,一个矩阵的实际意义是对应一个线性变换,这个变换可以理解为瞬间运动。例如,一个旋转矩阵,

+

$$
+A=\begin{bmatrix}
+cos\theta & sin\theta \\\
+-sin\theta & cos\theta
+\end{bmatrix}
+$$

+

它的意思是,把一个向量顺时针旋转$\theta$。也就是说,给定一个$\vec{v_1}=[-1, 1]^T$, 那么变换的结果就是$\vec{v_2}=A\vec{v_1}=[1, 1]^T$.

+

除了旋转,矩阵还可以表示包括缩放,投影在内的所有线性变换

+

十分推荐大家去看 3Blue1Brown 的 线性代数的本质,B 站有官方翻译版,它完全颠覆了我对线性代数的认知。

+

SVD到底干了什么

+

$$
+A = U\Sigma V^T
+$$

+

SVD把矩阵$A(m\times n)$分解成了,

+
    +
  • $U(m\times m)$: 左奇异矩阵
  • +
  • $\Sigma(m\times n)$: 奇异值矩阵
  • +
  • $V(n\times n)$: 右奇异矩阵
  • +
+

重点来了,SVD的意思就是,把一个本来由矩阵$A$表示的变换,转化成一个由$U,\Sigma,V$表示的变换。这个变换是,把一个向量,从以$V$为基向量的空间线性变换到成以$U$为基向量的空间中去($\Sigma$的意义可以说是缩放,待证实,暂时忽略)。这样我们就可以更深入的理解这个变换了。

+

例如旋转$\vec{v_1}$90度得到$\vec{v_2}$,

+

rotate 90

+

其中,

+

$$
+U=\begin{bmatrix}
+0 & 1 \\\
+1 & 0
+\end{bmatrix}
+$$

+

$$
+\Sigma=\begin{bmatrix}
+1 & 1
+\end{bmatrix}
+$$

+

$$
+V=\begin{bmatrix}
+-1 & 0 \\\
+0 & 1
+\end{bmatrix}
+$$

+

也就是说,矩阵$A$可以被理解为,我们把一个向量$\vec{v_1}$,从以$\vec{e_1}=[-1, 0]^T,\vec{e_2}=[0, 1]^T$为基向量的空间线性变换到了以$\vec{e_1}=[0, 1]^T,\vec{e_2}=[1, 0]^T$为基向量的空间中。这个变换表现为旋转了90度。

+

所以如何理解

+

说回求齐次线性方程组$Ax=0$的解来。

+

按照矩阵的意义,我们这里要求的是,已知一个线性变换$A$,给定一个$\vec{x}$,使得线性变换后的结果为$\vec{0}$。

+

此时非常重要的是,如果$x=\vec{0}$,那一定成立,但是我们想找一个非平凡的解。

+

我们暂时不关心这个解是否存在,也就是说如果不存在,我们就找个最接近的(最小二乘法思想),我们直接使用SVD分解矩阵$A$,得到对应的$U,\Sigma,V$。

+

按照SVD的作用,我们现在可以说,矩阵$A$这个线性变换,把一个$\vec{x}$,从以$V$为基向量的空间线性变换到了以$U$为基向量的空间中,而我们想找,在以$V$为基向量的空间中,哪个向量会在投影后趋近于或者等于$\vec{0}$。更重要的是,我们只在乎这个向量的方向,而不在乎他的大小,因为它等于$\vec{0}$是个平凡解,这就像最小二乘法中,我们规定$|\vec{x}|=1$。

+

这时,答案就开始变得清晰了,因为我们想找的$\vec{x}$,应该就是$V$这组基向量中特异值$\sigma$最小的那一个$\vec{e_{min}}$,也就是说$\vec{x}=\vec{e_{min}}$。此时有两种情况,

+
    +
  1. $\sigma=0$, 那么$\vec{x}$投影后的就是$\vec{0}$。
  2. +
  3. $\sigma\neq0$,那么$\vec{x}$投影后是使$A\vec{x}$最小的解。因为如果$\vec{x}\neq\vec{e_{min}}$,也就是说它偏离了$\vec{e_{min}}$,那么它一定由$\vec{e_{min}}$和另一个基向量线性组合,而无论怎么组合,$\sigma_{combine}\geq\sigma_{min}$。
  4. +
+

因此,我们求解$A\vec{x}=0$的过程就是,

+
    +
  1. $U,\Sigma,V^T=SVD(A)$
  2. +
  3. $\vec{x}=V[:, -1]$
  4. +
+ + + + + + + + + + + + + +
+ +
+
+ +
+
+
+
+ 0% + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/anu-comp2310-assignment1/index.html b/anu-comp2310-assignment1/index.html index 9491e5a..a813fae 100644 --- a/anu-comp2310-assignment1/index.html +++ b/anu-comp2310-assignment1/index.html @@ -537,8 +537,8 @@ $$

diff --git a/archives/2020/01/index.html b/archives/2020/01/index.html index 0293321..dd0694c 100644 --- a/archives/2020/01/index.html +++ b/archives/2020/01/index.html @@ -60,11 +60,62 @@

归档

-

「 10 」

+

「 12 」

diff --git a/inspur-ip-guard-uninstallation/index.html b/inspur-ip-guard-uninstallation/index.html index d29c9fd..007b456 100644 --- a/inspur-ip-guard-uninstallation/index.html +++ b/inspur-ip-guard-uninstallation/index.html @@ -295,8 +295,8 @@ C:\WINDOWS\SysWOW64\drivers
diff --git a/jenkins-update-solution-inside-gfw/index.html b/jenkins-update-solution-inside-gfw/index.html index 6924222..9934d47 100644 --- a/jenkins-update-solution-inside-gfw/index.html +++ b/jenkins-update-solution-inside-gfw/index.html @@ -214,8 +214,8 @@ diff --git a/kinsing-virus/index.html b/kinsing-virus/index.html index cec93be..df27564 100644 --- a/kinsing-virus/index.html +++ b/kinsing-virus/index.html @@ -216,8 +216,8 @@ diff --git a/multiline-equation-in-hexo/index.html b/multiline-equation-in-hexo/index.html new file mode 100644 index 0000000..6925bba --- /dev/null +++ b/multiline-equation-in-hexo/index.html @@ -0,0 +1,496 @@ + + + + + + + + 技巧速记:如何在Hexo中插入多行公式 - Blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+
+
+ +
+
+
+
+
+ +
+ +
+
+
+
+
+
+

+ + 「 + WORKAROUND + + 六月 04, 2020 +

+

技巧速记:如何在Hexo中插入多行公式 +

+ +

+ + + 文章字数 + 909 + + + + + 阅读约需 + 1 mins. + + + + + + 阅读次数 + 0 + + +

+ + + + +
+
+
+ +
+
+
+ +
+
+
+ +
+
+
+
+

原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

+
+

Q

+

我在博客中写公式的时候使用双斜线\\来代表换行,效果是这样的,

+

$$
+\begin{bmatrix}
+cos\theta & sin\theta \
+-sin\theta & cos\theta
+\end{bmatrix}
+$$

+

那么如何插入多行公式呢?

+

A

+

根据Multiple lines Mathjax formulas flattened to one line,应该插入 六个 斜线来表示换行,应该是由于Markdown的渲染机制导致\\被反义。

+

$$
+\begin{bmatrix}
+cos\theta & sin\theta \\\
+-sin\theta & cos\theta
+\end{bmatrix}
+$$

+ + + + + + + + + + + + + +
+ +
+
+ +
+
+
+
+ 0% + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/page/2/index.html b/page/2/index.html new file mode 100644 index 0000000..717b81b --- /dev/null +++ b/page/2/index.html @@ -0,0 +1,573 @@ + + + + + + + + Blog - DavidZ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+
+
+ +
+ + +
+ + + +
+
+
+
+
+ +
+

+ + 「 + STUDY + + 一月 11, 2020 +

+

+ ANU COMP2310(2019) Assignment 1

+ +

+ + + 文章字数 + 17k + + + + + 阅读约需 + 16 mins. + + + +

+ + + + +
+ +
+

原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

+
+
+

敬告

+
本博客仅供参考,请不要抄袭。
+
+ +

这是 ANU COMP2310的第一次大作业,历时一个月左右,也是这个学期我写的最认真的一次作业,所以在博客搭建伊始,我先把这个记录下来。

+ +

根据Assignment 1 PDF中的描述,大概的意思就是在三维空间中有许多的,具有速度和加速度(都是三维向量),而且不管是否加速,都会消耗一定的能量,当然加速也会加快能量的消耗。然后就是有一个或多个能量球,当然也是在运动中的,同样具有速度和加速度。当能量球靠近的时候,能够获取到能量...

+ + 查看全文 + +
+
+ +
+ +
+
+
+ +
+
+
+ +
+ +
+
+
+
+

+ + + STUDY + + + 一月 11, 2020 +

+

ANU COMP2310(2019) Assignment 1

+ +

+ + + 文章字数 + 17k + + + + + 阅读约需 + 16 mins. + + + +

+ + + + +
+ +
+

原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

+
+
+

敬告

+
本博客仅供参考,请不要抄袭。
+
+ +

这是 ANU COMP2310的第一次大作业,历时一个月左右,也是这个学期我写的最认真的一次作业,所以在博客搭建伊始,我先把这个记录下来。

+ +

根据Assignment 1 PDF中的描述,大概的意思就是在三维空间中有许多的,具有速度和加速度(都是三维向量),而且不管是否加速,都会消耗一定的能量,当然加速也会加快能量的消耗。然后就是有...

+ + 查看全文 +
+
+
+ + +
+
+
+
+

+ + + PERSONAL + + + 一月 06, 2020 +

+

Hello World

+ +

+ + + 文章字数 + 1.4k + + + + + 阅读约需 + 1 mins. + + + +

+ + + + +
+ +
+

原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

+
+

哈哈哈,这是一个经典的测试页面。

+

一直以来都想拥有一个自己的博客,从WordPress开始,到Typecho,再到Halo,甚至中途尝试用 Django 自己实现了一个(不过样子也太丑了),虽然说一直在捣鼓博客,但是从来都是安装=>部署=>安装插件=>选择主题=>发布第一篇文章,然后就没有然后了。

+

今天我突然看到HexoObsidian主题,我觉得时...

+ + 查看全文 +
+
+
+ + +
+ +
+
+ +
+
+ 0% + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rattle-change-language/index.html b/rattle-change-language/index.html index 99cfe10..9f126fa 100644 --- a/rattle-change-language/index.html +++ b/rattle-change-language/index.html @@ -201,8 +201,8 @@ diff --git a/search.xml b/search.xml index bdfe7e6..861928d 100644 --- a/search.xml +++ b/search.xml @@ -3,6 +3,50 @@ + + 技巧速记:如何在Hexo中插入多行公式 + + /multiline-equation-in-hexo/ + +

原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

Q

我在博客中写公式的时候使用双斜线\\来代表换行,效果是这样的,

$$
\begin{bmatrix}
cos\theta & sin\theta \
-sin\theta & cos\theta
\end{bmatrix}
$$

那么如何插入多行公式呢?

A

根据Multiple lines Mathjax formulas flattened to one line,应该插入 六个 斜线来表示换行,应该是由于Markdown的渲染机制导致\\被反义。

$$
\begin{bmatrix}
cos\theta & sin\theta \\\
-sin\theta & cos\theta
\end{bmatrix}
$$

]]>
+ + + + + Workaround + + + + + + + Markdown + + + +
+ + + + + 想法速记:SVD求齐次线性方程组 Ax=0 的解 + + /SVD-for-homogeneous-linear-equation/ + +

原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

众所周知,SVD(奇异值分解)可以用于最小二乘法求齐次线性方程组$A\vec{x}=\vec{0}$的解。我看了很多资料,大多使用数学公式推导,得出结论。但是,曾经线性代数差点挂科的我,总觉得有些蹊跷。想了两天,终于有了一些感性的认知(不一定是对的😂),赶紧记录下来。

矩阵有何意义

按照我的理解,一个矩阵的实际意义是对应一个线性变换,这个变换可以理解为瞬间运动。例如,一个旋转矩阵,

$$
A=\begin{bmatrix}
cos\theta & sin\theta \\\
-sin\theta & cos\theta
\end{bmatrix}
$$

它的意思是,把一个向量顺时针旋转$\theta$。也就是说,给定一个$\vec{v_1}=[-1, 1]^T$, 那么变换的结果就是$\vec{v_2}=A\vec{v_1}=[1, 1]^T$.

除了旋转,矩阵还可以表示包括缩放,投影在内的所有线性变换

十分推荐大家去看 3Blue1Brown 的 线性代数的本质,B 站有官方翻译版,它完全颠覆了我对线性代数的认知。

SVD到底干了什么

$$
A = U\Sigma V^T
$$

SVD把矩阵$A(m\times n)$分解成了,

重点来了,SVD的意思就是,把一个本来由矩阵$A$表示的变换,转化成一个由$U,\Sigma,V$表示的变换。这个变换是,把一个向量,从以$V$为基向量的空间线性变换到成以$U$为基向量的空间中去($\Sigma$的意义可以说是缩放,待证实,暂时忽略)。这样我们就可以更深入的理解这个变换了。

例如旋转$\vec{v_1}$90度得到$\vec{v_2}$,

rotate 90

其中,

$$
U=\begin{bmatrix}
0 & 1 \\\
1 & 0
\end{bmatrix}
$$

$$
\Sigma=\begin{bmatrix}
1 & 1
\end{bmatrix}
$$

$$
V=\begin{bmatrix}
-1 & 0 \\\
0 & 1
\end{bmatrix}
$$

也就是说,矩阵$A$可以被理解为,我们把一个向量$\vec{v_1}$,从以$\vec{e_1}=[-1, 0]^T,\vec{e_2}=[0, 1]^T$为基向量的空间线性变换到了以$\vec{e_1}=[0, 1]^T,\vec{e_2}=[1, 0]^T$为基向量的空间中。这个变换表现为旋转了90度。

所以如何理解

说回求齐次线性方程组$Ax=0$的解来。

按照矩阵的意义,我们这里要求的是,已知一个线性变换$A$,给定一个$\vec{x}$,使得线性变换后的结果为$\vec{0}$。

此时非常重要的是,如果$x=\vec{0}$,那一定成立,但是我们想找一个非平凡的解。

我们暂时不关心这个解是否存在,也就是说如果不存在,我们就找个最接近的(最小二乘法思想),我们直接使用SVD分解矩阵$A$,得到对应的$U,\Sigma,V$。

按照SVD的作用,我们现在可以说,矩阵$A$这个线性变换,把一个$\vec{x}$,从以$V$为基向量的空间线性变换到了以$U$为基向量的空间中,而我们想找,在以$V$为基向量的空间中,哪个向量会在投影后趋近于或者等于$\vec{0}$。更重要的是,我们只在乎这个向量的方向,而不在乎他的大小,因为它等于$\vec{0}$是个平凡解,这就像最小二乘法中,我们规定$|\vec{x}|=1$。

这时,答案就开始变得清晰了,因为我们想找的$\vec{x}$,应该就是$V$这组基向量中特异值$\sigma$最小的那一个$\vec{e_{min}}$,也就是说$\vec{x}=\vec{e_{min}}$。此时有两种情况,

  1. $\sigma=0$, 那么$\vec{x}$投影后的就是$\vec{0}$。
  2. $\sigma\neq0$,那么$\vec{x}$投影后是使$A\vec{x}$最小的解。因为如果$\vec{x}\neq\vec{e_{min}}$,也就是说它偏离了$\vec{e_{min}}$,那么它一定由$\vec{e_{min}}$和另一个基向量线性组合,而无论怎么组合,$\sigma_{combine}\geq\sigma_{min}$。

因此,我们求解$A\vec{x}=0$的过程就是,

  1. $U,\Sigma,V^T=SVD(A)$
  2. $\vec{x}=V[:, -1]$
]]>
+ + + + + Idea + + + + +
+ + + 技巧速记:更改 Rattle 的语言 diff --git a/sitemap.xml b/sitemap.xml index 3536b40..9470b83 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1,6 +1,20 @@ + + https://blog.davidz.cn/multiline-equation-in-hexo/ + + 2020-06-04T14:45:58.000Z + + + + + https://blog.davidz.cn/SVD-for-homogeneous-linear-equation/ + + 2020-06-04T13:43:53.000Z + + + https://blog.davidz.cn/rattle-change-language/ diff --git a/tags/Markdown/index.html b/tags/Markdown/index.html index 2d2a910..b3bc136 100644 --- a/tags/Markdown/index.html +++ b/tags/Markdown/index.html @@ -130,39 +130,39 @@ animation-duration: 2.8s; background-image: radial-gradient(ellipse closest-side, rgba(0, 0, 0, 0.56), #100e17), - url(//davidz.cn/static/blog/2020-02-12-write-latex-report-with-markdown/cover.jpg);"> + url(//davidz.cn/static/blog/img/workaround.jpg);">

- 「 - PRODUCTIVITY + 「 + WORKAROUND - 二月 12, 2020 + 六月 04, 2020

- 使用 Markdown 编写基于 Latex 的报告

+ 技巧速记:如何在Hexo中插入多行公式

文章字数 - 6.9k + 909 阅读约需 - 6 mins. + 1 mins.

- +
@@ -170,10 +170,19 @@

原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

-

计算机这个专业,有很多报告要做。在山威的时候,报告格式没有什么限制 Word,PDF 都可以,那个时候我开始使用 Markdown 作为我的排版工具,因为实在是没有时间经历去研究 Word 的各种高级功能(主要是懒)。Markdown 十分简单,易学,在Github等计算机专业相关平台使用也非常广泛,还可以通过各种模板快速生成好看美观专业的文档。

-

后来到了澳国立,老师教授们开始极力鼓吹 Latex 和 PDF,基本上算是软性要求我们使用 Latex 编写,还规定了衬线...

+

我在博客中写公式的时候使用双斜线\\来代表换行,效果是这样的,

+

$$
+\begin{bmatrix}
+cos\theta & sin\theta \
+-sin\theta & cos\theta
+\end{bmatrix}
+$$

+

那么如何插入多行公式呢?

+ +

根据Multiple lines Mathjax formulas flattened to one line,应该插入 六个 斜线来表示换行,应该是由于Markdown的渲染机制导致\\被反义。

+

$$...

- 查看全文 + 查看全文
@@ -194,6 +203,57 @@
+
+
+
+
+

+ + + PRODUCTIVITY + + + 二月 12, 2020 +

+

使用 Markdown 编写基于 Latex 的报告

+ +

+ + + 文章字数 + 6.9k + + + + + 阅读约需 + 6 mins. + + + +

+ + + + +
+ +
+

原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

+
+ +

计算机这个专业,有很多报告要做。在山威的时候,报告格式没有什么限制 Word,PDF 都可以,那个时候我开始使用 Markdown 作为我的排版工具,因为实在是没有时间经历去研究 Word 的各种高级功能(主要是懒)。Markdown 十分简单,易学,在Github等计算机专业相关平台使用也非常广泛,还可以通过各种模板快速生成好看美观专业的文档。

+

后来到了澳国立,老师教...

+ + 查看全文 +
+
+
+ +
diff --git a/tags/index.html b/tags/index.html index f2203f8..5a6db2e 100644 --- a/tags/index.html +++ b/tags/index.html @@ -63,7 +63,7 @@ diff --git a/windows-package-manager-scoop/index.html b/windows-package-manager-scoop/index.html index 2ccbdd0..c3b1736 100644 --- a/windows-package-manager-scoop/index.html +++ b/windows-package-manager-scoop/index.html @@ -373,8 +373,8 @@ scoop list diff --git a/write-latex-report-with-markdown/index.html b/write-latex-report-with-markdown/index.html index c2d1238..cc107ce 100644 --- a/write-latex-report-with-markdown/index.html +++ b/write-latex-report-with-markdown/index.html @@ -290,8 +290,8 @@ subfigGrid: true