人工智能的浪潮正在席卷全球,这些得益于数据量的上涨、运算力的提升和机器学习新算法(深度学习)的出现。机器学习是一种实现人工智能的方法,深度学习是一种实现机器学习的重要技术之一,甚至有人认为“深度学习最终可能会淘汰掉其他所有机器学习算法”。
为了帮助大家更好帮助大家学习这些新技术,小遍整理了相关的学习资料,希望这些资料对刚入门的同行有所帮助。
一、人工智能、机器学习和深度学习的区别?
机器学习:一种实现人工智能的方法
机器学习最基本的做法,是使用算法来解析数据、从中学习,然后对真实世界中的事件做出决策和预测。与传统的为解决特定任务、硬编码的软件程序不同,机器学习是用大量的数据来“训练”,通过各种算法从数据中学习如何完成任务。
举个简单的例子,当我们浏览网上商城时,经常会出现商品推荐的信息。这是商城根据你往期的购物记录和冗长的收藏清单,识别出这其中哪些是你真正感兴趣,并且愿意购买的产品。这样的决策模型,可以帮助商城为客户提供建议并鼓励产品消费。
机器学习直接来源于早期的人工智能领域,传统的算法包括决策树、聚类、贝叶斯分类、支持向量机、EM、Adaboost等等。从学习方法上来分,机器学习算法可以分为监督学习(如分类问题)、无监督学习(如聚类问题)、半监督学习、集成学习、深度学习和强化学习。
传统的机器学习算法在指纹识别、基于Haar的人脸检测、基于HoG特征的物体检测等领域的应用基本达到了商业化的要求或者特定场景的商业化水平,但每前进一步都异常艰难,直到深度学习算法的出现。
深度学习:一种实现机器学习的技术
深度学习本来并不是一种独立的学习方法,其本身也会用到有监督和无监督的学习方法来训练深度神经网络。但由于近几年该领域发展迅猛,一些特有的学习手段相继被提出(如残差网络),因此越来越多的人将其单独看作一种学习的方法。
最初的深度学习是利用深度神经网络来解决特征表达的一种学习过程。深度神经网络本身并不是一个全新的概念,可大致理解为包含多个隐含层的神经网络结构。为了提高深层神经网络的训练效果,人们对神经元的连接方法和激活函数等方面做出相应的调整。其实有不少想法早年间也曾有过,但由于当时训练数据量不足、计算能力落后,因此最终的效果不尽如人意。
深度学习摧枯拉朽般地实现了各种任务,使得似乎所有的机器辅助功能都变为可能。无人驾驶汽车,预防性医疗保健,甚至是更好的电影推荐,都近在眼前,或者即将实现。
三者的区别和联系
机器学习是一种实现人工智能的方法,深度学习是一种实现机器学习的技术。我们就用最简单的方法——同心圆,可视化地展现出它们三者的关系。
人工智能、机器学习、深度学习三者关系示意图
二、机器学习路线图
1)机器学习预备知识:
1.了解 Python Numpy 模块:Python Numpy Tutorial
2.学习相关数学基础知识:
-
了解概率论里的条件概率和贝叶斯定理:贝叶斯推断及其互联网应用(一):定理简介;
-
了解线性代数中向量、矩阵的基本运算;
-
了解导数和偏导数运算:微积分求导数的链式法则。
(注:超链见原文连接)
2)机器学习算法工程师技能图
三、深度学习学习技能树
1、深度学习预备知识:
①.Deep Learning |Coursera的 1-3 门课偏理论
②.翻阅《机器学习》(周志华著)前 2 章,了解机器学习的基本概念;翻阅《数学之美》 (吴军著)第 2-5 章,了解自然语言处理的重要概念;
2、深度学习技能图
四、机器学习算法工程师面试问题
-
你在研究/项目/实习经历中主要用过哪些机器学习/数据挖掘的算法?
-
你熟悉的机器学习/数据挖掘算法主要有哪些?
-
你用过哪些机器学习/数据挖掘工具或框架?
-
基础知识
-
无监督和有监督算法的区别?
-
SVM 的推导,特性?多分类怎么处理?
-
LR 的推导,特性?
-
决策树的特性?
-
SVM、LR、决策树的对比?
-
GBDT 和 决策森林 的区别?
-
如何判断函数凸或非凸?
-
解释对偶的概念。
-
如何进行特征选择?
-
为什么会产生过拟合,有哪些方法可以预防或克服过拟合?
-
介绍卷积神经网络,和 DBN 有什么区别?
-
采用 EM 算法求解的模型有哪些,为什么不用牛顿法或梯度下降法?
-
用 EM 算法推导解释Kmeans。
-
用过哪些聚类算法,解释密度聚类算法。
-
聚类算法中的距离度量有哪些?
-
如何进行实体识别?
-
解释贝叶斯公式和朴素贝叶斯分类。
5.开放问题
-
给你公司内部群组的聊天记录,怎样区分出主管和员工?
-
如何评估网站内容的真实性(针对代刷、作弊类)?
-
深度学习在推荐系统上可能有怎样的发挥?
-
路段平均车速反映了路况,在道路上布控采集车辆速度,如何对路况做出合理估计?采集数据中的异常值如何处理?
-
如何根据语料计算两个词词义的相似度?
-
在百度贴吧里发布 APP 广告,问推荐策略?
-
如何判断自己实现的 LR、Kmeans 算法是否正确?
6 . 答题思路
6.1 用过什么算法?
-
最好是在项目/实习的大数据场景里用过,比如推荐里用过 CF、LR,分类里用过 SVM、GBDT;
-
一般用法是什么,是不是自己实现的,有什么比较知名的实现,使用过程中踩过哪些坑;
-
优缺点分析。
6.2 熟悉的算法有哪些?
-
基础算法要多说,其它算法要挑熟悉程度高的说,不光列举算法,也适当说说应用场合;
-
面试官和你的研究方向可能不匹配,不过在基础算法上你们还是有很多共同语言的,你说得太高大上可能效果并不好,一方面面试官还是要问基础的,另一方面一旦面试官突发奇想让你给他讲解高大上的内容,而你只是泛泛的了解,那就傻叉了。
6.3 用过哪些框架/算法包?
-
主流的分布式框架如Hadoop,Spark,Graphlab,Parameter Server 等择一或多使用了解;
-
通用算法包,如 mahout,scikit,weka 等;
-
专用算法包,如 opencv,theano,torch7,ICTCLAS 等。
7. 基础知识
7.1个人感觉高频话题是 SVM、LR、决策树(决策森林)和聚类算法,要重点准备;
7.2算法要从以下几个方面来掌握
-
产生背景,适用场合(数据规模,特征维度,是否有 Online 算法,离散/连续特征处理等角度);
-
原理推导(最大间隔,软间隔,对偶);
-
求解方法(随机梯度下降、拟牛顿法等优化算法);
-
优缺点,相关改进;
-
和其他基本方法的对比;
7.3不能停留在能看懂的程度,还要
-
对知识进行结构化整理,比如撰写自己的 cheet sheet,我觉得面试是在有限时间内向面试官输出自己知识的过程,如果仅仅是在面试现场才开始调动知识、组织表达,总还是不如系统的梳理准备;
-
从面试官的角度多问自己一些问题,通过查找资料总结出全面的解答,比如如何预防或克服过拟合。
五.学习建议:
机器学习和深度学习有一定的学习难度,要想在竞争中脱颖而出,就必须做到
l 保持学习热情,关心热点;
l 深入学习,会用,也要理解;
l 在实战中历练总结;
l 积极参加学术界、业界的讲座分享,向牛人学习,与他人讨论。
编辑&整理:数据小咖End
《机器学习与深度学习》高级班
上海 4月14日
-
6天掌握机器学习、深度学习的重要概念及常用算法:
-
决策树、关联规则、聚类、贝叶斯网络、神经网络、支持向量机、隐马尔科夫模型、遗传算法、CNN、RNN
点击图片了解课程详情
原文始发于微信公众号(PPV课数据科学社区):学习攻略 | 机器学习和深度学习技能树、面试宝典
原创文章,作者:ppvke,如若转载,请注明出处:http://www.ppvke.com/archives/6548