【机器学习】一些基本概念及符号系统

:其实自认为仍是很是喜欢数学的,可是对于复杂的公式仍是有种恐惧感,就像最开始学英语时,对英语的感受同样。可是数学与英语不一样的地方在于,你能够尽情的刨根问底,从最基础的知识开始了解,直到最终把一个符号或者公式的含义弄明白。在机器学习的过程当中,也会碰到各类各样的符号,尤为是遇到多参数,多样本的状况时,更是让人眼花缭乱。最近学习完coursera上吴恩达老师的机器学习前两周的课程,有种豁然开朗的感受。在此作一个小结。html

 

1. 一些基本概念



图1. 机器学习的基本过程算法

图1展现了机器学习的基本过程。对于学太高中数学的人来讲,解方程是咱们再熟悉不过的事情了。例如一个二元一次方程组,其解(若是存在的话)就是平面上两条直线的交点,此时方程以及参数(方程的系数)都是肯定的。咱们一般意义上的算法至关于一个定义好的函数(图1中的$h$),应用该算法的过程就是带入不一样的自变量求函数值的过程。然而在机器学习算法中,最大的不一样在于没有一个"定义好的函数",而是须要经过收集到的数据训练出一个函数(图1中从Training Set到$h$的过程),本质上是对训练集中数据的一种归纳和总结。例如只有两个参数的线性回归就是在二维平面上找一条适合描述训练集中样本点变化规律的直线的过程。编程

传统的肯定性算法与机器学习算法的区别能够用下图表示:机器学习

图2:传统编程与机器学习之间的差异,source函数

若是将一个程序大体分为三个部分:输入、输出和算法,那么传统编程中已知的是输入和算法,须要求输出;机器学习中则是已知输入和输出,须要经过训练(学习)来获得有泛化能力的算法。学习

 

开普勒经过分析第谷留下的大约20年的天文观测数据,创建的开普勒三大定律;孟德尔经过分析他本身在豌豆实验中得到的不一样性状数据,创建了孟德尔遗传定律。这两位科学家所作的事情,其本质也是对实验数据的归纳、总结,最终提炼出了具备高度归纳和普适价值的基本定律。这样想一想,机器学习算法确实有了几分智能的味道。spa

  • 训练集(Training Set):为了研究一个变量(x)与另外一个变量(y)的关系,而经过观察、测量等方式得到的一组数据。这组数据中收集了x和与之对应的y——一个数据对(x, y)。例如咱们要研究房屋面积(x)和售价(y)之间的关系,每观察一套已出售的房屋,就获得一个数据对(x, y)。观察10套已出售的房屋,就能够获得10个这样的数据对,这时就获得了一个用来研究房屋面积和售价之间的关系的训练集了(虽然样本量比较小)。这些数据集通常采集自现实环境中,属于现象(咱们的目的是透过现象看本质)。
  • 样本(Sample):训练集中采集数据的对象就是一个样本,例如一套已出售的房屋。
  • 模型(Model)因为某些历史缘由,机器学习中的模型也被叫作假设(hypothesis, h),这个h就是咱们透过现象想要寻找的"本质"。创建模型的过程一般就是肯定一个函数表达式的过程(是否还记得寒假做业中的这类题目:观察一组数,写出下一个数是什么?)。最多见的模型是回归模型(线性回归或逻辑回归等),例如咱们假设房屋面积与售价之间的关系是一个线性回归模型,则能够写成:$$h(\theta) = \theta_0 + \theta_1 x \qquad \ldots (1)$$ 其中h是函数(可能更习惯叫作y,但在机器学习中y通常表示已知的函数值,即后面的因变量;这里的h至关于预测获得的y),θ是函数的参数(也能够看作是每一个自变量的权重,权重越大,对y的影响也越大),x是自变量。
  • 训练模型(Training Model):选定模型(选择合适的模型须要丰富的经验)后,函数的通常形式就肯定了。一般所说的训练模型是指利用训练集求解函数的待定参数的过程。上面的(1)式与直线方程的通常形式y = ax + b是相同的,这里不过换了一种写法。此时咱们知道模型是一条直线,为了肯定这条直线的肯定方程,咱们须要求出两个未知的参数——θ0(截距)和θ1(斜率),若是训练集中只有两个样本,那就只是求一个二元二次方程组就解决问题了。
  • 特征(Feature):特征就是在一个模型中,全部想研究的自变量(x)的集合。例如咱们在研究房屋售价的模型中,全部可能影响售价的因素均可以当作是一个特征,房屋面积、所在城市、房间个数等。在创建模型的过程当中,特征的选择是一个大学问,甚至有专门的分支来研究特征选择或特征表示。

 

2. 训练集的表示


上面提到过,训练集就是许多的(x, y)数据对的集合。其中x是因变量,y是自变量。一般认为x的变化引发了y的改变,即x的值决定了y的值。在预测房屋价格的模型中,假如咱们能找到全部影响房屋价格的因素(全部的x),而且肯定各个因素准确的参数(θ),那么理论上能够准确的预测出任何房屋的价格(y)。3d

2.1 单因素训练集中自变量的表示方法

  • 单因素至关于方程中只有一个自变量,这个自变量能够用一个小写字母x来表示;
  • 若是收集了多个样本,则经过在右上角添加带括号的角标的方式区分,表示为x(1), x(2), ..., x(m),其中m表示样本的个数;
  • 矩阵的表示:向量通常用小写字母表示,矩阵用大写字母表示。全部单因素样本中的x能够用一个m x 1(m行1列)的列向量x(小写字母)只有一列的矩阵就是一个列向量)来表示:$$x = \begin{pmatrix} x^{(1)} \\ x^{(2)} \\ \vdots \\ x^{(m)} \end{pmatrix}$$

 

2.2 多因素训练集中自变量的表示方法

  • 多因素至关于方程中有多个自变量(多个feature),不一样的自变量之间使用右下角添加不带括号的角标来区分,表示为x1, x2, ..., xn,其中n表示feature的个数;
  • 当存在多个样本时,能够用一个m x n(m行n列)的矩阵X(大写字母)来表示:$$X = \begin{bmatrix} x_{1}^{(1)} & x_{2}^{(1)} & \ldots & x_{n}^{(1)}\\ x_{1}^{(2)} & x_{2}^{(2)} & \ldots & x_{n}^{(2)}\\ \vdots & \vdots & \ddots & \vdots \\ x_{1}^{(m)} & x_{2}^{(m)} & \ldots & x_{n}^{(m)} \end{bmatrix}$$

 

2.3 训练集中因变量的表示方法

不管是单因素仍是多因素,每个样本中都只包含一个因变量(y),所以只须要区分不一样样本间的y,y(1), y(2), ..., y(m),其中m表示样本的个数;htm

用列向量y表示为:$$y = \begin{pmatrix} y^{(1)} \\ y^{(2)} \\ \vdots \\ y^{(m)} \end{pmatrix}$$对象

 

3. 参数的表示


也许是某种约定,在机器学习中,通常都是用θ来表示参数,参数是自变量X的参数(也能够看作是每一个自变量的权重,权重越大的自变量对y的影响也越大),理论上,有多少个自变量就有多少个参数,但就像在直线方程y = ax + b中表现出来的那样,除了x的参数a,还有一个常数项b。所以参数通常比自变量的个数多一个,当有n个自变量的时候,会有n+1个参数。

最终的模型是由一个特定的方程来表示的,方程中的未知参数,是在训练模型的过程当中肯定的。这些参数对于全部的样本都是相同的,例如第一个样本x(1)中的第一个自变量x1的参数与任意其余样本x(i)中第一个自变量x1的参数是相同的。所以不用区分样本间的参数,只用区分不一样自变量之间的参数,可使用一个n+1维的列向量θ来表示全部的参数:

$$\theta = \begin{pmatrix} \theta_0 \\ \theta_1 \\ \vdots \\ \theta_n \end{pmatrix}$$

 

4. 模型的表示


这里说的模型就是一个特定的函数,上面已经提过,模型通常使用h来表示。下面用线性回归模型来举例说明模型的符号表示。

 

4.1 直接表示

直接表示方法是咱们在没有学习线性代数以前的代数表示方式。

  • 单变量线性回归方程:$$h_\theta (x) = \theta_0 + \theta_1 x$$
  • 多变量线性回归方程:$$h_\theta (x) = \theta_0 + \theta_1 x_1 + \theta_2 x_2 + \theta_3 x_3 + \ldots + \theta_n x_n$$

 

4.2 矩阵表示

学习了线性代数后,可使用矩阵来表示上面的方程,不只表示起来方便,直接进行矩阵运算效率也更高效。在这里须要特别说明的一点是,为了配合矩阵的表示,在上面的方程中添加了x0,而且x0=1,且将θ0做为x0的参数

  • 单变量/多变量线性回归方程:$$h_\theta (x) = X \theta = \begin{bmatrix} x_{0}^{(1)} & x_{1}^{(1)} & \ldots & x_{n}^{(1)}\\ x_{0}^{(2)} & x_{1}^{(2)} & \ldots & x_{n}^{(2)}\\ \vdots & \vdots & \ddots & \vdots \\ x_{0}^{(m)} & x_{1}^{(m)} & \ldots & x_{n}^{(m)} \end{bmatrix} \begin{bmatrix} \theta_0 \\ \theta_1 \\ \vdots \\ \theta_n \end{bmatrix}$$,此时X是一个m x (n+1)的矩阵,每一行表示一个样本,每一列表示一个特征,结果是一个m x 1的列向量,其中m表示样本的个数,n表示变量的个数(X中的每一列具备一样的参数,一列表示在不一样的样本中同一个特征的取值);
  • 当只有一个样本多个变量时,还能够表示为:$$h_\theta (x) = \theta^T x = \begin{bmatrix} \theta_0 & \theta_1 & \ldots & \theta_n \end{bmatrix} \begin{bmatrix} x_0 \\ x_1 \\ \vdots \\ x_n \end{bmatrix}$$,此时x是一个(n+1)维的列向量,每一行表示一个变量的值。

 

 

Reference


https://www.coursera.org/learn/machine-learning

http://blog.sciencenet.cn/blog-100379-1037923.html

https://www.sumologic.com/blog/devops/machine-learning-deep-learning/

相关文章
相关标签/搜索