一、简介

随着科学技术的不断更新发展,人们在工作生活中越来越依赖计算机.人们希望把传统手写办公和计算机办公有机结合起来.为解决这一问题,手写数字识别为大家提供了一个新方向.高精确度和高效率办公与学习是人们日常工作生活中孜孜不倦追求的目标.随着网络信息技术的不断发展,深度学习逐渐被大家熟悉及利用,其中卷积神经网络在一系列计算机领域中取得了突破性进展.然而,手写数字识别由于其自身特点和复杂性,无论在技术领域还是在应用领域,仍然存在很大的发展空间.通过Softmax函数进行minist数据分类。

二、部分源代码

function [theta,test_pre,rate] = mysoftmax_gd(X_test,X,label,lambda,alpha,MAX_ITR,varargin)
% 该函数用于实现梯度下降法softmax回归
% 调用方式:[theta,test_pre,rate] = mysoftmax_gd(X_test,X,label,lambda,alpha,MAX_ITR,varargin)
% X_test:测试输入数据
% X:训练输入数据,组织为m*p矩阵,m为案例个数,p为加上常数项之后的属性个数
% label:训练数据标签,组织为m*1向量(数值型)
% lambda:权重衰减参数weight decay parameter
% alpha:梯度下降学习速率
% MAX_ITR:最大迭代次数
% varargin:可选参数,输入初始迭代的theta系数,若不输入,则默认随机选取
% theta:梯度下降法的theta系数寻优结果
% test_pre:测试数据预测标签
% rata:训练数据回判正确率% Genlovy Hoo,2016.06.29. genlovhyy@163.com
%% 梯度下降寻优
Nin=length(varargin);
if Nin>1error('输入太多参数') % 若可选输入参数超过1个,则报错
end
[m,p] = size(X);
numClasses = length(unique(label)); % 求取标签类别数
if Nin==0theta = 0.005*randn(p,numClasses); % 若没有输入可选参数,则随机初始化系数
elsetheta=varargin{1}; % 若有输入可选参数,则将其设定为初始theta系数
end
cost=zeros(MAX_ITR,1); % 用于追踪代价函数的值
for k=1:MAX_ITR[cost(k),grad] = softmax_cost_grad(X,label,lambda,theta); % 计算代价函数值和梯度theta=theta-alpha*grad; % 更新系数
end
%% 回判预测
[~,~,Probit] = softmax_cost_grad(X,label,lambda,theta);
[~,label_pre] = max(Probit,[],2);
index = find(label==label_pre); % 找出预测正确的样本的位置
rate = length(index)/m; % 计算预测精度
%% 绘制代价函数图
figure('Name','代价函数值变化图');
plot(0:MAX_ITR-1,cost)
xlabel('迭代次数'); ylabel('代价函数值')
title('代价函数值变化图');% 绘制代价函数值变化图
%% 测试数据预测
[mt,pt] = size(X_test);
Probit_t = zeros(mt,length(unique(label)));
for smpt = 1:mtProbit_t(smpt,:) = exp(X_test(smpt,:)*theta)/sum(exp(X_test(smpt,:)*theta));
end
[~,test_pre] = max(Probit_t,[],2);

三、运行结果

四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 由伟,刘亚秀.MATLAB数据分析教程[M].清华大学出版社,2020.
[2]王岩,隋思涟.试验设计与MATLAB数据分析[M].清华大学出版社,2012.

【softmax分类】基于matlab梯度下降softmax回归minist数据分类【含Matlab源码 1645期】相关推荐

  1. 【Matlab语音处理】声音信号频谱分析仪【含GUI源码 325期】

    一.代码运行视频(哔哩哔哩) [Matlab语音处理]声音信号频谱分析仪[含GUI源码 325期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊, ...

  2. 【Matlab图像检索】综合特征图像检索【含GUI源码 395期】

    一.代码运行视频(哔哩哔哩) [Matlab图像检索]综合特征图像检索[含GUI源码 395期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...

  3. 【Matlab肌电信号】肌电信号处理【含GUI源码 966期】

    一.代码运行视频(哔哩哔哩) [Matlab肌电信号]肌电信号处理[含GUI源码 966期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余继周,杨 ...

  4. 【Matlab条形码识别】二维条形码识别【含GUI源码 607期】

    一.代码运行视频(哔哩哔哩) [Matlab条形码识别]二维条形码识别[含GUI源码 607期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...

  5. 【Matlab树叶分类】BP神经网络植物叶片分类【含GUI源码 916期】

    一.代码运行视频(哔哩哔哩) [Matlab树叶分类]BP神经网络植物叶片分类[含GUI源码 916期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅 ...

  6. 【Matlab生物电信号】生物电信号仿真【含GUI源码 684期】

    一.代码运行视频(哔哩哔哩) [Matlab生物电信号]生物电信号仿真[含GUI源码 684期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]董兵,超于毅,李 ...

  7. 【Matlab语音分析】语音信号分析【含GUI源码 1718期】

    一.代码运行视频(哔哩哔哩) [Matlab语音分析]语音信号分析[含GUI源码 1718期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊,郑铁 ...

  8. 【Matlab验证码识别】遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别【含GUI源码 1694期】

    一.代码运行视频(哔哩哔哩) [Matlab验证码识别]遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别[含GUI源码 1694期] 二.matlab版本及参考文献 1 matlab ...

  9. 【Matlab人脸识别】BP神经网络人脸识别(含识别率)【含GUI源码 891期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]BP神经网络人脸识别(含识别率)[含GUI源码 891期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] ...

  10. 【Matlab人脸识别】形态学教室人数统计(带面板)【含GUI源码 1703期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]形态学教室人数统计(带面板)[含GUI源码 1703期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]孟 ...

最新文章

  1. 使用Python和OpenCV对轮廓进行排序(从左到右,自上而下)
  2. 面向Agent的系统架构
  3. easyui 消息框按钮文字修改
  4. 使用sklearn来处理类别数据
  5. 支持向量机(Support Vector Machines,SVM)
  6. c# MEF框架(四 见证奇迹的时刻之实战应用)
  7. 联想微型计算机电脑黑屏怎么做系统,联想电脑黑屏怎么办,5种方法轻松排除黑屏故障...
  8. andriod 自写的view 获得屏幕大小和 获得自写view大小的不同写法
  9. 95-34-030-Context-DefaultChannelHandlerContext
  10. Python稳基修炼之计算机等级考试易错概念题6(含答案)
  11. web.config从.net framework3.5向4.0迁移注意事项
  12. mysql大数据高并发处理
  13. 考研复试C程序设计基础
  14. 渗透自学(三)SQL注入(一)
  15. LESS CSS 框架简介
  16. 论文笔记之:Co-saliency Detection via A Self-paced Multiple-instance Learning Framework
  17. Git 拉取远程仓库失败
  18. html翻牌动画效果,js+css3翻牌动画效果
  19. PyQt5+fitz实现图片与PDF互相转换
  20. 青龙2.9.3(多容器)+xdd-plus每个容器固定相同车头 4月24日更新

热门文章

  1. Googletest Primer
  2. Python学习---Python数据类型1206
  3. 关于实现servlet中心控制的Front Controller Pattern
  4. 1038. Recover the Smallest Number
  5. ORB_SLAM2之Pangolin的安装与问题处理
  6. 20200712每日一句
  7. 20200518每日一句
  8. halcon-高速下载
  9. 坚持就是成功,没有成功就是你失败的次数太少
  10. Atitit 跨语言跨平台ui界面 与界面分类 目录 1. 按照业务分类 1 1.1. 媒体类新闻类展示界面 1 1.2. 表单提交类 2 1.3. 查询类列表类(纯文列表,图文列表等 2 1.4.