UFLDL教程笔记及练习答案三(Softmax回归与自我学习***)

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与gradientinputSize, 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);   %%% 对结果进行预測

posted on 2017-07-21 12:44 mthoutai 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/mthoutai/p/7217099.html

UFLDL教程笔记及练习答案三(Softmax回归与自我学习***)相关推荐

  1. pytorch学习笔记(九):softmax回归的简洁实现

    文章目录 1. 获取和读取数据 2. 定义和初始化模型 3. softmax和交叉熵损失函数 4. 定义优化算法 5. 训练模型 6. 总代码 7.小结 使用Pytorch实现一个softmax回归模 ...

  2. pytorch学习笔记(八):softmax回归的从零开始实现

    文章目录 1. 获取和读取数据 2. 初始化模型参数 3. 实现softmax运算 4. 定义模型 5. 定义损失函数 6. 计算分类准确率 7. 训练模型 8. 预测 9. 总代码 小结 这一节我们 ...

  3. pytorch学习笔记(六):softmax回归

    文章目录 前言 1. 分类问题 2. softmax回归模型 3. 单样本分类的矢量计算表达式 4. 小批量样本分类的矢量计算表达式 5. 交叉熵损失函数 6. 模型预测及评价 小结 前言 模型输出可 ...

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

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

  5. UFLDL教程:Exercise:Softmax Regression

    Softmax分类函数的Python实现 Deep Learning and Unsupervised Feature Learning Tutorial Solutions 逻辑回归假设函数 在线性 ...

  6. Stanford UFLDL教程 Softmax回归

    Softmax回归 Contents [hide] 1简介 2代价函数 3Softmax回归模型参数化的特点 4权重衰减 5Softmax回归与Logistic 回归的关系 6Softmax 回归 v ...

  7. 林崇德《发展心理学》第三版笔记和课后答案

    完整版在线阅读>>> 林崇德<发展心理学>第三版笔记和课后答案 内容节选 第1章 绪 论 1.1 复习笔记 一.发展心理学的界说 (一)心理学与发展心理学 发展心理学是心 ...

  8. Java入门教程笔记(三)

    Java入门教程笔记(一) Java入门教程笔记(二) 对前两份笔记的补充: static关键词: 被static关键词修饰的变量或者方法可以不依赖于某个特定的对象存在 被static关键词修饰的方法 ...

  9. Deep Learning 10_深度学习UFLDL教程:Convolution and Pooling_exercise(斯坦福大学深度学习教程)...

    前言 理论知识:UFLDL教程和http://www.cnblogs.com/tornadomeet/archive/2013/04/09/3009830.html 实验环境:win7, matlab ...

最新文章

  1. NOIP模拟 数球(思维题)
  2. Basic local alignment search tool (BLAST)
  3. Git 同一个Git HostName 配置多个sshkey
  4. mysql导出二进制日志_使用mysqlbinlog提取二进制日志
  5. CentOS6.5升级内核到3.10.28
  6. 单片机的内存分配(变量的存储位置)详解
  7. 问题六十三:怎么用ray tracing画sphere sweeping图形
  8. 被后台杀死后,Android应用如何重新走闪屏逻辑
  9. Linux ubuntu centos 文件目录是什么意思
  10. php 查看session 时间,php中session过期时间设置及session回收机制介绍
  11. 求一个数的最大真约数
  12. 新浪微博架构和FEED架构分析--人人架构
  13. 每日一题:299. 猜数字游戏
  14. 新技术加速隐私暴露,我们该怎么办?(二)
  15. Redis及可视化工具安装
  16. 计算机漏洞英语怎么说,游戏漏洞英文怎么写
  17. 六年级计算机学情分析报告,六年级学生学情分析报告.doc
  18. Could not resolve com.youzanyun.open.mobile:x5sdk:6.4.25.
  19. 太稳了!2020年益丰大药房又开1239家,营收高达131亿!
  20. 推荐编程使用紫光输入法

热门文章

  1. ADO Entities Framework不对多表查询进行优化?
  2. Model-Based RL前沿追踪——以无法为有法,以无形为有形
  3. OpenGait:首个步态识别框架开源了!
  4. 百度大脑公开课:快速定制、部署高精度深度学习模型!
  5. LFFD:轻量级人脸检测器,不止是快
  6. 面向生产环境!深度学习模型部署资源全辑
  7. 收藏 | 一文看完吴恩达最新演讲精髓,人工智能部署的三大挑战及解决方案
  8. 论文必备神器,1行代码搞定Latex公式编写,这个4.6M的Python小插件
  9. 【LeetCode刷题记录】LeetCode经典题目数组求和及哈希表的使用!
  10. 9张图带你领略AI态势!