可乐你不乖
1. 知识学习:1.1. 掌握好必备的数学基础,其实简单说在大学程度主要是三门课: a. 微积分 b. 线性代数. c.概率与统计。如果学有余力,还可以看看优化方向的东西,但这个不是强求。1.2. 掌握好一些基础的计算机核心课程,比如数据库,并行运算,离散数学(暂且把它放到计算机这一栏里面)。至于编程方面的技巧,我倒觉得不是需要做到特别厉害。如果能力有限的话,可以放低对操作系统,计算机结构这种比较偏底层的课程。人生要学会抓大放小,不要苛求自己样样精通。1.3. 学好Python,了解Python上的编程习惯(PEP8)和语法糖。同时可以多了解一些Python对应的数据科学/机器学习的工具库,比如pandas, numpy,scipy,sklearn等。即使将来你不做机器学习,胶水语言Python的知识还是可以有很大的帮助。选择Python的另一个原因是大部分深度学习框架,Tensorflow/Theano/Keras/Pytorch等都是基于或有Python接口。1.4. 开始学习基础的机器学习,比较推荐的方法是: a. 观看Andrew Ng 在Coursera上的机器学习课程 b. 同时开始阅读基础的机器学习书籍(比如《集体编程智慧》《Python机器学习》《Introduction to Statistical Learning》等)。这个阶段,最重要的就是不要贪多嚼不烂。如果你浏览知乎,会发现大家都说你必须读Elements of Statistical Learning, PRML之类的大部头。我承认阅读这样的书会有帮助,但不大适合一开始直接阅读,因为有可能会让你“从入门到放弃”。在你有了一定的基础知识后,你已经知道自己需要接着做什么了,我希望把选择权交还给你,而不是推荐成堆的课程和书籍。当然,如果你希望继续深入的话,中文可以阅读周志华老师的《机器学习》和李航老师的《统计学习基础》,英文可以入手《Elements of Statistical Learning》和《Deep Learning》。在这个阶段,重点要形成成体系的知识脉络,切记贪多嚼不烂,切记!1.5. 学好英语,至少打下阅读和听力的基础。虽然人工智能领域中国现在已经做得很不错,但主流的书籍、期刊和会议,资料都是英文的。我们可以接受翻译版,但最好的方法还是自己有能力直接阅读。即使你将来不做机器学习,英文阅读能力还是会有很大的帮助。2. 实践经历:2.1. 尝试尽早接触科研,进实验室。一般来说,大三的时候你应该已经有了基本的机器学习知识,尽管还比较浅。这个时候可以向老师/学长/学姐毛遂自荐进实验室,即使是无偿劳动和做基本的苦力活。进实验室有两个明显的好处:a. 对某个小方向会有比较深入的了解。一般实验室做纯理论的不大需要本科生,做机器视觉或者自然语言处理(NLP)等小方向的比较需要本科生,所以这是很好的深入了解一个方向的机会。 b. 补充了研究经历也可以明白自己是否适合这个领域。如果运气好的话,你也有可能成为论文的作者之一,甚至可以去开会(公款旅游顺道见一下业内大佬)。这对于继续深造和去国外继续学习都很有帮助,有科研经历和论文是很大的筹码,对于找工作来说也绝对有利无害。2.2. 如果对科研的兴趣一般,可以尝试尽早实习。大部分我们从书上看到的方法其实或多或少都是理想模型,甚至很多都比较过时了。举例,现在大部分教科书里神经网络的激活函数还是sigmoid,而工业界早就不用sigmoid了。机器学习的新手最大的门槛就是学了很多知识,却没有使用和检验的机会,而尽早实习可以给你更直观的感受,防止只有一身屠龙之技。2.3. 可能科研和实习机会有时候可遇不可求,这时候就要自己找项目来做,用兴趣来驱动项目。比较好的方法包括参加Kaggle竞赛,天池竞赛,或者将机器学习运用于自己感兴趣的事情上。我曾看到知乎上有用机器学习判定红楼梦后40回是否曹雪芹所写,且不说文章是否严谨,但这就是用兴趣推动实践的很好的例子。3. 社科人文:3.1. 机器学习作为一个变化飞速的领域,要有自己的“坚持”和“品味”。举个简单的例子,现在的深度学习大放光彩需要归功于一批科学家在神经网络低谷时的坚持。但同时,即使只说机器学习,也不要相信只有深度学习最好,不能固执。如果对机器学习感兴趣,就不要今天觉得网络安全好,明天觉得人机互动(HCI)最有前途。追逐热点往往到手的都是泡沫。3.2. 多读不同领域的书,比如社科类、经济类、人文类。因为数据科学的起点是以数据为基础,终点提取见解提供反馈。而见解不像数字一样一眼就可以看出高低大小,而需要阅历来多角度分析。很多人觉得计算机学科的人读数学看论文就够了,实则不然,科学总会和社会有交织。举个例子,是否该将人工智能应用于军事就是最近知乎上很火的问题,但回答这个问题就需要你有足够的非计算机知识储备,科技没有善恶,而人有。3.3. 放低身段,多和别人交流。其实这一点有一点牵强,但我发现做机器学习的小伙伴一般都很有性格,很多也比较内向(包括我自己),这可能适用于大部分理工科的朋友。即便如此,我还是建议大家稍微放开一些,因为以数据为导向的工作大部分都要求互动,比如数据分析师、数据科学家等。4. 写在最后:科技日新月异,追逐热点是好的。但就像我刚刚提到的,在这个浮躁的时代,不管选择什么方向最重要的就是独立思考的能力,和去伪存真的勇气。如果一件事情不能证实,不能证伪,那就必须存疑。大学不仅是最美好的时光,更是培养良好科学素养的关键时光。因此,看了这么多过来人分享经验后,我最希望的是你既不要急着全盘接受,也不要因为不对胃口全盘否定。慢下来,好好想想,这大概才是做科学工作的正确态度。
流浪停吗
因为每读一遍都有新体会。最核心的思想是贝叶斯方法,最基本的模型是线性模型,最基本的假设是独立性。贝叶斯公式本身很简洁,但是以先验概率、后验概率理解,以及对参数即隐变量理解使得这个公式无比powerful。多读几遍以后你就会渐渐忘记模型,而只记住其对应的graphic model,推导变得很自然。理解了这些模型的假设以后再来看PRML,真的比我读到的其他的一些书写得好很多:门槛合理(从基本三论讲起,不会出现半天看两页的情况),自包含(所有利用的记号、定理、结论都在书中正文或者附录有详细解释,我并非数学系所以不太喜欢很多书籍里对于一些惯用记号【如示性函数】不加以解释就开始推导),推导步骤详略得当,idea解释很到位,章节安排前后衔接自然。这本书既可以当教材,也可以当工具书。
Phyllis。
1.首先看的是Stanford公开课上的Statistical Learning. Statistical Learning这门课的主讲老师是:Trevor Hastie和Rob Tibshirani,他们俩也是ESL(The Elements of Statistical Learning)的作者,这门课只有英文字幕,但是上课的内容和习题都不算太深。课程推荐的书有两本,第一本是:An Introduction to Statistical Learning with Applicaiton in R.这本书已经Cover了课程大部分的内容,一边看书以便上课感觉特别好,最棒的是电子版已经可以直接下载了(不是盗版的)!而且网站还附有每一章做实验的R代码,可以弥补在应用练习上的不足。第二本就是ESL了,答主也是刚开始看的时候特别痛苦,但是现在感觉已经慢慢能够啃下来了,但更多的时候也是查阅,对哪一个部分想要更深入的了解的时候再去细读。针对这本书还有一份Solution Manual,但是不完整,可以凑合着看看:还有就是其他答主推荐的MLAPP,Machine learning textbook,非常非常详细,1000多页,⊙﹏⊙b汗,MCMC,Deep Learning等内容都有涉及,可以说囊括了机器学习里面大部分的模型和方法了,而且非常新,是12年初的,ESL是09年出的。MLAPP还有个很大的优点就是有详细的Matlab代码,可以边看边自己实践一遍。虽然三本书里面MLAPP是最全的,但是系统性感觉比不上ESL和PRML。2.中文书的话,建议购买李航博士的《统计学习方法》写得很认真,数学推导也很细致,可以配合着看。