注:本文为学习笔记,描述与截图多来自课件和百科,学习网站为:https://www.coursera.org/learn/machine-learning/home/welcome
1. 关于机器学习:
从广义上来说,机器学习是一种能够赋予机器学习的能力以此让它完成直接编程无法完成的功能的方法。但从实践的意义上来说,机器学习是一种通过利用数据,训练出模型,然后使用模型预测的一种方法,此话出自机器学习之父Tom Mitchell:"A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E."
通常,机器学习问题可分为:监督学习和无监督学习。
1.1 监督学习:
从标记的训练数据来推断一个功能的机器学习任务。训练数据包括一套训练示例。在监督学习中,每个实例都是由一个输入对象(通常为矢量)和一个期望的输出值(也称为监督信号)组成。函数的输出可以是一个连续的值(称为回归分析),或是预测一个分类标签(称作分类)。
1.2 无监督学习:
没有给定事先标记过的训练示例,自动对输入的数据进行分类或分群。
1.3 模型表示:
在之后的使用中,将使用表示输入标量表示输出变量或目标变量,一对与为一对训练用例,(,); i = 1,...,m称为训练集。 注意,符号中的上标“(i)”只是训练集中的一个索引,与幂运算无关。监督学习的过程如下:
2. 成本函数(代价函数):
2.1 成本函数:
我们可以使用成本函数来衡量假设函数的准确性。 这将假设的所有结果与x的输入和实际输出y的平均值进行平均差(实际上是平均值的简化形式)。
将训练数据集映射在X-y坐标轴上。 试图画一条直线( (x))穿过这些分散的数据点。
我们的目标是获得最佳的生产线。 最佳可能的线应是这样,以使散射点与该线的平均垂直垂直距离最小。 理想情况下,直线应穿过训练数据集的所有点。 在这种情况下,J()为0.以下示例显示了成本函数为0的理想情况。
当= 1时,我们模型中的每个数据点的斜率均为1。
当=0.5时,我们看到从拟合到数据点的垂直距离增加了。
这将我们的成本函数提高到0.58。 绘制其他几个点可得出下图:
我们应尽量减少成本函数,上述示例中= 1为成本函数最小值。
下图为和 两个变量同时改变所得到的等高线图,函数的轮廓线在同一条线的所有点上均具有恒定值
一个圆上的点表示不同的和 得到的成本函数的值相同。 例如,在上方的绿线上找到的三个绿点的他们在同一线上,成本函数的值相同。当=0,=360时,我们可得到如下的图形:
从图中可看到,成本函数的值靠近中心值,现在我们取正中心的值,可得到如下图形:
3. 梯度下降:
3.1 梯度下降法(英语:Gradient descent)
是一个一阶最优化算法。 要使用梯度下降法找到一个函数的局部极小值,必须向函数上当前点对应梯度(或者是近似梯度)的反方向的规定步长距离点进行迭代搜索。如果相反地向梯度正方向迭代进行搜索,则会接近函数的局部极大值点;这个过程则被称为梯度上升法。
将成本函数的和分别绘制在x, y, z轴上,可得到如下图形:
从图形可知,图形最低点为最优解。使用的方法是采用成本函数的导数(函数的切线),切线的斜率是该点的导数,导数会有一个方向。我们沿下降最陡的方向逐步降低成本函数。每个步骤的大小由参数α(称为学习率)确定。
梯度下降算法为:
在每次迭代时,应同时更新如下所示:
在梯度下降算法中函数的切线即求导,斜率有正也有负
需要注意的是,应该调整参数α以确保梯度下降算法在合理的时间内收敛。 无法收敛或没有太多时间获得最小值表示我们的步长是错误的。
在设定参数α时,应注意,随着梯度下降算法的进行,导数的值会越来越小,也就是说我们得到的值会越来越小直到为0
3.2 线性回归的梯度下降:
当梯度下降专门用于线性回归时,可以得出新的梯度下降方程。 我们可以用实际成本函数和实际假设函数代替,然后将等式修改为:
上面显示的椭圆是二次函数的轮廓, 该图显示了梯度下降所采取的轨迹,该轨迹在(48,30)处初始化。 图中的x(由直线连接)标记了梯度下降收敛到最小值时经历的的连续值。
4. 矩阵和向量
矩阵是二维数组,向量是一维数组。
上面的矩阵有四行三列,因此它是4 x 3的矩阵。向量是一列多行的矩阵:
因此向量是矩阵的子集。 上面的向量是一个4 x 1的矩阵。
4.1 矩阵的基本运算:
矩阵的最基本运算包括矩阵加(减)法,数乘和转置运算。被称为“矩阵加法”、“数乘”和“转置”的运算不止一种[14],其中最基本最常用的定义如下:
4.2 矩阵乘法
两个矩阵的乘法仅当第一个矩阵A的列数(column)和另一个矩阵B 的行数(row)相等时才能定义。如A是m×n矩阵和B 是n×p矩阵,它们的乘积AB是一个m×p矩阵
矩阵乘法不满足交换律,矩阵A及B的乘积AB存在,但BA不一定存在,即便存在,大多数时候AB≠BA,比如下面的例子:
4.3 转置矩阵:
矩阵A的转置(英语:transpose)是另一个矩阵AT(也写做Atr, tA或A′)由下列等价动作建立:
- 把A的横行写为AT的纵列
- 把A的纵列写为AT的横行
- 形式上说,m × n矩阵A的转置是n × m矩阵,如下:
-
4.4 逆矩阵
逆矩阵(inverse matrix),又称反矩阵。给定一个n 阶方阵A,若存在一n 阶方阵B ,使得AB =BA=In,其中In为n 阶单位矩阵,则称A 是可逆的,且B是A的逆矩阵,记作
只有方阵(n×n 的矩阵)才可能有逆矩阵。