深度学习——全连接层(Fully connected dence layers)原理解析

2023-10-28

深度学习——全连接层(Fully connected dence layers)原理解析

一、简介

  • 全连接层有多个神经元,是一个列向量(单个样本)。在计算机视觉领域正常用于深度神经网络的后面几层,用于图像分类任务。
    图1
  • 全连接层算法包括两部分:前向传播(Forward)和反向传播(Backward)

二、 算法解析

前向传播(Forward)

在这里插入图片描述

  • 上图主要有5个变量, x , a , W , b , σ x, a,W,b,\sigma x,a,W,b,σ,上图是单层的全连接层,只有一个神经元。
  • x x x: 代表一个样本输入的特征的向量,上图 x x x是第 L [ 0 ] L^{[0]} L[0]层输入,维度为(12287,1)
  • w w w: 代表第1层全连接层的权重,维度为(12287,1)
  • b b b: 代表偏置,维度为(1,1)
  • z z z: 代表神经元的线性计算 z = W T x + b z = W^{T}x + b z=WTx+b,维度(1,1)
  • σ \sigma σ: a = σ ( z ) a =\sigma(z) a=σ(z) 激活函数
  • L L L: 交叉熵
  • J J J: 损失函数
    图中公式(1)(2)(3)(4)就是前向传播过程,Loss Function 为交叉熵。

反向传播

  • 这里也讲解单层的全连接层的反传。反向传播算法是上世纪Hinton发表在nature上一对深度学习影响巨大的算法。读者需要具备点微积分的知识,主要用到链式法则(chain rule)。
  • 假设输入数据有m个样本,激活函数为 s i g m o i d σ ( x ) = 1 1 + e − x , σ ( x ) ′ = σ ( x ) ( 1 − σ ( x ) ) sigmoid \quad \sigma(x)= \frac{1}{1+e^{-x}}, \sigma(x)' = \sigma(x)(1-\sigma(x)) sigmoidσ(x)=1+ex1,σ(x)=σ(x)(1σ(x)),算法流程
    ——————————————————————————————————
    J = 0 , d W = 0 , d b = 0 , d z = 0 J = 0, dW = 0,db =0,dz = 0 J=0,dW=0,db=0,dz=0
    f o r i i n m : for \quad i \quad in \quad m: foriinm:
    \quad // Forward coumpute
    z i = W T x i + b \quad z_i = W^{T}x^{i} + b zi=WTxi+b
    a i = σ ( z i ) \quad a_i= \sigma(z_i) ai=σ(zi)
    J + = − ( y i l o g ( a i ) + ( 1 − y i ) l o g ( 1 − a i ) ) \quad J += -(y_ilog(a_i) + (1-y_i)log(1-a_i)) J+=(yilog(ai)+(1yi)log(1ai))
    \quad // Backward
    d A = y i a i − 1 − y i 1 − a i \quad dA = \frac{y_i}{a_i} - \frac{1-y_i}{1-a_i} dA=aiyi1ai1yi
    d Z = d A ∗ σ ( z ) ′ = a i − y i \quad dZ = dA*\sigma(z)'=a _i- y_i dZ=dAσ(z)=aiyi
    d W + = x i d Z \quad dW += x_idZ dW+=xidZ
    d b + = d Z \quad db += dZ db+=dZ
    J = − 1 m J , d W = 1 m d W , d b = 1 m d b J = \frac{-1}{m}J,dW = \frac{1}{m}dW, db=\frac{1}{m}db J=m1J,dW=m1dW,db=m1db
    ——————————————————————————————————
  • d A = ∂ J ∂ a i dA = \frac{\partial{J}}{\partial{a_i}} dA=aiJ
  • d Z = ∂ J ∂ a i ∂ a i ∂ z i dZ = \frac{\partial{J}}{\partial{a_i}} \frac{\partial{a_i}}{\partial{z_i}} dZ=aiJziai
  • d W = ∂ J ∂ z i ∂ z i ∂ W dW =\frac{\partial{J}}{\partial{z_i}} \frac{\partial{z_i}}{\partial{W}} dW=ziJWzi
  • d b = ∂ J ∂ a i ∂ a i ∂ b db = \frac{\partial{J}}{\partial{a_i}} \frac{\partial{a_i}}{\partial{b}} db=aiJbai
    在实际编程中需要注意变量的维度。
  • 可以看得出上面算法有个for循环,所以可以用矩阵把它优化,变为下面公式
  • d Z = ∂ J ∂ A ∂ A ∂ z = A − Y dZ = \frac{\partial{J}}{\partial{A}} \frac{\partial{A}}{\partial{z}} =A-Y dZ=AJzA=AY
  • d W = ∂ J ∂ z ∂ z ∂ W = 1 m d Z X T dW =\frac{\partial{J}}{\partial{z}} \frac{\partial{z}}{\partial{W}}=\frac{1}{m}dZX^{T} dW=zJWz=m1dZXT
  • d b = ∂ J ∂ a ∂ a ∂ b = 1 m n p . s u m ( d Z , a x i s = 1 , k e e p d i m s = T r u e ) db = \frac{\partial{J}}{\partial{a}} \frac{\partial{a}}{\partial{b}}=\frac{1}{m}np.sum(dZ,axis=1,keepdims=True) db=aJba=m1np.sum(dZ,axis=1,keepdims=True)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

深度学习——全连接层(Fully connected dence layers)原理解析 的相关文章

  • python是面向对象还是面向过程?

    Python虽然是解释型语言 但从设计之初就已经是一门面向对象的语言 对于Python来说一切皆为对象 正因为如此 在Python中创建一个类和对象是很容易的 当然如果习惯面向过程或者函数的写法也是可以的 Python并不做硬性的限制 Py
  • GRU(门控循环单元),易懂。

    一 什么是GRU GRU Gate Recurrent Unit 是循环神经网络 RNN 的一种 可以解决RNN中不能长期记忆和反向传播中的梯度等问题 与LSTM的作用类似 不过比LSTM简单 容易进行训练 二 GRU详解 GRU模型中有两
  • 数据建模在MES管理系统中的作用,以及合理设计

    随着信息化的快速发展 MES系统解决方案在企业中的应用越来越广泛 作为实现生产过程数字化的重要组成部分 MES系统扮演着监控 控制和优化生产运营的关键角色 而在MES系统中 数据建模是实现高效生产管理的重要环节之一 本文将探讨数据建模在ME

随机推荐

  • 商城-下单-订单系统接口

    商城 下单 订单系统接口 1 订单系统接口 1 1 导入订单服务 1 2 Swagger UI 1 2 1 什么是OpenAPI 1 2 2 什么是swagger 1 2 3 快速入门 1 引入依赖 2 编写配置 3 接口声明 4 启动测试
  • 华为OD机试真题 Java 实现【字符串通配符】【2022Q4 200分】

    目录 一 题目描述 二 输入描述 三 输出描述 四 解题思路 五 Java算法源码 六 效果展示 一 题目描述 问题描述 在计算机中 通配符一种特殊语法 广泛应用于文件搜索 数据库 正则表达式等领域 现要求各位实现字符串通配符的算法 要求
  • 链式二叉树

    链式二叉树 一 相关函数接口实现 1 前序遍历 2 中序遍历 3 后序遍历 4 节点个数 5 叶子结点个数 6 树的高度 7 第K层结点个数 8 查找值为X的结点 9 通过前序遍历数组构建二叉树 10 销毁二叉树 11 层序遍历 12 判断
  • 数据库领域2023上半年盘点

    国产数据库成发展主力 技术创新成效不俗 2023年上半年 数据库行业整体呈现蓬勃发展态势 特别是国产厂商成为了发展主力军 包括厂商 产品 技术等多方面 中国已经成为全球仅次于美国的数据库发展高地 出现了一大批有代表性的产品及技术创新 据第三
  • 阅读笔记《Learning Attentive Pairwise Interaction for Fine-Grained Classification》

    本文是关于 Learning Attentive Pairwise Interaction for Fine Grained Classification 的阅读笔记 阅读前三个问题 注意力成对交互网络 API Net 互向量学习 Mutu
  • 基于51单片机机械臂控制系统

    1控制系统所运用到的模块 所用到的模块有 pca9685控制多路舵机模块 矩阵按键模块 LCD1702显示模块 DS18B20温度检测模块 独立按键模块 步进电机 ULN2003步进电机控制模 DS1302时钟模块 2控制系统工作模式的功能
  • 腾讯2014校园招聘笔试题

    腾讯 2014校招研发笔试题 试卷类型 软件开发A1 考试时长 120分钟 一 不定向选择题 共25题 每题4分 共100分 多选 错选 少选不得分 1 已知一棵二叉树 如果先序遍历的节点顺序是 ADCEFGHB 中序遍历是 CDFEGHA
  • eclipse启动不了,在加载到最后时刻卡死解决办法

    出现这种情况 关机 重启都无法解决的时候 方法一 到
  • CentOS7使用手册

    2 操作 yum remove openssl 问题 无法进入图形界面 解决 shell登录 执行 yum groupinstall KDE Plasma Workspaces reboot 1 操作 重装系统 然后安装了其它第三方库 问题
  • CentOS8服务篇7:配置网络存储iSCSI服务

    一 iSCSI技术概述 基于IP的存储区域网 Internet Small Computer System Interface iSCSI 又称IP SAN 它是一种基于因特网及SCSI 3协议的存储技术 由IETF提出 并于2003年2月
  • 原来类加载器的原理是这样执行的

    原文链接 深入类加载原理 我们知道 我们写的java文件是不能直接运行的 我们可以在IDEA中右键文件名点击运行 这中间其实掺杂了一系列的复杂处理过程 这篇文章 我们只讨论我们的代码在运行之前的一个环节 叫做类的加载 按照我写文章的常规惯例
  • MyBatis下DataSource的配置原理以及多数据源的配置

    MyBatis下多数据源的配置 多datasource的配置原理 将不同数据源的mapper接口放在不同的包内 再在数据源配置中 用 MapperScan注解扫描不同的包 引言 先来学习一下单数据源情况下的配置原理 只关心多数据源的配置方法
  • Linux常用命令总结

    很全啊 记录一下 https mp weixin qq com s biz MzI3MjY1ODI2Ng mid 2247485996 idx 1 sn 0a08bf2f04eed49542a96cee6928a561 chksm eb2e
  • 第一个 Spring Boot 子服务——会员服务

    经过上两个章节的分析 设计工作 相信你已经对项目的整体结构有了更清晰的认识 剩下的工作就是依据设计 将项目骨架拉出来 往里面直充血肉 搭建项目骨架 约定项目名称为 parking project 建立 Maven 项目 packaging
  • 广州面试题------39健康网1广州启生信息技术有限公司

    部分笔试答案 3 接口 interface 是抽象方法和常量值的定义的集合 从本质上讲 接口是一种特殊的抽象类 这种抽象类中包含常量和方法的定义 而没有变量和方法的实现 1 接口是一组规则的集合 它规定了实现本接口的类或接口必须拥有的一组规
  • 【语义分割】轻量级人像分割PP-HumanSeg NCNN C++ windows部署

    ncnn 是一个为手机端极致优化的高性能神经网络前向计算框架 ncnn 从设计之初深刻考虑手机端的部署和使用 无第三方依赖 跨平台 手机端 cpu 的速度快于目前所有已知的开源框架 基于 ncnn 开发者能够将深度学习算法轻松移植到手机端高
  • C++ std::string 字符串替换

    std string里面std replace只有单字符替换 std replace str begin str end 单字符替换 将双引号换成 符 如果有字符串替换的话需要配合find 使用
  • 【React】根据条件渲染不同的组件内容

    需求如下 但我点击不同的按钮时 下面渲染的是不同组件的内容 wokao这个图片大小咋调 每回都贼大 第一步 先写好不同组件的内容 第二步 在state状态里面加一个Type进行记录 第三步 核心代码如下 好了 说白了就是通过改变type的值
  • php 在线测试 tool,在线程序员工具箱

    Tool lu 将在线工具分为开发类 站长类 极客 Geek 类以及其他 其中收录很多在开发或网站站长会用到的工具 例如 CSS JavaScript PHP 代码优化 压缩 SQL Ruby 和 Json Python 等代码美化 图片编
  • 深度学习——全连接层(Fully connected dence layers)原理解析

    深度学习 全连接层 Fully connected dence layers 原理解析 一 简介 全连接层有多个神经元 是一个列向量 单个样本 在计算机视觉领域正常用于深度神经网络的后面几层 用于图像分类任务 全连接层算法包括两部分 前向传