有没有做机器学习的哥们?能否介绍一下是如何起步的....

zieaziea 发布于 2014年02月27日
无人欣赏。

一直都有关注ML这个领域,也感觉到入门并不是“一本书就能开始”, 希望ML的成功人士能够谈谈自己的故事,从最开始了解ML到最后找到第一份ML工作的过程,谢谢了

共29条回复
hey 回复于 2014年02月27日

看网易公开课上的 Andrew Ng 的机器学习,还有 Coursera 上台湾大学的《机器学习基石》 这两个都是很好的入门材料,此外,还可以下载 Andrew 课程的讲义 http://cs229.stanford.edu/materials.html ,这讲义基本上就是一个入门教材了。 在学习理论的时候,多注意实践,《机器学习实战》不错,虽然书里的代码写得烂,但是作为简单的实验指导书是可以的。

zieaziea 回复于 2014年02月27日

1楼 @hey 谢谢,两个公开课,都有在看,实战那本书也买了。

贵人 回复于 2014年02月27日

我现在在自学mahout,不知道是否符合你所说的ML标准~

zieaziea 回复于 2014年02月27日

3楼 @贵人 谢谢,我还不怎么知道这个项目。

淮左青衣 回复于 2014年02月27日

项亮的那本书是我入门的书,我觉得还不错,内容比较浅显,适合码农去学习。另外建议补一下大学的微积分、线性代数和概率论的一些内容,我是全忘了,好多公式压根不知道怎么推到的,理解起来很吃力。

豆瓣链接:http://book.douban.com/subject/10769749/

另外java有mahout,里面包含了很多算法,开箱即用的。作为码农,直接看代码是最直接快速的学习方式嘛。python的话就更方便了,有非常优秀的python库,你也可以去了解下。

reyoung 回复于 2014年02月27日

不属于搞Machine learning的成功人士,也还没找过工作。只是读研究生是这个方向。谈谈自己是怎么学的。


2楼 @zieaziea @hey 不要看网易的andrew ng公开课了。时间太久远,很多东西都不一样了(这个跟写程序也是一样的,太落后的东西没啥用,除非是经典问题)。看视频的话,看andrew ng在coursera的machine learning视频,14年machine learning的刚要开课,推荐报名,跟着上课,做课后习题和期末考试。(因为只看不干,啥都学不会)。。

另外,重点是你要学ML干什么?可选项有如下这些。给出一个选项,可以更针对性的说明应该学什么:

  • 最快最方便的使用一个通用方法做一个分类器或者回归器(例如验证码识别,etc)
  • 从理论上想改进某一种机器学习的学习算法或数据结构(模型)
  • 更好的了解各种机器学习算法的特点,应对不同的问题,选择不同的方法。
  • 利用现在的硬件产品(显卡,集群),更好的实现一套机器学习算法。

基本上上面这些都是学Machine learning的一些点,每个方向要学的东西都不一样(虽然基础还是基础),甚至很多方向不需要学,只需要用一些现成的东西就好。用现成的东西,好处就是速度快,成本小;坏处就是不明白细节。


只要学习机器学习,一定会看的书籍我推荐一下:

  • Mitchell 的《机器学习》。Mitchell是机器学习的鼻祖,第一个提出机器学习概念的人。这本书很薄,很简单。内容很陈旧,但是都是机器学习的经典问题。而且,这本书概念清晰正确(很可贵啊,又简单又正确的书,说明作者功力很强)。
  • Simon Haykin的《神经网络与机器学习》。 事实上,现在常见的很多机器学习算法都发端于神经网络,像SVM,深度学习,CNN等等。这本书详细的介绍了神经网络及其相关算法的所有细节。如果想深入了解的话,可以看一下。只想运用的话,也可以随便翻翻算法的介绍。
  • AIMA,《人工智能:一种现代的方法》。基本上学术界的人们都认为机器学习是人工智能学科的下属分支(另一部分人认为是统计学或者数学的分支),所以,一本人工智能的书也是学习机器学习可以参考的方面。

另外,如果想找这方面的工作,尤其是大企业的工作,主要看你发了哪些论文,开发了哪些系统,而不是看你用XX开源软件多熟练。你懂的,毕竟熟练使用一个软件并不是这个领域的关键问题。

贵人 回复于 2014年02月27日

5楼 @淮左青衣 对,我就是不懂算法,直接看mahout,框架封装了算法实现,拿来即用。

贵人 回复于 2014年02月27日

4楼 @zieaziea mahout做推荐系统用,不客气~

zieaziea 回复于 2014年02月27日

5楼 @淮左青衣 谢谢,请问您现在是从事机器学习的工作么?能否说下自己的经历...

zieaziea 回复于 2014年02月27日

6楼 @reyoung 谢谢你这么详细的说明,能否说下ML所涉及的数学知识..

zieaziea 回复于 2014年02月27日

6楼 @reyoung :“关于学了ML能做什么?”这个问题,我的想法是,从实际的情况出发“推荐系统”的开发视乎是一个还比较现实的选择,不知道对不对?谢谢

reyoung 回复于 2014年02月27日

10楼 @zieaziea

  • 机器学习的理论基础是统计学和概率。例如贝叶斯概率。
  • 机器学习常用的还有矩阵论或者叫线性代数等等。 因为很多机器学习问题最后都转换成了空间变换。(例如降维问题,就是从一个高维空间变换到一个低维空间,让其运算更快,对结果的影响最小)。

其实机器学习的数学问题并不是那么难的。尤其是现在最新最主流的方法,基本上都是依托于大量的训练数据。让数据说话。再美的数学公式,现在也没有干掉最简单的方法。。所以,其实不用那么害怕数学的。。。。。。。相反,英语是个问题。

zieaziea 回复于 2014年02月27日

12楼 @reyoung 能否理解为大学本科的数学(线性代数、概率论、微积分)水平就能够应付ML的数学要求了? 还有现在工作好找么?

reyoung 回复于 2014年02月27日

11楼 @zieaziea 推荐系统我没有搞过,不过有一次百度的一个人来作报告说过他们是怎么搞的。

基本上是使用一个logistic回归去做,和单层神经网络与SVM类似,机器学习不是这个模型的根本问题。根本问题在于如何把输入做非线性变换。具体怎么变换就是推荐系统这个问题的核心了,我就不懂了。sorry。

至于Logistic回归是什么,其实很简单。就是在某个空间里的一条直线(二维是直线,三维是平面,高维是超平面),把这个空间分成两个部分。这两个部分一个类1,一个是类0。也就是一个线性可分的二值分类器(所以,没什么高深的数学问题,很简单的一条直线而已。y = kx+b)(当然这么说简化了N多东西,不过基本思想没错)。

reyoung 回复于 2014年02月27日

13楼 @zieaziea 如果大学本科学的没问题,100%满足机器学习需要的数学。感觉机器学习很多地方的数学,高中数学就够了。比如积分基本上没用过(也许是我这个方向用不上)。

freedom_沛公 回复于 2014年02月27日

书籍:机器学习入门书籍《模式分类》(中文)(http://book.douban.com/subject/1138189/),或者看Pattern Recognition And Machine Learning(http://book.douban.com/subject/2061116/)。 公开课: Andrew Ng 的机器学习。 学习的时候,最好还是结合具体一个方向,或图像识别,或自然语言处理等,这样了解一些大概的基础,这样看书或者公开课视频时理解他们举的一些例子都比较容易。图像识别不熟,我是做自然语言的,入门书籍《统计自然语言处理基础》,这个是老外Manning写的,理论强,有深度。还有一本《统计学习方法》(李航),符合国人口味。推荐系统相关的属于理论性较强一点的了,需要一定的数学知识,如线性代数尤其是矩阵分解方面,推荐系统细节上的东西我不太熟。以上推荐的书籍都是理论派,哈哈,工作时需要用到ML的地方数据通常很大,需要结合分布式系统如hadoop,分布式与机器学习结合的书籍好像也没多少。 工具:python的nltk(http://www.nltk.org/),java的OpenNLP(https://opennlp.apache.org/)。 工作:tab,360,网易很多部门都有需要,这些公司都会招人,但是学ml的人越来越多,进入门槛也越来越高了。

淮左青衣 回复于 2014年02月27日

9楼 @zieaziea 我跟你一样,是从零开始的。后来用mahout做了一个应用推荐系统,简单来说就是一个ItemBase的协同过滤,根据用户过往的喜好给他推荐他可能喜欢的app

zieaziea 回复于 2014年02月27日

16楼 @freedom_沛公 谢谢你的回复,现在搞机器学习的越来越多了,门槛也在提高。

zieaziea 回复于 2014年02月27日

14楼 @reyoung 谢谢,感觉到了线性代数的重要性..

zieaziea 回复于 2014年02月27日

7楼 @贵人 mahout是用Java的吧?我没理解错的话...

zieaziea 回复于 2014年02月27日

8楼 @贵人http://www.ituring.com.cn/book/862 《Mahout In Action》中文版貌似3月就出了

freecunix 回复于 2014年02月27日

好高深的样子。。。

enno 回复于 2014年02月27日

为毛我理解的ML和你们不一样?面壁去!

贵人 回复于 2014年02月27日

21楼 @zieaziea 是的,快了~如果你想学好ML,就必须学算法,特别是概率论统计学之类的东西,还有R语言啥的,算法都扔多少年了,符号啥意思都忘了,所以,直接上手mahout了。学好mahout说难不难,说简单也不是很简单,特别聚类,还得学hadoop。我之前做过hadoop开发,所以上手很快。不过mahout有局限性,就是你只能用它提供了的算法,不过常用的相似度、叶贝斯算法啥的都有,应用场景是适合做一般的个性化推荐系统。现在别说专业的ML,就是简单的数据挖掘、推荐算法、数据统计工程师都抢手得很,我当时换工作的时候,各种大公司非让我做数据,工资还高,不过我不想做,所以选了个工资偏低的公司,做自己想做的。

贵人 回复于 2014年02月27日

23楼 @enno 哈哈~你更博学多才!

zieaziea 回复于 2014年02月27日

24楼 @贵人 谢谢你的回答,收获不少。上面你提到ML必然要涉及算法比如概率论、统计学,这个我已经再学习了,想问的是你在具体ML的过程中,传统的数据结构的知涉及的多不多(比如二叉树、红黑树、堆栈、队列什么的)?

mahout应该是涉及Java的吧?我会一些Java。Hadoop是做什么的我大概知道一二,但是ML和Hadoop的结合是做什么的就不太清楚了,能否说谈谈?

ML好就业么?这个我真不知道,之前听说门槛很高,同时竞争非常激烈。

最后再次谢谢的你回答...

justvi 回复于 2014年02月28日

已报名coursera上的ml课程,3.3开课,一起学习啊

贵人 回复于 2014年02月28日

26楼 @zieaziea 算法都懂了,数据结构应该没问题。我是用java开发mahout。mahout+hadoop往往是做内容推荐,比如,你喜欢体育,我将别人的与体育有关的内容推荐给你看。豆瓣的电影推荐,我赶脚就是mahout的CF差不多的东西。

贵人 回复于 2014年02月28日

百度技术沙龙第48期【大规模机器学习】楼主,你说好就业不?不过要学好需要下工夫http://www.infoq.com/cn/vendorcontent/show.action?vcr=2706

本帖有29个回复,因为您没有注册或者登录本站,所以,只能看到本帖的10条回复。如果想看到全部回复,请注册或者登录本站。

登录 或者 注册
[顶 楼]
|
|
[底 楼]
|
|
[首 页]