神经网络结构-神经元neuron

author author     2023-03-15     121

关键词:

参考技术A

在这篇和接下来的几篇文章中,我们将用最通俗的语言介绍机器学习中的神经网络概念和算法思路,尽可能让每个普通人都能听懂。

神经网络文章索引

就是用数学算法和计算机,参照动物(包括人类)大脑的神经结构,建立的模拟系统,科学家们希望以这样的方式不断进化扩展,能够模拟人类大脑的行为和能力。

简单说NN就是电子神经大脑。

人类大脑主要有三个关键要素:数以百亿的神经元,更加庞大的互相交错的神经元之间的连接,以及这些神经元和连接是如何运作的机制。

人类大脑的神经元是我们思维的基础,我们之所以能够看听读写,进行各种思考都是大脑里800多亿神经元共同作用的结果。

粗糙的说,神经元有两种状态:激活(active),或未激活(inactive)。就像灯泡,开灯发光,还是关灯。

我们头脑里的每个念头,本质上都是不同组合的神经元被点亮。

比如我们脑海里浮现出“猫”这个概念的时候,可能只是第187、2933、1223、90、22323...3912等几千万个神经元被点亮。就像我们看到电视屏幕上出现一个“猫”字的画面,但本质上是电视屏幕数百万个像素被不同点亮而已。

是谁在不断点亮我们大脑中数以百亿的神经元?

当我们还未出生时候,当细胞还在分裂的时候,我们的神经元才出现的时候,它就启动了。

每个神经元不仅自己忽明忽暗的变化着,而且能够通过通过连接向其他数以千计的神经元传递信号,也能接受其他神经元传递过来的信号,并且能够根据这些传入的信号再调整发出新的信号。

这就像一张网,所有神经元互相影响,互为输出输入,互为因果,互相激活,互相抑制。

首先我们必须明确,脑海里闪现的念头只不过是不同神经元组合被激活。

对于某一批神经元被激活的这个状态,我们可能叫做猫,也可能叫cat,也可以叫第87893中激活组合。

不停的有神经元被重新激活,同时也有很多已经激活神经元被抑制,变为未激活状态。这种不停的变化,就是我们的思想。

如果我们用心体验,就会发现,我们脑海里闪现的只是文字概念,而不是曾经被记忆的现实事物。我们脑海里会浮现“绿”字,但并没有绿色,绿色只存在于我们的视觉系统。

所以,人类意识的最小单元是文字字符,或者说是数字符号而已。

目前人工神经网络中的神经元还是极简陋的,原则上只是一个数字,代表了这个神经元被激活的程度,比如我们规定0是未激活,1是全激活,那么0.5就是半激活的中间状态。

这个数字我们就叫做激活值activation。

由于我们使用计算机来模拟神经元,通过外部输入过来的信号计算这个activation激活值,有时候可能计算得到很大的数字比如几百多,那么就会导致各个神经元的激活值有的很大有的很小,而我们还是希望把它缩小到0~1之间更合理。

这时候我们会对直接计算的激活值进行一下处理,把它对应到0~1之间,最常用来做这个处理的函数就是Sigmoid函数:

也就是说:

但Sigmoid是个曲线函数,要乘方还要取倒数,对于数以万亿次的计算来说还是太复杂了,而且由于曲线过渡也太平滑,不利于干净利落的区分激活或不激活两种状态。所以后来大家就更多的改用RELU函数(rectified linear unit)。

RELU是相当的简单粗暴,当a<0的时候,返回0;当a>0的时候,返回a。也就是如果直接算出来的激活值是负的,那么就直接改为0未激活,如果是正的,那么就保留这个值不变。——没错,它并不在0到1之间,而是0到无穷大,所以一般还需要后续处理的,这在后面文章中会提到。

我们上面粗略的谈到神经元、神经网络和意识,意识就是神经网络中不同神经元被点亮的状态。

对于抽象的字符,人类大脑需要经过大量反复的训练,才能把眼睛看到的其他人随手写下的9字抽象成为“9”这个概念的。

我们来逐层分解上面这个图。

首先是视网膜获得数以千万计的颜色信息(我们假设黑白图片只有亮度信息),我们可以理解每个视网膜细胞就是一个神经元,代表着一个表示颜色的数字,视网膜细胞就是一个神经元,它的亮度数字就是激活值。

视网膜层上的神经元捕获了图像,但并不能思考。它们把数据通过神经元连接传递到下一层,下一层也包含了很多的神经元,并且每个神经元会从视网膜层数千万的激活值中寻找到一些小的图案,比如一个小横线、小弧线之类。

每个不同小图案对应了不同的神经元,比如靠近下面的小横线对应这一层的第3个神经元,当我们发现视网膜传来的图像数据中包含靠下的小横线的时候,就点亮它。当然,我们看到的图像是复杂的,包含很多小图案,所以在这一层也就会点亮很多神经元,但肯定不会有前面视网膜层数千万那么多。

从输入层数千万输入数据,变为第1层数千个,这就是神经元逐层抽象的过程。

我们把视网膜层叫 输入层Input layer ,计做第0层,识别小图案的一层算是第1层,因为我们实际上也搞不懂这一层到底是怎么识别的是哪些具体图案,这层很神秘,我们把这样的神秘层叫做 隐藏层Hidden layer 。你可以自己体验一下,我们看到猫的时候直接就识别了,完全不知道自己怎么做到的。

然后,第1层又会继续传递下去到达后面一层神经元,到达第2层。

第2层会用同样的方法,利用从第1层传来的数千神经元激活值(表示各种各样的小图案),从中识别出更高级一些的图形内容,比如小图案拼接成的小圆圈。

第2层我们也搞不懂到底是具体怎么进行的,也是神秘的,仍然是隐藏层。

如果继续下去,可能有很多隐藏层,逐层抽象。直到最后一层,从前一层是别的图形中直接可以识别出我们想要的“9”数字概念。

最后这一层我们叫做输出层,在上面的示意图中是最右面的第3层。

让我们回到神经网层级图。

我们看到每一个神经元的激活值都是前一层所有神经元连接激活的结果(输入层除外):

这个算法很简单,每个神经元都等于前一层所有神经元的加权和(每个前一层神经元激活值a,乘以它的权重w,然后加在一起),再经过激活函数Sigmoid或RELU处理。

注意上图还包含了一个Bias偏置值,用来限定被激活函数处理之前的最小值。

我们进一步考虑整个第n层的情况,那么就可以把它表示成一个由前一层所有神经元权重组成的矩阵,乘以前一层所有神经元激活值组成的向量,然后加上第n层每个神经元对应的偏置值,得到的是一个向量,对应了第n层每个神经元的激活值。

将以上算法整合展开就是:

远未结束

我们再回看这个图:

似乎我们已经完全掌握了每个神经元的算法,但根本没有!

因为这张图只是我们希望的样子,也就是每个权重w和每个偏置b都是恰恰好的时候,最终右侧输出层才能像我我们希望的那样点亮正确代表数字的神经元。

什么样的权重和偏置才是恰恰好的?

先说我们有多少个权重和偏置需要恰恰好呢?对于这个28x28=784个像素的输入值,如果我们如图有2个隐藏层每层16个神经元,那么第1层每个神经元需要784个权重w,共784x16=12544个w,以及16个偏置b;第2层需要16x16+16=256个权重w和16个偏置b;第三层需要10x16=160个权重和10个偏置b;这些加在一起是:
12544+256+160+16+16+10=13002

共有1万3千多个数字要恰恰好才能实现正确的分类!

机器学习的过程其实就是寻找着1万3千多个恰恰好的数字的过程,在下一篇文章中继续介绍。

如果您发现文章错误,请不吝留言指正;
如果您觉得有用,请点喜欢;
如果您觉得很有用,感谢转发~

END

深度学习基础概念理解

原文链接神经网络基础1)神经元(Neuron)——就像形成我们大脑基本元素的神经元一样,神经元形成神经网络的基本结构。想象一下,当我们得到新信息时我们该怎么做。当我们获取信息时,我们一般会处理它,然后生成一个... 查看详情

神经网络基础部件-激活函数详解

...言人工神经元(ArtificialNeuron),简称神经元(Neuron),是构成神经网络的基本单元,其主要是模拟生物神经元的结构和特性,接收一组输入信号并产生输出。生物神经元与人工神经元的对比图如下所示。从机器学习的角度来看,神经... 查看详情

前馈神经网络

参考技术A   前馈神经网络,又称FNN(FeedforwardNeuralNetwork),是一种最简单的神经网络结构,FNN结构是由最基本的神经元(neuron)堆叠而成;在每个神经元会做两步操作:1.与对应权重相乘累加,称为神经元状态。2.累加后的... 查看详情

深度学习入门必须理解这25个概念

...权重,并在模型训练过程中更新这些权重。训练后的神经网络对其输入赋予较高的权重,这是它认为与不那么重要的输入相比更为重要的输入。为零的权重则表示特定的特征是微不足道的。让我们假设输入为 a,并且... 查看详情

浅谈单神经元网络pid控制算法(代码片段)

...会及个人理解,若有错误,欢迎指正!传送门神经网络神经网络的三个主要构成神经元单神经元网络PID控制算法增量式位置式神经元的输入神经元网络的输出u(k)神经元激励函数fff控制律u(k)学习规则无监督Hebb学习规则... 查看详情

深度学习常见概念字典(感知机全连接层激活函数损失函数反向传播过拟合等)

...具体的某某网络而准备的,简单但是非常有必要。1.神经网络(neuralnetworks)的基本组成1.1神经元(neuron)神经元(neuron)是神经网络(neuralnetworks)中最基本的单位。神经网络与神经元的概念均... 查看详情

机器学习——前馈神经网络

一、神经网络基础1.神经元模型神经网络中最基本的单元是神经元模型(neuron)。细胞体分为两部分,前一部分计算总输入值(即输入信号的加权和,或者说累积电平),后一部分先计算总输入值与该神经元阈值的差值,然后通... 查看详情

神经网络学习心得笔记

第5章神经网络学习心得神经元模型神经元(neuron,亦称unit)其实就是一个小型的分类器,其将从其他神经元输入的信息带权重连接进入,然后比较其与阈值的相对大小,并将差异通过激活函数(activati... 查看详情

深度学习常见概念字典(感知机全连接层激活函数损失函数反向传播过拟合等)

...具体的某某网络而准备的,简单但是非常有必要。1.神经网络(neuralnetworks)的基本组成1.1神经元(neuron)神经元(neuron)是神经网络(neuralnetworks)中最基本的单位。神经网络与神经元的概念均... 查看详情

深度学习常见概念字典(感知机全连接层激活函数损失函数反向传播过拟合等)

...具体的某某网络而准备的,简单但是非常有必要。1.神经网络(neuralnetworks)的基本组成1.1神经元(neuron)神经元(neuron)是神经网络(neuralnetworks)中最基本的单位。神经网络与神经元的概念均... 查看详情

开啃《机器学习》(周志华)-第5章神经网络

基本概念:NeuralNetworks:神经网络,由具有适应性的简单单元组成的广泛并行互联的网络,能够模拟生物神经系统对真实物体之间做出的交互反应Neuron:神经元,神经网络的组成单元,收到的输入超过阀值时,会被激活,并传递... 查看详情

吴恩达深度学习网课

目录WEEK1p2什么是神经网络neuron:神经元Relufunction:rectifiedlinearunit修正线性单元p3用神经网络进行监督学习there'sbeenalotofhypeaboutneuralnetworks.炒作得很厉害au 查看详情

神经网络梯度弥散(消散)和梯度爆炸

...个隐层、单神经元网络:假设上面是一个三层hiddenlayer的神经网络,每一层只有一个neuron,我们下面的分析仅仅针对bias,w也是可以类比的。C是损失函数。每一层的输入为z,输出为a,其中有z=w*a+b。上面的等式∂c/∂b1由每一... 查看详情

手把手教你使用java实现一个神经网络(代码片段)

首先看一下运行效果:下面是项目整体目录:0.实现神经网络总览神经网络由层、神经元、权重、激活函数和偏置组成。每层都有一个或者多个神经元,每一个神经元都和神经输入/输出连接,这些连接就是权重。需要重点强调一... 查看详情

深度学习入门必须理解这25个概念

...不得转载。https://blog.csdn.net/pangjiuzala/article/details/72630166神经网络基础1)神经元(Neuron)——就像形成我们大脑基本元素的神经元一样,神经元形成神经网络的基本结构。想象一下,当我们得到新信息时我们该怎么做。当我们获... 查看详情

神经元网络的极端结构

】神经元网络的极端结构【英文标题】:extremearchitectureofneuronnetwork【发布时间】:2019-05-1804:16:42【问题描述】:我有一个关于神经元网络的简单问题。众所周知,最好让网络更深而不是更宽。那么如果我将每个隐藏层都设置为... 查看详情

mlp(multi-layerperceptron)

...[-1,1],微分形式为线性整流函数  分段函数,实际神经网络中更好用。梯度=0(z<0),t梯度=1(z>0)注:分类问题:使用sigmoid函数,labely=0or1,使用tanh函数,labely=-1or1.回归问题:[0,1];[-1,1] 神经网络模型神经网络本... 查看详情

深度学习之神经网络的结构

一、神经网络的结构 二、神经网络的变种  ①convolutionalneuralnetwork(卷积神经网络)---->goodforimagerecognition(擅长图像识别) ②longshort-termmemorynetwork(长短期记忆网络)---->goodforspeechrecognition(擅长语音识别) ③... 查看详情