1. 机器学习概述

机器学习概述

随着大数据的发展和计算机运算能力的不断提升,人工智能在最近几年取得了令人瞩目的成就。目前在很多行业中,都有企业开始应用机器学习技术,从而获取更深刻的洞察,为企业经营或日常生活提供帮助,提升产品服务水平。机器学习已经广泛应用于数据挖掘、搜索引擎、电子商务、自动驾驶、图像识别、量化投资、自然语言处理、计算机视觉、医学诊断、信用卡欺诈检测、证券金融市场分析、游戏和机器人等领域,机器学习相关技术的进步促进了人工智能在各个领域的发展。

  • 细分客户并为每个群体找到最佳的营销策略。
  • 根据类似客户的购买记录,为每个客户推荐产品。
  • 检测哪些交易可能是欺诈性的。
  • 预测明年的收入。

学习路线图

  • 什么是机器学习,它试图解决什么问题,以及其系统的主要类别和基本概念
  • 典型机器学习项目中的步骤
  • 通过将数据与模型进行拟合来学习
  • 优化成本函数
  • 处理、清结和准备数据
  • 选择和工程化特征
  • 选择模型并使用交叉验证调整超参数
  • 机器学习的挑战,特别是欠拟合和过拟合(偏差/方差的权衡)
  • 最常见的学习算法:线性和多项式回归,逻辑回归,k-近邻算法,支持向量机,决策树,随机森林和集成方法
  • 降低训练数据的维度以应对"维度的诅咒"
  • 其他无监督学习技术,包括聚类,密度估计和异常检测

机器学习简介

机器学习(Machine Learning)是计算机科学的子领域,也是人工智能的一个分支和实现方式。汤姆·米切尔(TomMitchell)在1997年出版的Machine Learning一书中指出,机器学习这门学科所关注的是计算机程序如何随着经验积累,自动提高性能。他同时给出了形式化的描述:对于某类任务T和性能度量P,如果一个计算机程序在T上以P衡量的性能随着经验E而自我完善,那么就称这个计算机程序在从经验E学习。

机器学习理论基础

机器学习主要的理论基础涉及概率论、数理统计、线性代数、数学分析、数值逼近、最优化理论和计算复杂理论等,其核心要素是数据、算法和模型。

机器学习、人工智能和数据挖掘

目前人工智能很热门,但是很多人容易将人工智能与机器学习混淆。此外,数据挖掘、人工智能和机器学习之间的关系也容易被混淆。从本质上看,数据科学的目标是通过处理各种数据促进人们的决策,机器学习的主要任务是使机器模仿人类的学习,从而获得知识。而人工智能借助机器学习和推理最终是形成具体的智能行为。

什么是人工智能

人工智能是让机器的行为看起来像人所表现出的智能行为一样,这是由麻省理工学院的约翰·麦卡锡在1956年的达特茅斯会议上提出的,字面上的意思是为机器赋予人的智能。人工智能的先驱们希望机器具有与人类似的能力:感知、语言、思考、学习、行动等。最近几年人工智能风靡全球的主要原因就是,随着机器学习的发展,人们发现机器具有了一定的感知(图像识别)和学习等方面的能力,很容易认为目前已经达到了人工智能发展过程中的奇点。实际上,人工智能包括计算智能、感知智能和认知智能等层次,目前人工智能还介于前两者之间。

由于目前人工智能与人类智能相比较,二者实现的原理并不相同,特别是人脑对于信息的存储和加工过程尚未被研究清楚,与目前主流的深度学习理论存在较大的基础差异。因此,目前人工智能所处的阶段还在“弱人工智能”(Narrow AI)阶段,距离“强人工智能”(General AI)阶段还有较长的路要走。例如,目前人类对于知识的获取和推理并不需要大量的数据进行反复迭代学习,只需要看一眼自行车的照片就能大致区分出各式各样的自行车。因此,要达到强人工智能的阶段可能要在计算机基础理论方面进行创新,实现类人脑的结构设计。

通常来说,人工智能是使机器具备类似人类的智能性,人工智能的典型系统包括以下几个方面。

(1)博弈游戏(如深蓝、Alpha Go、Alpha Zero等)

(2)机器人相关控制理论(运动规划、控制机器人行走等)

(3)机器翻译

(4)语音识别

(5)计算机视觉系统

(6)自然语言处理(自动程序)

什么是数据挖掘

数据挖掘使用机器学习、统计学和数据库等方法在相对大量的数据集中发现模式和知识,它涉及数据预处理、模型与推断、可视化等。数据挖掘包括以下几类常见任务。

  1. 异常检测

    异常检测(anomaly detection)是对不符合预期模式的样本、事件进行识别。异常也被称为离群值、偏差和例外等。异常检测常用于入侵检测、银行欺诈、疾病检测、故障检测等。

  2. 关联分析

    关联规则学习(Association rule learning)是在数据库中发现变量之间的关系(强规则)。例如,在购物篮分析中,发现规则{面包,牛奶}→{酸奶},表明如果顾客同时购买了面包和牛奶,很有可能也会买酸奶,利用这些规则可以进行营销。

  3. 聚类

    聚类是一种探索性分析,在未知数据结构的情况下,根据相似性把样本分为不同的簇或子集,不同簇的样本具有很大的差异性,从而发现数据的类别与结构。

  4. 分类

    分类是根据已知样本的某些特征,判断一个新样本属于哪种类别。通过特征选择和学习,建立判别函数以对样本进行分类。

  5. 回归

    回归是一种统计分析方法,用于了解两个或多个变量之间的相关关系,回归的目标是找出误差最小的拟合函数作为模型,用特定的自变量来预测因变量的值。

数据挖掘在大数据相关技术的支持下,随着数据存储(非关系型NoSQL数据库)、分布式数据计算(Hadoop/Spark等)、数据可视化等技术的发展,数据挖掘对事务的理解能力越来越强,如此多的数据堆积在一起,增加了对算法的要求,所以数据挖掘一方面要尽可能获取更多、更有价值、更全面的数据,并从这些数据中提取价值。

数据挖掘在商务智能方面的应用较多,特别是在决策辅助、流程优化、精准营销等方面。广告公司可以使用用户的浏览历史、访问记录、点击记录和购买信息等数据,对广告进行精准推广。利用舆情分析,特别是情感分析可以提取公众意见来驱动市场决策。例如,在电影推广时对社交评论进行监控,寻找与目标观众产生共鸣的元素,然后调整媒体宣传策略迎合观众口味,吸引更多人群。

机器学习、人工智能与数据挖掘的关系

机器学习是人工智能的一个分支,作为人工智能的核心技术和实现手段,通过机器学习的方法解决人工智能面对的问题。机器学习是通过一些让计算机可以自动“学习”的算法,从数据中分析获得规律,然后利用规律对新样本进行预测。

机器学习是人工智能的重要支撑技术,其中深度学习就是一个典型例子。深度学习的典型应用是选择数据训练模型,然后用模型做出预测。例如,博弈游戏系统(Deep Blue)重于探索和优化未来的解空间(Solution Space),而深度学习则是在博弈游戏算法(例如Alpha Go)的开发上付诸努力,取得了世人瞩目的成就。

机器学习算法

机器学习算法是一类从数据中自动分析获得规律,并利用规律对未知数据进行预测的方法,可以分成下面几种类别:

  • 是否在人类监督下训练,根据训练期间接受的监督数量和监督类型:监督学习、无监督学习、半监督学习、强化学习
  • 是否可以动态地进行增量学习:在线学习和批量学习

监督学习

是从有标记的训练数据中学习一个模型,然后根据这个模型对未知样本进行预测。其中,模型的输入是某一样本的特征,函数的输出是这一样本对应的标签。常见的监督学习算法包括回归分析统计分类。监督学习包括分类和数字预测两大类别包括:

  • K-近邻算法
  • 线性回归
  • 逻辑回归
  • 支持向量机(SVM)
  • 决策树和随机森林
  • 神经网络

无监督学习

又称为非监督式学习,它的输入样本并不需要标记,而是自动从样本中学习特征实现预测。常见的无监督学习算法有:

  • 聚类:
    • k-均值算法
    • DBSCAN
    • 分层聚类分析(HCA)
  • 异常检测和新颖性检测
    • 单类SVM
    • 孤立森林
  • 可视化和降维
    • 主成分分析(PCA)
    • 核主成分分析
    • 局部线性嵌入(LLE)
    • t-分布随机近邻嵌入(t-SNE)
  • 关联规则学习
    • Apriori
    • Eclat

半监督学习

有监督学习和无监督学习算法的结合,部分已标记的数据

  • 深度信念网络(DBN)

强化学习

是通过观察来学习做成什么样的动作。每个动作都会对环境有所影响,学习对象根据观察到的周围环境的反馈来做出判断。强化学习强调如何基于环境而行动,以取得最大化的预期利益。其灵感来源于心理学中的行为主义理论,即有机体如何在环境给予的奖励或惩罚的刺激下,逐步形成对刺激的预期,产生能获得最大利益的习惯性行为。

根据机器学习的任务分类,可以分为回归、分类、聚类三大常见机器学习任务。某些机器学习算法可能同时属于不同的分类,如深度学习算法可能存在于监督学习,也可能用于强化学习,在实践过程中可依据实际需要进行选择。

批量学习

系统无法进行增量学习,即必须使用所有可用数据进行训练,这需要大量时间和计算资源,所以通常都是离线完成。离线学习就是先训练系统,然后将其投入生产环境,这时学习过程停止,它只是将其所学到的应用出来。如果希望批量学习系统学习新数据,需要在完整数据集的基础上重新训练系统的新版本,然后停用旧系统,用新系统取而代之。整个训练、评估和启动机器学习系统的过程可以轻易地实现自动化,所以即使时候批量学习系统也能够适应 变化。只是需要不断地更新数据,并根据需要频繁地训练系统的新版本。每次都使用完整数据集进行训练可能需要花好几个小时。

在线学习

循序渐进地给系统提供训练数据,逐步积累学习成果。这种提供数据的方式可以是单独的,也可以采用小批量的小组数据来进行训练。每一步学习都很快速并且便宜,这样系统可以根据飞速写入的最新数据进行学习。

机器学习的主要挑战

  1. 训练数据的数量不足
  2. 训练数据不具代表性
  3. 低质量数据
  4. 无关特征
  5. 过拟合训练数据
  6. 欠拟合训练数据

机器学习的基本问题

1)回归(Regression)问题:根据已知的输入和输出寻找某种性能最佳的模型,将未知输出的输入代入模型,得到连续的输出。

2)分类(Classification)问题:根据已知的输入和输出寻找某种性能最佳的模型,将未知输出的输入代入模型,得到离散的输出。

3)聚类问题:根据已知输入的相似程度,将其划分为不同的群落。

4)降维问题:在性能损失尽可能小的前提下,降低数据的复杂度。

机器学习的一般流程

机器学习的一般流程包括确定分析目标、收集数据、整理数据、预处理数据、训练模型、评估模型、优化模型、上线部署等步骤。首先要从业务的角度分析,然后提取相关的数据进行探查,发现其中的问题,再依据各算法的特点选择合适的模型进行实验验证,评估各模型的结果,最终选择合适的模型进行应用。

  1. 目标分析

    应用机器学习解决实际问题,首先要明确目标任务,这是机器学习算法选择的关键。目标分析包括需求分析和类型分析两种。需求分析是指在创建系统或产品前,确定新系统的目的、范围、定义和功能的步骤。机器学习中的需求分析是指确定机器学习的使用场景,需要完成的业务和解决的技术问题。类型分析师选定机器学习使用的算法种类的重要步骤,为之后的算法选取与模型训练起到铺垫作用。

  2. 收集数据

    数据收集是机器学习中最重要的一个步骤,没有数据,机器学习便无从谈起。数据准备可细分为数据收集、数据探索和数据清洗。数据要有代表性并尽量覆盖领域,否则容易出现过拟合欠拟合。对于分类问题,如果样本数据不平衡,不同类别的样本数量比例过大,都会影响模型的准确性。还要对数据的量级进行评估,包括样本量和特征数,可以估算出数据以及分析对内存的消耗,判断训练过程中内存是否过大,否则需要改进算法或使用一些降维技术,或者使用分布式机器学习技术。

  3. 整理预处理

    数据预处理分为数据质量校验、数据分布于趋势探查、数据清洗、特征工程

    获得数据以后,不必急于创建模型,可先对数据进行一些探索,了解数据的大致结构、数据的统计信息、数据噪声以及数据分布等。在此过程中,为了更好地查看数据情况,可使用数据可视化方法或数据质量评价对数据质量进行评估。

    通过数据探索后,可能发现不少问题,如缺失数据、数据不规范、数据分布不均衡、数据异常、数据冗余等。这些问题都会影响数据质量。为此,需要对数据进行预处理,这部分工作在机器学习中非常重要,特别是在生产环境中的机器学习,数据往往是原始、未加工和处理过的,数据预处理常常占据整个机器学习过程的大部分时间。

    特征工程是机器学习中一个重要的步骤,会直接影响机器学习的效果,通常需要大量的时间。特征工程是一个将原始数据中的特征进行缩放、筛选和构造的过程,特征需要能够更好地描述原始数据的状况,从而提供模型的训练速度于拟合效果。特征工程包含特征缩放、特征选择和特征构造等过程。特征缩放包括数据标准化、独热编码、和数据离散化。特征选择按照特种重要性对特征进行排序,或依据具体的业务需求从特征集合中挑选一组最具有统计意义的特征子集,从而达到降维的效果。特征构造是在原始数据中原有特征的基础上,构建新的更适合于机器学习算法的特征。特征构造常用于文本分析、图像分析和用户行为分析等领域。

  4. 数据建模

    应用特征选择方法,可以从数据中提取出合适的特征,并将其应用于模型中得到较好的结果。筛选出显著特征需要理解业务,并对数据进行分析。特征选择是否合适,往往会直接影响模型的结果,对于好的特征,使用简单的算法也能得出良好、稳定的结果。特征选择时可应用特征有效性分析技术,如相关系数、卡方检验、平均互信息、条件熵、后验概率和逻辑回归权重等方法。

    训练模型前,一般会把数据集分为训练集和测试集,或对训练集再细分为训练集和验证集,从而对模型的泛化能力进行评估。

    模型本身并没有优劣。在模型选择时,一般不存在对任何情况都表现很好的算法,这又称为“没有免费的午餐”原则。因此在实际选择时,一般会用几种不同方法来进行模型训练,然后比较它们的性能,从中选择最优的一个。不同的模型使用不同的性能衡量指标。

  5. 模型训练

    在模型训练过程中,需要对模型超参进行调优,如果对算法原理理解不够透彻,往往无法快速定位能决定模型优劣的模型参数,所以在训练过程中,对机器学习算法原理的要求较高,理解越深入,就越容易发现问题的原因,从而确定合理的调优方案。

  6. 模型评估

    使用训练数据构建模型后,需使用测试数据对模型进行测试和评估,测试模型对新数据的泛化能力。如果测试结果不理想,则分析原因并进行模型优化,如采用手工调节参数等方法。如果出现过拟合,特别是在回归类问题中,则可以考虑正则化方法来降低模型的泛化误差。可以对模型进行诊断以确定模型调优的方向与思路,过拟合、欠拟合判断是模型诊断中重要的一步。常见的方法有交叉验证、绘制学习曲线等。过拟合的基本调优思路是增加数据量,降低模型复杂度。欠拟合的基本调优思路是提高特征数量和质量,增加模型复杂度。

    误差分析是通过观察产生误差的样本,分析误差产生的原因,一般的分析流程是依次验证数据质量、算法选择、特征选择、参数设置等,其中对数据质量的检查最容易忽视,常常在反复调参很久后才发现数据预处理没有做好。一般情况下,模型调整后,需要重新训练和评估,所以机器学习的模型建立过程就是不断地尝试,并最终达到最优状态,从这一点看,机器学习具有一定的艺术性。

    在工程实现上,提升算法准确度可以通过特征清洗和预处理等方式,也可以通过模型集成的方式。一般情况下,直接调参的工作不会很多。毕竟大量数据训练起来很慢,而且效果难以保证。

  7. 模型应用

    模型应用主要与工程实现的相关性比较大。工程上是结果导向,模型在线上运行的效果直接决定模型的好坏,不单纯包括其准确程度、误差等情况,还包括其运行的速度(时间复杂度)、资源消耗程度(空间复杂度)、稳定性是否可接受等方面。

你可能感兴趣的:(机器学习,机器学习,人工智能)