政安晨:【深度学习神经网络基础】(二)—— 神经元与层

政安晨的个人主页政安晨

欢迎 👍点赞✍评论⭐收藏

收录专栏政安晨的机器学习笔记

希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正!

神经元是深度学习神经网络中的基本单元,模拟了生物神经系统中的神经元。

它接收输入信号,并通过激活函数进行非线性转换,然后将转换后的信号传递给下一层神经元或输出。神经元具有一组可学习的权重,它们用于加权输入信号。

神经网络的层是由多个神经元组成的,这些神经元之间相互连接。

在神经网络中,通常有输入层、隐藏层和输出层。输入层接收外部输入数据,并将其传递给下一层。隐藏层是介于输入层和输出层之间的层,根据不同的网络结构可以有多个隐藏层。输出层则产生最终的预测结果。

神经元与层的组织方式使得神经网络可以进行复杂的非线性函数逼近和模式识别。通过对不同层的神经元的权重进行训练优化,神经网络可以学习到输入数据的复杂特征,并根据这些特征进行预测或分类。深度学习神经网络的好处之一就是能够通过增加网络的深度和神经元的数量来提高模型的表达能力和性能。


神经元

大多数神经网络结构使用某种类型的神经元。存在许多结构不同的神经网络,程序员一直在引入实验性的神经网络结构。即便如此,也不可能涵盖所有的神经网络结构。但是,神经网络实现之间存在一些共性。如果一个算法被称为神经网络,那么它通常将由单独的、相互连接的单元组成,尽管这些单元可能被称为神经元,也可能未被称为神经元。实际上,神经网络处理单元的名称在不同的文献中有所不同,它可以被称为节点、神经元或单元。

下图展示了单个人工神经元的抽象结构。

人工神经元从一个或多个来源接收输入,该来源可以是其他神经元,也可以是计算机程序提供给该网络的数据。

输入通常是浮点数或二元值。通常将真(true)和假(false)表示为1和0,从而将二元值输入编码为浮点数。有时,程序还将二元值输入编码体现为双极性系统,即将真表示为1,假表示为−1。

人工神经元将每个输入乘以权重。然后,将这些乘积相加,并将和传递给激活函数。有些神经网络不使用激活函数。

下面公式总结了神经元的计算输出:

在上面公式中,变量x和代w表神经元的输入和权重。变量i代表权重和输入的数量。输入的数量和权重的数量必须总是相同的。每个权重乘以其各自的输入,然后将这些乘积乘以一个激活函数,该函数由希腊字母φ(phi)表示。这个过程使神经元只有单个输出。

上图展示了只有一个构建块的结构。你可以将许多人工神经元链接在一起,构建人工神经网络。也可以将人工神经元视为构建块,将输入和输出圆圈视为连接块。

下图展示了由3个神经元组成的简单人工神经网络:

简单人工神经网络

上图展示了3个相互连接的神经元。这个图的本质是,上上张图中减去一些输入,重复3次然后连接。它总共有4个输入和1个输出。神经元N1和N2的输出提供给N3,以产生输出O。为计算上图的输出,我们执行3次上面列出的公式。前两次计算N1和N2,第三次使用N1和N2的输出来计算N3。

神经网络通常不会显示到如上图那样的详细程度。为了简化该图,我们可以省略激活函数和中间输出。简化的人工神经网络如下图所示:

简化的人工神经网络

在上图中,你会看到神经网络的两个附加组件。

首先,考虑输入和输出,它们显示为抽象的虚线圆。输入和输出可以是更大的神经网络的一部分。但是,输入和输出通常是特殊类型的神经元,输入神经元从使用该神经网络的计算机程序接收数据,而输出神经元会将结果返回给程序。这种类型的神经元称为输入神经元和输出神经元。

我们将在后面的文章中讨论这些神经元。

上图还展示了神经元的分层排列。

输入神经元是第一层,N1和N2神经元创建了第二层,第三层包含N3,第四层包含O。尽管大多数神经网络将神经元排列成层,但并非总是如此。Stanley(2002)引入了一种神经网络架构,称为“增强拓扑神经进化”(NeuroEvolution of Augmenting Topologies,NEAT)。NEAT神经网络可以具有非常杂乱的非分层架构。

形成一层的神经元具有几个特征。

首先,层中的每个神经元具有相同的激活函数。但是,不同的层可能具有不同的激活函数。

其次,各层完全连接到下一层。换言之,一层中的每个神经元都与上一层中的每个神经元有连接。上图所示网络不是完全连接的,有几层缺少连接,如I1和N2不连接。下图所示神经网络是上图的新版本,它已完全连接,并多了一个神经元N4。

完全连接的神经网络

在上图中,你可以看到一个完全连接的多层神经网络。神经网络总是有输入层和输出层。隐藏层的数量决定了神经网络结构的名称。上图中所示的神经网络是一个两层神经网络。大多数神经网络有0~2个隐藏层。除非你实现了深度学习策略,否则很少有具有两个以上隐藏层的神经网络。你可能还会注意到,箭头始终从输入指向输出,向下或向前。这种类型的神经网络通常称为“前馈神经网络”。在咱们这个系列文章的后面,我们将看到在神经元之间形成反向循环的循环神经网络。

神经元的类型

上面咱们简要介绍了存在不同类型的神经元的思想。现在,我们将解释文中描述的所有神经元类型。

并非每个神经网络都会使用每种类型的神经元。单个神经元也有可能扮演几种不同神经元类型的角色:

输入和输出神经元

几乎每个神经网络都有输入和输出神经元。

输入神经元接收来自程序的神经网络数据。

输出神经元将处理后的数据从神经网络返回给程序。

这些输入和输出神经元将由程序分组为单独的层,分组后的层称为输入和输出层。但是,对于某些神经网络结构,神经元可以同时充当输入和输出。霍普菲尔德神经网络就是这样的一个示例,其中神经元既是输入又是输出,以后咱们会详细介绍。

程序通常将神经网络的输入表示为数组,即向量。向量中包含的元素数量必须等于输入神经元的数量。例如,具有3个输入神经元的神经网络可以接收以下输入向量:

 神经网络通常接收浮点数向量作为其输入。同样,神经网络将输出一个向量,其长度等于输出神经元数量。输出通常是来自单个输出神经元的单个值。为了保持一致,我们将单输出神经元网络的输出表示为单个元素的向量。

请注意,输入神经元没有激活函数。如上面第一张图所示,输入神经元只不过是占位符,简单地对输入进行加权和求和。此外,如果神经网络具有既是输入,又是输出的神经元,那么神经网络的输入和输出向量的大小相同。

隐藏神经元

隐藏神经元具有两个重要特征

首先,隐藏神经元仅接收来自其他神经元的输入,例如输入神经元或其他隐藏神经元。

其次,隐藏神经元仅输出到其他神经元,例如输出神经元或其他隐藏神经元。

隐藏神经元可以帮助神经网络理解输入,并形成输出。但是,它们没有直接连接到输入数据或最终输出。隐藏神经元通常被分组为完全连接的隐藏层。

程序员面临的一个常见问题,就是神经网络中隐藏神经元的数量有多少。由于这个问题的答案很复杂,因此作者的各类文章中多少都有讨论——对隐藏神经元的数量进行相关讨论。在引入深度学习之前,通常人们建议,除了单个隐藏层以外,其他任何东西都是多余的。

研究证明,单层神经网络可以用作通用逼近器(universal approximator)。换言之,只要该神经网络在单层中具有足够的隐藏神经元,它就应该能够学会从任何输入产生(或近似产生)任何输出。

研究者过去忽视其他隐藏层的另一个原因在于,这些层会阻碍神经网络的训练。训练是指确定良好权重的过程。在研究者引入深度学习技术之前,我们根本没有一种有效的方法来训练深度神经网络,即具有大量隐藏层的神经网络。尽管理论上单隐藏层神经网络可以学习任何内容,但深度学习有助于表示数据中更复杂的模式。

偏置神经元

程序员向神经网络添加偏置神经元(bias neurons),以帮助它们学习模式。偏置神经元的功能类似于总是产生值1的输入神经元。由于偏置神经元的输出恒定为1,因此它们没有连接到上一层。值1称为偏置激活,也可以将它设置为1以外的值,但是,1是最常见的偏置激活。并非所有的神经网络都有偏置神经元。

下图展示了带有偏置神经元的单层神经网络。

从上图可以看出除输出层外,每层都包含一个偏置神经元。偏置神经元允许激活函数的输出发生偏移。在以后讨论激活函数时,我们将清楚地看到这种偏移发生的方式。

上下文神经元

上下文神经元用于循环神经网络。

这种类型的神经元允许神经网络保持状态,因此,给定的输入可能并不总是产生完全相同的输出。

这种不一致类似于生物大脑的运作。

请考虑当听到喇叭声时,上下文因素如何影响你的反应。如果你在过马路时听到喇叭声,则可能会感到震惊,停止行走并朝喇叭声传来的方向看。

如果你在电影院观看动作类、冒险类电影时听到喇叭声,你的反应就不会完全一样。

因此,先前的输入为你提供了处理喇叭声输入的上下文。

时间序列是上下文神经元的一种应用

你可能需要训练神经网络来学习输入信号,从而执行语音识别或预测安全价格的趋势。

上下文神经元是神经网络处理时间序列数据的一种方法。

下图展示了上下文神经元如何在神经网络中排列

这个神经网络具有单个输入和输出神经元。

在输入层和输出层之间是两个隐藏神经元和两个上下文神经元。除了两个上下文神经元,该神经网络与本文中先前的神经网络相同。

每个上下文神经元都有一个从0开始的值,并且始终从神经网络的先前使用中接收隐藏1或隐藏2的副本。上图中的两条虚线表示上下文神经元是直接副本,没有其他权重。其他线表明输出由列出的6个权重值之一加权。仍然使用上述公式以相同的方式计算输出。输出神经元的值将是所有4个输入分别乘以它们的权重后的总和,并应用激活函数的结果。

有一种神经网络名为简单循环神经网络(Simple Recurrent Neural Network,SRN),它使用了上下文神经元。若当神经网络(Jordan neural network)和埃尔曼网络(Elman neural nebwork)是两种最常见的简单循环神经网络。上图展示了埃尔曼神经网络。

以后咱们应该也会有机会探讨这两种类型的简单循环神经网络。

其他神经元名称

组成神经网络的各个单元并不总是称为神经元。研究者有时会将其称为节点或单元。在咱们这个基础系列文章的后续内容中,我们将探讨深度学习,它利用了玻尔兹曼机来替代神经元的作用。

总之,

无论神经元的类型如何,神经网络几乎总是由这些神经元之间的加权连接构成的。


咱们这一篇就到这里。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

从零开始为香橙派orangepi zero 3移植主线linux——1.uboot

从零开始为香橙派orangepi zero 3移植主线linux——1.uboot 0.前言一、准备二、制作引导文件1.BL312.SCP firmware (Crust)3.uboot 三、烧录四、运行 0.前言 之前买了块香橙派zero3,CPU是全志H618,四核cortex-A53,烧录了官方的ubuntu系统后就…

nodejs中使用WebScoket的简单示例

前言 WebScoket可以用来实现即时通信,一般用于通信聊天工具或者是需要实时接受数据等功能 在浏览器环境中,WebScoket是一个构造函数,需要new创建连接的实例; 在nodejs环境中,则需要使用ws模块来完成服务的创建。 示例 下面是可以直接使用的代码,不需要修改 node创建服务端…

Avalonia笔记4-Rider如何添加xaml支持

在Linux Rider中,File Type中是有XAML文件的,但是新增xaml文件并不能正确的添加到项目中,而且就算是新增文件,直接命名为“XXX.xaml”,也是没有智能提示的。 在引用Style文件的时候,需要新建一个axaml的文…

STM32H743驱动SSD1309(2)

接前一篇文章:STM32H743驱动SSD1309(1) 二、芯片详解 1. 概览 上一回已提到,SSD1309是一个单片CMOS OLED/PLED驱动芯片可以驱动有机/聚合发光二极管点阵图形显示系统。由128个segments和64个commons组成。该芯片专为共阴极OLED…

机器学习——聚类算法-KMeans聚类

机器学习——聚类算法-KMeans聚类 在机器学习中,聚类是一种无监督学习方法,用于将数据集中的样本划分为若干个簇,使得同一簇内的样本相似度高,不同簇之间的样本相似度低。KMeans聚类是一种常用的聚类算法之一,本文将介…

【设计经验】0Ω电阻在电路中有什么作用

电路设计与调试过程中,我们很多时候要用到0Ω电阻(如下图),那么0Ω电阻到底在这过程中充当了什么样的角色呢? 0R电阻在电路中有什么作用? #创作灵感#:脑海存留的如下几点疑惑需要解开。 1、电路初次设计使用串接电阻为什么是0R电阻; 2、单板调试时为什么有时候会用到0R…

VMware Live Recovery 9.0 发布 - 多云实时恢复

VMware Live Recovery 9.0 - 多云实时恢复 VMware Live Cyber Recovery VMware Live Site Recovery 请访问原文链接:https://sysin.org/blog/vmware-live-recovery/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.or…

Unity学习笔记 9.2D射线

下载源码 UnityPackage 1.Ray2D 让小球向右发射射线: Ray2D ray;void Start() {// Ray2D(起点,终点)ray new Ray2D(this.transform.position, Vector2.right);// Debug.DrawLine(起点,终点,颜色,显示时间)Debug.DrawL…

[实战]Springboot与GB28181摄像头对接。摄像头注册上线(一)

与支持国标摄像头对接 前言:不想看教程?1、准备阶段1.1、我们会学到什么?1.2、创建项目1.3、pom中用到的依赖1.4 打开摄像头的网址(了解配置方式) 2、代码编写2.1、增加项目配置2.2、在config目录下创建SipConfig2.3、在service目录下创建Sip…

如何在Windows 10中打开屏幕键盘?这里有详细步骤

本文解释了在Windows 10中打开或关闭屏幕键盘的不同方法,还解释了如何将屏幕键盘固定到开始菜单。 使用屏幕键盘的快捷键 如果你喜欢快捷方式,你会喜欢这个:按物理键盘上的Win+CTRL+O。这将立即显示屏幕键盘,而无需通过轻松使用。 ​提示:使用运行窗口也可以打开键盘。…

Tuxera for Mac2024软件产品密钥及下载安装教程

Tuxera for Mac在安全性和稳定性方面表现出色,为用户提供了可靠的数据保障和无忧的使用体验。 首先,从安全性角度来看,Tuxera for Mac采用了先进的技术来保护用户的数据。它支持快速全面的数据保护,通过智能缓存技术确保文件传输…

《手把手教你》系列技巧篇(五十七)-java+ selenium自动化测试-下载文件-下篇(详细教程)

1.简介 前边几篇文章讲解完如何上传文件,既然有上传,那么就可能会有下载文件。因此宏哥就接着讲解和分享一下:自动化测试下载文件。可能有的小伙伴或者童鞋们会觉得这不是很简单吗,还用你介绍和讲解啊,不说就是访问到…

图神经网络实战(6)——使用PyTorch构建图神经网络

图神经网络实战(6)——使用PyTorch构建图神经网络 0. 前言1. 传统机器学习与人工智能2. 人工神经网络基础2.1 人工神经网络组成2.2 神经网络的训练 3. 图神经网络4. 使用香草神经网络执行节点分类4.1 数据集构建4.2 模型构建4.3 模型训练 5. 实现香草图神…

聚观早报 | 比亚迪2023年营收;vivo X Fold3系列发布

聚观早报每日整理最值得关注的行业重点事件,帮助大家及时了解最新行业动态,每日读报,就读聚观365资讯简报。 整理丨Cutie 3月28日消息 比亚迪2023年营收 vivo X Fold3系列发布 现代汽车拟投入68万亿韩元 华为P70系列最新渲染图 苹果A1…

Art Gallery Vol.2

Art Gallery Vol.2为您的游戏、VR项目和模拟器提供了一个很好的解决方案,图片库。 一个充满雕塑和框架的现代艺术画廊。它包括11件雕塑、14幅画作。适合收藏展览或画作展示。 所有画作都是独立的纹理,非常适合ArchViz、VR或任何类型的AAA游戏。 下载:​​Unity资源商店链接…

[linux] AttributeError: module ‘transformer_engine‘ has no attribute ‘pytorch‘

[BUG] AttributeError: module transformer_engine has no attribute pytorch Issue #696 NVIDIA/Megatron-LM GitHub 其中这个答案并没有解决我的问题&#xff1a; import flash_attn_2_cuda as flash_attn_cuda Traceback (most recent call last): File "<stdi…

国产数据库中统计信息自动更新机制

数据库中统计信息描述的数据库中表和索引的大小数以及数据分布状况&#xff0c;统计信息的准确性对优化器选择执行计划时具有重要的参考意义。本文简要整理了下传统数据库和国产数据库中统计信息的自动更新机制&#xff0c;以加深了解。 1、数据库统计信息介绍 优化器是数据库…

【系统架构师】-第13章-层次式架构设计

层次式体系结构设计是将系统组成一个层次结构&#xff0c;每一层 为上层服务 &#xff0c;并作为下层客户。 在一些层次系统中&#xff0c;除了一些精心挑选的输出函数外&#xff0c; 内部的层接口只对相邻的层可见 。 连接件通过决定层间如何交互的协议来定义&#xff0c;拓扑…

优化体验课转化流程:提升转化率,实现教育品牌增长

随着在线教育市场的竞争日益激烈&#xff0c;体验课转化流程成为影响教育机构发展的关键环节之一。本文将深入探讨如何优化体验课转化流程&#xff0c;提升转化率&#xff0c;实现教育品牌的可持续增长。 ### 什么是体验课转化流程&#xff1f; 体验课转化流程是指教育机构通…

windows安全中心设置@WindowsDefender@windows安全中心常用开关

文章目录 abstractwindows defender相关服务&#x1f47a; 停用windows Defender临时关闭实时防护使用软件工具关闭defender control(慎用)dismdControl 其他方法使其他杀毒软件注册表修改 保护历史恢复被认为是有病毒的文件添加信任目录,文件,文件类型或进程 abstract window…