概念
机器学习属于人工智能的一个领域,即使机器自身具有学习能力而不是人为编程设定。比如Athur Samuel 写了一个围棋程序,让计算机与自己对弈上千万次学到了什么是好的布局什么是坏的布局。最终该围棋程序围棋水平都在Athur Samuel之上。
机器学习的最新定义如下:给定一个任务T,从经验E中学习,然后通过P来衡量该任务的效果。
机器学习分类
监督学习:人类教计算机做某件事情
无监督学习:让计算机自己去学习
有监督学习就是人工提供了正确的答案(groundtruth),然后机器根据这些答案来进行拟合和归类。
下面一张图描述的是房价与房子面积的关系:
图中的红叉叉表示房价真实价格,现在我们需要预测在 面积为750平米的时候房子价格。
根据现有答案来预测一个连续值输出(房子价格是一个实数连续值)这种问题被称为回归(regression)问题。如何预测,不同的函数预测的效果不一样,比如直线预测、二次函数预测。
分类:预测离散值输出,比如根据 肿瘤大小很多因素来预测,输出值只有良性、恶性两种。
回过头来我们通过一张图来明白有监督学习和无监督学习的区别:
左边已经知道了类别(圆圈、叉叉),右边不知道具体类别,需要机器根据一定的算法去划分类。
如何得出最准确的预测函数
首先我们要知道什么是准确,好的算法预测的结果与真实的结果相差会小,我们使用损失函数来衡量真实结果和预测结果之间的误差。
损失函数(loss function)有时也叫代价函数,代价函数常用表示为:
损失函数应用于有监督学习的场景中,根据历史现有的值来修正拟合函数的参数。
还是以上面的房价预测函数为例,假设我们通过 y = ax + b直线来预测房价。不同的直线预测的结果误差不一样。这种误差通过代价函数来衡量,那么我们需要找到代价函数最小时候的a,b值,此时就可以确定了我们需要的最佳拟合函数。
由前面的代价函数可知其是一个二次曲面(图像上的点都有现有经验数)我们现在就需要确定一个theta0,theta1使其代价函数最小。问题转化为在代价函数二次曲面上寻找全局最小值。
如何寻找全局最小值呢?这里选用的是梯度下降算法:
1.确定初始值θ0、θ1
2.找到当前使J下降最快的方向(梯度的反方向)
3.点( θ0、θ1 )向这个方向移动一定的步长
4.判断收敛性和迭代步长。如果J收敛或者达到最大迭代次数,则结束计算,否则重复2-4。
梯度算法采用的是贪心策略(每次取下降最快的方向),通过梯度决定方向那么如何如何决定呢?
1).
详细了解梯度下降算法和learning rate
应用
应用的大体框架是:
1.数据预处理
有一些重复参与运算的数据需要去掉。
2.特征提取
比如心音信号的研究中就分别提取出时域特征和频域特征。
时域特征根据完整的心动周期,比如SI,Systole(收缩期),S2,Diastole(舒张期),比如通过Springer分隔算法,可将心音信号的这四个时期分割处理啊,从而计算出一系列的时域特征。
心音分类的大体的方法就是:根据样本 进行数据预处理提取出特征然后训练模型,不停的优化参数。
当应用的时候,把现实新的数据也经过预处理和特征提取,然后根据前面训练出的模型进行分类。
附录(参考)
梯度:梯度是一个矢量,经过梯度公式运算后山上的每一个点都有有一个向量,而这个向量会指向该点最陡的方向,而向量的大小表示到底有多陡。由于梯度是一个矢量那么它表示上升最陡的那个矢量,下降最陡则刚好是 梯度的反向量。