深度学习笔记二:多层感知机(MLP)与神经网络结构

2023-11-11

为了尽量能形成系统的体系,作为最基本的入门的知识,请参考一下之前的两篇博客:
神经网络(一):概念
神经网络(二):感知机
上面的两篇博客让你形成对于神经网络最感性的理解。有些看不懂的直接忽略就行,最基本的符号的记法应该要会。后面会用到一这两篇博客中的一些记号和用法的约定什么的之后就不再啰嗦了。

一.基本结构

看完上面给出的两个博客或者已经有基本概念的同学应该对于神经网络的基本结构有基本的认识了。但是上面那个还只是涉及到单层结构,并没有推广到多层结构,同时,也没有在实践中使用这种结构的经验。所以,这节的内容就是以手写体识别为例子来讲一下基本结构,和实践中的基本使用思想。这是推广到更加复杂任务上的基础。
假设你现在已经有了神经网络的一些感性认识了,那就就看下面这幅图。
这里写图片描述
输入层(最左边),隐藏层(中间两层),和输出层(最右边),在之前列出的博客就讲过了,这里回顾一下。感受一下大概的架构。
神经网络的流程分为前向过程和反向过程。反向过程一般用于训练,后面讲,这里只讲前向过程。
还记得每个神经元上面都有对于一个输入的权值,以及一个偏置,还有一个激活函数。(不知道的话看之前列出来的博客,后面不再强调了),所以一个前向过程的流程就是input输入,然后经过第一层神经元运算(乘上权值,加上偏执,激活函数运算一次),得到输出,然后第一层的输出作为第二层的输入,运算,得到第二层的输出…..直到到输出层运算,然后得到结果。神经网络就是依靠这样一套机制来进行计算和预测的。
假如你的权值和偏置已经是被训练好了。对于一个新的输入,进行这样的过程,就能够得到一个预测。那么你就能够通过这个预测来解决一些问题了。所以有机器学习思想的话,这些概念是很容易理解的。而我们的任务就是找到权值和偏置这些参数的值,使得输出的东西让我们满意,达到我们的要求。

这里先补充一个思想:
这里写图片描述
假如我们改变了某个神经元或者某几个神经元的权值或者偏置一点点,那么该神经元的输出肯定会变得不同,这些不同最终将反应在输出上面。如上面的图所示。所以,我们可以通过合理地改变权值和偏置一点点的方式来让这个神经网络最后的结果向我们预期的结果进军(sorry,我想不到好词了)。

然后说激活函数,还是在前面的博客链接中,给了很多的激活函数类型。激活函数的选择对于神经网络的训练来说,也是很重要的,这个后面再讲到。
现代神经网络激活函数总结,可以看这篇博客:
深度学习笔记六:常见激活函数总结
这里先以sigmoid函数为例子,讲讲激活函数的作用。所以,你这里先暂时假设我们没得选,只有sigmoid函数。
这个时候,有没有发现对于感知机前向过程的形式很像logistic回归的形式?
不熟悉logistic回归的请先看这里:
机器学习笔记四:线性回归回顾与logistic回归
那我们为什么要选择sigmoid函数呢?
我们知道一个神经元还是选择了sigmoid函数之后,他的输出为这里写图片描述,这也就是我为什么说这个形式很像logistic回归的原因。
这里写图片描述
上面的博客里面给出过这个函数的形状,这里再贴一次。其实你肯定也很熟悉了。
这里写图片描述
这个函数变动不大,很温和。不像阈值函数那样粗暴的从0到1,这是很符合之前的那个思想的。当然这个函数还有另外一个优点,就是平滑。平滑能够使得权值和偏置非常微小的变动能够使得最终的结果也产生非常微小的变动。这才是很重要的。
写成公式,就应该是这样:
这里写图片描述
怎么理解这个公式呢?
首先在机器学习里面我们不是说过,我们的任务就是找一个函数f(w,b),然后他的输出output就是由这个函数产生。你再来看这里,这里虽然是神经网络,但是整个神经网络还是一个函数。
然后回顾一下全微分的定义:
这里写图片描述
同样可以推广到多元的形式,再看上面的那个公式就不难了吧。
这里还有一个要注意的就是,从上面公式的形式来看,这里写图片描述就是这里写图片描述这里写图片描述的一个线性函数,于是我们能够选择一个小的权值和偏置的改变,使得结果以我们期望的方式改变。

讲了这么多,现在根据一个例子来谈谈实践中是怎么设计网络的结构的,很简单,也很重要。
以MNIST手写体为例子,里面都是28x28的灰度图,假如以我们现在这么简单的网络形式,我们可以考虑把所有28x28的图片统一展开为一个一维数列(这样可能会丢掉某些位置信息,后面CNN会讲到这个),然后得到一个结构,含有784(28x28)个值。
回到网络这里来,对于输入层而言,我们可以“设定”784个单元,分别接受每一个像素的值。对于输出层而言,我们可以只设定一个神经元,用来输出这个数字是几,我们也可以设定10个神经元,分别代表0到9,然后输出这个那个数字更加有可能。
从上面看,设计输入层和输出层还是比较轻松的,但是设计隐藏层是比较难的。后面再讨论。

二.训练神经网络

这里暂时默认训练神金网络的损失函数为二次损失函数:
这里写图片描述
右边的为L-2范数,当做欧氏距离理解就行。我们的目标就是找到合适的w(权值)和偏置(b)使得这个损失函数最小。意味着网络输出的值会越来越接近真实值。
训练神经网络的方法为随机梯度下降法:
不知道的请参照机器学习笔记三:梯度下降
写成梯度下降的形式为:
这里写图片描述
也就是说,通过不停的迭代,找到最合适的权值和偏置,使得损失最小。这在机器学习里面是很基础的东西了。
最终,我们的任务就成了计算偏导:这里写图片描述这里写图片描述了。
但是这里是神经网络啊,那么多层,那么多参数,传统方式怎么计算偏导?所以对于偏导的计算就是反向传播的任务了。
下节,我们就开始反向传播的整理了.

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

深度学习笔记二:多层感知机(MLP)与神经网络结构 的相关文章

  • chroot命令

    转载 理解 chroot 什么是 chroot chroot 即 change root directory 更改 root 目录 在 linux 系统中 系统默认的目录结构都是以 即是以根 root 开始的 而在使用 chroot 之后
  • 感知机对偶算法

    知识源于 统计学习方法 第二版 李航 感知机 perception 一种二分类的线性分类模型 输入为实例的特征向量 输出为实例的类别 二分类类别为 1 1二值 用算法2 2 感知机学习算法的对偶形式 代码实现例2 2 一 实验目的 用算法2
  • 1061 判断题

    判断题的评判很简单 本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分 输入格式 输入在第一行给出两个不超过 100 的正整数 N 和 M 分别是学生人数和判断题数量 第二行给出 M 个不超过 5 的正整数 是每道题的满分值 第
  • POJ-3253 Fence Repair

    农夫约翰想修理牧场周围的一小段围栏 他测量围栏并认定他需要 1 20000 厚木板 每一个都具有一些整数长度大号我 1 大号我 50000 单元 然后 他购买一块长板足够长 以便看到N块板 即 其长度是长度L i的总和 FJ忽略了 切口 锯
  • VPP代码阅读中文注解--dlist.h

    双向链表算法 本双向链表的所有元素存储在一个pool中 根据pool中内存块的序号进行索引 typedef struct u32 next u32 prev u32 value dlist elt t 本双向链表中每一个元素的结构 valu
  • Linux基础命令使用(4)

    which命令 which 命令的作用是 在 PATH 变量指定的路径中搜索可执行文件的所在位置 它一般用来确认系统中是否安装了指定的软件 which 可执行文件名称 确认是否安装了 gcc which gcc whereis命令 wher
  • 移动基站

    中国移动的基站采用小区制 覆盖范围几KM 而联通采用大区制 可以覆盖几十KM 辐射的频率大小和能量决定覆盖范围 也从另一角度来看 由能量守恒的角度来分析 手机辐射大的其基站辐射小 GSM 反之手机辐射小的其基站辐射大 CDMA 一般分为以下

随机推荐

  • Liferay中的Portlet事件通信

    Liferay中的Portlet事件通信在有的项目开发中是需要实现的一种机制 下面转自http liferaycms blogspot com 2011 07 inter portlet communication html Inter p
  • Java 5-2、用户模块-7个接口实现

    5 2 用户模块 7个接口实现 web端注册 app端注册 所需参数更少 登录 用户详情 修改密码 用户开关 修改用户信息 一 新增类 AppUserService java 此类需定义和mapper层接口大致相同的方法 仅做返回值取舍 因
  • 编译报错:Module parse failed: Unexpected token (18:41)

    error in node modules yargs lib platform shims esm mjs Module parse failed Unexpected token 18 41 You may need an approp
  • 科研笔记(九)重构智能手机CSI指纹用于室内定位(上)

    重构智能手机CSI指纹用于室内定位 题目 CRISLoc Reconstructable CSI Fingerprinting for Indoor Smartphone Localization 论文作者 Zhihui Gao Yunfa
  • Google Chrome访问出现 NET::ERR_CERT_INVALID

    前言 搭建一个nginx网站后 访问出现 您的连接不是私密连接 解决Google Chrome浏览器访问一个网页出现 NET ERR CERT INVALID 这是因为访问没有使用信任的CA证书的网站 chrome提示NET ERR CER
  • 电脑开机就重启循环_如何远程重启服务器???

    重启远程服务器重启的方法如下 方法一 使用windows自带的shutdown命令 远程重启服务器 当远程桌面连接服务无法顺利使用后 首先要确定的是服务器是否真的死机 通过ping目标服务器IP看是否畅通或者访问该服务器上的相关网络服务看是
  • 基于zlib实现的zip文件解压缩,支持目录解压缩,使用c语言实现

    目前用到了解压缩目录的功能 使用zlib来实现 但是找遍了网上的例子很少涉及到使用c语言编写并且完成多目录解压缩的例子 于是自己查看源码的minizip例子 修改了一下供大家参考 zlib官网下载 https www zlib net 当前
  • 掌优电子提供了私有化的刷脸支付部署

    现在刷脸支付是比较受热宠的一个加盟招商项目 不仅仅是刷脸支付带给商家便利 带给消费者不一样的智慧体验 这更是科技进步 互联网发展的一项实力证明 刷脸支付是继移动支付后推出的一种基于人脸AI识别技术 不仅仅让消费者在付款买单的时候摆脱了对手机
  • Spring Cloud中,Eureka常见问题总结

    Spring Cloud中 Eureka常见问题总结 指定Eureka的Environment 1 eureka environment 指定环境 参考文档 https github com Netflix eureka wiki Conf
  • 寻找数组的中心索引

    给你一个整数数组 nums 请计算数组的 中心下标 数组 中心下标 是数组的一个下标 其左侧所有元素相加的和等于右侧所有元素相加的和 如果中心下标位于数组最左端 那么左侧数之和视为 0 因为在下标的左侧不存在元素 这一点对于中心下标位于数组
  • mmdetection W&B 用wandb权重和偏差以进行记录

    如题 共需要修改四个文件 1 mmcv runner hooks logger init py from pavi import PaviLoggerHook from tensorboard import TensorboardLogge
  • 【Kubernetes运维篇】RBAC之准入控制器详解

    文章目录 一 ResourceQuota准入控制器 1 ResourceQuota是什么 2 限制CPU 内存 Pod数量 Deployment数量 3 限制存储空间大小 二 LimitRanger准入控制器 1 LimitRanger是什
  • L2-017 人以群分 (25 分)(c语言实现)

    该题目如下 如题所示 其中会先给数据的个数 所以先进行数据的录入 利用数组来存储数据中的活跃度 同时利用一个n来记录数组中元素的个数 数据录入过程 int n1 n2 n3 int n 0 scanf d n int arr 100000
  • python自动化:列表的处理

    用到的第三方库 用于判断是否可迭代的库 from collections import Iterable def getCount list0 value 功能 统计元素出现的次数 仅支持字符串或数组统计 param list0 可迭代数据
  • angular:css row-gap作用

    问题 如题 解决 row gap可以使用于网格布局 也可以使用于flex布局 调整行间距
  • python 读写csv文件(创建,追加,覆盖)

    总述 这篇博客讲述python怎样创建 读写 追加csv文件 创建 利用csv包中的writer函数 如果文件不存在 会自动创建 需要注意的是 文件后缀一定要是 csv 这样才会创建csv文件 这里创建好文件 将csv文件的头信息写进了文件
  • Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by serv

    node 使用mysqljs链接Mysql数据库时报以下错误 原因是mysql8 0更改了密码默认的认证插件为Caching sha2 password 原来是mysql native password 更改密码为mysql native
  • 互联网摸鱼日报(2023-04-30)

    互联网摸鱼日报 2023 04 30 InfoQ 热门话题 被ChatGPT带火的大模型 如何实际在各行业落地 Service Mesh的未来在于网络 百度 Prometheus 大规模业务监控实战 软件技术栈商品化 应用优先的云服务如何改
  • 【Selenium】获取属性

    文章目录 1 获取窗体属性 1 1 获取网页标题 1 2 获取网址 1 3 获取浏览器名称 1 4 获取网页源码 2 获取元素属性 2 1 获取元素的文本内容 2 2 获取元素属性 2 3 获取其他属性 1 获取窗体属性 1 1 获取网页标
  • 深度学习笔记二:多层感知机(MLP)与神经网络结构

    为了尽量能形成系统的体系 作为最基本的入门的知识 请参考一下之前的两篇博客 神经网络 一 概念 神经网络 二 感知机 上面的两篇博客让你形成对于神经网络最感性的理解 有些看不懂的直接忽略就行 最基本的符号的记法应该要会 后面会用到一这两篇博