写在前面

前文回顾:
【机器学习】模型的过拟合,欠拟合以及评估方法
【机器学习】性能度量:错误率与精度&&查准率、查全率与Fβ
【机器学习】ROC以及代价曲线
【机器学习】偏差与方差和F1与BEP值的关系
今天我要分享的是神经元模型以及感知机,并且介绍神经元实现简单的与、或、非运算

神经元模型

先来看看人体的神经元模型

当左边的神经元接收到皮肤等感受器官的电信号之后,如果该电信号超过了阈值,那么左边的神经元就会将该信号通过突触传递给右边的神经元,从而实现了信息的传输
那么机器学习的神经元模型与此非常相似,都有一个激活阈值,但是多了一个参数,那就是权重,因为一个神经元会接收到很多个其他神经元的输入,为了衡量其他神经元输入的影响,机器学习中的神经元模型给了这些模型的输入乘上了权重再输入到当前神经元中,具体如下图所示

我们将当前神经元激活时的状态称为“1”状态,抑制时的状态称为“0”状态,那么当神经元的状态从“0”状态跳转到“1”状态时,突变就显得不太好了,不够光滑,在很多时候我们都比较喜欢光滑的曲线,因此sigmoid(x)曲线因其连续的特点广泛应用于神经元的激活函数

当多个神经元按照一定的层级结构连接在一起的时候,就构成了神经网络

感知机

感知机是由两层神经元组成,分别是输入层和输出层,输入层用于接收信号,输出层用于输出结果,示意图如下所示

那神经网络到底是怎么进行训练的呢?我们来直观的感受一下,我们就用感知机来实现与、或、非的运算吧,假定感知层神经元只会感知到整数0,1,而且这里我们用的激活函数是阶跃函数

与功能

即要实现只有当输入层的2个神经元都输入1的时候,输出层(y)才会输出1
要完成这个任务,我们需要整定的参数就是ω1,ω2,θ,在开始时我们可以令每个参数都为0,当x1=1,x2=1时,根据y=f(ω1 * 1+ω2 * x2-θ),这里的f就是阶跃函数,得出y=0,显然不符合条件,于是进行下一次的迭代,通过计算机的不停迭代,最终得出当ω1=ω2=1,θ=2时实现功能

或功能

即要实现输入层的2个神经元只要有一个1的话,输出层(y)就会是1
要完成这个任务,我们需要整定的参数就是ω1,ω2,θ,在开始时我们可以令每个参数都为-1,当x1=0,x2=0时,根据y=f(ω1 * x1+ω2 * x2-θ),这里的f就是阶跃函数,得出y=1,显然不符合条件,于是进行下一次的迭代,通过计算机的不停迭代,最终得出当ω1=ω2=1,θ=0.5时实现功能

非功能

要实现非功能的话只需要用到输入层的某个神经元就可以了,因此我就将w2设为了0,只取输入层的x1神经元感知到的数据
要完成这个任务,我们需要整定的参数就是ω1,θ,在开始时我们可以令每个参数都为0.1,当x1=0时,根据y=f(ω1 * x1+ω2 * x2-θ),这里的f就是阶跃函数,得出y=0,显然不符合条件,于是进行下一次的迭代,通过计算机的不停迭代,最终得出当ω1=-0.6,θ=-0.5时实现功能

总结

通过上述的例子中我们很容易就能看出来,神经网络中很重要的步骤就是调参,因为计算机的不停迭代其实就是训练的过程,在相同模型的情况下,参数调得好,就能使得训练事半功倍


(づ ̄3 ̄)づ╭❤~一键三连,这次一定(๑•̀ㅂ•́)و✧