吴恩达机器学习作业五:神经网络正向传播

数据集在作业一

正向传播

正向传播(Forward Propagation)是神经网络计算过程中的核心步骤,指的是将输入数据通过神经网络的各层依次传递,最终得到输出结果的过程。

核心原理

在神经网络中,信息从输入层流入,经过一个或多个隐藏层的处理,最终从输出层流出。每一层的计算都依赖于上一层的输出,具体包括两个步骤:

  1. 加权求和:将上一层神经元的输出与当前层的权重进行加权求和,并加上偏置项(bias)。

  2. 激活函数处理:将加权求和的结果通过激活函数(如 sigmoid、ReLU 等)进行非线性变换,得到当前层神经元的输出。

我们下面要用正向传播的一个全连接神经网络来实现手写数字识别

前面我们提到了如果是处理非线性关系时,我们可以用高次特征项来进行拟合,但是神经网络(这里是全连接层),我们要使用激活函数,从而达到非线性变换的效果。可以数学推导一下,如果只是多个加权求和叠加,那么从输入到输出也还只是加权求和,无法做到非线性的,所以我们采用了非线性函数(激活函数)

代码

读取数据集

import numpy as np
import matplotlib.pyplot as plt
import scipy.io as sio
"""使用前馈神经网络来实现手写数字识别"""# 读取数据集
data = sio.loadmat("ex3data1.mat")
X = data['X']
y = data['y']
# 权重
theta=sio.loadmat("ex3weights.mat")
# print(theta.keys())
theta1=theta['Theta1']
theta2=theta['Theta2']
# print(theta1.shape,theta2.shape)(25, 401) (10, 26)
y=y.flatten()

激活函数

def sigmoid(z):return 1/(1+np.exp(-z))

前向传播

def forward_propagate(X,theta1,theta2):m=X.shape[0]a1=np.insert(X,0,1,axis=1)z2=np.dot(a1,theta1.T)a2=sigmoid(z2)a2=np.insert(a2,0,1,axis=1)z3=np.dot(a2,theta2.T)a3=sigmoid(z3)return a3# a3=forward_propagate(X,theta1,theta2)
# print(a3.shape)

这里a1是输入层,z2和a2是隐藏层,在隐藏层和输出层中要先进行加权求和在进行激活函数,z3和a3是输出层(这里是对应数字的各自概率)。


预测

# 预测
def predict(X,theta1,theta2):a3=forward_propagate(X,theta1,theta2)return np.argmax(a3,axis=1)+1y_pred=predict(X,theta1,theta2)accuracy=np.mean(y_pred==y)
print(accuracy)##0.9752

总结

读取数据集——激活函数——构建模型(全连接神经网络)——运行并预测。

这里大家如果没有对应的基础,不知道这些参数是怎么得来的,在下一个作业反向传播中会进行讲解,其实和线性回归,逻辑回归中的参数训练类似。

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

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

相关文章

网络编程(4)

【0】复习 sockfdsocket(); //指定网络信息 bind(); listen(); //创建表 fd_set rfds,tempfds; FD_ZERO(); FD_SET(sockfd); max sockfd while(1) {tempfdsrfds;select(max1,&tempfds)if(FD_ISSET(scokfd,&tempfds)){acceptfdaccept();FD_SET(acceptfd,&rfds);if(m…

Windows系统提示“找不到文件‘javaw‘”

1. Java 未安装或安装不完整javaw.exe 是 Java 运行环境(JRE)的核心文件,用于运行 Java 程序(如.jar 文件)。如果你的电脑没有安装 Java,或安装过程中 javaw.exe 被误删,系统就会找不到它。2. J…

【PCIE系列】1---PCIE系统拓扑结构分析

架构由点对点链路(Links)组成,用于互连组成系统的一系列组件。下图展示了一个示例拓扑结构。该图描述了一个有层次的体系架构实例,其包含根复合体(Root Complex, RC)、多个端点(I/O设备&#xf…

SpringBoot防止重复提交(2)

例如:多次点击提现按钮问题描述:在提现操作中,用户可能会多次点击提现按钮,导致多个相同的请求发送到服务器,从而引发重复提现的问题。为了解决这一问题,必须保证每个提现请求只能执行一次,防止…

mysql zip包安装步骤

下载地址 windows MSI Install 安装包程序。 这里下载zip包,执行安装过程 确认my.ini 配置的路径,创建mysql数据服务的data目录管理员身份cmd 进入bin目录,开始初始化服务 mysqld --initialize-insecure --usermysql mysqld -install#启动…

Python 的 argparse 模块中,add_argument 方法的 nargs 参数

在 Python 的 argparse 模块中,add_argument 方法的 nargs 参数用于指定命令行参数可以接受的参数数量。你提到的 nargs* 和 nargs 是两种常见设置,它们分别表示不同的参数数量要求。以下是两者的详细区别和含义:1. nargs*: 接受零个或多个参…

嵌入式Linux LED驱动开发

嵌入式Linux LED驱动开发 一、LED驱动概述 本笔记基于IMX6ULL处理器的LED驱动开发,详细介绍了字符设备驱动开发的基本流程。该驱动实现了对LED的基本控制功能,通过字符设备接口供用户空间程序调用。 二、LED驱动核心概念 1. 寄存器地址定义 本驱动涉…

Excel Word Pdf 格式转换

引入aspose包手动更新本地mvn仓库mvn install:install-file -DfileC:\aspose-cells-22.9.jar -DgroupIdaspose -DartifactIdaspose-cells -Dversion22.9 -Dpackagingjar mvn install:install-file -DfileC:\aspose-pdf-22.9.jar -DgroupIdaspose -DartifactIdaspose-pdf -Dvers…

变频器实习DAY40 调整测试零伺服PI LDO

目录变频器实习DAY40一、工作内容1.1 调整测试零伺服PI二、学习内容2.1 LDOLDO的核心工作原理——“采样-比较-调整”闭环控制LDO的关键参数——选型核心依据LDO与其他稳压器的选型对比附学习参考网址欢迎大家有问题评论交流 (* ^ ω ^)变频器实习DAY40 一、工作内容 1.1 调整…

【半导体制造流程概述】

半导体制造流程概述 半导体制造是一个高度复杂且精密的过程,涉及多个关键步骤,通常分为以下几个主要阶段:设计、晶圆制备、光刻、刻蚀、掺杂、薄膜沉积、互连和封装测试。 文章目录半导体制造流程概述晶圆制备光刻刻蚀掺杂薄膜沉积互连封装测…

为什么大模型需要文档预处理:从数据到智能的关键一步

在人工智能,尤其是大语言模型(LLM, Large Language Models)的应用落地过程中,数据质量与处理流程的重要性正逐渐被各行各业所认识。无论是企业内部构建知识库、自动化文档审核,还是面向用户提供智能问答服务&#xff0…

50.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--新增功能--二期功能规划

啰嗦了这么多文章,我们终于进入到了二期功能的开发。这篇文章我们先来规划一下二期要做的功能,在一期功能中,我们完成了基础的记账功能,但是作为一个记账软件,仅有这些功能是远远不够的。我们需要更多的功能来满足用户…

Oracle下载安装(学习版)

1. 下载(学习版) 网址:软件下载 | Oracle 中国 2. 安装 解压缩 双击可执行文件 下一步 选同意,下一步 下一步 设置密码(自己记住) 开始安装 测试安装是否成功

`basic_filebuf`、`basic_ifstream`、`basic_ofstream`和 `basic_fstream`。

C 文件 I/O 模板类深度解析 文章目录C 文件 I/O 模板类深度解析1. basic_filebuf 深度解析1.1 类模板定义详解1.2 关键成员变量1.3 核心成员函数实现原理1.3.1 open() 函数实现1.3.2 overflow() 函数实现1.4 完整示例:自定义缓冲策略2. basic_ifstream 深度解析2.1 …

计算机毕设 java 阿歹果园养鸡场管理系统 基于 SSM 框架的果园养鸡场全流程管理系统设计与实现 Java+MySQL 的养殖生产与进销存一体化平台开发

计算机毕设 java 阿歹果园养鸡场管理系统ky7dc9 (配套有源码 程序 mysql数据库 论文)本套源码可以先看具体功能演示视频领取,文末有联xi 可分享 随着农业养殖规模化发展,传统果园养鸡场依赖人工记录、纸质台账的管理模式&#xf…

生成式BI工具(WrenAI)

生成式 BI 工具支持自然语言查询数据库,自动生成 SQL 与可视化图表,被金融分析师和数据科学家广泛采用。 WrenAI是由Canner团队开发的开源生成式BI(GenBI)智能体,致力于通过自然语言交互实现数据库查询、可视化生成和洞…

论文Review 3DGS PGSR | TVCG2024 ZJU-3DV | 几何约束的3DGS表面重建

基本信息 题目:PGSR: Planar-based Gaussian Splatting for Efficient and High-Fidelity Surface Reconstruction 来源:TVCG2024 学校:ZJU-3DV 是否开源:https://github.com/zju3dv/PGSR 摘要:3DGS表面重建 最近…

最新After Effects2025下载安装(含安装包)AE 2025 保姆级下载一键安装图文教程

文章目录一、After Effects 2025下载二、After Effects 2025安装教程三、核心功能升级详解四、系统配置与兼容性说明一、After Effects 2025下载 ①夸克网盘下载链接:https://pan.quark.cn/s/a06e6200e64c 二、After Effects 2025安装教程 1.解压安装包:找到下载…

【网络安全领域】边界安全是什么?目前的发展及应用场景

在网络安全领域,边界安全(Perimeter Security) 是指围绕企业或组织网络的 “物理与逻辑边界” 构建的防护体系,核心目标是阻止未授权访问从外部网络(如互联网、合作方网络)侵入内部可信网络,同时…

虚拟机快照对内存与磁盘空间的影响

核心概念:快照是什么?虚拟机快照捕获的是在某个特定时间点上虚拟机的完整状态。这包括:磁盘状态:虚拟磁盘的数据。内存状态:当时虚拟机内存中的所有内容(如果选择)。配置状态:虚拟机…