人工神经网络简介

  1. 人工神经网络的概念

人工神经网络(Artificial Neural Network,ANN)简称神经网络(Neural Network)或类神经网络,是一种模仿生物神经网络的结构和功能的数学模型,用于对函数进行估计或近似。
和其他机器学习一样,神经网络已被用于解决各种问题,例如机器视觉和语音识别,这些问题用传统的编程都是难以解决的。

  1. 神经元的概念

在生物神经网络中,每个神经元与其他神经元相连,当它 “兴奋” 时,就会向相连的神经元发送化学物质,从而改变这些神经元内的电位;如果某神经元的电位超过了 “阈值”, 那么它就会被激活,即 “兴奋” 起来,并向其他神经元发送化学物质。
1943年,McCulloch 和 Pitts 将上述情形抽象为上图所示的简单模型,这就是一直沿用至今的 M-P 神经元模型。把许多这样的神经元按一定的层次结构连接起来,就得到了神经网络。

一个简单的神经元模型:

人工神经网络简介

其中,

  1. a1、a2 … an 为各个输入的分量
  2. w1、w2 … wn为各个分量对应的权重
  3. b 为偏置
  4. f 为激活函数,常见的激活函数有 tanh、sigmoid、relu
  5. t 为神经元的输出

使用数学公司拟表示:

人工神经网络简介

由此可见,一个神经元的作用为就是: 计算输入向量和权重向量的内积,经过一个非线性传递函数得到一个标量。

  1. 单层神经网络

最基本的神经元网络形式,由有限个神经元构成,所有神经元的输入向量都是同一个向量,由于每个神经元都会产生一个标量结果,所以单层神经元输出的都是一个向量,向量的维数等于神经元的个数。

单层神经网络示意图:

人工神经网络简介
  1. 感知机

感知机由两层神经网络组成,输入层接收外界输入信号后传递给输出层(输出 +1 正例,-1 反例),输出层是 M-P 神经元。
感知机能把一个 n 维向量空间用一个超平面分割成两部分,给定一个输入向量,超平面可以判断出这个向量位于超平面的哪一边,得到输入时正类或者是反类,对应到 2 维空间就是一条直线把一个平面分为两个部分。

  1. 多层神经网络

多层神经网络就是由单层神经网络进行叠加之后得到的,所以就形成了层的概念,常见的多层神经网络有如下结构:
1)输入层(Input layer),众多神经元(Neuron)接受大量非线形输入消息。输入的消息称为输入向量。
2)输出层(Output layer),消息在神经元链接中传输、分析、权衡,形成输出结果。输出的消息称为输出向量。
3)隐藏层(Hidden layer),简称 “隐层”,是输入层和输出层之间众多神经元和链接组成的各个层面。隐层可以有一层或多层。隐层的节点(神经元)数目不定,但数目越多神经网络的非线性越显著,从而神经网络的强健性(robustness)更显著。
4)全连接层,当前一层和前一层每个神经元相互链接,所谓的全连接层就是在前一层的基础上进行一次 Y=Wx+b 的变化(不考虑激活函数)。

  1. 激活函数

不管是单层还是多层神经网络,都只能线性地划分数据,此时,我们如果在感知机的基础上加上非线性激活函数,输出的结果就不再一条直线上了。
激活函数可以增加模型的非线性分割能力。

常见的激活函数有:

1)Sigmoid:

人工神经网络简介

2)tanh:

人工神经网络简介

3)ReLu:

人工神经网络简介

4)Leaky ReLu:

人工神经网络简介

5)Maxout:

人工神经网络简介

6)ELU:

人工神经网络简介

注:

  • sigmoid 只会输出正数,以及靠近的输出变化率最大
  • tanh 和 sigmoid不同的是,tanh 输出可以是负数
  • Relu 是输入只能大于0,如果你输入含有负数,Relu 就不适合,如果你的输入是图片格式,Relu就挺常用的,因为图片的像素值作为输入时取值为[0,255]。

激活函数的作用除了前面说的增加模型的非线性分割能力外,还有:提高模型鲁棒性、缓解梯度消失问题、加速模型收敛等。

Original: https://blog.csdn.net/m0_56501706/article/details/123013389
Author: Michael.py
Title: 人工神经网络简介

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/719431/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球