@作者原创,根据韩国기계학습–오일석书籍学习笔记,转载请备注。
第一章 介绍
1. 机器学习的定义(정의)
学习的在词典中的标准定义为:通过经验,将不会的事变成擅长的事。
根据经验、行为的变化,潜力的变化或获取知识的过程。
人工智能:对计算机进行编程以汲取经验教训,最终将消除对这种详细编程工作的大量需求。
컴퓨터가 경험을 통해 학습할 수 있도록 프로그래밍할 수 있다면, 세세하게 프로그래밍해야 하는 번거로움에서 벗어날 수 있다.
机器学习经常出现的术语:经验、性能改进和计算机。
机器学习以为这创建一个计算机程序,该程序使用特定应用程序区域中发生的数据(经验)来解决高性能问题。
1.1.2 지식기반 방식에서 기계 학습으로의 대전환(从基本知识过渡到机器学习)
人工智能的诞生
- 计算机的能力
- 人们很难完成的事,对于计算机来讲很容易完成
- 复杂的运算可以快速完成(现在可以计算数十亿位)
- 复杂函数的微分和积分换算
- 对计算机的期望
- 完成人类可以很容易实现的事(分辨猫/狗)
- 人工智能出现在1950年
在早期,是通过知识进行分辨,例如数字8,中间细有两个孔的则是8,但是实际过程中,发生变化后,会有很多误差,无法用这种方式来进行判别。
因此将人工智能变为主动性:将以知识为基础,进行机器学习。
机器学习是以数据为中心的一种驱动方式。
如今通过机器学习制造出来的人工智能产品有很多:无人驾驶等等。
1.1.3 기계 학습 개념(机器学习概念)
一个简单的例子
假设横轴为时间,纵轴为位置,那么四个点就是数据。
针对预测问题,分为回归问题和分类问题。给定时间,此时物体移动的位置则是回归问题。看图片识别则是分类问题。
训练集
横轴为特征,纵轴为目标值,四个点为训练集。
如何利用数据进行建模
该问题是回归问题,则使用回归方程。(两个参数)
y
=
w
x
+
b
y = wx + b
y=wx+b
机器学习过程实际上就是根据建模,找到最佳参数。开始我们也不知道参数具体是多少,所以从f1 -> f2 -> f3。最终找到合适的参数值。
完成学习后既可以用于预测,给定时间,预测位置移动到哪里。
机器学习目标使用测试集即新数据进行预测时,最小化错误概率。测试集的高性能称之为泛化能力(generalization)。
2. 특징 공간에 대한 이해(根据特征空间来理解)
1.2.1 1차원과 2차원 특징 공간
(a)一维空间,表示方法:(2.0,3.0)…
(b)二维空间,表示方法:特征向量。例如x= (体温,头痛)T;y = 感冒概率
1.2.2 다차원 특징 공간
根据特征数量进行变化。
使用线性模型:
y
=
w
1
x
1
+
w
2
x
2
+
.
.
.
+
w
d
x
d
+
b
y = w_1x_1 + w_2x_2 + ... + w_dx_d +b
y=w1x1+w2x2+...+wdxd+b 参数一共有 d+1个。
使用曲线模型,参数会大大增加为
d
2
+
d
+
1
d^2 +d+1
d2+d+1
模型为
y
=
w
1
x
1
2
+
w
2
x
2
2
+
.
.
.
+
w
d
x
d
2
+
w
d
+
1
x
1
x
2
+
.
.
.
+
w
d
2
x
d
−
1
x
d
+
w
d
2
+
1
x
1
+
.
.
.
+
w
d
2
+
d
x
d
+
b
y=w_1x_1^2+w_2x_2^2+...+w_dx_d^2+w_{d+1}x_1x_2+...+w_{d^2}x{d-1}x_d+w_{d^2+1}x_1+...+w_{d^2+d}x_d+b
y=w1x12+w2x22+...+wdxd2+wd+1x1x2+...+wd2xd−1xd+wd2+1x1+...+wd2+dxd+b
1.2.3 특징 공간 변환과 표현 학습(特征空间转换和表征学习)
对于线性模型,存在不能完全分割的空间。最大精度在75%。
为了分类,则将a的特征空间形式,变化成b的可以分类的形式。
变化方式为
原来特征向量为
x
=
(
x
1
,
x
2
)
T
x = (x_1,x_2)^T
x=(x1,x2)T
后来变化的特征向量
x
1
=
(
x
1
2
x
1
x
2
+
0.5
,
x
2
2
x
1
x
2
+
0.5
)
x^1 = (\frac{x_1}{2x_1x_2+0.5},\frac{x_2}{2x_1x_2+0.5})
x1=(2x1x2+0.5x1,2x1x2+0.5x2)
通过变换:实现可以通过线性模型分割的空间
表征学习(representation learning):
- 可以自动学习好的特征空间
- 深度学习使用具有多个隐藏层的神经网络找到分层特征空间
- 左侧的隐藏层提取低级特征(边,角点等),右侧提取高级特征(面,轮等)
- 图1-7是通过人类直觉进行学习的
特征维度的一些说明
和维度无关,都可以用公式表达,例如都是d维求距离
a
=
(
a
1
,
a
2
,
.
.
.
,
a
d
)
T
和
b
=
(
b
1
,
b
2
,
.
.
.
,
b
d
)
T
a = (a_1,a_2,...,a_d) ^T和 b = (b_1, b_2,...,b_d)^T
a=(a1,a2,...,ad)T和b=(b1,b2,...,bd)T
大多数是复合2~3维的公式,如果更多,则可以扩展到更多维。
维数越多问题越多:
- 尺寸增加会引起现实问题
- 示例)在d = 4的 Iris 数据中,如果将每个轴分为100个部分,则总共有1004 = 1十亿个像元
- 示例)如果d = 784的MNIST样本的像素具有0和1值,则为2784个像元。 分布非常稀疏,只有60,000个样本散布在这个巨大的空间中。
3. 데이터에 대한 이해(数据的理解)
科学技术通过数据收集、模型建立和预测过程进行发展的。如图:
对于机器学习同样遵循这个过程。
但是机器学习解决的问题要复杂的多,比如识别数字、和按钮,无法用简单的数学公式来表达,因此,需要收集足够的数据,并将数据输入到机器学习算法中,从而自动找到模型。
1.3.1 데이터 생성 과정(数据生成的过程)
通过公式:知道x值,可以正确预测目标Y值。
通过调整概率:可以认为的假定,这样可以生成不一样的模型。
但在实际的机器学习中,只是用数据来生成近似预测或生成模型。
1.3.2 数据的重要性
数据库的质量:
- 为给定的应用收集足够数量和足够多样化的数据
- 提高估计精度
- 例如:仅使用正面数据进行学习够,性能会比较低。
很多公共数据库:
- 三个被视为机器学习成果的数据库:Iris, MNIST, ImageNet.
- 可以通过Wikipedia进行查找 “list of datasets for machine learning research”
- 截止2017年,UCI存储库,共有394个数据库。
1.3.3 数据集的大小和机器学习性能。
针对MNIST:28*28的黑白位图,不同样本的总数为2^784,但是MNIST只有60000个样本。
为何小型的数据库实现了高性能?
因为在广阔的空间中,实际数据出现在很小的子空间中,很多情况是不会出现的。另外即使有变化,也会通过一定的规则或规律进行变化。
1.3.4 数据可视化
可以很容易画出1D、2D、3D图像,但4D以上是不可以的,这种被称为超空间。
可以通过组合方式。
四个轴中的两个轴组合并绘制在六个二维空间中。
例如第二行第一列:横轴为花萼的长度,垂直为花萼的宽度。
这种可视化不仅非常方便,可以看到数据的分布,而且在做出重要决策时也非常有帮助。
4. 简单的机器学习例子
线性回归问题:
对于线性模型:
y
=
w
x
+
b
y = wx+b
y=wx+b
两个参数,可以用向量来表示:
Θ
=
(
w
,
b
)
T
Θ = (w, b)^T
Θ=(w,b)T
其中目标函数也称之为成本函数(cost function)
f为预测函数的输出,y是预测函数必须匹配的目标值,因此J(Θ)为均方误差(MSE mean squared error)
最终获得第三个参数,所构成的模型。
对于机器学习:
通过迭代的方式得到最佳值:
난수: 随机数
但是到目前为止,只是考虑了简单的线性回归,对于现实生活来讲,有很多复杂的情况,不可以用单一的线性回归来处理,这时候就需要我们考虑不同的模型。
5. 모델 선택 模型选择
1.5.1 过度拟合和拟合不足
拟合不足:采用非线性模型代替,与一阶模型相比,误差大大降低
过度拟合:过度拟合使得出现新的数据时,会出现问题。所以要选择合适的模型。
1.5.2 偏差和方差
- 一阶和二阶在训练集合测试集上的表现都很差
- 十二阶在训练集中有较高的性能,但在测试集中具有较低的性能,泛化能力差
- 训练集的三阶和四阶性能低于十二阶,但在测试集中具有高性能,泛化能力高。
对训练集合进行试验:
- 二阶:高偏差,误差大,但得到了类似的模型,方差小。
- 十二阶:低偏差,误差小,但得到了完全不同的模型,方差大。
- 因此要平衡方差和偏差
机器学习目标:高泛化能力 - 目标是创建低偏差和低方差的预测变量,左下的情况。
- 折中方案:牺牲偏差最小化,保持最小化方差的策略。
1.5.3 使用验证集和交叉验证进行模型选择算法
1、使用验证集选择模型
具有与培训和测试集不同的单独验证集的情况
- 输入模型集、训练集、验证集
- 输出最优模型和性能
- 把模型训练成训练集
- 测量使用验证集训练的模型的性能
- 选择性能最高的模型
- 测量被选为测试集的模型的性能
2、交叉验证
模型选择技术在由于成本问题而没有单独的验证集的情况下很有用,将训练集分成相等的部分,重复学习和评估过程几次,并使用平均值。 - 输入:模型集、训练集、测试集、k个组别
- 输出:最有模型和性能
- 训练集分为k组
- 测试每组训练集的性能
- 将k个性能取平均值,作为模型性能
- 选择性能最高的型号
- 测量被选择测试集的模型的性能。
3.Boot strap
使用随机数进行采样迭代。 - 输入:模型集、训练集、测试集、采样(P)率、迭代次数T
- 输出:最优模型和性能。
- 从1带迭代次数,在训练集中获取P样本来构造新的训练集
- 用新的训练集进行训练模型
- X-X’用于衡量训练模型的性能
- T个模型性能平均值作为新的模型性能
- 选择最高的模型
- 测量被选为测试集模型的性能
1.5.4 模型选择限制和实际解决方案
现实中非常多样化:神经网络、强化学习、概率图形模型、SVM、树分类模型、神经网络、MLP、深层MLP、CNN也很多。
通常选择具有经验的大型框架之后,使用策略通过模型选择算法选择详细模型
例如:决定使用CNN之后,将应用模型选择算法来确定隐藏层的数量、激活函数和动量系数。
6.约束(규제)
1、扩大数据
- 收集更多数据可提高通用性
- 数据收集很昂贵——人为手动标记
- 人为的扩展数据——转换训练集中的样本、轻微旋转或变形
2、减轻权重
调整权重技术:权重衰减是一种调节技术,减小权重使得目标函数效果更好。
公式(1.11)中的第二项是调节项,可保持较小的权重
7. 机器学习的类型
1、根据监督方式的不同分类
- 监督学习:同时给出x, y的情况,分为回归问题和分类问题
- 无监督学习:给定了特征向量x,但没有给出目标值y的情况;群集任务(根据客户偏好等定制的PR应用程序);密度估计;特征空间转换等任务
- 强化学习:给出了目标值,不同于监督学习。例如:样本正在计数,游戏结束时将给出一个目标值。1代表赢,-1代表输,目标值分配给组成游戏的每个样本。
- 半监督学习:有些同时具有x, y,而另一些则只有x。因为网络,很容易收集x,但是y需要手动操作,最近变得很重要。
2、根据各种标准进行分类
- 离线和在线学习:在线学习是增量学习,包括对额外出现的样本的学习
- 确定性学习和随机学习:在确定性上,使用相同数据进行再训练会产生想用的预测变量;随机学习在学习过程中使用随机数,因此使用相同数据进行再训练会创建不同的预测变量。正常预测过程也使用随机数
- 鉴别和生成模型:判别模型仅对类别预测感兴趣。生成模型在GAN、RBM、RNN中都有出现。
8. 机器学习的过去现在和未来
1、人工智能和机器学习简史、
2、技术趋势
- 机器学习是实现人工智能关键技术
- 机器学习算法和应用的多样化
- 不同算法和应用程序的融合
- 深度学习是机器学习的主流
- 表达学习变得更重要
3、社会展望
- 未来职业的变化:工作的消失
- 担心机器可能统治人类
- 机器学习全部设计数学和计算机算法