当前位置: 首页 > news >正文

浅度解读-(未完成版)浅层神经网络-多个隐层神经元

在这里插入图片描述

文章目录

    • 浅层神经网络的前向传播
      • 计算流程
        • 矩阵在运算时形状的变化
    • 激活函数的作用
      • 为什么要有激活函数
    • 反向传播

浅层神经网络的前向传播

计算流程

线性变换-神经元a1
线性变换-神经元a2
线性变换-神经元a3
线性变换-神经元a4
线性变换
第一层
第二层
输入特征x
激活函数(z)
sigmoid(z)激活函数
输入特征x
激活函数(z)
sigmoid(z)激活函数

第一个激活函数是为了把线性变换的各条线变成更便于拟合的,具有非线性特征的线
第二个线性变换是为了把这些具有非线性特征的线拟合成一条线
第二个激活函数是为了把结果限制在0-1之间

与单神经元相比,不同在于每个不同的神经元对相同的输入有不同权
在这里插入图片描述
n*m n为隐层神经元个数,m为输入的特征x的数目

  • 这是W权重的矩阵
输入的特征xx1x2x3xm
神经元
a1
a2
a3
a4
an

而在单神经元中 w w w仅有一行

矩阵在运算时形状的变化

n 是隐层神经元的个数, m 是特征 x 的数目(一个样本里有 m 个 x ), M 是样本数目 n是隐层神经元的个数,m是特征x的数目(一个样本里有m个x),M是样本数目 n是隐层神经元的个数,m是特征x的数目(一个样本里有mx),M是样本数目

  • 前向过程计算:

第一步,各神经元线性代换 第一步,各神经元线性代换 第一步,各神经元线性代换
z [ 1 ] = W [ 1 ] x + b [ 1 ] ( 形状: ( n , M ) = ( n , m ) ∗ ( m , M ) + ( M , 1 ) ) z^{[1]} = W^{[1]}x + b^{[1]} (形状:(n,M) = (n,m) * (m,M) + (M,1)) z[1]=W[1]x+b[1](形状:(n,M)=(n,m)(m,M)+(M,1))

第二步,对各神经元的代换结果进行激活函数 ( z ) 第二步,对各神经元的代换结果进行激活函数(z) 第二步,对各神经元的代换结果进行激活函数(z)
a [ 1 ] = σ ( z [ 1 ] ) ( 形状: ( n , M ) ) a^{[1]} = \sigma(z^{[1]}) (形状:(n,M)) a[1]=σ(z[1])(形状:(n,M))

第三步 , 对各个神经元的激活函数 ( z ) 结果进行线性代换 第三步,对各个神经元的激活函数(z)结果进行线性代换 第三步,对各个神经元的激活函数(z)结果进行线性代换
z [ 2 ] = W [ 2 ] a [ 1 ] + b [ 2 ] ( 形状: ( 1 , M ) = ( 1 , n ) ∗ ( n , M ) + ( 1 , M ) ) z^{[2]} = W^{[2]}a^{[1]} + b^{[2]} (形状:(1,M) = (1,n) * (n,M) + (1,M)) z[2]=W[2]a[1]+b[2](形状:(1,M)=(1,n)(n,M)+(1,M))

第四步,对汇总的线性代换进行 σ ( z ) 第四步,对汇总的线性代换进行\sigma(z) 第四步,对汇总的线性代换进行σ(z)
a [ 2 ] = σ ( z [ 2 ] ) ( 形状: ( 1 , M ) ) a^{[2]} = \sigma(z^{[2]}) (形状:(1,M)) a[2]=σ(z[2])(形状:(1,M))

  • 第一步的结果(n,M),一个样本占一列
输入的样本M1M2M3MM
神经元
a1线性代换的结果
an
  • 第二步的结果(n,M),一个样本占一列
输入的样本M1M2M3MM
神经元
a1 σ ( 线性代换的结果 ) \sigma(线性代换的结果) σ(线性代换的结果)
an
  • 第三步的结果,一个样本占一格
输入的样本M1M2M3MM
各个神经元的 σ ( z ) \sigma(z) σ(z)结果 σ ( z ) \sigma(z) σ(z)线性代换的结果
  • 第四步的结果,一个样本占一格
输入的样本M1M2M3MM
σ ( z ) \sigma(z) σ(z)线性代换的结果 σ ( 第三步线性代换 ) \sigma(第三步线性代换) σ(第三步线性代换)线性代换的结果,最终的预测概率

激活函数的作用

就是非线性变换

为什么要有激活函数

线性变换1-神经元a1
线性变换1-神经元a2
线性变换1-神经元a3
线性变换1-神经元a4
线性变换2
输入特征x
激活函数(z)
sigmoid(z)激活函数

线性变换1 根据权重数据化到各个神经元,
线性变换2 将各个神经元非线性化后的结果线加上偏置后,拟合(加)成一条线,最终根据这条线 σ ( z ) \sigma(z) σ(z)进行预测
隐层中有n神经元,最终就是n条激活函数的线拟合
在这里插入图片描述

如果不加激活函数,那么神经元就仅仅做线性变换,以AlexNet为例,这个神经网络就会成为一个线性回归模型。而一个线性回归模型对于复杂非线性任务的处理能力是十分有限的。因此,我们需要添加非线性的激活函数,在神经网络的输入输出之间形成非线性映射,让网络能力更为强大。

仅线性变化得到的,拟合(加起来)效果不如激活函数得到的非线性线的拟合
在这里插入图片描述

反向传播

http://www.dtcms.com/a/267398.html

相关文章:

  • 解决el-select数据类型相同但是显示数字的问题
  • Python-函数、参数及参数解构-返回值作用域-递归函数-匿名函数-生成器-学习笔记
  • 从数据洞察到设计创新:UI前端如何利用数字孪生提升用户体验?
  • 【算法笔记】4.LeetCode-Hot100-数组专项
  • 操作系统---I/O核心子系统与磁盘
  • Linux操作系统之文件(四):文件系统(上)
  • pyspark大规模数据加解密优化实践
  • NVMe高速传输之摆脱XDMA设计13:PCIe初始化状态机设计
  • 2025 Centos 安装PostgreSQL
  • Java类变量(静态变量)
  • LangChain:向量存储和检索器(入门篇三)
  • 【Qt】qml组件对象怎么传递给c++
  • appnium-巨量测试
  • LVGL移植(外部SRAM)
  • ESP32-S3开发板播放wav音频
  • 应急响应靶机-linux1-知攻善防实验室
  • 介绍electron
  • 若依学习笔记1-validated
  • Qt工具栏设计
  • Tensorboard无法显示图片(已解决)
  • 编程中的英语
  • CHAIN(GAN的一种)训练自己的数据集
  • Ubuntu基础(监控重启和查找程序)
  • 【Elasticsearch】深度分页及其替代方案
  • 基于 Python Django 和 Spark 的电力能耗数据分析系统设计与实现7000字论文实现
  • .NET9 实现排序算法(MergeSortTest 和 QuickSortTest)性能测试
  • Redis--黑马点评--基于stream消息队列的秒杀优化业务详解
  • 升级到MySQL 8.4,MySQL启动报错:io_setup() failed with EAGAIN
  • 每日算法刷题Day42 7.5:leetcode前缀和3道题,用时2h
  • Node.js worker_threads:并发 vs 并行