精华内容
下载资源
问答
  • 神经网络类型
    千次阅读
    2019-11-08 11:14:19

    ANN 简单单元神经网络

    ANN是最基础的神经网络。是指由大量的处理单元(神经元) 互相连接而形成的复杂网络结构,是对人脑组织结构和运行机制的某种抽象、简化和模拟。

    FNN 全联接神经网络

    fnn指所有的节点都相互连接,同层节点不连接的网络结构。

    RNN 循环神经网络

    rnn具有时序性,即通过当前的输入值和之前的预测参数,来影响当前的预测值。适合用来做翻译,生成文章、语音等需求。

    LSTM 长短时记忆循环神经网络

    rnn 的加强版,为了解决rnn梯度爆炸梯度消失记忆消失问题。和rnn相比,lstm多了几个门。即是否参考之前的记忆,是否记录当前的记忆等

    DQN 强化学习

    通过随机参数的干扰,不断自动试错并赋予奖励,使网络具有自动学习的能力。 比如让一个游戏自动学习如何过关,或让一个蜘蛛如何控制每个腿的关节达到快速移动的目的

    GAN 对抗神经网络

    使用两个模型,一个是生成模型,一个是验证模型。通过他们相互不断的竞争,使模型越来越接近训练样本。从而达到特征学习的目的。用于自动生成图像等领域

    更多相关内容
  • 神经网络是强大的深度学习模型,能够在几秒钟内合成大量数据。有许多不同类型神经网络,它们帮助我们完成各种日常任务,从推荐电影或音乐到帮助我们在线购物。与飞机受到鸟类启发的方式类似,神经网络...

    神经网络是强大的深度学习模型,能够在几秒钟内合成大量数据。有许多不同类型的神经网络,它们帮助我们完成各种日常任务,从推荐电影或音乐到帮助我们在线购物。

    与飞机受到鸟类启发的方式类似,神经网络(NNs)也受到生物神经网络的启发。虽然原理相同,但过程和结构可能大不相同。下面我来介绍一下每个数据科学家必须了解的 6 种神经网络类型。

    神经网络的6种基本类型

    现在,我们了解神经网络是如何工作的,让我们看看深度学习中使用的神经网络的各种类型和功能:

    • 感知器

    • 多层感知器

    • 卷积神经网络

    • 循环神经网络

    • 长期短期记忆网络

    • 生成对抗网络

    1、感知器

    感知器是最简单的神经网络结构。此模型也称为单层神经网络,仅包含两个层:

    • 输入层

    • 输出层

    这里没有隐藏的图层。感知器采用输入并计算每个输入节点的加权输入。此加权输入通过激活函数生成输出。由于体系结构简单,它不能用于复杂的任务。

    2、多层感知器

    多层感知器(MLP)通常表示完全连接的网络。换句话说,一个层中的每个神经元都连接到相邻层中的所有神经元。因此,MLP 具有比感知器更高的处理能力。但是,这些网络的"完全连接性"使得它们容易出现数据过度拟合。减少过度拟合的典型方法包括提前停止、添加辍学层和添加正则化术语。

    3、卷积神经网络

    人类使用眼睛中的神经元来识别物体,这些神经元可以检测边缘、形状、深度和运动。卷积神经网络(CNN)是计算机视觉中最重要的神经网络类型之一,其灵感来自眼睛的视觉皮层,用于物体检测等视觉任务。CNN 的卷积层是它与其他神经网络区别开来的地方。此层执行点产品,即组件乘法,然后是加法。

    在 CNN 的初始阶段,筛选器是随机的,不会提供任何有用的结果。使用损耗函数,调整筛选器,通过多次迭代,网络在实现其任务(例如检测对象边缘)方面更上一个。尽管 CNN 通常需要大量的训练数据,但它们广泛适用于各种图像甚至语言任务。CNN的灵感来自视觉皮层,因此它们广泛用于涉及计算机视觉应用的应用。这些应用包括面部识别、人脸检测、物体识别、手写信件识别和医疗诊断中肿瘤的检测。

    4、循环神经网络

    当我们阅读特定的章节时,我们并不试图孤立地理解它,而是与前几章有关。同样,就像自然神经网络一样,机器学习模型需要利用已经学习的文本来理解文本。

    在传统的机器学习模型中,这是不可能的,因为我们不能存储模型的前几个阶段。但是,循环神经网络(通常称为 RNN )是一种神经网络类型,可以为我们做到这一点,这使得它们对于需要使用过去数据的应用程序非常有用。让我们仔细看看下面的 RNN。

    循环神经网络是旨在解释时态或顺序信息的网络。RNN 使用序列中的其他数据点进行更好的预测。他们通过输入和重用序列中以前节点或以后节点的激活来影响输出来达到此目的。

    RNN 通常用于连接序列应用,如时间序列预测、信号处理和手写字符识别。此外,RNN广泛应用于音乐生成、图像字幕和预测股市波动

    5、长期短期记忆网络

    在 RNN 中,我们只能保留最近阶段的信息。但对于像语言翻译这样的问题,我们需要更多的保留。这就是 LSTM 网络擅长的地方。

    为了学习长期依赖性,我们的神经网络需要记忆能力。LSTM 是 RNN 的一个特例,可以做到这一点。它们具有与 RNN 相同的链式结构,但具有不同的重复模块结构。这种重复模块结构允许网络保留大量上一阶段值。我已经提到LSTM网络对于语言翻译系统的强大功能,但它们有广泛的应用。其中一些应用程序包括序列到序列建模任务,如异常检测、语音识别、文本总结和视频分类。

    6、生成对抗网络

    给定训练数据,生成对抗网络(或简单地说,GAN)会学习使用与训练数据相同的统计信息生成新数据。例如,如果我们在照片上训练一个 GAN 模型,那么训练有素的模型将能够生成类似于输入照片的新照片。

    GAN 包含两个部分:一个生成器和一个鉴别器。生成器模型创建新数据,而鉴别器尝试从生成的数据中确定真实数据。随着生成器和鉴别器在各自的工作上做得更好,生成的数据因此得到改善,直到(理想情况下)质量与训练数据几乎相同。GAN 通常用于为游戏和动画电影创建卡通图像或面孔。此外,GAN 可以帮助从少量数据生成合成数据,以帮助改进机器学习模型。

    
    往期精彩回顾
    
    
    
    适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
    AI基础下载机器学习的数学基础专辑
    本站qq群851320808,加入微信群请扫码:
    
    
    展开全文
  • 神经网络类型

    千次阅读 2018-06-01 14:31:30
    KNN DNN SVM DL BP DBN RBF CNN RNN ANN概述本文主要介绍了当前常用的神经网络,这些神经网络主要有哪些用途,以及各种神经网络的优点和局限性。1 BP神经网络BP (Back Propagation)神经网络是一种神经网络学习算法。...

    KNN DNN SVM DL BP DBN RBF CNN RNN ANN

    概述

    本文主要介绍了当前常用的神经网络,这些神经网络主要有哪些用途,以及各种神经网络的优点和局限性。

    1 BP神经网络

    BP (Back Propagation)神经网络是一种神经网络学习算法。其由输入层、中间层、输出层组成的阶层型神经网络,中间层可扩展为多层。相邻层之间各神经元进行全连接,而每层各神经元之间无连接,网络按有教师示教的方式进行学习,当一对学习模式提供给网络后,各神经元获得网络的输入响应产生连接权值(Weight)。然后按减小希望输出与实际输出误差的方向,从输出层经各中间层逐层修正各连接权,回到输入层。此过程反复交替进行,直至网络的全局误差趋向给定的极小值,即完成学习的过程。

        初始权值阈值的确定:所以权值及阈值的初始值应选为均匀分布的小数经验

    值,约为(-2.4/F~2.4/F)之间,其中F 为所连单元的输入层节点数

     1.1 主要功能

    (1)函数逼近:用输入向量和相应的输出向量训练一个网络以逼近一个函数。

    (2)模式识别:用一个待定的输出向量将它与输入向量联系起来。

    (3)分类:把输入向量所定义的合适方式进行分类。

    (4)数据压缩:减少输出向量维数以便传输或存储。

    1.2 优点及其局限性

    BP神经网络最主要的优点是具有极强的非线性映射能力。理论上,对于一个三层和三层以上的BP网络,只要隐层神经元数目足够多,该网络就能以任意精度逼近一个非线性函数。其次,BP神经网络具有对外界刺激和输入信息进行联想记忆的能力。这是因为它采用了分布并行的信息处理方式,对信息的提取必须采用联想的方式,才能将相关神经元全部调动起来。BP 神经网络通过预先存储信息和学习机制进行自适应训练,可以从不完整的信息和噪声干扰中恢复原始的完整信息。这种能力使其在图像复原、语言处理、模式识别等方面具有重要应用。再次,BP 神经网络对外界输入样本有很强的识别与分类能力。由于它具有强大的非线性处理能力,因此可以较好地进行非线性分类, 解决了神经网络发展史上的非线性分类难题。另外, BP 神经网络具有优化计算能力。BP神经网络本质上是一个非线性优化问题, 它可以在已知的约束条件下,寻找一组参数组合,使该组合确定的目标函数达到最小。不过,其优化计算存在局部极小问题,必须通过改进完善。

    由于BP网络训练中稳定性要求学习效率很小,所以梯度下降法使得训练很慢。动量法因为学习率的提高通常比单纯的梯度下降法要快一些,但在实际应用中还是速度不够,这两种方法通常只应用于递增训练。

    多层神经网络可以应用于线性系统和非线性系统中,对于任意函数模拟逼近。当然,感知器和线性神经网络能够解决这类网络问题。但是,虽然理论上是可行的,但实际上BP网络并不一定总能有解。

    对于非线性系统,选择合适的学习率是一个重要的问题。在线性网络中,学习率过大会导致训练过程不稳定。相反,学习率过小又会造成训练时间过长。和线性网络不同,对于非线性多层网络很难选择很好的学习率。对那些快速训练算法,缺省参数值基本上都是最有效的设置。

    非线性网络的误差面比线性网络的误差面复杂得多,问题在于多层网络中非线性传递函数有多个局部最优解。寻优的过程与初始点的选择关系很大,初始点如果更靠近局部最优点,而不是全局最优点,就不会得到正确的结果,这也是多层网络无法得到最优解的一个原因。为了解决这个问题,在实际训练过程中,应重复选取多个初始点进行训练,以保证训练结果的全局最优性。

    网络隐层神经元的数目也对网络有一定的影响。神经元数目太少会造成网络的不适性,而神经元数目太多又会引起网络的过适性。

    2 RBF(径向基)神经网络

        径向基函数(RBF-Radial Basis Function)神经网络是由J.Moody和C.Darken在80年代末提出的一种神经网络,它是具有单隐层的三层前馈网络。由于它模拟了人脑中局部调整、相互覆盖接收域(或称感受野-Receptive Field)的神经网络结构,因此,RBF网络是一种局部逼近网络,它能够以任意精度逼近任意连续函数,特别适合于解决分类问题。

     

    2.1 主要功能

    图像处理,语音识别,时间系列预测,雷达原点定位,医疗诊断,错误处理检测,模式识别等。RBF网络用得最多之处是用于分类,在分类之中,最广的还是模式识别问题,次之是时间序列分析问题。

     

    2.2 优点及其局限性

    (一) 优点:

    神经网络有很强的非线性拟合能力,可映射任意复杂的非线性关系,而且学习规则简单,便于计算机实现。具有很强的鲁棒性、记忆能力、非线性映射能力以及强大的自学习能力,因此有很大的应用市场。

     ①它具有唯一最佳逼近的特性,且无局部极小问题存在。

    ②    RBF神经网络具有较强的输入和输出映射功能,并且理论证明在前向网     络中RBF网络是完成映射功能的最优网络。

    ③    网络连接权值与输出呈线性关系。

    ④    分类能力好。

    ⑤    学习过程收敛速度快

    (二)局限性:

    ①    最严重的问题是没能力来解释自己的推理过程和推理依据。

    ②    不能向用户提出必要的询问,而且当数据不充分的时候,神经网络就无法进行工作。

    ③    把一切问题的特征都变为数字,把一切推理都变为数值计算,其结果势必是丢失信息。

    ④    理论和学习算法还有待于进一步完善和提高。

    ⑤    隐层基函数的中心是在输入样本集中选取的, 这在许多情况下难以反映出系统真正的输入输出关系, 并且初始中心点数太多; 另外优选过程会出现数据病态现象。

    3 感知器神经网络

         是一个具有单层计算神经元的神经网络,网络的传递函数是线性阈值单元。原始的感知器神经网络只有一个神经元。主要用来模拟人脑的感知特征,由于采取阈值单元作为传递函数,所以只能输出两个值,适合简单的模式分类问题。当感知器用于两类模式分类时,相当于在高维样本空间用一个超平面将两类样本分开,但是单层感知器只能处理线性问题,对于非线性或者线性不可分问题无能为力。假设p是输入向量,w是权值矩阵向量,b为阈值向量,由于其传递函数是阈值单元,也就是所谓的硬限幅函数,那么感知器的决策边界就是wp+b,当wp+b>=0时,判定类别1,否则判定为类别2。

    3.1 主要功能

    主要用于分类。

    3.2 优点及其局限性

    感知器模型简单易于实现,缺点是仅能解决线性可分问题。解决线性不可分问题途径:一是采用多层感知器模型,二是选择功能更加强大的神经网络模型。

    4 线性神经网络

    线性神经网络是比较简单的一种神经网络,由一个或者多个线性神经元构成。采用线性函数作为传递函数,所以输出可以是任意值。线性神经网络可以采用基于最小二乘LMS的Widrow-Hoff学习规则调节网络的权值和阈值,和感知器一样,线性神经网络只能处理反应输入输出样本向量空间的线性映射关系,也只能处理线性可分问题。目前线性神经网络在函数拟合、信号滤波、预测、控制等方面有广泛的应用。线性神经网络和感知器网络不同,它的传递函数是线性函数,输入和输出之间是简单的纯比例关系,而且神经元的个数可以是多个。只有一个神经元的线性神经网络仅仅在传递函数上和感知器不同,前者是线性函数的传递函数,后者是阈值单元的传递函数,仅此而已。

    4.1 主要功能

    (1)线性预测;

    (2)自适应滤波噪声抵消;

    (3)自适应滤波系统辨识;

    4.2优点及其局限性

    线性神经网络只能反应输入和输出样本向量空间的线性映射关系。由于线性神经网络的误差曲面是一个多维抛物面,所以在学习速率足够小的情况下,对于基于最小二乘梯度下降原理进行训练的神经网络总是可以找到一个最优解。尽管如此,对线性神经网络的训练并不能一定总能达到零误差。线性神经网络的训练性能要受到网络规模、训练集大小的限制。若神经网络的自由度(所有权值和阈值的总个数)小于样本空间中输入-输出向量的个数,而且各样本向量线性无关,则网络不可能达到零误差,只能得到一个使得网络的误差最小的解。反之,如果网络的自由度大于样本集的个数,则会得到无穷多个可以使得网络误差为零的解。

    另外对超定系统、不定系统、线性相关向量的情况还有一些其他的限制。

    5自组织神经网络

    在生物神经细胞中存在一种特征敏感细胞,这种细胞只对外界信号刺激的某一特征敏感,并且这种特征是通过自学习形成的。在人脑的脑皮层中,对于外界信号刺激的感知和处理是分区进行的,有学者认为,脑皮层通过邻近神经细胞的相互竞争学习,自适应的发展称为对不同性质的信号敏感的区域。根据这一特征现象,芬兰学者Kohonen提出了自组织特征映射神经网络模型。他认为一个神经网络在接受外界输入模式时,会自适应的对输入信号的特征进行学习,进而自组织成不同的区域,并且在各个区域对输入模式具有不同的响应特征。在输出空间中,这些神经元将形成一张映射图,映射图中功能相同的神经元靠的比较近,功能不同的神经元分的比较开,自组织特征映射网络也是因此得名。

    自组织映射过程是通过竞争学习完成的。所谓竞争学习是指同一层神经元之间相互竞争,竞争胜利的神经元修改与其连接的连接权值的过程。竞争学习是一种无监督学习方法,在学习过程中,只需要向网络提供一些学习样本,而无需提供理想的目标输出,网络根据输入样本的特性进行自组织映射,从而对样本进行自动排序和分类。

    自组织神经网络包括自组织竞争网络、自组织特征映射网络、学习向量量化等网络结构形式。

    5.1 自组织竞争网络

    竞争学习网络的结构:假设网络输入为R维,输出为S个,典型的竞争学习网络由隐层和竞争层组成,与径向基函数网络的神经网络模型相比,不同的就是竞争传递函数的输入是输入向量p与神经元权值向量w之间的距离取负以后和阈值向量b的和,即ni=-||wi-p||+bi。网络的输出由竞争层各神经元的输出组成,除了在竞争中获胜的神经元以外,其余的神经元的输出都是0,竞争传递函数输入向量中最大元素对应的神经元是竞争的获胜者,其输出固定是1。

    竞争学习网络的训练:竞争学习网络依据Kohonen学习规则和阈值学习规则进行训练,竞争网络每进行一步学习,权值向量与当前输入向量最为接近的神经元将在竞争中获胜,网络依据Kohonen准则对这个神经元的权值进行调整。假设竞争层中第i个神经元获胜,其权值向量Wi将修改为:Wi(k)=Wi(k-1)-alpha*(p(k)-Wi(k-1))。按照这一规则,修改后的神经元权值向量将更加接近当前的输入。经过这样调整以后,当下一此网络输入类似的向量时,这一神经元就很有可能在竞争中获胜,如果输入向量与该神经元的权值向量相差很大,则该神经元极有可能落败。随着训练的进行,网络中的每一个节点将代表一类近似的向量,当接受某一类向量的输入时,对应类别的神经元将在竞争中获胜,从而网络就具备了分类功能。

    5.2 自组织特征映射网络

    自组织特征映射网络SOFM的构造时基于人类大脑皮质层的模仿。在人脑的脑皮层中,对外界信号刺激的感知和处理是分区进行的,因此自组织特征映射网络不仅仅要对不同的信号产生不同的响应,即与竞争学习网络一样具有分类功能。而且还要实现功能相同的神经元在空间分布上的聚集。因此自组织特征映射网络在训练时除了要对获胜的神经元的权值进行调整之外,还要对获胜神经元邻域内所有的神经元进行权值修正,从而使得相近的神经元具有相同的功能。自组织特征映射网络的结构域竞争学习网络的结构完全相同,只是学习算法有所区别而已。

    稳定时,每一邻域的所有节点对某种输入具有类似的输出,并且这聚类的概率分布与输入模式的概率分布相接近。

    5.3 学习向量量化网络

    学习向量量化网络由一个竞争层和一个线性层组成,竞争层的作用仍然是分类,但是竞争层首先将输入向量划分为比较精细的子类别,然后在线性层将竞争层的分类结果进行合并,从而形成符合用户定义的目标分类模式,因此线性层的神经元个数肯定比竞争层的神经元的个数要少。

    学习向量量化网络的训练:学习向量量化网络在建立的时候,竞争层和线性层之间的连接权重矩阵就已经确定了。如果竞争层的某一神经元对应的向量子类别属于线性层的某个神经元所对应的类别,则这两个神经元之间的连接权值等于1,否则两者之间的连接权值为0,这样的权值矩阵就实现了子类别到目标类别的合并。根据这一原则,竞争层和线性层之间的连接权重矩阵的每一列除了一个元素为1之外,其余元素都是0。1在该列中的位置表示了竞争层所确定的子类别属于哪一种目标类别(列中的每一个位置分别表示一种目标类别)。在建立网络时,每一类数据占数据总数的百分比是已知的,这个比例恰恰就是竞争层神经元归并到线性层各个输出时所依据的比例。由于竞争层和线性层之间的连接权重矩阵是事先确定的,所以在网络训练的时候只需要调整竞争层的权值矩阵。

    5.4 主要功能

    特别适合于解决模式分类和识别方面的应用问题。

    5.5 优点及其局限性

    SOFM网络(自组织特征映射网络)的最大优点是网络输出层引入了拓扑结构,从而实现了对生物神经网络竞争过程的模拟。

    LVQ网络(学习向量量化网路)则在竞争学习的基础山引入了有监督的学习算法,被认为是SOFM算法的扩展形式。

    常用的结合方法是,将学习向量算法作为自组织映射算法的补充,在输出层应用具有拓扑结构的自组织映射网络结构,一次采用自组织映射学习算法和学习矢量量化算法对网络进行两次训练。

    6 反馈神经网络

    前面介绍的网络都是前向网络,实际应用中还有另外一种网络——反馈网络。在反馈网络中,信息在前向传递的同时还要进行反向传递,这种信息的反馈可以发生在不同网络层的神经元之间,也可以只局限于某一层神经元上。由于反馈网络属于动态网络,只有满足了稳定条件,网络才能在工作了一段时间之后达到稳定状态。反馈网络的典型代表是Elman网络和Hopfield网络。

    6.1 Elman神经网络

    Elman网络由若干个隐层和输出层构成,并且在隐层存在反馈环节,隐层神经元采用正切sigmoid型函数作为传递函数,输出层神经元传递函数为纯线性函数,当隐层神经元足够多的时候,Elman网络可以保证网络以任意精度逼近任意非线性函数。

    6.2 Hopfield网络

    Hopfield网络主要用于联想记忆和优化计算。联想记忆是指当网络输入某一个向量之后,网络经过反馈演化,从网络的输出端得到另外一个向量,这样输出向量称为网络从初始输入向量联想得到的一个稳定的记忆,也就是网络的一个平衡点。优化计算是指某一问题存在多个解法的时候,可以设计一个目标函数,然后寻求满足折椅目标的最优解法。例如在很多情况下可以把能量函数看作是目标函数,得到最优解法需要使得能量函数达到极小值,也就是所谓的能量函数的稳定平衡点。总之,Hopfield网络的设计思想就是在初始输入下,使得网络经过反馈计算,最后达到稳定状态,这时候的输出就是用户需要的平衡点。

    6.3 主要应用

    Elman网络主要用于信号检测和预测方面,Hopfield网络主要用于联想记忆、聚类以及优化计算等方面。

    6.4 优点及其局限性

    (一)Hopfield神经网络

    对于Hopfield神经网络而言, 都存在以下问题:

    (1)在具体神经网络实现中要保证连接权矩阵是对称的;

    (2)在实际的神经网络实现中, 总会存在信息的传输延迟, 这些延迟对神经网络的特性有影响。

    (3)神经网络实现中的规模问题, 即集成度问题。

    (二)Elman神经网络

    Elman神经网络模型与其他神经网络模型一样,具有输入层、隐层和输出层,具有学习期和工作期,因此具有自组织、自学习的特征。另外,由于在Elman神经网络模型中增加了隐层及输出层节点的反馈,因而更进一步地增强了网络学习的精确性和容错性。

     

    利用Elman神经网络建立的网络模型,对具有非线性时间序列特征的其它应用领域都具有较好地应用前景,它具有较强的鲁棒性、良好的泛化能力、较强的通用性和客观性,充分显示出神经网络方法的优越性和合理性,这种神经网络方法在其它领域预测和评价方面的使用将具有较好的实际应用价值。

     

    7.其它:

    收集了一些资料,还有另一个版本,有重叠:

     ANNs指使用第一代或第二代神经元模型的算法


    unsupervised learning (聚类)

    1、其他聚类:
    SOM
    autoencoder
    2、Deep learning,分三类,方法完全不同,连神经元都不一样
    前馈预测:见3
    反馈预测:stacked sparse autoencoder(聚类), predictive coding (属RNN,聚类)
    交互预测:Deep belief net (DBN,属RNN,聚类+分类)
    3、前馈神经网络(分类)
    perceptron
    BP
    RBF
    前馈Deep learning:convolutional neural network (CNN)
    4、Recurrent NN类
    hopfield
    Boltzmann machine 及变种 
    echo state network
    5、其他工程用算法的神经网络版本,数量太多,简单写几
    强化学习如TD(reinforcement learning)
    PCA

    展开全文
  • 该资源采用Visio绘图软件制作,包含卷积池化操作的绘图,以及线性层的绘图。供各位网友参考。
  • Python深度学习6之神经网络

    千次阅读 2022-04-18 23:02:04
    Python神经网络6之神经网络神经网络神经网络基础神经网络感知机playground使用 神经网络 神经网络基础 神经网络 人工神经网络也简称为神经网络,是一种模仿和生物神经网络结构和功能的计算模型。经典的神经网络结构...

    神经网络

    神经网络基础

    神经网络

    人工神经网络也简称为神经网络,是一种模仿和生物神经网络结构和功能的计算模型。经典的神经网络结构包含三个层次的神经网络。分别为输入层,输出层以及隐藏层
    请添加图片描述
    其中每层的圆圈代表一个神经元,隐藏层和输出层的神经元有输入的数据计算后输出,输入层的神经元只需输入

    感知机

    感知机就是模拟这样的大脑神经网络处理数据的过程,感知机模型如下图:
    请添加图片描述
    感知机是一种最基础的分类模型,类似于法逻辑回归,不同的是,感知机的激活函数用的是sign,而逻辑回归用的是sigmoid,感知机也具有连接的权重和偏置请添加图片描述
    sign函数9
    请添加图片描述

    playground使用

    官方网址请添加图片描述
    感知机可以解决的问题:简单的与或问题


    1. 0 0 =>0
      0 1 =>1
      1 0 =>1
      1 1 =>0

    2. 0 0 =>0
      0 1 =>0
      1 0 =>0
      1 1 =>1

    任意画一条对角线来分隔两组数据点,定义一个阈值以确定每个数据点属于哪一个组
    其中b是确定线的位置的阈值,通过分别对x1和x2赋予权重w1和w2,就可以进行分类了
    请添加图片描述
    红色划分 与,绿色划分 或
    请添加图片描述

    1. 异或
      0 0 => 0
      0 1 => 1
      1 0 =>1
      1 1 => 0
      请添加图片描述

    神经网络原理

    神经网络的主要用途在于分类请添加图片描述

    softmax回归

    softmax回归将神经网络输出转换成概率结果

    请添加图片描述
    请添加图片描述
    请添加图片描述
    请添加图片描述
    logits加上softmax映射 - 多分类问题

    交叉熵损失

    1. 公式

    请添加图片描述
    为了能够衡量距离,目标值需要进行one-hot编码,能与概率值一一对应,如下图:
    请添加图片描述
    yi’ 是真实值,yi 是输出的结果
    -0*log0.1-0*log0.05-…-1*log0.1=1
    上述的结果是1*log(0.1),那么为了减少这个样本的损失,神经网络应该提高对应目标值为1的位置输出概率的大小,由于softmax公式的影响,其他的概率必定会减少,进行这样的调整就能预测成功了。

    1. 损失大小
      神经网络最后的损失为平均每个样本的损失大小
    • 对所有的样本的损失求和取其平均值

    softmax、交叉熵损失API

    • tf.nn.softmax_cross_entropy_with_logits(labels=None,logits=None,name=None)
      计算logits和labels之间的交叉损失熵
      labels:标签值
      logits:样本加权之后的值
      return:返回损失值列表
    • tf.reduce_mean(input_tensor)
      计算张量的尺寸的元素平均值

    案例:Mnist手写数字识别

    数据集介绍

    请添加图片描述
    下载网址
    请添加图片描述

    1. 特征值
      数据集被划分为两部分:55000行的训练数据集(mnist.train)和10000行的测试数据集(mnist.test)。每一个MNIST数据单元有两部分组成:一张包含手写数字的图片和一个对应的标签。我们把这些图片设为“xs”,把这些标签设为“ys”。训练数据集合测试数据集都包含xs和ys,比如训练数据集的图片是mnist.train.images,训练集的标签是mnist.train.labels。
      请添加图片描述
      图片是黑白图片,每一张图片包含28像素×28像素。我们把这个数组展开成一个向量,长度是28×28=784。因此,在MNIST训练数据集中,mnist.train.images是一个形状为[60000,784]的张量请添加图片描述
    2. 目标值
      用one-hot编码
      表示3的话:
      0,1,2,3,4,…,9
      0,0,0,1,0,…,0
      请添加图片描述

    Mnist数据获取API

    TensorFlow框架自带了获取这个数据集的接口,所以不需要自行读取

    • from tensorflow.examples.tutorials.mnist import input_data
      mnist=input_data.read_data_sets(path,one_hot=True)
      • mnist.train.next_batch(100)(提供批量获取功能)
      • mnist.train.images、labels
      • mnist.test.images、labels

    实战:Mnist手写数字识别

    1. 网络设计
      我们采用只有一层,即最后一个输出层的神经网络,也称之为全连接层神经网络
      请添加图片描述
    2. 全连接层计算
      本质:矩阵计算
      y=w1 x1+w2 x2+…+b
      x[None,784]*weights[784,10]+bias[10] =y_predict[None,10]
      error=tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=y_true,logits=y_predic t,name=None))
      优化损失:梯度下降
    • tf.matmul(a,b,name=None)+bias
      return:全连接结果,供交叉损失运算
    • tf.train.GradientDescentOptimizer(learning_rate)
      梯度下降
      learning_rate:学习率
      method:
      • minimize(loss):最小化损失
    1. 代码展示
    import tensorflow as tf
    from tensorflow.examples.tutorials.mnist import input_data
    
    def full_connection():
        """
        用全连接来对手写数字进行识别
        :return:
        """
        #1.准备数据
        mnist=input_data.read_data_sets("./mnist_data",one_hot=True)
        x=tf.placeholder(dtype=tf.float32,shape=(None,784))
        y_true=tf.placeholder(dtype=tf.float32,shape=(None,10))
    
        #2.构建模型
        Weights=tf.Variable(initial_value=tf.random_normal(shape=[784,10]))
        bias=tf.Variable(initial_value=tf.random_normal(shape=[10]))
        y_predict=tf.matmul(x,Weights)+bias
    
        #3.构造损失函数
        error=tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=y_true,logits=y_predict))
    
        #4.优化损失
        optimizer=tf.train.GradientDescentOptimizer(learning_rate=0.01).minimize(error)
    
        #初始化变量
        init=tf.global_variables_initializer()
    
        #开启会话
        with tf.Session() as sess:
            sess.run(init)
            image,label=mnist.train.next_batch(100)
    
            print("训练之前,损失为%f"%sess.run(error,feed_dict={x:image,y_true:label}))
    
            #开始训练
            for i in range(100):
                _,loss=sess.run([optimizer,error],feed_dict={x:image,y_true:label})
                print("第%d次的训练,损失为%f"%(i+1,loss))
    
    if __name__ == "__main__":
        full_connection()
    

    请添加图片描述
    请添加图片描述

    1. 完善模型功能
    • 准确率计算
      请添加图片描述
    • equal_list=tf.equal(tf.argmax(y,1),tf.argmax(y_label,1))
    • accuracy=tf.reduce_mean(tf.cast(equal_list,tf.float32))

    比较输出结果最大值所在位置和真实值的最大值所在位置
    y_true的形状:(None,10)
    tf.argmax(y_true,1)
    tf.argmax(y_predict,1)

    import tensorflow as tf
    from tensorflow.examples.tutorials.mnist import input_data
    
    def full_connection():
        """
        用全连接来对手写数字进行识别
        :return:
        """
        #1.准备数据
        mnist=input_data.read_data_sets("./mnist_data",one_hot=True)
        x=tf.placeholder(dtype=tf.float32,shape=(None,784))
        y_true=tf.placeholder(dtype=tf.float32,shape=(None,10))
    
        #2.构建模型
        Weights=tf.Variable(initial_value=tf.random_normal(shape=[784,10]))
        bias=tf.Variable(initial_value=tf.random_normal(shape=[10]))
        y_predict=tf.matmul(x,Weights)+bias
    
        #3.构造损失函数
        error=tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=y_true,logits=y_predict))
    
        #4.优化损失
        optimizer=tf.train.GradientDescentOptimizer(learning_rate=0.01).minimize(error)
    
        #5.准确率计算
        #比较输出结果最大值所在位置和真实值的最大值所在位置
        equal_list=tf.equal(tf.argmax(y_true,1),tf.argmax(y_predict,1))
        accuracy=tf.reduce_mean(tf.cast(equal_list,tf.float32))
    
        #初始化变量
        init=tf.global_variables_initializer()
    
        #开启会话
        with tf.Session() as sess:
            sess.run(init)
            image,label=mnist.train.next_batch(100)
    
            print("训练之前,损失为%f"%sess.run(error,feed_dict={x:image,y_true:label}))
    
            #开始训练
            for i in range(4000):
                _,loss,accuracy_value=sess.run([optimizer,error,accuracy],feed_dict={x:image,y_true:label})
                print("第%d次的训练,损失为%f,准确率为%f"%(i+1,loss,accuracy_value))
    
    if __name__ == "__main__":
        full_connection()
    

    请添加图片描述
    请添加图片描述
    请添加图片描述

    展开全文
  • 利用 PyTorch 构建神经网络(详细版)

    千次阅读 多人点赞 2020-11-05 21:59:10
    神经网络中的节点类型: 1. 输入单元ーー把外界的资讯输入网络,统称为「输入层」。这些节点不执行任何计算,它们只是将信息传递给隐藏节点; 2. 隐藏单元ーー这些节点与外界没有任何直接联系。它们执行计算并将...
  • Python实现神经网络(零基础篇)

    万次阅读 多人点赞 2020-07-17 15:37:18
    本文旨在对于机器语言完全零基础但较有兴趣或对神经网络较浅了解的朋友,通过阐述对神经网络的基础讲解以及Python的基本操作,来利用Python实现简单的神经网络;并以此为基础,在未来方向的几篇文章将以Python为工具...
  • 人工神经网络模型与分类

    万次阅读 2017-07-05 21:57:59
    1. 人工神经网络的分类 按性能分:连续型和离散型网络,或确定型和随机型网络。 按拓扑结构分:前向网络和反馈网络。 前向网络有自适应线性神经网络(AdaptiveLinear,简称Adaline)、单层感知器、多层感知...
  • 1、前馈神经网络:是最常见的类型,第一层为输入,最后一层为输出。如果有多个隐藏层,则称为“深度”神经网络。它能够计算出一系列事件间相似转变的变化,每层神经元的活动是下一层的非线性函数。 2、循环神经网络...
  • 包括:全连接前馈神经网络,卷积神经网络 表示:有向无环图 信息传播:朝着一个方向(反向传播和这个不是同一个概念) 三.反馈网络 输入:向量或向量序列 包括:循环神经网络,Hopfieid网...
  • 四种基本的神经网络

    万次阅读 多人点赞 2020-11-30 11:30:33
    这是实际应用中最常见的神经网络类型。第一层是输入,最后一层是输出。如果有多个隐藏层,我们称之为“深度”神经网络。他们计算出一系列改变样本相似性的变换。各层神经元的活动是前一层活动的非线性函数。 循环...
  • 几种经典的卷积神经网络模型

    万次阅读 多人点赞 2019-03-17 14:34:28
    1.卷积神经网络解决的问题 2.经典的卷积神经网络 2.1 LeNet 2.2 AlexNet 2.3 VGG 2.3.1 VGG块 2.3.2 VGG网络 2.4 NiN 2.4.1 Nin块 2.4.2 Nin网络 2.5 GooLeNet 2.5.1 Inception块 2.5.2 GoogLeNet网络 ...
  • 几种神经网络类型

    千次阅读 2011-05-10 15:33:00
    卷积神经网络概率神经网络Convolutional Neural Networks are are a special kind of multi-layer neural networks. Like almost every other neural networks they are trained with a version of the back-...
  • 几种图神经网络方法总结(Graph Neural Network)

    万次阅读 多人点赞 2019-03-08 11:03:52
    今年来图神经网络受到大家越来越多的关注,在文本分类(Text classification),序列标注(Sequence labeling), 神经机器翻译(Neural machine translation),关系抽取(Relation extraction),事件抽取(Event ...
  • 常用的几种卷积神经网络介绍

    万次阅读 多人点赞 2018-01-11 15:32:37
    常用的几种卷积神经网络介绍标签(空格分隔): 深度学习这是一篇基础理论的博客,基本手法是抄、删、改、查,毕竟介绍这几个基础网络的博文也挺多的,就算是自己的一个笔记吧,以后忘了多看看。主要是想介绍下常用...
  • BP神经网络的分类

    千次阅读 2016-09-26 15:27:26
    本文主要内容包括: (1) 介绍神经网络基本原理,(2) AForge.NET实现前向神经网络的方法,(3) Matlab实现前向神经网络的方法 。 第0节、引例   本文以Fisher的Iris数据集作为神经网络程序的测试数据集。Iris...
  • 人类神经网络为一类似人类神经结构的并行计算模式,是”一种基于脑与神经系统研究,所启发的信息处理技术“,通常也被称为平行分布式处理模型或链接模型。其具有人脑的学习、记忆和归纳等基本特性,可以处理连续型和...
  • 1.神经网络的分类 大体上,神经网络分为三种:前馈神经网络、反馈神经网络和图网络。 2.前馈神经网络 前馈神经网络(feedforward neural network)是一种简单的神经网络,也被称为多层感知机(multi-layer ...
  • 神经网络(GNN)简介

    千次阅读 多人点赞 2020-10-06 09:22:55
    然后介绍了不同形式的Graph神经网络及其原理。它还涵盖了GNN可以做什么以及GNN的一些应用。 图论 首先,我们需要知道什么是图。 图是一种由两个部分组成的数据结构:顶点*和edge*。它用作分析对象和实体之间成对关系...
  • 常见的神经网络模型大总结

    万次阅读 多人点赞 2018-08-20 11:12:24
    由于新的神经网络架构无时无刻不在涌现,想要记录所有的神经网络是很困难的事情。要把所有这些缩略语指代的网络(DCIGN,IiLSTM,DCGAN等)都弄清,一开始估计还无从下手。 下表包含了大部分常用的模型(大部分是神经...
  • 【Matlab学习手记】BP神经网络数据预测

    万次阅读 多人点赞 2018-08-11 09:50:55
    目的:利用BP神经网络进行数据预测。 原理 代码 clear; clc; TestSamNum = 20; % 学习样本数量 ForcastSamNum = 2; % 预测样本数量 HiddenUnitNum=8; % 隐含层 InDim = 3; % 输入层 OutDi...
  • 卷积神经网络四种卷积类型

    千次阅读 2018-12-17 08:59:47
    卷积神经网络四种卷积类型   https://www.toutiao.com/a6631333810287936013/     一般卷积 首先,我们需要就定义卷积层的一些参数达成一致。 卷积核大小(Kernel Size):卷积核定义了卷积的大小范围,...
  • 简单神经网络 当输入为标量 对于一个最简单的神经网络而言,它的一个神经元通常长这个样子: 假设我们有a1, a2, ... , an共n个输入,对于每个输入都给定一个权重w1, w2, ... , wn,再给定一个偏置b,将权重和...
  • 利用MATLAB 2016a进行BP神经网络的预测(含有神经网络工具箱) 最近一段时间在研究如何利用预测其销量个数,在网上搜索了一下,发现了很多模型来预测,比如利用回归模型、时间序列模型,GM(1,1)模型,可是自己在...
  • 两个模块都在深度 CNN 的相同输出上运行。 区域提议网络充当 Fast R-CNN 网络的注意力机制,通知第二个网络看或注意的地方。
  • 问题如上,是一个手写数字序列,要识别这个序列,我们可以分成两部分...(这是一张“简略”的图,它省略了input layer上的部分neurons)上图是解决问题的神经网络模型,它是一个三层神经网络。对于这样的神经网络,我们
  • 如果你使用百度查找的相关资料,则使用了百度的神经网络,该神经网络会根据给出的关键词对相关度最高的网页进行排名。如果你最近要买东西访问过淘宝官网,那么该网站推荐的所有产品都是由神经网络管理的。 ...
  • 数学建模-神经网络模型

    万次阅读 多人点赞 2019-01-20 15:26:28
    神经网络简介 人工神经网络是在现代神经科学的基础上提出和发展起来的,旨在反映人脑结构及功能的一种抽象数学模型。自1943 年美国心理学家W. McCulloch 和数学家W. Pitts 提出形式神经元的抽象数学模型—MP 模型...
  • 常用的几种神经网络

    万次阅读 2018-01-22 15:18:17
    神经网络通常被描述成多层,其中每一层都由输入、隐藏层、输出单元构成。一层单一网络内部绝对不会有任何连接而通常在相邻的层之间,神经元是完全相连的(每层的每个神经元都与另外一层的每个神经元相连

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 120,698
精华内容 48,279
关键字:

神经网络类型