机器学习简单介绍

机器学习不是科幻电影。
 
机器学习目的是解放生产力
 

机器学习原理

机器学习: 机器自主获取事物的规律。 
 
要让机器可以 “学习”,必须将生活中的数据(包括但不限于图像、文字、语音)数值化,将不同事物的变化和关联转化为运算。 
 
机器学习可以成立的原因是:概念和数值、关系和运算可以相互映射
 

机器学习的种类

  • 按照是否有标签划分

        1、有监督
       训练哈士奇就是典型的有监督学习,每一次的指令都是一个数据样本(Sample),被摸头(正确)和挨打(错误)就是数据样本的标签(Label),给数据样本打上标签的过程就叫做标注(Labeling)。
 
        2、无监督
        告诉机器一些特征(Features),例如:是否有角,是否长翅膀,让机器自己去 “聚类”, 这就是一次无监督的学习。
        无监督学习没有给定事先标记过的训练示例,自动对输入的数据进行分类或分群。 根据类别未知(没有被标记)的训练样本解决模式识别中的各种问题,称之为无监督学习。
 
  • 按照处理问题场景划分

        1、分类和回归
        给定一个样本特征 , 我们希望预测其对应的属性值 , 如果 是离散的, 那么这就是一个分类问题,反之,如果 是连续的实数, 这就是一个回归问题。
 
        2、聚类
        如果给定一组样本特征 , 我们没有对应的属性值 , 而是想发掘这组样本在 维空间的分布, 比如分析哪些样本靠的更近,哪些样本之间离得很远, 这就是属于聚类问题。
 

机器学习三要素——数据、模型、算法

数据

数据 也就是源数据, 指还未转换为机器可以识别的数据样本 
 
向量空间模型(VSM, Vector Space Model): 负责将格式(文字、图片、音频、视频)转化为一个个向量。
机器学习简单介绍

机器学习简单介绍

 机器学习简单介绍

 模型

1. 模型如何得到
模型是机器学习的结果,而这个学习的过程称为训练(Train) 一个训练好的模型可以被理解成一个函数:y=f(x) 这个 y 可能是一个数值(回归),也可能是一个标签(分类)  
 
2. 什么是训练 
根据已经被指定的 f(x) 的具体形式 —— 模型类型,结合训练数据,计算出其中各个参数的具体取值的过程。 比如一个线性模型:y=f(x)=ax^2+bx+c 训练就是为了找到其中 a、b、c 的值

算法

算法 :训练过程需要依据某种章法进行运算。这个章法,就是算法。 
损失函数(Loss Function): 需要用一个函数来描述 y‘ 与 y 之间的差别,这个函数叫做损失函数(Loss Function) 
代价函数(Cost Function): 损失函数针对一个训练数据,对于所有的训练数据,我们用代价函数来描述整体的损失 。
目标函数: 因为代价函数表示的是整个模型付出的代价,所以代价要越小越好。因此我们就得到了一个学习目标,就是找到目标函数。 
优化算法: 为了让 J(Θ) 达到最小就要使用优化算法。
 

模型构造

数据 + 算法 = 模型

1. 数据准备    
    数据预处理:收集数据、清洗数据、标注数据。     
    构建数据的向量空间模型。     
    将构建好的向量空间模型分为训练集、验证集和测试集。 
2. 训练     
    训练的核心是算法 
3. 测试     
    测试集数据 --输入--> 模型(预测结果)--> 将预测结果与原本的预期进行比较 
4. 衡量当前模型的质量 
    按照一定的规则计算模型质量的衡量指标(Precision、Recall、F1Score 等等),根据指标的数值来衡量当前模型的质量。
 

训练集、验证集和测试集

- 训练集(Train Set):用来做训练的数据的集合。
- 验证集(Validation Set):在训练的过程中,每个训练轮次结束后用来验证当前模型性能,为进一步优化模型提供参考的数据的集合。 
- 测试集(Test Set):用来测试的数据的集合,用于检验最终得出的模型的性能。  
 
每个集合都应当是独立的,和另外两个没有重叠。 
其中数据量最大的是训练集,通常训练集和测试集比例为8/2或9/1或7/3。 
整体数据量不大,模型又相对简单时,验证集和测试集也可以合二为一。
 

训练的过程

1. 编写训练程序   
    - 选择模型类型;    
    - 选择优化算法;    
    - 根据模型类型和算法编写程序。 
2. 训练 -> 临时模型 
3. 在训练集上运行临时模型,获得训练集预测结果。 
4. 在验证集上运行临时模型,获得验证集预测结果。 
5. 综合参照第 3 步和第 4 步的预测结果,改进模型。 
6. 回到第 2 步,反复迭代,直到结果满意或者已经无法继续优化
 

模型评估

当我们训练出了一个模型以后,为了确定它的质量,我们可以用一些知道预期预测结果的数据来对其进行预测,把实际的预测结果和实际结果进行对比,以此来评判模型的优劣。

机器学习简单介绍

 分类模型评判指标: Precision、Recall 和 F1Score 

精准率:Precision=TP/(TP+FP),即在所有被预测为 Class_A 的测试数据中,预测正确的比率。 
召回率:Recall=TP/(TP+FN),即在所有实际为 Class_A 的测试数据中,预测正确的比率。 F1Score = 2*(Precision * Recall)/(Precision + Recall)
机器学习简单介绍

 回归模型的偏差和过拟合

对训练集样本拟合程度的角度,可以分为两类:欠拟合(Underfitting)和过拟合 (Overfitting)。

欠拟合:如果一个模型,在训练集上的预测结果就不佳,指标偏低,那一般是欠拟合的问题。 (学习的太好了,太关注局部特征)
过拟合:如果在训练集上指标很好,而在验证/测试集上指标偏低,则很可能是过拟合问题。(没有学到训练数据的普遍规律)
机器学习简单介绍

经验误差和泛化误差

经验误差:在训练集上的误差称为“训练误差”或“经验误差”。 (真实值和预测值的误差)
泛化误差:在测试集上的误差称为“泛化误差”。
评价策略:哪一个模型的经验误差和泛化误差上相近又小
 
回归模型的评价指标 MSE (Mean Squared Error)叫做均方误差。 
这里的y是测试集上的输出。 
用 真实值-预测值 然后平方之后求和平均。
机器学习简单介绍

 模型优化

模型的优化可以从三个方面来进行:数据、算法和模型

数据(特征工程)
 - 对数据进行归一化(Normalization,又译作正规化、标准化)等操作。
 - 采用 Bootstrap 等采样方法处理有限的训练 / 测试数据,以达到更好的运算效果。
 - 根据业务进行特征选取:从业务角度区分输入数据包含的特征,并理解这些特征对结果的贡献。
 
调参(算法参数)
我们训练模型的目的就是为了得到模型对应公式中的若干参数。这些参数是训练过程的输出,并不需要我们来调。 除了这些参数外,还有一类被称为超参数的参数,例如用梯度下降方法学习 LR 模型时的步长(Alpha),用 BFGS 方法学习 Linear-chain CRF 时的权重(w)等。 
 
超参数是需要模型训练者自己来设置和调整的 
通过调参方法来减轻调参工作量,例如 Grid Search 等。 调参没有固定的规律可以遵循,往往有很多运气成分,但靠瞎猜基本不可能得出好的结果,还是要按一定的方法来做。
 
算法选择
1. 算法选对的,别选贵的。前沿的不一定是好的。 
2. 数据最重要,我丑话在先。