基于Pytorch的神经网络之基础理论

目录

1.引言

1.1 生物神经网络

1.2 人工神经网络

2.神经元基本结构

2.1 输入

2.2 处理

2.2.1 加权求和

2.2.2 激活函数

2.3 输出

3.神经网络结构

3.1 输入层

3.2 隐藏层

3.3 输出层


1.引言

1.1 生物神经网络

生物神经网络(Biological Neural Networks)一般指生物的大脑神经元,细胞,触点等组成的网状结构

1.2 人工神经网络

人工神经网络(Artificial Neural Network,即ANN),是20世纪80 年代以来人工智能领域兴起的研究热点。它从信息处理角度对人脑神经元网络进行抽象, 建立某种简单模型,按不同的连接方式组成不同的网络结构。

2.神经元基本结构

神经网络的结构可以简单地看成三个部分:输入层(Input layer)、隐藏层(Hidden layer)、输出层(Output layer),为了方便理解,我们先来讨论单个神经元的结构

这是单个神经元的基本结构

2.1 输入

输入输入的是我们需要处理的数据集,可以是不同结构的数据类型,像是向量和矩阵。

2.2 处理

2.2.1 加权求和

输入数据之后神经网络要对数据进行处理,进行处理的这一部分就称为隐藏层,因为我们不能够实时监控其中的数据的变化过程,第一步是数据向量X={(x_1,x_2,x_3)}^{T}与权重向量W={(w_1,w_2,w_3)}的相乘,再加上偏置因子(bias),得到y=WX+b 。这里偏置因子的作用是对决策函数进行平移,使其不偏离原点,到这里隐藏层完成了第一步操作。

2.2.2 激活函数

易得,完成第一步操作后的我们只是对原始数据进行了一个线性变换,但是我们现实中的问题往往不是线性的,因此我们需要利用激活函数或者叫做激励函数(activation function)对其进行一个非线性映射。下一篇文章将重点介绍激活函数。

2.3 输出

在处理完数据之后,我们当然要把结果输出啦,输出结果可能就是我们所需要的结果,也可能成为下一个神经元的输入值。

3.神经网络结构

介绍完了单个神经元的结构,我们来看看神经网络的结构,所谓人工神经网络,就是将多个神经元按照一定的结构连接在一起,如下图。

3.1 输入层

输入层顾名思义就是原始数据输入的神经元群。不再赘述。

3.2 隐藏层

隐藏层是神经网络的精髓所在,之所以称为隐藏层,是因为我们不能监控其中训练集在其中的值,由于我们要解决的问题不同,隐藏层的层数也可能不同。接下来我们重点讨论数据在任意两层之间的前向传播(forward propagation)

我们先规定一下符号

x_i^{(l)} 表示第 l 层第 i 个神经元的输出,w_{ij}^{(l)} 表示第 l 层第 j 个神经元到第 l+1 层第 i 个神经元的权重参数,b_{i}^{(l)} 表示第 l 层第 i 个神经元的偏置参数,第 l 层有 n_l 个神经元,大写符号表示其小写符号对应的向量

我们考察第 l 层到第 l+1 层的前向传播,对于第 l+1 层第 i 个神经元,我们有:  

 $$ x_i^{(l+1)}=f(W_i^{(l)}X^{(l)})=f(\sum_{j=1}^{n_l}w_{ij}^{(l)}x_{j}^{(l)}+b_i^{(l)})

 定义:

f(X)=(f(x_1),...f(x_n))

其中:

X=(x_1,...,x_n)

则对于第 l+1 层我们有:

X^{(l+1)}=(x_1^{(l+1)},...,x_{n_{l+1}}^{(l+1)})^{T}=f((W_1^{(l)},...,W_{n_{l+1}}^{(l)})^{T}(X^{(l)},...,X^{(l)}))

这就建立了两相邻层之间的递推式。这里我们利用代数知识将计算矩阵化可以便于进行并行计算,可以大大提高计算效率。

3.3 输出层

输出层也很简单理解,就是输出结果的神经元结构,但要注意的是,输出层也可以有多个神经元。

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值