博舍

想学数据分析(人工智能)需要学哪些课程 人工智能要学哪些科目和技能呢

想学数据分析(人工智能)需要学哪些课程

本文转自:

RobinShen

利益相关:楼主以应用数学和运筹学的背景转到博士德国海德堡大学机器学习、计算机视觉这俩个数据分析(人工智能)的分支里来,希望对想入门数据科学和人工智能的朋友们有点借鉴作用。

 

首先如果对人工智能、数据科学还不是很了解的同学,可参考以下综述:大话“人工智能、数据科学、机器学习”--综述-知乎专栏

 

先说点宽泛的、上纲上线的东西。(要干货的可以直接跳至后半部分)机器学习,大数据这些新兴专业,是随着工业界与日俱增的需求而随之出现的(中国最近批准了第一批试点的几十所高校开设数据科学专业)。其实任何专业都是这样一个需求导向的过程,包括微电子,计算机,还有什么房地产专业。。你说几十年前你们听说过这些专业么?自然科学如数学、物理、化学、生物长盛不衰,是有其道理的,这也是为什么我们初高中我们都在学这些东西。而某些专业,也会随着市场需求的锐减而减少甚至消失。这些专业名词在刚出现的时候往往是“凭空造诣”或者是强加术语,然而知识是需要积累的,不是凭空出现的,也就证明了如大数据、机器学习这样的东西,其实是科研圈已经研究或者已用了很多年了,然后市场需求强烈,为了顺应市场需求,大批学校争相决定开这个专业,于是喊一帮教授或院士过来拍板,这个专业需要哪些基础课程,我们就把这些基础课放进来,这也是我下面的回答要强调的。(因此“需要学哪些课程”这个问题最好的答案,就是去一个名校的数据科学或机器学习项目里看课程设置,这里我推荐一下UCL的MachineLearningMsc)

 

本文要讲的,不包括数据库那个方向的大数据。简单的说,原理和基础都在数学这边,当然有很多偏应用和软件使用的课程,这些直接大街上报个培训班就能学会的技术含量不那么高的东西,不在我的讨论范围内。我要讨论的,是如何系统的学习,然后自己能编出这些处理大数据的程序或软件,我想,这才能称为一个合格的数据科学家。

 

好了,下面是干货。(已经过多次私人留学咨询中,多个高校数据科学/人工智能硕士项目的先修课程验证)

1,线性代数(矩阵表示和运算)是基础中的基础,以及微积分(求导,极限);2,数据处理当然需要编程了,因此C/C++/Python任选一门(推荐Python,因为目前很多库和Library都是用python封装),数据结构可以学学,让你编程更顺手更高效,但是编程不是数据处理的核心,相对而言算法还来的重要一些,因此建议再上一门算法课。当然了,楼主所在的图像处理界,熟练使用matlab或者opencv是必要条件,但是again他们只是工具,业余时间自学,多练练就没问题。有同学一直提问用R行不行,楼主补充一点,用什么编程语言很大部分取决于你的核心算法会调用什么已有的库函数,比如楼主的科研里面核心算法往往是MIP问题需要调用Cplex库函数,因此C/C++/Python/Java这些和Cplex接口良好的语言都可以拿来用,这时候R就别想了。另外往往图像处理界一些open-source的code都用Python写的,因此需要用到这些code的话,当然写Python直接调用比较方便咯。

3,Mid-level的课程,概率论+统计(很多数据分析建模基于统计模型),线性规划+凸优化(或者只学一门叫numericaloptimization,统计到最后也还是求解一个优化问题,当然也有纯优化模型不用统计模型的),MachineLearning(其实机器学习,通篇都是在讲用一些统计和优化来做clustering和classification这俩个人工智能最常见的应用),学到这里,你基本就会发现,学这一门课中间会穿插着很多其他课的内容。恩,知识总是相通的嘛,特别是这些跨专业的新兴学科,都是在以往学科的基础上由社会需求发展而来。学到这里,其实你已经能看懂并且自己可以编写机器学习里面很多经典的案例了,比如regression,clustering,outlierdetection。

关于优化类课程的综述,欢迎关注我的专栏:[运筹帷幄]大数据和人工智能时代下的运筹学-知乎专栏运筹学(最优化理论)如何入门?-知乎

4,再高阶的课程,就是比较specific的课程了,可以看你做的项目或者以后的concentration再选择选修,比如:ProbabilisticGraphicalModels(概率图模型),NolinearOptimization(非线性优化),IntegerProgramming(整数规划),计算机视觉,模式识别,视频追踪,医学图像处理,增强学习,深度学习,神经网络,自然语言处理,网络信息安全,等等等等。再比如有用偏微分方程做图像处理的(比较小众),那么这时候你肯定要去学一下偏微分方程了,大都是以科研为主导的。科研嘛,为了发文章,就是要尝试前人没尝试过的方法,万一效果不错呢,就是一篇好paper了,对吧。

注意这里是偏机器学习或计算机视觉的,如果是自然语言处理,那么还要修一些语言学(句法等结构)的基础课。

正如我说的,学到Mid-level,就已经具备绝大部分理论基础了。然后做几个实际项目,就能上手然后就可以“吹嘘”自己是搞数据科学的,就能找到一份工作了。要读Phd搞科研,那么高阶课程必不可少,而且同一个topic你需要上好几门课,并且你博士的课题,很可能只是一本书中一个章节里面一小节里讲的算法,去改进他。比如,楼主的博士课题就是regression+clustering+segmentation。

至于书目,没有特别推荐的,但是建议看英文原版。另外直接翻墙Youtube看视频课程,很多国际知名教授都很无私地把自己上课的视频放在youtube上免费学习(搜索我上面列出的科目名字)。如果确实要楼主推荐,那就推荐海德堡大学历史上最年轻的教授Fred的机器学习视频(我基本都看过):https://www.youtube.com/playlist?list=PLuRaSnb3n4kSgSV35vTPDRBH81YgnF3Dd

另外一个教授给你上课的时候,开头一般是会推荐书给你的(如果你确实喜欢看书的话)。当然了,翻墙是楼主suppose你们需要拥有的基本生存技能。(注:以下再推荐一些视频,受之以渔。多为graduatecourse,仅作演示目的)

1,       MachineLearningbyProf.NandodeFreitas,此视频是其在UBC时13年所录,后来跳槽去牛津计算机系了。https://www.youtube.com/playlist?list=PLE6Wd9FR--EdyJ5lbFl8UuGjecvVw66F6

2,       DeeplearningatOxford2015  byProf.NandodeFreitas,跳槽到牛津所录。https://www.youtube.com/playlist?list=PLE6Wd9FR--EfW8dtjAuPoTuPcqmOV53Fu

3,       ProbabilisticGraphicalModelsbyDaphneKoller,斯坦福大学计算机系教授https://www.youtube.com/playlist?list=PL50E6E80E8525B59C另外还有一些付费的学习网站,如Coursera,优点是结课后可以拿分数和证书,并且很多世界名校的教授在上面开课。---------------------------------------------------------------------------再罗嗦一下解决一个实际大数据问题的一般流程。比如一个生物医学公司找到我,要求我做一个视频里面celltracking的项目。(一帧既为一张图片,假设500*500=25w像素,一个video算它1000帧,总共250million像素,可以算大数据了吧?)具体流程:数学建模--设计算法--用任意编程语言编写算法(其中会涉及到数据结构,即如何搭建程序使程序更加高效)--导入视频数据到算法里得出结果--根据结果的好坏改进算法甚至模型(如此往复)。

这里我强调一下数学建模的重要性,为何要数学建模呢?的确很多naive的算法完全不需要建立在数学模型之上,比如clustering里面经典的EM算法,是一个iterativemethod,基本一眼就能看出算法的思路然后编程实现,所以称之为naive。那么基于数学模型上的算法有何妙处呢?答案是一个好的数学模型,往往是被研究了几十甚至几百年的学科,比如图论,很多性质都已经被研究得很透彻可以直接使用。回到我的这个例子,celltrancking,我可以建立一个networkflow(网络流)的模型(其实也是基于图论的模型),那么这个networkflow模型,是一个被研究了很久的领域,因此我可以直接使用很多很多已知的好定理或算法来服务我的问题。另外很多时候,经典的数学模型里面已有很多经典的算法,比如networkflow基于里的maxflow/mincuttheorem的算法,如果能在其基础上做改进,等于站在巨人的肩膀。因此这就是数学建模的重要之处。往往同一个问题,从不同的角度去看可以有千百种数学建模方法,而不同的数学模型差别往往巨大,而数学建模又是解决一个实际问题的第一步,在这基础上才考虑算法和数据结构设计。因此,数学基础在我看来是重中之重,也是我推荐学习的课程的核心。当然了,计算机系出生的朋友,数学这个层面学习得不是很深,比较偏向于算法的设计和实现,是另外一个侧重点。先码到这,有时间再更新。关于入行后就业前景(包括第三条运筹学--算法工程师),参见:国内(全球)TOP互联网公司、学术界超高薪的揽才计划有哪些?-知乎中国计算机视觉的前途在哪?机器视觉工程师又何去何从?-知乎关于我对最优化理论在咨询行业的应用,参见DataScience/Analytics出身,可以在咨询行业做些什么?-RuobingShen的回答

人工智能工程师一般需要学什么

随着AI技术的第三次崛起,我们迎来了人工智能的时代。在深度学习不断突破和发展的形势下,人工智能在许多领域都有了不同程度的应用随之而来的是人工智能相关人才的紧缺。如今,人工智能工程师已然成为了人人追捧的香饽饽。那么,人工智能工程师一般需要学什么呢? Python基础、数据科学库、机器学习、深度学习、自然语言处理、数据挖掘以及图像处理这些知识点一个都不能少。

1、编程语言

众所周知,Python是人工智能的首选语言,因此人工智能工程师一定要掌握 Python基础。比如说Python环境配置、数值运算、字符串操作、数据结构、判断结构、循环结构以及模块与包等等基础语言,而且必须熟练掌握。当然熟练掌握的意思不是看过一遍理论基础就行,还要懂得实践和应用。因此,在学习 Python基础语法的时候就要多敲敲代码,做做相应的练习。

入门教程推荐:人工智能之python编程零基础入门

2、数据科学库

科学计算库的学习内容包括Numpy概述、Array数组、数组结构、数组类型、数值运算、排序操作、数组形状操作、数组生成函数、常用生成函数等等。除此之外,数据科学库还涉及数据分析处理库、可视化库Matplotlib和可视化库Seaborn。

入门教程推荐:简单快速入门Python机器学习

3、人工智能核心技术

说到人工智能,就不得不提机器学习、深度学习、自然语言处理等核心技术和实现原理。机器学习有各种算法需要学习,比如线性回归算法、逻辑回归算法、决策树贝叶斯算法、KMEANS聚类、DBSCAN聚类。深度学习又涉及最优化与反向传播、神经网络、卷积神经网络、卷积参数、自然语言处理、网络模型等知识点。还有自然语言处理,也是人工智能工程师必须掌握的知识。

入门教程推荐:3天带你玩转Python深度学习

4、数据挖掘

数据挖掘就是从海量数据中“挖掘”隐藏信息。在商业环境中,企业希望让存放在数据库中的数据能“说话”,支持决策。所以,数据挖掘人工智能技术的一项重要应用。数据挖掘通常与计算机科学有关,并通过统计、在线分析处理、情报检索、机器学习、专家系统和模式识别等诸多方法来实现上述目标。

入门教程推荐:4天快速入门Python数据挖掘

5、图像处理

为什么人工智能工程师一般都需要学习图像处理?理由很简单,图像处理是AI技术的一个重要落地应用。在许多应用场景中,都有图像处理的身影。我们谈的无人驾驶、AI助手、人脸识别,都有图像处理的重要应用。因此,对抗生成网络、风格转换、图像补全、超分辨率重构等等都需要学习。

入门教程推荐:AI-OpenCV图像处理10小时零基础入门

大致来讲,人工智能工程师一般需要学习就是这些了。如果能够掌握以上说的这些知识和技术,大家就能掌握人工智能算法原理及,并应用在实际任务中。

学习人工智能需要哪些必备基础

当下,人工智能成了新时代的必修课,其重要性已无需赘述,但作为一个跨学科产物,它包含的内容浩如烟海,各种复杂的模型和算法更是让人望而生畏。对于大多数的新手来说,如何入手人工智能其实都是一头雾水,比如到底需要哪些数学基础、是否要有工程经验、对于深度学习框架应该关注什么等等。

 

那么,学习人工智能该从哪里开始呢?人工智能的学习路径又是怎样的?

本文节选自王天一教授在极客时间App开设的“人工智能基础课”,已获授权。更多相关文章,请下载极客时间App,订阅专栏获取。

数学基础知识蕴含着处理智能问题的基本思想与方法,也是理解复杂算法的必备要素。今天的种种人工智能技术归根到底都建立在数学模型之上,要了解人工智能,首先要掌握必备的数学基础知识,具体来说包括:

线性代数:如何将研究对象形式化?概率论:如何描述统计规律?数理统计:如何以小见大?最优化理论:如何找到最优解?信息论:如何定量度量不确定性?形式逻辑:如何实现抽象推理?

 

线性代数:如何将研究对象形式化?

事实上,线性代数不仅仅是人工智能的基础,更是现代数学和以现代数学作为主要分析方法的众多学科的基础。从量子力学到图像处理都离不开向量和矩阵的使用。而在向量和矩阵背后,线性代数的核心意义在于提供了⼀种看待世界的抽象视角:万事万物都可以被抽象成某些特征的组合,并在由预置规则定义的框架之下以静态和动态的方式加以观察。

着重于抽象概念的解释而非具体的数学公式来看,线性代数要点如下:线性代数的本质在于将具体事物抽象为数学对象,并描述其静态和动态的特性;向量的实质是n维线性空间中的静止点;线性变换描述了向量或者作为参考系的坐标系的变化,可以用矩阵表示;矩阵的特征值和特征向量描述了变化的速度与方向。

总之,线性代数之于人工智能如同加法之于高等数学,是一个基础的工具集。

 

概率论:如何描述统计规律?

除了线性代数之外,概率论也是人工智能研究中必备的数学基础。随着连接主义学派的兴起,概率统计已经取代了数理逻辑,成为人工智能研究的主流工具。在数据爆炸式增长和计算力指数化增强的今天,概率论已经在机器学习中扮演了核心角色。

同线性代数一样,概率论也代表了一种看待世界的方式,其关注的焦点是无处不在的可能性。频率学派认为先验分布是固定的,模型参数要靠最大似然估计计算;贝叶斯学派认为先验分布是随机的,模型参数要靠后验概率最大化计算;正态分布是最重要的一种随机变量的分布。

 

数理统计:如何以小见大?

在人工智能的研究中,数理统计同样不可或缺。基础的统计理论有助于对机器学习的算法和数据挖掘的结果做出解释,只有做出合理的解读,数据的价值才能够体现。数理统计根据观察或实验得到的数据来研究随机现象,并对研究对象的客观规律做出合理的估计和判断。

虽然数理统计以概率论为理论基础,但两者之间存在方法上的本质区别。概率论作用的前提是随机变量的分布已知,根据已知的分布来分析随机变量的特征与规律;数理统计的研究对象则是未知分布的随机变量,研究方法是对随机变量进行独立重复的观察,根据得到的观察结果对原始分布做出推断。

用一句不严谨但直观的话讲:数理统计可以看成是逆向的概率论。数理统计的任务是根据可观察的样本反过来推断总体的性质;推断的工具是统计量,统计量是样本的函数,是个随机变量;参数估计通过随机抽取的样本来估计总体分布的未知参数,包括点估计和区间估计;假设检验通过随机抽取的样本来接受或拒绝关于总体的某个判断,常用于估计机器学习模型的泛化错误率。

 

最优化理论:如何找到最优解?

本质上讲,人工智能的目标就是最优化:在复杂环境与多体交互中做出最优决策。几乎所有的人工智能问题最后都会归结为一个优化问题的求解,因而最优化理论同样是人工智能必备的基础知识。最优化理论研究的问题是判定给定目标函数的最大值(最小值)是否存在,并找到令目标函数取到最大值(最小值)的数值。如果把给定的目标函数看成一座山脉,最优化的过程就是判断顶峰的位置并找到到达顶峰路径的过程。

通常情况下,最优化问题是在无约束情况下求解给定目标函数的最小值;在线性搜索中,确定寻找最小值时的搜索方向需要使用目标函数的一阶导数和二阶导数;置信域算法的思想是先确定搜索步长,再确定搜索方向;以人工神经网络为代表的启发式算法是另外一类重要的优化方法。

 

信息论:如何定量度量不确定性?

近年来的科学研究不断证实,不确定性就是客观世界的本质属性。换句话说,上帝还真就掷骰子。不确定性的世界只能使用概率模型来描述,这促成了信息论的诞生。

信息论使用“信息熵”的概念,对单个信源的信息量和通信中传递信息的数量与效率等问题做出了解释,并在世界的不确定性和信息的可测量性之间搭建起一座桥梁。

总之,信息论处理的是客观世界中的不确定性;条件熵和信息增益是分类问题中的重要参数;KL散度用于描述两个不同概率分布之间的差异;最大熵原理是分类问题汇总的常用准则。

 

形式逻辑:如何实现抽象推理?

1956年召开的达特茅斯会议宣告了人工智能的诞生。在人工智能的襁褓期,各位奠基者们,包括约翰·麦卡锡、赫伯特·西蒙、马文·闵斯基等未来的图灵奖得主,他们的愿景是让“具备抽象思考能力的程序解释合成的物质如何能够拥有人类的心智。”通俗地说,理想的人工智能应该具有抽象意义上的学习、推理与归纳能力,其通用性将远远强于解决国际象棋或是围棋等具体问题的算法。

如果将认知过程定义为对符号的逻辑运算,人工智能的基础就是形式逻辑;谓词逻辑是知识表示的主要方法;基于谓词逻辑系统可以实现具有自动推理能力的人工智能;不完备性定理向“认知的本质是计算”这一人工智能的基本理念提出挑战。

《人工智能基础课》全年目录

本专栏将围绕机器学习与神经网络等核心概念展开,并结合当下火热的深度学习技术,勾勒出人工智能发展的基本轮廓与主要路径。

作者:AI前线链接:https://juejin.im/post/5a2bd31a51882540f36379d0来源:掘金著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。---------------------本文来自itheima_Wujie的CSDN博客,全文地址请点击:https://blog.csdn.net/itheima_Wujie/article/details/78765429?utm_source=copy

人工智能人才需要学习什么知识

现阶段人工智能是一个十分火热的事物,火热到什么地步呢?火热到很多高校都开始设立人工智能方面的专业和课程,并且加大力度培养人工智能人才,那么人工智能人才需要具备什么样的知识架构呢?人工智能人才需要学习什么知识呢?下面我们就给大家介绍一下这个内容。

首先,人工智能的学习需要高水平的人工智能人才,而对人工智能人才的要求就是需要数学基础好、计算/软件程序功底扎实、人工智能专业知识全面。首先,无论是在抽象建模还是模型算法分析设计环节,都需要依赖良好的数学基础,因为人工智能所面对的问题千变万化,这导致了其所涉及的数学工具种类多样。事实上,人工智能的核心领域,即机器学习是计算机科学中对数学基础要求最高的分支之一。所以人工智能对人才的有很多的要求。

其次就是复杂现实任务通常可以从多种角度进行抽象,而不同的抽象将导致巨大的差异。这就需要注意很多的问题,比如抽象出的问题是否可计算?从程序代码的角度是否易实现?从计算平台的角度是否便于高效处理?等等。要想回答一下这个问题就需要在算法分析、程序设计、计算系统方面具备扎实的基础。事实上,对一些现代大型人工智能程序而言,甚至连高维数组的存储顺序都需做到优化,这如果没有扎实的计算、软件程序功底显然是不行的。

最后,在我们解决现实的人工智能应用任务时,往往同时涉及多种人工智能专业知识,需有效进行融合发挥。因此,高水平的、能解决企业关键技术难题的人工智能人才,必须具备全面的人工智能专业知识。这些知识能够方便我们理解人工智能并能够朝着更好的方向发展。所以说,如果数学不好的同学那么就需要考虑考虑数据自己究竟是否适合这个专业。

在最后需要提醒大家的是,学习人工智能还是需要学习计算机、自动化、电子、软件等内容。人工智能所解决的问题都是充满不确定性的复杂问题,这就需要很高的处理事务的能力,如果我们不擅长处理事情,并且不适应随时随地出现的不确定性工作,那也不适合这个行业,就不建议大家学习这个专业,希望这篇文章能够给大家带来参考价值。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇