机器学习英文关键字

本文介绍了机器学习中的一些核心概念,包括softmax、平方误差、交叉熵、Adagrad、RMSProp、Momentum和Adam等优化算法。还讨论了dropout、正则化、早停策略以及梯度消失问题的解决方案ReLU。此外,提到了卷积神经网络、池化、数据处理方法如半监督学习和无监督学习,以及相关技术如K-means、PCA、NMF、SVD。文章深入探讨了词嵌入、t-SNE可视化、自编码器及其变种,并触及了强化学习、生成模型和SVM等相关主题。
摘要由CSDN通过智能技术生成

softmax e的N次方,然后除以和
square error 方差
cross entroy 交叉熵,解决方差梯度太小,回归太慢的问题
Adagrad 计算learning rate
RMSProp 计算learning rate
Momentum 修正梯度方向
Adam RMSProp+Momentum
dropout 每次training的时候,丢弃p%神经元,testing的时候,weight乘以(1-p%).负重训练,追求更好的testing结果。
regularization 使梯度更平滑,使参数不要离0太远,解决overfitting
early stopping 从training set中分一个validation set,模拟testing set,解决overfitting
vanishing gradient problem DNN层次太多,sigmond函数导致靠近input layer的参数学习速率太慢,靠近output layer的参数学习速度太快
relu 解决vanishing gradient problem
maxout relu的一种特殊的relu

convolutional neural network 卷积神经网络
convolution 使用filter进行特征提取
max pooling subsample,对图形进行缩放
flatten 将N维数据转化为1维

modularization 模组化,一种编程思想。DNN只需少量参数就能强大的原因。每个neural可以视为一个分类器,简单分类器组合成复杂分类器。某类复杂属性对应的数据比较少,不好train,但是组成复杂属性的简单属性的数据特别多,容易train,train好了简单属性,复杂属性也就可以搞定了。所以,train需要的数据也可以变少。 只有一层的DNN,可以解决问题,但是它是没有效率的。

半监督学习,有三大假设

  1. 概率假设 semi-supervised generative model soft label(分数) 先初始化一些模型参数,得到分布函数,然后使用label data,unlabel data更新模型参数,得到新的分布函数,如此往复

2.low-density separation assumption 不同类的边界区域样本特别少,非黑即白

self-training hard label(整数) 一种low-density separation方法.先用label data训练出参数,然后对一些unlabel data进行标识,增加label data。然后用新的全部label data训练出新参数,如此往复。

entropy-based regularization label data分类正确,unlabel data分类后的概率信息熵尽量小。这是一个非黑即白的世界

  1. smoothness assumption 近朱者赤,近墨者黑 向量x1,x2在高密度区域接近,则y1,y2是一样的

graph-based approach 定义向量距离函数,建立连接图。AB如果同类,则中间有很多数据实例把它们连接.定义一个smoothness函数表示整个图的平滑程度,作为regularization,被加在label data建立的Loss函数后面,其中unlable data的标签作为回归参数,然后对整体进行剃度下降,计算出unlabel data的标签.(label data标签正确,整个图平滑)

graph laplacian L=D-W W是权重图,D是对角线矩阵

cluster and then label 利用全部data进行聚类,基于smoothness assumption对unlabel data进行标识

无监督学习有两大类

1.clustering & dimension reduction 化繁为简

2.generation 无中生有

clustering 的两种方法

  1. K-means 预先选择k个数据作为中心,然后遍历数据,对数据进行分类,然后更新中心,如此往复

  2. HAC 建立一棵树,叶节点是单个数据,然后根据相似度,叶节点组合成非叶节点,最终组合成root节点

PCA 线性降维,只有一层的神经网络,autoencoder的特殊形式,因为autoencoder可以是非线性的
在信号处理中认为信号具有较大的方差,噪声有较小的方差,信噪比就是信号与噪声的方差比,越大越好。因此我们认为,最好的k维特征是将n维样本点变换为k维后,每一维上的样本方差都尽可能的大。

NMF 全是正数的PCA

SVD 矩阵分解技术

matrix factorization 矩阵因数分解。利用梯度下降最小化reconstructor error,计算出latent factor,以此可以实现推荐系统

Latent semantic analysis(LSA) 潜在主题分析。没有autoencoder强

词嵌入:

1-of-N encoding N个单词就N维,只有自己对应的那一维为1

Word Embedding 1-of-N encoding 降维为word vector的方法(不能使用autoencoder,因为1-of-N encoding表示的向量是相互独立的).一共有2种:

  1. Count based 2单词一起出现越频繁,它们的向量越接近.内积等于出现次数(跟LSA类似)

  2. Prediction based 输入1-of-N encoding,输出的每一维代表某个单词是下一个单词的几率,就是1-of-N encoding。第一个hidden layer就代表输入向量x的word vector。如果使用多个context单词,则需要把不同单词的w参数设置为一样,否则,同一单词处于不同位置得到的word vector将不一样。训练出来的w乘以输入x,就得到x对应的word vector

近邻嵌入:

neighbour embedding 非线形降维方式

manifold learning 低维空间被扭曲塞入高维空间。降维,学得低维分布

Locally Linear Embedding(LLE) xi由周围点集xj线性组合成,参数是w,这些w可以通过梯度下降得到.xi,xj映射为zi,zj,w不变,求zi,zj。在天愿做比翼鸟,在地愿为连理枝

Lapacian Eigenmaps(LE) 高维空间接近,降维后,在低维空间也接近。直接对smothness function求最小值,并且对降维后的Z做限制,不能都是0。具体的限制就是Z的维数是M,则所有的Z的span就是M维空间,即Z是不能再降维的.最终就是求laplacian matrix的特征向量

t-SNE LLE和LE降维只能保证接近的点仍然接近,不能保证不接近的点,降维后离的足够远。

定义相似度S(xi,xj),离得越近,相似度越高,值越大
定义概率P(xj|xi),xi对xj的相似度,除以xi对所有点的相似度。可以这么思考,P(xj|xi)代表从xi走到下一个点的概率,离的越近,相似度越高,概率越大

降维后,计算P(zj|zi)。

X的概率分布与Z的概率分布,应该是相似的。这时候,可以计算X和Z的KL散度,尽量小,越小代表分布越接近.

可以使用梯度下降。

t-SNE 适用于已有数据的visualization,不适用动态添加数据,如果动态添加,需要把所有流程再跑一遍

t-SNE 神奇的地方 S(xi,xj)=exp(-||xi-xj||2), S(zi,zj)=1/(1+||zi-zj||2),降维之后的similarity函数是不一样的。这样定义的原因是:||xi-xj||很大,降维后,为了维持相同的similarity,需要||zi-zj||更大,即点之间的距离更大,这样就能把不同的对象分开的更明显

因为t-SNE计算量比较大,一般使用PCA先降维到50维,然后再用t-SNE进行降维到2维,可视化。

autoencoder 使用DNN对数据压缩,解压缩,一起训练.encoder,decoder的参数可以一样,也可以不一样

Vecor Space Model 将文章表示为向量,查询也表示为向量,然后计算两者的similarity

bag of word 将文章表示为向量的方法,世界上10万个词汇,这个向量就是10万维。每一维表示单个词汇的数量,有时还可以乘上一个参数,表示词汇的重要性,比如inverse document frequency. 这个模型没有考虑语义

text retrieval bag of word将文章表示为向量,使用autoencoder将它压缩为2维,不同题材的文章聚集在一起,看起来像一朵花。查询词也使用autoencoder压缩为2维,然后算similarity。LSA做同样的事情,涉及matrix factorization,效果不好

Similar Image Search 使用autoencoder,将图形压缩为低维向量,计算similarity,查找相似的图形

Pre-training DNN 使用autoencoder计算DNN的初始值,每次只train一层的参数w,已经过时。但是如果有大量unlabel data,可以先用unlabel data预训练参数并初始化,然后再用label data去梯度下降

Find-tune Pre-training DNN之后的参数小范围调整

DeNoising autoencoder 加点噪声autoencoder,最后的结果跟加噪声前的数据比较,这样训练出来的神经网络比较强健

Unpooling pooling逆操作,记录采样点原来的位置,然后还原回去,其余的地方补0,也可以补采样点。

Deconvolution convolution 逆操作,实际就是volution。比如原来5维映射为3维,逆操作就是3维前后补2个0变为7维,然后由7维映射为5维

PixelRNN 训练一个RNN,传进去前面的像素,得到后面的一个像素。应用:给半张图,预测另外半张,声音预测,创造新的神奇宝贝。可以对像素RGB使用1-of-N encoding压缩成索引型的,生成鲜明的图片

Variational Autoencoder(VAE) 将encoder中生成的1个向量,变成生成2个向量,这2个向量可以学习出来,可以看作一个是旧的code,一个是噪声,再加上一个按照高斯分布随机生成的向量,一起生成一个c,对这个c进行decoder,保证output跟input相近。同时加上一个精妙的regularization项。 可以变化向量中的特定维数,看看对decoder后的图形的影响。autoencoder,在满月和半月之间插值,不是月亮,VAE加了一些噪声,覆盖的范围比较广,插值仍旧是月亮。为了防止噪声参数学习结果为非常小的负数,取exp函数,得到实际噪音非常小,所以要加上regularization项,保证噪音参数向0靠,实际噪音的var靠近1

VAE我的理解 输入变量x是M维无规则空间中的变量,隐变量z是N维高斯空间中的变量,M>N。利用高斯混合模型,每个z可以映射出一个x空间一部分模拟的高斯分布mean,var,这是解码的部分。同样的,每个x可以映射出一个z所在的高斯空间的mean,var,这是编码的部分。利用高斯混合模型,从M维无规则空间一部分映射到N维高斯空间,再映射回M维无规则空间的一部分,这部分可以用高斯空间模拟,这就是VAE原理。因为可以得到z所处的高斯空间分布参数,于是可以从z所处空间中取变量进行解码,生成比较靠谱的数据。

Conditional VAE 抽取数字0的特性,然后生成字体类似的其余数字

VAE的问题 只是记住了训练数据,产生的数据只是对训练数据的模仿,只是训练数据的线形组合。只是试图产生跟训练数据一摸一样的数据,并不能产生以假乱真的数据

VAE 新的理解 拥有10个中心的高斯混合模型,每个中心代表一个数字,这个数字的所有书写形式的二维编码,都在这个中心附近,而且呈现标准高斯分布。记住,不同的数字有不同的高斯中心

Generative Adversarial Network(GAN) generator生成假图片,混合真图片,去训练discriminator,于是discriminator可以分辨真假图片。然后把generator和discriminator连接起来,固定discriminator,调整generator的参数,使其生成的假图片可以骗过discriminator。如此往复。generator从来都不知道真图片是什么样,也没有被真图片训练过。generator就是VAE中的Decoder

fine-tuning 用source data 训练出来的参数初始化target data训练网络

conservative training source data网络与target data 网络输入同一笔数据,输出越接近越好

layer transfer speech:常常迁移后面几层,后面几层的处理跟个人无关; image:常常迁移前面几层,因为前面几层识别的是图片基本元素,所有图片都有

SVM w是训练数据的线性组合 w=∑ånXn. f(x)=wx,所以f(x)= ∑ån(Xn•x) = ∑ånK(Xn,x),K就是核函数,它是similarity的度量,越大越相似

Kernel trick 线形模型有一定的局限性,一般需要将2个向量转换到高维空间,然后点积,才能使用线形模型。假设转换函数为ø(x), 而核函数是一种快捷的计算点积的方式,K(x,z) = ø(x)•ø(z),我们可以专门针对这个核函数进行训练。deep learning一般是对输入x先用N层进行feature transform,然后与Xn点积,然后再用å线性组合。如果能找到合适的核函数,可以直接用核函数作用于Xn,x,得到高维空间中向量的点积,再用å线性组合,简化训练过程,减少训练层数

struct SVM 中的Cost Function 之所以要加上一个∆(y head, y),是为了给y排序,越接近y head的y排名越靠前。∆表示y与y head的差距,差距越大∆越大

conditional generation 一个rnn构成的encoder,生成内容的向量v,一个rnn构成的decoder,根据v生成新内容

attention dynamic conditional generation 一个内容,可能有多个关注点,每个关注点对应一个向量v。encoder是一个RNN,先准备一个切分层,可以训练出来每个关注点v的权重,根据权重生成内容向量V。decoder也是一个RNN,根据V生成新内容

match函数 attention中的特殊函数,算出来每个关注点的权重。可以为无参数的cosine similarity,也可以为NN,也可以为一个简单的矩阵变换

gan的原理 G* = argmin(G)max(D)V(G,D)
max(D)V(G,D) 可以解出D的解析式,得到这个max值就是Pdate(x)和PG(x)的js散度,这个值表示原始数据分布和生成器分布之间的距离。但是D的解析式是得不到的,只能用NN来近似得到(如果能得到,就不需要多次迭代)
min 就是在最小化原始数据分布和生成器分布之间的距离,让生成器更接近原始分布
把G,D想成2个函数,V是一个固定函数,先固定G,max取特定的D,表示G和data之间的js散度,再固定D,得到G使js散度最小。如此循环。之所以多一个max,只是为了得到js散度,因为这个解是固定的,min去减小js散度,减小G和data之间的距离

gan的问题

D的能力太强,0Loss,D就不会产生进化,D不进化,G也不会进化
1.数据只是data分布和G分布的采样,D太强。导致,即使两种分布有交集,但是采样结果,D都能划出一条线,把两种采样分开,毫无交集。
2.data分布和G分布,只是高维空间中的manifold(流形),本来就是很难有交集的,它们的js散度为极大值log2很正常

mode collapse
因为min 交叉熵(即KL散度+信息熵)的问题,导致G的函数会倾向于单峰,避免Pdata有值为0或PG有值为0(0会导致交叉熵无限大),这样G就无法拟合真正的data分布

evaluation
方法一:
计算真实数据在PG上的log likelihood,越大表明越好
但是gan的PG是不确定的,gan只能sample。所以有一种方法是从gan中sample一些数据,然后用mix高斯模型去近似得到PG,然后就可以计算log likelihood了。
问题:
低likelihood,高质量?
这是有可能的,PG陷入mode collapse,生成的都是逼真的同一个角色。真实数据是另一个角色,数据代进去的PG值为0.
高likelihood,低质量?
这也是有可能的,log(-100)是4.6,即使只有1%的几率生成正常的图片,其likelihood也只比100%生成正常图片低4.6
方法二:
用一个已经train好的CNN去判断生成的图片,如果熵越小,说明概率分布越集中,生成器生成的图片质量越好
生成多张图片,代入CNN,分布概率求和,如果和的熵越大,说明越分散,说明生成器覆盖范围越广
Inception Score 就是方法二的变形

如何检查 mode collapse?
用generate的数据当作negi数据,实际数据当作posi数据,train一个Discriminator,某些实际数据被Discriminator处理后得到的值特别大,那它很可能处于miss mode

original actor-critic Q(s,a) ,根据概率抽样action,但是可能存在某些action概率太低,被忽略掉,实际上被忽略掉的action的Q值,就是最大的。Q的初始化参数是随机的,可能导致最优action的概率特别低,无法被抽样到。

Q-learning Q(s,a)是确定的,在特定状态state下,可以求得特定的action是最优选择,避免抽样的缺点,可能把最优解忽略掉。
Q值常常会被高估。 Q(S[t],a[t])<——>r+max Q(S[t+1],pai(S[t+1])), 求极大值的时候,不同action的结果,受噪声影响,有高估,有低谷,高估的容易被选为max,导致Q值被高估。

Double DQN 用2个Q,一个负责选择action,一个具体的计算。这样就不会高估了。

Dueling DQN 通过修改神经网络架构,在算Q的同时,把V也算出来 A(s,a) = Q(s, a) - V(s). 注意,V是和a无关的,所以,通过修改输入s内容,可以知道如何修改s,对V和A的影响最大,可以知道s中的哪些内容跟action有关,哪些是无关的。比如赛车游戏,每出现一辆车,对V影响明显。但是每靠近一辆车,才对A影响明显。

Pathwise Derivative Policy Gradient 把一个actor的输出,跟一个Q的输入连在一起,就变成了gan。先用actor跟环境互动生成Q,然后把Q参数固定住,调整actor参数,使得Q的输出最大,得到新的actor,如此往复。

强化学习适合去解决那些人都不清楚最优解的问题,比如围棋,这就不能用监督学习

某些问题,没有简单的评分标准,但是有大量的真实数据,可以用gan+强化学习进行训练
比如gan训练chat-bot
强化学习可以训练2个chat-bot, 2个chat-bot对话,然后由人打分.但是可能需要对话上千万次,人不可能打分上千万次,此时就可以使用gan,用一个不断进化的discriminator去打分。
具体步骤:
1.收集2个chat-bot对话和一些人类对话,训练discriminator去区分,chat-bot对话分数尽量低,人类对话分数尽量高。
2.然后固定discriminator参数,用这个discriminator去评判chat-bot的对话得分,根据得分,chat-bot调整参数,努力得高分,这就是强化学习啊。然后,回到第1步。

神经网络图灵机NTM:简单的理解,比lstm更强大的神经网络,结构有点像图灵机。根据输入输出进行训练,

Neural Turing Machine神经图灵机就是为神经网络构造了一个记忆结构,可写可读,并且可以通过随机梯度下降来更新记忆结构的参数,从而优化记忆。在这篇文章中,使用的记忆结构类似于Memory Network。这个记忆结构的读操作和写操作可以用函数表示,并且完全可微,因此可以很方便地使用随机梯度下降来更新。这种更新操作就类似我们人类对某段记忆的印象变化。有的记忆重要,就加深记忆,有的记忆不重要,就遗忘掉。

quadratic programming 二次规划

support vector machine 最终会变成一个二次规划问题

dual svm 对偶支持向量机 将原空间的问题转化到高维空间,维数可能爆炸,维数越高越难处理。而转化为dual svm问题,维数固定为N(数据集的数量)。在dual svm中,对应的阿尔法不为0的点,称为support vector,根据这些点和其对应的阿尔法,可以算出w和b,即分开这些点的超平面。

对比SVM和PLA, 会发现w都可以用所有数据的yz的线形组合表示出来. SVM是用support verctor的线形组合表示,PLA是用犯错的点的线形组合表示

d小,N大,适合在SVM中解决问题,d大,N小,适合在dual SVM中解决问题

在dual SVM中,二次规划要最小化的式子中的参数Q需要计算转换后的数据的内积,这个过程的复杂度太高,通过kernal function,可以降低这个复杂度

SVM 中的 kernal function 是为了方便计算转换后的点的内积问题,笨方法是先转换,再内积,聪明的方法是,直接内积,然后用kernal function 直接算出内积。转换跟kernal function 是一一对应的

高斯核的缺点 转换到无限维,无法算出在无限维中的w和b,比线形核慢,功能太强大,什么都能分开

点积代表相似性,kernal function能够快速的求出转换后的相似性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值