可以说掌握了机器学习,你就具备了与机器对话,充分利用机器为人类服务的能力。在人工智能时代,这将成为一项必备技能,就好比十年前你是编程大牛,二十年前你英语超好一样。因此,无论你是什么专业的学生,学一点机器学习的知识绝对只有好处,没有坏处.
但是由于目前学习机器学习是为了准备美赛,所以我并不打算死磕其中的原理,而是有的放矢的学习,目前阶段的学习结果应该是能够对一些可以使用机器学习的问题形成思路并且通过查阅可以用代码来实现
由于我的常用语言为java,python,目前正在学习R语言,所以在思考过后我选择了python作为现阶段机器学习的语言,一方面是脚本语言能够尽快捡起来,另一方面python的生态良好api充足,代码实现充分.
难点:
数学难。
传统的机器学习是一门综合学科,对线性代数、概率统计等多种数学知识都有一定的要求,一上来遍布学术黑话怎能不让人退避三舍。不可否认,作为一个交叉学科,深度学习离不开很多的前置预备知识,比如微积分、线性代数、统计学、计算机科学等等。由于我只是大一的新生只开了高等代数一门课,所以掌握少且必要的知识.
编程难。
我们得承认机器学习是门十分强调动手实战的学科。对很多编程基础不好,或者压根没学过编程的而言,机器学习貌似就是个天方夜谭。但其实编程也不过是门语言,不需要那么专业的情况下,只要教得合适,听懂看懂能够简单上手没有那么难。更何况如今python语言的发展已经到了傻瓜阶段,随便一个人只要会点儿ABC基本上都能学会。
算法难。
曾经神秘的不得了的算法,如今已经被工业化制造,打包成成熟的API函数,可以方便地调用。好比汽车,你根本不需要知道内部的构造,买回来能开就成。如果还停留在只看学术论文或者传统教材的阶段,算法的确很难。多数都不是普通人的人话能够理解的。但是再难的算法,其实也是人设计的,反映的是人的思想,也是能用大白话讲明白的。这也十分适合我这种只是为了使用而学习的人
机器学习的前世今生
前世
在机器学习之前,概率统计,控制论,图论是计算机科学中的数学基础,也是实现计算的基础。
深度学习,强化学习和知识图谱这三派是主流的机器学习方向,分别被称为"联结主义","行为主义"和"符号主义"而我们主要选取深度学习来研究.这也是诸多优化算法等的来源.也权当复习.
今生
概率统计这一门被称为上帝的学问的学科经过这么多年的发展,分支众多,包括最近邻(kNN)、决策树、随机森林、条件随机场、Boosting、SVM、隐马尔科夫模型(HMM)、Bayes方法、神经网络。而神经网络起步晚,发展也缓慢,但是到深度学习概念的产生才得到了重视。
那么经过不断的发展深度学习这一派可是执天下机器学习之牛耳啊。
当然如今的机器学习世界,除了深度学习一派人丁兴旺,强化学习、知识图谱,还有七七八八不怎么知名的“门派”也没有闲着,互相借鉴其他“门派”的思想来丰富自己的根基
笔者,(非专业的CS学生),认为的机器学习大致等同于深度学习中的神经网络训练。或许在日后的学习中更加的细致的了解了两者的不同之后会在本文中标注。
所以后续以机器学习为标签的内容暂且涵盖或者等同于深度学习。但虽然笔者研究的模型属于深度学习,但是其中的算法思想却不受限于此,其他的机器学习的内容同样适用。
美赛O奖论文阅后有感
一些经典的算法经过适合的idea修改之后的竞争力并不弱于所谓的复杂和热门算法
概率统计衍生出来的经典算法,虽然看似有些过时,不如神经网络实力强大,但是RNN本质上来说就是HMM模型的高维扩展版,GNN与条件随机场、随机森林在某些方面也有异曲同工之妙,AutoEncoder与SVM的核心都是降维。不仅如此,还有一种趋势就是新的网络越来越多的借鉴老算法的思想,比如Bayes方法+NN衍生出来的BNN。
后续打算
美赛前学完机器深度学习。
无监督学习的思想和内容比较深,需要多看最近的论文,在自己有理解之后开始学习。
强化学习,知识图谱内容比较独立,如果后续没有需要可能就此搁置。