CG 和 PCG 算法实现和分析

实验理论

共轭梯度法

共轭梯度法用于求解一类特殊但十分常见的线性方程组:

$$ \boldsymbol{Ax=b} $$

其中 $\boldsymbol{A}\in \mathbb{R}^{N\times N}$,$\boldsymbol{x,b}\in \mathbb{R}^{N}$。$\boldsymbol{A}$ 是给定的对称正定(Symmetric Positive Definite,SPD)的实系数方阵,$\boldsymbol{b}$ 是已知的向量,$\boldsymbol{x}$ 是需要求解的向量。

西安交通大学本科生毕业论文 LaTeX 写作

毕业了终于有空来一个个地填博客的坑了。毕业论文无疑是决定能否毕业的关键,要是正好碰上比较水的老师,毕业论文可以说是唯一需要花时间的东西,老师根本不会在意你的实验结果。有一句话这么说,每年国内高校的毕业论文最大的作用是培养了一批了解基本的排版常识、熟悉日常办公软件(Word、Excel、PowerPoint)基本操作的「大学生」。由于我选择了使用 $\LaTeX$,在魔改现有模板的过程中,也极大地提高了我使用 $\LaTeX$ 的能力。

PyTorch 入门常见问题

注意:此页面已经严重过时,不适用于 PyTorch 0.4 及之后的版本,有待修改。

最近在复现一些比较新的 Paper,里面的神经网络模型都比较多样化,训练方式也千奇百怪。对于 Caffe 和 TensorFlow 这样的预编译框架,不灵活这一缺陷就变得十分明显了。

而这方面正是 PyTorch 的强项,它是一个非常 Pythonic 的深度学习框架,一切的操作(包括模型的定义、训练、测试)都十分地符合 Python 的简单的哲学,可以非常轻松快速地构建出一个十分怪异的模型,非常适合科研人员。

爱情观 checkpoint_201802

爱情观这种东西,大概是会随着时间的行进而呈现不同的形态的吧。所以我认为本文只是我这几个月的 checkpoint ,不能保证它的时效性。当然以上观点也是如此。

Hugo 折腾记录

从 1 月份开始折腾博客也快一个月了,博客的渲染引擎也从 Hexo 换到了 Hugo,因为第一次体会到了 Go 语言速度的快感和无依赖性的便利。博客的主题是基于Prince修改的Hiruko,因为改的实在太多了,不好意思再叫别人的名字了。这篇文章大概也可以看作是 Hiruko 主题正确的打开方式吧。

VGG 19 笔记

1. ConvNet Configurations

  • Architecture

    • 图片的输入尺寸是 $224\times224\times3$ ,在预处理阶段,每个像素都要减去训练集中所有图片 RGB 值的均值。这样可以保证新的 RGB 值的均值为 0 。

    • 卷积核的尺寸设置为 $3\times3$ ,或者 $1\times1$ 。其中图片经过尺寸为 $1\times1$ 的卷积核可以看作是在做一个线性变换。

    • Stride 设置为 1 。Padding 的设置可以让图像经过卷积层之后尺寸不变,也就是说当卷积核尺寸是 $3\times3$ 的时候,Padding 设置为 1 。

    • 池化操作采用的是 Max-Pooling,尺寸是 $2\times2$ ,Stride 是 2 ,也就是说不像AlexNet那样是重叠的。

    • 没有使用LRN(Local Response Normalization),因为实验结果表明,LRN 没有改善深度神经网络的表现,反而增加了很多的计算量和计算时间。

AlexNet 笔记

1. ReLUs (Rectified Linear Units)

$$ f(x)=\max(0, x) $$

考虑到梯度下降的效率问题,传统的 sigmoid 和 tanh 激活函数的计算比较费时,而且要是每一层不做正则化的话,随着层数的增加,神经元的输出会越来越大,而这两个激活函数又是饱和的,导致激活后的输出差距不大,没有区分度。

而 ReLU 则比较简单,并且效果更好,不是饱和的激活函数,所以本文中选用的是 ReLUs 作为激活函数。

2017 葡萄成熟时

刚过了冬至,一早一晚还是有雨。

2017 的进度条已经走到了 99% ,今年的年终我又多了一份期待,因为今年年中发现了一个大神的博客,博客的技术文章虽然越来越少,但是每年跨年肯定不会缺席的是博主的年终总结。我从没有想过在少量的可支配的大学时光中找到如此多的乐趣,直到我一篇篇地把博主的年终总结读完。每次读完都有一种把他的年终总结当作我下一年的待办事项清单的想法。想再次感叹一句:真正厉害的人在某一领域取得出色的成绩并不是他适合那个领域,而是他恰好选择了那个领域。年底了,虽然达到大神那样的高度不太可能,但一篇年终总结还是能做到的,正好今年注定也是我人生中很重要的一年。

CS229 笔记 07

Optimal Margin Classifier

  • 回顾 SVM

    $$ \begin{eqnarray*} h_{w,b}&=&g(w^{\rm T}x+b)\\[1em] g(z)&=&\begin{cases}1&z\geq0\\[1em]-1&z<0\end{cases}\\[1em] y&\in&\{-1,1\}\\[1em] \hat\gamma^{(i)}&=&y^{(i)}\left(w^{\rm T}x+b\right)\tag{Functional Margin}\\[1em] \gamma^{(i)}&=&y^{(i)}\left(\frac{w^{\rm T}}{||w||}x+\frac{b}{||w||}\right)\tag{Geometric Margin}\\[1em] \hat\gamma&=&\min_i \hat\gamma^{(i)}\\[1em] \gamma&=&\min_i \gamma^{(i)}\\[1em] \end{eqnarray*} $$

CS229 笔记 06

朴素贝叶斯

  • 事件模型

    事件模型与普通的朴素贝叶斯算法不同的是,在事件模型中,假设文本词典一共有 $k$ 个词,训练集一共有 $m$ 封邮件,第 $i$ 封邮件的词的个数为 $n_i$ ,则 $x^{(i)} \in {1,2,\cdots,k}^{n_i}$ 。

    此时模型的参数为:

CS229 笔记 05

生成学习方法

判别学习方法的主要思想是假设属于不同 target 的样本,服从不同的分布。

例如 $P(x|y=0) \sim {\scr N}(\mu_1,\sigma_1^2)$ , $P(x|y=1) \sim {\scr N}(\mu_2,\sigma_2^2)$ 。

  • Gaussian Discriminant Analysis(高斯判别分析)

    在这里还是讨论 $y\in{0,1}$ 的二元分类问题, $P(y)=\phi^y(1-\phi)^{1-y}$。

CS229 笔记 04

Logistic Regression

  • Newton’s Method

    根据之前的讨论,在 Logistic Regression 中的一些符号有:

    $$ \begin{eqnarray*} P(y=1|x;\Theta)&=&h_\Theta(x)=\frac{1}{1+e^{-\Theta^{\rm T}x}} \\[1em] P(y|x;\Theta)&=&[h_\Theta(x)]^y[1-h_\Theta(x)]^{1-y} \\[1em] l(\Theta)&=&\log{L(\Theta)} \\[1em] &=&\sum_i^m{\log{P(y^{(i)}|x^{(i)};\Theta)}} \\[1em] &=&\sum_i^m{y^{(i)}\log{[h_\Theta(x^{(i)})]}+(1-y^{(i)})\log{[1-h_\Theta(x^{(i)})]}} \\[1em] \end{eqnarray*} $$

CS229 笔记 03

局部加权线性回归

  • Non-Parametric Learning Algorithm(非参数学习方法) Number of parameters grows with the size of sample.(参数的数目随着样本的数目增加而增加。)
  • Locally Weighted Regression(局部加权线性回归) 损失函数的定义为: $ J_\Theta=\sum_iw^{(i)}(y^{(i)}-\Theta^{\rm T}x^{(i)})^2 $ 。 其中 $ w^{(i)}={\rm {exp}}[-\frac{1}{2}(x^{(i)}-x)^2] $ . 即对于一个待预测的 $x$ ,训练集中离 $x$ 越远的样本,其对于模型的影响就越小。这也就意味着在每作出一个预测之前,都要重新训练一遍模型。