神经元模型介绍

一、深度学习的背景

目前,深度学习(Deep Learning,简称DL)在算法领域可谓是大红大紫。深度学习是机器学习领域中的一个新的研究方向,模仿生人类神经网络,学习样本数据的内在规律的一种方法,神经网络属于监督学习的过程,可以处理:回归、分类。

机器学习:数据输入——人工特征提取——分类——输出

深度学习:数据输入——神经网络特征提取和分类——输出

要学习深度学习,那么首先要熟悉神经网络的一些基本概念。当然,这里所说的神经网络不是生物学的神经网络,我们将其称之为人工神经网络(Artificial Neural Networks,简称ANN)。神经网络最早是人工智能领域的一种算法或者说是模型,目前神经网络已经发展成为一类多学科交叉的学科领域,它也随着深度学习取得的进展重新受到重视和推崇。

二、神经元模型(MP模型)

人工神经网络是受到人类大脑结构的启发而创造出来的。如下图所示,在我们的大脑中,有数十亿个称为神经元的细胞,它们互相连接形成成了一个神经网络。

从生物书上,我们可以概括出生物神经网络的假定特点: 

1. 每个神经元都是一个 多输入单输出的信息处理单元;
2. 神经元输入分兴奋性输入抑制性输入两种类型;
3. 神经元具有 空间整合特性阈值特性
4. 神经元输入与输出间有固定的 时滞,主要取决于突触延搁

神经网络算法正是模仿了上面的网络结构。

下面是一个人工神经网络的构造图。每一个圆代表着一个神经元,他们连接起来构成了一个网络。

 人类大脑神经元细胞的树突用于接收来自外部的多个强度不同的刺激,并在神经元细胞体内进行处理,然后将其转化为一个输出结果。在这里,神经元是神经网络的基本单元,我们学过生物的同学都知道,神经元有两种状态:兴奋和抑制。一般情况下,大多数的神经元是处于抑制状态,但是一旦某个神经元收到刺激,导致它的电位超过一个阈值,那么这个神经元就会被激活,处于“兴奋”状态,进而向其他的神经元传播化学物质(其实就是信息),下图为生物学上的神经元结构示意图:

人工神经元也有相似的工作原理。如下图所示。

上面的x是神经元的输入,相当于树突接收的多个外部刺激。w是每个输入对应的权重,代表了每个特征的重要程度,它对应于每个输入特征,影响着每个输入x的刺激强度。假设只有3个特征,那么x就可以用(x1,x2,x3)。b表示阈值[yù zhí],用来影响预测结果。z就是预测结果。

所以有:z = (x1 * w1 + x2 * w2 + x3 * w3) - b。

上面这个式子在业内我们称之为逻辑回归。

三、使用激活函数

根据输出的计算可以发现,其实隐层的每个神经元是由输入特征x的线性组合构成。然而如果仅仅是线性组合,那么不管这个神经网络有多少层,结果都将与特征线性相关。于是我们在每个神经元结果z之后,添加一个激活函数(Activation Function),改变线性规则,比如使用Sigmoid函数。

激活函数非常非常重要,如果没有它,那么神经网络的智商永远高不起来。为什么要使用激活函数:大家可以想像火车站排队的栏杆,激活函数就是这样不断的约束引导输入走向我们想要的目标,这才是它的底层含义,而它的用途就是把线性问题变成非线性,以及把输出映射到概率分布,方便我们进行分类。

在1943年,McCulloch和Pitts将上图的神经元结构用一种简单的模型进行了表示,构成了一种人工神经元模型,也就是我们现在经常用到的“M-P神经元模型”,如下图所示:

从上图M-P神经元模型可以看出,神经元的输出

 其中θ为我们之前提到的神经元的激活阈值,函数f(⋅)也被称为是激活函数。激活函数不止一种,如上图所示,函数f(⋅)可以用一个阶跃方程表示,大于阈值激活;否则则抑制。但是这样有点太粗暴,因为阶跃函数不光滑,不连续,不可导,因此我们更常用的方法是用sigmoid函数来表示函数函数f(⋅),它的公式和图像如下。

我们在这里先只介绍它的一个用途——把z映射到[0,1]之间。上图中的横坐标是z,纵坐标我们用y’来表示,y’就代表了我们最终的预测结果。从图像可以看出,z越大那么y’就越靠近1,z越小那么y’就越靠近0。那为什么要把预测结果映射到[0,1]之间呢?因为这样不仅便于神经网络进行计算,也便于我们人类进行理解。例如在预测是否有猫的例子中,如果y’是0.8,就说明有80%的概率是有猫的。 

接下里我们给出常用的几个激活函数以及其图像:

图上左上角,即为上文所述的sigmoid函数,其导数为a· = a(1 - a)

右上角为tanh函数:

左下角为ReLU(修正线性单元):a = max(0,z)

右下角为Leaky ReLU:a = max(0.01,z)

四、使用损失函数

在神经网络的训练中,我们通过损失函数(Loss Function)来衡量这个神经网络的训练是否到位了。

一般情况下,使用平方差来衡量:

事实上,我们一般不使用平方差来作为二分类问题的损失函数,因为平方差损失函数一般是非凸函数,我们可能会得到局部最优解,而不是全局最优解。因此我们选择如下函数:

其实,y为样本真实值,yhat为样本预测值;

当y=1时,yhat越接近1,L(yhat,y)越接近0,表示预测效果越好;

当y=0时,yhat越接近0,L(yhat,y)越接近0,预测效果越好。

那么我们的目标即为使损失函数到达最小值,其中损失函数针对单个样本。

五、使用代价函数(Cost Function)

全部训练数据集的损失函数的平均值,即为训练集的代价函数:

根据上述公式,可以发现代价函数其实是w和b的函数,实际上我们的目标是迭代来计算出最佳的w和b的值(矩阵),使代价函数最小化(接近0),也就是最好的训练结果

六、总结

大脑的结构越简单,那么智商就越低。单细胞生物是智商最低的了。人工神经网络也是一样的,网络越复杂它就越强大,所以我们需要深度神经网络。这里的深度是指层数多,层数越多那么构造的神经网络就越复杂。网络构建好了后,我们只需要负责不停地将训练数据输入到神经网络中,它内部就会自己不停地发生变化不停地学习。打比方说我们想要训练一个深度神经网络来识别猫。我们只需要不停地将猫的图片输入到神经网络中去。训练成功后,我们任意拿来一张新的图片,它都能判断出里面是否有猫。

参考:

1.1.1 什么是神经网络 - 床长人工智能教程
https://aistudio.csdn.net/62e38a71cd38997446774c7d.html?spm=1001.2101.3001.6650.8&utm_medium=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~activity-8-81137911-blog-127875746.pc_relevant_3mothn_strategy_and_data_recovery&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~activity-8-81137911-blog-127875746.pc_relevant_3mothn_strategy_and_data_recovery&utm_relevant_index=11

  • 13
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值