SoftMax回归模型,是logistic回归在多分类问题的推广,即现在logistic回归数据中的标签y不止有0-1两个值,而是可以取k个值,softmax回归对诸如MNIST手写识别库等分类很有用,该问题有0-9 这10个数字,softmax是一种supervised learning方法. 在logistic中,训练集由  个已标记的样本构成: ,其中输入特征(特征向量  的维度为 ,其中  对应截距项 ), logistic 回归是针对二分类问题的,因此类标记 .假设函数(hypothe…
SoftMax回归模型,是logistic回归在多分类问题的推广,即现在logistic回归数据中的标签y不止有0-1两个值,而是可以取k个值,softmax回归对诸如MNIST手写识别库等分类很有用,该问题有0-9 这10个数字,softmax是一种supervised learning方法. 在logistic中,训练集由  个已标记的样本构成: ,其中输入特征(特征向量  的维度为 ,其中  对应截距项 ), logistic 回归是针对二分类问题的,因此类标记 .假设函数(hypothe…
softmax可以看做只有输入和输出的Neurons Networks,如下图: 其参数数量为k*(n+1) ,但在本实现中没有加入截距项,所以参数为k*n的矩阵. 对损失函数J(θ)的形式有: 算法步骤: 首先,加载数据集{x(1),x(2),x(3)...x(m)}该数据集为一个n*m的矩阵,然后初始化参数 θ ,为一个k*n的矩阵(不考虑截距项):       首先计算,该矩阵为k*m的: 然后计算: 该函数参数可以随意+-任意参数而保持值不变,所以为了防止 参数 过大,先减去一个常量,防…
对于加深网络层数带来的问题,(gradient diffuse  局部最优等)可以使用逐层预训练(pre-training)的方法来避免 Stack-Autoencoder是一种逐层贪婪(Greedy layer-wise training)的训练方法,逐层贪婪的主要思路是每次只训练网络中的一层,即首先训练一个只含一个隐藏层的网络,仅当这层网络训练结束之后才开始训练一个有两个隐藏层的网络,以此类推.在每一步中,把已经训练好的前  层固定,然后增加第  层(也就是将已经训练好的前  的输出作为输入…
在machine learning领域,更多的数据往往强于更优秀的算法,然而现实中的情况是一般人无法获取大量的已标注数据,这时候可以通过无监督方法获取大量的未标注数据,自学习( self-taught learning)与无监督特征学习(unsupervised feature learning)就是这种算法.虽然同等条件下有标注数据蕴含的信息多于无标注数据,但是若能获取大量的无标注数据并且计算机能够加以利用,计算机往往可以取得比较良好的结果. 通过自学习与无监督特征学习,可以得到大量的无标注数…
面对复杂的非线性可分的样本是,使用浅层分类器如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…
self-taught learning 在特征提取方面完全是用的无监督的方法,对于有标记的数据,可以结合有监督学习来对上述方法得到的参数进行微调,从而得到一个更加准确的参数a. 在self-taught learning中,首先用 无标记数据训练一个sparse autoencoder,这样用对于原始输入x,经过sparse autoencoder得到隐层特征a: 这样对于分类问题,目标是预测样本的类别标号 .现在的标注数据集 ,包含  个标注样本.此前已经说明,可以利用稀疏自编码器获得的特征…
今天得主题是BP算法.大规模的神经网络可以使用batch gradient descent算法求解,也可以使用 stochastic gradient descent 算法,求解的关键问题在于求得每层中每个参数的偏导数,BP算法正是用来求解网络中参数的偏导数问题的. 先上一张吊炸天的图,可以看到BP的工作原理: 下面来看BP算法,用m个训练样本集合来train一个神经网络,对于该模型,首先需要定义一个代价函数,常见的代价函数有以下几种: 1)0-1损失函数:(0-1 loss function)…