本人也是刚刚学习关于深度学习的神经网络,如有不对的地方,还请各位大神指正。

神经网络的定义:将模拟生物神经网络的数学模型统称为人工神经网络模型,简称人工神经网络或者神经网络。构造一个神经网络,首先要构建其基本单元——人工神经元。如图所示:

人工神经网络 预测体育比分 人工神经网络入门_传递函数


a1,a2,…,an是输入的信号,用w代表信号强度的权重。即有s=a1w1+a2w2+…+anwn。以上就是构造人工神经元的基本过程。即根据生物神经元的原理做的算法模拟,及接受刺激信号并汇总输出。但是,这样的话神经元还没有被激活,在信号输出端有一个传递函数f,通过这个传递函数来输出最终的结果。这个传递函数也叫激励函数,激励函数有以下几种:

1.阶梯函数:Step

2.符号函数:Sgn

3.线性函数:Linear

4.饱和线性函数:Ramp

5.对数S形函数:Sigmoid(常用的激励函数)

6.双曲正切S形函数:Tanh

在神经元实际的工作过程中,我们只是将输入信号做了一个简单的加权处理,而神经元的特性我们没有描述出来,在SUM中加一个内置处理输入源,用b来模拟这种内置的强度。

下面介绍一下即将用到的一个最简单的神经网络——感知机。用感知机解决一个经典分类问题——如何分辨香蕉和苹果。

为了问题简单化,我们假设把苹果和香蕉只有两个特征–颜色和形状,其他的特征我们不考虑。用p1代表颜色输入,p2代表形状输入,权重w1和w2都为1,将b置为0.定义1是苹果,0是香蕉,如下图所示:

人工神经网络 预测体育比分 人工神经网络入门_感知机_02


带入之前s的公式有:

苹果:s=1x1+1x1+0=2;

香蕉:s=(-1)x1+(-1)x1+0=-2;这里,香蕉和苹果的识别几乎完了。如果把w分别设置为其他的数据会对结果有影响吗?其实,感知机的学习也需要一套规则,来保证我们随意取得权重参数也能输出正确的结果。学习规则的目的是修改神经网络的权值和偏置。如下所示:w(new)=w(old)+ep;b(new)=b(old)+e

其中e表示误差,e=t-a,t为期望输出,a为实际输出。以w1=1,w2=-1,b=0为例:

(1) 苹果的形状和颜色均输入属性1,有:s=1-1+0=0;f=0(step函数)

(2) 通过观察可知,期望结果为1即t=1,而实际得到0,即a=0;
e=t-a=1-0=1;
w1new=w1old+ep=1+1x1=2;w2new=w2old+ep=-1+1x1=0;bnew=bold+e=0+1=1;

(3)将新的权值和偏置带入感知机有:net=a1w1+a2w2+b=1x2+1x0+1=3,f(step)=1;

(4) 通过纠正误差后苹果判断正取,看一下香蕉的:
net=a1w1+a2w2+b=-1x2-1x0+1=-1,f(step)=0;
香蕉也判断正确。
以上就是感知机一个简单的例子。今天不写了,改天再继续。