深度学习:(五)初识神经网络

news2024/11/14 13:33:04

(一)神经网络的层数

除去输入层,但包括输出层,每一层都有自己的参数。

输入层称为第零层。

(二)最简单的神经网络(逻辑回归)

下图中的小圆圈,代表了一种运算。且一个小圆圈表示一个节点。

在这里插入图片描述

(三)进阶神经网络(双层,多节点)

为了统一和美观,作如下规定:

  • 层数用上标 [   l   ] [~l~] [ l ] 表示。
  • 层中的节点用脚标 i i i 表示。
  • 层的输出用 a a a 表示。

则有 a i [   l   ] a_i^{[~l~]} ai[ l ] 表示第 l l l 层的第 i i i 个节点的输出值(激活值)。

有以下双层神经网络:

在这里插入图片描述

注解:

  • “隐藏层”的含义是:在训练集中,这些中间节点的真正数值,我们并不知道。
  • 对于隐藏层1:
    • 每个节点都有不同的参数 w w w b b b
    • 输入为向量 x x x
    • 执行 z = w T x + b z=w^Tx+b z=wTx+b a = σ ( z ) a=\sigma(z) a=σ(z) 两个计算步骤。
  • 对于输出层:
    • 也有对应的参数 w w w b b b
    • 输入为隐藏层 1 1 1 的输出值;
    • 执行 z = w T x + b z=w^Tx+b z=wTx+b a = σ ( z ) a=\sigma(z) a=σ(z) 两个计算步骤。

参数矩阵:

  • 第一层(隐藏层1):

    • w 1 [ 1 ] T , w 2 [ 1 ] T , w 3 [ 1 ] T , w 4 [ 1 ] T w_1^{[1]T},w_2^{[1]T},w_3^{[1]T},w_4^{[1]T} w1[1]T,w2[1]T,w3[1]T,w4[1]T 组成了矩阵 W [ 1 ] W^{[1]} W[1] ,即 W [ 1 ] = [ — w 1 [ 1 ] T — — w 2 [ 1 ] T — — w 3 [ 1 ] T — — w 4 [ 1 ] T — ] W^{[1]}=\left[ \begin{matrix} — & w_1^{[1]T} & —\\ — & w_2^{[1]T} & — \\ — & w_3^{[1]T} & — \\ — & w_4^{[1]T} & — \\ \end{matrix} \right] W[1]= w1[1]Tw2[1]Tw3[1]Tw4[1]T ,维度为 4 × 3 4×3 4×3 ,表示 4 4 4 个节点, 3 3 3 个输入特征。
    • b 1 [ 1 ] , b 2 [ 1 ] , b 3 [ 1 ] , b 4 [ 1 ] b_1^{[1]},b_2^{[1]},b_3^{[1]},b_4^{[1]} b1[1],b2[1],b3[1],b4[1] 组成了列向量 b [ 1 ] b^{[1]} b[1] ,即 b [ 1 ] = [ b 1 [ 1 ] b 2 [ 1 ] b 3 [ 1 ] b 4 [ 1 ] ] b^{[1]}=\left[ \begin{matrix} b_1^{[1]}\\ b_2^{[1]}\\ b_3^{[1]}\\ b_4^{[1]}\\ \end{matrix} \right] b[1]= b1[1]b2[1]b3[1]b4[1] ,维度为 4 × 1 4×1 4×1
  • 第二层(输出层):

    • w 1 [ 2 ] T w_1^{[2]T} w1[2]T 组成了矩阵 W [ 2 ] W^{[2]} W[2] ,即 W [ 2 ] = [ — w 1 [ 2 ] T — ] W^{[2]}=\left[ \begin{matrix} — & w_1^{[2]T} & —\\ \end{matrix} \right] W[2]=[w1[2]T] ,维度为 1 × 4 1×4 1×4 ,表示 1 1 1 个节点, 4 4 4 个输入特征(!!!!)。
    • b 1 [ 2 ] b_1^{[2]} b1[2] 组成了 b [ 2 ] b^{[2]} b[2] (常数),维度为 1 × 1 1×1 1×1

a i [   l   ] a_i^{[~l~]} ai[ l ] 表示每层的输出:

在这里插入图片描述

整体计算流程:

在这里插入图片描述

(四)向量化神经网络

单个训练样本

针对上述双层网络,计算代码及步骤如下:
G i v e n    i n p u t    x :          a [ 0 ] = x          z [ 1 ] = W [ 1 ] a [ 0 ] + b [ 1 ]          a [ 1 ] = σ ( z [ 1 ] )          z [ 2 ] = W [ 2 ] a [ 1 ] + b [ 2 ]          a [ 2 ] = σ ( z [ 2 ] ) \begin{align*} &Given~~input~~x:\\ &~~~~~~~~a^{[0]}=x\\ &~~~~~~~~z^{[1]}=W^{[1]}a^{[0]}+b^{[1]}\\ &~~~~~~~~a^{[1]}=\sigma(z^{[1]})\\ &~~~~~~~~z^{[2]}=W^{[2]}a^{[1]}+b^{[2]}\\ &~~~~~~~~a^{[2]}=\sigma(z^{[2]}) \end{align*} Given  input  x:        a[0]=x        z[1]=W[1]a[0]+b[1]        a[1]=σ(z[1])        z[2]=W[2]a[1]+b[2]        a[2]=σ(z[2])

整个训练集(多个样本)

前情提要: x ( i ) x^{(i)} x(i) 表示第 i i i 个训练样本,共有 m m m 个样本。

  • 原代码如下:
    在这里插入图片描述

  • 向量化代码:

    将多个训练样本 x ( i ) x^{(i)} x(i) ,按列堆叠为 X = [ ∣ ∣ ∣ x ( 1 ) x ( 2 ) ⋅ ⋅ ⋅ x ( m ) ∣ ∣ ∣ ] X=\left[ \begin{matrix} | & | & & |\\ x^{(1)} & x^{(2)} &··· & x^{(m)} \\ | & | & & | \\ \end{matrix} \right] X= x(1)x(2)⋅⋅⋅x(m) ,维度为 n x × m n_x×m nx×m

    可得新代码为:
    A [ 0 ] = X Z [ 1 ] = W [ 1 ] A [ 0 ] + b [ 1 ] A [ 1 ] = σ ( Z [ 1 ] ) Z [ 2 ] = W [ 2 ] A [ 1 ] + b [ 2 ] A [ 2 ] = σ ( Z [ 2 ] ) \begin{align*} &A^{[0]}=X\\ &Z^{[1]}=W^{[1]}A^{[0]}+b^{[1]}\\ &A^{[1]}=\sigma(Z^{[1]})\\ &Z^{[2]}=W^{[2]}A^{[1]}+b^{[2]}\\ &A^{[2]}=\sigma(Z^{[2]}) \end{align*} A[0]=XZ[1]=W[1]A[0]+b[1]A[1]=σ(Z[1])Z[2]=W[2]A[1]+b[2]A[2]=σ(Z[2])
    其中: Z [ 1 ] = [ ∣ ∣ ∣ z [ 1 ] ( 1 ) z [ 1 ] ( 2 ) ⋅ ⋅ ⋅ z [ 1 ] ( m ) ∣ ∣ ∣ ] Z^{[1]}=\left[ \begin{matrix} | & | & & |\\ z^{[1](1)} & z^{[1](2)} &··· & z^{[1](m)} \\ | & | & & | \\ \end{matrix} \right] Z[1]= z[1](1)z[1](2)⋅⋅⋅z[1](m) A [ 1 ] = [ ∣ ∣ ∣ a [ 1 ] ( 1 ) a [ 1 ] ( 2 ) ⋅ ⋅ ⋅ a [ 1 ] ( m ) ∣ ∣ ∣ ] A^{[1]}=\left[ \begin{matrix} | & | & & |\\ a^{[1](1)} & a^{[1](2)} &··· & a^{[1](m)} \\ | & | & & | \\ \end{matrix} \right] A[1]= a[1](1)a[1](2)⋅⋅⋅a[1](m) Z [ 2 ] Z^{[2]} Z[2] A [ 2 ] A^{[2]} A[2] 同理。

(五)经验法则

  • 当一层中有不同的节点时,我们一般将这些节点的参数或输出值(激活值)纵向堆叠起来。
  • 对于多个训练样本,我们一般将每个样本横向合并起来。

即:在每一步的输出矩阵中,横向指标对应不同的训练样本纵向指标对应某一层的不同节点

————————————————————————————————————————————————————————

上一篇博客下一篇博客
python中的广播

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

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

相关文章

手撕小顶堆

1. 抛砖引玉 给定两个以升序排列的整数数组 nums1 和 nums2 , 以及一个整数 k 。 定义一对值 (u,v),其中第一个元素来自 nums1,第二个元素来自 nums2 。 请找到和最小的 k 个数对 (u1,v1), (u2,v2) … (uk,vk) 。 分析 大根堆(大顶堆&#x…

vue无法通过页面路径访问提示404,通过nginx配置处理

部署vue项目时,可以通过IP的方式访问主页,当进入特定页面在刷新时,因为浏览器通过URL地址进行请求,就提示404错误。 每次都需要重新从主页进入,这里是因为nginx配置的问题,在nginx里增加一行重定向的设置 …

如何使用淘宝API获取买家秀数据?一份详细指南

什么是淘宝买家秀API? 淘宝买家秀API是淘宝开放平台提供的一种接口,它允许开发者通过编程方式获取淘宝商品的买家秀信息,包括买家上传的图片、视频、评论等内容。 为什么需要使用淘宝买家秀API? 提升商品质量:通过分…

什么是CSRF攻击,该如何防护CSRF攻击

CSRF攻击(跨站请求伪造,Cross-Site Request Forgery)是一种网络攻击手段,攻击者利用已通过身份验证的用户,诱导他们在不知情的情况下执行未授权操作。这种攻击通常发生在用户登录到可信网站并且有活动的会话时&#xf…

【Elasticsearch】-spring boot 依赖包冲突问题

<dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><version>7.17.24</version></dependency> 在pom的配置中&#xff0c;只引入了elasticsearch-7.17.24 &#xff0c;但实际上会同时…

vue2中字符串动态拼接字段给到接口

【设计初衷是用户可根据给定的字段进行准确描述】 实现功能&#xff1a; 1. 文本域内容串动态配置字段&#xff0c;以$ {英文}拼接格式给到接口。 &#xff08;传参如&#xff1a;$ {heat_status_code}正常&#xff0c;$ {wdy_temp}也正常&#xff01;&#xff09; 2. 编辑时根…

Nginx从入门到入土(四):基于Nginx负载均衡策略

软负载和硬负载的概念前文提起过&#xff0c;那接下来我们便讲讲什么是负载均衡。 前言 Nginx负载均衡解决的是高并发的问题。 定义&#xff1a; 负载均衡&#xff08;Load Balancing&#xff09;是一种技术策略&#xff0c;它旨在将工作负载&#xff08;如网络流量、计算任…

react之jsx基础(2)高频使用场景

文章目录 1. **组件定义**2. **条件渲染**3. **列表渲染**4. **事件处理**5. **嵌套组件**6. **表单处理**7. **样式应用**8. **处理子组件** 在 React 中&#xff0c;JSX 的使用是非常广泛和高频的。以下是一些常见的高频使用场景及其示例&#xff0c;帮助你更好地理解 JSX 的…

Python基于flask框架的智能停车场车位系统 数据可视化分析系统fyfc81

目录 技术栈和环境说明解决的思路具体实现截图系统设计python语言django框架介绍flask框架介绍性能/安全/负载方面可行性分析论证python-flask核心代码部分展示python-django核心代码部分展示技术路线操作可行性详细视频演示源码获取 技术栈和环境说明 结合用户的使用需求&…

我在高职教STM32——准备HAL库工程模板(2)

新学期已开始,又要给学生上 STM32 嵌入式课程了。这课上了多年了,一直用的都是标准库来开发,已经驾轻就熟了。人就是这样,有了自己熟悉的舒适圈,就很难做出改变,老师上课也是如此,排斥新课和不熟悉的内容。显然,STM32 的开发,HAL 库已是主流,自己其实也在使用,只不过…

基于SpringBoot+Vue的商场停车场管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于JavaSpringBootVueMySQL的…

MeterSphere技术分享:UI自动化测试的必要性与解决方案

UI自动化测试体系的建设价值遵循测试金字塔模型&#xff0c;该模型建议测试人员在不同层次上编写和执行测试。UI测试需要编写和设计测试脚本、执行完整的应用程序&#xff0c;并模拟用户与应用程序交互&#xff0c;因此UI测试的测试速度相对较慢。但是UI测试的业务覆盖很高&…

【STL】stack,deque,queue 基础,应用与操作

stack 1.stack相关介绍 stack&#xff08;栈&#xff09; 栈是一种后进先出&#xff08;LIFO, Last In First Out&#xff09;的数据结构&#xff0c;意味着最后插入的数据最先被移除。C 中的栈是通过容器适配器实现的&#xff0c;底层默认使用 deque&#xff08;双端队列&am…

数字电子技术-数值比较器

目录 数值比较器 1、1位二进制数值比较器 多位数值比较器 4位数值比较器74LS85(TTL型) 74LS85数值比较器的使用说明 数值比较器 Digital Comparator,又称数字比较器&#xff0c;用以对两个数字的大小或是否相等进行比较的逻辑电路。 1、1位二进制数值比较器 A和B只能取值…

硬盘数据恢复必备:4 款强大硬盘数据恢复软件推荐!

在数字化的时代&#xff0c;我们的生活和工作越来越离不开电脑&#xff0c;而硬盘作为重要的数据存储设备&#xff0c;一旦出现数据丢失的情况&#xff0c;往往会给我们带来极大的困扰。别担心&#xff0c;今天就为大家推荐四款强大的硬盘数据恢复软件&#xff0c;帮助你轻松找…

六西格玛绿带培训多少钱?从授“鱼”到授“渔”

六西格玛作为一种全球公认的质量管理方法&#xff0c;其影响力日益扩大&#xff0c;而六西格玛绿带培训作为这一体系中的关键环节&#xff0c;更是吸引了众多希望在职场上脱颖而出的专业人士。本文&#xff0c;深圳天行健企业管理咨询公司将从多个维度深入探讨“六西格玛绿带培…

巴菲特的长期投资策略:新投资者实现财务自由的启示

在投资界&#xff0c;沃伦巴菲特的名字几乎无人不晓。作为伯克希尔哈撒韦公司的董事长和首席执行官&#xff0c;巴菲特以其卓越的投资智慧和长期价值增长策略&#xff0c;成为了全球投资者的偶像。巴菲特的成功不仅仅是因为他的财富&#xff0c;更在于他对投资的深刻理解和对财…

Linux嵌入式驱动开发指南(速记版)---Linux基础篇

第一章 Ubuntu系统入门 1.1 Linux磁盘管理 1.1.1 Linux磁盘管理基本概念 关键词&#xff1a; Linux 磁盘管理 挂载点 /etc/fstab文件 分区 ls /dev/sd* 联系描述&#xff1a; Linux 磁盘管理体系通过“挂载点”概念替代了 Windows 中的“分区”概念&#xff0c;将硬盘部分以文…

如何保养净水器

俗话说&#xff0c;“三分用&#xff0c;七分养”&#xff0c;这句话道出了家电这类消费品使用寿命的秘诀。家电的长久运行并不仅仅依赖于其出厂时的品质&#xff0c;更与我们日常的维护保养息息相关。虽然行业标准或制造商通常会规定家电的推荐使用年限&#xff0c;但在许多家…