机器学习基础方法
机器学习考点:
1. 了解线性回归,贝叶斯分析,决策树,KNN,神经网络,深度学习,强化学习。以上机器学习方法的基本原理和优缺点。
2. 了解深度学习中过拟合和欠拟合的常规解决方案。
3. 计算题:深度神经网络神经元结点的输出、卷积神经网络的卷积过程和结果。
常见基础方法及分析
- 线性回归
回归分析是是研究自变量和因变量之间的关系,通常用作预测分析。线性回归是其中的一种,其认为目标和特征呈线性关系,即满足y=w*x+b。
预测损失值定义为L=(y-y_)2,目标是最小化L。
通常解决方法有最小二乘法和梯度下降。
- 优点:模型建立简单,运行速度快,解释性强(可根据系数给出每个变量的解释)
- 缺点:难以拟合非线性数据,所以要求提前判断数据是否为线性关系
- 贝叶斯分析
贝叶斯分析方法是贝叶斯学习的基础,它提供了一种计算假设概率的方法,这种方法是基于假设的先验概率、给定假设下观察到不同数据的概率以及观察到的数据本身而得出的。朴素贝叶斯分类器是最简单最常用的基于贝叶斯学习的工具
- 优点:
1:朴素贝叶斯源于古典数学理论,有稳定的分类效率,对小规模的数据表现很好,能处理多分类任务。2:适合增量式训练(就是在训练好后不断学习来提升模型性能)。3:对缺失数据不敏感。 - 缺点:
1:理论上,朴素贝叶斯分类器与其他分类方法有很小的误差,但实际上并非总是如此,因为其在给定输出类别的情况下是假设属性之间相互独立的。若数据的属性个数较多或具有关联性,则朴素贝叶斯的分类效果则不好。但若关联性较小,则效果良好。
2:需要知道先验概率,且概率很多时候取决于假设,有时会因为假设的先验模型的原因导致效果不好。
3:由于是通过先验和数据来决定后验概率从而决定分类,所以分类决策存在一定的错误率。
4:对输入数据的表达形式很敏感。
- 决策树
是一种树形的分类器,其每个内部结点表示特征状态,分支表示判断的输出(通常指向下一个特征结点),叶子结点表示结果输出。
树的构造:
1:结点分裂,若当前结点的特征不是一个类时,需要进行分裂操作,若是一个分类则不用分裂。
2:阈值确定(连续值)或选择分裂的特征,要求分类误差最小
- 优点:
1:决策树易于理解和实现
2:不需要进行过多的数据预处理也有好的性能
3:能同时处理离散值和连续值
4:可在短时间内对大量数据产生结果
5:对缺失值不敏感
6.效率高,每次计算深度不超过树的最大高度 - 缺点
1:对连续值比较难预测(不适合作为回归任务)
2:难以处理时间序列数据
3:类别太多时容易分错
4:分类任务中只能根据一个字段进行分类
5:对关联性较强的数据表现不好
- KNN
是数据挖掘分类预测中最简单的算法之一,KNN即K近邻算法,对需要预测的样本采用其最近的K个邻居(其中出现次数最多的类)来代表。
- 优点:方法思路简单,易于解释,易于实现,无需估计参数,无需训练
- 缺点:当样本数量不平衡时,容易分到数量多的一类。时间复杂度高,每次需要预测样本计算所有样本的距离才能得到K个最近的样本。
- 神经网络
人工神经网络是一种模仿生物神经网络的结构和功能的数学模型或计算模型。神经网络由大量的人工神经元联结进行计算。大多数情况下人工神经网络能在外界信息的基础上改变内部结构,是一种自适应系统。现代神经网络是一种非线性统计性数据建模工具,常用来对输入和输出间复杂的关系进行建模,或用来探索数据的模式。
- 优点:
1:非线性映射能力强,适合求解内部机制复杂的问题
2:自学习和自适应能力强:神经网络在训练时能通过学习自动提取输入、输出数据间的特征关联,并存储在模型参数重
3:泛化能力强:能很好分类未出现的模式和噪点
4:容错能力强:某些神经元受损后不会产生太大性能影响 - 缺点:
1:容易进入局部最优值,因为训练神经网络是一个复杂的非线性问题,在调整网络权值过程中容易陷入局部最优
2:训练收敛速度慢
3:并没有科学又标准的网络结构,一般建立网络都是根据经验进行。
4:实际应用与网络规模产生矛盾
5:神经网络预测能力和训练能力产生矛盾
6.严重的样本依赖
- 深度学习
神经网络是一个把X映射到Y的方法,但仅仅这样映射结果不一定准确,那么为了增加准确率,把网络层数增大,变成更深的网络模型,就成了深度学习。
- 优点:学习能力强,适用于很多任务,数据驱动型任务(只要数据够,其学习上限很高),可移植性好
- 缺点:计算量巨大,硬件需求高,不利于便携设备计算。模型设计复杂,可解释性差。
- 强化学习
强化学习用于描述和解决智能体在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题,强化学习三要素:环境模型、智能体(的能应用于环境的操作)、奖励函数(得到奖励用于学习)
强化学习分为model-based和model-free,区分标准是:如果智能体能对下一步的状态和收益进行预测,就是model-based,否则是model-free。
- 优点:不需要标记数据且不需要大量数据集即可进行训练,有概率找到极优解
- 缺点:需要设计好的环境和奖励函数,需要非常大量的训练,且运行模型需要大量计算资源(DQN对玩60帧的游戏需要的计算是非常大的)。严重依赖环境,若其发生变化,则智能体的训练结果将不起作用,模型性能大幅下降。
过拟合和欠拟合的解决方案
- 过拟合:
a: 重新清洗数据,可能数据多样性不够
b: 增大训练数据量
c: 采用正则化(L0,L1和L2正则)即在目标函数后加上权重的范数
d: Dropout,即随机删除一些神经元结点以提高模型的鲁棒性 - 欠拟合:
a: 对模型增加特征项(让模型变复杂),欠拟合有时是因为模型可学习的特征太少
b: 增加多项式特征,即加上二次项让模型泛化能力变强
c: 减少正则化参数,对应过拟合的增加正则化,如果为了减轻过拟合而导致欠拟合则需要减少
手写计算神经网络和卷积
神经网络输出:
注意输入神经元,权重,相乘并相加,最后经过一次激活函数即可得到下一个神经元的输出
卷积:
注意,下面是valid卷积(图片有效区域卷积,卷积结果会比原图小一圈)和same卷积(保证了卷积结果和原图一样大,在周围填充0来保证,但是图像边缘信息会损失)