【入门科普】机器学习与深度学习

内容概要:这是一篇介绍机器学习与深度学习的入门文章,帮助初学者了解相应的知识架构。

我在刚开始学机器学习时,常会有这样的困惑:为什么有的地方在讲机器学习 ( Machine Learning ),有的在讲深度学习 ( Deep Learning )?领域内都在谈深度学习应用,我是不是应该赶紧学深度学习,机器学习还有必要学吗?为此,我写下这篇文章介绍这些知识点之间的联系,希望能帮助到有同样困惑的同学。觉得不错的话,请点赞支持我一下,谢谢!

注:本文的部分内容为文末列出参考书籍的学习笔记。如果您对此感兴趣、想了解更加详细全面的介绍,建议阅读参考书籍的第一章。

图1 AI机器学习深度学习
图1 AI、机器学习与深度学习

如图1所示,机器学习是人工智能的一个子领域,而深度学习又是机器学习的子领域之一。可以说,机器学习是基础,我们在机器学习中学到的一些分析方法,同样适用于深度学习,比如训练集、验证集和测试集的划分和使用。

那么,机器学习什么?是怎么学习呢?

机器从数据中学。数据可以是表格、图片,或是文本、语音。这种学习,也是和我们人类一样,尝试从已有的情况(数据)中找到解决问题的方法(比如发现规律),这样在遇见新情况(新数据)时,也能应对自如。

机器学习的解决目标、应用模型多种多样,我们可以从不同的角度对机器学习分类来看:

一、按目标变量是否有标记来划分

按照目标变量是否有标记,可以把机器学习分为有监督学习 ( Supervised Learning )、无监督学习 ( Unsupervised Learning )、强化学习 ( Reinforcement Learning ) 等,如图2所示。

图2机器学习知识体系
图2 机器学习知识体系

有监督学习和无监督学习的区别在哪呢?打个比方,这就像我们复习备考时,做模拟题有没有标准答案一样。有监督学习呢,是给出了模拟题的答案,就是说,训练集数据的目标变量有标记正确值,可以用于在训练中参考比对,从而改进模型;而无监督学习,只给了模拟题、没有标准答案,凭你自己的理解去判断,也就是说,此时训练集数据的目标变量也没有标记。还有极少数的半监督学习的情况,就是大部分训练集数据有标记,一小部分无标记。

强化学习则是在训练过程中,根据每一步行动得到的反馈,不断地调整策略,达到目标。它有点类似于有监督学习,但是,有监督学习直接围绕最终的目标来优化,相比之下,强化学习更像是把长期目标分割成了每一步的短期目标,对于每一步给出一个奖励或惩罚,进而调整策略,最后达到目标。赢了人类围棋冠军的 AlphaGo,就是采用的强化学习。

目前在实际中,有监督学习的应用广泛,毕竟有目标的学习更可控、结果更理想。有监督学习按待预测的目标变量是连续的还是离散的,可以分为回归 ( Regression ) 和分类 ( Classification ) 问题。回归问题的常见例子有:投资效益预测、房价预测,等等。分类问题的常见例子有:垃圾邮件智能过滤、疾病诊断(比如区分良性肿瘤和恶性肿瘤),等等。这里有人可能会说,垃圾邮件过滤我知道啊,不就是关键词过滤嘛,比如有“发票”、“贷款”等词就判定为垃圾邮件,这就是机器学习吗?并不是,这是传统的规则法。你是否注意过,其实骗子也在针对这些过滤规则不断调整词汇,比如出现“发x票”,“发+票“,“fa票”,等等变换格式。如果用传统的人工制定规则的方式,就需要不停添加规则,工作量大。而机器学习是通过统计规律等进行判定,可以根据新的数据来调整模型参数,从而灵活应对情况变化,不需要人工频繁修改代码和添加规则。

这里有一点要注意,同一个数据集,可能由于预测目标的不同,属于不同类型的问题。就拿股价预测问题来说,如果要预测这只股票明天的价格是多少?价格是个连续变量,这属于回归问题。可是如果只是预测这只股票明天是涨?是跌?涨或跌就是两类,这属于分类问题。因此,我们面对问题时,要做的第一件事就是明确问题目标,判断这个问题是有监督学习还是无监督学习,是分类还是回归问题。

如图2中所示,有监督学习的常用模型有:K最近邻 ( KNN )、线性回归(回归问题模型)/ 逻辑回归(不要被它的名字迷惑了,它是分类问题模型)、支持向量机 ( SVM )、决策树模型系列(包括随机森林、GBDT)、(大部分的)人工神经网络等。这里除了线性回归 / 逻辑回归是分别对应于回归和分类问题,其它模型两种问题都可以应用。

其中,人工神经网络 ( Artificial Neural Network, ANN ) 就与深度学习有关。人工神经网络由一个输入层、一个或多个隐藏层和一个输出层组成。如果一个神经网络中有两个以上的隐藏层,就可以称其为深度人工神经网络。随着添加层数的增加,神经网络模型的功能更强大,但是,在模型求解过程中会出现梯度消失等问题。为此,研究人员开发了相应的算法来训练深度神经网络,这就是深度学习的内容。深度学习现在是热门的研究方向,在图像识别、图像语义分割、语音识别、文本信息提取、自动摘要生成、还有推荐系统,等等中都取得了很好的效果。此外,在处理表格型数据时,也常常表现优异,与决策树模型(GBDT系列,如XGBoost)平分秋色。

无监督学习常用的有聚类,比如社交网络上的话题聚类,发现新热点。还可以应用于数据预处理,比如数据特征提取、数据压缩,这样可以减小运算量,加快模型训练速度。

在谈到机器学习时,第一种分类方式最为常见。我们平时看到的视频讲座、书籍都可以按这个角度分为几类,在搜索教材时可以留意相应的关键词:

1.关键词:”机器学习“/”统计学习“(机器学习要用到统计方法,从数据中获取信息)

这一类课程或书籍主要介绍有监督学习的模型、算法,无监督学习算法。

其中,深度学习/神经网络的知识会有介绍,毕竟是热门哈哈,但不是重点内容。

强化学习一般只作简要介绍。

2.关键词:“深度学习”/“神经网络”(因为深度学习主要就是研究深度神经网络的)

这一类课程或书籍详细介绍深度神经网络的理论和应用,尤其是在图像和自然语言处理 ( NLP ) 领域的应用。

3.关键词:“强化学习”

这一类课程或书籍详细讲解强化学习的理论和实践。

二、按训练时获取和使用训练集数据的量来划分

理想情况下,我们都是使用整个训练集来训练模型,然后应用于新数据,这就是线下学习方式(offline learning)。

但是,如果遇到以下情况,应该怎么办呢?

情况一、把模型配置应用到网上,不断有新数据进来。新的数据中可能会有新的变化规律,需要及时调整模型以更好拟合数据。此时,如果还是每次都使用全部的数据来重新训练模型,不仅训练速度慢,也影响更新频率,无法适应数据的快速变化。

情况二、数据量大,机器配置的内存空间不够,一次处理不了这么多数据。

这些情况下,就要用线上学习方式( online learning ) ,即把数据分成小份,每次用一小份来训练模型和更新模型参数。这样,不仅可以保证模型的更新速度,而且训练完的这一小份数据无需再使用,可以清除,腾出空间给新数据,这样也解决了数据存储空间的问题。

三、按机器的学习方式来划分:是凭记忆和经验还是找规律?

机器学习也有“笨”方法和巧方法。“笨”方法就是把训练集的数据全都”记“下,有新数据来时,参照训练集中与之相似(或相近的)数据来标记这个数据点。其实这种方法也不能说笨,这也是我们人类的一种本能反应。回想一下,我们在遇到一个新情况时,是不是也会先回想一下以前有没有类似的情况可以参考借鉴?这种方法叫做基于实例的学习 ( instance-based learning )。典型的例子就是 K 最近邻 ( KNN ),它根据与新数据点最邻近的 K 个训练集数据点,来求解判断新数据点的目标变量。巧方法呢,就是分析训练集数据的规律,建立一个合适的模型,把新数据代入模型中即可得到目标变量。这种方法叫做基于模型的学习 ( model-based learning ),常见的如线性 / 逻辑回归、SVM 、决策树模型、人工神经网络等等都属于这一类。

以上介绍了机器学习的知识架构,以及和深度学习的联系,欢迎交流和指正!

参考书籍:

1.Hands-On Machine Learning with Scikit-Learn, Keras , and TensorFlow,2nd Edition, by Aurélien Géron(O’Reilly)

2.Python Machine Learning,2nd Edition,by Sebastian Raschka, Vahid Mirjalili(PACKT)

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值