机器学习三要素之间的关系
模型
- 机器学习的目的——模型(Model)
- 机器学习训练的过程中所要学习的条件概率分布或者决策函数
策略
- 如何构造模型——策略(Strategy)
- 就是使用一种什么样的评价度量模型训练过程中的学习好坏的方法,同时根据这个方法去实施的调整模型的参数,以期望训练的模型将来对未知的数据具有最好的预测准确度
算法
- 模型的实现——算法(Algorithm)
- 是指模型的具体计算方法。它基于训练数据集,根据学习策略,从假设空间中选择最优模型,最后考虑用什么样的计算方法去求解这个最优模型
举个例子助于理解:
- 妈妈教孩子认字,那一个个的汉字就是数据,妈妈教孩子的过程就是策略,妈妈用的方法就是算法,孩子最后就成了一个能够认识不同字的模型
详解
- 首先每个汉字有不同的形态,这些偏旁、部首就是汉字的特征,妈妈给孩子讲解每个汉字的这些特征,让孩子认识,记住的过程就是策略。妈妈用的教育方法就是训练过程中使用到的算法,比如告诉孩子哪个汉字具体有哪些特征,什么样的特征是这个汉字,什么特征不是这个字,这就是监督学习过程,告诉孩子对错和判断的标准,并通过孩子的反馈不断地纠正孩子的错误来纠正孩子的认知,从而使得孩子能够不断的提高识字的准确程度,这个算法也就是监督学习算法
- 孩子经过妈妈的一番教导和不断地纠正错误(训练过程)最后终于有了自己相对稳定的判断(模型本身)可以识别不同的汉字了。但是还会有时认错字(误差),这就是训练过程不可避免的存在误差。即便是人本身也不可能事事都能百分之百做对、做正确,金无足赤,人无完人,机器亦是如此。
- 从上边的过程可以看出,妈妈教孩子识字的过程就是一个机器学习的过程,繁多的汉字作为训练的原始数据集,孩子就是已经定义好的模型结构,妈妈的教育过程就是一个有监督的数据训练的过程,孩子的反馈和妈妈的纠正属于算法执行过程,最终孩子学会了识记各种汉字,直白点孩子此时本身就是一个识别汉字的模型
生成式
- 就是生成 (数据的分布) 的模型
- 生成式求的是 (联合概率 即 P(X,Y) )
- 直接对 联合分布概率< P(X,Y) > 进行建模
- 常见生成式模型:隐马尔可夫模型HMM、朴素贝叶斯模型、高斯混合模型GMM等
- 关注数据是如何产生的,寻找的是数据分布模型
判别式
- 判别 (数据输出量) 的模型
- 判别式求的是 (后验概率 即 P(Y|X) )
- 直接对 条件概率< P(Y|X) > 进行建模
- 常见判别模型:线性回归、决策树、支持向量机SVM、k近邻、神经网络等
- 关注的数据的差异性,寻找的是分类面
异点
- 由生成式模型可以产生判别式模型
- <生成式 —> 判别式>
- 但是由判别式模式没法形成生成式模型
- <判别式 —<> 生成式>
同点
- 都是进行预测的模型
- 都是通过概率建立模型
- 都属于监督学习的模型
举个例子:
- 假如你的任务是识别一个语音属于哪种语言
- 对面一个人走过来,和你说了一句话
- 你需要识别出她说的到底是汉语、英语还是法语等。那么你可以有两种方法达到这个目的:
1. 学习每一种语言,你花了大量精力把汉语、英语和法语等都学会了
2. 我指的学会是你知道什么样的语音对应什么样的语言
3. 然后再有人过来对你说,你就可以知道他说的是什么语音
1. 不去学习每一种语言,你只学习这些语言之间的差别
2. 然后再判断(分类)
3. 意思是指我学会了汉语和英语等语言的发音是有差别的,我学会这种差别可以啦
- 第一种方法就是生成式的方法
- 第二种方法就是判别式的方法
神经网络
- 图示如下:
- neth1 = i1 * w1 + i2 * w2 + 1 * b1
- neth2 = i1 * w3 + i2 * w4 + 1 * b1
- outh1 = 1 / (1 + exp(-neth1))
- outh2 = 1 / (1 + exp(-neth2))
- neto1 = outh1 * w5 + outh2 * w6 + 1 * b2
- neto2 = outh1 * w7 + outh2 * w8 + 1 * b2
- outo1 = 1 / (1 + exp(-neto1))
- outo2 = 1 / (1 + exp(-neto2))
矩阵表示:—>
行:输入值的元素个数
列:隐藏神经元的个数