文章目录
系列文章
机器学习入门 01 —— 机器学习概述
机器学习入门 02 —— 环境搭建(Jupyter Notebook 及扩展库的安装与使用)
机器学习入门 03 —— Matplotlib使用
机器学习入门 04 —— Numpy使用
机器学习入门 05 —— Pandas使用
机器学习入门 06 —— Seaborn使用
机器学习概述
学习目标 :
- 了解人工智能发展历程
- 了解机器学习定义以及应用场景
- 知道机器学习算法监督学习与无监督学习的区别
- 知道监督学习中的分类、回归特点
- 知道机器学习的开发流程
1.1、人工智能概述
学习目标 :
- 了解人工智能在现实生活中的应用
- 知道人工智能发展必备三要素
- 知道人工智能和机器学习、深度学习三者之间的关系
1 人工智能应用场景
2 人工智能小案例
案例一: https://quickdraw.withgoogle.com
案例二:https://pjreddie.com/darknet/yolo/
案例三:https://deepdreamgenerator.com/
3 人工智能发展必备三要素
- 数据
- 算法
- 计算力
- CPU,GPU,TPU
-
计算力之CPU、GPU对比:
- CPU主要适合I\O密集型的任务
- GPU主要适合计算密集型任务
-
提问:什么类型的程序适合在GPU上运行?
- 计算密集型的程序:
所谓计算密集型(Compute-intensive)的程序,就是其大部分运行时间花在了寄存器运算上,寄存器的速度和处理器的速度相当,从寄存器读写数据几乎没有延时。可以做一下对比,读内存的延迟大概是几百个时钟周期;读硬盘的速度就不说了,即便是SSD, 也实在是太慢了。 - 易于并行的程序:
GPU其实是一种SIMD(Single Instruction Multiple Data)架构, 它有成百上千个核,每一个核在同一时间最好能做同样的事情。
- 计算密集型的程序:
-
CPU和GPU的区别: http://www.sohu.com/a/201309334_468740
-
Google TPU 介绍:https://buzzorange.com/techorange/2017/09/27/what-intel-google-nvidia-microsoft-do-for-ai-chips/
4 人工智能、机器学习和深度学习
人工智能和机器学习,深度学习的关系:
- 机器学习是人工智能的一个实现途径
- 深度学习是机器学习中的一个方法发展而来
5 小结
-
人工智能应用场景【了解】
- 网络安全、电子商务、计算模拟、社交网络 … …
-
人工智能必备三要素【知道】
- 数据、算法、计算力
-
人工智能和机器学习,深度学习的关系【知道】
- 机器学习是人工智能的一个实现途径
- 深度学习是机器学习的一个方法发展而来
1.2、人工智能发展历程
1.3、人工智能主要分支
学习目标 :
- 了解人工智能的主要分支
通讯、感知与行动是现代人工智能的三个关键能力,在这里我们将根据这些能力/应用对这三个技术领域进行介绍:
- 计算机视觉(CV)
- 自然语言处理(NLP)
- 在 NLP 领域中,将覆盖文本挖掘/分类、机器翻译和语音识别。
- 机器人
1 计算机视觉
计算机视觉**(CV)**是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。物体检测和人脸识别是其比较成功的研究领域。
当前阶段:
计算机视觉现已有很多应用,这表明了这类技术的成就,也让我们将其归入到应用阶段。随着深度学习的发展,机器甚至能在特定的案例中实现超越人类的表现。但是,这项技术离社会影响阶段还有一定距离,那要等到机器能在所有场景中都达到人类的同等水平才行**(感知其环境的所有相关方面)**。
2 语音识别
语音识别是指识别语音**(说出的语言)**并将其转换成对应文本的技术。相反的任务(文本转语音/TTS)也是这一领域内一个类似的研究主题。
当前阶段:
语音识别已经处于应用阶段很长时间了。最近几年,随着大数据和深度学习技术的发展,语音识别进展颇丰,现在已经非常接近社会影响阶段了。语音识别领域仍然面临着声纹识别和「鸡尾酒会效应」等一些特殊情况的难题。 现代语音识别系统严重依赖于云,在离线时可能就无法取得理想的工作效果。
3 文本挖掘/分类
这里的文本挖掘主要是指文本分类,该技术可用于理解、组织和分类结构化或非结构化文本文档。其涵盖的主要任务有句法分析、情绪分析和垃圾信息检测。
当前阶段:
我们将这项技术归类到应用阶段,因为现在有很多应用都已经集成了基于文本挖掘的情绪分析或垃圾信息检测技术。文本挖掘技术也在智能投顾的开发中有所应用,并且提升了用户体验。文本挖掘和分类领域的一个瓶颈出现在歧义和有偏差的数据上。
4 机器翻译
机器翻译(MT)是利用机器的力量自动将一种自然语言(源语言)的文本翻译成另一种语言(目标语言)。
当前阶段:
机器翻译是一个见证了大量发展历程的应用领域。该领域最近由于神经机器翻译而取得了非常显著的进展,但仍然没有全面达到专业译者的水平;但是,我们相信在大数据、云计算和深度学习技术的帮助下,机器翻译很快就将进入社会影响阶段。在某些情况下,俚语和行话等内容的翻译会比较困难(受限词表问题)。专业领域的机器翻译**(比如医疗领域)**表现通常不好。
5 机器人
机器人学(Robotics)研究的是机器人的设计、制造、运作和应用,以及控制它们的计算机系统、传感反馈和信息处理。
机器人可以分成两大类:固定机器人和移动机器人。固定机器人通常被用于工业生产(比如用于装配线)。常见的移动机器人应用有货运机器人、空中机器人和自动载具。机器人需要不同部件和系统的协作才能实现最优的作业。其中在硬件上包含传感器、反应器和控制器;另外还有能够实现感知能力的软件,比如定位、地图测绘和目标识别。
当前阶段:
自上世纪「Robot」一词诞生以来,人们已经为工业制造业设计了很多机器人。工业机器人是增长最快的应用领域,它们在 20 世纪 80 年代将这一领域带入了应用阶段。在安川电机、Fanuc、ABB、库卡等公司的努力下,我们认为进入 21 世纪之后,机器人领域就已经进入了社会影响阶段,此时各种工业机器人已经主宰了装配生产线。此外,软体机器人在很多领域也有广泛的应用,比如在医疗行业协助手术或在金融行业自动执行承销过程。
但是,法律法规和「机器人威胁论」可能会妨碍机器人领域的发展。还有设计和制造机器人需要相对较高的投资。
6 小结
- 人工智能主要分支【了解】
- 计算机视觉
- 语音识别
- 文本挖掘/分类
- 机器翻译
- 机器人
1.4、机器学习工作流程
学习目标:
- 了解机器学习的定义
- 知道机器学习的工作流程
- 掌握获取到的数据集的特性
1 什么是机器学习
机器学习是从数据中自动分析获得模型,并利用模型对未知数据进行预测。
2 机器学习工作流程
1.获取数据
2. 数据基本处理
3. 特征工程(数据再处理)
4. 机器学习(模型训练)
5. 模型评估
结果达到要求,上线服务。没有达到要求,重新上面步骤
获取的数据集
-
数据简介
在数据集中一般:
- 一行数据我们称为一个样本
- 一列数据我们成为一个特征
- 有些数据有目标值(标签值),有些数据没有目标值(如上表中,电影类型就是这个数据集的目标值)
-
数据类型构成:
- 数据类型一:特征值+目标值(目标值是连续的和离散的)
- 数据类型二:只有特征值,没有目标值
-
数据分割:
- 机器学习一般的数据集会划分为两个部分:
- 训练数据:用于训练,构建模型
- 测试数据:在模型检验时使用,用于评估模型是否有效
- 机器学习一般的数据集会划分为两个部分:
-
划分比例:
训练集:70% 80% 75%
测试集:30% 20% 25%
数据基本处理
对数据进行缺失值、去除异常值等处理。
特征工程
- 什么是特征工程(Feature Engineering)?
特征工程是使用专业背景知识和技巧处理数据,使得特征能在机器学习算法上发挥更好的作用的过程。
意义:会直接影响机器学习的效果
- 为什么需要特征工程
机器学习领域的大神Andrew Ng(吴恩达)老师说“Coming up with features is difficult, time-consuming, requires expert knowledge.
“Applied machine learning” is basically feature engineering. ”
注:业界广泛流传:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。
- 特征工程包括:特征提取、特征预处理、特征降维
- 概念解释:
-
特征提取:将任意数据(如文本或图像)转换为可用于机器学习的数字特征
-
特征预处理:通过一些转换函数将特征数据转换成更加适合算法模型的特征数据。(例如下图就是将特征1234都转换到一个范围0-1中)
-
特征降维:指在某些限定条件下,降低随机变量**(特征)个数,得到一组“不相关”**主变量的过程。
-
机器学习
选择合适的算法对模型进行训练(具体内容见后面1.5)。
模型评估
对训练好的模型进行评估(具体内容见后面1.6)。
3 小结
-
机器学习定义【掌握】
- 机器学习是从数据中自动分析获得模型,并利用模型对未知数据进行预测
-
机器学习工作流程总结【掌握】
- 获取数据
- 数据基本处理
- 特征工程(数据再处理)
- 机器学习(模型训练)
- 模型评估:结果达到要求,上线服务。没有达到要求,重新上面步骤
-
获取的数据集介绍【掌握】
- 数据集中一行数据一般称为一个样本,一列数据一般称为一个特征。
- 数据集的构成:
- 由特征值+目标值(部分数据集没有)构成
- 为了模型的训练和测试,把数据集分为:
- 训练数据(70%-80%)和测试数据(20%-30%)
-
特征工程包含内容【了解】
- 特征提取
- 特征预处理
- 特征降维
1.5、算法分类
学习目标 :
- 了解机器学习常用算法的分类
根据数据集组成不同,可以把机器学习算法分为:
- 监督学习
- 无监督学习
- 半监督学习
- 强化学习
1 监督学习
定义:
-
输入数据是由输入特征值和目标值组成。
-
函数的输出是一个连续的值(称为回归)。
-
例如预测房价,下图就是根据样本集拟出一条连续曲线。
-
函数的输出是有限个离散值(称为分类)。
例如根据肿瘤特征判断该肿瘤是良性还是恶性,对其进行分类。(输出结果就是“良性”或“恶性”这种离散的)
2 无监督学习
定义:
- 输入数据只有输入特征值,没有目标值。
- 输入数据没有被标记,也没有确定的结果。样本数据类别未知。
- 需要根据样本间的相似性对样本进行类别划分。
有监督和无监督对比:
3 半监督学习
定义:
-
训练集同时包含有样本标记数据和未标记样本数据。
-
监督学习训练方式:
-
半监督学习训练方式:
4 强化学习
定义:其实质是make decision问题,即自动进行决策,并且可以做连续决策。
举例:
小孩想要走路,但在这之前,他需要先站起来,站起来之后还要保持平衡,接下来还要先迈出一条腿,是左腿还是右腿,迈出一步后还要迈出下一步。
小孩就是 agent,他试图通过采取行动(即行走)来操纵环境(行走的表面),并且从一个状态转变到另一个状态(即他走的每一步),当他完成任务的子任务(即走了几步)时,孩子得到奖励(给巧克力吃),并且当他不能走路时,就不会给巧克力。
主要包含五个元素:agent, action, reward, environment, observation;
强化学习的目标就是获得最多的累计奖励。
监督学习和强化学习对比:
5 小结
1.6、模型评估
学习目标 :
-
了解机器学习中模型评估的方法
-
知道过拟合、欠拟合发生情况
模型评估是模型开发过程不可或缺的一部分。它有助于发现表达数据的最佳模型和所选模型将来工作的性能如何。
按照数据集的目标值不同,可以把模型评估分为分类模型评估和回归模型评估。
1 分类模型评估
这里之所以用绿色的线来进行分类,是根据评价指标来决定的,而评价指标有很多,例如准确率、召回率、F1-score、AUC等等,这张图是利用准确率来评价的。
准确率:预测正确的数占样本总数的比例。图中仅有两项数据错误,因此准确率很高,所以这么划分的绿色线条。
其他的评价指标后面用到会说明。
2 回归模型评估
回归模型评估指标也有很多,这里说一下均方根误差(RMSE,Root Mean Squared Error),它是一个衡量回归模型误差率的常用公式,不过它仅能比较误差是相同单位的模型。
均方根误差公式:
举例:
假设上面的房价预测,只有五个样本,对应的
真实值为:100,120,125,230,400
预测值为:105,119,120,230,410
那么使用均方根误差求解得:
R M S E = [ ( 100 − 105 ) 2 + ( 120 − 119 ) 2 ] + 5 2 + 0 2 + 1 0 2 5 = 5.495 RMSE=\frac{\sqrt{[(100-105)^2+(120-119)^2]+5^2+0^2+10^2}}{5}=5.495 RMSE=5[(100−105)2+(120−119)2]+52+02+102=5.495
其他评价指标:相对平方误差(RSE)、绝对平方误差(MAE)、相对绝对误差(RAE)
3 拟合
模型评估用于评价训练好的的模型的表现效果,其表现效果大致可以分为两类:过拟合、欠拟合。
在训练过程中,可能会遇到这种问题: 训练数据训练的很好啊,误差也不大,为什么在测试集上面有问题呢?
当算法在某个数据集当中出现这种情况,可能就出现了拟合问题。
欠拟合
因为机器学习到的天鹅特征太少了,导致区分标准太粗糙,不能准确识别出天鹅。
欠拟合(under-fitting):模型学习的太过粗糙,连训练集中的样本数据特征关系都没有学出来。
过拟合
机器已经基本能区别天鹅和其他动物了。然后,很不巧已有的天鹅图片全是白天鹅的,于是机器经过学习后,会认为天鹅的羽毛都是白的,以后看到羽毛是黑的天鹅就会认为那不是天鹅。
过拟合(over-fitting):所建的机器学习模型或者是深度学习模型在训练样本中表现得过于优越,导致在测试数据集中表现不佳。
4 小结
-
分类模型评估【了解】
- 准确率
-
回归模型评估【了解】
- RMSE – 均方根误差
-
拟合【知道】
- 欠拟合:学习到的东西太少;模型学习的太过粗糙
- 过拟合:学习到的东西太多 ;学习到的特征多,不好泛化