神经网络初识体验

来源:互联网 发布:统计局数据库 编辑:程序博客网 时间:2024/06/01 22:10

什么是人工神经网络

    在了解人工神经网络之前,首先来了解一下生物神经网络。 生物神经元的结构:神经细胞是构成神经系统的基本单元,称之为生物神经元,简称神经元。神经元主要由三部分构成:(1)细胞体;(2)轴突;(3)树突。如下图所示:

这里写图片描述

    突触是神经元之间相互连接的接口部分,即一个神经元的神经末梢与另一个神经元的树突相接触的交界面,位于神经元的神经末梢尾端。突触是轴突的终端。
    大脑可视作为1000多亿神经元组成的神经网络。神经元的信息传递和处理是一种电化学活动.树突由于电化学作用接受外界的刺激,通过胞体内的活动体现为轴突电位,当轴突电位达到一定的值则形成神经脉冲或动作电位;再通过轴突末梢传递给其它的神经元.从控制论的观点来看;这一过程可以看作一个多输入单输出非线性系统的动态过程。

人工神经网络:
    人工神经网络是由大量处理单元经广泛互连而组成的人工网络,用来模拟脑神经系统的结构和功能。而这些处理单元我们把它称作人工神经元。人工神经网络可看成是以人工神经元为节点,用有向加权弧连接起来的有向图。在此有向图中,人工神经元就是对生物神经元的模拟,而有向弧则是轴突—-突触—-树突对的模拟。有向弧的权值表示相互连接的两个人工神经元间相互作用的强弱。人工神经元结构如下图所示:

这里写图片描述

神经网络从两个方面模拟大脑:
    (1)、神经网络获取的知识是从外界环境中学习得来的。(神经元信息Xi)
    (2)、内部神经元的连接强度,即突触权值,用于储存获取的知识。(突触权值 Wi)

    神经网络系统由能够处理人类大脑不同部分之间信息传递的由大量神经元连接形成的拓扑结构组成,依赖于这些庞大的神经元数目和它们之间的联系,人类的大脑能够收到输入的信息的刺激由分布式并行处理的神经元相互连接进行非线性映射处理,从而实现复杂的信息处理和推理任务。
    对于某个处理单元(神经元)来说,假设来自其他处理单元(神经元)i的信息为Xi,它们与本处理单元的互相作用强度即连接权值为Wi, i=0,1,…,n-1,处理单元的内部阈值为θ。
那么本处理单元(神经元)的输入为:这里写图片描述,而处理单元的输出为:这里写图片描述

人工神经网络如何工作

     神经网络的主要工作是建立模型确定权值,一般有前向型和反馈型两种网络结构。通常神经网络的学习和训练需要一组输入数据和输出数据对,选择网络模型和传递、训练函数后,神经网络计算得到输出结果,根据实际输出和期望输出之间的误差进行权值的修正,在网络进行判断的时候就只有输入数据而没有预期的输出结果。神经网络一个相当重要的能力是其网络能通过它的神经元权值和阈值的不断调整从环境中进行学习,直到网络的输出误差达到预期的结果,就认为网络训练结束。

1 选择一个样本集合 西格玛(Ai Bi)中的一个样本(Ai,Bi) A为数据 B为标签
2 送入一个网络, 计算网络的实际输出y
3 计算实际输出与期望输出的误差 D=Bi-y
4 根据误差D来修正权值矩阵W
5 对每个样本重复上述过程,直到对整个样本集来说,误差不超过规定范围

神经网络学习的过程:
    在构造选择神经网络时,其神经元的传递函数和转换函数就已经确定了。在网络的学习过程中是无法改变转换函数的,因此如果想要改变网络输出的大小,只能通过改变加权求和的输入来达到。由于神经元只能对网络的输入信号进行响应处理,想要改变网络的加权输入只能修改网络神经元的权参数,因此神经网络的学习就是改变权值矩阵的过程。

神经网络的学习规则:
    神经网络的学习规则是修正权值的一种算法,分为联想式和非联想式学习,有监督学习和无监督学习等。
    通常,它的学习(或训练)方式可分为两种,一种是有监督(supervised)或称有导师的学习,这时利用给定的样本标准进行分类或模仿;另一种是无监督(unsupervised)学习或称无导师学习,这时,只规定学习方式或某些规则,而具体的学习内容随系统所处环境(即输入信号情况)而异,系统可以自动发现环境特征和规律性,具有更近似于人脑的功能。

神经网络工作过程:
    神经网络的工作过程包括离线学习和在线判断两部分。学习过程中各神经元进行规则学习,权参数调整,进行非线性映射关系拟合以达到训练精度;判断阶段则是训练好的稳定的网络读取输入信息通过计算得到输出结果。

如何学习人工神经网络

  • 首先学会如何使用神经网络
  • 然后深入学习,如何优化设计(包括结构和算法)

要学习如何使用神经网络,首先我们搭建一个神经网络的使用环境
搭建基于 caffe 的神经网络开发框架

caffe是一种开源的深度学习框架,利用这套架构,我们可以
- 训练网络
- 修改已有的神经网络
- 实现新的神经网络
- 编写网络使用程序

比如要实现一个网络,我们可以利用caffe给数据打包、编写网络结构文件、编写网络求解文件、开始训练
这里写图片描述


神经网络初次使用体验

参考文档:

神经网络简介 2015