CentOS进入emergency mode无法正常启动

系统有两块硬盘,其中一个B装了Linux,但是为了扩充,挂载了另外一个硬盘A上的一部分空间,此外,硬盘A刚刚重装了Windows系统,结果导致出现了无法进入CentOS系统的问题。

解决的方法:

使用CentOS安装盘,进入Rescue Mode,本地系统会被挂载到/mnt/sysimage,进入该目录cd /mnt/sysimage,此时所在的目录实际就是硬盘A的根目录,vi /etc/fstab对系统默认挂载进行修改,去掉了对于硬盘A的挂载,reboot重启后重新进入了CentOS系统。

笔记+个人理解 线性代数导论 – Gilbert Strang

[TOC]

1. The geometry of Linear Equations

对于一个方程组,有多种理解方式,如下方程组

$\left{
\begin{aligned}
x-y=1 \
x+2y=3
\end{aligned}
\right.
$

上述方程组可以表示为如下的矩阵相乘的形式

$$
\begin{bmatrix} 1 & -1 \ 1 & 2 \end{bmatrix}
*

\begin{bmatrix} x \ y \end{bmatrix}

\begin{bmatrix} 1 \ 3 \end{bmatrix}
$$

上述矩阵,实际上$\begin{bmatrix} x\ y \end{bmatrix}$在以左侧矩阵列空间为基的空间中的一种映射,表示为线性组合的形式为

$$
x * \begin{bmatrix} 1 \1 \end{bmatrix}
+

y * \begin{bmatrix} -1 \ 2 \end{bmatrix}

\begin{bmatrix} 1 \ 3 \end{bmatrix}
$$

行空间的图像:对上述方程组所表示的两条直线作图,两条直线的交点是我们要求的$x$和$y$
列空间的图像:列空间中,每一列代表了新空间中的一个基base向量,$x$和$y$分别代表了所对应的列向量的系数,在列空间的图像中,实际上我们要找的是如何通过组合$\begin{bmatrix} 1 \1 \end{bmatrix} $和$\begin{bmatrix} -1 \ 2 \end{bmatrix}$来得到$\begin{bmatrix} 1 \ 3 \end{bmatrix}$

如何理解矩阵乘法

本质:$A*B$可以看做是B中的列向量以A的所有列向量为基所得到的在单位矩阵中的表示形式,或者可以看做是$A$中的行向量以B的所有行向量为基所得到的在单位距震中的表示形式

最简单的矩阵乘法即两个向量的点积$\begin{bmatrix} a & b \end{bmatrix} * \begin{bmatrix} e \ f \end{bmatrix}$

在这里,为了便于理解,以矩阵与向量相乘为例简单探讨矩阵的乘法

$$\begin{bmatrix} a & b \ c & d\end{bmatrix} * \begin{bmatrix} e \ f \end{bmatrix}$$

矩阵乘法,可以看做是右侧矩阵中的向量在左侧矩阵所表示的空间的映射。矩阵,实际上是一种空间的表示方法。根据看待的视角不同,矩阵空间可以被看做是行空间或列空间,前者是指以行向量为基所表示的空间,而后者是指以列向量为基所表示的空间。

$\begin{bmatrix} 1 & 0 \ 0 & 1 \end{bmatrix}$是我们最熟悉的表示空间的矩阵,以列空间为例,基向量为$\begin{bmatrix} 1 \ 0 \end{bmatrix}$和$\begin{bmatrix} 0 \ 1 \end{bmatrix}$。这两个向量分别代表x轴和y轴中的两个单位向量,我们可以基于这两个基向量的线性组合表示该空间中任意一个向量。$\begin{bmatrix} 1 & 0 \ 0 & 1\end{bmatrix} * \begin{bmatrix} e \ f \end{bmatrix}$即表示$\begin{bmatrix} e \ f \end{bmatrix}$在上述列空间中的一种映射,然而由于这种映射如此简单,我们很容易忽略。

$\begin{bmatrix} a & b \ c & d\end{bmatrix} * \begin{bmatrix} e \ f \end{bmatrix}$,回到这个矩阵乘法,该乘法表示了$\begin{bmatrix} e \ f \end{bmatrix}$在左侧矩阵列空间中的一种映射,即通过对列空间中的列向量做线性组合,得到一个新的向量。该线性组合可以表示为$e * \begin{bmatrix} a \ c \end{bmatrix} + f * \begin{bmatrix} b \ e \end{bmatrix}$,通过该乘法运算,我们可以看到,$\begin{bmatrix} e \ f \end{bmatrix}$实际上表示的是所需要的每一个基(维度)的数量,通过组合相应数量的基向量,得到最终的向量。

然而,上述讨论的问题,还需要一个小说明,即在矩阵的表示中,都隐藏了一种假设,即所有矩阵首先是基于标准基空间的,因此$\begin{bmatrix} a & b \ c & d\end{bmatrix}$实际上是$\begin{bmatrix} 1 & 0 \ 0 & 1\end{bmatrix} * \begin{bmatrix} a & b \ c & d\end{bmatrix}$,由于左侧是一个Identity矩阵,因此可以被省略。但是,在这里,加上该假设,有利于理解矩阵想成后的,结果,即想成后得到的向量,实际上是被映射回了标准基空间。若不映射至该空间,则只需要将矩阵乘法写成左侧列向量以右侧向量的分量为系数的线性组合即可,即$e * \begin{bmatrix} a \ c \end{bmatrix} + f * \begin{bmatrix} b \ e \end{bmatrix}$。上述线性组合的描述,实际上也说明了矩阵所代表的物理意义,即每个列向量代表一个空间中的一个基,而要想在该空间中表示一个向量,只需要找到基于该基(Base)的线性组合即可。

让我们看一个实例,向量$\begin{bmatrix} 1 \ 1 \end{bmatrix}$使用标准基空间进行描述,可以表示为$1 * \begin{bmatrix} 1 \ 0 \end{bmatrix} + 1 * \begin{bmatrix} 0 \ 1 \end{bmatrix} $,当然,由于是标准基空间,因此我们通常对这种线性组合视而不见了。假如我们用另外一组基$\begin{bmatrix} 1 \ 1 \end{bmatrix}$和$\begin{bmatrix} 1 \ -1 \end{bmatrix}$来表示当前的二维空间。那么向量$\begin{bmatrix} 1 \ 1 \end{bmatrix}$实际上会被表示为$1 * \begin{bmatrix} 1 \ 1 \end{bmatrix} + 0 * \begin{bmatrix} 1 \ -1 \end{bmatrix} $。用自然语言来描述,将$\begin{bmatrix} 1 & 1 \ 1 & -1 \end{bmatrix}$空间中的$\begin{bmatrix} 1 \ 0 \end{bmatrix}$映射至$\begin{bmatrix} 1 & 0 \ 0 & 1\end{bmatrix}$则为$\begin{bmatrix} 1 \ 1 \end{bmatrix}$

一个向量在不同的空间中可以有不同的表现形式,就如一个点在普通坐标和极坐标中有不同的形式是同样的道理。

2. Elimination 消元法(Gaussian消元法)

Elimination

$\begin{bmatrix} 1 & 2 &1 \ 0 & 2 &-2 \ 0 & 0 & 5 \end{bmatrix}$U:Upper Triangular Matrix。其中(1,1) (2,2) (3,3)位置为Pivot(主元),主元不为0,当出现0的主元时,进行换行操作,找到非0的pivot,如果最终还是出现了0,方程组无解:矩阵无逆矩阵

Back-substitution

Augmented Matrix,把Ax=b右侧的b加入矩阵

Elimination Matrix

用矩阵来表示消元法的具体操作,包括乘以系数并作减法操作,以及换行。

这里牵扯到矩阵的理解,列空间和行空间:矩阵乘以列还是列,行乘以矩阵还是行,注意顺序!当我们从行的角度看时,左侧的向量对右侧的行向量做线性组合。

行空间乘法:

$$\begin{bmatrix}a & a & a\end{bmatrix} * \begin{bmatrix} a & a & a \ b & b & b \ c & c & c\end{bmatrix}$$

列空间乘法:

$$\begin{bmatrix} a & a & a \ b & b & b \ c & c & c\end{bmatrix} * \begin{bmatrix}a \ a \ a\end{bmatrix}$$

3. 逆矩阵

逆矩阵与矩阵相乘得到identity,实际上,逆矩阵将矩阵所做的线性变化抵消掉了

为什么奇异矩阵不可逆

首先,可逆矩阵满足$AA^{-1}=I$,矩阵的乘法,可以看做是左侧列向量的线性组合,对于奇异矩阵,其非满秩,not full rank,即列向量非独立,因此,无论对其做任何线性组合,由于$I$矩阵是满秩矩阵,因此$AA^{-1}$不可能形成$I$矩阵

另外一种证明方式,$Ax=B$,若为奇异矩阵,那么存在x可使$Ax=0$

如何计算逆矩阵

Gauss-Jordan方法:假设要求$\begin{bmatrix}a & b \ c & d\end{bmatrix}$的逆矩阵,可以将其矩阵写为augmented Matrix,即$\begin{bmatrix} a & b & 1 & 0 \ c & d & 0 & 1\end{bmatrix}$

$E * \begin{bmatrix}A & I\end{bmatrix} = \begin{bmatrix}I & A^{-1}\end{bmatrix}$

4. A=LU

假设$AA^{-1}=I$,即A有逆矩阵,那么${A^T}^{-1}$是多少呢?首先,我们对$AA^{-1}=I$做转置,转置后,${A^{-1}}^T*A^T=I^T$,由于$I^T$还是$I$,因此,从前面的公式中可以看到,$A^T$的逆实际上就是${A^{-1}}^T$,因此,对于一个矩阵,求逆和转置的顺序无所谓

$A=LU$,L=Lower Triangular,L中保存的是消元阶段所使用的Multiplier,而$EA=U$中的$E$中,所存的是Multiplier累计后的效果

5. Permutation、Transpose

Permutation Matrix,自身是一个群,在这个群中,他们之间的乘积仍然在该群中,转置和逆矩阵也在该群。

Symmetric Matrix:对称矩阵,来源是$A^TA$,这种情况下会产生对称矩阵,为什么它是对称的?${(A^TA)}^T=A^TA^{TT}=A^TA$

Transpose:做转置的方法$A_{ij}=A^T_{ji}$

6. Space

基本概念

$R^2$:所有的2维实数向量,xy平面
$R^n$:所有的含有n个分量的列向量
Vector Space:加法和标量乘法都是封闭的
sub Space:子空间,依然满足加法和乘法,例如二维空间中的过原点的一条直线空间
非Vector Space:xy平面的第一象限,尽管任意选择两个向量相加依然在这个空间中,但是假如取一个负数标量,则得到的向量不在原始空间中了。

子空间:$R^2$的子空间不包括$R^1$,因为$R^1$只含有一个分量,和$R^2$中的一条过原点的直线不同
空间必过原点,否则无法满足封闭的条件
列空间C(A):由列为基组成的空间,在这个空间中,所有由列向量的线性组合形成的向量都在该空间中

为什么满秩矩阵有逆

逆实际上是对矩阵的列(或行)做线性组合,假如满秩,则其所有列是独立的,因此其可以表示$R^n$的整个空间,在这种情况下,其与单位矩阵$I$所标示的空间是相同的,即存在一种线性组合将该矩阵组合为$I$单位矩阵,这种线性组合就是它自身的逆矩阵

那么也可以说明为什么奇异矩阵没有逆,因为奇异矩阵只能表示$R^n$空间的一种低维子空间,因此总有些维度无法表示,因此没有任何一种线性组合能使其组合出$I$单位矩阵

对于非满秩矩阵,其线性组合不能充满整个多维空间

因为、其线性组合不能组合出所有的情况,转化为方程组来看$Ax=b$,即对于任意右侧的b(即我们想要的所有组合情况),方程组并不是总有解。只有当b是A的线性组合时(即在该子空间中)才有解。

$$A=\begin{bmatrix}1 & 1 & 2 \2 & 1 & 3 \ 3 & 1 &4\ 4&1&5\end{bmatrix}

\begin{bmatrix}x_1 \ x_2 \ x_3\end{bmatrix}

\begin{bmatrix}b_1 \ b_2 \ b_3 \ b_4\end{bmatrix}
$$

Null Space N(A)

$Ax=0$的x所表示的空间,首先肯定包含zero,null space实际包含了所有与A列空间正交的空间

为什么Null Space中的向量可以组成一个,空间?$Av+Aw=A(v+w)=0$

Rank = # Pirovts

Rank可以形象的理解为,使用消元法进行消元时,所形成的矩阵呈阶梯状,每一层阶梯为一个Pivot,也就是一个Rank

Row Echelon Form(简写为U,$Ux=0$): 除了Pivot行,其他行都是0
$$\begin{bmatrix} 1 & 2 & 0 & -2 \ 0 & 0 & 2 & 4 \ 0 & 0 & 0 & 0\end{bmatrix}$$

Reduced Row Echelon Form(简写为R,$Rx=0$):同Row Echelon,但是Pivot全化为1
$$\begin{bmatrix} 1 & 2 & 0 & -2 \ 0 & 0 & 1 & 2 \ 0 & 0 & 0 & 0\end{bmatrix}$$

从矩阵看为什么垂直的向量点积为0

以二维空间中的两个向量为例,首先看最简单的情况,假设有两个向量$a_1=\begin{bmatrix} 3 \ 0 \end{bmatrix}$和$a_2\begin{bmatrix} 0 \ 3 \end{bmatrix}$,由于这两个向量分别处于x轴和y轴,所以他们是垂直的,它们的点积$a_1\cdot a_2=0$。而之所以这两个向量可以写为这种形式,是由于我们潜在的已经假设,当前的空间的两个基是$base_1=\begin{bmatrix} 1 \ 0 \end{bmatrix}$和$base_2=\begin{bmatrix} 0 \ 1 \end{bmatrix}$,即所谓平面直角坐标系中的x轴和y轴所对应的两个正向单位向量。从矩阵的角度看,$a_1$实际上应该写为$a_1=\begin{bmatrix} 1 & 0\ 0 & 1 \end{bmatrix}\begin{bmatrix} 3 \ 0 \end{bmatrix}$,而$a_2$相应的应该写为$a_2=\begin{bmatrix} 1 & 0\ 0 & 1 \end{bmatrix}\begin{bmatrix} 0 \ 3 \end{bmatrix}$因此$a_1$本质上是$3base_1$,而$a_2=base_2$。那么两个向量为什么垂直呢?因为这两个向量分别由两个垂直的基的单独做线性组合而成。

接下来看一组不那么清晰地垂直的向量:$b_1=\begin{bmatrix} 3 \ 3 \end{bmatrix}$和$b_2\begin{bmatrix} -3 \ 3 \end{bmatrix}$。当我们将向量描述为上述形式时,我们依然假设当前的基为$base_1=\begin{bmatrix} 1 \ 0 \end{bmatrix}$和$base_2=\begin{bmatrix} 0 \ 1 \end{bmatrix}$。因此,从矩阵映射的角度看,上述两个向量可以写为$\begin{bmatrix} 1 & 0 \ 0 & 1 \end{bmatrix}\begin{bmatrix} 3 & -3 \ 3 & 3 \end{bmatrix}$,假如我们换另外一组垂直的基,那么这个矩阵还可以写为这种形式$\begin{bmatrix} 1 & -1 \ 1 & 1 \end{bmatrix}\begin{bmatrix} 3 & 0 \ 0 & 3 \end{bmatrix}$。实际上,我们所选择的基是与向量$b_1$和$b_2$所在同一空间的向量。在这种情况下,我们将$b_1$与$b_2$两个向量相乘,根据结合律,实际上可以把左侧的矩阵单独提出来,这时候$b_1\cdot b_2=\begin{bmatrix} 1 & -1 \ 1 & 1 \end{bmatrix} * (\begin{bmatrix} 3 & 0 \end{bmatrix} * \begin{bmatrix} 0 \ 3 \end{bmatrix})$,从而我们可以清晰地看到,点积的运算结果为0。

另外一种理解:$a_1\dot a_2$可以看做是以$a_1$中的列向量为基来表示$a_2$,由于$a_1$与$a_2$正交,因此$b_1$映射至$a_1$中表现出来为0向量,也就是说$a_2$在$a_1$的Null Space

如果用一句话概括一下,任何两个垂直的向量,都可以被某一组正交的基所表示,从而得到$\begin{bmatrix} a \ 0\end{bmatrix}$和$\begin{bmatrix} 0 \ b\end{bmatrix}$这种形式,从而使得我们一眼可以看出他们的点积结果为0

7. Ax=b

当b在C(A)中时,即b是A的列的线性组合时,Ax=b有解。

Ax=b的解,先求一个特解,加上Ax=0的Null Space即可

当A满秩时,即r=m=n:Ax=b有唯一解,因为b有一个A列向量的唯一的线性组合
当A列满秩时,r=n<m:Ax=b可能无解,也可能有唯一解,唯一解的情况是b恰巧是A列向量的线性组合,即在A的列空间中
当A行满秩时,r=m<n:Ax=b有无限多个解,因为有无限多种线性组合可以组成b
当A列行都非满秩时,即r<m并且r<n时,Ax=b可能无解

8. 线性独立、Span a space、Dimension

Independence

对于$x_1,x_2,…,x_n$向量,假如他们的线性组合可以组成0向量,那么他们是Dependent。

独立与0空间的关系:假如$Ax=0$有解,即有Null Space,那么列向量是非独立的。假如$Ax=0$无解,即A的0空间只包含0向量,则列向量是独立的

理解:假设$cx_1+c_2x_2=-c_3x_3$,则$x_3$是$x_1$和$x_2$的线性组合,那么就不是独立的

Span a space

$x_1,x_2,…,x_n$向量Span a space表示该空间包含所有这些向量的线性组合。该空间应该是满足这个条件的最小空间。

Basis基

对于一个空间,Basis指一系列向量,这些向量符合两个条件:

  1. 它们是独立的
  2. 它们可以Span该空间

对于一个确定的空间,所有的Basis含有相同数量的向量,这个数量被称为维度

Dimension

空间的基所含向量的数量

注意语言:

矩阵A的秩=A列空间的维度=主元列的数量

9 4个空间

Column Space:$C(A)$
Row Space: $C(A^T)$
Null Space: $N(A)$
Left Null Space: $N(A^T)$

$E\begin{bmatrix} A & I\end{bmatrix}=\begin{bmatrix}R & E\end{bmatrix}$

R:Reduce row echelon form

10. 矩阵空间

矩阵空间和向量空间的思想是一致的,只不过基不再是向量,而变成了矩阵。可以把一个3*3的矩阵想象成一个9个分量的向量。

空间运算只包括加减法,即线性组合

所有对称矩阵可以形成一个矩阵空间,所有Upper Triangular也可以

$dim(U)+dim(S)=dim(U\cap S)+dim(U\cup S)$

11. Graph and Network

Incidence Matrix:

回路(loop)对应的是dependent rows

$A^T y=0$Kirchoff’s current law

没有回路的graph是一个tree

#nodes-#edges+#loops=1

13.复习

为什么Null Space或者说Ax=0的解计算方式是确定前面几个维度后加上 $\begin{bmatrix}1 \ 0 \ 0\end{bmatrix}$ $\begin{bmatrix}0 \ 1 \ 0\end{bmatrix}$ $\begin{bmatrix}0 \ 0 \ 1\end{bmatrix}$

存在非零的null space,说明Ax=0有解,即A的列是dependent,只有dependent时,列的线性组合才能得到0,这也是dependent的定义。dependent可以理解为,任选一列,可以由剩余的列通过线性组合得到该列。假如A的rank为r,column的数量为c,那么,Column中有r个column是独立的,换句话说,如果调出独立的column,剩余的任何一个column都可以由这r个column用线性组合构成。问题中加入的几个向量,实际上每个向量代表了剩余c-r个column中的一个与前面r个独立column所做的线性组合,只不过他们线性组合结果为0,也就是Ax=0的一个解。

理解null space的basis构成的关键在于理解,r个column可以通过线性组合组合成剩余的任何一个column,这也就是题目里任何一个1而其他是0的原因,这里的1代表的是其中一个column。

为什么$Ax=B$的结果为x=特解+null space的解?

得到特解($x_p$)后,即$Ax_p=B$,那么任意加上null space的结果($x_n$),还可以得到$Ax=B$,即$Ax_p+x_n=B$

14. Orthogonal正交

空间A与空间B正交,意味着,空间A中的任何一个向量与B中的任何一个向量正交,正交即垂直,内积为0

$row\ space\perp column\ space$
$column\ space\perp null\ space\ of\ A^T$

在三维空间中,假如给定了一条直线,那么与它orthogonal的空间是一个过原点的平面,过原点很重要,如果不过原点,它就不是一个子空间。因此,在3维空间中,有无限个平面可以与一条直线orthogonal,但是如果要找子空间,就只有一个

15. 投影

核心问题:假设$Ax=b$,如何求得最优x。

该等式无解,说明B不在A的列空间中,即A的列无法通过线性组合得到B,在这种情况下,我们能得到的最优解,是b在A的列空间上的投影。

为什么它是最优解?

  1. $Ax$所能得到的最优解,一定在A的列空间中,因此,一定是A的列的线性组合,假设我们能得到的最优解是$b’$,那么我们要求的是$Ax=b’$
  2. 最优则要求$b’$和$b$的差异最小。差异最小,形式化的看就是$min|b-b’|$,即两者的差(error)最小,或者说$b-b’$这个向量的长度最短
  3. 既要满足条件1是A的线性组合,又要满足条件2长度最短,实际上表明了$b-b’$是垂直于A的列空间的一个向量,因此$b’-b$与A的列的点积为0,也就是说,$b’-b$与A的列空间的一组基的所有向量都正交,形式化的表示即$A^T(b’-b)=0$,$A^T$出现在这里,表现的是A的列变为行,其实$A^T$的行空间就是$A$的列空间,从而根据矩阵的乘法可以与$b’-b$做点积运算,因为$b’-b$是列,当列在矩阵乘法的右侧时,既可以看作是左侧A矩阵的列的线性组合,也可以看作是与行做点积
  4. 满足上述条件的向量$b’$只有b在A上的投影
  5. 值得注意的是,error(e)实际上就是在$A^T$的null space中,即$e\perp N(C)$

明确了上述问题,我们要求的问题可以转化为$A^T(Ax-b)=0$,除了x其他量均已知,因此可求。即$x=(A^TA)^{-1}Ab$,实际上这个公式是在求b的投影,那么投影$p=Ax=A(A^TA)^{-1}Ab$,其中$A(A^TA)^{-1}A^T$被称为投影矩阵

既然有上式,投影矩阵是否可以写成$AA^{-1}{A^T}^{-1}A^T$

不可以,因为A不是invertible的,它是一个singular matrix,其实假如A是可逆的,那么投影矩阵就是identity矩阵

$A_TA$ is invertible if columns of A are independet

投影矩阵:$P^T=P$,并且$PP=P$

16. 最小二乘

假如b在column space中,那么$Pb=b$,P是投影矩阵
由于b在column space中,因此可以表示成$Ax$,那么$Pb=A(A^TA)^{-1}A^TAx=Ax$

最小二乘法做线性回归时,牵扯连个image,一个是原始的,一个是vector的

当A的列线性独立时,证明$A^TA$是可逆的

Intuition:假设$A^TAx=0$且$A^TA$为可逆的,那么x肯定是0,因为$A^TA$可逆表示它的null space为0维

方法1:两边同时乘以$x^T$,那么$x^TA^TAx=0$,然后$(x^TA^T)Ax=0$,本式表示Ax的长度为0,而根据题目,A的列是独立的,那么Ax=0,只有可能是x为0

17.orthonormal matrix

$Q^TQ=I$

假如Q是方阵,那么$Q^T=Q^{-1}$,因为每一个列都和其他列垂直,只能和自己所述的列求得1,因此最终会形成一个Identity Matrix

假如A是Q,那么$x^TAx=A^Tb$变为$Q^TQx=Q^Tb$,因为$Q^TQ=I$,因此$x=Q^T$,那么投影矩阵就是它本身

Gram Schimt法:获得orthonormal matrix

假设有两个向量,确定其中一个$a$,将$b$投影到$a$上得到$b’$,然后$b-b’$即为垂直于$a$的向量,然后除以其长度即为正交向量

$A=QR$用来表示Gram Schimit方法,R中的列,代表了Q的列线性组合,因为Q是orthonormal,所以R里面的量是垂直向量的线性权重,R是一个Upper Triangular矩阵

18. Determinant

$det A=|A|$,行列式为0,则矩阵为singular,行列式非0,则invertible

行列式的属性
1. $det I=1$
2. 行交换后,行列式的符号变换。$detP$是1或者-1,P表示permutation
$\begin{vmatrix} 1 & 0 \ 0 & 1\end{vmatrix}=1 $
$\begin{vmatrix} a & b \ c & d\end{vmatrix}=ad-bc $
3.
– a.$\begin{vmatrix} ta & tb \ c & d\end{vmatrix}=t\begin{vmatrix} a & b \ c & d\end{vmatrix}$,这里的重点在于,只有一行变化,而不是对所有行都乘以一个值,如果所有行都乘以t,那么最终的特征值需要乘以$t^n$
– b.$\begin{vmatrix} a+a’ & b+b’ \ c & d\end{vmatrix}=\begin{vmatrix} a & b \ c & d\end{vmatrix}+\begin{vmatrix} a’ & b’ \ c & d\end{vmatrix}$
4. 如果两个row相等,那么行列式=0
5. substract l*row from row DET不变
6. 0作为row,那么行列式=0
7. 假设有一个U(upper triangular)矩阵,行列式为对角线上的元素的乘积,这实际上是一个计算行列式的好方法,首先做elimination,然后直接求,即products of pivots
8. 当A是奇异矩阵时,DetA=0
9. detAB=(detA)(detB),$detA^{-1}=\frac{1}{detA}$,恰好可以证明invertible和singular,因为singular matrix的行列式为0,不能取倒数
10. $detA^T=detA$,证明:
$\begin{align}|A^T|=|A| \ |U^T L^T|=|UL| \ |U^T| |L^T|=|U||L|\end{align}$
最后一步的原因在于,U和L有一半是0,因此只有对角线的值会影响行列式

理解行列式

行列式是以N个向量为输入,以一个数值为输出的一个函数。他具备1、2、3条件。对于行列式,重要的一点是,它与矩阵中的每一行存在线性关系(determinant is linear in each row)。

从几何的角度看,想想一个3维空间中的单位立方体,该立方体可以表示为一组标准基,假设他的其中一条边为0,那么体积为0.假如只变动一个方向的边,那么体积也会相应乘以这个变化标量。

19. 行列式的计算公式

利用性质1、2、3、4即可完成

代数余子式cofactor:对于某个元素,去掉本行,本列,剩余矩阵的行列式

20. 行列式的应用

逆和行列式的关系

$As^{-1}=\frac{1}{detA}C^T$,C= cofactor matrix

Cramer’s Rule

$Ax=b$
$x=A^{-1}b=\frac{1}{detA}C^Tb$
$X_1=\frac{detB_1}{detA}$
$B_1$是第一列为$b$,其余列为$A$剩余列的矩阵
$B_j$为A with colum replaced by b

Cramer法则的意义在于,可以让我们以代数而不是算法的形式(消元算法)来理解如何求得$Ax=b$,在实务中并不是一个省油的方法

行列式和体积的关系

$|detA|$是以row为顶点的box的体积

最容易理解的是Identity Matrix,结果显而易见,它是一个单位cube
Q矩阵,即Orthonormal Matrix,因为
$\begin{align}Q^TQ=I \ |Q^T||Q|=|I| \ |Q|^2=1 \end{align}$

21. 特征值

特征向量:Ax与x平行,即$Ax=\lambda x$

n*n矩阵有n个eigenvalue

λ的和Trace迹=对角线上元素的和
$\lambda$的积=行列式

求解$Ax=\lambda x$,重写为$(A-\lambda I)x=0$,首先$A-\lambda x$必须为奇异矩阵,因此$det(A-\lambda I)=0$,求得$\lambda$后,只需要用消元法即可得到特征向量$x$

假设我们有一个矩阵A,假如$Ax=\lambda x$,$(A+3I)x=\lambda x + 3x=(\lambda+3)x$,即特征向量不变,特征值变化。这里的重点在于,加上的是一个I矩阵,不是任意的矩阵。对于普通矩阵,其特征值不存在线性关系

Anti-Symetric Matrix会有复数特征值,antiSymettric Matrix指$\begin{bmatrix} 0 & 1 \ -1 & 0 \end{bmatrix}$形式的矩阵,完全不对称,两边完全相反

三角矩阵会含有相同的特征值,从而可能存在重复的特征向量,Identity矩阵是个好例子,他的特征值为1,但是有无数的特征向量

22. 矩阵对角化

$S^{-1}AS=\Lambda$或者描述为$A=S\Lambda S^{-1}$,其中S是以特征向量为列的矩阵,前提是特征向量要是独立的,只有这样,S才是可逆的

$AS=S\Lambda$,其中$\lambda$是一个对角矩阵

假如$Ax=\lambda x$,那么$A^2x=\lambda Ax=\lambda^2 x$,即$A^2$的特征值是$A$的特征值的平方,而特征向量不变,另外一种证明方法:$A^2=S\Lambda S^{-1}S\Lambda S^{-1}=S\Lambda^2 S^{-1}$。上述性质可以推广到$A^k$

特征向量使我们可以更好地理解矩阵的乘方,矩阵的乘方只与特征值有关,假如一个矩阵的k次方无限接近于0,那么他的特征值的绝对值小于1。理解:特征向量代表了增长速度

当一个矩阵的$\lambda$都不同时,它含有n个独立的特征向量,只有这样才能对角化

既然我们得到一个矩阵的特征向量,那么对于一个矩阵乘以任何一个向量,都可以分解为特征向量的线性组合,其系数包含了特征值。

假如一个向量以线性形式动态增长,那么求得它的增长形势的关键是找到对应矩阵的特征值和特征向量,其最大的特征值代表了其增长的速度

24. 特征值应用:马尔科夫矩阵、傅里叶级数

马尔科夫矩阵
1. 所有entry代表概率,因此都>0
2. all columns add to 1

特性:
1. 一定含有一个$\lambda=1$的特征值
– 证明:$A-1I$为Singular,他们的列的entry加起来为0
2. 其他特征值的绝对值<1

特性:A和$A^T$的特征值是相同的,只是特征向量不同

傅里叶级数

首先,$Q$矩阵是orthonormal matrix,可以用其所有的列表示任何一个vector

$Fourier Series=a_0+a_1cosx+b_1sinx+a_2cose2x+b_2sin2x$

基为$1$,$cosx$,$sinx$ ,$cox2x$,$sin2x$,他们是正交的

26. 对称矩阵、正定矩阵

对称矩阵

  • 特征值是实数
  • 特征向量是垂直的

Spectral Thereom:对矩阵分解,分解成完全不同的几部分,即垂直的特征向量

对于普通矩阵,$A=S\lambda A^{-1}$假如$A=A^T$,那么$A=Q\lambda Q^{-1}=Q\lambda Q^T$。

对于对称矩阵,主元的符号和特征向量的符号是一样的

正定矩阵Positive Definite matrix

对称矩阵中那些特征值>0的矩阵
主元>0
所有子行列式>0

27. 正定矩阵

正定矩阵的条件:$x^TAx>0$ for every x

半正定矩阵:有一个特征值为0,是一个奇异矩阵

非正定矩阵的$x^TAx$的图像是一个鞍型,正定矩阵为碗型

pivot是最终函数的系数,因此pivot是正数,表示函数>0

28. SVD奇异值分解

将矩阵分解为orthonormal矩阵、对角矩阵和orthonormal矩阵

$AV=U\Sigma$
$A=U\Sigma V^{-1}=U\Sigma V^T$
$A^TA=V\Sigma ^T U^TU\Sigma V=V\Sigma ^2 V^T$
最后这个是$A^TA$的分解,$A^TA$是一个对称矩阵

U矩阵是A的行空间和null space的orthonormal basis
V矩阵是A的列空间和null spaceof $A^T$的orthonormal basis

Stanford CS224d Deep Learning NLP Lecture 2 笔记

Lecture 2

wordnet程序

在第二个Slide中,展示了一个程序,用以查询panda的hepyernyms(),运行这段代码,需要以下基本条件

  • 安装nltk
  • 下载nltk的wordnet corpus

我直接使用了anaconda3,已经包含了nltk,然后使用如下操作

import nltk
nltk.download() # 启动nltk的下载对话框

进入nltk下载对话框后,选择wordnet并下载即可

corpus

奇异值分解(SVD)程序

Slide中给出的代码是不完整的,完整的代码如下

import matplotlib.pyplot as plt
import numpy as np

la = np.linalg

words = [&quot;I&quot;, &quot;like&quot;, &quot;enjoy&quot;, &quot;deep&quot;, &quot;learning&quot;, &quot;NLP&quot;, &quot;flying&quot;, &quot;.&quot;]

X = np.array([[0, 2, 1, 0, 0, 0, 0, 0],
              [2, 0, 0, 1, 0, 1, 0, 0],
              [1, 0, 0, 0, 1, 0, 0, 0],
              [0, 1, 0, 0, 1, 0, 0, 0],
              [0, 0, 0, 1, 0, 0, 0, 1],
              [0, 1, 0, 0, 0, 0, 0, 1],
              [0, 0, 1, 0, 0, 0, 0, 1],
              [0, 0, 0, 0, 1, 1, 1, 0]])

U, s, Vh = la.svd(X, full_matrices=False)

for i in range(len(words)):
    plt.text(U[i, 0], U[i, 1], words[i])
    print(U[i, 0], U[i, 1], words[i])

plt.show()

执行该代码后,坐标的原点为0,而实际上生成的数据点的范围在-1到1之间:

-0.500720280244 -0.594902810672 I
-0.587765376398 0.626595126507 like
-0.303130083885 0.236299127325 enjoy
-0.320179799704 -0.217889331762 deep
-0.181169172018 0.0290884408831 learning
-0.289542804335 -0.306905784127 NLP
-0.168314597948 -0.172660688637 flying
-0.253812929244 0.159082191646 .

因此,在图像显示页面需要做一些设置,点击Edit curve lines and axes parameters,做如下设置

axeparameter

Apache为子目录绑定域名

编辑apache/conf/extra/httpd-vhosts.conf文件

在里面添加

需要注意的是,第一个VirtualHost是默认路径,因此,在添加子目录之前,至少添加1个VirtualHost作为默认路径

##ServerAdmin webmaster@dummy-host.example.com
DocumentRoot C:\xampp\htdocs
ServerName 127.0.0.1
##ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot C:\xampp\htdocs\team
ServerName fusion.datalien.com
##ErrorLog &quot;logs/dummy-host2.example.com-error.log&quot;
##CustomLog &quot;logs/dummy-host2.example.com-access.log&quot; common

使用U盘安装CentOS7

由于CentOS 7安装镜像有一个特殊的分区,而大多数Windows的工具都不能处理该分区,因此制作的U盘无法安装CentOS7。

通过不断试错,作者发现使用Win32DiskImager可以制作支持CentOS7的启动U盘。

步骤:首先选择镜像ISO,默认支持.img,因此类型选择.才能看到ISO镜像,然后选择U盘设备,最后点write开始写入。

出处:http://www.sysadminguide.net/how-to-create-bootable-usb-key-for-centos-7-installation/

Crafting Your Research Future by Charles Ling / Qiang Yang 笔记

下载网址:http://www.morganclaypool.com/doi/abs/10.2200/S00412ED1V01Y201203ENG018

笔记作者:Kyle @ PKU

1. 研究的基础知识

1.1 什么是研究

什么是研究:基于可重复的观察和可验证的结果更新我们对于世界的理解

科学Science:发现新理论、新范式、新方法、算法

工程Engineering:使用新技术、设计、流程、方法解决实际问题

1.3 研究者都做什么?

  1. 探索想出新的Idea。为了确保Idea的新颖性,必须做大量的文献调研工作
  2. 验证和实现这些新的Idea
    ​3. 将1和2的成果写成手稿或论文
  3. 评审他人的手稿和论文
  4. 管理学术期刊、组织学术论文
  5. 参加会议
  6. 申请Grant
  7. 培养研究生,尤其是PhD学生
  8. 给研究生和本科生上课
  9. 行政工作
  10. 研究的商业化

1.4 对于研究者来说,什么能力和技术最重要

  • 对研究的激情、关注、热情和兴趣
  • 好奇心和创造力
  • 批判和独立思考
  • 愿意冒险Risk Taking
  • 学术正直
  • 快速学习、解析和解决问题的能力
  • 勤奋
  • 较强的沟通能力Communication

1.5 作为一个研究者的Pro和Cons

Pros

  • 较高的职业满足感
  • 受保护的研究环境
  • 相对理想的收入
  • 非常受尊敬

Cons

  • 为了保持竞争力,每周工作超过40小时,每天超过8小时
  • 较长时间的准备,即入行比较慢
  • 较为狭窄的职业选择

1.6 博士和硕士的区别是什么?

博士的研究成果应该是有资格发表在顶级期刊或会议上的,而硕士论文只需要发表在一般期刊或会议上即可。

具体的:

  • 硕士论文可以可以将前人的工作应用到新问题和应用中,博士论文呢需要包含具有重大意义的新理论、方法和应用
  • 硕士论文可以是对前人工作的细微改变,博士论文应该是研究某个领域一个新的主题并做出较大贡献
  • 硕士论文可以是对现有工作的综述,博士论文必须有新的方法,并要通过理论或实验来与之前的工作相对比
  • 硕士论文可以研究当前研究所存在的问题,即研究其消极Negative的一面,而博士论文应该包含积极的效果,即改进
  • 最终,博士毕业生毕业后就成为独立研究者,应该可以直接胜任高校教授的职务

2.Ph.D研究的目标

2.1 目标1:成为某个领域最好的那个人

  • 在某一个特定的也许不太大的领域,从新颖性和重要性上看,你的研究在你完成博士论文时是全世界最好的,在这个领域你是少数几个专家之一。
  • 在3、4年级时,你的研究应该是推动了当下的最优秀的知识。
  • 博士学习早期,你应该探索多个不同的领域,但是很快应该聚焦到某一个领域,然后在该领域做一些有深度的研究。

如果不努力,你是不可能推动某一个领域的发展的。你不需要对某一个领域的所有主题都了如指掌,但是你需要成为某一个领域的专家

目标1不是很容易做到的几种情况:

  1. 花费大量的时间在不同的领域探索,即研究没有最终聚焦
  2. 探索了多个领域,并且也做出了一些小贡献,但是这些贡献不足以为你奠定你在某一个领域的地位,即你没有做到Own一个area,这种情况下,博士论文会比较跳跃,并且不容易通过答辩
  3. phd学生非常热衷于找到那些可以通过较少努力就产生贡献的领域。只有当你在延伸你导师的研究的情况下才可能出现,并且这种情况下,你很可能不会变成一个独立研究者

关于研究边界:

  • 博士论文应该前后连贯,聚焦在一个主题上。
  • 但是成为大学教授后,可以研究多个领域

2.2 目标2:可以独立研究

即应该能够独立的找到新的idea,做坚实的研究以及发表顶级论文。

2.3 拿到博士学位的3个重要任务

  1. 找到新idea
  2. 做坚实的研究Solid Research
  3. 发表顶级论文

2.4 读博期间的几个里程碑事件

  1. 完成课程
  2. 通过资格考试:通过资格考试后别沉迷,因为可能一睡不醒
  3. 开题:找到一个博士题目,做详尽的文献研究,找到新的问题并提出解决方案。需要对这个问题做详尽的解释,所有解决这个问题的方法,分析他们的优缺点,以及你拟定的解决方案
  4. 答辩

注意:

3. 起步阶段:找到新的Idea,并组织你的计划

3.1 第一年

找到有趣的问题后:

  1. 与导师交流,他可能会给你推荐论文或提出可能的研究方向
  2. 找到这个领域的综述论文
  3. 关注该领域的演讲和专刊
  4. 参加会议,与研究者交流,看看大家都在做什么,以及难度如何
  5. 寻找近期发表的较有影响力的论文,做批判和创造性的阅读
  6. 撰写该领域的综述

3.2 如何查找相关文献

寻找近期发表的高影响力论文:

  • 寻找有声望的期刊和会议,通过影响因子可以识别一个期刊的影响力
  • 知名学者的论文通常较为有影响力
  • 学术搜索引擎返回的前几条结果通常是影响力比较高的,尽管他们没有公开自己的算法。Google Scholar返回的结果可以估计出是按照引文来排的,如何获取新成果呢?使用时间过滤器
  • 阅读找到的高影响力论文,从里面找到所使用的不同关键词,然后继续检索。并且还可以通过Cited by来找到引用本文的文章,很快你就有数百篇文章了

3.3 如何阅读论文

读论文不同于读课本,课本是用来理解和学习的,而读论文的目的是希望找到研究idea并且超过原作者。即读课本的目的是为了接受现有知识,读论文的目的是为了输出新知识。

2种不好的习惯:

  1. 对一篇论文花费非常多的时间,搞懂每个细节,就像读教科书一样
  2. 在读论文的时候被某些小细节带偏了,偏离了Big Picture。例如,假如在做监督学习时发现使用了二次规划,没必要区读一本800页厚的关于二次规划的书。正确的方法是基于需求的学习,假如确实碰到了缺失的重要知识,尽快学会它,然后回来。

正确的阅读方法是:快速的理解问题、假设和基本观点以及提出的解决方案。

用30%的时间来读和理解一篇论文的主要思想和解决方法。对于一篇10页的会议论文,只需要1到2个小时。

如何做到?一篇论文通常分为摘要和正文,正文又有不同的章节,然后又分了小结。一篇书写较为合理的论文,其高层观点和解决方案应该在高层次的标题或章节中有所体现,对于较低层的细节可以扫一眼就过去。

大约15分钟来读introduction和摘要,来确定这篇论文是否与你的研究相关

剩下70%的时间用来做

  • 批判性思考:论文有什么错误,假设合理吗?问题提的对吗?解决方案是否有技术瑕疵?
  • 创造性思考:对于同一个问题,还能选择什么方法?如果我去做,会做的更好吗?

对于博士生来说,非常重要的是,从此刻开始形成批判和创造性思考的习惯,不管是读报纸还是看电视

读论文时,Read Less,Think More。对于大多数人来说,读论文是为了发现新的研究领域

3.4 如何找到新Idea

比较冒险的办法(不建议):从Future work或明显的下一步来找idea,但是这些工作很可能原作者已经在做了,此外,你也可能受限于作者的思想。

方法1:当在读论文的时候,发现了新的想法或者假设,应该在论文空白处标明。当你在积极地思考时,务必把想到的记下来,然后深入研究。很可能,随着你思考的深入,你可能会在一些意想不到的场合冒出新的idea,建议在冒出这些idea的那瞬间,立马把它记下来

对于某些成熟的领域,看的论文越多,发现可创新的机会越少。这种情况在某些成熟的领域是可能的。应该在那些比较热门或新颖的研究领域里找题目。

方法2:头脑风暴法:任何观点都不能被批评,所有想出来的idea放在黑板上,用来激发新的想法

  • 结合read less, think more以及头脑风暴:选出团队里的一个人,让他读一篇新论文的Problem,然后大家进行头脑风暴,如何解决,如何做的更好,当前论文存在什么问题
  • 在找idea的时候一定要大胆,要敢于提出与前人研究大不相同的观点。

不要只是在前人的工作上做一些小的修修补补,你的新想法应该是问题驱动或者应用驱动的,而不是解决方案驱动的,即不要总是想要改进别人的解决方案,要想着怎么解决问题本身。

案例:

最早A1学生想做cost-sensitive学习,他做了文献综述,对他了解这个领域是一个很好的方法,他也改进了一些方法,但是这些改进都算不上博士论文级别的研究。于是大家进行头脑风暴,在现实生活中还有没有其他类型的cost没有被研究过,经过头脑风暴,大家发现different data acquisition costs还没与研究过。

3.5 从Idea到研究和研究主题

一个小idea可以形成一片会议论文,多个小idea或者一个开创性的new idea可以形成一篇博士论文。

好的研究主题:

  • 你对它的激情和兴趣
  • 你的技术实力
  • 研究领域的新颖程度和热度,最好选择比较新的,如果是一个老的领域,你可能需要花大量的时间了解前人的工作
  • 你导师的Vision和观点
  • 你的未来职业规划

3.6 如何确定自己是否在正确的路上呢?

一个验证自己博士题目的方法就是完成主要三任务,即:

  1. 找到新的idea
  2. 做坚实的研究
  3. 发表文章

在第一年的后半部,以及第二年,你应该开始在你感兴趣的领域做研究并且发表论文。从小的、有趣的研究开始。得到好的结果后,可以提交到会议或者期刊。从中等水平的会议和期刊开始。

其他验证方法:

  1. 与导师和其他博士同学讨论你的可能选题
  2. 与其他在同领域的研究者通过email讨论你的idea
  3. 在会议上与其他人交流,但是,会议上人们往往不会做太批判性的反馈
  4. 阅读近期发表的该领域的博士论文,将你的研究的深度和广度与他们的做对比

3.7 制定计划

最好在二年级下学期定好你的博士论文计划,即带有二级标题的目录,以及相应部分所牵扯的需要解决的研究问题。接下来,依次解决这些问题,做坚实的研究,发表高水平论文。研究计划不是一成不变的,对于计划一定要灵活,可以跳过那些太难或不容易产生结果的问题,并且可以添加新的问题,但是一定要有足够的聚焦,不要跑遍,你的所有问题一定是围绕博士主题的。

4. 做坚实的研究

4.1 研究过程概述

1 . 按照高级别标准确定一个新颖和可能有高影响力的问题
2. 找到一个候选解决方案
3. 做理论或实证研究,做显著性测试
4. 显著性测试通过则完成一轮研究,否则从第2步重新开始

早期的解决方案通常会失败,因为你想到的点子,别人可能也想到了,并且试过了。只不过别人只是发表了积极的结果,因此你没有意识到事实上这个解决方案并不好.

研究分类:

  1. 理论研究:利用数学来表示假设,利用逻辑推理和数学推导来证明
  2. 实证研究:与实践紧密相关。实证性的假设可以用自然语言描述,并且需要实验来验证,做实验时,要求研究者要有尖锐的眼镜来发现有趣的或怪异的结果
    • Killer application:那些可能给人们带来直接好处的研究

4.2 Jim Gray对于good research的标准

Jim Gray was an American computer scientist who was credited for major developments in database theory and a proponent of the fourth paradigm in scientific discovery.

  • 有显而易见的益处
  • 很容易表述
  • 没有明显的解决方案
  • 对于进展和解决方案的检测有标准,并且可以将一个大问题分解成小问题,可以看到中间步骤

很多学生的研究不能继续,一个很重要的原因是,拿不到真实的数据,因此无法做有标准的检测,这就要求学生去单位实习,从而拿到数据来做研究

4.3 研究矩阵Research Matrix

矩阵法

  • x轴:方法和技术
  • y轴:问题和子问题

将问题你感兴趣的问题形式化的表示出来,然后分解成为子问题,找到所有子问题的解决方法和技术,然后寻找矩阵中的空白点

4.4 进行研究

(1)做研究的第一步,将研究目标表示为一句可以理解的话

假如你要设计一个比Google更好的搜索引擎,那么你应该明确的定义的更好使什么意思,然后形成你的假设。

一个假设样例:在搜索结果中使用社会网络信息比不使用可以得到更为精确地排序结果。

对上句进行扩写:我的算法ABC使用大量用户的社交网络信息以及超链接信息,我认为相比于PageRank算法,ABC可以给出更好的排序结果

假设越具体越容易聚焦。具体的假设还可以可以让你确定基线以及评测体系。

(2)实验设计

  • 明确数据集。通常原始数据集是带有噪音的、不完整的。可以对数据进行取样,在取样时,应注意样本的分布问题,应确保不同类型的数据都有取样。
  • 确定自由变量和独立变量,从而确定他们在非独立变量上的影响。通常实验维持其他变量不变,而改变其中一个变量,查看结果,最终形成图表。
  • 取得实验结果后,应该做结果分析,一方面,需要告诉读者我们的结果是否显著,另一方面,利用领域知识来解释该显著性是否可以被体会到

4.5 寻找自己在学术界的位置

从矩阵的横轴看问题。当你对一个子问题的内涵和复杂度有很深入的了解后,你可以开始提出疑问:

  1. 方法x能被用于这个问题吗?
  2. 如果我能成功把方法x用于该问题,会带来什么影响呢?
  3. 如果方法x不能用于该问题,这说明了什么呢?

方法x与方法y的优势和劣势是什么?也许x比y的效率高,但是y的精度比x高。从坐标轴的横轴,可以提出许多令人激动的研究问题,从而写出许多高水平研究论文。

纵向的看这个矩阵。假如你对方法的内在优劣势非常熟悉,可以考虑将相同的方法用于一系列相关的问题上。

方法和问题就是锤子和钉子,要么拿着一个锤子找不同的钉子,要么用不同的锤子去砸同一个钉子。假如你有一个锤子,任何东西看起来都像钉子

4.6 实证研究vs.理论研究

(1)研究分类

实证研究,理论研究,在工程领域,又被成为基础研究和应用研究。

  • 理论研究:可以形成很好的假设,通过该假设可以形成推断并基于观察对某现象进行验证。理论研究提出模型和假设。可以陈述一种事实,该事实源于观察但是高于观察。好的理论具有较强的泛化能力。
  • 实证研究:不容易形成假设,需要实验验证和数据收集

面向系统的研究是个灰色地带。很多研究人员仅仅开发一个系统,认为这是他的研究。实际上,除非带有后续分析,否则不算一个研究。可以通过创建一个系统,来验证,基于条件C,方法X比方法Y要好。

尽管你不能通过开发系统成为研究者,但是假如你带着假设开发系统,那么你就是了。即在开发系统之前你要弄明白你要证明什么,而不是纯粹的开发系统。

(2)开展实证研究

实证研究怎么上手?最好的办法是重复前人的工作,并重建它们的系统。原因:

  1. 可以了解系统的细节
  2. 可以了解系统的复杂性和问题的研究范围,深入思考如何开展自己的研究。如果不开发系统,人们容易低估研究的范围
  3. 这个系统可以作为基线系统
  4. 开发系统的过程可以使你发现前人研究的弱点,,进而提出你的假设

##(3)理论的作用##

  1. 用来被实验证明或者被推翻:先提出理论,然后人们通过实验来验证这种理论,比如图灵提出的基于图灵机开发的数字计算机可以达到与人相同的智能。
  2. 用来证实实验或推翻实验:先有实验,后有理论,刚开始各种实验各不相关,后来有人提出一个理论来解释这些实验,比如爱因斯坦的相对论。

4.7 协作

跨领域研究的回报率很高,因为在这种情况下研究者会跳出自己的研究领域来审视研究。

5. 撰写和发表论文

研究的级别:

  • top-notch(top 5%)
  • very good(top 5-25%)
  • good(top 25-50%)
  • so-so(bottom 50%)

5.3 什么是好论文

期刊或会议会召集一群有声望的学者来评估论文,一篇论文会发给2-5位相关领域的评审者。评审者会对论文进行打分,并写明分数的理由。

评审者在评审论文时考虑的问题:

  1. 研究是否新颖
  2. 结果是否显著
  3. 论文的技术是否可靠
  4. 论文内容呈现是否清晰
  5. 是否接受该论文
  6. 你对你的评审观点自信吗?

上述问题中,问题4会影响1、2、3的得分,经验表明,至少有1半的论文由于行文差而得分收到影响

5.4 关于论文的几个隐藏的真相

(1)论文应该真实、诚实并且精确

尽可能的减少论文中的偏见,讨论自己工作的优点,同时也需要讨论缺点。结果必须真实而精确。研究所使用的材料、数据和结果应该做一段时间的保存(几年)以备其他研究者验证。

(2)关于剽窃

  • 引文剽窃,即作者基于他人的工作,但是没有引用,即没有在论文中给予他们工作认可,而让人以为本文的工作是完全基于自己的原创。
  • 相似内容一稿多投
  • 不能直接复制别人的内容,即使你要描述他人的工作,也不能直接拿来别人写的句子。即使是自己写过的句子也不行,除非你能得到利益相关方的书面允许。
  • 假如必须引用他人的句子,应该加引号,并且做引文标注

一种比较简单的避免版权问题的方法:在读过一段内容后,过几个小时,然后凭自己的记忆重新写出来。

(3)把你研究的所有细节全部写清楚,这样别人才能在读过你的论文后重现你的结果

5.5 导师、校对者和学生的角色

  1. 导师
    • 帮你理解目标、逻辑流、组织以及论点
    • 帮你识别具体的误解
    • 为你的论文提供高水平的建议
    • 在最终提交前做最终检查
  2. 学生
    • 在前几篇论文中与导师紧密合作,学习如何写论文
    • 讯速变得独立
  3. 校对者
    • 当结构、论点、组织等都完成了,校对者复杂修改语言错误

5.6 导师怎么帮助学生提高写作水平

有些导师会在纸上改错,然后学生录入到电脑上。通常的问题是,一方面学生看不懂老师的书写体,另一方面,很多修改学生并不理解为什么要这么改。这对于学生的提高没什么帮助。

PI法(Progressive Improvement)

  1. 首先,让学生写以小部分,比如让他写摘要、引言和一部分研究内容。不让学生全部写完的原因是,他的第一篇论文几乎肯定要全部重写。
  2. 然后与学生坐下来,把第一页逐字逐句的过一遍。在这个过程中,对于任何一处改进,你必须说明为什么你要这么改。并让学生记下来,学生需要从这里面总结经验。
  3. 然后让学生回去把全文改一遍,下次看,第一页应该改的差不多了。如果大量出现已经提到的错误,那么就需要警告学生。

5.7 会议和期刊的区别

会议:CS领域的会议论文是full-length,6到12页的论文,通常是双栏的。

会议论文审稿期比期刊要短,并且评审过程也与期刊不同,因此适合发表快速发展领域的研究。参会也可以与其他研究者建立联系,形成你的网络。

年度会议有deadline。

会议论文有页数限制,而期刊没有。

如何选择会议:大多数重要研究者会参加的会议,或者接受率低于1/3的会议。

如何选择期刊:基于影响因子排序,前20%的期刊

5.8 会议论文的评审过程

当ddl临近时,会议主席们会开始那些明显不合格的论文,比如格式不对,或者长度超了的论文。会有有多个高级PC,每个PC负责一组论文。一篇论文通常由3个评审者,他们与作者没有直接的关系。

评审者首先关注创新性和显著性。假如在摘要和引言中找不到,那么可能就会被拒掉了。然后会关注,那些可以证明为文章创新性背书的证据。例如,你说你改进了一个方法,但是你只是用了很小的数据集,或者并没有与主流的方法进行对比,那么你的创新性就缺乏基础。

评审者首先会在摘要中找“In this paper”之类的子句来确定本文的创新点。然后根据这些创新点去寻找详细论述(基于top down refinement去寻找)。首先评审者会去阅读引言。如果没有找到任何详细论述,那么论文就写的不太好,如果多次出现这种情况,那么很可能就会拒绝这篇论文。然后,假如在摘要和引言中作者没有很好地说明自己的创新性,那么论文还是可能被拒。如果找到了研究结果,但是发现相关引文很少,那么可能作者对这个领域还不是很了解,也可能会拒绝。上述过程需要20分钟。通过了上面的步骤,评审者会再花30分钟或更多时间来仔细研究论文的推导、理论、结果,并查阅相关文献,甚至咨询其他专家的意见,最终才会推荐这篇论文。

有些会议会把允许作者对意见进行在线反馈。抓住这个机会,提供简洁、清晰和有分量的反馈。

最终论文的接受是由SPC(Senior Program Committe Member)和chair决定的,决定是最终的,一般不允许申诉。

5.9 期刊论文的评审过程

主编将评审任务分给普通编辑,普通编辑负责召集评审人员。录用与否由主编说了算。

期刊论文不限制页数,因此可以使得期刊论文写的更深入。另外一方面,审稿周期比较长,即会通过多轮的修改意见和反馈,最终成型。经过一轮评审后,可能的结果是:直接接受,经过较小修改后接受,经过较大修改后接受,拒绝。除了对论文进行修改,作者还应该对评审者所提出的疑问做出一一解答。回复信可能很长,应该认真书写。如果评审的意见很中肯,那么作者应该对论文做相应的修改。第二轮修改还有可能被拒。

会议论文是一次性的评审,一旦被拒没有申诉的机会。而期刊论文是多次评审,这个过程是互动的。

会议论文扩充后转投期刊论文:对于有些会议,他们有版权合作,会直接将会议论文转到某个期刊上。也有一些会议论文,需要至少添加20%到30%的内容才能发到期刊上。这些内容可能是,更详尽的实验结果或者理论结果,以及对相关工作的讨论。在提交这类期刊论文时,最好明确的给主编写清楚,你加了什么内容。

6. 论文写作常见谬误和Tips

6.1 谬误1:很明显我的论文写的很好

研究论文的主题应该是我们的研究工作做出了新颖又显著的贡献,通常按照如下的逻辑进行论证:

  1. 这个问题对于推动人类知识的发展很重要
  2. 前人的工作A、B。。。存在某些不足
  3. 我们提出了新的理论、方法、设计、流程Z。比如强调你是第一个提出的人,或者Z的结果很令人惊讶。
  4. 我要证明,Z在某些方面比A、B等要好。比如,你是否通过理论证明了?还是要通过实验证明了?
  5. 讨论Z的优缺点。对于缺点要坦诚。结果要诚实、不夸张、精确。Z的缺点也是将来的工作方向。

对于上面提到的每一句话,最好都能有理有据。比如 ,你说这个问题很重要,那么最好拿出引文来,别人也说很重要。

  • To the best of our knowledge, we are the first to propose…As far as we know
  • 在说自己的贡献时,可以使用谦虚词
  • 在描述你的贡献时,一定使用主动语态,被动语态会导致读者不能确定哪些贡献是你做的。确保读者能分清哪些是你的工作,哪些是别人的工作
  • 在批评别人的时候,也要谦虚,It seems that the previous work…

6.2 谬误2:读者应该理解我的文章

论文写得越清晰,越简单越好,不要故意把话写得复杂。你的读者,尤其是评阅人非常忙,没人会花很多时间来理解你的论文。而普通研究人员希望通过阅读你的论文快速找到你的创新点。

对于科研人员的一个分水岭就是你能把“你的论文真简单”当做一种赞美而不是批评。

6.3 10/30检验

  • 对于一个一般的评阅人,他能否在10分钟内弄清楚你在研究什么问题以及你的贡献是什么?
  • 对于一篇10页的论文,他能否在30分钟做出决定来接受你的论文?

6.4 自上而下逐渐细化的论文(general-to-specific style)

你的论文其实就是把你的主要观点从不同层次讲4遍:

  • 题目:10个词:题目应含有积极的或令人激动地词汇。写题目是一种艺术。题目最好别超过1行。确保你没有见过相似的或雷同的题目。
  • 摘要:200个词:摘要最好避免使用技术词汇
  • 引文:1000个词:通常两页,re-tell你的中心主题。与摘要相比,你对于每一部分的论述要更详细
    • 引言要强调背景,即这个问题为什么重要、都有谁研究过这个问题,谁是你的目标读者,有什么类似的技术被使用过。
    • 同样的,因为应尽量避免使用技术术语和具体细节。
    • 实际上,引言里的每一部分,都应该对应了摘要中的一句话,并且顺序是相同的。
    • 摘要中的每句话,可以转为引言中的3到20句话,即形成一个段落。比如你的摘要包含句子A,B,C,那么你的引言应包括A1,A2…B1,B2..C1,C2..
    • 本文的观点是在引言的最后写一个本文的结构,而Simon Peyton Jones认为这句话没人看,应该夹在引言中间。
    • Previous work: 主要目的是为了表明你对这个领域很了解,从而可以确保你对你自己贡献的描述的可信性。这部分不要太长,但是要说明白你与别人工作的区别。
  • 正文:5000个词
    • 每一个段落应该只有一个中心主题。这个段落的第一句话应该是一个概括性的句子。

优秀摘要实例

General web search engines, such as Google and Bing, play an important role in people’s life. [The problem is important] However, most of them return a flat list of webpages based only on keywords search. [Previous works have certain weaknesses] It would be ideal if hierarchical browsing on topics and keyword search could be seamlessly combined. In this paper we report our attempt toward building an integrated web search engine with a topic hierarchy. We implement a hierarchical classification system and embed it in our search engine. [A very high- level summary of our work] We also design a novel user interface that allows users to dynamically request for more results when searching any category of the hier-archy. [Emphasizing novelty and usefulness] Though the coverage of our current search engine is still small, [be upfront on the weakness of the work] the results, including a user study, have shown that it is better than the flat search engine, and it has a great potential as the next-generation search engine. [Using positive words to show the significance and impact of the work.]

6.5 关于下级标题

层次不要太深,如果太深了,考虑把上级标题提升一级。

每一部分都要有一个简介或引言。如果你的标题为3,3.1,3.1.1那么在3和3.1之间,应该写一个3的简介,在3.1和3.1.1之间,应该有一个3.1的简介。

6.6 写作Tips

  1. 使用特定的词来告诉读者你要讲的是什么内容
    • 比如你用briefly告诉读者这只是个简介。用in details告诉读者下面是详细介绍。让读者选择是否要阅读。
  2. 使用简单句而不是复杂句。
  3. 全文的术语要统一
    • 与写散文那种要求词汇丰富度不同,在论文中,术语要尽量统一。如果你要用的术语不太常规,那么应该在论文的开始部分明确的定义一下,或者包括一个术语表。
  4. 使用例子!全文都用!
    • 当你需要解释一个抽象的概念或者一个复杂的模型,最好使用例子来解释。解释越早越好,不要先给读者灌一堆难以理解的概念。
  5. 使用图、表、照片。
    • 对于这些内容的使用不必吝啬。放开用就可以了。
  6. 写清楚你的动机和理由。
    • 比如一个公式,你为什么要用这个参数。你的工作为什么可以取得比较好的效果。
  7. 提出一些可能别人会想到的问题,然后自己解答。
    • 例如,你在描述你的解决方案时,别人可能会想到,为什么不用A方法,而是要用B方法呢?对于实验,可能别人想问,为什么。当然,你可以提前写下你的动机或理由。但是,如果行文不允许你解释,那么你可以加上一句。One might wonder, One might argue that…然后紧跟一个简短的答案就可以了。
  8. 关键点要强调并且重复。
    • 假如你的某些观点很重要,那么应该不断地重复,可以使用多种形式,比如句子,图表,列表,标题等。
  9. 为论文的内容形成关联。
    • 比如见Section.. for more details. As we discussed in Section. Recall that。
  10. 格式化你的论文
    • 图和说明文字不在同一页。
    • 图的说明文字最好直接放在图下面。
    • 字体问题:尤其是图中的文字。年轻学者还会犯得一个错误就是把所有的信息都放在图上,实际上,应该把最相关的信息放在图上,其他不重要的可以舍弃,否则图会很难看。

7 撰写博士论文和答辩

7.1 博士论文

当你答辩的时候,你就是你所研究的这个领域最牛的人,答辩的目的就是要告诉委员会这个事实。

Thesis是关于世界的一种假说或观点。博士论文包含所有你要验证这种假说或观点的证据,以及你对结果的思考

7.2 撰写方式:自上而下和自下而上

(1)自上而下

起于一个中心论点。这个论点应该简单明了,即使非领域专家也能看懂。然后使用研究矩阵方法,将论文分为几个子问题,然后每个子问题都有一个introduction,一个解决方案综述,你的解决方案,以及实验验证。

自上而下法的优点

  1. 学生和导师可以较早的知道中心论题
  2. 可以及早发现缺失的问题和解决方案
  3. 可以训练学生的grant申请写作
  4. 可以较容易的定义一致的术语和符号

7.3 答辩

博士的标准:

  1. 为现存的一个很有挑战性的问题提出了一种更好的解决方案
  2. 识别一个新问题,显式化的对这个问题进行描述,提出一种新的解决方案,实际上这就是开创了一个新的领域
  3. 对于某一领域的主要方法提出一种新的方法论,然后提出你自己的见解。

博士论文展示应该表明你:

  1. 知道所有关于这个问题的解决方法,能轻松地讨论他们的优缺点
  2. 知道如何设计一个解决方案,并且对他的优缺点进行评估
  3. 掌握了对一个问题进行展示的能力,包括对不同的听众,在不同的场合下,给予不同的时间。

Presentation的能力是PhD与普通人的区别。

答辩的内容:

  1. 问题是什么
  2. 问题为什么重要
  3. 相关工作有哪些,他们是怎么解决的有什么优缺点
  4. 你的解决方案为什么比别人的强

常见答辩问题:

  1. 请用3句话概述你的贡献
  2. 你要解决的问题是什么
  3. 你的哪个贡献具有奠基性的价值
  4. 你的方案的主要缺陷是什么
  5. 如果你要重新做一遍你的phd研究,你会怎么做?

8 博士毕业后

教授典型的一天

7:00 吃饭,检查邮件
8:00 30分钟锻炼
8:30 在路上喝一杯咖啡,读更多的邮件,检查自己9点课程的PPT
9:00 本科课程开始,1个半小时
10:30 与学生讨论问题
11:00 参加会议,讨论研究生招生问题
12:00 吃饭,可能和学生讨论问题,这样可以节省时间
13:00 参加一个博士答辩
15:00 与博士开组会
16:30 参加一个本学院的研讨会,可以学到新东西
17:30 撰写项目申请
18:00 回家吃饭
20:30 撰写与其他人合作的论文
22:30 预定他参会的行程

How to Writer a Good Paper 笔记

报告:How to Write a Good Paper and How to Give a Good Talk

报告人:Liang Huang, City University of New York

报告:How to write a greate research paper

报告人:Professor Simon Peyton Jones, Microsoft Research

1.写作与英语无关

写作与英语无关,而与逻辑有关,一篇坏论文,用任何语言写都还是坏论文,不是说你英文不好,写中文就好了

写作的层次:

  • 高层次(论文):整体Shape、逻辑、论点、样式
  • 中层次(语篇):段落中的前后一致性
  • 低层次(句子):词和短语的顺序
  • 最低(词):词的选择和语法

以读者为中心

写作的目的是为了沟通Communication,不是为了做自我解释self-expression

写作的目标是:像病毒一样让你的观点侵入你的读者

论文的目的不是为了描述一个系统,而是为了描述你的思想

2. 你的叙述流narrative flow

  • (起)这是一个问题
  • (承)这个问题很有趣(重要Important),但是尚未解决(困难Hard)
  • (转)我的想法(Idea)是这样的,具体的包括细节和data
  • (合)下面是我的想法与其他人的方法的对比

3.会议论文结构

  • 标题(1000读者)
  • 摘要(4个句子,100个读者)
  • 引言(1页,100个读者)
  • 问题(1页,10个读者)
  • 我的观点(2页,10个读者)
  • 细节(5页,3个读者)
  • 相关工作(1-2页,10个读者)
  • 结论和未来的计划(0.5页)

4.摘要(Abstract)

最后写摘要,Kent Beck的4个句子:

  • (起)提出问题
  • (承)为什么它很重要
  • (转)你的解决方案可以达到什么效果
  • (合)你的解决方案表明了什么

样例:

  1. Many papers are badly written and hard to understand
  2. This is a pity, because their good ideas may go unappreciated
  3. Following simple guidelines can dramatically improve the quality of your papers
  4. Your work will be used more, and the feedback you get from others will in turn improve your research

5.引言(Introduction)

起承:描述你的问题,表明他的重要性(Importance)和困难性(Hardness)
转合:说明你的贡献

描述问题

描述问题的LH法:

  • 这个问题很重要
  • 在A中主流的解决方法很好
  • 但是在B中效果却不好,但是B也很重要
  • 另外一个方法在B中较好
  • 但是在A中不好
  • 问题:如何结合他们的优点呢?这个问题很困难

在介绍问题时,不要讲废话,例如“计算机程序通常有bug,清除这些bug非常重要,研究者已经做过很多尝试。它真的很重要”,上面这句话是个人就知道,不用你说。而是应该让读者一看就有兴趣,比如“看这个程序,他里面有一个bug,<对这个bug进行一些简单描述>。我们将会提出一种全自动的识别这种bug的方法”

细节:证据

你的引言提出了claim,你的论文就是为了提供证据来支撑你的claim。检查你引言中的每个claim,确保每个证明都能追溯到其中的claim。

证明可以是分析和对比、理论或测量、案例研究

介绍你的贡献(Contribution)

写论文时,先写出贡献。贡献列表驱使着整篇论文,你的论文就是为了证实你所做的贡献。

不要让读者去猜你的贡献,一定明确的说明。最好直接把你的贡献裂成列表,Simon建议直接用bullet(小圆点)来表示每一个贡献,这样的话,在第一页,读者能第一眼就看到你的贡献。此外,每个贡献,直接说明白你下文在哪里来证明他,这样,读者如果有兴趣,就直接跳到那部分去。

  • 贡献1,我们在section 3证明这部分
  • 贡献2,我们在section 6,7,8来证明这部分

贡献的表述方式必须是可证伪refutable、falsifiable的:

不好的表述 好的表述
我们描述了wizwoz系统,它真的很棒 我们分析了一个语言的句法和语义,他们的创新特征是。。。
我们研究了它的特征 我们证明该输入系统是健全的,它的输入检查是确定的
不可证伪的描述 可证伪的描述
政府将尽权力为人民服务 政府将在两年内把PM2.5降低50%
I’ll devote myself to the american people I’ll reduce unemployment rate by 5% by 2010

不要写rest of this paper is…

不要出现这种句子:The rest of this paper is structured as follows. Section 2 introduces the problem. Section 3 … Finally, Section 8 concludes

Instead, use forward references from the narrative in the introduction. The introduction (including the contributions) should survey the whole paper, and therefore forward reference every important part.

本条是对于会议论文来说的,因为会议论文篇幅比较短。如果是期刊论文,通常需要有这一段。

6.Related work

不要放在前面,而是放在后面,为什么?

  1. 读者对于你的问题一无所知,因此,你认真取舍并精简表述的related work很难被人看懂
  2. 描述他们的工作将影响读者对于你的观点的理解

假如你在做一个报告,你肯定会马上告诉别人你的问题和你怎么解决的,最后你可能提一下,“哦,对了,我的工作是改进了谁谁谁的什么工作,对于这个问题,别人还有怎么怎么做的”

那么怎么写Previous Work?

  1. 必备背景
    • 本篇论文所基于的前人的工作
    • 或者是你改善的前人的工作
    • 或者是预备知识,通常是数学知识
    • 必备背景,指的是那些如果不仔细介绍,读者无法理解你论文的背景
  2. 其他工作
    • 直接与你的论文相关的工作,必须保证加入这些内容不会影响别人理解你工作

相关工作怎么写

谬误:为了使我的工作看起来比较漂亮,我得让其他人的工作看起来比较差劲。

对他人给予认可不会影响你论文得到他人的认可

  • 感谢那些帮助过你的人
  • 对于你的竞争对手,要慷慨一点,尤其是那些给予你新想法的论文,例如:Foogle shows的这篇论文令我思如泉涌,我基于他的工作做了。。。
  • 承认你方法的缺陷,不要等别人去发现。

对他们的工作认可不够可能会使你的论文遭遇滑铁卢

假如你暗示这个主意是你的,但别人知道它不是,那么看,给别人的感觉是:

  • 你不知道这个主意已经很老了
  • 你尽管知道它很老了,但是你假装你不知道

7. 呈现你的观点,为读者考虑

在解释你的观点的时候,要像你在用黑板对着别人讲一样

一定要把你的intuition表述清楚,一旦别人了解了你的intuition,他可以很轻松的了解你的论文。

一定要用例子来解释你的观点,在介绍观点的时候,说完了观点,最好马上使用例子明确的解释一下,然后在讲general case,这样便于理解。

不要试图把你所有失败的经历都详细的描述,读者没兴趣,读者只想知道你的解决方案,不要带着读者一点一点的去过那些你失败的想法。只把那些很明显的失败经历写出来,即,一个失败的经历非常容易被发现,而读者可能很有兴趣,这时候,你应该写出来,然后告诉读者,我做过了,但是不行

8.结论和Future work

Be Brief

9.写作流程

早动手。仓促撰写的论文容易被拒。论文就像酒一样,需要时间才能成熟

让别人读你的论文,听取他们的观点:

  • 愿意读你论文的人是稀缺资源,谨慎利用。在恰当的时候让别人去读你的论文
  • 告诉别人你想得到什么,比如,错别字你并不关注,就不要让别人去找错别字,而是直接告诉对方,section2我还没想明白,然后对方会给你仔细找问题
  • 你的读者只有一次机会能“第一次读你的论文”,因此,一定谨慎
  • 假如你的朋友读不懂,可以一起讨论,然后突然对方懂了,就会问你,你怎么不在论文里这么说,然后你需要把你的讲解过程下载论文里即可。重要的是,在交流的过程中,发现,你应该怎么更好的解释你的论文,而不是说,你应该怎么教育对方。

获取专家意见的方法:我对您工作的描述是否fair?但是别做过了。

当评论者认为你的论文写得不好时,通常就是你写的不明确,你应该想想怎么才能让最stupid的人读懂你的论文。

10.语言和样式

要透气,即别全是文字,而是应该文字和图结合

你的论文是以图、表、公式等对你实验结果的一种呈现方式,论文中的文字所起到的作用仅仅是对你的数据进行解释。用图表或公式用的越多,那么你的论文将变得越精炼,也越可读,by George Whitesides

  • 将你的精力放在非文本部分,文本只是为了对非文本进行解释而已。

  • 一篇论文的成败(是否被拒)在很大程度上是被它的视觉效果所决定的

使用主动语态

被动语态看起来比较正式,但是可读性不如主动语态。尽一切可能避免被动语态。

被动的例子 主动的例子(推荐)
It can be seen that We can see that
34 tests were run We ran 34 tests
These properties were thought desirable We wanted to retain these properties
It might be thought that this would be a type error You might think this would be a type error

使用简单直接的语言

No Yes
The object under study was displaced horizontally The ball moved sideways
On an annual basis yearly
Endeavour to ascertain Find out
It could be considered that the speed of storage reclamation left something to be desired The garbage collector was really slow

CART算法中的Gini impurity(不纯度)

首先Gini不纯度和Gini系数(coefficient)没有关系。Gini impurity衡量的是从一个集合中随机选择一个元素,基于该集合中标签的概率分布为元素分配标签的错误率。对于任何一个标签下的元素,其被分类正确的条件概率可以理解为在选择元素时选中该标签的概率与在分类时选中该标签的概率。基于上述描述,Gini impurity的计算就非常简单了,即1减去所有分类正确的概率,得到的就是分类不正确的概率。若元素数量非常多,切所有元素单独属于一个分类时,Gini不纯度达到极小值0。

设元素的标签为${1, 2, …, m}$,$f_i$为该标签在集合中的比例,那么

$I_{G}(f) = \sum_{i=1}^{m} f_i (1-f_i) = \sum_{i=1}^{m} (f_i – {f_i}^2) = \sum_{i=1}^m f_i – \sum_{i=1}^{m} {f_i}^2 = 1 – \sum^{m}_{i=1} {f_i}^{2}$

翻译自:http://en.wikipedia.org/wiki/Decision_tree_learning#Gini_impurity

Potplayer等视频播放器鼓掌破音问题

最近在观看一部视频的时候,发现里面的鼓掌声听着很不一样,不好描述是一种什么声音,也可以叫有回音,也可以说是破音,总之不是很正常。搜索了一下网络,各种说法,最后发现在是5.1声道的音轨的解码问题,恰巧我观看的这一部视频带有2.0的音轨,切换音轨后没有发现类似的问题。至于如何正确解码5.1音轨则没有再认真研究了。

点到直线距离和投影

直接借用wikipedia的内容,用投影理解点到直线距离公式。

Vectorpoint-to-line.svg

Let P be the point with coordinates (x0, y0) and let the given line have equation ax + by + c = 0. Also, let Q = (x1, y1) be any point on this line and n the vector (a, b) starting at point Q. The vector n is perpendicular to the line, and the distance d from point P to the line is equal to the length of the orthogonal projection of \overrightarrow{QP} on n. The length of this projection is given by:
$d = \frac{|\overrightarrow{QP} \cdot \mathbf{n}|}{| \mathbf{n}|}$.
Now,
$\overrightarrow{QP} = (x_0 – x_1, y_0 – y_1)$, so $\overrightarrow{QP} \cdot \mathbf{n} = a(x_0 – x_1) + b(y_0 – y_1)$ and $| \mathbf{n} | = \sqrt{a^2 + b^2}$,
thus
$d = \frac{|a(x_0 – x_1) + b(y_0 – y_1)|}{\sqrt{a^2 + b^2}}$.
Since Q is a point on the line,$ c = -ax_1 – by_1$, and so
$d = \frac{|ax_0 + by_0 + c|}{\sqrt{a^2 + b^2}}$.

投影

一个向量AB在另一个向量CD上的投影的长度d,$d = \frac{|\overrightarrow{AB} \cdot \overrightarrow{CD}|}{| \mathbf{CD}|}$。这个公式很容易理解,$\frac{\mathbf{CD}}{| \mathbf{CD}|}$是单位向量。拿一个比较容易理解的例子,假如向量CD是一条水平的向量,即平行于x轴,那么,这个它的单位向量就是$(1,0)$,若用AB与之计算点积,那么得到的结果就是AB在x轴上的长度