机器学习
2020-05-06 14:41:10 42 举报
AI智能生成
机器学习
作者其他创作
大纲/内容
概率
频率派
统计机器学习
监督学习
数据
数据缺失
数据清洗
特征抽取
降维
线性映射
SVD奇异值分解
PCA Principal Component Analysis 主成分分析
通过正交变换将一组可能存在相关性的变量转换为一组线性不相关的变量,转换后的这组变量叫主成分。
简单说就是找到variance大的轴,通过删除数据中那些variance小的轴来压缩数据
PCA的解释一般有两种,最小重构误差和最大投影方差,角度不同但是最后都是求特征向量和特征值
最大投影方差:w是一个向量,x是一个数据点,做这个数据点在w上的投射,得到zw的方向不同,得到的z的variance不同,应该尽量使variance大PCA就算在找W
最小重构误差:
LDA/Fisher
找到一条直线,使得投影后的数据点的类别尽量是分开的(相同类别的集中一些)
非线性映射
核方法
LLE(local linear embedding)局部线性嵌入
试图去保持领域内样本之间的关系。样本从高维空间映射到低维空间后,各个领域内的样本之间的线性关系不变
T-distributed Stochastic Neighbor Embedding (t-SNE)
属于非监督的降维 由SNE发展而来
SNE a) SNE构建一个高维对象之间的概率分布,使得相似的对象有更高的概率被选择,而不相似的对象有较低的概率被选择。b) SNE在低维空间里在构建这些点的概率分布,使得这两个概率分布之间尽可能的相似。
与kmeans等方法不同,它不能通过训练得到一些模型参数后再适用于其它数据(比如kmeans可以通过训练得到 k个点,再用于其它数据集,而 t-SNE只能单独的对数据做操作,也就是说它只有fit_transform,而没有fit操作)
Laplacian Eigenmaps
其他方法
神经网络
聚类
分布式表示distributed representation
把object属于某一类的可能性用分布表示 实际中可能目标70%属于一类,30%属于另一类,分布式的表示也可称为降维
文本特征
word class:不能体现类之间的关系
word embedding
把词汇表中的单词或者短语映射成由实数构成的向量上
训练
随机初始化,和任务一起训练
在一个监督任务上做预训练,在另一个上测试(不常见,因为监督学习需要标注数据,比较少见)
在一个无监督任务上做预训练(相对常见)
学习词向量的表示
基于全局矩阵分解
LSA
局部上下文窗口
基于context预测word
skip-Gram
通过给定单词来预测上下文的概率 正好和CBOW相反
对每个词评分,求和并加上偏置,最后分数决定分类
Deep CBOW
N-Gram模型
GloVe
词向量的评估
内在评估
?
外在评估
词向量的改进
Sub-word Embeddings:提取词汇中的词素,递归地使用词素,构成词嵌入(词素:词汇的最小语义单元)
Bag of character n-gram:用于表示词,将一个词汇分成n-grams字母形式,每个字母组(grams)都有自己的嵌入向量,将这些字母组加和就得到最终的词嵌入向量。
feature scaling 特征缩放
使不同的特征有相同的规模(使不同特征对loss的影响尽量一致,loss等高线尽量的变成一个圆,正圆形的时候update参数会比较容易)
数据划分
训练集
测试集
验证集
模型选择
判别模型
f(x)
判别函数类型,拟合得到 f(X)
概率判别模型
生成模型
区别
生成模型提前做了一些假设,比如说提前假定数据符合高斯分布
线性回归
逻辑回归
极大化对数似然函数
分类
感知机
由误分类点驱动
二分类算法
损失函数 为误分类点到超平面的距离
调包
KNN
三要素
k值选择(与测试点距离最近的k个点)
k值大,则模型简单;k值小,则模型复杂
k值得选择反映了对近似误差与估计误差之间的权衡
距离度量(p范数)
多类分类,上述三要素确定后将得到唯一的结果
k-d树
二叉树,表示对k维空间的划分,便于对k维空间中的数据进行快速的检索
朴素贝叶斯
生成学习方法
基本假设
P(X|Y)=P(X1|Y)P(X2|Y)...P(Xn|Y),条件独立,各个特征之间全部相互独立,这是个比较强的假设
求后验概率分布P(Y|X))
取使后验概率最大的类为实例的类
拉普拉斯平滑
避免出现0概率
支持向量机
SVM是定义在特征空间上的间隔最大的线性分类器。求解能够正确划分训练数据集并且几何间隔最大化的分离超平面。间隔概念使其与感知机不同,在数据可分时只取最优的那个解
硬间隔&软间隔
训练数据线性可分
硬间隔最大化
硬:所有的点都不落在支撑超平面间
间隔:支撑超平面之间的间隔
最大化:使得所有实例点到直线距离最大
训练数据近似线性可分
软间隔最大化
训练数据线性不可分
核方法 kernel method
核技巧 kenel trick
基本思想就是通过一个非线性变化将输入空间对应于一个特征空间,使得在输入空间上超曲面模型对应于特征空间上的超平面模型
核函数 kerne function
非线性带来高维转换
高维比低维更容易线性可分
对偶表示带来内积
损失函数为Hinge合页损失
决策树
可以认为是if-then规则的集合
由节点和有向边组成,内部节点表示特征,叶节点表示一个类。也就是说,通过不同特征来划分为不同的类
特征选择
信息增益information gain最大化
考虑选择哪个特征来对当前的特征空间进行划分最好,信息增益能够描述哪个特征具有更好的分类能力
适用于多值属性
信息增益比
偏向于不平衡的分裂
Gini指标
CART算法
步骤1、决策树生成
2、剪枝
ID3
ensemble
找很多分类器,让它们互相帮助,1+1>2这样
bagging
该方法通常考虑的是同质弱学习器,相互独立地并行学习这些弱学习器,并按照某种确定性的平均过程将它们组合起来。
random forest 随机森林
?
boosting
用于本身很弱、不能很好地拟合数据的模型
Adaboast
思想 在一个新的training set上训练出一个能够使得 f1()fail的f2()
构建一系列弱分类器,然后组成一个强分类器
gradient boosting
stacking
trainning data分成两部分,由final classifier决定每个y的weight
errors从哪里来
bias
衡量离中心的远近,是机器误差。大的bias离靶心远,小的近。简单的模型bias大,复杂的就小。
bias较大时的处理方式
增加特征数量使用更复杂的模型去掉正则化
variance
衡量离散程度,是随机误差
variance较大时的处理方式
减少特征数量使用更简单的模型增大你的训练数据集使用正则化加入随机因子,例如采用 bagging 和 boosting 方法
error来自太大的variance overfitting(training data上拟合的好,testing data表现差)增加data error来自太大的bias underfitting(training data上拟合的不好)redesign model,可能需要加更多的feature
损失函数
0-1损失函数
平方损失函数
绝对损失函数
对数损失函数/对数似然损失函数
logistic回归&最大熵模型
Hinge合页损失函数
SVM
指数损失函数
误分类点到超平面的距离
风险最小化
期望风险
经验风险
模型f(X)关于训练样本集的平均损失
由大数定律,当样本容量N趋于无穷时,经验风险趋于期望风险。使用emp估计exp不失为一种方法,但由于训练样本一般数目有限,为提高这种估计的正确率,要对经验风险进行一定的矫正
经验风险最小化
样本容量足够大有较好的学习效果,样本容量小时则容易发生过拟合
结构风险
在经验风险上加上表示模型复杂度的正则项或罚项
结构风险最小化
等同于正则化,需要经验风险或模型复杂度同时小
无监督学习
Anomaly Detection异常检测
找到function,可以判断输入的x是否属于training data。如果是,就是正常数据,否则为异常数据。
错误类型
false alarm 把正常判断为异常;missing 把异常判断为正常
cluster集群
这些聚类的方法要求object必须属于某一类,
k-means
·feature selection 拿掉没什么影响的dimension
principle component analysis(PCA)
matrix factorization 矩阵分解
把矩阵分解应用在topic analysis上:LSA
generation
半监督学习
转导推理——Transductive Learning:无标签数据就是测试数据归纳学习——Inductive Learning:无标签数据不是测试数据
机器学习的下一步
检测出新数据是否属于training data
Explainable ML
local explaination
做出判断后explain the decision 为什么你认为这个图片属于类别y?
global explaination
如果机器认为图片是一只猫,那么机器认为的猫是长什么样子的
Attack ML Models
研究如何攻击机器学习模型而生的,又称为对抗样本技术,有一些图片,给它们加上一些肉眼不太能察觉的噪声后,在同一个模型下,会得到完全不一样的预测结果。
类型
有目的攻击
无目标攻击
对于无目标攻击,希望加上Δx后,模型预测的结构离ground_truth越远越好。
Life-Long Learning 终生学习
Catastrophic Forgetting 灾难性遗忘
多类问题,分开学的话学完后面的就忘掉了前面的,但把这些问题放在一起去train model,机器其实能学到些东西
multi-task training
可以解决灾难性遗忘的问题,但带来了计算问题和存储问题。因此,multi-task training可以看作LLL的上界。
知识保留Knowledge Retention
Elastic Weight Consolidation
EWC思路:有些参数对于previous task很重要,要避免去调它们,即只去调那些不重要的参数
Synaptic Intelligence(SI)
Memory Aware Synapses(MAS)
知识迁移Knowledge Transfer
transfer learning是希望机器学完task1后可以在task2上做得更好,不介意学完task2后还会不会做task1;而LLL额外希望不要忘记task1
任务的顺序也会有影响
机器能力足够,无需扩展
Gradient Episodic Memory(GEM)存了一点过去task的资料,梯度下降的方向不仅考虑当前task的方向,还要考虑之前的task的方向
机器能力不足,需扩展
Progressive Netural Networks
Expert Gate 每一个task就训练一个network,learn另一个task的detector,这个detector可以判断新来的任务跟以前的哪个task最像,就把那个task训练好的model拿来做这个model的initialization
Net2Net 新进来的任务解不了的话,就把network变宽
模型扩展
Progressive Neural Network
即在新的任务上训练模型时,使用之前已经训练得到的所有模型的参数作为新模型的初始化参数,而不是使用参数的随机初始化。
meta-learning
步骤
machine learning:找出一个函数f 步骤:1定义一个function set 2定义loss function以评价function的好坏 3选择最好的那个meta learning:找出能产生f的F 步骤同上
训练资料
machine learning的训练资料是training data和testing datameta learning的训练资料是很多的task(training task 和learning task(有时候需要validation test)),每个task就是个machine learning
评估F表现
F应用在task上,每个task都对应一个loss值,用总和来评估F
Model Agnostic Meta Learning ,MAML
对于F在每一个任务中学习到的f,规定f只负责决定参数的赋值方式,而不设计模型的架构,也不改变参数更新的方式。在MAML中f的网络结构和更新方式都是提前固定的 ,MAML要解决的是如何针对不同任务为网络赋不同的初始值
few shot/zero shot learning
:在target domain只有少量的example
ZSL希望模型能够对其从没见过的类别进行分类,让机器具有推理能力,实现真正的智能。其中零次(Zero-shot)是指对于要分类的类别对象,一次也不学习。(为什么不学习呢,可能我们training data里没有那个样本)
贝叶斯派
概率图模型
0 条评论
下一页