forked from Jaanai-Lu/Statistics
-
Notifications
You must be signed in to change notification settings - Fork 0
/
机器学习(Y)
67 lines (63 loc) · 5.47 KB
/
机器学习(Y)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
大数据和机器学习是解决问题的一种途径和手段,具有通用性,是一个基础的技能。
当前我们工作中还有很多决策,是基于经验和预定的规则,未来这部分决策可以通过AI让我们做得更合理更好一些。
目前“智能”的取得建立在大量的人工前期工作基础上,缺乏无监督学习。
传统开发转行AI工程师的障碍:
急于求成的心态
LR, SVM , 决策树, DNN , CNN , AlexNet , GoogleNet , Caffee , TensorFlow ,
智能驾驶, AlphaGo , 个性化推荐, 智能语音, GPU , FPGA ......
这里面的水很深,不要太急躁很快能搞懂,事实上由于数学理论不完备,有些东西还真解释不清楚,
比如在图像识别上ResNet 比 GoogleNet 识别率更高,ResNet 是怎么推导出来的?
梳理好这些概念,结合实际应用,化整为零逐步理解和吸收,有的放矢,不可操之过急。
自底往上的学习方法,想要从基本概念学习
建议结合应用场景先动手实践,再逐步细化。
AI工程师的知识结构- 机器学习的基础知识
人工智能、 机器学习、 深度学习的关系
这是现在大家经常混淆的概念,什么叫做人工智能?什么叫做机器学习?什么叫做深度学习?
人工智能是最大的范畴,只要你用计算机做了一点智能的事情都可以称为做了人工智能的工作。
真正的人工智能应该是让机器拥有人的智能,让机器跟人一样能看、能听、能说,能用自然语言跟人进行交流。
这个涉及到计算机视觉、语音识别、自然语言处理、人机交互、语音合成等等,是常规的我们研究讨论的人工智能的主要发力点,在互联网公司有着广阔应用场景。
机器学习可能是人工智能目前最火的领域,深度学习可能又是机器学习最火的子领域。
什么时候需要用人工智能?
直觉上来讲数据越复杂,深度学习越可能起作用;数据很简单很明确,深度学习可能就不怎么起作用了。
比如搜索领域,目前只有Google宣称他们用深度学习double了用户点击率,是指他们将深度学习运用在用户浏览过、搜索过的信息上,那是非常庞大非常复杂的数据。
机器学习解决问题的基本步骤
一般应用机器学习解决实际问题分为4个步骤:
1)定义目标问题
目前还没看到有一个机器学习模型适用于解决所有问题,不同问题有各自适用的模型,
如图像相关问题有深度学习、推荐相关问题有专门的推荐算法、安全相关问题有异常检测模型等。
脱离具体问题去讨论模型是没有意义的。
2) 收集数据和特征工程
机器学习是面向数据编程,数据是机器学习的基础。
训练模型时,一般会把样本数据拆成两部分,
其中大部分(约7成)数据用于训练模型,称其为训练集;另外少部分数据用于测试“模型的好坏”(也称“泛化能力”),称其为测试集。
同一个机器学习算法,好的数据能让其表现更好,差的数据会让模型毫无用处。
什么是“好的数据”?并没有统一定义,从结果看,能让模型表现良好的数据就是“好的数据”。
一个可行的办法是想象“人”在解决该问题时,会依据哪些数据和特征做决策,然后挑选这些数据和特征作为机器学习模型的输入数据,这个过程就是特征工程。
在应用机器学习时,可能需要反复做多次特征工程,特征工程是个试错的过程。
3) 训练模型和评估模型效果
利用标注数据,训练模型数据,而一般的步骤是:
a. 从底层存储读取数据
b. 对训练数据进行前向计算
c. 计算训练误差
d. 反向计算梯度,更新网络参数
e. 重复a - d步,直到模型收敛
测试模型效果,一般测试数据集远小于训练集,这里主要是快速前向计算,一般合并在第一步中。
4) 线上应用和持续优化
模型在训练集上性能达标,但在线上环境性能不达标,这一现象被称为“过拟合”。
通常的原因是用于训练模型的数据中特征的分布与线上数据偏差太大,此时需提取更具代表性的数据重新训练模型。
模型在线上应用后,需持续跟踪模型的性能表现,
机器学习是面向数据编程,如果线上系统上的数据出现了不包含在训练集中的新特征,需要补充新样本,重新训练迭代模型以保证预测效果。
机器学习的相关概念
模型用途:分类、回归、聚类
主要区分在于 output 是什么性质:
分类是指 output 是整数(即多个类别标签);
回归是指 output 是一个实数,例如预测股票的走势,input 是时间,output 就是股票价格;
聚类一般都是应用于非监督的状态下,对output完全不知道,只能对 input 数据本身进行统计分析,比如用户画像,通过数据之间的关系如关联程度将数据分成好几簇。
训练过程: 监督、半监督和非监督
机器学习是一个用数据训练的过程;
监督是指 input 的每个数据样本,我们明确知道它的 output (如类别标签)是什么;
半监督是指我们只知道 input 数据样本中一小部分的 output ,另外大部分不知道;
非监督是指所有 input 的数据样本,我们完全不知道它们的 output 是什么。
学习模型:
LR/SVM/决策树(传统的分类和聚类)
DNN(深度神经网络)CNN(卷积神经网络)