神经网络(Neural Network)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了神经网络(Neural Network)相关的知识,希望对你有一定的参考价值。

参考技术A (1)结构:许多树突(dendrite)用于输入,一个轴突 (axon)用于输出。

(2)特性:兴奋性和传导性。兴奋性是指当信号量超过某个阈值时,细胞体就会被激活,产生电脉冲。传导性是指电脉冲沿着轴突并通过突触传递到其它神经元。

(3)有两种状态的机器:激活时为“是”,不激活时为“否”。神经细胞的状态取决于从其他神经细胞接收到的信号量,以及突触的性质(抑制或加强)。

(1)神经元——不重要

① 神经元是包含权重和偏置项的 函数 :接收数据后,执行一些计算,然后使用激活函数将数据限制在一个范围内(多数情况下)。

② 单个神经元:线性可分的情况下,本质是一条直线, ,这条直线将数据划分为两类。而线性分类器本身就是一个单层神经网络。

③ 神经网络:非线性可分的情况下,神经网络通过多个隐层的方法来实现非线性的函数。

(2)权重/参数/连接(Weight)——最重要

每一个连接上都有一个权重。一个神经网络的训练算法就是让权重的值调整到最佳,以使得整个网络的预测效果最好。

(3)偏置项(Bias Units)——必须

① 如果没有偏置项,所有的函数都会经过原点。

② 正则化偏置会导致欠拟合:若对偏置正则化,会导致激活变得更加简单,偏差就会上升,学习的能力就会下降。

③ 偏置的大小度量了神经元产生激励(激活)的难易程度。

(1)定义:也称为转换函数,是一种将输入 (input) 转成输出 (output) 的函数。

(2)作用:一般直线拟合的精确度要比曲线差很多,引入激活函数能给神经网络 增加一些非线性 的特性。

(3)性质:

① 非线性:导数不是常数,否则就退化成直线。对于一些画一条直线仍然无法分开的问题,非线性可以把直线变弯,就能包罗万象;

② 可微性:当优化方法是基于梯度的时候,处处可导为后向传播算法提供了核心条件;

③ 输出范围:一般限定在[0,1],使得神经元对一些比较大的输入会比较稳定;

④ 非饱和性:饱和就是指,当输入比较大的时候输出几乎没变化,会导致梯度消失;

⑤ 单调性:导数符号不变,输出不会上蹿下跳,让神经网络训练容易收敛。

(1)线性函数 (linear function)—— purelin()

(2)符号函数 (sign function)—— hardlim() 

① 如果z值高于阈值,则激活设置为1或yes,神经元将被激活。

② 如果z值低于阈值,则激活设置为0或no,神经元不会被激活。

(3)对率函数 (sigmoid function)—— logsig()

① 优点:光滑S型曲线连续可导,函数阈值有上限。

② 缺点:❶ 函数饱和使梯度消失,两端梯度几乎为0,更新困难,做不深;

                ❷ 输出不是0中心,将影响梯度下降的运作,收敛异常慢;

                ❸ 幂运算相对来讲比较耗时

(4)双曲正切函数(hyperbolic tangent function)—— tansig()

① 优点:取值范围0中心化,防止了梯度偏差

② 缺点:梯度消失现象依然存在,但相对于sigmoid函数问题较轻

(5)整流线性单元 ReLU 函数(rectified linear unit)

① 优点:❶ 分段线性函数,它的非线性性很弱,因此网络做得很深;

                ❷ 由于它的线性、非饱和性, 对于随机梯度下降的收敛有巨大的加速作用;

② 缺点:❶ 当x<0,梯度都变成0,参数无法更新,也导致了数据多样化的丢失;

                ❷ 输出不是0中心

(6)渗漏型整流线性单元激活函数 Leaky ReLU 函数

① 优点:❶ 是为解决“ReLU死亡”问题的尝试,在计算导数时允许较小的梯度;

                ❷ 非饱和的公式,不包含指数运算,计算速度快。

② 缺点:❶ 无法避免梯度爆炸问题; (没有体现优于ReLU)

                ❷ 神经网络不学习 α 值。

(7)指数线性单元 ELU (Exponential Linear Units)

① 优点:❶ 能避免“死亡 ReLU” 问题;

                ❷ 能得到负值输出,这能帮助网络向正确的方向推动权重和偏置变化;

                ❸ 在计算梯度时能得到激活,而不是让它们等于 0。

② 缺点:❶ 由于包含指数运算,所以计算时间更长;

                ❷ 无法避免梯度爆炸问题; (没有体现优于ReLU)

                ❸ 神经网络不学习 α 值。

(8)Maxout(对 ReLU 和 Leaky ReLU的一般化归纳)

① 优点:❶ 拥有ReLU的所有优点(线性和不饱和)

                ❷ 没有ReLU的缺点(死亡的ReLU单元)

                ❸ 可以拟合任意凸函数

② 缺点 :参数数量增加了一倍。难训练,容易过拟合

(9)Swish

① 优点:❶ 在负半轴也有一定的不饱和区,参数的利用率更大

                ❷ 无上界有下界、平滑、非单调

                ❸ 在深层模型上的效果优于 ReLU

每个层都包含一定数量的单元(units)。增加层可增加神经网络输出的非线性。

(1)输入层:就是接收原始数据,然后往隐层送

(2)输出层:神经网络的决策输出

(3)隐藏层:神经网络的关键。把前一层的向量变成新的向量,让数据变得线性可分。

(1)结构:仅包含输入层和输出层,直接相连。

(2)作用:仅能表示 线性可分 函数或决策,且一定可以在有限的迭代次数中收敛。

(3)局限:可以建立与门、或门、非门等,但无法建立更为复杂的异或门(XOR),即两个输入相同时输出1,否则输出0。 (“AI winter”)

(1)目的:拟合某个函数      (两层神经网络可以逼近任意连续函数)

(2)结构:包含输入层、隐藏层和输出层 ,由于从输入到输出的过程中不存在与模型自身的反馈连接,因此被称为“前馈”。    (层与层之间全连接)

(3)作用: 非线性 分类、聚类、预测等,通过训练,可以学习到数据中隐含的知识。

(4)局限:计算复杂、计算速度慢、容易陷入局部最优解,通常要将它们与其他网络结合形成新的网络。

(5)前向传播算法(Forward Propagation)

① 方法:从左至右逐级依赖的算法模型,即网络如何根据输入X得到输出Y,最终的输出值和样本值作比较, 计算出误差 。

② 目的:完成了一次正反向传播,就完成了一次神经网络的训练迭代。通过输出层的误差,快速求解对每个ω、b的偏导,利用梯度下降法,使Loss越来越小。

② 局限:为使最终的误差达到最小,要不断修改参数值,但神经网络的每条连接线上都有不同权重参数,修改这些参数变得棘手。

(6)误差反向传播(Back Propagation)

① 原理:梯度下降法求局部极值

② 方法:从后往前,从输出层开始计算 L 对当前层的微分,获得各层的误差信号,此误差信号即作为修正单元权值的依据。计算结束以后,所要的两个参数矩阵的 梯度 就都有了。

③ 局限:如果激活函数是饱和的,带来的缺陷就是系统迭代更新变慢,系统收敛就慢,当然这是可以有办法弥补的,一种方法是使用 交叉熵函数 作为损失函数。

(1)原理:随着网络的层数增加,每一层对于前一层次的抽象表示更深入。在神经网络中,每一层神经元学习到的是前一层神经元值的更抽象的表示。通过抽取更抽象的特征来对事物进行区分,从而获得更好的区分与分类能力。

(2)方法:ReLU函数在训练多层神经网络时,更容易收敛,并且预测性能更好。

(3)优点:① 易于构建,表达能力强,基本单元便可扩展为复杂的非线性函数

                      ② 并行性号,有利于在分布是系统上应用

(4)局限:① 优化算法只能获得局部极值,性能与初始值相关

                      ② 调参理论性缺乏

                      ③ 不可解释,与实际任务关联性模糊

(1)原理:由手工设计卷积核变成自动学习卷积核

(2)卷积(Convolutional layer): 输入与卷积核相乘再累加 (内积、加权叠加)

① 公式:

② 目的:提取输入的不同特征,得到维度很大的 特征图(feature map)

③ 卷积核:需要训练的参数。一般为奇数维,有中心像素点,便于定位卷积核

④ 特点:局部感知、参数变少、权重共享、分层提取

(3)池化(Pooling Layer):用更高层的抽象表达来表示主要特征,又称“降采样”

① 分类: 最大 (出现与否)、平均(保留整体)、随机(避免过拟合)

② 目的:降维,不需要训练参数,得到新的、维度较小的特征

(4)步长(stride):若假设输入大小是n∗n,卷积核的大小是f∗f,步长是s,则最后的feature map的大小为o∗o,其中

(5)填充(zero-padding)

① Full模式:即从卷积核(fileter)和输入刚相交开始做卷积,没有元素的部分做补0操作。

② Valid模式:卷积核和输入完全相交开始做卷积,这种模式不需要补0。

③ Same模式:当卷积核的中心C和输入开始相交时做卷积。没有元素的部分做补0操作。

(7)激活函数:加入非线性特征

(8)全连接层(Fully-connected layer)

如果说卷积层、池化层和激活函数层等是将原始数据映射到隐层特征空间(决定计算速度),全连接层则起到将学到的“分布式特征表示”映射到样本标记空间的作用(决定参数个数)。

参考:

[1]  神经网络(入门最详细)_ruthy的博客-CSDN博客_神经网络算法入门

[2]  神经网络(容易被忽视的基础知识) - Evan的文章 - 知乎

[3]  人工神经网络——王的机器

[4]  如何简单形象又有趣地讲解神经网络是什么? - 舒小曼的回答 - 知乎

[5]  神经网络15分钟入门!足够通俗易懂了吧 - Mr.括号的文章 - 知乎

[6]  神经网络——最易懂最清晰的一篇文章_illikang的博客-CSDN博客_神经网络

[7]  直觉化深度学习教程——什么是前向传播——CSDN

[8]  “反向传播算法”过程及公式推导(超直观好懂的Backpropagation)_aift的专栏-CSDN

[9]  卷积、反卷积、池化、反池化——CSDN

[10]  浙大机器学习课程- bilibili.com

以上是关于神经网络(Neural Network)的主要内容,如果未能解决你的问题,请参考以下文章

神经网络(Neural Network)

Siamese Neural Network (SNN: 孪生神经网络)

Siamese Neural Network (SNN: 孪生神经网络)

机器学习-神经网络(Neural Network)算法

图神经网络GNN(Graph Neural Network)

循环神经网络(Recurrent Neural Network)详解