两层及N层全连接神经网络模型原理

2023-11-19

前言

  深度学习是学习样本数据的内在规律和表示层次,在学习过程中获得的信息对诸如文字,图像和声音等数据的解释有很大的帮助。全连接神经网络(MLP)便是基础的网络类型的之一,充分体现深度学习方法相比于传统机器学习算法的特点,即大数据驱动、公式推导、自我迭代更新、黑匣子训练等。本文将对MLP从两层及以上对其分析和解释。

1. 两层MLP

  两(浅)层神经网络相比单层网络的差别在于隐藏层有多个神经节点,这就使得其可以处理“多输入多输出”的复杂问题。

1.1 前向传播

y ( x , W ) = W x + b {\rm{y}}(x,W) = Wx + b y(x,W)=Wx+b
  其中, x x x代表输入图像,其维度为 d d d; y y y为分数向量,其维度等于类别个数 c c c W = [ w 1 ⋅ ⋅ ⋅ w c ] T W = [w_1 \cdot \cdot \cdot w_c ]^T W=[w1wc]T为权值矩阵, w i = [ w i ⋅ ⋅ ⋅ w i d ] T w_i = [w_i \cdot \cdot \cdot w_{id} ]^T wi=[wiwid]T为第 i i i个类别的权值向量; b = [ b i ⋅ ⋅ ⋅ b c ] T b = [b_i \cdot \cdot \cdot b_c ]^T b=[bibc]T为偏置向量, b i b_i bi为第 i i i个类别的偏置,则两层MLP为
y = W 2 σ ( 0 , W 1 x + b 1 ) + b 2 y = W_2 \sigma (0,W_1 x + b_1 ) + b_2 y=W2σ(0,W1x+b1)+b2,其中 σ \sigma σ为激活函数

1.2 反向传播

  反向传播所做的就是让每一个神经元都拥有一个 W 和 b W和b Wb的值,即求梯度。这样我们在传进一个新的数据时,我们可以对它准确的预测,当然也是对每一层传播来的数据的反馈。当对数据进行反馈时,损失函数是便是评测手段,下面将以均方差损失函数为例对其梯度下降。

  损失函数: L ( y ^ , y ) = 1 2 ( y ^ i − y i ) 2 L(\hat y,y) = \frac{1}{2}(\hat y_i - y_i )^2 L(y^,y)=21(y^iyi)2

  梯度下降: w 1 = w 0 − η d L ( w ) d w b 1 = b 0 − η d L ( b ) d b \begin{array}{l}w_1 = w_0 - \eta \frac{{dL(w)}}{{dw}} \\ \\ b_1 = b_0 - \eta \frac{{dL(b)}}{{db}}\\ \end{array} w1=w0ηdwdL(w)b1=b0ηdbdL(b)

  其中 w 0 w_0 w0 b 0 b_0 b0是我们目前的实际值, − η - \eta η步长(一定的值),当 L L L取极值 w w w时, w 1 w_1 w1是梯度下降求出的值

  当对损失函数梯度下降时需要链式法则求解

d L ( a , y ) d w = d L ( a , y ) d a ⋅ d a d z ⋅ d z d w \frac{{dL(a,y)}}{{dw}} = \frac{{dL(a,y)}}{{da}} \cdot \frac{{da}}{{dz}} \cdot \frac{{dz}}{{dw}} dwdL(a,y)=dadL(a,y)dzdadwdz
  推演
  梯度下降带入损失函数
在这里插入图片描述
  链式法则
在这里插入图片描述
  最终结果
在这里插入图片描述

2. N层MLP

  N层全连接神经网络——除输入层之外其他层的数量为N的网络
  在神经网络中,随着网络的层数增加,每一层对于前一层次的抽象表示更深入。每一层神经元学习到的是前一层神经元值的更抽象的表示。三层神经网络也叫两隐藏层神经网络,则三层MLP为: y = W 3 σ ( 0 , W 2 σ ( 0 , W 1 x + b 1 ) + b 2 ) y = W_3 \sigma (0,W_2 \sigma (0,W_1 x + b_1 ) + b_2 ) y=W3σ(0,W2σ(0,W1x+b1)+b2) ,其中 σ \sigma σ为激活函数。
三层

2.1 网络参数

  参数:指算法运行迭代、修正最终稳定的值。

  超参:网络结构——隐层神经元个数,网络层数,非线性单元选择等
     优化相关——学习率、dropout比率、正则项强度等

2.2 超参数优化

  网格搜索法:

    ①每个超参数分别取几个值,组合这些超参数值,形成多组超参数;
    ②在验证集上评估每组超参数的模型性能;
    ③选择性能最优的模型所采用的那组值作为最终的超参数的值。

  随机搜索法:

    ①参数空间内随机取点,每个点对应一组超参数;
    ②在验证集上评估每组超参数的模型性能;
    ③选择性能最优的模型所采用的那组值作为最最终的超参数的值。
在这里插入图片描述
  超参数搜索策略:

    ①粗搜索:利用随机法在较大范围里采样超参数,训练一个周期,依据验证集正确率缩小超参数范围。
    ②精搜索:利用随机法在前述缩小的范围内采样超参数,运行模型五到十个周期,选择验证集上精度最高的那组超参数。
在这里插入图片描述

3. MLP优化

  非线性因素:围绕激活函数,提高计算速率就要使激活函数去积分化、去微分化、易求偏导,解决梯度消失和梯度爆炸的问题;

  迭代更新:围绕反向传播更新权值和偏置,损失函数选择、优化器选择、学习率衰减策略等;

  骨干网络:网络应该设置多少层,每一层应该有多少个节点。

  以上是两层及N层(以三层举例)的MLP模型原理,对于MLP优化您可以查阅本栏目全连接神经网络的优化与改进。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

两层及N层全连接神经网络模型原理 的相关文章

随机推荐

  • 数据库系统概论第五版课后习题答案第七章

    第七章 数据库设计 1 试述数据库设计过程 答 这里只概要列出数据库设计过程的六个阶段 l 需求分析 2 概念结构设计 3 逻辑结构设计 4 数据库物理设计 5 数据库实施 6 数据库运行和维护 这是一个完整的实际数据库及其应用系统的设计过
  • Spring总结

    1 Spring概述 1 1 简介 Spring 春天 gt 给软件行业带来了春天 2002年 Rod Jahnson首次推出了Spring框架雏形interface21框架 2004年3月24日 Spring框架以interface21框
  • 企业及个人如何有效防护网络攻击

    企业及个人如何有效防护网络攻击 众所周知 网络攻击手段有很多 让人眼花缭乱 防不胜防 其带来的危害和影响也非常之大 因此 如何防范网络攻击 成为大家关注的重点 本文为大家介绍一些防范网络攻击的小技巧 快来看看吧 1 对于个人来说 密码不少于
  • 赛事

    第25届中国机器人及人工智能大赛成功举办 2023年6月13日至14日 第二十五届中国机器人及人工智能大赛于海南科技职业大学成功举办 大赛由中国人工智能学会主办 共有来自清华大学 哈尔滨工业大学 中国科学技术大学 西安交通大学等500多所高
  • 【华为OD统一考试A卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • MATLAB实现CNN-LSTM卷积长短期记忆神经网络数据分类预测

    作者简介 热爱科研的Matlab仿真开发者 修心和技术同步精进 matlab项目合作可私信 个人主页 Matlab科研工作室 个人信条 格物致知 内容介绍 一种基于长短时记忆网络和卷积神经网络的文本分类方法 首先 利用词向量将输入文本进行向
  • Win7 64位操作系统连接HP 1010打印机完美解决方案

    工作的第一天就遇到问题 新电脑无法连接老式的HP1010打印机 64位Windows7系统无法连接32位XP网络共享打印机 而32位WIN7就可以 这里分享个简单的解决方法 先去下载一个64位的打印机驱动 然后添加打印机 注意这里要添加的是
  • SQL---DML---ORDER BY排序检索子句的几种方式

    关系数据库设计理论认为 如果不明确规定排序顺序 则不应该假定检索出的数据的顺序有意义 为了明确地排序用SELECT语句检索出来的数据 可使用ORDER BY子句 排序一列数据 SELECT 列名1 FROM 表名 ORDER BY 列名2
  • 【2022年MathorCup大数据竞赛】B题:北京移动用户体验影响因素研究(四)(问题一的千余行代码整理)

    目录 代码整理 一 问题一附件1语音业务数据集处理代码 二 问题一附件2上网业务数据集处理代码 一 问题一附件1语音业务数据集处理代码 问题一附件1语音业务数据集处理代码 import numpy as np import pandas a
  • 打包前后端项目并部署至服务器

    1 打包前端项目 打包命令 npm run build 执行完命令后 会生成一个名为 dist 的文件夹 这个就是打包好的前端项目 2 打包后端项目 2 1 执行 maven 的 clean 删除项目编译创建的 target 文件夹 2 2
  • fastcgi 模块各个常用变量的意义

    nginx fasrcgi 模块的文档 http nginx org en docs http ngx http fastcgi module html fastcgi pass 设置FastCGI服务器的地址 将匹配到该location的
  • C语言程序的结构

    1 C语言程序主要由函数构成 函数是C语言程序的基本单位 一个C语言源程序必须有一个main函数 可以包含一个main函数和若干个其他函数 主函数可以调用其他函数 其他函数之间可以互相调用 但其他函数不能调用主函数 被调用的函数可以是系统提
  • 时序算法研究系列之Prophet安装(准备篇)

    前言 新开一个关于时序数据预测算法的系列博客 计划整理目前的时序数列的预测方法 原理 应用 心得等 其中Prophet因为在安装时候踩了很多雷 所以专门开一个准备篇写安装过程 下一篇讲述具体应用 目录 前言 Prophet 简介 方法一 方
  • 查看字节码

    1 安装插件 ASM Bytecode outline 与hexview 2 查看字节码 源码 package com asm public class HelloWorld public static void main System o
  • 【华为OD机试真题 JAVA】求最多可以派出多少支团队

    JS版 华为OD机试真题 JS 求最多可以派出多少支团队 标题 求最多可以派出多少支团队 时间限制 1秒 内存限制 262144K 语言限制 不限 用数组代表每个人的能力 一个比赛活动要求参赛团队的最低能力值为N 每个团队可以由1人或2人组
  • Eclipse插件之Bytecode Outline

    本文介绍如何利用Eclipse插件Bytecode Outline在Eclipse中的操作使用 Eclipse是目前非常流行的开发平台 开放扩展的架构让很多程序员找到了自己个性化的工作环境 Bytecode Outline 插件可以把当前的
  • U盘安装ubuntu16.04及IP配置,硬盘挂载。

    U盘安装ubuntu16 04及IP配置 硬盘挂载 准备一个启动盘 进入BIOS 安装系统 设置静态ip 挂载硬盘脚本 安装基本包 准备一个启动盘 准备一个U盘 可以用 ultraiso 工具来制作 进入BIOS 将U盘插入要安装的电脑 开
  • 理解gateway网关,及与前端联调过程

    1 一些概念 客户端向Spring Cloud Gateway发出请求 然后在Gateway Handler Mapping中找到请求相匹配的路由 将其发送到Gateway Web Handler Handler再通过制定的过滤器链来将请求
  • NeRF神经辐射场中关于光线从世界坐标系转换为NDC坐标系 Representing Scenes as Neural Radiance Fields for View Synthesis

    本文旨在回复一个粉丝的关于坐标系变换编程提问 并结合下面的一个代码进行解释 完整代码参考我前面的文章 补充 希望那个同学可以看见 因为公众号对话10天未互动默认无法再回复消息了 def get ndc rays H W focal near
  • 两层及N层全连接神经网络模型原理

    两层及N层全连接神经网络模型原理 前言 1 两层MLP 1 1 前向传播 1 2 反向传播 2 N层MLP 2 1 网络参数 2 2 超参数优化 3 MLP优化 前言 深度学习是学习样本数据的内在规律和表示层次 在学习过程中获得的信息对诸如