基本概念
- 分类
- 回归
- 维数灾难 随着输入维数的增加,需要更多的数据
- 欠拟合
- 过拟合
- …
评价指标
距离度量函数
计算度量
生成式/判别式模型
svm 逻辑回归 决策树就是判别式模型 不关心具体的样本的特点,而只在意差别
贝叶斯 隐马尔科夫就是生成式模型,先学习特点,再进行比较
KNN👍
无监督学习
KNN思想
计算所有训练样本和测试样本的距离,降序排列,选择k个相近的,如果是分类问题就投票最多,如果是回归问题就算平均
概念
一般k是奇数,k越小对噪声越敏感,模型复杂容易过拟合,k越大对噪声不敏感,但是模型简单,容易欠拟合。
算法流程
(k-Nearest Neighbor Regression)
- 计算测试样本x和Dtrain中所有训练样本xi之间的距离d(,xi)
- 对所有距离值 (相似度值) 进行进行升序(降序) 排列
- 选择K个最近(距离最小/相似度最大) 的训练样本
- 将距离值的倒数作为权重,然后将K个近邻的标签值加权平均作为x的预测值
降低计算复杂度,大概看一下
优点在于对异常值不敏感,精度高,没有数据输入假定
缺点在于时间复杂度高,空间复杂度高
聚类👍
无监督学习
聚类概念
将整个数据集中每个样本的特征向量看成是分布在特征空间中的一些点,点与点之间的距离即可作为相似性度量依据。
聚类分析是根据不同样本之间的差异,根据距离函数的规律(大小) 进行分类 (聚类) 的。
聚类准则:聚类好坏判断,
- 聚类(簇)内部⾼相似性
- 聚类(簇)之间低相似性
度量
-
距离度量:度量同类样本间的相似性和不同类样本间的差异性
三类聚类方法
- 基于试探的聚类搜索算法
- 系统聚类法:将数据样本按距离准则逐步分类,类别由多
到少,直到获得合适的分类要求为止- 主要的距离计算准则:
最短距离法 (两个集合所有距离最小值
最长距离法 (两个集合所有距离最大值)
类平均距离法 (两个集合所有距离平均值
- 动态聚类法: kmeans isodata算法 迭代自组织数据分析算法)
k-means
评价指标
在实际应用中,需要试探不同的K值和选择不同的聚类中心的起始值。
如果数据样本可以形成若干个相距较远的孤立的区域分布,一般都能得到较好的收敛效果。
K-means算法比较适合于分类数目已知的情况。
决策树
监督学习
概念
实例集合X: 上例中用六个属性表示
目标概念c: 定义在实例集上的布尔函数 c:X->{0,1}
训练样例:正例(c(x)=1),反例(c(x)=0)
假设集H:每个假设h表示X上定义的布尔函数h:X>10,1
搜索(泛化)的操作
- 用逻辑变量替换常量
- 合取表达式去掉部分条件
- 对表达式增加析取项
- 用属性的超类来替换属性
变型空间Version Space :假设空间H中所有假设的列表
正例和反例的作用
- 正例用于S泛化,搜索S集合
- 反例用于G特化,缩小G集合
决策树
实例:“属性-值”对表示,应用最广的归纳推理算法之一
目标函数具有离散的输出值
很好的健壮性(样例可以包含错误,也可以处理缺少属性值的实例)
能够学习析取表达式
决策树是一个预测模型;他代表的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象,而每个分叉路径则代表某个可能的属性值,而每个叶节点则对应从根节点到该叶节点所经历的路径所表示的对象的值。决策树仅有单一输出,
构造
机器学习之决策树,ID3算法_用于学习布尔函数的id3算法-CSDN博客
问题设置
可能的实例集X
未知的目标函数f:X>Y
假设函数集 H={h|h:X>Y}
输入
未知目标函数f的训练实例{<xi,yi>}
输出
最佳近似f的假设h∈H
ID3算法:用于学习布尔函数的ID3算法
- 创建树的Root结点
- 如果所有Examples的目标属性均为“正”那么返回label=“+”的单结点树Root
- 如果所有Examples的目标属性均为“反那么返回label=“_”的单结点树Root
- 如果Attributes为“空”,那么返回单结点树Root,label设置为Examples中最普遍的目标属性值5.
- 否则
- A<-Attributes中分类Examples能力最好的属性
- Root的决策属性<- A
- 对于A的每个可能值vi
- 令$Examples_vi$为Examples中满足A属性值为$V_i$的子集
- 特殊情况:如果$Examples_vi$为空
- 在这个分支下加一个叶子结点,结点的label设置为Examples中最普遍的目标属性值
- 否则,在这个分支下加一个子树ID3($Examples_vi$ ,Attributes-{A})
- 结束,返回树Root
例子👍
比如有类别A 类别B 类别C, 第一个属性是年龄第二个属性是工作,结果是是否可以贷款
ID3要考虑的是选用年龄还是选用工作作为分类标准
计算的方式就是通过信息增益率
信息增益率的算法就是说用总体的熵减去用一个标准分类后子树的熵的和,越大越好
熵的计算方式是假设一共八个人,三个人可以贷款,五个人不可以贷款
那么就是$-3/8log(3/8)±5/8log(3/8)$
那么我们现在假设年龄有两种一个是老年,一个是年轻
我们就需要去看,老年里面有多少个可以贷款,有多少个不可以贷款。
假设四个老人,2个可以贷款,2个不可以贷款
计算方式就是$-1/2log(1/2)±1/2log(1/2)$,同理可知年轻人的就是$-1/4log(1/4)±3/4log(3/4)$
我们认为上面一个h1,另外一个h2,总体的是h。那么计算信息增益就是$h-(1/2h1+1/2h2)$。然后再计算一个如果用工作作为衡量标准会怎么认为,比较一下大小就好了
越大越好
构造时如何选择节点和最佳属性
-
熵:刻画了样例集的纯度(purity)
-
信息增益:在划分数据集之前之后信息发生的变化,计算每个特征值划分数据集获得的信息增益,获得信息增益最高的特征就是最好的选择。
定义属性A对数据集D的信息增益为infoGain(D|A),它等于D本身的熵,减去 给定A的条件下D的条件熵,即:
-
C4.5:信息增益比
信息增益比: 信息增益/该属性的熵
信息增益准则对可取值数目较多的属性有所偏好
CART: Gini指数
Gini指数: 模型的纯度,越小越好,越小纯度越高
集成学习
监督学习
集成学习的原理,怎么不同的弱分类器结合成强分类器
特点(分类)
- 多个分类器集成在一起,以提高分类准确率
- 由训练数据构建基分类器,然后根据预测结果进行投票
- 集成学习本身不是一种分类器,而是分类器结合方法
- 通常集成分类器性能会好于单个分类器
Bias-Variance tradeoff
结合策略
平均法(回归问题)
- 简单平均
- 加权平均
投票法(分类问题)
- 绝对多数
- 相对多数
- 加权投票
Bagging
有放回采样方法。统计上的目的是得到统计量分布以及置信区间
并行式集成学习,降低分类器方差,改善泛化
代表性算法:随机森林
- 用N来表示训练用例 (本) 的个数,M表示特征数目;
- 输入特征数目m,用于确定决策树上一个结点的决策结果;其中m应远小于M。
- 从N个训练用例(样本)中以有放回抽样的方式,取样N次,形成一个训练集(即bagging取样),并用未抽到的用例(样本)作预测,评估其误差
- 对于每一个结点,随机选择m个特征(通常为M的均方根logz M),根据这m个特征,计算其最佳的分裂方式。
- 每棵树都会完整成长而不会剪枝,这有可能在建完一棵正常树状分类器后会被采用。
- 以上过程做充分多次,以产生足够多的随机树
Boosting
- 强可学习 (strongly learnable) :在PAC框架中,一个概念 (类),如果存在一个多项式的学习算法能够学习它,并且正确率很高,那么就称这个概念是强可学习的:
- 弱可学习 (weakly learnable) :在PAC框架中,一个概念 (类) ,如果存在一个多项式的学习算法能够学习它,学习的正确率仅比随机猜测略好,那么就称这个概念是弱可学习的
PAC学习理论(Kearns&Valiant,1984)
- 强学习器与弱学习器是等价的(Robert E.Schapire,1990)
- 一个概念是强可学习的充分必要条件是这个概念是弱可学习的
- 可通过提升方法(Boosting)将弱学习器转为强学习器
代表性算法: Adaptive Boost
思想: 从弱学习算法出发,通过改变训练数据的概率分布 (权值
分布),反复学习,得到一系列弱分类器,然后进行组合,构成
一个强分类器。
Boosting提升树
深入理解提升树(Boosting tree)算法 - 知乎 (zhihu.com)直接看计算
概率学习
- 高斯混合模型
- 基本概念
- 带约束的数学优化问题
- 不带约束的最小二乘优化问题
最大似然估计,期望最大化
理论推导不要求
SVM
监督学习
支持向量机support vector machine
传统机器学习里最代表性的算法
不会考推导
除了二分类、线性,非线性也需要了解
二分类
二分类问题可以看作是在特征空间上对类别进行划分的任务
正中间的: 鲁棒性最好,泛化能力最强
间隔与支持向量
- 一个点(样例)对应的
“间隔”margin
是其到分界超平面的垂直距离 - SVM最大化(所有训练本的) 最小间隔margin
- 具有最小间隔的点称为支持向量(support vectors)
- 所以叫支持向量机support vector machine
- 如何分类
- $f(x)>0$分为正类,$f(x)<0$分为负类
- 对于任何一个样例,如何判断预测对错? ($y_i=-1,1$)
- $y_if(x_i)>0$分类正确,$y_if(x_i)<0$分类错误
- 如果我们假设能完全分开,并且$|y_i|=1$,那么$y_if(x_i)=|f(x_i)|$
总结
- 分类器是一个分离超平面(separating hyperplane)
- 最重要的训练样本是“支持向量”,它们定义了超平面,而其他训练样本被忽略了。二次优化算法可以识别哪些样本是具有非零朗格朗日乘子a;的支持向量
- 对偶问题中,训练样本只以内积形式出现
非线性支持向量机
把数据映射到高纬空间里
矩阵 K 是对称半正定的,满足Mercer定理,所以这个函数是核函数
根据Mercer定理,任何半正定的函数都可以作为核函数。
机器学习笔记029 | 核函数 - 知乎 (zhihu.com)
神经元
MP神经元基本结构
- 输入X = [x1,X2, x3, …]
- 权值W =[W1, W2, W3,…]
- 激活函数f(net) = f(Σ(wi * xi))
- 偏置单元 (bias unit) x0,其对应权值为wo
- 一组输入加权w;相当于突触
- 一个加法器把输入信号相加(与收集电荷的细胞膜等价)
- 一个激活函数(最初是一个闻值函数) 决定细胞对于当前的输入是否激活 (“放电”)
感知机
最简单形式的前馈式人工神经网络,一种二元线性分类器,使用特征向量作为输入,把矩阵上的输入x(实数值向量) 映射到输出值f(x)上(一个二元的值)
结构
感知机的学习算法
- 权值初始化
- 输入样本对
- 计算输出
- 根据感知机学习规则调整权重
- 返回步骤2,输入下一对样本,直至对所有样本的实
际输出与期望输出相等
调整权重的算法
计算实例
xo是偏置单元,通常取1
大$X_i$代表的是$[x_0, x_1, x_2]$
大$W_i$代表的是$[w_0, w_1, w_2]$
不足
感知机学习一定可以收敛吗?
- 前提是训练样例必须是线性可分的! !
如果训练样例不是线性可分的,怎么办?
- 只能去找一个学习方法,去收敛到目标概念的最佳近似
感知机学习方法只适用在单层网络!
神经网络
神经网络需要深入掌握
输入,隐藏层,输出层
前向,反向传播计算
误差的反向传播
误差定义
delta规则
学习常数c对delta规则的性能有很重要的影响,c决定了在一
步学习过程中权值变化的快慢
- c越大,权值朝最优值移动的速度越快。
- 然而,c过大会越过最优值或在最优值附近震荡
反向传播算法
- 前向阶段: 网络突触的权值固定,输入信号在网络中正向一层一层传播,直到到达输出端,获得网络的输出
- 反向阶段: 通过比较网络的输出与期望输出,产生一个误差信号。误差信号通过网络反向一层一层传播,在传播过程中对网络突触的权值进行修正
BP神经网络
激活函数
ReLU
深入理解ReLU函数(ReLU函数的可解释性)-CSDN博客
Sigmoid
Sigmoid函数是一个在生物学中常见的S型函数,也称为S型生长曲线。在深度学习中,由于其单增以及反函数单增等性质,Sigmoid函数常被用作神经网络的激活函数,将变量映射到[ 0 , 1 ]之间。
Sigmoid函数的导数可以用其自身表示:
Sigmoid函数的特性与优缺点:
Sigmoid函数的输出范围是0到1。由于输出值限定在0到1,因此它对每个神经元的输出进行了归一化。
用于将预测概率作为输出的模型。由于概率的取值范围是0到1,因此Sigmoid函数非常合适
梯度平滑,避免跳跃的输出值
函数是可微的。这意味着可以找到任意两个点的Sigmoid曲线的斜率
明确的预测,即非常接近1或0。
函数输出不是以0为中心的,这会降低权重更新的效率
Sigmoid函数执行指数运算,计算机运行得较慢。
Sigmoid函数及其导数的图像:
原文链接:https://blog.csdn.net/hy592070616/article/details/120617176
计算实例
==Back Propagation(梯度反向传播)实例讲解 - 知乎 (zhihu.com)==
==这篇文章讲的很清楚==
卷积神经网络
机器学习算法之——卷积神经网络(CNN)原理讲解 - 知乎 (zhihu.com)
Convolutional Neural Networks
近现代的卷积
核心概念,关键模块
一个卷积神经网络主要由以下5层组成:
- 数据输入层/ Input layer
- 卷积计算层/ CONV layer
- ReLU激励层 / ReLU layer
- 池化层 / Pooling layer
- 全连接层 / FC layer
卷积Convolution
数据预处理
该层要做的处理主要是对原始图像数据进行预处理,其中包括:
- 去均值:把输入数据各个维度都中心化为0,如下图所示,其目的就是把样本的中心拉回到坐标系原点上。
- 归一化:幅度归一化到同样的范围,如下所示,即减少各维度数据取值范围的差异而带来的干扰,比如,我们有两个维度的特征A和B,A范围是0到10,而B范围是0到10000,如果直接使用这两个特征是有问题的,好的做法就是归一化,即A和B的数据都变为0到1的范围。
- PCA/白化:用PCA降维;白化是对数据各个特征轴上的幅度归一化
去均值与归一化效果图:
去相关与白化效果图:
卷积层
有两个关键操作:
- 局部关联。每个神经元看做一个滤波器(filter)
- 窗口(receptive field)滑动, filter对局部数据计算
先介绍卷积层遇到的几个名词:
- 深度/depth(解释见下图)
- 步幅/stride (窗口一次滑动的长度)
- 填充值/zero-padding
步幅
步幅控制着过滤器围绕输入内容进行卷积计算的方式。在第一部分我们举的例子中,过滤器通过每次移动一个单元的方式对输入内容进行卷积。过滤器移动的距离就是步幅。
让我们看一个例子。想象一个 7 x 7 的输入图像,一个 3 x 3 过滤器(简单起见不考虑第三个维度),步幅为 1。这是一种惯常的情况。
如果步幅增加到 2,输出内容会怎么样。
正常情况下,程序员如果想让接受域重叠得更少并且想要更小的空间维度(spatial dimensions)时,他们会增加步幅。
填充值
当你把 5 x 5 x 3 的过滤器用在 32 x 32 x 3 的输入上时,会发生什么?输出的大小会是 28 x 28 x 3。
注意,这里空间维度减小了。
如果我们继续用卷积层,尺寸减小的速度就会超过我们的期望。在网络的早期层中,我们想要尽可能多地保留原始输入内容的信息,这样我们就能提取出那些低层的特征。
比如说我们想要应用同样的卷积层,但又想让输出量维持为 32 x 32 x 3 。为做到这点,我们可以对这个层应用大小为 2 的零填充(zero padding)。零填充在输入内容的边界周围补充零。如果我们用两个零填充,就会得到一个 36 x 36 x 3 的输入卷。
如果你的步幅为 1,而且把零填充设置为
K 是过滤器尺寸,那么输入和输出内容就总能保持一致的空间维度。
卷积的计算
注意,下面蓝色矩阵周围有一圈灰色的框,那些就是上面所说到的填充值)
这里的蓝色矩阵就是输入的图像,粉色矩阵就是卷积层的神经元,这里表示了有两个神经元(w0,w1)。绿色矩阵就是经过卷积运算后的输出矩阵,这里的步长设置为2。
演化学习
遗传算法(genetic algorithms)
遗传算法GA
受生物进化启发的学习算法
假设搜索:一般假设模型到特殊假设模型? 简单假设模型到复杂假设模型?
通过对当前最好的假设模型重组来产生后续假设模型
生成并测试(generate-and-test)的柱状搜索(beam-search)
假设的各个部分相互作用,每一部分对总体的影响难以建模
种群
一组染色体及其所计算的适应度
GA工作在每一代的种群上。第0代种群中的染色体随机生成
产生后代:选择父母
基于适应度函数的选择
- 锦标赛选择 (tournament selection)
- 每次从种群中取出一定(N数量个体(放回抽样),然后选择其中最好的一个(M)进入子代种群
- 重复该操作,直到新的种群规模达到原来的种群规模
- 截断选择(Truncation selection
- 根据适应度排序,前f个染色体进入下一代种群
- 对染色体进行复制,填充至种群规模达到原来的种群规模
- 选择的作用:优胜劣汰,适者生存
遗传算子(GA operator)
对从当前群体中选择的染色体进行重组,以产生后代
交叉(Crossover)
选择两个候选个体,分解每一个个体,然后交换分量形成
两个新的候选个体
- 单点交叉
- 两点交叉
- 均匀交叉
变异(Mutation)
选择一个候选个体,随机的选择一位,然后取反
常以小概率p ~ 1/L(L是染色体长度) 发生变异
演化
简易方案
后代染色体直接替代父代染色体(与自然吻合)
易丢失优秀解
精英法(Elitism)
每一代保留上一代最优的染色体,丢弃掉最差个体
往往与选择算子混用
锦标赛法(Tournaments)
让父母染色体与后代染色体参与竞争,胜者放入下一代种群
小生境法(Niching)
小生境的作用
门当户对,并行演化
- 将每一代个体划分为若干类
- 每个类中选出若干适应度较大的个体作为一个类的优秀代表组成一个群
- 再在种群中,以及不同种群中之间,杂交,变异产生新一代个体群
小生境中的选择机制
- 预选择机制:只用高适应度子代替换父代
- 排挤机制:预定义原型。所产生的子代要保持和原型的模式不一致,模式相似的个体被替换
- 共享机制:计算适应度和模式的关联关系,然后共享这种模式
维度约简 降维算法
线性判别分析 LDA
有监督的特征降维方法:Linear Discriminant Analysis
给定标注了类别的高维数据集,投影到低维的超平面,使得样本点的按类别尽最大可能区分开
类别内的点距离越近越好,类别间的点越远越好
算法流程
主成分分析 PCA
无监督的特征降维方法:Principal Components Analysis
独立成分分析 ICA
强化学习
一定会出现
MDP
动态规划
探索
值函数、奖赏、测略
基于模型,不基于模型
Morte Carle方法
时间差分
Bootsraps
Sampling
Q-learning
TD
epsiode的概念
MDP模型
MDP模型-动作选择
目标:最大化期望奖赏(单状态下)
策略 单状态学习问题 状态到动作的映射(: S>A)
给定模型:采用贪心动作 Greedy action)
通常返回函数是即时奖赏值的线性组合
动态规划
给定一个完全已知的MDP模型
V(s) = r + η * (ΣΠV(s’))
跳到他们身上的概率*他们的V
你都列出来以后,解这个矩阵就可以了
你所有的V都算出来了 要求一个最优控制 那你只需要把Q都求出来就可以了
然后做决策时候选择Q最大的就好了