与机器学习的第一次亲密基础- 4. 站在巨人的肩膀上

        我们说机器学习技术之所以难学,主要是因为与之关联的学科以及技术门类过于繁杂所致。这其中主要包括了数学、运筹学、统计学、神经科学以及数据库理论等。当然,如果你能懂一些物理学、生物学以及博弈论方面的知识就更好了,这将有助于你更容易地理解一些机器学习模型的思想和做法。这还仅仅是有关普世机器学习理论方面的基础,如果你要用机器学习来开发复杂的应用,可能还要学习一些有关于数字图像处理、语音信号理论以及自然语言理解方面的基础知识。当然,光有理论是不行的,所以你要学习一两门常用的编程语言,比如Python或者JAVA,以及数据库的基础理论及操作,同时也要学会熟练使用一些与机器学习有关的工具与框架,比如Weka、Hadoop、Spark、Tensorflow、Caffe等等。所以,机器学习不是依赖自身而发展起来的,而是站在了诸多巨人的肩膀之上。同时,我们也清楚了:学习机器学习需要一个系统性的工程。当然,如果同学们不是励志要攻读机器学习的博士学位,未来从事机器学习理论研究的话,那么也无须悲观,你只要学习很少一部分与机器学习密切相关的数学、运筹学和统计学知识,懂得一些简单的数字图像处理、语音信号理论或自然语言处理方面的算法思想,就足以胜任大部分工程中的机器学习开发工作了。当然,诸如Python或JAVA这类的编程语言还是要做到精通的。至于一些机器学习的工具包或框架,大部分都是封装好的,在实际应用中很可能无需在上面做二次开发,但是你要懂得你所调用算法的思想和每一个参数的概念,这样至少会保证你在应用时,能根据结果的反馈迅速地找到正确的调参方向。此外,鉴于在机器学习的实际应用中,大部分数据都是存储于各种各样的数据库或数据仓库之中,故也建议同学们至少要懂一些基本的数据库管理和操作方面的知识。
        机器学习的学科基础如图1.6所示:
 

与机器学习的第一次亲密基础- 4. 站在巨人的肩膀上

                                                                                            图1.6 机器学习的学科基础