码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 基于逻辑回归和神经网络识别手写数字(从0到9)(Matlab代码实现)


    💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥

    🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

    ​

    ⛳️座右铭:行百里者,半于九十。

    目录

    💥1 概述

    📚2 运行结果

    🎉3 参考文献

    🌈4 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代码实现

  • 相关阅读:
    计算机三级四级嵌入式备战经验
    Leetcode 11. 盛最多水的容器
    07_SpingBoot 实现 RESTful 风格
    DM8:达梦数据库多个库之间的表结构对比
    【趣味随笔】移动机器人基础(导航方式、自主导航、硬件系统结构分布)
    代码+视频,R语言对数据进行多重插补后回归分析
    【数据结构】动态数组(vector)的基本操作,包括插入、删除、扩容、输出、释放内存等。以下是代码的解释和注释:
    超写实虚拟人制作教程
    使用Spring Security和Thymeleaf进行CSRF保护
    SanctuaryAI推出Phoenix: 专为工作而设计的人形通用机器人
  • 原文地址:https://blog.csdn.net/weixin_46039719/article/details/127660759
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号