全连接神经网络结构

这一系列博客,记录我在deep learning上的理解和认知。

首先介绍神经网络的基本结构。如下图

 

基本的结构:输入层(样本数据),隐藏层(隐藏层的层数和每层的神经元数目需要自己给定),输出层(预测目标)

神经元

神经元的结构如下图所示

神经元是上一层的输入与权重相乘后求和,在经过非线性函数转换。得到下一层的输出。如:之前网络结构图中,从输入层到隐藏层的神经元的数目为4个。

非线性函数(激活函数)

如果把神经元的非线性函数去掉的话,那么这个神经元可以写成:输出=输入*权值+偏置。这个就是线性回归方程,所以如果把神经网络的非线性函数去掉,那么整个网络就是由多个线性回归组成的。线性回归是线性方程,只能解决线性可分的问题。多个线性回归组成的结果无论经过多少的层的神经网络,其本质上也是线性方程。但现实中的很多需要解决的问题都是线性不可分的(异或问题)。所以为了解决这些线性不可分的问题,我们引入了非线性方程g,那么输出就变为了g(w*X+b)。

目前主流的非线性函数主要有:

sigmoid函数

下图是sigmoid函数图像

sigmoid把求和的结果都变为(0,1)之间的值。

tanh函数

下图是tanh函数与Sigmoid函数的函数曲线:

在具体应用中,tanh函数相比于Sigmoid函数往往更具有优越性,这主要是因为Sigmoid函数在输入处于[-1,1]之间时,函数值变化敏感,一旦接近或者超出区间就失去敏感性,处于饱和状态,影响神经网络预测的精度值。主要体现在计算梯度时。

relu函数: {\displaystyle f(x)=\max(0,x)}

下图是relu函数的曲线:

relu函数并未像tanh函数和sigmoid函数一样,将求和的值限制在(0,1)之间。其阈值是[0,+∞]。

上面3个激活函数主要是用在从输入层到隐藏层以及隐藏层到隐藏层之间。

对于最后一层隐藏层到输出层之间,一般选用softmax函数进行归一化。

softmax函数{\displaystyle \sigma (\mathbf {z} )_{j}={\frac {e^{z_{j}}}{\sum _{k=1}^{K}e^{z_{k}}}}}    for j = 1, …, K.

由于在用神经网络解决的问题大部分都是多分类问题,softmax是将多分类转化为概率的一个函数。如果预测的目标是二分类,则使用sigmoid进行二分类的概率转化。

上面表达式中的zj=隐藏层的输入*权重+偏置,K为预测目标的分类数量。

 

基本结构已讲完,希望对大家有所帮助。

  • 4
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于Numpy+Tensorflow实现全连接神经网络应用于手写数字画板、手写数字识别源码+项目说明.zip ### 一:项目简介 ##### 1. 做了什么 **第一部分<算法实现>**:分别用 Numpy 和 TensorFlows 实现了二个版本的全连接神经网络,用 Mnist 数据集训练,将训练后的模型用真实手机拍照获得的手写数字图片进行识别,最后得到了不错的效果。 **第二部分<算法落地>**:将实现好的神经网路模型封装好,用PyQt5做了一个手写画板的界面,可以实现用户手写输入一个数字笔画后,自动识别转化为对应的数字。 ##### 2. 代码结构 **src/numpy_demo**: 仅用 Numpy 库实现的一个全连接神经网路,无用到开源框架。 **src/tensorflow_demo**: 基于开源框架 TensorFlow 实现的全连接神经网络。 **src/data.rar**: 使用过程需要用到的数据,运行源码前请先将该压缩文件解压至当前目录。 **dist**: 将 Numpy 版的神经网络,应用于手写画板,打包成的exe,无Python环境也可执行。 ##### 3. 应用程序 打包后的 exe 程序过大,已经单独放至releases下。 ......

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值