导航:首页 > 网络安全 > 神经网络模型如何计算

神经网络模型如何计算

发布时间:2023-02-19 23:27:34

㈠ BP神经网络

神经网络能很好地解决不同的机器学习问题。神经网络模型是许多逻辑单元按照不同层级组织起来的网络,每一层的输出变量都是下一层的输入变量。

上图显示了人工神经网络是一个分层模型,逻辑上可以分为三层:

输入层 :输入层接收特征向量 x

输出层 :输出层产出最终的预测 h

隐含层 :隐含层介于输入层与输出层之间,之所以称之为隐含层,是因为当中产生的值并不像输入层使用的样本矩阵 X或者输出层用到的标签矩阵 y 那样直接可见。

下面引入一些标记法来帮助描述模型:

!$ a^{(j)}_{i} $ 代表第j层的第i个激活单元。 !$ heta^{(j)} $ 代表从第 j 层映射到第 j+1 层时的权重的矩阵,例如 !$ heta^{(1)} $ 代表从第一层映射到第二层的权重的矩阵。其尺寸为:以第 j+1层的激活单元数量为行数,以第 j 层的激活单元数加一为列数的矩阵。例如:上图所示的神经网络中 !$ heta^{(1)} $ 的尺寸为 3*4。

对于上图所示的模型,激活单元和输出分别表达为:

!$ a^{(2)}_{1} = g( heta^{(1)}_{10}x_0 + heta^{(1)}_{11}x_1 + heta^{(1)}_{12}x_2 + heta^{(1)}_{13}x_3 ) $

!$a^{(2)}_{2} = g( heta^{(1)}_{20}x_0 + heta^{(1)}_{21}x_1 + heta^{(1)}_{22}x_2 + heta^{(1)}_{23}x_3 ) $

!$a^{(2)}_{3} = g( heta^{(1)}_{30}x_0 + heta^{(1)}_{31}x_1 + heta^{(1)}_{32}x_2 + heta^{(1)}_{33}x_3 ) $

!$h_{ heta}{(x)} = g( heta^{(2)}_{10}a^{2}_{0} + heta^{(2)}_{11}a^{2}_{1} + heta^{(2)}_{12}a^{2}_{2} + heta^{(2)}_{13}a^{2}_{3} ) $

下面用向量化的方法以上面的神经网络为例,试着计算第二层的值:

对于多类分类问题来说:

我们可将神经网络的分类定义为两种情况:二类分类和多类分类。

二类分类: !$ S_{L} = 0,y = 0,y = 1$

多类分类: !$ S_{L} = k, y_{i} = 1表示分到第i类;(k>2)$

在神经网络中,我们可以有很多输出变量,我们的 !$h_{ heta}{(x)} $ 是一个维度为K的向量,并且我们训练集中的因变量也是同样维度的一个向量,因此我们的代价函数会比逻辑回归更加复杂一些,为: !$ h_{ heta}{(x)} in R^{K}(h_{ heta}{(x)})_{i} = i^{th} output$

我们希望通过代价函数来观察算法预测的结果与真实情况的误差有多大,唯一不同的是,对于每一行特征,我们都会给出K个预测,基本上我们可以利用循环,对每一行特征都预测K个不同结果,然后在利用循环在K个预测中选择可能性最高的一个,将其与y中的实际数据进行比较。

正则化的那一项只是排除了每一层 !$ heta_0$ 后,每一层的 矩阵的和。最里层的循环j循环所有的行(由 +1 层的激活单元数决定),循环i则循环所有的列,由该层( !$ s_l$ 层)的激活单元数所决定。即: !$h_{ heta}{(x)}$ 与真实值之间的距离为每个样本-每个类输出的加和,对参数进行 regularization bias 项处理所有参数的平方和。

由于神经网络允许多个隐含层,即各层的神经元都会产出预测,因此,就不能直接利用传统回归问题的梯度下降法来最小化 !$J( heta)$ ,而需要逐层考虑预测误差,并且逐层优化。为此,在多层神经网络中,使用反向传播算法(Backpropagation Algorithm)来优化预测,首先定义各层的预测误差为向量 !$ δ^{(l)} $

训练过程:

当我们对一个较为复杂的模型(例如神经网络)使用梯度下降算法时,可能会存在一些不容易察觉的错误,意味着,虽然代价看上去在不断减小,但最终的结果可能并不是最优解。

为了避免这样的问题,我们采取一种叫做梯度的数值检验( Numerical Gradient Checking )方法。这种方法的思想是通过估计梯度值来检验我们计算的导数值是否真的是我们要求的。

对梯度的估计采用的方法是在代价函数上沿着切线的方向选择离两个非常近的点然后计算两个点的平均值用以估计梯度。即对于某个特定的 ,我们计算出在 !$ heta - epsilon$ 处和 !$ heta + epsilon$ 的代价值(是一个非常小的值,通常选取 0.001),然后求两个代价的平均,用以估计在 !$ heta$ 处的代价值。

当 !$ heta$ 是一个向量时,我们则需要对偏导数进行检验。因为代价函数的偏导数检验只针对一个参数的改变进行检验,下面是一个只针对 !$ heta_1$ 进行检验的示例:

如果上式成立,则证明网络中BP算法有效,此时关闭梯度校验算法(因为梯度的近似计算效率很慢),继续网络的训练过程。

㈡ 利用神经网络进行文本分类算法综述(持续更新中)

传统的文本分类一般都是使用词袋模型/Tf-idf作为特征+机器学习分类器来进行分类的。随着深度学习的发展,越来越多的神经网络模型被用来进行文本分类。本文将对这些神经网络模型做一个简单的介绍。

本文介绍了一种词向量模型,虽然算不得文本分类模型,但由于其可以说是fasttext的基础。因此也简单提一下。

作者认为cbow和skipgram及大部分词向量模型都没有考虑到单词的多态性,而简单的将一个单词的多种形态视为独立的单词。例如like的不同形式有likes,liking,liked,likes,这些单词的意思其实是相同的,但cbow/skipgram模型却认为这些单词是各自独立的,没有考虑到其形态多样性。

因此作者提出了一个可以有效利用单词字符级别信息的n-gram词向量模型,该模型是以skipgram模式实现的。例如单词 where,其n-gram表示为<wh, whe, her, ere, re>, where。其中<>分别表示前后缀。在原始的skipgram模型中,输入仅仅只是where的onehot向量,而在此模型中输入则变成了<wh, whe, her, ere, re>, where的onehot编码的加和,有效的利用了字符级别的信息,因此效果更加好。

而在loss方面,文中采用了负采样+binary LogisticRegression的策略。即对每一个目标单词都预测为正负中的一种。

在本文中作者提供了一个基于神经网络的文本分类模型,这个模型是基于cbow的,与cbow非常类似。

和CBOW一样,fastText模型也只有三层:输入层、隐含层、输出层(Hierarchical Softmax),输入都是多个经向量表示的单词,输出都是一个特定的target,隐含层都是对多个词向量的叠加平均。不同的是,CBOW的输入是目标单词的上下文,fastText的输入是多个单词及其n-gram特征的embeding表示方式,这些特征用来表示单个文档;CBOW的输入单词被onehot编码过,fastText的输入特征是被embedding过;CBOW的输出是目标词汇,fastText的输出是文档对应的类标。输出层的实现同样使用了层次softmax,当然如果自己实现的话,对于类别数不是很多的任务,个人认为是可以直接使用softmax的。

最后,贴一个Keras的模型fasttext简化版。

基于词向量表示,本文提出利用卷积神经网络来进行文本分类。其算法如上图所示:

在本文中,作者尝试了多种不同的词向量模式:

在上一篇文章中CNN网络的输入一般是预训练好的词向量,而在本文中作者提出一种直接将embedding训练与分类任务结合在一起,且能有效提取/保留词序信息,也即有效训练出n-gram的模型方法,其实也可以理解为一种利用CNN来进行embedding的方法。

此外,另一个问题是输入序列长度变化问题(在上一篇文章textCNN中通过padding解决的?),在本文作者提出使用一个动态可变的pooling层来解决这个问题,使得卷积层输出的大小是相同的。关于可变pooling其实与图像识别中的 空间金字塔池化 (Spatial Pyramid Pooling) 是类似的。

这篇文章有点将fastText与TextCNN结合在一起的感觉,将n-gram embedding与分类任务结合在了一起进行训练,通过CNN来进行Embedding。

Text Categorization via Region Embedding》

在本篇文章中作者提出了一个tv-embedding(即two-view embedding),它也属于region embedding(也可以理解为ngram embedding)。这种方法与上面的bow-CNN表示相似,使用bow(bag of words)的方式来表示一个区域的词句,然后通过某个区域(region,左右邻域的单词或词句)来预测其前后的区域(单词或词句),即输入区域是view1,target区域是view2。tv-embedding是单独训练的,在使用的时候与CNN中的embedding组合在一起(形成多个channel?)。作者认为,word2vec方法预训练得到的embedding向量是普适性的,而通过特定任务的数据集的训练得到tv-embedding具有任务相关的一些信息,更有利于提升我们的模型效果。

吐槽一下,这篇文章没太看懂,也可能是英语太差,作者文章中没有那种一眼就能让人理解的网络图,像textCNN的图就非常一目了然,看图就知道是怎么做的了。

本文提出了一个使用监督学习加半监督预训练的基于LSTM的文本分类模型。文章作者与上面相同,所以用到的很多技术可以说与上面也是同出一辙。因此简单说下本文的一些思路。

作者认为已有的直接使用LSTM作为文本分类模型并直接将LSTM的最后一个输出作为后续全连接分类器的方法面临两个问题:(1)这种方式一般都是与word embedding整合在一起(即输入onehot经过一个embedding层再进入LSTM),但是embedding训练不稳定,不好训练;(2)直接使用LSTM最后一个输出来表示整个文档不准确,一般来说LSTM输入中后面的单词会在最后输出中占有较重的权重,但是这对于文章表示来说并不总是对的。因此作者对这两点进行了改进:

本文其实可以看作是作者将自己前面的tv-embedding半监督训练与RCNN的一个融合吧,大有一种一顿操作猛如虎,一看人头0-5的感觉(因为作者的实验结果跟一般的CNN相比其实也抢不了多少)。

本文的作者也是前面两篇使用CNN来进行文本分类处理的文章的作者。因此在本文中,结合了前面两篇文章提出的一些方法,并使用了一个深层的卷积神经网络。具体的细节包括:

更多详细的关于DPCNN的细节可以查看 从DPCNN出发,撩一下深层word-level文本分类模型 。

本文提出了一种基于CNN+Attention的文本分类模型。作者认为已有的基于CNN的文本分类模型大都使用的是固定大小的卷积核,因此其学习到的表示也是固定的n-gram表示,这个n与CNN filter大小相关。但是在进行句子的语义表示时,不同句子发挥重要作用的ngram词语常常是不同的,也即是变化的。因此,模型能根据句子来自适应的选择每个句子最佳的n-gram对于提升模型的语义表示能力是非常关键的。本文便是由此思路提出了一种自适应的来选择不同n-gram表示的模型。

本文模型在主题结构上参照了CV中的DenseNet,借由DenseNet中的稠密连接来提取到丰富的n-gram特征表示。举例来说,在layer3的特征不仅能学习到f(x1, x2, x3),还能学习到f(x1(x2,x3))这种更多层次,更加丰富的特征。网络的结构主要包括三部分:DenseCNN主网络,Attention mole和最后的全连接层分类网络。下面对这三部分进行简单的说明:

本文通过Dense connection + Attention来自动获取对于文本语义最重要的n-gram特征,结果很好。但是缺点是,这个网络比较适合较短的文本,文中对输入文本进行了padding补齐,对于不同数据集最大长度分别为50,100等,但这对于较长的文本明显是不足的。因此对于较长的文本或许HAN这种借用RNN来不限制输入长短的网络会更好。

本文提出了一种结合循环神经网络(RNN)和卷积神经网络来进行文本分类的方法,其结构如上图所示,该网络可以分为三部分:

虽然说是RNN与CNN的结合,但是其实只用到了CNN中的pooling,多少有一点噱头的意思。文中还提到了RCNN为什么比CNN效果好的原因,即为什么RCNN能比CNN更好的捕捉到上下文信息:CNN使用了固定大小window(也即kernel size)来提取上下文信息,其实就是一个n-gram。因此CNN的表现很大程度上受window大小的影响,太小了会丢失一些长距离信息,太大了又会导致稀疏性问题,而且会增加计算量。

在众多自然语言处理任务中,一个非常突出的问题就是训练数据不足,且标注难度大。因此文本提出了一种多任务共享的RNN模型框架,其使用多个不同任务数据集来训练同一个模型共享参数,已达到扩充数据集的作用。

文中作者提出了三个模型,如上图所示:

三个模型的训练方式相同:

本文提出了一个层次LSTM+Attention模型。作者认为,虽然一篇文章有多个句子组成但真正其关键作用的可能是其中的某几个,因此对各个句子施加了注意力机制,以使得对文章语义贡献较多的句子占有更多的权重。同样的,组成一个句子的单词有多个,但是发挥重要作用的可能就那么几个,因此使用注意力机制以使得重要单词发挥更大的作用,这些便是本文的核心思想。整个网络可分为三层,两个LSTM层分别用来进行word encode和sentence encode,最顶上为一个全连接分类层。若加上两层注意力层,则可认为网络为5层。下面简单聊聊这五层网络的结构:

总体来说,本文看起来还是比较有意思的,符合人阅读文章的习惯,我们写文章的时候也是有中心词和中心句的。但是由于这个层级结构是否会导致训练慢或者不好训练还不得而知。最后,文中还提出对文章按长短先进行排序,长度相似的进入一个batch,这将训练速度加快了3倍。

本文提出了一个基于图神经网络的文本分类方法。该方法的主要思想是将所有文章及其包含的词汇都放到一个图网络里面去,图网络中的节点分为两种类型:单词节点和文章节点。其中连接单词节点和文章节点的边的权重使用TF-IDF来表示,而单词与单词之间边的权重则是使用点互信息(PMI)来表示。点互信息与传统语言模型中的条件概率计算方式非常相似。只不过PMI采用的是滑窗方式而条件概率是直接在所有语料中进行统计,可以认为是将所有语料当做一个大窗口,这时就又与PMI相同了。

A表示图网络的邻接矩阵,表示如下:

GCN同样也是可以含有多层隐藏层的,其各个层的计算方式如下:

其中A'为归一化对称邻接矩阵, W0 ∈ R^(m×k) 为权重矩阵,ρ是激活函数,例如 ReLU ρ(x) = max(0,x) 如前所述,可以通过叠加多个GCN层来合并更高阶的邻域信息:

其中j表示层数。
损失函数定义为所有已标记文档的交叉熵误差:

文中提到Text GCN运行良好的原因有两个方面:

但是其也有一些缺:

总的来说,文章的idea还是挺有意思的,效果也还不错。初识GCN可能还是有一点难以理解,可以参考如下资料进行进一步学习:
基于图卷积网络的文本分类算法
如何理解 Graph Convolutional Network(GCN)?

㈢ 人工神经网络评价法

人工神经元是人工神经网络的基本处理单元,而人工智能的一个重要组成部分又是人工神经网络。人工神经网络是模拟生物神经元系统的数学模型,接受信息主要是通过神经元来进行的。首先,人工神经元利用连接强度将产生的信号扩大;然后,接收到所有与之相连的神经元输出的加权累积;最后,将神经元与加权总和一一比较,当比阈值大时,则激活人工神经元,信号被输送至与它连接的上一层的神经元,反之则不行。

人工神经网络的一个重要模型就是反向传播模型(Back-Propagation Model)(简称BP模型)。对于一个拥有n个输入节点、m个输出节点的反向传播网络,可将输入到输出的关系看作n维空间到m维空间的映射。由于网络中含有大量非线性节点,所以可具有高度非线性。

(一)神经网络评价法的步骤

利用神经网络对复垦潜力进行评价的目的就是对某个指标的输入产生一个预期的评价结果,在此过程中需要对网络的连接弧权值进行不断的调整。

(1)初始化所有连接弧的权值。为了保证网络不会出现饱和及反常的情况,一般将其设置为较小的随机数。

(2)在网络中输入一组训练数据,并对网络的输出值进行计算。

(3)对期望值与输出值之间的偏差进行计算,再从输出层逆向计算到第一隐含层,调整各条弧的权值,使其往减少该偏差的方向发展。

(4)重复以上几个步骤,对训练集中的各组训练数据反复计算,直至二者的偏差达到能够被认可的程度为止。

(二)人工神经网络模型的建立

(1)确定输入层个数。根据评价对象的实际情况,输入层的个数就是所选择的评价指标数。

(2)确定隐含层数。通常最为理想的神经网络只具有一个隐含层,输入的信号能够被隐含节点分离,然后组合成新的向量,其运算快速,可让复杂的事物简单化,减少不必要的麻烦。

(3)确定隐含层节点数。按照经验公式:

灾害损毁土地复垦

式中:j——隐含层的个数;

n——输入层的个数;

m——输出层的个数。

人工神经网络模型结构如图5-2。

图5-2人工神经网络结构图(据周丽晖,2004)

(三)人工神经网络的计算

输入被评价对象的指标信息(X1,X2,X3,…,Xn),计算实际输出值Yj

灾害损毁土地复垦

比较已知输出与计算输出,修改K层节点的权值和阈值。

灾害损毁土地复垦

式中:wij——K-1层结点j的连接权值和阈值;

η——系数(0<η<1);

Xi——结点i的输出。

输出结果:

Cj=yj(1-yj)(dj-yj) (5-21)

式中:yj——结点j的实际输出值;

dj——结点j的期望输出值。因为无法对隐含结点的输出进行比较,可推算出:

灾害损毁土地复垦

式中:Xj——结点j的实际输出值。

它是一个轮番代替的过程,每次的迭代都将W值调整,这样经过反复更替,直到计算输出值与期望输出值的偏差在允许值范围内才能停止。

利用人工神经网络法对复垦潜力进行评价,实际上就是将土地复垦影响评价因子与复垦潜力之间的映射关系建立起来。只要选择的网络结构合适,利用人工神经网络函数的逼近性,就能无限接近上述映射关系,所以采用人工神经网络法进行灾毁土地复垦潜力评价是适宜的。

(四)人工神经网络方法的优缺点

人工神经网络方法与其他方法相比具有如下优点:

(1)它是利用最优训练原则进行重复计算,不停地调试神经网络结构,直至得到一个相对稳定的结果。所以,采取此方法进行复垦潜力评价可以消除很多人为主观因素,保证了复垦潜力评价结果的真实性和客观性。

(2)得到的评价结果误差相对较小,通过反复迭代减少系统误差,可满足任何精度要求。

(3)动态性好,通过增加参比样本的数量和随着时间不断推移,能够实现动态追踪比较和更深层次的学习。

(4)它以非线性函数为基础,与复杂的非线性动态经济系统更贴近,能够更加真实、更为准确地反映出灾毁土地复垦潜力,比传统评价方法更适用。

但是人工神经网络也存在一定的不足:

(1)人工神经网络算法是采取最优化算法,通过迭代计算对连接各神经元之间的权值不断地调整,直到达到全局最优化。但误差曲面相当复杂,在计算过程中一不小心就会使神经网络陷入局部最小点。

(2)误差通过输出层逆向传播,隐含层越多,逆向传播偏差在接近输入层时就越不准确,评价效率在一定程度上也受到影响,收敛速度不及时的情况就容易出现,从而造成个别区域的复垦潜力评价结果出现偏离。

㈣ 一道多层神经网络的计算题,请问该如何计算

BP神经网络,指的是用了“BP算法”进行训练的“多层感知器模型”。 多层感知器(MLP,Multilayer Perceptron)是一种前馈人工神经网络模型,其将输入的多个数据集映射到单一的输出的数据集上,可以解决任何线性不可分问题。 不要把算法和网络搞混了。

㈤ 神经网络Hopfield模型

一、Hopfield模型概述

1982年,美国加州工学院J.Hopfield发表一篇对人工神经网络研究颇有影响的论文。他提出了一种具有相互连接的反馈型人工神经网络模型——Hopfield人工神经网络。

Hopfield人工神经网络是一种反馈网络(Recurrent Network),又称自联想记忆网络。其目的是为了设计一个网络,存储一组平衡点,使得当给网络一组初始值时,网络通过自行运行而最终收敛到所存储的某个平衡点上。

Hopfield网络是单层对称全反馈网络,根据其激活函数的选取不同,可分为离散型Hopfield网络(Discrete Hopfield Neural Network,简称 DHNN)和连续型 Hopfield 网络(Continue Hopfield Neural Network,简称CHNN)。离散型Hopfield网络的激活函数为二值型阶跃函数,主要用于联想记忆、模式分类、模式识别。这个软件为离散型Hopfield网络的设计、应用。

二、Hopfield模型原理

离散型Hopfield网络的设计目的是使任意输入矢量经过网络循环最终收敛到网络所记忆的某个样本上。

正交化的权值设计

这一方法的基本思想和出发点是为了满足下面4个要求:

1)保证系统在异步工作时的稳定性,即它的权值是对称的,满足

wij=wji,i,j=1,2…,N;

2)保证所有要求记忆的稳定平衡点都能收敛到自己;

3)使伪稳定点的数目尽可能地少;

4)使稳定点的吸引力尽可能地大。

正交化权值的计算公式推导如下:

1)已知有P个需要存储的稳定平衡点x1,x2…,xP-1,xP,xp∈RN,计算N×(P-1)阶矩阵A∈RN×(P-1)

A=(x1-xPx2-xP…xP-1-xP)T

2)对A做奇异值分解

A=USVT

U=(u1u2…uN),

V=(υ1υ2…υP-1),

中国矿产资源评价新技术与评价新模型

Σ=diαg(λ1,λ2,…,λK),O为零矩阵。

K维空间为N维空间的子空间,它由K个独立的基组成:

K=rαnk(A),

设{u1u2…uK}为A的正交基,而{uK+1uK+2…uN}为N维空间的补充正交基。下面利用U矩阵来设计权值。

3)构造

中国矿产资源评价新技术与评价新模型

总的连接权矩阵为:

Wt=Wp-T·Wm

其中,T为大于-1的参数,缺省值为10。

Wp和Wm均满足对称条件,即

(wp)ij=(wp)ji

(wm)ij=(wm)ji

因而Wt中分量也满足对称条件。这就保证了系统在异步时能够收敛并且不会出现极限环。

4)网络的偏差构造为

bt=xP-Wt·xP

下面推导记忆样本能够收敛到自己的有效性。

(1)对于输入样本中的任意目标矢量xp,p=1,2,…,P,因为(xp-xP)是A中的一个矢量,它属于A的秩所定义的K个基空间的矢量,所以必存在系数α1,α2,…,αK,使

xp-xP1u12u2+…+αKuK

xp1u12u2+…+αKuK+xP

对于U中任意一个ui,有

中国矿产资源评价新技术与评价新模型

由正交性质可知,上式中

当i=j,

当i≠j,

对于输入模式xi,其网络输出为

yi=sgn(Wtxi+bt)

=sgn(Wpxi-T·Wmxi+xP-WpxP+T·WmxP)

=sgn[Wp(xi-xP)-T·Wm(xi-xP)+xP]

=sgn[(Wp-T·Wm)(xi-xP)+xP]

=sgn[Wt(xi-xP)+xP]

=sgn[(xi-xP)+xP]

=xi

(2)对于输入模式xP,其网络输出为

yP=sgn(WtxP+bt)

=sgn(WtxP+xP-WtxP)

=sgn(xP)

=xP

(3)如果输入一个不是记忆样本的x,网络输出为

y=sgn(Wtx+bt)

=sgn[(Wp-T·Wm)(x-xP)+xP]

=sgn[Wt(x-xP)+xP]。

因为x不是已学习过的记忆样本,x-xP不是A中的矢量,则必然有

Wt(x-xP)≠x-xP

并且再设计过程中可以通过调节Wt=Wp-T·Wm中的参数T的大小来控制(x-xP)与xP的符号,以保证输入矢量x与记忆样本之间存在足够的大小余额,从而使sgn(Wtx+bt)≠x,使x不能收敛到自身。

用输入模式给出一组目标平衡点,函数HopfieldDesign( )可以设计出 Hopfield 网络的权值和偏差,保证网络对给定的目标矢量能收敛到稳定的平衡点。

设计好网络后,可以应用函数HopfieldSimu( ),对输入矢量进行分类,这些输入矢量将趋近目标平衡点,最终找到他们的目标矢量,作为对输入矢量进行分类。

三、总体算法

1.Hopfield网络权值W[N][N]、偏差b[N]设计总体算法

应用正交化权值设计方法,设计Hopfield网络;

根据给定的目标矢量设计产生权值W[N][N],偏差b[N];

使Hopfield网络的稳定输出矢量与给定的目标矢量一致。

1)输入P个输入模式X=(x[1],x[2],…,x[P-1],x[P])

输入参数,包括T、h;

2)由X[N][P]构造A[N][P-1]=(x[1]-x[P],x[2]-x[P],…,x[P-1]-x[P]);

3)对A[N][P-1]作奇异值分解A=USVT

4)求A[N][P-1]的秩rank;

5)由U=(u[1],u[2],…,u[K])构造Wp[N][N];

6)由U=(u[K+1],…,u[N])构造Wm[N][N];

7)构造Wt[N][N]=Wp[N][N]-T*Wm[N][N];

8)构造bt[N]=X[N][P]-Wt[N][N]*X[N][P];

9)构造W[N][N](9~13),

构造W1[N][N]=h*Wt[N][N];

10)求W1[N][N]的特征值矩阵Val[N][N](对角线元素为特征值,其余为0),特征向量矩阵Vec[N][N];

11)求Eval[N][N]=diag{exp[diag(Val)]}[N][N];

12)求Vec[N][N]的逆Invec[N][N];

13)构造W[N][N]=Vec[N][N]*Eval[N][N]*Invec[N][N];

14)构造b[N],(14~15),

C1=exp(h)-1,

C2=-(exp(-T*h)-1)/T;

15)构造

中国矿产资源评价新技术与评价新模型

Uˊ——U的转置;

16)输出W[N][N],b[N];

17)结束。

2.Hopfield网络预测应用总体算法

Hopfield网络由一层N个斜坡函数神经元组成。

应用正交化权值设计方法,设计Hopfield网络。

根据给定的目标矢量设计产生权值W[N][N],偏差b[N]。

初始输出为X[N][P],

计算X[N][P]=f(W[N][N]*X[N][P]+b[N]),

进行T次迭代,

返回最终输出X[N][P],可以看作初始输出的分类。

3.斜坡函数

中国矿产资源评价新技术与评价新模型

输出范围[-1,1]。

四、数据流图

Hopfield网数据流图见附图3。

五、调用函数说明

1.一般实矩阵奇异值分解

(1)功能

用豪斯荷尔德(Householder)变换及变形QR算法对一般实矩阵进行奇异值分解。

(2)方法说明

设A为m×n的实矩阵,则存在一个m×m的列正交矩阵U和n×n的列正交矩阵V,使

中国矿产资源评价新技术与评价新模型

成立。其中

Σ=diag(σ0,σ1,…σp)p⩽min(m,n)-1,

且σ0≥σ1≥…≥σp>0,

上式称为实矩阵A的奇异值分解式,σi(i=0,1,…,p)称为A的奇异值。

奇异值分解分两大步:

第一步:用豪斯荷尔德变换将A约化为双对角线矩阵。即

中国矿产资源评价新技术与评价新模型

其中

中国矿产资源评价新技术与评价新模型

中的每一个变换Uj(j=0,1,…,k-1)将A中的第j列主对角线以下的元素变为0,而

中的每一个变换Vj(j=0,1,…,l-1)将A中的第j行主对角线紧邻的右次对角线元素右边的元素变为0。]]

j具有如下形式:

中国矿产资源评价新技术与评价新模型

其中ρ为一个比例因子,以避免计算过程中的溢出现象与误差的累积,Vj是一个列向量。即

Vj=(υ0,υ1,…,υn-1),

中国矿产资源评价新技术与评价新模型

其中

中国矿产资源评价新技术与评价新模型

第二步:用变形的QR算法进行迭代,计算所有的奇异值。即:用一系列的平面旋转变换对双对角线矩阵B逐步变换成对角矩阵。

在每一次的迭代中,用变换

中国矿产资源评价新技术与评价新模型

其中变换

将B中第j列主对角线下的一个非0元素变为0,同时在第j行的次对角线元素的右边出现一个非0元素;而变换Vj,j+1将第j-1行的次对角线元素右边的一个0元素变为0,同时在第j列的主对角线元素的下方出现一个非0元素。由此可知,经过一次迭代(j=0,1,…,p-1)后,B′仍为双对角线矩阵。但随着迭代的进行。最后收敛为对角矩阵,其对角线上的元素为奇异值。

在每次迭代时,经过初始化变换V01后,将在第0列的主对角线下方出现一个非0元素。在变换V01中,选择位移植u的计算公式如下:

中国矿产资源评价新技术与评价新模型

最后还需要对奇异值按非递增次序进行排列。

在上述变换过程中,若对于某个次对角线元素ej满足

|ej|⩽ε(|sj+1|+|sj|)

则可以认为ej为0。

若对角线元素sj满足

|sj|⩽ε(|ej-1|+|ej|)

则可以认为sj为0(即为0奇异值)。其中ε为给定的精度要求。

(3)调用说明

int bmuav(double*a,int m,int n,double*u,double*v,double eps,int ka),

本函数返回一个整型标志值,若返回的标志值小于0,则表示出现了迭代60次还未求得某个奇异值的情况。此时,矩阵的分解式为UAVT;若返回的标志值大于0,则表示正常返回。

形参说明:

a——指向双精度实型数组的指针,体积为m×n。存放m×n的实矩阵A;返回时,其对角线给出奇异值(以非递增次序排列),其余元素为0;

m——整型变量,实矩阵A的行数;

n——整型变量,实矩阵A的列数;

u——指向双精度实型数组的指针,体积为m×m。返回时存放左奇异向量U;

υ——指向双精度实型数组的指针,体积为n×n。返回时存放右奇异向量VT

esp——双精度实型变量,给定的精度要求;

ka——整型变量,其值为max(m,n)+1。

2.求实对称矩阵特征值和特征向量的雅可比过关法

(1)功能

用雅可比(Jacobi)方法求实对称矩阵的全部特征值与相应的特征向量。

(2)方法说明

雅可比方法的基本思想如下。

设n阶矩阵A为对称矩阵。在n阶对称矩阵A的非对角线元素中选取一个绝对值最大的元素,设为apq。利用平面旋转变换矩阵R0(p,q,θ)对A进行正交相似变换:

A1=R0(p,q,θ)TA,

其中R0(p,q,θ)的元素为

rpp=cosθ,rqq=cosθ,rpq=sinθ,

rqp=sinθ,rij=0,i,j≠p,q。

如果按下式确定角度θ,

中国矿产资源评价新技术与评价新模型

则对称矩阵A经上述变换后,其非对角线元素的平方和将减少

,对角线元素的平方和增加

,而矩阵中所有元素的平方和保持不变。由此可知,对称矩阵A每次经过一次变换,其非对角线元素的平方和“向零接近一步”。因此,只要反复进行上述变换,就可以逐步将矩阵A变为对角矩阵。对角矩阵中对角线上的元素λ0,λ1,…,λn-1即为特征值,而每一步中的平面旋转矩阵的乘积的第i列(i=0,1,…,n-1)即为与λi相应的特征向量。

综上所述,用雅可比方法求n阶对称矩阵A的特征值及相应特征向量的步骤如下:

1)令S=In(In为单位矩阵);

2)在A中选取非对角线元素中绝对值最大者,设为apq

3)若|apq|<ε,则迭代过程结束。此时对角线元素aii(i=0,1,…,n-1)即为特征值λi,矩阵S的第i列为与λi相应的特征向量。否则,继续下一步;

4)计算平面旋转矩阵的元素及其变换后的矩阵A1的元素。其计算公式如下

中国矿产资源评价新技术与评价新模型

5)S=S·R(p,q,θ),转(2)。

在选取非对角线上的绝对值最大的元素时用如下方法:

首先计算实对称矩阵A的非对角线元素的平方和的平方根

中国矿产资源评价新技术与评价新模型

然后设置关口υ10/n,在非对角线元素中按行扫描选取第一个绝对值大于或等于υ1的元素αpq进行平面旋转变换,直到所有非对角线元素的绝对值均小于υ1为止。再设关口υ21/n,重复这个过程。以此类推,这个过程一直作用到对于某个υk<ε为止。

(3)调用说明

void cjcbj(double*a,int n,double*v,double eps)。

形参说明:

a——指向双精度实型数组的指针,体积为n×n,存放n阶实对称矩阵A;返回时,其对角线存放n个特征值;

n——整型变量,实矩阵A的阶数;

υ——指向双精度实型数组的指针,体积为n×n,返回特征向量,其中第i列为与λi(即返回的αii,i=0,1,……,n-1)对应的特征向量;

esp——双精度实型变量。给定的精度要求。

3.矩阵求逆

(1)功能

用全选主元高斯-约当(Gauss-Jordan)消去法求n阶实矩阵A的逆矩阵。

(2)方法说明

高斯-约当法(全选主元)求逆的步骤如下:

首先,对于k从0到n-1做如下几步:

1)从第k行、第k列开始的右下角子阵中选取绝对值最大的元素,并记住此元素所在的行号和列号,再通过行交换和列交换将它交换到主元素位置上,这一步称为全选主元;

2)

3)

,i,j=0,1,…,n-1(i,j≠k);

4)αij-

,i,j=0,1,…,n-1(i,j≠k);

5)-

,i,j=0,1,…,n-1(i≠k);

最后,根据在全选主元过程中所记录的行、列交换的信息进行恢复,恢复原则如下:在全选主元过程中,先交换的行、列后进行恢复;原来的行(列)交换用列(行)交换来恢复。

图8-4 东昆仑—柴北缘地区基于HOPFIELD模型的铜矿分类结果图

(3)调用说明

int brinv(double*a,int n)。

本函数返回一个整型标志位。若返回的标志位为0,则表示矩阵A奇异,还输出信息“err**not inv”;若返回的标志位不为0,则表示正常返回。

形参说明:

a——指向双精度实型数组的指针,体积为n×n。存放原矩阵A;返回时,存放其逆矩阵A-1

n——整型变量,矩阵的阶数。

六、实例

实例:柴北缘—东昆仑地区铜矿分类预测。

选取8种因素,分别是重砂异常存在标志、水化异常存在标志、化探异常峰值、地质图熵值、Ms存在标志、Gs存在标志、Shdadlie到区的距离、构造线线密度。

构置原始变量,并根据原始数据构造预测模型。

HOPFIELD模型参数设置:训练模式维数8,预测样本个数774,参数个数8,迭代次数330。

结果分44类(图8-4,表8-5)。

表8-5 原始数据表及分类结果(部分)

续表

㈥ torchsummary:计算神经网络模型各层输出特征图尺寸及参数量

【注意】:此工具是针对PyTorch的,需配合PyTorch使用!
使用顺序可概括如下:
(1)导入torchsummary中的summary对象;
(2)建立神经网络模型;
(3)输入 模型(model)、输入尺寸(input_size)、批次大小(batch_size)、运行平台(device) 信息,运行后即可得到summary函数的返回值。

4个参数在(3)中已进行了解释, 其中device是指cpu或gpu .

输出如下:

可以看出, batch_size可以不指定,默认为-1 。summary函数会对模型中的每层输出特征图尺寸进行计算,并计算每层含有的参数量以及模型的参数总量等信息,对于逐层统计计算和分析非常直观和简洁。

阅读全文

与神经网络模型如何计算相关的资料

热点内容
联通网络电视如何充值 浏览:540
网络电视怎么连接手机投放器 浏览:919
论网络营销对企业的发展 浏览:926
苹果手机蜂窝移动网络不好怎么办 浏览:81
自家的网络怎么没了 浏览:445
网络同步记事软件哪个好用 浏览:135
新人适合在哪个平台写网络小说 浏览:35
地推和网络哪个转化率高 浏览:68
网络连接总是叉 浏览:135
移动网络信号耗电异常是什么原因 浏览:80
电脑被网络禁用怎么重新连接 浏览:500
家里两台路由器网络差 浏览:503
荣耀手机怎样换网络 浏览:109
电脑设置了后网络不能用了 浏览:635
附属医院的网络是多少 浏览:619
遴选网络安全 浏览:953
网络主播在哪里可以找到 浏览:149
吴江区计算机网络工程产品介绍 浏览:495
机电安装如何利用网络接单 浏览:108
网络安全的是指 浏览:979

友情链接