基于逻辑回归和神经网络识别手写数字(从0到9)(Matlab代码实现)
💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
目录
💥1 概述
人工神经网络( Artificial Neural Networks,简写为ANNs)也简称为神经网络( NNs)或称作连接模型( Connection Model),它是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。
简而言之是生物神经元可以接受许多输入,而不仅仅是一个输入,树突收集了这些电信号,将其组合形成更强的电信号。如果信号足够强,超过阈值,神经元就会发射信号,沿着轴突,到达终端,将信号传递给下一个神经元的树突。
输入值的数字范围是从0-255,为了避免输入信号过大,导致过饱和,所以需要对每一个像素做归一化处理,最简单的归一化处理就是给每一个像素都除以255,把像素变成0.01-1之间的数字。所以神经网络模型的输入值是784个0.01-1之间的数字,同时输出值是经过算法模型判别后输出的0-9的10个数字。
📚2 运行结果
部分代码:
function [all_theta] = oneVsAll(X, y, num_labels, lambda)
%X为训练集输入参数,为5000*400矩阵;
%y为训练集标记输出,为5000*1矩阵;
%num_labels为分类数,共10类;
%lambda为正则化参数
[m,n] = size(X); %m为训练集个数(5000),n为训练集特征数(400)
X = [ones(m,1),X]; %加上X0,X为5000*401矩阵;
%t = zeros(n+1);
options = optimset('GradObj','on','MaxIter',100);
for k = 1:num_labels
initialTheta = zeros(n+1,1);
[theta,functionval,exitflag] = ...
fmincg(@(t)(Ircostfunction(t,X,(y==k),lambda)),initialTheta,options)
all_theta(:,k) = theta;
end
function p = predict(Theta1, Theta2, X)
%Theta1为25*401矩阵;
%Theta2为10*26矩阵;
%X为5000*400矩阵;
[m,n] = size(X);
p =zeros(m,1);
X = [ones(m,1),X]; %X为5000*401矩阵;
Z1 = X * Theta1'; %Z1为5000*25矩阵;
A1 = sigmoid(Z1); %A1为5000*25矩阵;
A1 = [ones(m,1),A1]; %A1为5000*26矩阵;
Z2 = A1 * Theta2'; %Z2为5000*10矩阵;
A2 = sigmoid(Z2); %A2为5000*10矩阵;
[c,p] = max(A2,[],2); %c为A2中返回每一行的最大值,p为最大值的索引值,为5000*1矩阵;
end
🎉3 参考文献
[1]时梨,蔡林.基于Python语言构建神经网络识别手写数字的研究[J].电脑编程技巧与维护,2021(2):117-118130
🌈4 Matlab代码实现
相关文章
- 睡岗离岗识别检测系统
- 实战 | 红酒瓶标签曲面展平+文字识别(附源码)
- 随机振动 matlab,Matlab内建psd函数在工程随机振动谱分析中的修正方法「建议收藏」
- matlab axis画圆,使用MATLAB中axis实现图形坐标控制-Go语言中文社区
- Unity 接入百度AI - 车型识别
- lasso回归matlab,机器学习Lasso回归重要论文和Matlab代码「建议收藏」
- matlab怎么对语音信号处理,语音信号处理MATLAB程序
- matlab中如何求插值点,MATLAB插值「建议收藏」
- matlab支持向量回归,支持向量回归 MATLAB代码
- matlab interp1db,matlab – Matlab interp1图出现数据偏移 – 堆栈内存溢出
- 基于51单片机+LD3320语音模块+SYN6288语音合成——语音识别智能分类垃圾桶「建议收藏」
- matlab画图标签,Matlab绘图
- matlab 行 读取文件 跳过_Matlab读取TXT文件并跳过中间几行的问题!!
- zigzag扫描matlab,ZIGZAG扫描的MATLAB实现
- Matlab 直方图_matlab分析
- matlab循环语句for_MATLAB以下选择语句错误的是
- matlab画三维约束图命令,Matlab画三维图的方法[通俗易懂]
- 百度升级蓝天算法加强“站点构造目录发布低质内容”识别能力
- 基线提升至96.45%:2022 司法杯犯罪事实实体识别+数据蒸馏+主动学习
- 人员摔倒识别预警系统
- 【Android 插件化】VAHunt 引入 | VAHunt 原理 | VAHunt 识别插件化引擎
- 【数字信号处理】卷积编程实现 ( Matlab 卷积和多项式乘法 conv 函数 | 使用 matlab 代码求卷积并绘图 )
- Linux识别内存容量的实用方法(linux识别内存大小)
- 利用Oracle OCR设备加快识别效率(oracle ocr设备)
- 装上谷歌 Soli 微型雷达,智能手表可识别出杯子里有没有水
- 思必驰雷雄国:语音识别将是万亿级物联网设备的标配 | 万物互联创新大会