人工智能需要先修什么课?
作为一名计算机专业的同学,对于人工智能这块多多少少都有点了解,关于你的这个问题,我来跟你说一下,希望对你有所帮助。
上学期我选修了人工智能这门课,老师也向我们介绍了一些人工智能领域的一些知识,也学到了不少新的东西,人工智能也发展了许多年了,最近几年不断的火起来了,很多人都想往AI的这个方向走,不管是什么专业的都往计算机这个专业来跨考,也导致大家的水平参差不齐吧。
人工智能(Artificial Intelligence), 英文缩写为 AI, 是一门由计算机科学、控制论、信息论、语言学、神经生理学、心理学、数学、哲学等多种学科相互渗透而发展起来的综合性新学科。自问世以来AI经过波波折折,终于作为一门边缘新学科得到世界的承认并且日益引起人们的兴趣和关注。
那么如果想学习人工智能的话,需要哪些先修课程或者说需要有哪些基础呢?以下跟你说一下,如果对AI有兴趣的可以学一下基础知识。
哲学:标出了AI的大部分重要思想
数学:使AI成为一门规范科学 数学形式化
神经科学:网络,并行处理
心理学:认知理论
计算机工程:AI的“载体”
语言学:知识表示、语法
这要看你从何起步. 如果你是计算机专业的高年级,那么相信你已经学过概率统计,一门编程语言,数据结构等科目.那么,现在首先要浏览一下高级人工智能的理论教程,看看里面都涉及那些问题,比如,知识表示,自动推理,机器学习,模式识别,还有机器视觉,自然语言理解等.其中每一个题目都有更深层的拓展空间.甚至,人工智能本身可以看作一个哲学问题,因为它往往是人对自身的认识.
首先你需要数学基础:高等数学,线性代数,概率论数理统计和随机过程,离散数学,数值分析
其次需要算法的积累:人工神经网络,支持向量机,遗传算法等等算法;当然还有各个领域需要的算法,比如你要让机器人自己在位置环境导航和建图就需要研究SLAM;总之算法很多需要时间的积累;
然后,需要掌握至少一门编程语言,毕竟算法的实现还是要编程的;如果深入到硬件的话,一些电类基础课必不可少;
人工智能一般要到研究生才会去学,本科也就是蜻蜓点水看看而已,毕竟需要的基础课过于庞大。
想要学习人工智能需要什么条件?
我认为对于学习条件来说并无硬性要求,人工智能涵盖面比较广泛,学什么,怎么学这个必然要视你的学习目的而定。下面,我将出于我自己的学习经验对这个问题进行简要解答。
细分的话,我认为人工智能可以分为两个学习方向。其一,是出于科研目的的理论知识学习;其二,是出于应用目的的开发技能学习。当然,两个方向并非完全独立,选择一个学习方向,必然也会涉及另一个方向的学习,只不过学习侧重点不同。
以科研为目的的理论知识学习
顾名思义,人工智能就是以机器模拟人类的思考方式去处理一系列比较复杂的任务。但是,机器真的就有智慧吗?对计算机运行原理稍微了解的人都明白,答案是否定的!机器永远都是机器,它不可能有智慧,最起码就目前的计算机体系结构而言,它的智慧也只是在强大的算力上模拟来的,机器并不会思考!但是,就人工智能产品而言,它确确实实在进行一些列复杂的思考……而这又怎么解释呢?答案是“人类规定了机器在处理问题时的一系列规则”,而这个规则的定制就属于人工智能学习方向上的以科研为目的的理论知识学习。
通过上述解释也可以看出,人工智能理论知识的学习并不简单,最起码对于全国99%的人来说这是一个比较抽象的学科领域。作为学习者,我认为应当具备以下几个学习条件:
1.良好的英文文献阅读能力。就目前情况来看,不管是国内专家还是国外专家,都更倾向于通过英文期刊来发表自己的研究成果,所以,良好的英文文献阅读能力对于了解和学习领域前沿成果,培养自己的科研思路是非常重要的。
2.扎实的数学基础,对高等数学、线性代数、离散数学等应具有最基本的掌握。人类对于机器智能化运行规则的规定正是通过一些列复杂的数学公式完成的,以卷积神经网络为例,如果我们不懂最基础的卷积运算,那怎能搞懂什么是卷积神经网络?我认为,这也是学习人工智能最难的一部分。
3.良好的计算机知识体系。人工智能虽然不是因计算机而生,但却是因计算机而火。所以,掌握基本的计算机知识,有基本的编程基础对于学习人工智能理论知识有很大的帮助,马克思说实践是检验真理的唯一标准,只有在不断的应用、测试中,我们才能更好的理解其基本运行原理。
当然,以科研为目的的人工智能理论学习所要满足的条件远不止以上三个,但是上述三个条件确实是最基本、最难搞定的要求,换句话说,就这三个条件,我认为就可以劝退百分之99的意向学习者了,如果有兴趣有毅力,能坚持,那就开始吧,学到之后,你将打开剖析世界真理的大门,更精彩的世界在前方等着你。
出于应用目的的开发技能学习
相对来说,这种学习方式相较于理论学习要简单的多。但是,有一点我们需要清楚,虽然优秀的人工智能理论研究者不一定是优秀的人工智能应用开发者,但优秀的人工智能开发者,一定会是一位熟练掌握人工智能理论基础的理论研究者。但世事无绝对,相对于凤毛麟角的技术大牛,如果我们放低自己的要求,将自己定位为一名普通的人工智能开发者,那么,我们的学习条件要低很多。可以总结为以下几点:
1.基本了解所学人工智能领域的基本原理。对于以开发为目的的学习方式来讲,基本了解所学领域的基本原理是非常有必要的。同样的,我们以卷积神经网络为例,如果我们要以卷积神经网络开发一款识图工具,那么我们最起码要懂得如何在代码中设置卷积核的大小,要懂得设置几层神经网络效果最好,要知道什么是特征向量,并懂得如何通过特征向量计算两张图片的相似度。
2.掌握以python为主的计算机编程语言。因为就我自己而言,python是我在人工智能领域的主力开发语言,但这并不意味着其它语言不行。比如,如果熟练使用java,也是可以的。我之所以推荐python,那是因为用python做人工智能开发的人太多太多了,相对来说基于python的来源工具和教程也是非常的多,对于我们的学习,会有比较大的帮助。
3.要懂得充分利用以github为主的代码托管平台,并养成勤查好问的好习惯。对于这一条我就不细说了,总结一句话,不会查找现成的开源代码的程序员不是一个合格的程序员。
总而言之,不管是理论学习还是应用开发学习,在人工智能领域都是不简单的,当然,有志者事竟成,如果真的感兴趣,我相信没有什么能够阻挡你学习的步伐。
最后插一句,我认为研究生更适合从事人工智能领域的工作,因为有一个好的指导老师对于学习人工智能是非常有帮助的,在这一资源上,我相信大多数人是无法和研究生相比的。
人工智能分类比较多,看你研究什么。