神经网络的基础:从感知机到复杂网络的进化

2024-05-09 04:20

本文主要是介绍神经网络的基础:从感知机到复杂网络的进化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

      • 一、神经网络的例子
      • 二、理解神经信号的传递
        • 2.1 感知机的结构和功能
        • 2.2 优化函数
        • 2.3 明确表示偏置
      • 三、理解感知机和激活函数的作用
        • 3.1 基础感知机模型
        • 3.2 激活函数的引入

一、神经网络的例子

理解感知机

在探索神经网络之前,我们首先回顾了感知机的基本概念。感知机是一种二分类的线性分类模型,它的基本功能是将输入的特征向量转化为一个预测结果。虽然感知机在理论上能够表示复杂的函数,但它有一个显著的局限性——权重的设置仍需人工完成。这不仅耗时耗力,而且限制了模型处理更复杂场景的能力。

神经网络的兴起

为了克服感知机的这些限制,神经网络的概念应运而生。神经网络的核心优势在于其能够自动地从数据中学习和调整权重参数,这一点对于应对现实世界中的复杂和动态问题至关重要。

结构上的细节

神经网络的结构比感知机复杂得多,通常包含三个主要的层次:输入层、隐藏层(或多个隐藏层,也称为中间层)、输出层。隐藏层的引入特别关键,因为它们允许网络捕捉数据中的复杂模式和关系,这是单层感知机所不能做到的。

  • 输入层 负责接收形式各样的原始数据输入。
  • 隐藏层 处理输入数据,每一层通过不同的权重和激活函数进一步提取特征。
  • 输出层 根据从隐藏层传递来的信息生成最终结果。

在这里插入图片描述

网络的深度和复杂性

神经网络可以有多个隐藏层,这使得它们可以构建为深度网络。上图描述的是一个具有一层隐藏层的简单网络模型,通常被称为“2层网络”(实际有权重的层数为两层)。值得注意的是,有些文献可能将其描述为“3层网络”,因为从输入层到输出层共有三层结构,但在实际应用中,我们通常按有权重处理的层数来界定网络的深度。

信号如何传递

在神经网络中,信息的传递和处理方式与感知机相似,但更为复杂和高效。每个神经元接收来自前一层的加权输入,通过激活函数转换这些输入,然后将输出传递到下一层。这种层层传递和非线性的激活引入了可以捕捉更复杂关系的能力。

二、理解神经信号的传递

2.1 感知机的结构和功能

在深入神经网络之前,了解感知机的工作原理是至关重要的。

在这里插入图片描述

感知机接收多个输入,通过各自的权重调整这些输入的重要性,再加上一个偏置项,以决定输出。考虑一个基本的感知机,它接收两个输入 x 1 x_1 x1 x 2 x_2 x2,并产生一个输出 y y y。其数学模型可以表示为以下条件函数:
y = { 0 if  ( b + w 1 x 1 + w 2 x 2 ≤ 0 ) 1 if  ( b + w 1 x 1 + w 2 x 2 > 0 ) y = \begin{cases} 0 & \text{if } (b + w_1 x_1 + w_2 x_2 \leq 0) \\ 1 & \text{if } (b + w_1 x_1 + w_2 x_2 > 0) \end{cases} y={01if (b+w1x1+w2x20)if (b+w1x1+w2x2>0)
其中 b b b是偏置, w 1 w_1 w1 w 2 w_2 w2是对应于输入 x 1 x_1 x1 x 2 x_2 x2的权重。偏置 b b b控制了神经元激活的阈值,而权重确定了各输入信号的影响力。

2.2 优化函数

为了简化上述条件表达式,我们引入一个函数 h ( x ) h(x) h(x),它将输入信号的加权和转换为输出。这个函数定义如下:
h ( x ) = { 0 if  ( x ≤ 0 ) 1 if  ( x > 0 ) h(x) = \begin{cases} 0 & \text{if } (x \leq 0) \\ 1 & \text{if } (x > 0) \end{cases} h(x)={01if (x0)if (x>0)
利用函数 h ( x ) h(x) h(x),可以重新写出感知机的输出 y y y,如下所示:
y = h ( b + w 1 x 1 + w 2 x 2 ) y = h(b + w_1 x_1 + w_2 x_2) y=h(b+w1x1+w2x2)
这种表示方式不仅简化了数学表达,而且也提供了一个清晰的视角来看如何通过修改权重和偏置来优化感知机的性能。

2.3 明确表示偏置

在某些情况下,为了更清楚地表示出偏置 b b b,可以将其作为一个单独的输入信号,与一个恒定输入1相乘。这样,偏置就成为了模型中的一个独立变量,如图示:

在这里插入图片描述

这个表示方法强调了偏置在调整神经网络整体活性中的独立角色。

三、理解感知机和激活函数的作用

3.1 基础感知机模型

在基本的感知机模型中,我们考虑两个输入 x 1 x_1 x1 x 2 x_2 x2,它们通过对应的权重 w 1 w_1 w1 w 2 w_2 w2与输入相乘,并加上一个偏置 b b b,最后通过一个激活函数 h ( x ) h(x) h(x)来决定输出 y y y。这个过程可以用以下两个公式表示:
a = b + w 1 x 1 + w 2 x 2 (1) a = b + w_1 x_1 + w_2 x_2 \tag{1} a=b+w1x1+w2x2(1)

y = h ( a ) (2) y = h(a) \tag{2} y=h(a)(2)

在上述方程中, a a a是加权输入和偏置的总和,这个值被称为“激活”,而 y y y是激活函数 h ( a ) h(a) h(a)的输出,它基于 a a a的值来决定最终的输出。

在这里插入图片描述

3.2 激活函数的引入

激活函数 h ( x ) h(x) h(x)的引入是神经网络设计中的一项革命性创新。它允许模型引入非线性因素,这是处理复杂问题时不可或缺的。在最简单的形式中,激活函数可以是一个阶跃函数,这种函数在输入超过某个阈值时输出1,否则输出0。具体的表达式如下:
h ( x ) = { 0 if  x ≤ 0 1 if  x > 0 h(x) = \begin{cases} 0 & \text{if } x \leq 0 \\ 1 & \text{if } x > 0 \end{cases} h(x)={01if x0if x>0
感知机与神经网络的关系

感知机模型可以视为神经网络的一个单一层版本。在这个模型中,每个输入都是直接与输出相关联,没有中间或隐藏层。然而,在现代的多层神经网络中,可以有多个这样的感知机层,每层可能使用不同类型的激活函数,例如Sigmoid或ReLU,这些都是平滑且连续的函数,能处理比简单阶跃函数更复杂的情况。

图示解析

以下是激活函数在感知机中的示意图, 左图是一般的神经元的图,右图是在神经元内部明确显示激活函数的计算过程的图(a 表示输入信号的总和,h()表示激活函数,y表示输出)

在这里插入图片描述

图中明确显示了激活函数的计算过程。信号的加权总和在节点 a a a中计算,并通过激活函数转换成输出 y y y。在这种表示中, a a a y y y都是神经网络中的节点,实际上与传统意义上的“神经元”含义相同。

这篇关于神经网络的基础:从感知机到复杂网络的进化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/972375

相关文章

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

poj 3181 网络流,建图。

题意: 农夫约翰为他的牛准备了F种食物和D种饮料。 每头牛都有各自喜欢的食物和饮料,而每种食物和饮料都只能分配给一头牛。 问最多能有多少头牛可以同时得到喜欢的食物和饮料。 解析: 由于要同时得到喜欢的食物和饮料,所以网络流建图的时候要把牛拆点了。 如下建图: s -> 食物 -> 牛1 -> 牛2 -> 饮料 -> t 所以分配一下点: s  =  0, 牛1= 1~

poj 3068 有流量限制的最小费用网络流

题意: m条有向边连接了n个仓库,每条边都有一定费用。 将两种危险品从0运到n-1,除了起点和终点外,危险品不能放在一起,也不能走相同的路径。 求最小的费用是多少。 解析: 抽象出一个源点s一个汇点t,源点与0相连,费用为0,容量为2。 汇点与n - 1相连,费用为0,容量为2。 每条边之间也相连,费用为每条边的费用,容量为1。 建图完毕之后,求一条流量为2的最小费用流就行了

poj 2112 网络流+二分

题意: k台挤奶机,c头牛,每台挤奶机可以挤m头牛。 现在给出每只牛到挤奶机的距离矩阵,求最小化牛的最大路程。 解析: 最大值最小化,最小值最大化,用二分来做。 先求出两点之间的最短距离。 然后二分匹配牛到挤奶机的最大路程,匹配中的判断是在这个最大路程下,是否牛的数量达到c只。 如何求牛的数量呢,用网络流来做。 从源点到牛引一条容量为1的边,然后挤奶机到汇点引一条容量为m的边

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念

AI基础 L9 Local Search II 局部搜索

Local Beam search 对于当前的所有k个状态,生成它们的所有可能后继状态。 检查生成的后继状态中是否有任何状态是解决方案。 如果所有后继状态都不是解决方案,则从所有后继状态中选择k个最佳状态。 当达到预设的迭代次数或满足某个终止条件时,算法停止。 — Choose k successors randomly, biased towards good ones — Close

音视频入门基础:WAV专题(10)——FFmpeg源码中计算WAV音频文件每个packet的pts、dts的实现

一、引言 从文章《音视频入门基础:WAV专题(6)——通过FFprobe显示WAV音频文件每个数据包的信息》中我们可以知道,通过FFprobe命令可以打印WAV音频文件每个packet(也称为数据包或多媒体包)的信息,这些信息包含该packet的pts、dts: 打印出来的“pts”实际是AVPacket结构体中的成员变量pts,是以AVStream->time_base为单位的显