学人工智能先要学啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学人工智能先要学啥?相关的知识,希望对你有一定的参考价值。

想学人工智能首先应该了解人工智能。
人工智能的定义,核心,现在的发展状况,趋势,前景。这些基础的认知还是要有的。
还有人工智能的基础入门就是先要学会python这门语言。
python派森是一种高级的编程语言,简单易学,开源,在计算机领域所有的关于程序代码的专业都与python有关系,所以它也是人工智能的基础语言。学好python入门是关键,入门知识不需要老师自己在网上找资料就可以我推荐你去尚学堂的官网上学习,里面有免费的视频入门资料,而且还可以免费试学。如果你是在找不到的话可以关注我,留言个我,我会把入门的视频资料发给你。
参考技术A 人工智能是一个包含很多学科的交叉学科,你需要了解计算机的知识、信息论、控制论、图论、心理学、生物学、热力学,要有一定的哲学基础,有科学方法论作保障。人工智能学习路线最新版本在此奉上:
首先你需要数学基础:高等数学,线性代数,概率论数理统计和随机过程,离散数学,数值分析;
其次需要算法的积累:人工神经网络,支持向量机,遗传算法等等算法;
当然还有各个领域需要的算法,比如你要让机器人自己在位置环境导航和建图就需要研究SLAM;
算法很多需要时间的积累。
然后,需要掌握至少一门编程语言,毕竟算法的实现还是要编程的;如果深入到硬件,一些电类基础课必不可少;
人工智能一般要到研究生才会去学,本科也就是蜻蜓点水看看而已,毕竟需要的基础课过于庞大。
刚才提到的这些学科的每一门都是博大精深的,但同时很多事物都是相通的,你学了很多知识有了一定的基础的时候再看相关知识就会触类旁通,很容易。在这中间关键是要有自己的思考,不能人云亦云。毕竟,人工智能是一个正在发展并具有无穷挑战和乐趣的学科。
人工智能的首选语言是Python,因此大家一定要学好Python语言。人工智能学习的重点是机器学习:
1、斯坦福大学公开课 :机器学习课程
2、数据分析竞赛kaggle
3、Deep learning-author Joshua Bengio
机器学习书单python实战编程
1、Python for Data Analysis
2、SciPy and NumPy
3、Machine Learning for Hackers
4、Machine Learning in Action
参考技术B 首先你需要数学基础:高等数学,线性代数,概率论数理统计和随机过程,离散数学,数值分析
其次需要算法的积累:人工神经网络,支持向量机,遗传算法等等算法;当然还有各个领域需要的算法,比如你要让机器人自己在位置环境导航和建图就需要研究SLAM;总之算法很多需要时间的积累;
然后,需要掌握至少一门编程语言,毕竟算法的实现还是要编程的;如果深入到硬件的话,一些电类基础课必不可少;
人工智能一般要到研究生才会去学,本科也就是蜻蜓点水看看而已,毕竟需要的基础课过于庞大。
而这些基本上机构是教不了的,顶多教一下python,而py自学即可,我便是在动力节点学习java毕业工作后在自学py的。
参考技术C 都是零基础入学的,这是人工智能的所有课程,要是感兴趣的话,可以了解一下:
第一阶段
前端开发 Front-end Development
1、桌面支持与系统管理(计算机操作基础Windows7)
2、Office办公自动化
3、WEB前端设计与布局
4、javascript特效编程
5、Jquery应用开发

第二阶段
核心编程 Core Programming
1、Python核心编程
2、mysql数据开发
3、Django 框架开发
4、Flask web框架
5、综合项目应用开发

第三阶段
爬虫开发 Reptile Development
1、网络爬虫开发
2、爬虫项目实践应用
3、机器学习算法
4、Python人工智能数据分析
5、python人工智能高级开发

第四阶段
人工智能 PArtificial Intelligence
1、实训一:WEB全栈开发
2、实训二:人工智能终极项目实战
参考技术D

首先,数学当然少不了

数学是一切理论的基础,基本上学习高等数学,线性代数,复变函数等,离散数学是以计算机工作思维的数学逻辑,所以尤其重要。

其次是数据结构

数据是人工智能的基础,人工智能必须得扎根在数据肥沃土壤上,才能更加茂盛鲜艳,所以对于数据相关课程的学习显得尤为重要

然后是编程

是将整个数学模型得以实现的技术基础,对于编程掌握一门语言便可,其它语言基本上类似相通的,建议学习Python,简单容易入手,太难的学习起来容易放弃

ACM入门学啥

初学者建议购买,《算法竞赛入门经典》 刘汝佳作,十分好,在深入可以是他的另外一本,黑书,《算法艺术与信息学竞赛》。
计划:
ACM的算法(觉得很好,有层次感)POJ上的一些水题(可用来练手和增加自信)
(poj3299,poj2159,poj2739,poj1083,poj2262,poj1503,poj3006,poj2255,poj3094)
初期:
一.基本算法:
(1)枚举. (poj1753,poj2965)
(2)贪心(poj1328,poj2109,poj2586)
(3)递归和分治法.
(4)递推.
(5)构造法.(poj3295)
(6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)
二.图算法:
(1)图的深度优先遍历和广度优先遍历.
(2)最短路径算法(dijkstra,bellman-ford,floyd,heap+dijkstra)
(poj1860,poj3259,poj1062,poj2253,poj1125,poj2240)
(3)最小生成树算法(prim,kruskal)
(poj1789,poj2485,poj1258,poj3026)
(4)拓扑排序 (poj1094)
(5)二分图的最大匹配 (匈牙利算法) (poj3041,poj3020)
(6)最大流的增广路算法(KM算法). (poj1459,poj3436)
三.数据结构.
(1)串 (poj1035,poj3080,poj1936)
(2)排序(快排、归并排(与逆序数有关)、堆排) (poj2388,poj2299)
(3)简单并查集的应用.
(4)哈希表和二分查找等高效查找法(数的Hash,串的Hash)
(poj3349,poj3274,POJ2151,poj1840,poj2002,poj2503)
(5)哈夫曼树(poj3253)
(6)堆
(7)trie树(静态建树、动态建树) (poj2513)
四.简单搜索
(1)深度优先搜索 (poj2488,poj3083,poj3009,poj1321,poj2251)
(2)广度优先搜索(poj3278,poj1426,poj3126,poj3087.poj3414)
(3)简单搜索技巧和剪枝(poj2531,poj1416,poj2676,1129)
五.动态规划
(1)背包问题. (poj1837,poj1276)
(2)型如下表的简单DP(可参考lrj的书 page149):
1.E[j]=optD[i]+w(i,j) (poj3267,poj1836,poj1260,poj2533)
2.E[i,j]=optD[i-1,j]+xi,D[i,j-1]+yj,D[i-1][j-1]+zij (最长公共子序列)
(poj3176,poj1080,poj1159)
3.C[i,j]=w[i,j]+optC[i,k-1]+C[k,j].(最优二分检索树问题)
六.数学
(1)组合数学:
1.加法原理和乘法原理.
2.排列组合.
3.递推关系.
(POJ3252,poj1850,poj1019,poj1942)
(2)数论.
1.素数与整除问题
2.进制位.
3.同余模运算.
(poj2635, poj3292,poj1845,poj2115)
(3)计算方法.
1.二分法求解单调函数相关知识.(poj3273,poj3258,poj1905,poj3122)
七.计算几何学.
(1)几何公式.
(2)叉积和点积的运用(如线段相交的判定,点到线段的距离等). (poj2031,poj1039)
(3)多边型的简单算法(求面积)和相关判定(点在多边型内,多边型是否相交)
(poj1408,poj1584)
(4)凸包. (poj2187,poj1113)
中级:
一.基本算法:
(1)C++的标准模版库的应用. (poj3096,poj3007)
(2)较为复杂的模拟题的训练(poj3393,poj1472,poj3371,poj1027,poj2706)
二.图算法:
(1)差分约束系统的建立和求解. (poj1201,poj2983)
(2)最小费用最大流(poj2516,poj2516,poj2195)
(3)双连通分量(poj2942)
(4)强连通分支及其缩点.(poj2186)
(5)图的割边和割点(poj3352)
(6)最小割模型、网络流规约(poj3308, )
三.数据结构.
(1)线段树. (poj2528,poj2828,poj2777,poj2886,poj2750)
(2)静态二叉检索树. (poj2482,poj2352)
(3)树状树组(poj1195,poj3321)
(4)RMQ. (poj3264,poj3368)
(5)并查集的高级应用. (poj1703,2492)
(6)KMP算法. (poj1961,poj2406)
四.搜索
(1)最优化剪枝和可行性剪枝
(2)搜索的技巧和优化 (poj3411,poj1724)
(3)记忆化搜索(poj3373,poj1691)
五.动态规划
(1)较为复杂的动态规划(如动态规划解特别的施行商问题等)
(poj1191,poj1054,poj3280,poj2029,poj2948,poj1925,poj3034)
(2)记录状态的动态规划. (POJ3254,poj2411,poj1185)
(3)树型动态规划(poj2057,poj1947,poj2486,poj3140)
六.数学
(1)组合数学:
1.容斥原理.
2.抽屉原理.
3.置换群与Polya定理(poj1286,poj2409,poj3270,poj1026).
4.递推关系和母函数.
(2)数学.
1.高斯消元法(poj2947,poj1487, poj2065,poj1166,poj1222)
2.概率问题. (poj3071,poj3440)
3.GCD、扩展的欧几里德(中国剩余定理) (poj3101)
(3)计算方法.
1.0/1分数规划. (poj2976)
2.三分法求解单峰(单谷)的极值.
3.矩阵法(poj3150,poj3422,poj3070)
4.迭代逼近(poj3301)
(4)随机化算法(poj3318,poj2454)
(5)杂题.
(poj1870,poj3296,poj3286,poj1095)
七.计算几何学.
(1)坐标离散化.
(2)扫描线算法(例如求矩形的面积和周长并,常和线段树或堆一起使用).
(poj1765,poj1177,poj1151,poj3277,poj2280,poj3004)
(3)多边形的内核(半平面交)(poj3130,poj3335)
(4)几何工具的综合应用.(poj1819,poj1066,poj2043,poj3227,poj2165,poj3429)
高级:
一.基本算法要求:
(1)代码快速写成,精简但不失风格
(poj2525,poj1684,poj1421,poj1048,poj2050,poj3306)
(2)保证正确性和高效性. poj3434
二.图算法:
(1)度限制最小生成树和第K最短路. (poj1639)
(2)最短路,最小生成树,二分图,最大流问题的相关理论(主要是模型建立和求解)
(poj3155, poj2112,poj1966,poj3281,poj1087,poj2289,poj3216,poj2446
(3)最优比率生成树. (poj2728)
(4)最小树形图(poj3164)
(5)次小生成树.
(6)无向图、有向图的最小环
三.数据结构.
(1)trie图的建立和应用. (poj2778)
(2)LCA和RMQ问题(LCA(最近公共祖先问题) 有离线算法(并查集+dfs) 和 在线算法
(RMQ+dfs)).(poj1330)
(3)双端队列和它的应用(维护一个单调的队列,常常在动态规划中起到优化状态转移的
目的). (poj2823)
(4)左偏树(可合并堆).
(5)后缀树(非常有用的数据结构,也是赛区考题的热点).
(poj3415,poj3294)
四.搜索
(1)较麻烦的搜索题目训练(poj1069,poj3322,poj1475,poj1924,poj2049,poj3426)
(2)广搜的状态优化:利用M进制数存储状态、转化为串用hash表判重、按位压缩存储状态、双向广搜、A*算法. (poj1768,poj1184,poj1872,poj1324,poj2046,poj1482)
(3)深搜的优化:尽量用位运算、一定要加剪枝、函数参数尽可能少、层数不易过大、可以考虑双向搜索或者是轮换搜索、IDA*算法. (poj3131,poj2870,poj2286)
五.动态规划
(1)需要用数据结构优化的动态规划.
(poj2754,poj3378,poj3017)
(2)四边形不等式理论.
(3)较难的状态DP(poj3133)
六.数学
(1)组合数学.
1.MoBius反演(poj2888,poj2154)
2.偏序关系理论.
(2)博奕论.
1.极大极小过程(poj3317,poj1085)
2.Nim问题.
七.计算几何学.
(1)半平面求交(poj3384,poj2540)
(2)可视图的建立(poj2966)
(3)点集最小圆覆盖.
(4)对踵点(poj2079)
八.综合题.
(poj3109,poj1478,poj1462,poj2729,poj2048,poj3336,poj3315,poj2148,poj1263)gsyagsy 2007-11-29 00:22
以及补充 Dp状态设计与方程总结
1.不完全状态记录
<1>青蛙过河问题
<2>利用区间dp
2.背包类问题
<1> 0-1背包,经典问题
<2>无限背包,经典问题
<3>判定性背包问题
<4>带附属关系的背包问题
<5> + -1背包问题
<6>双背包求最优值
<7>构造三角形问题
<8>带上下界限制的背包问题(012背包)
3.线性的动态规划问题
<1>积木游戏问题
<2>决斗(判定性问题)
<3>圆的最大多边形问题
<4>统计单词个数问题
<5>棋盘分割
<6>日程安排问题
<7>最小逼近问题(求出两数之比最接近某数/两数之和等于某数等等)
<8>方块消除游戏(某区间可以连续消去求最大效益)
<9>资源分配问题
<10>数字三角形问题
<11>漂亮的打印
<12>邮局问题与构造答案
<13>最高积木问题
<14>两段连续和最大
<15>2次幂和问题
<16>N个数的最大M段子段和
<17>交叉最大数问题
4.判定性问题的dp(如判定整除、判定可达性等)
<1>模K问题的dp
<2>特殊的模K问题,求最大(最小)模K的数
<3>变换数问题
5.单调性优化的动态规划
<1>1-SUM问题
<2>2-SUM问题
<3>序列划分问题(单调队列优化)
6.剖分问题(多边形剖分/石子合并/圆的剖分/乘积最大)
<1>凸多边形的三角剖分问题
<2>乘积最大问题
<3>多边形游戏(多边形边上是操作符,顶点有权值)
<4>石子合并(N^3/N^2/NLogN各种优化)
7.贪心的动态规划
<1>最优装载问题
<2>部分背包问题
<3>乘船问题
<4>贪心策略
<5>双机调度问题Johnson算法
8.状态dp
<1>牛仔射击问题(博弈类)
<2>哈密顿路径的状态dp
<3>两支点天平平衡问题
<4>一个有向图的最接近二部图
9.树型dp
<1>完美服务器问题(每个节点有3种状态)
<2>小胖守皇宫问题
<3>网络收费问题
<4>树中漫游问题
<5>树上的博弈
<6>树的最大独立集问题
<7>树的最大平衡值问题
<8>构造树的最小环
参考技术A 1 学好一门语言(c/c++/java)建议学C;
2 找个好点的学校acm题库去练习简单题(前期先掌握acm编程的格式,格式很重要);

3学数据结构掌握算法

多写代码+独立思考 就能成为大神来自:求助得到的回答
参考技术A 1、首先应学会基本的编程语言java,或c++都不错;
2、其实,acm靠的不仅是会编程,更重要的是一种思维,主要是算法;
3、学会思考,创新思维是取胜的关键
参考技术B 先学数据结构,可以看《大话数据结构》,然后看算法入门书,推荐《趣学算法》,入门后看《算法导论》,《算法竞赛入门》,开始刷题

以上是关于学人工智能先要学啥?的主要内容,如果未能解决你的问题,请参考以下文章

人工智能学啥?

Python 进阶都要学啥?

软件开发一般学啥?

python后端开发需要学啥?

Python都要学啥?走数据分析的话合适吗?

ACM入门学啥