I'M QY


  • Home

  • About

  • Projects

  • Archives

  • Tags

Machine Learning(2): Introduction(Linear Algebra Review)

Posted on 2016-08-01   |   In project

(此乃我在coursera上面,学习Andrew Ng(吴恩达)的课程Machine Learning的笔记)

本节主要是复习线性代数。

矩阵Matrix

矩阵为由数字组成的矩形阵列,并写在一个中括号里,比如,一个3行*4列的矩阵如下:
$$
A=\left[
\begin{matrix}
1 & 2 & 3 & 1\\
4 & 5 & 6 & 1\\
7 & 8 & 9 & 1
\end{matrix}
\right]
$$
该矩阵也被称为$3\times4$维矩阵。

向量vector

一个只有一列的特殊矩阵被称为向量,例如一个3维的向量如下:
$$
y=\left[
\begin{matrix}
1 \\
4 \\
7
\end{matrix}
\right]
$$
向量的元素个数就是向量的维dimensional。

另外,我们一般一个大写字母表示矩阵,用小写字母表示向量,或者标量。

矩阵相乘的性质

矩阵相乘不符合交换律,但是符合结合律,如:
$AB\neq BA$ $A(BC) = (AB)C$

单位矩阵Identity

用$I$或$I_{n\times n}$表示单位矩阵,它的特点就是矩阵对角线上值为1,其它为零:
$$
A=\left[
\begin{matrix}
1 & 0 & 0 & 0\\
0 & 1 & 0 & 0\\
0 & 0 & 1 & 0\\
0 & 0 & 0 & 1\
\end{matrix}
\right]
$$
对于任何矩阵A都成立:
$$IA=AI=A$$
这里需要注意的地方是,如果A为$m\times n$维的,那么这里的$I$的维度就不一样了:
$$I_{m\times m}A_{m\times n}=A_{m\times n}I_{n\times n}=A_{m\times n}$$
$I$有点类似数字1.

逆矩阵Inverse

一个数字和它的倒数(如果有倒数的话)相乘,将会等于1,如:
$$3\times \frac{1}{3}=1$$
对于矩阵来说,类似倒数的说法被称为逆矩阵(用上标-1表示),它使得以下公式成立:
$$AA^{-1}=A^{-1}A=I$$
只有方阵(行列维度相等)才有逆矩阵。
另外,类似零没有倒数的情况,逆矩阵不存在的矩阵被称为奇异矩阵或退化矩阵,比如零矩阵就是一个奇异矩阵。
Octave的pinv(A)语句就是求A的逆矩阵。

矩阵的倒置Matrix Transpose

倒置的意思就是把矩阵行和列交换,用上标$T$表示。如:
$A=
\left[
\begin{matrix}
1 & 2 & 3 \\
4 & 5 & 6
\end{matrix}
\right]
$的倒置为:$A^T=
\left[
\begin{matrix}
1 & 4 \\
2 & 5 \\
3 & 6
\end{matrix}
\right]
$

利用矩阵相乘的性质进行回归问题的计算

ML_4
如上图,就是介绍了一个预测房价的过程,房子的面积作为输入A(DataMatrix),模型$h_\theta(x)$的参数parameter作为x,预测值prediction作为y,这样就可以通过矩阵和向量的相乘来实现了预测房价的计算,简化了计算过程和提高了计算效率。
ML_5

上面是利用矩阵和向量相乘,同样可以利用矩阵和矩阵相乘,来简化我们的计算,这样就可以一次验证多个模型的精度:
ML_6

Machine Learning(1): Introduction

Posted on 2016-07-31   |   In project

(此乃我在coursera上面,学习Andrew Ng(吴恩达)的课程Machine Learning的笔记)

机器学习问题分为:监督学习(supervised learning)和无监督学习(unsupervised learning)。

监督学习

在监督学习中,对于数据集中的每个数据,都有相应的正确答案,算法就是基于这些来做出预测。
回归问题:连续值输出,如预测某天的温度
分类问题:离散值输出,如预测是否是肿瘤

无监督学习

无监督学习的训练数据没有给出“正确答案”(标签),它只有一个数据集,需要算法自动找出这个数据集的某种结构或者分类,如果通过聚类算法,找出不同类型的人,不同的市场等等,这些事先都没有给出正确的答案。

工具

Octave和matlab,Andrew推荐使用Octave,因为他们都是用这个来演示的-_–。

线性回归linear Regression

训练输出的模型函数叫hypothesis(假设),用$h$来表示。
而
$$h_\theta(x)=\theta_0+\theta_1x$$
称为单变量线性模型。
线性回归则是指通过数据训练出一个线性模型的过程。

代价(损失)函数Cost Function

$$J(\theta_0,\theta_1)=\frac{1}{2m}\sum_{i=1}^{m}(h_\theta(x_i)-y_i)^2$$
代价函数用于评估模型的精度。其中,$x_i$为预测输入,$y_i$为实际输出,即实际值,而$h_\theta(x_i)-y_i$项表示预测值和实际值的误差。平方是为了防止误差累加后会正负抵消,另外也可以用绝对值或者对数似然损失函数(见《统计学习方法》李航1.3节)。
另外需要解析的是$2m$的意义,除以$m$显然是为了求平均值,而“2”的加入其实是为了方便以后的计算。Andrew在此没有细说,但是后面学习剃度下降的时候就应该知道,需要求导,平方的导数会多出一个2,我猜这里就是为了约去它。
还有需要注意的是,$h$的自变量是$x$,而$J$的自变量是$\theta$。

剃度下降Gradient Descent

剃度下降算法就是给出初始值$\theta_i$,然后通过一点点改变$\theta_i$,使得$J(\theta)$变小,直到它到达最小值或局部最小值。
其过程就是不断重复以下步骤,直到收敛:
$$\theta_j:=\theta_j-\alpha\frac{\partial}{\partial\theta_j}J(\theta_0,\theta_1)$$
其中符号“:=”表示赋值,$j$表示特征的索引,这里$j=0,1$。需要注意的是,这里的迭代必须是两个特征同时迭代,即:ML_3
由于$\frac{\partial}{\partial\theta_j}J$就是$J$的斜率,在越接近最低点时越小,即越陡峭下降越快,越平缓下降越慢。所以,不用改变$\alpha$也可以收敛。如图所示:ML_1
另外,对于称为学习速率的$\alpha$,取值太小,则收敛太慢;取值太大,则可能造成无法收敛。ML_2

Qingyun He

Qingyun He

Tomorrow is another day!

2 posts
1 categories
GitHub LinkedIn Mail
© 2016 Qingyun He. All Rights Reserved.