赞
踩
学习笔记。杨正洪;郭良越;刘玮. 人工智能与大数据技术导论 清华大学出版社.Kindle版本.
人工智能是一门利用计算机模拟人类智能行为科学的统称,它涵盖了训练计算机使其能够完成自主学习、判断、决策等人类行为的范畴。AI是人工智能的英文ArtificialIntelligence的首字母的组合,它是当前人类所面对的最为重要的技术变革。
人工智能、机器学习、深度学习是我们经常听到的三个热词。关于三者的关系,简单来说,机器学习是实现人工智能的一种方法,深度学习是实现机器学习的一种技术(见下图) 机器学习使计算机能够自动解析数据、从中学习,然后对真实世界中的事件做出决策和预测;深度学习是利用一系列“深层次”的神经网络模型来解决更复杂问题的技术!
深度学习是机器学习的重要分支,作为新一代的计算模式,深度学习力图通过分层组合多个非线性函数来模拟人类神经系统的工作过程,其技术的突破掀起了人工智能的新一轮发展浪潮。深度学习的人工神经网络算法与传统计算模式不同,本质上是多层次的人工神经网络算法,即模仿人脑的神经网络,从最基本的单元上模拟了人类大脑的运行机制,它能够从输入的大量数据中自发地总结出规律,再举一反三,应用到其他的场景中。因此,它不需要人为地提取所需解决问题的特征或者总结规律来进行编程。
深度学习和机器学习是包含关系,深度学习是机器学习的一个子类。在传统的介绍机器学习算法的课程中,绝大多数会提到神经网络这个模型,而深度学习其实就是有多个隐藏层的神经网络。对于初学者来说,可以将深度学习理解为“多层神经网络”。严格来说,深度学习是一种学习的模式,是指采用具有“深度”的模型进行学习,其本身并不是一个模型。多层神经网络是具有“深度”特点的一个学习模型,它实际上是深度学习的一种形式。
我们通常把表 4- 2这样的样本数据叫作数据集 (dataset),该数据集以结构化的列表形式呈现。数据集由若干样本( instances 或 examples)组成,每一个样本是一个观测数据的记录( Records),或者叫观测值( Observances),在表格中以行 (Row)的形式体现。在机器学习中,一行、一条记录和一个样本的概念可以视为是等价的。在这个情景中,我们关注的是顾客给予小费的情况,小费这一列是我们关注的结果( outcome),我们可以把这个变量称为因变量 (dependent variable,也叫函数值),在机器学习领域中通常叫作目标 (target)或标签 (label),也有人把它称为响应值( response)。以上几个概念可以视为一个意思,在本书中一般用目标来指代这个变量,对应的数据称为标签数据。不同于“小费”,表中其他列表示的变量在这个问题中是用来解释和预测“小费”的,我们把这些变量叫作自变量( independent variables),在机器学习领域通常用特征( Features)这个术语来表示。特征和目标在表中通常以列 (column)的形式呈现。整个关系如 4- 7所示 :
并不是所有机器学习任务的数据集都带有标签数据,我们把具有标签数据的学习任务叫作监督式学习 (Supervised Learning)。当目标变量是连续型(比如温度、价格)的时候,我们把这类问题叫作回归任务( Regression Task);当目标变量是离散型(例如某种植物是否具有毒性、贷款人是否会违约、员工所属部门类别)的时候,我们遇到的问题则是分类任务( Classification Task)。回归问题和分类问题是监督式学习的两大类型。
有时我们遇到的样本数据并没有标签数据,我们把这个问题叫作非监督式学习 (Unsupervised Learning)。非监督式学习虽然没有标签数据,但我们仍然可以挖掘特征数据的信息进行分析,聚类( Clustering)就是其中最常见的一种,它根据样本数据分布的特点将数据分成几个类。我们可以把机器学习任务按图 4- 8进行分类:
#
强化学习是基于“行为-反馈”的自我学习机制。所谓反馈,是一种基于行动对学习机的奖励。学习机以最大化奖励为目标,不断改进“行动”,从而适应环境。强化学习与监督式学习的主要区别是,前者是完全靠自己的经历去学习,没有人告知学习机正确的答案,“强化”的信号是对学习机行动的反馈;而后者则是有人在监督学习机。
迁移学习指的是将已经训练好的参数提供给新的模型用作训练。现实中很多机器学习问题是存在相关性的。比如在图像识别中,识别狗和识别哈士奇,虽然具体任务不同,但它们具有相似性,用于识别狗的模型学习到的参数可以分享给识别哈士奇的任务,使得后者可以“从半路开始”,而不是从零开始学习参数,大大减少了学习时间。
在机器学习任务中,我们通常将数据集分成三部分:训练集(TrainingSet)、验证集(ValidationSet)和测试集(TestSet)。下面介绍这三个概念。
训练集和测试集的概念相对好理解。训练集顾名思义是用来训练的,机器使用训练集来学习样本。而测试集用来检验模型的效果。就像我们在学校学习功课,训练集如同教科书中的题库,测试集相当于考试试卷。我们通过“刷题库”获得知识,从而在考试中取得优异的成绩。为什么要建立测试集呢?不直接用训练集进行测试的原因是,模型是用训练集进行学习的,倾向于尽可能拟合训练集数据的特性,因此在训练集上的测试效果通常会很好,但在没有见过的数据集上表现效果可能会明显下降,这个现象叫作过拟合 (Overfitting)。
验证集是用来调参的,可以先将调参理解为调整模型。验证集的作用是比较我们所尝试的多个模型,从中选择表现最好的一个。这个任务仅通过测试集其实也能实现,很多人会直接把测试集当作验证集来选择和优化模型,从而将测试集和验证集的概念混为一谈。但严格来说,验证集的单独存在是必要的。测试集用来衡量一个完整建好的模型,意味着这个模型在之前就被认定为已经调整到最优,而这个优化的过程就是通过验证集实现的。如果我们延续上文中对训练集和测试集的比喻,验证集就相当于考前的模拟测试。
一个完整的任务流程大致可分为如图4-9所示的6个步骤。注意这个流程只是一般的思路,具体问题会有各自的差异和侧重。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。