百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT技术 > 正文

人工智能深度学习系统的基石——神经网络简介

wptr33 2025-02-28 17:40 15 浏览

神经网络简介

神经网络是深度学习系统的基石。为了在深度学习方面取得成功,我们需要从回顾神经网络的基础知识开始,包括架构神经网络算法等等

什么是神经网络?

神经网络技术起源于上世纪五、六十年代,当时叫感知机(perceptron),拥有输入层、输出层和一个隐含层

许多涉及智能、模式识别和物体检测的任务都极难自动化,但动物和幼儿似乎可以轻松自然地完成。例如,小孩子如何学会区分校车公交车之间的区别?我们自己的大脑是如何在不知不觉中每天下意识地执行复杂的识别任务的?我们是如何一眼就能区分猫与狗的?

我们每个人都包含一个现实生活中的生物神经网络,它与我们的神经系统相连——这个网络由大量相互连接的神经元(神经细胞)组成。

“人工神经网络”是一种试图模仿我们神经系统中的神经连接的计算系统。人工神经网络也被称为“神经网络”“人工神经系统”。通常缩写人工神经网络并将它们称为“ANN”或简称为“NN”

对于一个被视为神经网络的系统,它必须包含一个带标签的图结构,图中的每个节点都执行一些简单的计算。从图论中,我们知道图由一组节点(即顶点)和一组将节点对连接在一起的连接(即边)组成。在下图 中,我们可以看到此类 NN 图的示例。

一个简单的神经网络架构。输入呈现给网络。每个连接通过网络中的两个隐藏层承载一个信号。最后一个函数计算输出类标签。

每个节点执行一个简单的计算。然后,每个连接将信号(即计算的输出)从一个节点传送到另一个节点,用权重标记,指示信号被放大或减弱的程度。一些连接具有放大信号的正权重,表明信号在进行分类时非常重要。其他的具有负权重,降低了信号的强度,从而指定节点的输出在最终分类中不太重要。我们称这样的系统为人工神经网络

人工模型

让我们首先看看一个基本的神经网络,它对输入执行简单的加权求和。值x 1 、x 2和 x 3是我们 NN的输入,通常对应于我们设计矩阵中的单行(即数据点)。常数值 1 是我们的偏差,假定已嵌入到设计矩阵中。我们可以将这些输入视为神经网络的输入特征向量。

一个简单的神经网络,它采用输入x和权重w的加权和。这个加权和然后通过激活函数来确定神经元是否激活。

在实践中,这些输入可以是用于以系统的、预定义的方式量化图像内容的向量(例如,颜色直方图、定向梯度直方图、局部二进制模式等)。在深度学习的背景下,这些输入是图像本身的原始像素强度。

每个x通过一个由w 1 , w 2 , ..., w n组成的权重向量W连接到一个神经元,这意味着对于每个输入x,我们也有一个关联的权重w。

最后,右侧的输出节点取加权和,应用激活函数f(用于确定神经元是否“触发”),并输出一个值。以数学方式表达输出,通常会遇到以下三种形式:

? f ( w 1 x 1 + w 2 x 2 + ... + w n x n )

? f (∑ n i =1 w i x i )

? 或者简单地说,f ( net ),其中net = ∑ n i =1 w i x i

不管输出值如何表达,我们只是对输入进行加权求和,然后应用激活函数f

激活函数

最简单的激活函数是感知器算法使用的“阶跃函数”。

从上面的等式我们可以看出,这是一个非常简单的阈值函数。如果加权和 ∑ n i =1 w i x i > 0,则输出 1,否则输出 0。

沿x轴输入值,沿y轴绘制f ( net )的输出我们可以看到为什么这个激活函数由此得名。当net小于或等于零时,f的输出始终为零。如果net大于零,则f将返回 1。

左上角:阶跃函数。右上角: Sigmoid 激活函数。左中:双曲正切。中右: ReLU 激活(深度神经网络最常用的激活函数)。左下: Leaky ReLU,允许负数的 ReLU 变体。右下: ELU,ReLU 的另一种变体,其性能通常优于 Leaky ReLU。

然而,虽然直观且易于使用,但阶梯函数不可微,这可能会导致在应用梯度下降和训练我们的网络时出现问题。

相反,神经网络更常见的激活函数是 sigmoid 函数它遵循以下等式:

sigmoid 函数是比简单阶跃函数更好的学习选择,因为它:

  1. 处处连续且可微。
  2. 围绕y轴对称。
  3. 渐近地接近其饱和值。

这里的主要优点是 sigmoid 函数的平滑性使得设计学习算法变得更加容易。但是,sigmoid函数有两个大问题

  1. sigmoid 的输出不是以零为中心的。
  2. 饱和神经元基本上会杀死梯度,因为梯度的增量非常小。

直到 1990 年代后期,双曲正切或tanh(具有类似 sigmoid 的形状)也被大量用作激活函数:tanh的方程如下:

f ( z ) = tanh ( z ) = ( e z -e -z ) / ( e z + e -z )

所述的tanh函数零为中心,但是,当神经元变得饱和梯度仍然杀死。

我们现在知道激活函数有比 sigmoid 和tanh函数更好的选择。

f ( x ) = max (0 , x )

ReLU 也被称为“斜坡函数”,因为它们在绘制时的外观。注意函数对于负输入是如何为零的,但对于正值则线性增加。ReLU 函数是不可饱和的,并且在计算上也非常高效。

根据经验,在RELU激活功能趋于超越sigmoid 和tanh在几乎所有的应用功能。ReLU 激活函数比之前的激活函数家族具有更强的生物动机,包括更完整的数学理由。

截至 2015 年,ReLU 是深度学习中最流行的激活函数。然而,当我们的值为零时会出现一个问题——不能采用梯度。

ReLU 的一种变体,称为Leaky ReLU允许在单元不活动时使用小的非零梯度:

我们可以看到该函数确实允许采用负值,这与将函数输出为零的传统 ReLU 不同。

Parametric ReLUs,或简称 PReLUs,建立在 Leaky ReLUs 的基础上,允许参数α在一个激活的基础上学习,这意味着网络中的每个节点都可以学习与其他节点分开的不同“系数”。

最后,我们还有(ELU)激励函数 。

α的值是常数,并在网络架构实例化时设置——这与学习效率α 的PReLU 不同。对于一个典型的值αα = 1 ELU 通常比 ReLU 获得更高的分类准确率。

具有 3 个输入节点、具有 2 个节点的隐藏层、具有 3 个节点的第二个隐藏层以及具有 2 个节点的最终输出层的前馈神经网络示例。

使用哪个激活函数?

鉴于最近深度学习的普及,激活函数出现了相关的爆炸式增长。由于激活函数的选择数量众多,现代(ReLU、Leaky ReLU、ELU 等)和“经典”(step、sigmoid、tanh等),它可能看起来令人生畏,如何来选择合适的激活函数。

然而,在几乎所有情况下,建议从 ReLU 开始以获得基线准确度。从那里可以尝试将标准 ReLU 换成 Leaky ReLU 变体。

前馈网络架构

虽然有许多神经网络的前馈架构,最常见的结构是Feedforward网络

在这种类型的架构中,节点之间的连接只允许从第i层的节点到第i +1层的节点。不允许向后或层间接连接。当前馈网络包括反馈连接反馈到输入的输出连接)时,它们被称为循环神经网络

我们专注于前馈神经网络,因为它们是应用于计算机视觉的现代深度学习的基石。卷积神经网络只是前馈神经网络的一个特例。

为了描述一个前馈网络,我们通常使用一个整数序列来快速简洁地表示每一层的节点数。例如,上图中的网络是一个3-2-3-2前馈网络:

第 0 层包含 3 个输入,即我们的x i 值。这些可能是图像的原始像素强度或从图像中提取的特征向量。

第 1 层和第 2分别是包含 2 个和 3 个节点的隐藏层

第 3 层输出层或可见层——在那里我们可以从网络中获得整体输出分类。输出层通常具有与类标签一样多的节点;每个潜在输出一个节点。例如,如果我们要构建一个神经网络来对手写数字进行分类,我们的输出层将包含 10 个节点,每个节点代表0-9

神经网络有什么用?

当然,如果使用适当的架构,神经网络可用于监督、无监督和半监督学习任务。神经网络的常见应用包括分类、回归、聚类、矢量量化、模式关联和函数逼近等等

事实上,对于机器学习的几乎每个方面,神经网络都以某种形式得到应用。

1、无人驾驶汽车

无人驾驶使用到了很多人工智能方面的技术,其中一个计算机视觉便是使用CNN卷积神经网络让无人驾驶能够看到路面路况等

2、人脸识别

人脸识别的应用就比较广泛了,手机人脸解锁,人脸付款,人脸打卡等

3、机器翻译

随着人工智能学习能力的不断提升,机器翻译的准确性得到了大幅提高

4、声纹识别

生物特征识别技术包括很多种,除了人脸识别,目前用得比较多的还有声纹识别。声纹识别是一种生物鉴权技术,也称为说话人识别,包括说话人辨认和说话人确认。

声纹识别的工作过程为,系统采集说话人的声纹信息并将其录入 数据库 ,当说话人再次说话时,系统会采集这段声纹信息并自动与数据库中已有的声纹信息做对比,从而识别出说话人的身份。声纹解锁APP,控制智能家居等等

5、AI智能机器人

机器人的发展经历了漫长的发展,随着人工智能技术的发展,给机器人加上了智能的翅膀

6、智能家居

智能音箱,智能冰箱,洗衣机,空调,电视等等,随着人工智能技术的发展,现在的家庭家居貌似没有点人工智能的点缀,便不好意思立足家居行业

7、推荐系统

大量的数据喂给人工智能,给人带来了更多的便利推荐,个性化推荐系统广泛存在于各类网站和App中,本质上,它会根据用户的浏览信息、用户基本信息和对物品或内容的偏好程度等多因素进行考量,依托推荐引擎算法进行指标分类,将与用户目标因素一致的信息内容进行聚类,经过协同过滤算法,实现精确的个性化推荐。

8、图像搜索

大量浏览器中的相似图片搜索,该技术的应用与发展,不仅是为了满足当下用户利用图像匹配搜索以顺利查找到相同或相似目标物的需求,更是为了通过分析用户的需求与行为,如搜索同款、相似物比对等

9、大健康

未来医疗,大健康行业会越来越多地走入人类的生活,未来随着智能AI的加入,相信人类会提前预测自己的疾病,给人类带来更加美好的明天。

以上等等都会使用到人工智能的神经网络技术,就像人类一样,未来的机器会越来越多的有自己的神经网络,也会越来越聪明。

相关推荐

MySQL进阶五之自动读写分离mysql-proxy

自动读写分离目前,大量现网用户的业务场景中存在读多写少、业务负载无法预测等情况,在有大量读请求的应用场景下,单个实例可能无法承受读取压力,甚至会对业务产生影响。为了实现读取能力的弹性扩展,分担数据库压...

Postgres vs MySQL_vs2022连接mysql数据库

...

3分钟短文 | Laravel SQL筛选两个日期之间的记录,怎么写?

引言今天说一个细分的需求,在模型中,或者使用laravel提供的EloquentORM功能,构造查询语句时,返回位于两个指定的日期之间的条目。应该怎么写?本文通过几个例子,为大家梳理一下。学习时...

一文由浅入深带你完全掌握MySQL的锁机制原理与应用

本文将跟大家聊聊InnoDB的锁。本文比较长,包括一条SQL是如何加锁的,一些加锁规则、如何分析和解决死锁问题等内容,建议耐心读完,肯定对大家有帮助的。为什么需要加锁呢?...

验证Mysql中联合索引的最左匹配原则

后端面试中一定是必问mysql的,在以往的面试中好几个面试官都反馈我Mysql基础不行,今天来着重复习一下自己的弱点知识。在Mysql调优中索引优化又是非常重要的方法,不管公司的大小只要后端项目中用到...

MySQL索引解析(联合索引/最左前缀/覆盖索引/索引下推)

目录1.索引基础...

你会看 MySQL 的执行计划(EXPLAIN)吗?

SQL执行太慢怎么办?我们通常会使用EXPLAIN命令来查看SQL的执行计划,然后根据执行计划找出问题所在并进行优化。用法简介...

MySQL 从入门到精通(四)之索引结构

索引概述索引(index),是帮助MySQL高效获取数据的数据结构(有序),在数据之外,数据库系统还维护者满足特定查询算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构...

mysql总结——面试中最常问到的知识点

mysql作为开源数据库中的榜一大哥,一直是面试官们考察的重中之重。今天,我们来总结一下mysql的知识点,供大家复习参照,看完这些知识点,再加上一些边角细节,基本上能够应付大多mysql相关面试了(...

mysql总结——面试中最常问到的知识点(2)

首先我们回顾一下上篇内容,主要复习了索引,事务,锁,以及SQL优化的工具。本篇文章接着写后面的内容。性能优化索引优化,SQL中索引的相关优化主要有以下几个方面:最好是全匹配。如果是联合索引的话,遵循最...

MySQL基础全知全解!超详细无废话!轻松上手~

本期内容提醒:全篇2300+字,篇幅较长,可搭配饭菜一同“食”用,全篇无废话(除了这句),干货满满,可收藏供后期反复观看。注:MySQL中语法不区分大小写,本篇中...

深入剖析 MySQL 中的锁机制原理_mysql 锁详解

在互联网软件开发领域,MySQL作为一款广泛应用的关系型数据库管理系统,其锁机制在保障数据一致性和实现并发控制方面扮演着举足轻重的角色。对于互联网软件开发人员而言,深入理解MySQL的锁机制原理...

Java 与 MySQL 性能优化:MySQL分区表设计与性能优化全解析

引言在数据库管理领域,随着数据量的不断增长,如何高效地管理和操作数据成为了一个关键问题。MySQL分区表作为一种有效的数据管理技术,能够将大型表划分为多个更小、更易管理的分区,从而提升数据库的性能和可...

MySQL基础篇:DQL数据查询操作_mysql 查

一、基础查询DQL基础查询语法SELECT字段列表FROM表名列表WHERE条件列表GROUPBY分组字段列表HAVING分组后条件列表ORDERBY排序字段列表LIMIT...

MySql:索引的基本使用_mysql索引的使用和原理

一、索引基础概念1.什么是索引?索引是数据库表的特殊数据结构(通常是B+树),用于...