《深度学习-Java语言实现》学习笔记(1)


监督学习和无监督学习

  • 监督学习
  • 无监督学习
  • 支持向量机
  • 隐马尔科夫模型
  • 神经网络
  • 逻辑回归
  • 增强学习

机器学习应用流程

  • 准备任务
  • 步骤
  • 测试不佳原因
  • K折交叉验证

参阅

一、监督学习和无监督学习

监督学习:机器学习使用的数据集加入了标签(有标数据)。

监督学习中,机器使用包含输入和输出数据的标签数据,并确定与之相适应的模式方法模式进行分类结合起来完成工作。当机器接收到未知数据时,它会判断可以应用哪一种模式,并依据标签数据——过去的正确答案,对新的数据进行分类。

监督学习需要人们预先准备正确的数据,机器才能展开学习

无监督学习:机器学习使用未标记的数据。

无监督学习中,只需要提供输入的数据即可。机器学习的是数据集中隐含和包含的模式和规则。无监督学习的目标是掌握数据的形态。它包含了一个名为“聚类(Clustering)”的过程,它将一组具有共同特征的数据划分到一起,或者抽象出其中的关联规则。有著名案例——通过无监督学习,人们发现大量的人在购买啤酒的同时会购买尿布。

  
支持向量机是机器学习中最流行的监督学习方法。使用支持向量机方法时,它会在每类数据中寻找与其他类最接近的数据,并将其标记为标准,决策边界就通过这些标准定义,这样每个标记数据与边界的欧几里德距离之和最大。这些标记数据被称为支持向量(Support Vector)。简而言之,支持向量机将决策边界设定到了一个中间位置,使得每种模式到其的距离都最远

支持向量机中最有价值的一种技术:核技巧(Kernel Trick)或称为核方法(Kernel Method)。该技术将低维度无法线性分类的数据,映射到更高维的空间,之后就能毫不费力地以线性方式对其进行分类。

局限性:将数据映射到高维空间计算量会增大,随着计算复杂度的增大所消耗的时间也迅速增大。

  
隐马尔可夫模型是一种无监督训练方法,它假设所有的数据都遵循马尔可夫过程(Markov Process)。马尔可夫过程是一种随机过程,它假设未来状态只与当前值相关,而与过去的状态无关。隐马尔可夫模型主要用于预测只有一个可观察序列可见时,该观察对象可能的状态

  
神经网络刚出来时是一种监督学习,后来涌现出来了很多无监督学习。其它机器学习算法都采取基于概率或者统计的方式,神经网络则独辟蹊径,试图模拟人类大脑的结构。

  
逻辑回归是变量服从伯努利分布的一种统计回归模型。不同于支持向量机和神经网络都是分类模型,逻辑回归是一种回归模型,但同样属于监督学习

  
增强学习(有的分类方法将增强学习划分到了无监督学习)

  
  
  

二、机器学习应用流程

(1)准备任务

构建分类器解决问题前需要准备以下任务:

  • 确定哪一种机器学习方法适用于你的问题。
  • 确定该采用什么特征进行分析。
  • 确定分析模型的参数设置是什么。

  

(2)步骤

机器学习的学习过程可以粗略划分为两个步骤:

 1.训练
 2.测试

需要注意的是要将原始数据划分为两个分离的部分:训练数据集和测试数据集。避免出现过拟合

如果你将数据集划分为两部分后,第一部分作为训练数据集。为了得到更为精确的预测率,我们需要为这部分训练数据集创建恰当的特征。这种特征工程一定程度上取决于人的经验或者直觉。每一种机器学习方法都有各自的特征数据类型格式,因为每一种方法其模型的理论和公式各不相同。同时我们还需要在数据与模型的兼容性方面多下功夫。

  

(3)测试不佳原因:

将模型训练好了后即可进行测试。使用机器学习时,训练集下预测效果很好,但是测试集中表现不佳的模式有两种:

1.第一种情况是由于将无意义的干扰数据混到训练数据集引发了不正确的优化。问题可能源于对误差允许范围的调整。训练数据集中的数据进行了正确的分类,但由于训练数据集中存在着噪音,它们也进行了分类,而在测试数据集中这些噪音可能并不存在,从而影响测试的预测准确率

2.第二种情况是只依据训练数据集中特有的数据进行分类而导致的无效优化。(测试集中无该数据)

  

(4)K折交叉验证法

解决这样过拟合问题可以用K折交叉验证。从一开始就将数据划分成K份,取其中一份作为测试数据集,剩余K-1份作为训练数据集。对K个数据集分别做验证,共进行K次,预测的精确度由这K次验证的结果取平均值确定。

  
  
  

三、参阅

《深度学习-Java语言实现》- [日]巢龙悠辅(Yusuke Sugomori)著 陈澎 王磊 陆明 译

你可能感兴趣的:(《深度学习-Java语言实现》学习笔记(1))