机器学习 day16(前向传播算法,Tensorflow的实现代码)

news2025/1/31 17:43:54

1. 手写数字识别的神经网络模型
在这里插入图片描述

  • 为简单起见,仅区分手写0和1,并用8*8的像素矩阵,共有64个像素(特征),展开写成向量x,即该神经网络模型的输入特征向量x的维数为64,设该模型有两层隐藏层,第一个隐藏层有25个神经元,第二个隐藏层有15个神经元,则第一个隐藏层的输出,激活值向量a上标1的结果如图所示
  • 输入特征向量X也可写作向量a上标0,因为输入层为layer 0
    在这里插入图片描述
  • 向量a上标2的结果与向量a上标1类似,把向量X改成向量a上标1,且注意神经元的个数为15个即可
    在这里插入图片描述
  • 因为输出层只有一个神经元,所以输出层的结果是标量激活值a而不是向量激活值a
  • 可以设阈值为0.5,从而区分出预测y的值为0或1
  • 激活值a上标3也可写作f(x),因为当我们写线性回归和逻辑回归时,f(x)函数的值表示线性回归或逻辑回归的输出,所以我们也可以用f(x)来表示神经网络模型计算的函数为关于x的函数,且函数的值为神经网络模型输出的值
  • 因为整个神经网络模型的计算是从左到右进行的,即传播神经元的激活,所以我们称这种算法叫前向传播
  • 在选择神经网络架构时,可以选择如下的典型模型,即如果神经网络模型有多层隐藏层,且每层隐藏里都有多个神经元,那么越靠近输出层的隐藏层,它所包含的神经元(隐藏单元)就会越少

2. Tensorflow的实现代码
在这里插入图片描述

  • 该模型为炒咖啡豆,输入特征为温度和时间
  • 设向量x为一个二维数组,第一个元素为200摄氏度,17分钟的一维数组(样本可能有很多,一个样本为一个一维数组)
  • 创建第一层隐藏层 layer 1 ,它具有3个隐藏单元,且该层的激活函数为sigmoid函数,dense表示全连接层,以后再说。 layer 2类似,仅改变隐藏单元的个数为1
  • 将输入特征向量X带入layer_1()函数中,得出激活向量a1的值,维数为3,因为有三个隐藏单元。a2类似,但带入的是向量a1的值,且因为只有一个隐藏单元,所以a2是标量
  • 最后,设阈值为0.5,并判断a2与阈值的关系,若大于等于则预测y为1,若小于则预测y为0
    在这里插入图片描述
  • 该模型为识别手写数字,输入特征为图片的像素矩阵展开后的向量
  • 设x为一个二维数组,第一个元素为第一张图片的像素向量值
  • layer 1有25个隐藏单元,且它的激活函数为sigmoid函数,将向量x带入layer_1()函数中,得出向量a1的值。layer 2,layer 3类似
  • 最后,设阈值为0.5,判断a3与阈值的关系,若大于等于则预测y为1,若小于则预测y为0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/631609.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一文打通:从字节码指令的角度解读前置后置自增自减(加加++减减--)

文章目录 1.前置了解的知识1.1 栈这种数据结构1.2 局部变量表和操作数栈1.3 三个字节码指令 2.单独使用后置与前置2.1 后置字节码指令2.2 前置字节码指令2.3 总结 3.需要返回值的情况下使用后置与前置3.1 后置字节码指令3.2 前置字节码指令3.3 总结3.4 练习🍀 练习一…

npm i安装依赖包报错proxy‘ config is set properly. See: ‘npm help config‘

npm i 报错proxy‘ config is set properly. See: ‘npm help config‘ 网上搜了解决方法: https://blog.csdn.net/zz00008888/article/details/127852233 但是执行完还是报错,查代理已经是false了 看到是cnpm镜像,于是用cnpm i 就运行成功…

设计模式篇---原型模式

文章目录 概念Java中的克隆方法实例使用场景 概念 定义:使用原型实例指定待创建对象的类型,并通过复制这个原型来创建新的对象。 原型模式主要有以下几部分组成: Prototype(抽象原型类):具体原型类的接口或者抽象类。 ConcretePrototype(具体…

Mybatis 全系列目录引导(持续更新)

基础篇 001Mybatis常用的网站及工具_存在,及合理的博客-CSDN博客GITHUB。https://blog.csdn.net/qq_26594041/article/details/131098123002Mybatis初始化引入_存在,及合理的博客-CSDN博客自动检测工程中的DataSource创建并注册SqlSessionFactory实例创建并注册SqlSessionTemp…

OpenGL光照之颜色

文章目录 创建一个光照场景 现实世界中有无数种颜色,每一个物体都有它们自己的颜色。我们需要使用(有限的)数值来模拟真实世界中(无限)的颜色,所以并不是所有现实世界中的颜色都可以用数值来表示的。然而我…

物联网Lora模块从入门到精通(四)对某些端口的初始化

一、前言 由于程序设计开发具有的不确定性,我们常常需要初始化某些特定的引脚,并读取引脚电平状态或向引脚输出高低电平。 二、代码实现 快速找到端口的初始化语句: 首先,找到board.c文件,在下图的位置,我…

【算法系列专栏介绍】

序言 你只管努力,其他交给时间,时间会证明一切。 文章标记颜色说明: 黄色:重要标题红色:用来标记结论绿色:用来标记一级论点蓝色:用来标记二级论点 决定开一个算法专栏,希望能帮助大…

什么是域控服务器?域控服务器功能?部署域控需要考虑因素?域控组策略功能?

一、什么是域控制服务器? 域控制器(Domain Controller)是在Windows Server操作系统上运行的一个服务角色,它用于管理和控制一个或多个计算机的安全策略、用户身份验证和授权等任务。域控制器通常是用于企业网络中的主要身份验证和…

性能测试从0到1实战,超详细性能测试计划编写汇总...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、测试背景 首先…

yt-dlp 使用教程

参考:yt-dlp 使用教程 下载yt-dlp.exe,地址:Releases yt-dlp/yt-dlp GitHub windows下载.exe版本,放到指定路径下,我的是C:\Users\bellychang\Downloads 查看视频所有分辨率 yt-dlp.exe --proxy socks5://127.0.0.…

github action 基于个人项目实践

前言: DevOps 和 Jenkins 作为一名开发,虽然也没有经常听到 Devops (研发和运维一体化)这个概念,但日常工作中已经无处不在地用着 DevOps 工具。自研也好,基于开源项目改造也好,互联网公司基本都会有自已的…

强化学习Q-learning实践

1. 引言 前篇文章介绍了强化学习系统红的基本概念和重要组成部分,并解释了Q-learning算法相关的理论知识。本文的目标是在Python3中实现该算法,并将其应用于实际的实验中。 闲话少说,我们直接开始吧! 2. Taxi-v3 Env 为了使本文…

一文讲完Java常用设计模式(23种)

介绍 设计模式的起源可以追溯到20世纪80年代,当时面向对象编程开始流行。在这个时期,一些软件开发者开始注意到他们在不同的项目中遇到了相同的问题,并且他们开始寻找可重用的解决方案。这些解决方案被称为设计模式。最早提出设计模式的人是…

centos7的docker安装与简单介绍

docker的基本组成(三要素) 镜像容器仓库 理解:镜像可以理解成一个类,容器就是用这个类new出来的对象,仓库就是放镜像文件的。docker本身是容器运行载体或管理引擎 安装 安装gcc yum -y install gcc安装需要的软件…

Vcpkg介绍及使用

Vcpkg用于在Windows、Linux、Mac上管理C和C库,极大简化了第三方库的安装,它由微软开源,源码地址:https://github.com/Microsoft/vcpkg,最新发布版本为2023.04.15 Release,它的license为MIT。 在windows上安…

[解决方案]springboot怎么接受encode后的参数(参数通过=拼接)

springboot怎么接受encode后的参数(拼接& springboot怎么接受encode后的参数(拼接&)问题出现原因发送encode后的值在postman里面的情况这个时候该如何接受呢(encode后的值接受)controller层的代码用到的工具类CRequest springboot怎么接受encode…

软考A计划-系统架构师-官方考试指定教程-(14/15)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&am…

数组删除元素使用remove最优的方法

Array.prototype.remove function(from, to) { var rest this.slice((to || from) 1 || this.length); this.length from < 0 ? this.length from : from; return this.push.apply(this, rest); };

Anaconda安装及入门教程(Windows、Ubuntu)

文章目录 安装Anaconda3UbuntuWindows 使用换源设置不自动启用conda环境显示环境创建环境激活环境查找某个包的版本安装某个版本的包 虚拟环境中安装包删除虚拟环境删除特定的包复制环境设置代理UbuntuWindows 使用 conda-pack 离线导入、导出环境安装conda-pack导出导入 安装A…

简单使用nacos、openFeign和Sentinel(建议看源码和截图一起看)

1、Nacos 1、下载nacos&#xff0c;可以从结尾获取压缩包和源码 2、下方图例是两个服务程序注册成功到注册中心&#xff0c;并且配置从配置中心拉取&#xff0c;成功访问数据库 3、nacos中配置项里的内容 spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driv…