1:softmax回归

当p(y|x,theta)满足多项式分布,通过GLM对其进行建模就能得到htheta(x)关于theta的函数,将其称为softmax回归。

教程中已经给了cost及gradient的求法。须要注意的是一般用最优化方法求解參数theta的时候,採用的是贝叶斯学派的思想,须要加上參数theta。

 
softmax回归 习题的任务就是用原有的像素数据集构建一个softmax回归模型进行分类。准确率略低 92.6%,。
而自我学习是用5~9之间的数据集当做无标签的数据集,然后构建一个稀疏自编码器,然后将0~4中一部分有标签的数据集通过稀疏自编码器提取特征,然后用此特征构建一个softmax回归模型,然后针对一部分有标签的数据集进行预測。 

习题答案:

(1) 数据载入——————代码已给

(2) %% STEP 2: Implement softmaxCost  得到计算cost和gradient

M = theta*data;  % M的每一列就是一个样本所相应的thta*data(:, i)的值
M = bsxfun(@minus, M, max(M, [],1)); %减去每列的最大值以防止溢出
M = exp(M); %
p = bsxfun(@rdivide, M, sum(M)); %得到概率矩阵 cost = -1/numCases .* sum(groundTruth(:)'*log(p(:))) + lambda/2 *sum(theta(:).^2); % cost function
thetagrad = -1/numCases .* (groundTruth - p) * data' + lambda * theta; % grad

(3)gradient check ———代码已给

(4) Learning parameters ----代码已给出训练得到最佳的參数theta  通常採用L-BFGS进行迭代得到最佳參数。L-BFGS眼下被觉得是最有效的无约束优化问题。

(5)測试

[nop, pred] = max(theta * data); % nop存放的是每列的最大值。pred存放的是该最大值所在的行号

2:自我学习和无监督特征学习

过程是这样子的:原始数据一部分是有标签。一部分是没有标签的,我们使用无标签的数据去训练得到一个稀疏自编码器(AutoEncoder),然后我们将一部分有标签的数据输入该编码器,并将第二层hidden layer的激励值作为新的特征来取代(合并)原有的特征,用新的特征及其标签训练一个softmax回归模型。然后将剩余的有标签数据作为測试集(注意这里的測试输入softmax中的数据是稀疏编码器第二层的激励值)。

注意:这里没有对数据进行白化的预处理,有时间会做下。比对下效果。

习题答案——最后的准确率是98.189306%

(1) %  Find opttheta by running thesparse autoencoder on

% unlabeled Training Images

options.Method = 'lbfgs'; % Here, we use L-BFGS to optimize our cost
% function. Generally, for minFunc to work, you
% need a function pointer with two outputs: the
% function value and the gradient. In our problem,
% sparseAutoencoderCost.m satisfies this.
options.maxIter = 400; % Maximum number of iterations of L-BFGS to run
options.display = 'on'; [opttheta, cost] = minFunc( @(p) sparseAutoencoderCost(p, ... %通过L-BFGS得到最佳的cost与gradient
inputSize, hiddenSize, ...
lambda, sparsityParam, ...
beta, unlabeledData), ...
theta, options);

(2) Extract Features from the Supervised Dataset

b1 = repmat(b1, 1, size(data, 2));
Z1 = W1*data + b1;
activation = sigmoid(Z1);

(3) %% STEP 4: Train the softmax classifier

lambda = 1e-4;                                                   %% lambda设置的过大 效果没有达到98%
numClasses = numLabels;
softmaxModel = softmaxTrain(hiddenSize, numClasses, lambda, ... %% 注意这里不再是trainData,而是在稀疏自编码算法中提取的第二层结点的激励值作为新的特征值
trainFeatures, trainLabels, options);

(4)測试

[pred] = softmaxPredict(softmaxModel, testFeatures);   %%% 对结果进行预測

UFLDL教程笔记及练习答案三(Softmax回归与自我学习***)的更多相关文章

  1. UFLDL教程笔记及练习答案二(预处理:主成分分析和白化)

    首先将本节主要内容记录下来.然后给出课后习题的答案. 笔记: :首先我想推导用SVD求解PCA的合理性. PCA原理:如果样本数据X∈Rm×n.当中m是样本数量,n是样本的维数.PCA降维的目的就是为 ...

  2. UFLDL教程笔记及练习答案五(自编码线性解码器与处理大型图像**卷积与池化)

    自己主动编码线性解码器 自己主动编码线性解码器主要是考虑到稀疏自己主动编码器最后一层输出假设用sigmoid函数.因为稀疏自己主动编码器学习是的输出等于输入.simoid函数的值域在[0,1]之间,这 ...

  3. UFLDL深度学习笔记 (二)SoftMax 回归(矩阵化推导)

    UFLDL深度学习笔记 (二)Softmax 回归 本文为学习"UFLDL Softmax回归"的笔记与代码实现,文中略过了对代价函数求偏导的过程,本篇笔记主要补充求偏导步骤的详细 ...

  4. Deep Learning 13_深度学习UFLDL教程:Independent Component Analysis_Exercise(斯坦福大学深度学习教程)

    前言 理论知识:UFLDL教程.Deep learning:三十三(ICA模型).Deep learning:三十九(ICA模型练习) 实验环境:win7, matlab2015b,16G内存,2T机 ...

  5. Deep Learning 6_深度学习UFLDL教程:Softmax Regression_Exercise(斯坦福大学深度学习教程)

    前言 练习内容:Exercise:Softmax Regression.完成MNIST手写数字数据库中手写数字的识别,即:用6万个已标注数据(即:6万张28*28的图像块(patches)),作训练数 ...

  6. ufldl学习笔记和编程作业:Softmax Regression(softmax回报)

    ufldl学习笔记与编程作业:Softmax Regression(softmax回归) ufldl出了新教程.感觉比之前的好,从基础讲起.系统清晰,又有编程实践. 在deep learning高质量 ...

  7. ufldl学习笔记与编程作业:Softmax Regression(vectorization加速)

    ufldl学习笔记与编程作业:Softmax Regression(vectorization加速) ufldl出了新教程,感觉比之前的好.从基础讲起.系统清晰,又有编程实践. 在deep learn ...

  8. UFLDL深度学习笔记 (三)无监督特征学习

    UFLDL深度学习笔记 (三)无监督特征学习 1. 主题思路 "UFLDL 无监督特征学习"本节全称为自我学习与无监督特征学习,和前一节softmax回归很类似,所以本篇笔记会比较 ...

  9. UFLDL教程(四)之Softmax回归

    关于Andrew Ng的machine learning课程中,有一章专门讲解逻辑回归(Logistic回归),具体课程笔记见另一篇文章. 下面,对Logistic回归做一个简单的小结: 给定一个待分 ...

随机推荐

  1. 【MySQL】浅谈 varchar(N)

    一  前言  varchar(N) N代表什么意思,能存放多少个中文字符?属于老生常谈的问题了,今天又被一个开发同事问我关于这个问题,索性写一篇文章来具体介绍一下.二 理论知识 先说明一下 MySQL ...

  2. 安卓启动图去除顶部title和状态栏

    1.在启动页的xml配置中,设置layout的id, <?xml version="1.0" encoding="utf-8"?> <Line ...

  3. 咕咕咕,skkyk的博客生活从此开始了

    2019-5-9 咕咕咕,skkyk的博客生活从此开始了 我是划水时长两个半小时的个人OIer skkyk,我喜欢打表,暴零,骗分,瞎搞(律师函警告); 2019-6-14 中考结束的第二天 我们苦逼 ...

  4. VisionPro显示隐藏搜索区域

    假如我们需要显示两张图,一张显示CogPMAlignTool工具不带搜索区域的,一张显示CogPMAlignTool工具带搜索区域的图像 VisionPro显示隐藏搜索区域 VisionPro显示隐藏 ...

  5. Configure Red Hat Enterprise Linux shared disk cluster for SQL Server

    下面一步一步介绍一下如何在Red Hat Enterprise Linux系统上为SQL Server配置共享磁盘集群(Shared Disk Cluster)及其相关使用(仅供测试学习之用,基础篇) ...

  6. Leetcode 377.组合总和IV

    组合总和IV 给定一个由正整数组成且不存在重复数字的数组,找出和为给定目标正整数的组合的个数. 示例: nums = [1, 2, 3] target = 4 所有可能的组合为: (1, 1, 1, ...

  7. Result实现类

    package org.apache.struts2.dispatcher; import com.opensymphony.xwork2.ActionInvocation; import com.o ...

  8. 【JavaScript 14—学习总结】:从小事做起

    导读:花了将近两个月,JavaScript的学习视频算是做完了.里面的例子,都敲过一遍,但有少数的几个就是实现不了,比如:百度分享侧栏随着滚动条移动:菜单切换只对第一个起作用等,也就先放着了.现在,就 ...

  9. nginx报错 too many open files in system

    系统进不去了,用ssh连接服务器也非常慢,负载均衡显示后端连接异常,重启mysql数据库,发现经常重启,或者直接关机,访问页面也访问不到. http://www.51testing.com/html/ ...

  10. 【bzoj4408】[Fjoi 2016]神秘数 主席树

    题目描述 一个可重复数字集合S的神秘数定义为最小的不能被S的子集的和表示的正整数.例如S={1,1,1,4,13},1 = 12 = 1+13 = 1+1+14 = 45 = 4+16 = 4+1+1 ...