人生际遇,诡异难测。
我以为往后的时间都是奉献给java了,却不想到闯入了机器学习的世界。那年夏天,烈日炎炎,穿越1000公里来到陌生的城市漂泊,希望这一切都是值得的。
本人java出身,略懂c,linux,数据库,技术渣渣一枚。
希望人生的每一步都是新的起点,每一步都有一种新的心境。
话说在此我从来没有听说过机器学习,人工智能倒是有所耳闻,深度学习更是不用说了,刚开始工作的时候,接触到机器学习,以及相关的算法和理论的数据公式。对我来说真的是一种煎熬,那些似曾相识的东西却是完全看不懂。后来慢慢了解到算法是干什么的。用来解决什么问题。跟我一起的是一堆研究生,老大完全不管我们的,虽然他们看起来很忙的。显示跟我梦想的是有很大差距的,我想象着有一个神一般的老大带我装逼带我飞,结果却是被放了养(哈哈)。不过说什么也没有用,凡事有利有弊。这也让我们有了很大一部分时间去探索。
我开始制定学习的计划,搜集资料,看视频,希望能够理论上理解这些东西,慢慢的去实践他们,最终运用起来。嗯看起来不错想法,真正实施起来确实是千难万险,而我最终也没能走通这条路。理论知识涉及到,概率论,数理统计,高等数学。。对于一个上课从来不听的人确实太难了,看了几天再也坚持不下去了。我觉得是不是要恶补一下那些知识,最终还是选择放弃。相反的跟我一起的研究生他们能每天耐着性子一遍一遍反复地去看一个视频讲解,一点点理解理论。我只有每天找一些博客和文档来看,去理解思想。也许这就是差距吧!
后来一起研究一个算法做一个运用的时候,我才真正的找到该如何去入门,机器学习算法是需要很严谨的理论基础,她不像平时的所用的一些简单算法一样,只需要思想就够了,所有的机器学习算法都有一套严谨的理论来证明他的正确性。这也是学习的困难所在,当我们没有能力理解理论的时候就没有办法抽象成算法思想,自然就没有办法去实现一个算法。但是它的特点也限制了它的变化,所以有很多的库已经实现了这些算法,我们可以去研究算法的流程,去理解每一个步骤的意义,再结合数学理论来验证这些步骤的合理性。
从先理论再实践到先应用再思想最后到理论的过成,让我真正觉得可以去一窥机器学习的奥秘。如果你也有跟我一样的困惑,你也可以先用算法做一些小应用,看看实验效果,在一步步从代码层面去理解,最后结合理论相互验证。困惑总是会有,毕竟这是一门综合性很强的领域,统计学,概率论,线性代数相互结合的领域,如果不是数学系出身的(学霸忽略)相信一头扎进这些理论里面也是一脸懵许久,但是我想说的是,你花大量的时间去学习了理论,也不一定能快速的上手这些算法,第一手的理解必然是算法思想,思想结合与实践,思想是告诉你怎么做,而理论是告诉你为什么这么做?,一套成熟的算法必然是有严谨的理论支撑的。而理论是个处处会碰壁的地方,实战是让我们看到成果的地方。
最后说下我最近在看的几本书:《机器学习实战》,《统计学习方法》,《概率论与数理统计》《线性代数》,机器学习实战算法思想和算法实现可以帮助我们初步的了解这些算法,当我们想知道我什么要这样做的时候,其他三本书中的推导过程和数学原理基本能帮我们解惑。