self-taught learning 在特征提取方面完全是用的无监督的方法,对于有标记的数据,可以结合有监督学习来对上述方法得到的参数进行微调,从而得到一个更加准确的参数a. 在self-taught learning中,首先用 无标记数据训练一个sparse autoencoder,这样用对于原始输入x,经过sparse autoencoder得到隐层特征a: 这样对于分类问题,目标是预测样本的类别标号 .现在的标注数据集 ,包含  个标注样本.此前已经说明,可以利用稀疏自编码器获得的特征…
在machine learning领域,更多的数据往往强于更优秀的算法,然而现实中的情况是一般人无法获取大量的已标注数据,这时候可以通过无监督方法获取大量的未标注数据,自学习( self-taught learning)与无监督特征学习(unsupervised feature learning)就是这种算法.虽然同等条件下有标注数据蕴含的信息多于无标注数据,但是若能获取大量的无标注数据并且计算机能够加以利用,计算机往往可以取得比较良好的结果. 通过自学习与无监督特征学习,可以得到大量的无标注数…
softmax可以看做只有输入和输出的Neurons Networks,如下图: 其参数数量为k*(n+1) ,但在本实现中没有加入截距项,所以参数为k*n的矩阵. 对损失函数J(θ)的形式有: 算法步骤: 首先,加载数据集{x(1),x(2),x(3)...x(m)}该数据集为一个n*m的矩阵,然后初始化参数 θ ,为一个k*n的矩阵(不考虑截距项):       首先计算,该矩阵为k*m的: 然后计算: 该函数参数可以随意+-任意参数而保持值不变,所以为了防止 参数 过大,先减去一个常量,防…
面对复杂的非线性可分的样本是,使用浅层分类器如Logistic等需要对样本进行复杂的映射,使得样本在映射后的空间是线性可分的,但在原始空间,分类边界可能是复杂的曲线.比如下图的样本只是在2维情形下的示例,假设有100维度,即特征数目是100,若使用logistic来做分类,对于这种线性不可分的情形,要对特征进行各种形式的组合映射,然后用映射后扩充的特征进行分类,可能会增加大量的参数,计算复杂性可想而知,而且可能会造成严重的over-fitting,可见logistic分类的局限性,下面引入NN.…
之前所讲的图像处理都是小 patchs ,比如28*28或者36*36之类,考虑如下情形,对于一副1000*1000的图像,即106,当隐层也有106节点时,那么W(1)的数量将达到1012级别,为了减少参数规模,加快训练速度,CNN应运而生.CNN就像辟邪剑谱一样,正常人练得很挫,一旦自宫后,就变得很厉害.CNN有几个重要的点:局部感知.参数共享.池化.  局部感知 局部感知野.一般认为人对外界的认知是从局部到全局的,而图像的空间联系也是局部的像素联系较为紧密,而距离较远的像素相关性则较弱.因…
Hintion老爷子在06年的science上的论文里阐述了 RBMs 可以堆叠起来并且通过逐层贪婪的方式来训练,这种网络被称作Deep Belife Networks(DBN),DBN是一种可以学习训练数据的高层特征表示的网络,DBN是一种生成模型,可见变量  与  个隐层的联合分布: 这里 x = h0,为RBM在第 k 层的隐层单元条件下的可见单元的条件分布, 是一个DBN顶部可见层与隐层的条件分布,如图下: DBN的训练: 1. 首先充分训练第一个 RBM:  2. 固定第一个 RBM…
sparse autoencoder的一个实例练习,这个例子所要实现的内容大概如下:从给定的很多张自然图片中截取出大小为8*8的小patches图片共10000张,现在需要用sparse autoencoder的方法训练出一个隐含层网络所学习到的特征.该网络共有3层,输入层是64个节点,隐含层是25个节点,输出层当然也是64个节点了. main函数,  分五步走,每个函数的实现细节在下边都列出了. %%===============================================…
今天得主题是BP算法.大规模的神经网络可以使用batch gradient descent算法求解,也可以使用 stochastic gradient descent 算法,求解的关键问题在于求得每层中每个参数的偏导数,BP算法正是用来求解网络中参数的偏导数问题的. 先上一张吊炸天的图,可以看到BP的工作原理: 下面来看BP算法,用m个训练样本集合来train一个神经网络,对于该模型,首先需要定义一个代价函数,常见的代价函数有以下几种: 1)0-1损失函数:(0-1 loss function)…
self-taught learning 在特征提取方面完全是用的无监督的方法,对于有标记的数据,可以结合有监督学习来对上述方法得到的参数进行微调,从而得到一个更加准确的参数a. 在self-taught learning中,首先用 无标记数据训练一个sparse autoencoder,这样用对于原始输入x,经过sparse autoencoder得到隐层特征a: 这样对于分类问题,目标是预测样本的类别标号 .现在的标注数据集 ,包含  个标注样本.此前已经说明,可以利用稀疏自编码器获得的特征…
Sparse AutoEncoder是一个三层结构的网络,分别为输入输出与隐层,前边自编码器的描述可知,神经网络中的神经元都采用相同的激励函数,Linear Decoders 修改了自编码器的定义,对输出层与隐层采用了不用的激励函数,所以 Linear Decoder 得到的模型更容易应用,而且对模型的参数变化有更高的鲁棒性. 在网络中的前向传导过程中的公式: 其中 a(3) 是输出. 在自编码器中, a(3) 近似重构了输入 x = a(1) . 对于最后一层为 sigmod(tanh) 激活…
1.RBM简介 受限玻尔兹曼机(Restricted Boltzmann Machines,RBM)最早由hinton提出,是一种无监督学习方法,即对于给定数据,找到最大程度拟合这组数据的参数.RBM常用于降维,分类,回归与协同过滤,特征学习甚至 topic model ,其网络结构如下: RBM是一种两层的贝叶斯网络,是Deep Blief Network 的基本组成成分,该网络可网络结构有 n个可视节点和m个隐藏节点 ,其中每个可视节点只与m个隐藏节点相关,与其他可视节点独立,对于隐藏节点同…
对于加深网络层数带来的问题,(gradient diffuse  局部最优等)可以使用逐层预训练(pre-training)的方法来避免 Stack-Autoencoder是一种逐层贪婪(Greedy layer-wise training)的训练方法,逐层贪婪的主要思路是每次只训练网络中的一层,即首先训练一个只含一个隐藏层的网络,仅当这层网络训练结束之后才开始训练一个有两个隐藏层的网络,以此类推.在每一步中,把已经训练好的前  层固定,然后增加第  层(也就是将已经训练好的前  的输出作为输入…
SoftMax回归模型,是logistic回归在多分类问题的推广,即现在logistic回归数据中的标签y不止有0-1两个值,而是可以取k个值,softmax回归对诸如MNIST手写识别库等分类很有用,该问题有0-9 这10个数字,softmax是一种supervised learning方法. 在logistic中,训练集由  个已标记的样本构成: ,其中输入特征(特征向量  的维度为 ,其中  对应截距项 ), logistic 回归是针对二分类问题的,因此类标记 .假设函数(hypothe…
PCA 给定一组二维数据,每列十一组样本,共45个样本点 -6.7644914e-01  -6.3089308e-01  -4.8915202e-01 ... -4.4722050e-01  -7.4778067e-01  -3.9074344e-01 ... 可以表示为如下形式: 本例子中的的x(i)为2维向量,整个数据集X为2*m的矩阵,矩阵的每一列代表一个数据,该矩阵的转置X' 为一个m*2的矩阵: 假设如上数据为归一化均值后的数据(注意这里省略了方差归一化),则数据的协方差矩阵Σ为 1/…
PCA的过程结束后,还有一个与之相关的预处理步骤,白化(whitening) 对于输入数据之间有很强的相关性,所以用于训练数据是有很大冗余的,白化的作用就是降低输入数据的冗余,通过白化可以达到(1)降低特征之间的相关性(2)所有特征同方差,白化是需要与平滑与PCA结合的,下边来看如何结合. 对于训练数据{},找到其所有特征组成的新基U,计算在新基的坐标 ,这里就会消除数据的相关性: 这个数据的协方差矩阵如下:  协方差矩阵对角元素的值为  和  ,且非对角线元素取值为0,课件不同纬度的特征之间是…
主成分分析(PCA)是一种经典的降维算法,基于基变换,数据原来位于标准坐标基下,将其投影到前k个最大特征值对应的特征向量所组成的基上,使得数据在新基各个维度有最大的方差,且在新基的各个维度上数据是不相关的,PCA有几个关键的点: 1)归一化均值与方差,均值归一化后便于计算,方差归一化后便于对各个维度进行比较 2)新基为正交基,即各个坐标轴是相互独立的(可理解为垂直),只需要取新基上取方差最大的前几个维度即可 3)PCA的前提是只对服从高斯分布的数据特征提取效果较好,这就大大限制了它的应用范围.如…
BP算法是适合监督学习的,因为要计算损失函数,计算时y值又是必不可少的,现在假设有一系列的无标签train data:  ,其中 ,autoencoders是一种无监督学习算法,它使用了本身作为标签以此来使用BP算法进行训练,即,见如下示例: 自编码器尝试学习一个  的函数,它尝试逼近一个恒等函数,从而使得输出  接近于输入 ,这样做的意义在于如果对hidden layer加上一些限制,比如hidden layer的数量限制,就可以从输入数据中发现一些有趣的结构. 举个栗子:假设网络的输入是一张…
BP算法很难调试,一般情况下会隐隐存在一些小问题,比如(off-by-one error),即只有部分层的权重得到训练,或者忘记计算bais unit,这虽然会得到一个正确的结果,但效果差于准确BP得到的结果. 有了cost function,目标是求出一组参数W,b,这里以表示,cost function 暂且记做.假设 ,则 ,即一维情况下的Gradient Descent: 根据6.2中对单个参数单个样本的求导公式: 可以得到每个参数的偏导数,对所有样本累计求和,可以得到所有训练数据对参数…
在machine learning领域,更多的数据往往强于更优秀的算法,然而现实中的情况是一般人无法获取大量的已标注数据,这时候可以通过无监督方法获取大量的未标注数据,自学习( self-taught learning)与无监督特征学习(unsupervised feature learning)就是这种算法.虽然同等条件下有标注数据蕴含的信息多于无标注数据,但是若能获取大量的无标注数据并且计算机能够加以利用,计算机往往可以取得比较良好的结果. 通过自学习与无监督特征学习,可以得到大量的无标注数…
softmax可以看做只有输入和输出的Neurons Networks,如下图: 其参数数量为k*(n+1) ,但在本实现中没有加入截距项,所以参数为k*n的矩阵. 对损失函数J(θ)的形式有: 算法步骤: 首先,加载数据集{x(1),x(2),x(3)...x(m)}该数据集为一个n*m的矩阵,然后初始化参数 θ ,为一个k*n的矩阵(不考虑截距项):       首先计算,该矩阵为k*m的: 然后计算: 该函数参数可以随意+-任意参数而保持值不变,所以为了防止 参数 过大,先减去一个常量,防…
面对复杂的非线性可分的样本是,使用浅层分类器如Logistic等需要对样本进行复杂的映射,使得样本在映射后的空间是线性可分的,但在原始空间,分类边界可能是复杂的曲线.比如下图的样本只是在2维情形下的示例,假设有100维度,即特征数目是100,若使用logistic来做分类,对于这种线性不可分的情形,要对特征进行各种形式的组合映射,然后用映射后扩充的特征进行分类,可能会增加大量的参数,计算复杂性可想而知,而且可能会造成严重的over-fitting,可见logistic分类的局限性,下面引入NN.…
The unstable gradient problem: The fundamental problem here isn't so much the vanishing gradient problem or the exploding gradient problem. It's that the gradient in early layers is the product of terms from all the later layers. When there are many…
译自:http://sebastianruder.com/multi-task/ 1. 前言 在机器学习中,我们通常关心优化某一特定指标,不管这个指标是一个标准值,还是企业KPI.为了达到这个目标,我们训练单一模型或多个模型集合来完成指定得任务.然后,我们通过精细调参,来改进模型直至性能不再提升.尽管这样做可以针对一个任务得到一个可接受得性能,但是我们可能忽略了一些信息,这些信息有助于在我们关心的指标上做得更好.具体来说,这些信息就是相关任务的监督数据.通过在相关任务间共享表示信息,我们的模型在…
郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! Proceedings of the 20th International Conference on Artificial Intelligence and Statistics (AISTATS) 2017, Fort Lauderdale, Florida, USA. JMLR: W&CP volume 54. Copyright 2017 by the author(s). Abstract 现代移动设备可以访问大量适合模型学…
Understanding, generalisation, and transfer learning in deep neural networks FEBRUARY 27, 2017   This is the first in a series of posts looking at the ‘top 100 awesome deep learning papers.’ Deviating from the normal one-paper-per-day format, I’ll ta…
UNSUPERVISED REPRESENTATION LEARNING WITH DEEP CONVOLUTIONAL GENERATIVE ADVERSARIAL NETWORKS  ICLR 2016  摘要:近年来 CNN 在监督学习领域的巨大成功 和 无监督学习领域的无人问津形成了鲜明的对比,本文旨在链接上这两者之间的缺口.提出了一种 deep convolutional generative adversarial networks (DCGANs),that have certai…
B. McMahan, E. Moore, D. Ramage, S. Hampson, and B. A. y Arcas, "Communication-Efficient Learning of Deep Networks from Decentralized Data," in Proceedings of the 20th International Conference on Artificial Intelligence and Statistics, Apr. 2017…
之前所讲的图像处理都是小 patchs ,比如28*28或者36*36之类,考虑如下情形,对于一副1000*1000的图像,即106,当隐层也有106节点时,那么W(1)的数量将达到1012级别,为了减少参数规模,加快训练速度,CNN应运而生.CNN就像辟邪剑谱一样,正常人练得很挫,一旦自宫后,就变得很厉害.CNN有几个重要的点:局部感知.参数共享.池化.  局部感知 局部感知野.一般认为人对外界的认知是从局部到全局的,而图像的空间联系也是局部的像素联系较为紧密,而距离较远的像素相关性则较弱.因…
Hintion老爷子在06年的science上的论文里阐述了 RBMs 可以堆叠起来并且通过逐层贪婪的方式来训练,这种网络被称作Deep Belife Networks(DBN),DBN是一种可以学习训练数据的高层特征表示的网络,DBN是一种生成模型,可见变量  与  个隐层的联合分布: 这里 x = h0,为RBM在第 k 层的隐层单元条件下的可见单元的条件分布, 是一个DBN顶部可见层与隐层的条件分布,如图下: DBN的训练: 1. 首先充分训练第一个 RBM:  2. 固定第一个 RBM…
一大波matlab代码正在靠近.- -! sparse autoencoder的一个实例练习,这个例子所要实现的内容大概如下:从给定的很多张自然图片中截取出大小为8*8的小patches图片共10000张,现在需要用sparse autoencoder的方法训练出一个隐含层网络所学习到的特征.该网络共有3层,输入层是64个节点,隐含层是25个节点,输出层当然也是64个节点了. main函数,  分五步走,每个函数的实现细节在下边都列出了. %%==========================…