机器学习入门基础知识(一)(复习向)
本文为机器学习基础知识复习时进行的相关知识点整理,并不是纯小白向,偏向于复习向,未完,后续会继续补充。图片取自网络。
一、基本概念
1.什么是机器学习(区分AI/ML/DL)
1.1概念
机器学习是针对某些任务,通过旧知识改进算法的设计和性能以获得新知识的过程。
1.2关系
深度学习是机器学习的子集,机器学习又是人工智能的子集。
- 人工智能:使计算机能够代替人类工作的技术
- 机器学习:能够不通过明确的编程就可以进行学习的技术
- 深度学习:通过神经网络学习数据的基本特征的技术
1.3深度学习被成功应用的方面
- 图像分类
- 机器训练
- 语义识别
- 语音合成
- 游戏竞技
2.机器学习面临的挑战
2.1泛化
泛化简单是指无论是训练数据还是输入数据,使模型性能一致的过程。对于ML来说,获得没有偏差的训练数据是很重要的,所以ML的成功在很大程度上取决于泛化的效果如何。
2.2过拟合
- 欠拟合是没有充分的学习训练数据之间的关系。体现为训练错误和测试错误一样高。
- 过拟合是对于训练数据之间的关系学习的太过分。体现为训练错误很低,但是测试错误很高。
两者都不能得到很好的测试效果,泛化程度都很差。设置一个验证集可以有效地防止过拟合。用一个很多博主都喜欢用的例子,欠拟合就像做题做的不够,不能理解其中的规律,过拟合却像做得太多,只记住了题,对于其他的同样原理的题型都不会做了。可以用下图表示:
验证集是保留一部分训练数据并使用它来监视性能的过程,能够确认模型是否已经过拟合。判断依据为:当训练的模型对验证集的数据的输入产出较低的性能时,可以判断为过拟合,即为上图的拐点。
处理方式: - 早停法,可见机器学习过拟合解决——早停法
- 正则化
- 随机去节点
3.机器学习的类型
机器学习:
- 监督学习(分类、回归):使用标记训练集学习。监督学习是一个模型的一系列修正,以减少在相同输入下正确输出和模型输出之间的差异。如果一个模型得到了完美的训练,它将产生与训练数据输入相对应的正确输出。
- 无监督学习(聚类、联合):从未标记的数据中发现模式。无监督学习的训练数据只包含输入而不包含正确的输出,无监督学习通常用于研究数据的特性和对数据进行预处理。
- 强化学习:基于正负反馈进行学习。强化学习以一组输入、一部分输出和等级作为训练数据,通常用于需要最优交互的场合,如控制和游戏。
分类 | 聚类 | |
---|---|---|
基础 | 模型函数将数据分类为众多已定义的确定类之一 | 此函数将数据映射到多个集群中的一个集群,其中数据项的排列依赖于相似性。 |
方式 | 监督学习 | 无监督学习 |
训练样本 | 需要提供 | 不需要提供 |
二、神经网络
神经网络是机器学习的一种模型。
1.神经网络的节点
神经网络利用权值缩小神经元之间的关联,这是大脑最重要的机制。
- v=w1x1+w2x2+w3*x3+b=wx+b
- y=φ(v)=φ(wx+b)
y为输出,b为偏差值
2.神经网络的层次
- 输入层:充当将输入信号传输到下一个节点的通道
- 隐藏层:无法从神经网络外部访问
单层NN | 输入层-输出层 | |
---|---|---|
多层NN | 浅层NN | 输入层-隐藏层-输出层 |
深层NN | 输入层-多层隐藏层-输出层 |
3.神经网络之监督学习
步骤:
- 用适当的值初始化权重
- 将训练数据的输入转化为{input,correct output},输入到神经网络中,得到神经网络的输出,计算出正确输出的误差。
- 调整权重以减少错误
- 对所有的训练数据重复2、3步
梯度下降:对于梯度下降可以用一个图很好的理解,可以看出是一个每一步走一点的过程,一点一点逼近最优解。但是在这个过程中也可能产生一些问题,比如我们要寻找图像的山谷最低点,但是如果一步过大导向了另外的山谷最低点,找到的也是最低点,但就不是最优解了。函数如此:
监督学习是一个很大的话题,这里先简单介绍,后续会继续补充,另外关于sigmod和softmax,可以看这里sigmoid和softmax总结
4.单层神经网络训练:Delta规则
学习规则:根据给定信息修改权重的系统方法。
Delta规则:单层神经网络的代表性学习规则。如果输入节点导致输出节点产生误差,则根据输入值x和输出误差e调整两个节点之间的权值。即wij=wij+αeixj。(x输入节点的值,e输出节点的误差(d-y,d为真是值,y为输出值),w两点间的权重,α学习率)
5.泛化Delta规则
和Delta规则类似,e是输出节点的误差,v是输出节点的权重之和,φ‘是输出节点i的激活函数φ的导数
激活函数的作用即为将非线性函数引入神经网络,而且可以通过增加隐藏层的数量来增强其效果。
以下为几个常用的激活函数,其中Tanh(x)=2sigmod(2x)-1,具体分析见激活函数 sigmoid、tanh、relu
6.SGD、Batch、Mini Batch
参见batch-GD, SGD, Mini-batch-GD, Stochastic GD, Online-GD – 大数据背景下的梯度训练算法
另外,一个epoch就是把训练集所有的数据循环一次的意思
7.SGD和Batch的比较
可以看出SGD降低误差的速度更快(执行epoch次数),详见详解梯度下降法的三种形式BGD、SGD以及MBGD
10.单层神经网络的局限性
单层神经网络只能解决线性问题,遇到复杂的就束手无策了。