《机器学习·升级版V》常见问题FAQ

大家好,现在的《机器学习·升级版V》拼团,是在前面已完成的三期《机器学习》和四期《机器学习·升级版》的基础上,经过内容的不断更新和完善,隆重而慎重的推出的新课程。先给出这个课程的三点说明:
α:这个课程的推出初衷,是为了“解决最后一公里”问题。即:我们既要懂机器学习的算法原理和公式推导,更要提高实操经验,在实践中能够灵活使用机器学习。
β:本次课程使用Python2.7和Python3.5作为落地的实现语言(即:两个版本的代码都提供),针对每一个模块,大体分成三个步骤:(1)原理阐述;(2)自己动手实现;(3)调用已有机器学习库。
γ:本次的授课方式,我会在每周将下周要使用的代码发给大家,充分利用课下时间做答疑和代码讨论,提高课上的分享效率。
插班链接的二维码:
V期拼团.png

下面是大家的问题和我的回答(问题是没有先后顺序的,被问到2次以上,我就追加到最后):
1、Python只能做实验,为什么用这么慢的语言?
答:一来,Python是当前事实上的主流机器学习语言,不仅科研理论界,工业界也用它做机器学习的算法实现(从当前招聘ML岗位中要求熟悉Python/Matlab/R的其中一种即可看成其地位);二来,用Python做代码实现快速简练,不至于陷入语言本身;如果非常关注性能,从成本最低来考虑,往往先使用Python做前期算法试验,最终产品中翻译成C/C++/Java即可;此外,的确有不少公司是直接使用Python做最终产品的,如豆瓣等。
强大自己,其他都是浮云。比如,我的机器学习班,用Python实现;算法班,我用C/C++实现;实际工作中,我用Java做工程。语言是为了实现我的想法,是工具。

2、机器学习需要多深入的数学?能推荐几本数学书吗?
答:做机器学习,数学很重要,但不要过分的陷入数学本身——那将是一个无底洞。只需要掌握本科非数学专业的数学,则可以对抗绝大多数的核心推导了——即使学习中会遇到一点点泛函,也可以把本科数学的知识做迁移。基于此,只要随便找本本科的数学教材即可:微积分、线性代数、概率论和数理统计。毕竟,我们要做的ML是“机器学习”,不是“数学学习”。

3、请问下,我现在博士在读,现在还需要专门去上高等代数或者矩阵相关的课吗?
答:这个见仁见智,我个人觉得,可以根据个人对于机器学习的诉求和期望来综合决定。如果希望深刻了解原理,我给出了4个问题,如果能够回答,那么仅以机器学习为目的的话,就不用再专门复习数学了。
(1) Hessian矩阵的计算和正定性会影响什么?
(2) 最大似然估计有哪些模型假设和优缺点?
(3) 如何直观理解线性代数中矩阵乘积的定义?
(4) 机器学习中为何要讲Beta分布和Dirichlet分布?

4、我之前没太接触过Python,可以报班吗?需要提前准备些什么?
答:根据以往经验,有不少同学都是几乎Python零基础的,其实Python作为解释性弱语言,不需要提前做什么。课程中会有3次课专门讲Python的库使用和数据清洗等,顺道也把Python熟悉了。如果以前没有接触过Python语言,但具备任何一种计算机语言基础(如了解一点C/C++/Java,或者php/js,或者Matlab/R)都可以在几天的时间就学会这个语言写代码。
本期《机器学习·升级版V》的第4/5/6次课增加了三次Python,分别讨论Python基础编程、机器学习和统计相关包的使用、数据清洗和特征筛选的方法,相信作为机器学习的落地语言,基本可以保证“从完全无基础到使用掌握Python”。这样安排内容,对于已经熟悉Python的同学仍然不会显得重复,依然可以获得数据挖掘相关的知识。

5、为什么以Python作为机器学习的实现语言呢?工业界用的多吗?
答:选择Python作为机器学习的实现语言,一来是因为必须选择一种语言作为实现机器学习算法的落地;二者,仅仅是因为它最近发展非常猛,一定程度上可以看成机器学习领域最主流的语言;第三,毕竟是以机器学习为主,提供相应的代码实现只是为了让大家对机器学习的算法有个真切的理解,如果的确觉得不熟悉,翻译成自己熟悉的Matlab/R,或者C/C++/Java就好。

6、问:那些什么公式必须会推导吗?我现在公司做Java程序员,学机器学习是为了学会使用某些算法去实现一些业务功能,但是看那些什么公式就一脸蒙,我需要对那些公式什么的掌握什么程度?
答:这个看您个人对机器学习的需求点了。从理性上说,把算法原理、公式推导、代码实现完全掌握,肯定能够对机器学习有很好的理解,但这必然花费大量的时间精力。如果只是希望应用(注:考虑到社会现实状况),可以把侧重点放在课程的实践环节,而把原理推导部分当做辅助理解。相反,如果希望深刻理解算法原理,可以把代码实践当成辅助部分,直观的看到每个模型的特点,这时的重点可以放在每个算法的详细推导上。

7、问:我现在是做大数据的,学这个好转么?对机器学习的工作一点儿也不了解。
答:机器学习真的没有想象中那么难。如果以应用为目的,几个月就可以了解各个模型算法,并且一定程度的学会调参、数据清洗、特征等内容。

8、课程中的答疑环节是怎么做的?遇到不懂的问题怎么办?
答:上课时遇到不懂的,随时文字提问,我能够实时看到。我讲完一段就会集中答疑几分钟的。——试验了好久和好多方法,这种直播方式是学习效率最高的。虽然第二天提供视频的录播。其他时间遇到不懂的问题,最好在社区提问,这样不至于被各种聊天信息冲掉,提高学习效率。
问题当然是不仅仅局限于课上的内容,所有同学都随意参与,如果碰到我不熟悉的(这并非完全不可能),也欢迎一起学习、讨论。
 
9、到时候会谈时间序列分析么?
答:内容中会有专门的章节讨论隐马尔科夫模型HMM、条件随机场CRF的内容,不知道算不算你说的时间序列分析呢?当然,如果应用场景是“用过去N个月的信息去预测将来某几个月的走势”,一种最“简练”的方法其实是加权线性回归,思路简单但效果不错。我本人正在尝试股票预测的项目,在我这个需求中,其实除了预测股价以外,还可以从选股策略入手,这一定程度上和时间序列分析略有不同。

10、我主要来学学算法,学学思想。
答:是的,其实不少的朋友来报班,没有明确的目的,只是为了做知识技术储备的。毕竟机器学习是当前IT圈的热点内容之一。

11、特征如何选择和优化会讲么,讲的话请问会涵盖哪些内容?
答:特征选择肯定会涉及,散落在每个算法模块中。如Logistic/Softmax回归的特征、SVM的核函数、PCA的降维、奇异值分解SVD/推荐系统LFM的隐特征等。此外,在SVM、RF、HMM等章节,会有专门的例子讲特征选择。

12、机器学习的方向,有很多,像NLP、数据挖掘、推荐系统、计算机视觉、语音识别、模式识别,我们学了基础的机器学习算法后,如何选择具体的方向呢?
答:我个人觉得,这个要看自己的擅长、喜好、公司需求等各个环节的综合了。我们不太可能对所有领域都掌握的很好,有了基础后再挑选合适的就好。

13、《机器学习·升级版V》的课程,既推公式又实现代码,时间安排赶得上吗?
答:的确是蛮紧张的。一般是一次原理一次代码实践来跟大家做技术分享。另外就是,我会在提前1周上传课件和代码,请尽量能够提前复习(已经懂的)或者预习(正在懂的)。
 
14、互信息的计算,p-value值的替换,信息增益值的计算对选取的贡献,这些会不会讲?
答:互信息、信息增益等内容必然会讲。在最大熵模型、决策树和随机森林、贝叶斯网络等章节,都会看到它们的身影。

15、机器学习算法掌握后,我们是不是还要掌握一些分布式计算框架,像hadoop、spark、storm等呢?大部分工作中会有这个要求吗?
答:艺多不压身啊!机器学习和大数据,关联度还是蛮大的。另外,小象学员的冼总是这方面的专家啊,只是不知道他主做训练营(学费是万元单位的,真心不便宜),能不能单独开个课程。

16、为啥我看到的好多都是要求博士学位或者是相关专业?
答:只是当前机器学习的岗位需求还处于粗放阶段而已,你会看到几乎所有招聘ML的岗位要求都是各种技能的罗列;从中看出,除了希望从业者技能全面,也正说明这些技能需求是用人单位最缺乏的。没关系的,学历只是敲门砖;即使没有它,用拳头砸也是可以的。

17、前3次课只讲数学?
答:或许应该叫做“从机器学习的角度看数学”。比如,如何理解矩阵乘法的定义及其引申含义?特征值和特征向量有什么具体的实践应用?数学分析、概率论、数理统计、线性代数、凸优化等都是这3次课涉及的内容。但整体而言不用过于担心,只是帮助大家回忆知识罢了,如最大似然估计MLE;也会有若干的“新”知识,如矩阵的QR分解。当然,凸优化部分可能略“新”些,主要目的是讨论Lagrange对偶函数和KKT条件。

18、到时候ppt可以给我们吗,能推荐一些课外读物吗?
答:必然把课件分享给大家,还包括完整的代码和数据。另外,每个课件的最后都给出相应的参考文献的(根据实际的参考内容和文献价值,数量不一),大家可以做扩展于阅读。

19、你的博客地址是什么?
答:抱歉,我比较懒,没有博客。只有一个“微博”:@邹博_机器学习。不过,只是一些零散的内容了。

20、上课方式是什么?
答:会提前(如提前1周)给出课件,大家尽量做好预习或复习工作。上课是使用在线直播,大家尽量跟直播——虽然我们会在第二天提供录播视频。因为可以直接答疑和提问,根据以往的经验,直播中的学习效率比事后看视频要好很多。

21、请问有没有一些相关资料推荐?
答:如果英文没问题,可以直接看PRML——这几乎是最好的机器学习教材;可以配合MLAPP,因为有些章节(如牛顿法、变分、CRF等),MLAPP写的比PRML细致些。中文教材可以看《统计学习方法》,虽然这本书被很多人吐槽为太理论太生涩,但其实还可以的,除了正则化、聚类等没有涉及,其他内容很详实。当然,我们课上每章节都给出各自的参考文献的,也会给出核心算法实现代码、多种常用库的调用,也算《机器学习·升级版V》与众不同的优势吧。

22、请问有没有试听课呀?
答:在《机器学习·升级版V期》做过一次公开课“机器学习的代码实践”,链接是:http://www.chinahadoop.cn/cour ... 17558

23、写几年移动端了,现在转机器学习这块合适吗?
答:套用一个广告词吧:“学机器学习,最好的时间是3年前;其次是现在。”

24、你讲了那么多算法。我看了好多。需要多久才能每个算法都吃透呢?
答:个人觉得这是个循序渐进的过程。如果以算法的语言表达,我们假定未知的知识组成了知识网络,则我们从某个点开始学习,既不是深度优先(一竿子走到黑),也不是广度优先(浅尝辄止),而是试探着完成一点广度搜索后,开始沿着某个路径略微深度搜索,然后继续“广度-深度”的交替。我至今也没有把每个算法吃透,仍然在学习探索的过程中。

25、我如果先学习算法,再做机器学习,然后再进行深度学习,如何?
答:它们完全没有先后顺序。机器学习和算法是两种研究思路,它们之间虽然不能说无关,但不是强连接(虽然聚类要考虑时空复杂度,我个人喜欢用动态规划的走棋盘问题类比隐马尔科夫模型Viterbi算法)。如《甄嬛传》《芈月传》,除了有演员重叠,都是大投入历史制作,其他没啥关联。我如果没看过《甄嬛传》,不妨碍我看懂《芈月传》。

26、课前的知识储备有什么呢?需要哪些前置技能?
答:其实做好机器学习不太需要特别高深的基础,如果分条目,我觉得大概需要这3点:
1、会任意一门编程语言(方便理解算法实现的代码,语言不是核心,不要陷入语言本身,算法班主要使用C/C++,机器学习班主要使用Python)。
2、基本的问题抽象能力和算法思维(算法和机器学习的基本素养)。
3、最重要的:每周至少有半天时间做复习/预习(学贵以恒)。

27、我想系统的学一下机器学习用到的数学知识,建议开一个机器学习用到的数学知识方面的班。
答:小象学院已经请北大录制了“机器学习中的数学”系列录播课,内容非常详实。这个可以作为参考之一。目前已经上线,链接在这里:http://www.chinahadoop.cn/clas ... ction

28、参加您的培训,能在现有职场谋得一份差事吗?
答:我们的课程非常重视实践能力的提高,也会安排大量的实践内容(有些实践还是蛮有趣的),的确有往期的同学报名听课后获得了京东、滴滴、百度、新浪、美团等公司的Offer或实习Offer。但课程以实际能力提高为主线,虽然我会在机器学习班中不时的提及类似“如果是笔试面试,这个问题会怎么考察”的问题。

29、课程过程中会出练习题或者作业吗?
答:每次课的最后,都会给出“作业”,但大家是否提交,不做硬性要求。但如果提交的,我一定认真批阅且做出点评反馈。

30、Python使用哪个编辑环境好些?
答:IDE的话,Anaconda非常不错,值得推荐。或者用pycharm、python(x,y)等等都可以。

31、我有一点点编程基础,但不太了解Python语言,需要把Python先大概过一遍吗?
答:我个人完全没有必要。毕竟机器学习课不是讲语言,只是为了附带着实现下机器学习的算法。因为我发现很多人都是对机器学习一知半解,所以想除了推导理论,也提一下代码实现。
 
32、大纲中还包括了爬虫、TensorFlow等,它们也属于机器学习吗?
答:爬虫是数据的获取端,我们在主题模型等章节之前介绍网页爬虫的原理和代码实现,但目的是为了更好的获取数据,如二手房信息、各类新闻等文本等,在机器学习领域,当成一个额外的技能就好。
而之所以增加了部分的深度学习内容,是因为目前在图像、语音、NLP等领域,深度学习发挥了很重要的作用。因为,作为机器学习的最重要分支,课程中一定会涉及它的内容。当然,具体使用哪个框架是见仁见智的,Caffe/Theano/TensorFlow/MXNet/Torch都是广受关注的深度学习重要实现。

33、刷天池这样的可以作为项目经验么?
答:各种竞赛平台取得好成绩,我个人觉得可以算。
 
34、深度学习有什么好的参考文献?
IanGoodfellow,YoshuaBengio,AaronCourville刚刚发布了一本深度学习的“教材”,尚处于全网年费征求意见阶段,我觉得这本是目前市面上最好的深度学习的书。书名就叫“deep learning”,值得精读。
 
35、网上有非常多免费的视频和文档,这个《机器学习·升级版V》的优势在哪里?
答:本课程特点:1、原理阐述;2、核心推导;3、代码实现;4、参数分析
或许,最大的优势是:我用Python实现了机器学习的大部分核心算法:Logistic/Softmax回归、BFGS拟牛顿、盲源分离BSS/独立成分分析ICA、决策树CART/随机森林、SVM、k-means、密度聚类、谱聚类SC、标签传递算法LPA、协同过滤、EM算法/GMM、HMM等等。除了讨论理论原理,强调机器学习落地,能够自己实现或者修改现有的机器学习代码,能够使用机器学习做实际问题。
试想:(1)自己会手写一个SVM或者CART,虽然只是重复造一个轮子,是一种什么体验?
(2)自己会爬取当前的新闻文本,并分析得到近期的舆情方向,是一种什么体验?
 
36、软件都有现成的算法,机器学习都有开源的框架,为什么还要研究算法、公式推导?
答:1,举个例子:在已有功能强大的Photoshop前提下,仍然有“图形学与图像处理”方向(利益相关,我硕博就是做这个方向)
2,给定具体实际场景,要具备问题提取和模型选择的能力,如果不了解各个算法,只能别人怎么定我怎么做。
3,确定了模型还需要特征选择和调参。不排除“随便试”有时候也奏效,但如果对原理了解,能够有目的的调参。
4,社会需要,懂算法拿高薪。
37、课程涉及实际案例吗?
答:《机器学习·升级版V》的重点之一就是使用了大量“玩具数据”和“实际数据”对机器学习的各种模型做原理阐述和参数选择。
涉及的部分例子有:
Nagel-Schreckenberg交通流模型模拟
广告投入与收益数据
ARIMA时间序列分析乘客上座率
Logistic回归/决策树/随机森林/SVM分别对鸢尾花数据/葡萄酒等数据做分类
特征选择和预测泰坦尼克号海难乘客存活率
工业实际数据中不均衡数据的处理和机器学习模型选择
MINIST/CIFAR图像识别
矢量量化VQ图像处理
密度聚类和谱聚类无监督学习
中文分词
网易新闻主题模型
信息和文本摘要
股票数据隐特征挖掘
 

邹博 - 计算机科学博士,深谙机器学习算法原理

赞同来自: 三人行必有我师 Oceans8v

首先:《机器学习3期》和《机器学习升级版III》重复的内容不超过40%;尤其是《机器学习升级版III》增加了大量的案例和代码。 其次:凡是报过我以前班次的同学我会一直想着。如果官方没有优惠,我给。 再次:“报过一次”就算。如果尚未报过。本次报名后,以后的班次有优惠。

andyzhang

赞同来自:

机器学习和数据挖掘是什么关系呢?

zhao1992

赞同来自:

有没有课本推荐?我用的机器学习这本书可以吗

江江江江

赞同来自:

课件中的代码会上传吗??

ghllfl1

赞同来自:

邹老师:请教一下,决策树算法用于预测分类每次结果都变化,且结果差异较大是这样的吗?你怎么理解决策树预测结果?如果结果像我说的,将其用于预测问题时,怎么处理预测结果更精确?谢谢  

malasun

赞同来自:

截图.jpg
邹老师问个关于解释器的问题,我用的是python2.75,pycharm    6.1的代码里面numpy.stack说声明有误 更新了numpy还是没办法解决

三人行必有我师

赞同来自:

邹老师,您好!看了下课程安排,《机器学习》第三期和《机器学习》升级版 第三期内容有很多重复?请问听过了《机器学习》第三期再买升级版有优惠吗,在校学生[流泪\\ll]

sbztcztc

赞同来自:

邹老师,您上课说到了机器学习和专家系统,那在人工智能的大背景下,机器学习和专家系统有啥区别么?在机器学习中有增强学习这个研究内容,它是不是和专家系统很像,只是增强学习的参数是不断优化的,而专家系统是提前设计好的?谢您

poiuwn

赞同来自:

邹老师,请问下面二种取样方法有什么不同吗? stats.poisson.rvs(9,size=20) np.random.poisson(9,size=20) 谢谢    

邹博 - 计算机科学博士,深谙机器学习算法原理

赞同来自:

问:邹老师,请问下面二种取样方法有什么不同吗? stats.poisson.rvs(9,size=20) np.random.poisson(9,size=20) 谢谢   答:这是分别使用两个库函数得到的Poisson分布直方图,采样次数1000次,lamda取5。 从实际结果可以看成:从实践的角度看,二者几乎没有区别,使用哪个顺手就用哪个即可。 另外,建议以后能够开个新贴讨论技术问题啦。
1490541082452.png

poiuwn

赞同来自:

谢谢邹老师。 只是第一次用,没有找到开新帖。以后会开新帖

一片冰心

赞同来自:

请教邹老师,我训练完一个模型,怎么把模型保存到本地呢,以后来了新数据,我立马能得出结果,不用再跑一遍数据得出模型。。。。 ??? 

要回复问题请先登录注册