一、人工智能介绍
人工智能是很多技术的总称,包括机器人、语言识别、图像识别、自然语言处理和专家系统等,因为人工智能尚在发展阶段,所以也没有非常精准的定义,在行业内,人工智能与大数据密不可分,可以将很多大数据的应用(云计算平台等)归结为人工智能。
但目前的科研工作都集中在弱人工智能这部分,并很有希望在近期取得重大突破,电影里的人工智能多半都是在描绘强人工智能,而这部分在目前的现实世界里难以真正实现,因为一方面知识比较难以总结,另一方面总结出来的知识难以教给计算机,因为你自己还迷迷糊糊,觉得似乎有规律,就是说不出来,又怎么能通过编程教给计算机呢?(通常将人工智能分为弱人工智能和强人工智能,前者让机器具备观察和感知的能力,可以做到一定程度的理解和推理,而强人工智能让机器获得自适应能力,解决一些之前没有遇到过的问题)。
弱人工智能有希望取得突破,是如何实现的,“智能”又从何而来呢?这主要归功于一种实现人工智能的方法——机器学习。
机器是怎么学习的呢?机器储存数据的能力和统计能力很强,基于统计学习,一定能从大量的数字中发现一定的规律。
例、
在娱乐圈有很好的一个例子,可见一斑
有一位网友统计了知名歌手在大陆发行的 9 张专辑中 117 首歌曲的歌词,同一词语在一首歌出现只算一次,形容词、名词和动词的前十名如下表所示(词语后面的数字是出现的次数):
a |
形容词 |
b |
名词 |
c |
动词 |
0 |
孤独:34 |
0 |
生命:50 |
0 |
爱:54 |
1 |
自由:17 |
1 |
路:37 |
1 |
碎:37 |
2 |
迷惘:16 |
2 |
夜:29 |
2 |
哭:35 |
3 |
坚强:13 |
3 |
天空:24 |
3 |
死:27 |
4 |
绝望:8 |
4 |
孩子:23 |
4 |
飞:26 |
5 |
青春:7 |
5 |
雨:21 |
5 |
梦想:14 |
6 |
迷茫:6 |
6 |
石头:9 |
6 |
祈祷:10 |
7 |
光明:6 |
7 |
鸟:9 |
7 |
离去:10 |
如果我们随便写一串数字,然后按照数位依次在形容词、名词和动词中取出一个词,连在一起会怎么样呢?
例如取圆周率 3.1415926,对应的词语是:坚强,路,飞,自由,雨,埋,迷惘。稍微连接和润色一下:
坚强的孩子,
依然前行在路上,
张开翅膀飞向自由,
让雨水埋葬他的迷惘。
是不是有点感觉了?当然真正基于统计的学习算法比这个简单的统计复杂的多。
正文
一、人工智能相关工作介绍
人工智能方向的工作:
1.数据科学家
2.软件工程师
3.机器学习工程师
4.软件架构师
5.数据分析师
6.数据仓库工程师
7.全栈开发者
8.研究科学家
等
二、人工智能工程师的技能要求
关于数学
数学方面技能的掌握取决于研究深度。人工智能并不依赖与任何编程语言,这意味着开发人员需要掌握处理数据相关的其他技术,其中包括了算法,代数和微积分。具备这些技能的重要性显而易见。同时我们还需要了解人类对于自然语言处理的思维过程,其中的上下文联系,隐含意图以及所描述事物间的联系等等。这需要深入洞察人类的思维过程。
数学专业的学生更容易成为一名人工智能项目中的软件开发人员,因为他们已经具备了统计学的基础,而这对人工智能或机器学习是非常重要的。相反一名普通的软件开发人员不可能简单的通过某些Python库的运用就能解决实际问题。
统计学,数据建模,大数据,深度学习和递归神经网络等知识与一种或多种编程语言相结合,对于试图进入人工智能的开发人员来说是一个比较好的出发点。进而把实际问题从更高层次的角度抽象出来,从而使的计算机能够理解并进行处理。
良好的数学知识和数据科学的学术背景,通过不同方式(各种研讨会,个人博客等)跟上这个快速发展的领域。擅长处理大数据集。能够快速掌握机器学习的工具集并将其集成到更大的项目中。
对众多相关数学知识进行梳理,并建立自己的人工智能知识体系。比如, 了解数据类型,掌握机器学习,相关算法,决策树和神经网络。还要了解业界的知名项目(开源项目,Apache,谷歌,IBM,微软,R,Python等等)。
关于数据科学
能够读懂数据,挖掘数据中信息,发现数据中的问题,对数据敏感,能够绘制数据地图。精通Python和Java。了解TensorFlow,Café和Torch等主流人工智能库。 能够从HDFS数据湖或数据库中提取正确的数据。 知道如何使用过滤器。 数据的质量很重要。 了解如何策划和准备数据。
通过各种渠道获取理论基础知识(比如Coursera上的相关课程)。 开始为一家人工智能公司工作或在现有工作中进行一些人工智能方面的实践。 我们只是让开发人员使用神经网络来构建应用程序,以了解图像何时被完全正确呈现。了解人工智能框架和Spark。
数据科学家要具备计算机科学,分析部署,ETL等知识。注重可用数据,掌握训练系统的方法,从而获得最佳的训练结果。通过相关培训或黑客马拉松提升自身技能。 如果从事机器学习算法研究,与语言学团队合作对机器学习数据进行预处理。
能够灵活熟练地使用开源工具,专注于业务问题解决。通过R和Python进行迭代建模,并使用Scala进行分布式计算。
其他
后端开发人员需要了解机器学习和大量关于人工智能的开源技术。 前端开发人员需要了解聊天机器人及其会话流程。
开始尝试任意一种人工智能技术,进行不同于传统的思维方式来解决问题。这点非常重要。人工智能开发人员主要的工作就是“教”机器。把问题进行分解并思考如何提高训练的有效。然后观察训练的过程并对并重新成为学习基础。 想想你需要系统理解的核心概念是什么。 有很多途径可以做你正在寻找的东西。 获得不同的心态并解决手头的问题。
如今,由于人工智能的最新应用需要高度专业化的理论和实践知识,通过研读相关的博士学位正迅速成为最基本要求。
三、学习路径
阶段一:数学基础
1.数据分析
常数e
导数
梯度
Taylor
gini系数
信息熵与组合数
2.概率论
概率论基础
古典模型
常见概率分布
大数定理和中心极限定理
协方差(矩阵)和相关系数
最大似然估计和最大后验估计
3.线性代数及矩阵
线性空间及线性变换
矩阵的基本概念
状态转移矩阵
特征向量
矩阵的相关乘法
矩阵的QR分解
对称矩阵、正交矩阵、正定矩阵
矩阵的SVD分解
矩阵的求导
数据白化及其应用
阶段二:Python
1.环境搭建
Python2.7
Anaconda
Pycharm
2.Python基础
变量
数据类型
列表
元组
字典
控制语句
循环语句
函数
类对象
3.Python常用库
numpy
scipy
matplotlib
panda
time
4.Python机器学习库
scikitlearn
阶段三:机器学习
1.机器学习概述
2.数据清洗和特征选择
特征抽取
特征转换
特征选择
降维
3.回归算法
Linear Regression算法
Lasso Regression算法
Ridge Regression/Classifier算法
K-邻近算法(KNN)
4.决策树、随机森林和提升算法
决策树算法: ID3、C4.5、CART
决策树优化
Bagging
随机森林
Adaboost算法
GBDT算法
5.SVM
线性可分支持向量机
核函数理解
SMO算法
SVM回归SVR和分类SVC
6.聚类算法
各种相似度度量介绍及相关关系
K-means算法
K-means算法优缺点及变种算法
密度聚类
层级聚类
谱聚类
7.EM算法
最大似然估计
EM算法原理讲解
多元高斯分布的EM实现
主题模型pLSA及EM算法
8.贝叶斯算法
朴素贝叶斯
条件概率表达形式
贝叶斯网络的表达形式
9.隐马尔科夫模型
概率计算问题
前向/后向算法
HMM的参数学习
高斯混合模型HMM
10.LDA主题模型
LDA主题模型概述
共轭先验分布
Dirichlet分布
Laplace平滑
Gibbs采样详解
LDA与word2Vec效果比较
阶段四:深度学习
1.深度学习概述
2.BP神经网络
3.CNN卷积神经网络
4.RNN循环神经网络
5.TensorFlow"
阶段五:分布式搜索引擎Elasticsearch开发
1.课程介绍
2.初识ElasticSearch
3.ES安装部署
4.插件安装Head
5.插件安装ik
6.ES中文搜索演示
7.Marvel和Kibana安装
8.ES一些相关概念
9.ES请求格式和返回
10.ES索引操作
11.ES的文档新增和修改
12.ES查询演示
13.ES查询补充和删除
14.多索引和多类别
15.分页和routing介绍
16.ES工作流程
17.Java客户端和创建连接
18.Index操作
19.数据的增、删、改
20.数据的查询
21.spring环境集成
22.spring篇操作index
23.Spring操作CRUD01
24.Spring操作CRUD02
25.常见索引操作
26.索引的Mapping操作
27.mapping引入01
28.mapping引入02
29.mapping之properties根对象
30.mapping数据类型之string类型
31.mapping其他基本数据类型
32.mapping数据类型之Object类型
33.mapping元数据和动态映射
34.mapping动态模板
35.倒排索引概念
36.ES的动态索引原理
37.ES动态索引的问题和解决原理
38.初识DSL
39.DSL高级特性
40.结构化查询之基本查询
41.结构化查询之复合查询
42.全文检索第一讲
43.全文检索第二讲
44.嵌套类型查询
45.嵌套类型查询
46.DSL之Java操作
47.全文检索之Java操作
48.聚合查询之Java操作
49.DSL之Spring操作
50.高级检索之Spring操作
51.ES项目引用和热搜词功能实现
52.实现思路介绍以及简要实现
阶段六:综合项目
1.广告CTR预估(GBDT+LR或者DNN)
2.时间序列预测(SVR或者RNN)
3.图像分类及检索(SVM或者CNN)
阶段七:企业项目实战
1.基于Python数据分析与机器学习案例实战教程
1.Python数据分析与机器学习实战课程简介
2.Python快速入门
3.Python科学计算库Numpy
4.Python数据分析处理库Pandas
5.Python可视化库Matplotlib
6.回归算法
7.模型评估
8.K近邻算法
9.决策树与随机森林算法
10.支持向量机
11.贝叶斯算法
12.神经网络
13.Adaboost算法
14.SVD与推荐
15.聚类算法
16.案例实战:使用Python库分析处理Kobe Bryan职业生涯数据
17.案例实战:信用卡欺诈行为检测
18.案例实战:泰坦尼克号获救预测
19.案例实战:鸢尾花数据集分析
20.案例实战:级联结构的机器学习模型
21.案例实战:员工离职预测
22.案例实战:使用神经网络进行手写字体识别
23.案例实战:主成分分析
24.案例实战:基于NLP的股价预测
25.案例实战:借贷公司数据分析
2.人工智能与深度学习实战
1.深度学习概述与挑战
2.图像分类基本原理门
3.深度学习必备基础知识点
4.神经网络反向传播原理
5.神经网络整体架构
6.神经网络案例实战图像分类任务
7.卷积神经网络基本原理
8.卷积参数详解
9.卷积神经网络案例实战
10.经典网络架构分析
11.分类与回归任务
12.三代物体检测算法分析
13.数据增强策略
14.TransferLearning
15.网络架构设计
16.深度学习框架Caffe网络结构配置
17.Caffe
18.深度学习项目实战人脸检测
19.人脸正负样本数据源制作
20.人脸检测网络架构配置习模型
21.人脸检测代码实战
22.人脸关键点定位项目实战
23.人脸关键点定位网络模型
24.人脸关键点定位构建级联网络
25.人脸关键点定位测试效果与分析
26.Tensorflow框架实战
27.Tensorflow构建回归模型
28.Tensorflow构建神经网络模型
29.Tensorflow深度学习模型
30.Tensorflow打造RNN网络模型
31.Tensorflow项目实战验证识别
32.项目实战图像风格转换
33.QLearning算法原理
34.DQN网络架构
35.项目实战DQN网络让AI自己玩游戏
36.项目实战对抗生成网络等
书籍:
1.《用Python 进行自然语言处理》(东南大学出版社)
2.cs181.1伯克利人工智能课程(edX)
3.斯坦福机器学习课程(Coursera)
4.cs229 斯坦福机器学习讲义
5.一个文本分类的project
6.《统计学习方法》(李航,清华大学出版社)
7.Pattern Recognition And Machine Learning (PRML)
8.cs224d 斯坦福自然语言处理课(YouTube 视频)
视频:
1.Google在Udacity推出免费的深度学习课程 https://www.udacity.com/course/deep-learning--ud730
2.Coursera上Andrew Ng的机器学习课程 https://zh.coursera.org/learn/machine-learning
3.廖君同学整理的机器学习资料:https://github.com/ty4z2008/Qix/blob/master/dl.md
4.MIT出版社出版发行《深度学习》,三位来自深度学习领域最顶级的科学家(谷歌大脑团队):Ian Goodfellow、Yoshua Bengio和Aaron Courville撰写。
励志:没有做不到的事,只有不想做的心。You will make your dream come true if you never never never give up!!!