导航:首页 > 网络共享 > 哪个神经网络不会权重共享

哪个神经网络不会权重共享

发布时间:2023-03-09 13:01:12

Ⅰ 卷积神经网络

一般由卷积层,汇聚层,和全连接层交叉堆叠而成,使用反向传播算法进行训练(反向传播,再重新看一下)
卷积神经网络有三个结构上的特性:局部连接,权重共享以及子采样

滤波器filter 卷积核convolution kernel
局部连接,其实就是根据时间,权重递减 最后为0 参数就传播不到远处了

局部连接 乘以 滤波器 得特征映射

互相关,是一个衡量两个序列相关性的函数,
互相关和卷积的区别在于 卷积核仅仅是否进行翻转,因此互相关也可以称为 不翻转卷积
使用卷积 是为了进行特征抽取,卷积核 是否进行翻转和其特征抽取的能力无关。
当卷积核是可以学习的参数,卷积和互相关是等价的,因此,其实两者差不多。

Tips:P是代表特征映射

Ⅱ 神经网络(Neural Network)

(1)结构:许多树突(dendrite)用于输入,一个轴突 (axon)用于输出。

(2)特性:兴奋性和传导性。兴奋性是指当信号量超过某个阈值时,细胞体就会被激活,产生电脉冲。传导性是指电脉冲沿着轴突并通过突触传递到其它神经元。

(3)有两种状态的机器:激活时为“是”,不激活时为“否”。神经细胞的状态取决于从其他神经细胞接收到的信号量,以及突触的性质(抑制或加强)。

(1)神经元——不重要

① 神经元是包含权重和偏置项的 函数 :接收数据后,执行一些计算,然后使用激活函数将数据限制在一个范围内(多数情况下)。

② 单个神经元:线性可分的情况下,本质是一条直线, ,这条直线将数据划分为两类。而线性分类器本身就是一个单层神经网络。

③ 神经网络:非线性可分的情况下,神经网络通过多个隐层的方法来实现非线性的函数。

(2)权重/参数/连接(Weight)——最重要

每一个连接上都有一个权重。一个神经网络的训练算法就是让权重的值调整到最佳,以使得整个网络的预测效果最好。

(3)偏置项(Bias Units)——必须

① 如果没有偏置项,所有的函数都会经过原点。

② 正则化偏置会导致欠拟合:若对偏置正则化,会导致激活变得更加简单,偏差就会上升,学习的能力就会下降。

③ 偏置的大小度量了神经元产生激励(激活)的难易程度。

(1)定义:也称为转换函数,是一种将输入 (input) 转成输出 (output) 的函数。

(2)作用:一般直线拟合的精确度要比曲线差很多,引入激活函数能给神经网络 增加一些非线性 的特性。

(3)性质:

① 非线性:导数不是常数,否则就退化成直线。对于一些画一条直线仍然无法分开的问题,非线性可以把直线变弯,就能包罗万象;

② 可微性:当优化方法是基于梯度的时候,处处可导为后向传播算法提供了核心条件;

③ 输出范围:一般限定在[0,1],使得神经元对一些比较大的输入会比较稳定;

④ 非饱和性:饱和就是指,当输入比较大的时候输出几乎没变化,会导致梯度消失;

⑤ 单调性:导数符号不变,输出不会上蹿下跳,让神经网络训练容易收敛。

(1)线性函数 (linear function)—— purelin()

(2)符号函数 (sign function)—— hardlim() 

① 如果z值高于阈值,则激活设置为1或yes,神经元将被激活。

② 如果z值低于阈值,则激活设置为0或no,神经元不会被激活。

(3)对率函数 (sigmoid function)—— logsig()

① 优点:光滑S型曲线连续可导,函数阈值有上限。

② 缺点:❶ 函数饱和使梯度消失,两端梯度几乎为0,更新困难,做不深;

                ❷ 输出不是0中心,将影响梯度下降的运作,收敛异常慢;

                ❸ 幂运算相对来讲比较耗时

(4)双曲正切函数(hyperbolic tangent function)—— tansig()

① 优点:取值范围0中心化,防止了梯度偏差

② 缺点:梯度消失现象依然存在,但相对于sigmoid函数问题较轻

(5)整流线性单元 ReLU 函数(rectified linear unit)

① 优点:❶ 分段线性函数,它的非线性性很弱,因此网络做得很深;

                ❷ 由于它的线性、非饱和性, 对于随机梯度下降的收敛有巨大的加速作用;

② 缺点:❶ 当x<0,梯度都变成0,参数无法更新,也导致了数据多样化的丢失;

                ❷ 输出不是0中心

(6)渗漏型整流线性单元激活函数 Leaky ReLU 函数

① 优点:❶ 是为解决“ReLU死亡”问题的尝试,在计算导数时允许较小的梯度;

                ❷ 非饱和的公式,不包含指数运算,计算速度快。

② 缺点:❶ 无法避免梯度爆炸问题; (没有体现优于ReLU)

                ❷ 神经网络不学习 α 值。

(7)指数线性单元 ELU (Exponential Linear Units)

① 优点:❶ 能避免“死亡 ReLU” 问题;

                ❷ 能得到负值输出,这能帮助网络向正确的方向推动权重和偏置变化;

                ❸ 在计算梯度时能得到激活,而不是让它们等于 0。

② 缺点:❶ 由于包含指数运算,所以计算时间更长;

                ❷ 无法避免梯度爆炸问题; (没有体现优于ReLU)

                ❸ 神经网络不学习 α 值。

(8)Maxout(对 ReLU 和 Leaky ReLU的一般化归纳)

① 优点:❶ 拥有ReLU的所有优点(线性和不饱和)

                ❷ 没有ReLU的缺点(死亡的ReLU单元)

                ❸ 可以拟合任意凸函数

② 缺点 :参数数量增加了一倍。难训练,容易过拟合

(9)Swish

① 优点:❶ 在负半轴也有一定的不饱和区,参数的利用率更大

                ❷ 无上界有下界、平滑、非单调

                ❸ 在深层模型上的效果优于 ReLU

每个层都包含一定数量的单元(units)。增加层可增加神经网络输出的非线性。

(1)输入层:就是接收原始数据,然后往隐层送

(2)输出层:神经网络的决策输出

(3)隐藏层:神经网络的关键。把前一层的向量变成新的向量,让数据变得线性可分。

(1)结构:仅包含输入层和输出层,直接相连。

(2)作用:仅能表示 线性可分 函数或决策,且一定可以在有限的迭代次数中收敛。

(3)局限:可以建立与门、或门、非门等,但无法建立更为复杂的异或门(XOR),即两个输入相同时输出1,否则输出0。 (“AI winter”)

(1)目的:拟合某个函数      (两层神经网络可以逼近任意连续函数)

(2)结构:包含输入层、隐藏层和输出层 ,由于从输入到输出的过程中不存在与模型自身的反馈连接,因此被称为“前馈”。    (层与层之间全连接)

(3)作用: 非线性 分类、聚类、预测等,通过训练,可以学习到数据中隐含的知识。

(4)局限:计算复杂、计算速度慢、容易陷入局部最优解,通常要将它们与其他网络结合形成新的网络。

(5)前向传播算法(Forward Propagation)

① 方法:从左至右逐级依赖的算法模型,即网络如何根据输入X得到输出Y,最终的输出值和样本值作比较, 计算出误差 。

② 目的:完成了一次正反向传播,就完成了一次神经网络的训练迭代。通过输出层的误差,快速求解对每个ω、b的偏导,利用梯度下降法,使Loss越来越小。

② 局限:为使最终的误差达到最小,要不断修改参数值,但神经网络的每条连接线上都有不同权重参数,修改这些参数变得棘手。

(6)误差反向传播(Back Propagation)

① 原理:梯度下降法求局部极值

② 方法:从后往前,从输出层开始计算 L 对当前层的微分,获得各层的误差信号,此误差信号即作为修正单元权值的依据。计算结束以后,所要的两个参数矩阵的 梯度 就都有了。

③ 局限:如果激活函数是饱和的,带来的缺陷就是系统迭代更新变慢,系统收敛就慢,当然这是可以有办法弥补的,一种方法是使用 交叉熵函数 作为损失函数。

(1)原理:随着网络的层数增加,每一层对于前一层次的抽象表示更深入。在神经网络中,每一层神经元学习到的是前一层神经元值的更抽象的表示。通过抽取更抽象的特征来对事物进行区分,从而获得更好的区分与分类能力。

(2)方法:ReLU函数在训练多层神经网络时,更容易收敛,并且预测性能更好。

(3)优点:① 易于构建,表达能力强,基本单元便可扩展为复杂的非线性函数

                      ② 并行性号,有利于在分布是系统上应用

(4)局限:① 优化算法只能获得局部极值,性能与初始值相关

                      ② 调参理论性缺乏

                      ③ 不可解释,与实际任务关联性模糊

(1)原理:由手工设计卷积核变成自动学习卷积核

(2)卷积(Convolutional layer): 输入与卷积核相乘再累加 (内积、加权叠加)

① 公式:

② 目的:提取输入的不同特征,得到维度很大的 特征图(feature map)

③ 卷积核:需要训练的参数。一般为奇数维,有中心像素点,便于定位卷积核

④ 特点:局部感知、参数变少、权重共享、分层提取

(3)池化(Pooling Layer):用更高层的抽象表达来表示主要特征,又称“降采样”

① 分类: 最大 (出现与否)、平均(保留整体)、随机(避免过拟合)

② 目的:降维,不需要训练参数,得到新的、维度较小的特征

(4)步长(stride):若假设输入大小是n∗n,卷积核的大小是f∗f,步长是s,则最后的feature map的大小为o∗o,其中

(5)填充(zero-padding)

① Full模式:即从卷积核(fileter)和输入刚相交开始做卷积,没有元素的部分做补0操作。

② Valid模式:卷积核和输入完全相交开始做卷积,这种模式不需要补0。

③ Same模式:当卷积核的中心C和输入开始相交时做卷积。没有元素的部分做补0操作。

(7)激活函数:加入非线性特征

(8)全连接层(Fully-connected layer)

如果说卷积层、池化层和激活函数层等是将原始数据映射到隐层特征空间(决定计算速度),全连接层则起到将学到的“分布式特征表示”映射到样本标记空间的作用(决定参数个数)。

参考:

[1]  神经网络(入门最详细)_ruthy的博客-CSDN博客_神经网络算法入门

[2]  神经网络(容易被忽视的基础知识) - Evan的文章 - 知乎

[3]  人工神经网络——王的机器

[4]  如何简单形象又有趣地讲解神经网络是什么? - 舒小曼的回答 - 知乎

[5]  神经网络15分钟入门!足够通俗易懂了吧 - Mr.括号的文章 - 知乎

[6]  神经网络——最易懂最清晰的一篇文章_illikang的博客-CSDN博客_神经网络

[7]  直觉化深度学习教程——什么是前向传播——CSDN

[8]  “反向传播算法”过程及公式推导(超直观好懂的Backpropagation)_aift的专栏-CSDN

[9]  卷积、反卷积、池化、反池化——CSDN

[10]  浙大机器学习课程- bilibili.com

Ⅲ 卷积神经网络

关于花书中卷积网络的笔记记录于 https://www.jianshu.com/p/5a3c90ea0807 。

卷积神经网络(Convolutional Neural Network,CNN或ConvNet)是一种具有 局部连接、权重共享 等特性的深层前馈神经网络。卷积神经网络是受生物学上感受野的机制而提出。 感受野(Receptive Field) 主要是指听觉、视觉等神经系统中一些神经元的特性,即 神经元只接受其所支配的刺激区域内的信号

卷积神经网络最早是主要用来处理图像信息。如果用全连接前馈网络来处理图像时,会存在以下两个问题:

目前的卷积神经网络一般是由卷积层、汇聚层和全连接层交叉堆叠而成的前馈神经网络,使用反向传播算法进行训练。 卷积神经网络有三个结构上的特性:局部连接,权重共享以及汇聚 。这些特性使卷积神经网络具有一定程度上的平移、缩放和旋转不变性。

卷积(Convolution)是分析数学中一种重要的运算。在信号处理或图像处理中,经常使用一维或二维卷积。

一维卷积经常用在信号处理中,用于计算信号的延迟累积。假设一个信号发生器每个时刻t 产生一个信号 ,其信息的衰减率为 ,即在 个时间步长后,信息为原来的 倍。假设 ,那么在时刻t收到的信号 为当前时刻产生的信息和以前时刻延迟信息的叠加:

我们把 称为 滤波器(Filter)或卷积核(Convolution Kernel) 。假设滤波器长度为 ,它和一个信号序列 的卷积为:

信号序列 和滤波器 的卷积定义为:

一般情况下滤波器的长度 远小于信号序列长度 ,下图给出一个一维卷积示例,滤波器为 :

二维卷积经常用在图像处理中。因为图像为一个两维结构,所以需要将一维卷积进行扩展。给定一个图像 和滤波器 ,其卷积为:

下图给出一个二维卷积示例:

注意这里的卷积运算并不是在图像中框定卷积核大小的方框并将各像素值与卷积核各个元素相乘并加和,而是先把卷积核旋转180度,再做上述运算。

在图像处理中,卷积经常作为特征提取的有效方法。一幅图像在经过卷积操作后得到结果称为 特征映射(Feature Map)

最上面的滤波器是常用的高斯滤波器,可以用来对图像进行 平滑去噪 ;中间和最下面的过滤器可以用来 提取边缘特征

在机器学习和图像处理领域,卷积的主要功能是在一个图像(或某种特征)上滑动一个卷积核(即滤波器),通过卷积操作得到一组新的特征。在计算卷积的过程中,需要进行卷积核翻转(即上文提到的旋转180度)。 在具体实现上,一般会以互相关操作来代替卷积,从而会减少一些不必要的操作或开销。

互相关(Cross-Correlation)是一个衡量两个序列相关性的函数,通常是用滑动窗口的点积计算来实现 。给定一个图像 和卷积核 ,它们的互相关为:

互相关和卷积的区别仅在于卷积核是否进行翻转。因此互相关也可以称为不翻转卷积 。当卷积核是可学习的参数时,卷积和互相关是等价的。因此,为了实现上(或描述上)的方便起见,我们用互相关来代替卷积。事实上,很多深度学习工具中卷积操作其实都是互相关操作。

在卷积的标准定义基础上,还可以引入滤波器的 滑动步长 零填充 来增加卷积多样性,更灵活地进行特征抽取。

滤波器的步长(Stride)是指滤波器在滑动时的时间间隔。

零填充(Zero Padding)是在输入向量两端进行补零。

假设卷积层的输入神经元个数为 ,卷积大小为 ,步长为 ,神经元两端各填补 个零,那么该卷积层的神经元数量为 。

一般常用的卷积有以下三类:

因为卷积网络的训练也是基于反向传播算法,因此我们重点关注卷积的导数性质:

假设 。

, , 。函数 为一个标量函数。

则由 有:

可以看出, 关于 的偏导数为 和 的卷积

同理得到:

当 或 时, ,即相当于对 进行 的零填充。从而 关于 的偏导数为 和 的宽卷积

用互相关的“卷积”表示,即为(注意 宽卷积运算具有交换性性质 ):

在全连接前馈神经网络中,如果第 层有 个神经元,第 层有 个神经元,连接边有 个,也就是权重矩阵有 个参数。当 和 都很大时,权重矩阵的参数非常多,训练的效率会非常低。

如果采用卷积来代替全连接,第 层的净输入 为第 层活性值 和滤波器 的卷积,即:

根据卷积的定义,卷积层有两个很重要的性质:

由于局部连接和权重共享,卷积层的参数只有一个m维的权重 和1维的偏置 ,共 个参数。参数个数和神经元的数量无关。此外,第 层的神经元个数不是任意选择的,而是满足 。

卷积层的作用是提取一个局部区域的特征,不同的卷积核相当于不同的特征提取器。

特征映射(Feature Map)为一幅图像(或其它特征映射)在经过卷积提取到的特征,每个特征映射可以作为一类抽取的图像特征。 为了提高卷积网络的表示能力,可以在每一层使用多个不同的特征映射,以更好地表示图像的特征。

在输入层,特征映射就是图像本身。如果是灰度图像,就是有一个特征映射,深度 ;如果是彩色图像,分别有RGB三个颜色通道的特征映射,深度 。

不失一般性,假设一个卷积层的结构如下:

为了计算输出特征映射 ,用卷积核 分别对输入特征映射 进行卷积,然后将卷积结果相加,并加上一个标量偏置 得到卷积层的净输入 再经过非线性激活函数后得到输出特征映射 。

在输入为 ,输出为 的卷积层中,每个输出特征映射都需要 个滤波器以及一个偏置。假设每个滤波器的大小为 ,那么共需要 个参数。

汇聚层(Pooling Layer)也叫子采样层(Subsampling Layer),其作用是进行特征选择,降低特征数量,并从而减少参数数量。

常用的汇聚函数有两种:

其中 为区域 内每个神经元的激活值。

可以看出,汇聚层不但可以有效地减少神经元的数量,还可以使得网络对一些小的局部形态改变保持不变性,并拥有更大的感受野。

典型的汇聚层是将每个特征映射划分为 大小的不重叠区域,然后使用最大汇聚的方式进行下采样。汇聚层也可以看做是一个特殊的卷积层,卷积核大小为 ,步长为 ,卷积核为 函数或 函数。过大的采样区域会急剧减少神经元的数量,会造成过多的信息损失。

一个典型的卷积网络是由卷积层、汇聚层、全连接层交叉堆叠而成。

目前常用卷积网络结构如图所示,一个卷积块为连续 个卷积层和 个汇聚层( 通常设置为 , 为 或 )。一个卷积网络中可以堆叠 个连续的卷积块,然后在后面接着 个全连接层( 的取值区间比较大,比如 或者更大; 一般为 )。

目前,整个网络结构 趋向于使用更小的卷积核(比如 和 )以及更深的结构(比如层数大于50) 。此外,由于卷积的操作性越来越灵活(比如不同的步长),汇聚层的作用变得也越来越小,因此目前比较流行的卷积网络中, 汇聚层的比例也逐渐降低,趋向于全卷积网络

在全连接前馈神经网络中,梯度主要通过每一层的误差项 进行反向传播,并进一步计算每层参数的梯度。在卷积神经网络中,主要有两种不同功能的神经层:卷积层和汇聚层。而参数为卷积核以及偏置,因此 只需要计算卷积层中参数的梯度。

不失一般性,第 层为卷积层,第 层的输入特征映射为 ,通过卷积计算得到第 层的特征映射净输入 ,第 层的第 个特征映射净输入

由 得:

同理可得,损失函数关于第 层的第 个偏置 的偏导数为:

在卷积网络中,每层参数的梯度依赖其所在层的误差项 。

卷积层和汇聚层中,误差项的计算有所不同,因此我们分别计算其误差项。

第 层的第 个特征映射的误差项 的具体推导过程如下:

其中 为第 层使用的激活函数导数, 为上采样函数(upsampling),与汇聚层中使用的下采样操作刚好相反。如果下采样是最大汇聚(max pooling),误差项 中每个值会直接传递到上一层对应区域中的最大值所对应的神经元,该区域中其它神经元的误差项的都设为0。如果下采样是平均汇聚(meanpooling),误差项 中每个值会被平均分配到上一层对应区域中的所有神经元上。

第 层的第 个特征映射的误差项 的具体推导过程如下:

其中 为宽卷积。

LeNet-5虽然提出的时间比较早,但是是一个非常成功的神经网络模型。基于LeNet-5 的手写数字识别系统在90年代被美国很多银行使用,用来识别支票上面的手写数字。LeNet-5 的网络结构如图:

不计输入层,LeNet-5共有7层,每一层的结构为:

AlexNet是第一个现代深度卷积网络模型,其首次使用了很多现代深度卷积网络的一些技术方法,比如采用了ReLU作为非线性激活函数,使用Dropout防止过拟合,使用数据增强来提高模型准确率等。AlexNet 赢得了2012 年ImageNet 图像分类竞赛的冠军。

AlexNet的结构如图,包括5个卷积层、3个全连接层和1个softmax层。因为网络规模超出了当时的单个GPU的内存限制,AlexNet 将网络拆为两半,分别放在两个GPU上,GPU间只在某些层(比如第3层)进行通讯。

AlexNet的具体结构如下:

在卷积网络中,如何设置卷积层的卷积核大小是一个十分关键的问题。 在Inception网络中,一个卷积层包含多个不同大小的卷积操作,称为Inception模块。Inception网络是由有多个inception模块和少量的汇聚层堆叠而成

v1版本的Inception模块,采用了4组平行的特征抽取方式,分别为1×1、3× 3、5×5的卷积和3×3的最大汇聚。同时,为了提高计算效率,减少参数数量,Inception模块在进行3×3、5×5的卷积之前、3×3的最大汇聚之后,进行一次1×1的卷积来减少特征映射的深度。如果输入特征映射之间存在冗余信息, 1×1的卷积相当于先进行一次特征抽取

Ⅳ ENAS:首个权值共享的神经网络搜索方法,千倍加速 | ICML 2018

论文: Efficient Neural Architecture Search via Parameter Sharing

  神经网络结构搜索(NAS)目前在图像分类的模型结构设计上有很大的成果,但十分耗时,主要花在搜索到的网络(child model)的训练。论文的主要工作是提出 Efficient Neural Architecture Search (ENAS),强制所有的child model进行权重共享,避免从零开始训练,从而达到提高效率的目的。虽然不同的模型使用不同的权重,但从迁移学习和多任务学习的研究结果来看,将当前任务的模型A学习到的参数应用于别的任务的模型B是可行的。从实验看来,不仅共享参数是可行的,而且能带来很强的表现,实验仅用单张1080Ti,相对与NAS有1000x倍加速

  NAS的搜索结果可以看作是大图中的子图,可以用单向无环图(DAG)来表示搜索空间,每个搜索的结构可以认为是图2的DAG一个子网。ENAS定义的DAG为所有子网的叠加,其中每个节点的每种计算类型都有自己的参数,当特定的计算方法激活时,参数才使用。因此,ENAS的设计允许子网进行参数共享,下面会介绍具体细节

  为了设计循环单元(recurrent cell),采用 节点的DAG,节点代表计算类型,边代表信息流向,ENAS的controller也是RNN,主要定义:1) 激活的边 2) 每个节点的计算类型。在NAS(Zoph 2017),循环单元的搜索空间在预先定义结构的拓扑结构(二叉树)上,仅学习每个节点的计算类型,而NAS则同时学习拓扑结构和计算类型,更灵活

  为了创建循环单元,the controller RNN首先采样 个block的结果,取 , 为当前单元输入信息(例如word embedding), 为前一个time step的隐藏层输出,具体步骤如下:

  注意到每对节点( )都有独立的参数 ,根据选择的索引决定使用哪个参数,因此,ENAS的所有循环单元能同一个共享参数集合。论文的搜索空间包含指数数量的配置,假设有N个节点和4种激活函数,则共有 种配置

  ENAS的controller为100个隐藏单元的LSTM,通过softmax分类器以自回归(autoregressive fashion)的方式进行选择的决定,上一个step的输出作为下一个step的输入embedding,controller的第一个step则接受空embedding输入。学习的参数主要有controller LSTM的参数 和子网的共享权重 ,ENAS的训练分两个交叉的阶段,第一阶段在完整的训练集上进行共享权重 学习,第二阶段训练controller LSTM的参数

  固定controller的策略 ,然后进行 进行随机梯度下降(SGD)来最小化交叉熵损失函数的期望 , 为模型 在mini-batch上的交叉熵损失,模型 从 采样而来

  梯度的计算如公式1, 上从 采样来的,集合所有模型的梯度进行更新。公式1是梯度的无偏估计,但有一个很高的方差(跟NAS一样,采样的模型性能差异),而论文发现,当 时,训练的效果还行

  固定 然后更新策略参数 ,目标是最大化期望奖励 ,使用Adam优化器,梯度计算使用Williams的REINFORCE方法,加上指数滑动平均来降低方差, 的计算在独立的验证集上进行,整体基本跟Zoph的NAS一样

  训练好的ENAS进行新模型构造,首先从训练的策略 采样几个新的结构,对于每个采样的模型,计算其在验证集的minibatch上的准确率,取准确率最高的模型进行从零开始的重新训练,可以对所有采样的网络进行从零训练,但是论文的方法准确率差不多,经济效益更大

  对于创建卷积网络,the controller每个decision block进行两个决定,这些决定构成卷积网络的一层:

  做 次选择产生 层的网络,共 种网络,在实验中,L取12

  NASNet提出设计小的模块,然后堆叠成完整的网络,主要设计convolutional cell和rection cell

  使用ENAS生成convolutional cell,构建B节点的DAG来代表单元内的计算,其中node 1和node 2代表单元输入,为完整网络中前两个单元的输出,剩余的 个节点,预测两个选择:1) 选择两个之前的节点作为当前节点输入 2) 选择用于两个输入的计算类型,共5种算子:identity, separable convolution with kernel size 3 × 3 and 5 × 5, and average pooling and max pooling with kernel size 3×3,然后将算子结果相加。对于 ,搜索过程如下:

  对于rection cell,可以同样地使用上面的搜索空间生成: 1) 如图5采样一个计算图 2) 将所有计算的stride改为2。这样rection cell就能将输入缩小为1/2,controller共预测 blocks
  最后计算下搜索空间的复杂度,对于node i ,troller选择前 个节点中的两个,然后选择五种算子的两种,共 种坑的单元。因为两种单元是独立的,所以搜索空间的大小最终为 ,对于 ,大约 种网络

  节点的计算做了一点修改,增加highway connections,例如 修改为 ,其中 , 为elementwise乘法。搜索到的结果如图6所示,有意思的是:1) 激活方法全部为tanh或ReLU 2) 结构可能为局部最优,随机替换节点的激活函数都会造成大幅的性能下降 3) 搜索的输出是6个node的平均,与mixture of contexts(MoC)类似

  单1080Ti训练了10小时,Penn Treebank上的结果如表1所示,PPL越低则性能越好,可以看到ENAS不准复杂度低,参数量也很少

  表2的第一块为最好的分类网络DenseNet的结构,第二块为ENAS设计整个卷积网络的结果(感觉这里不应有micro search space),第三块为设计单元的结果

  全网络搜索的最优结构如图7所示,达到4.23%错误率,比NAS的效果要好,大概单卡搜索7小时,相对NAS有50000x倍加速

  单元搜索的结构如图8所示,单卡搜索11.5小时, ,错误率为3.54%,加上CutOut增强后比NASNet要好。论文发现ENAS搜索的结构都是局部最优的,修改都会带来性能的降低,而ENAS不采样多个网络进行训练,这个给NAS带来很大性能的提升

  NAS是自动设计网络结构的重要方法,但需要耗费巨大的资源,导致不能广泛地应用,而论文提出的 Efficient Neural Architecture Search (ENAS),在搜索时对子网的参数进行共享,相对于NAS有超过1000x倍加速,单卡搜索不到半天,而且性能并没有降低,十分值得参考



Ⅳ CNN基本算子与操作

卷积神经网络 (Convolutional Neural Networks,CNN)是一种前馈神经网络。卷积神经网络是受生物学上感受野(Receptive Field)的机制而提出的。感受野主要是指听觉系统、本体感觉系统和视觉系统中神经元的一些性质。比如在视觉神经系统中,一个神经元的感受野是指视网膜上的特定区域,只有这个区域内的刺激才能够激活该神经元。

卷积神经网络有三个结构上的特性: 局部连接 , 权重共享 以及空间或时间上的 次采样 。详细介绍请见 卷积神经网络

1、卷积层  详情参考 卷积层(Convolution Layer)

2、全连接层 详情参考 全连接层 (Connected Layer)  作用:降维

3、Softmax Layer 详情参考  Softmax Layer

4、 CNN池化

      最大值池化 详情参考 最大池化层(Maxpool Layer)

      平局值池化 详情参考 平均值池化

      Golbal Average Pooling 详情参考 Golbal Average Pooling

      Spatial Pyramid Pooling 详情参考 Spatial Pyramid Pooling

5、dropout layer:目的是为了防止CNN 过拟合,主要用于训练过程,推理过程不需要 详情参考 Dropout Layer

6、 激活函数  :线性激活函数与非线性激活函数

     非线性激活函数,可以使神经网络随意逼近复杂函数:Sigmoid、Tanh、ReLU

      Sigmoid:详情参考 Sigmoid

      ReLU:详情参考 ReLU

      Tanh:详情参考 Tanh

7、 loss函数

8、 梯度下降

Ⅵ 一文看懂四种基本的神经网络架构

原文链接:
http://blackblog.tech/2018/02/23/Eight-Neural-Network/

更多干货就在我的个人博客 http://blackblog.tech 欢迎关注

刚刚入门神经网络,往往会对众多的神经网络架构感到困惑,神经网络看起来复杂多样,但是这么多架构无非也就是三类,前馈神经网络,循环网络,对称连接网络,本文将介绍四种常见的神经网络,分别是CNN,RNN,DBN,GAN。通过这四种基本的神经网络架构,我们来对神经网络进行一定的了解。

神经网络是机器学习中的一种模型,是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。
一般来说,神经网络的架构可以分为三类:

前馈神经网络:
这是实际应用中最常见的神经网络类型。第一层是输入,最后一层是输出。如果有多个隐藏层,我们称之为“深度”神经网络。他们计算出一系列改变样本相似性的变换。各层神经元的活动是前一层活动的非线性函数。

循环网络:
循环网络在他们的连接图中定向了循环,这意味着你可以按照箭头回到你开始的地方。他们可以有复杂的动态,使其很难训练。他们更具有生物真实性。
循环网络的目的使用来处理序列数据。在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,每层之间的节点是无连接的。但是这种普通的神经网络对于很多问题却无能无力。例如,你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。
循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐藏层之间的节点不再无连接而是有连接的,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。

对称连接网络:
对称连接网络有点像循环网络,但是单元之间的连接是对称的(它们在两个方向上权重相同)。比起循环网络,对称连接网络更容易分析。这个网络中有更多的限制,因为它们遵守能量函数定律。没有隐藏单元的对称连接网络被称为“Hopfield 网络”。有隐藏单元的对称连接的网络被称为玻尔兹曼机。

其实之前的帖子讲过一些关于感知机的内容,这里再复述一下。
首先还是这张图
这是一个M-P神经元

一个神经元有n个输入,每一个输入对应一个权值w,神经元内会对输入与权重做乘法后求和,求和的结果与偏置做差,最终将结果放入激活函数中,由激活函数给出最后的输出,输出往往是二进制的,0 状态代表抑制,1 状态代表激活。

可以把感知机看作是 n 维实例空间中的超平面决策面,对于超平面一侧的样本,感知器输出 1,对于另一侧的实例输出 0,这个决策超平面方程是 w⋅x=0。 那些可以被某一个超平面分割的正反样例集合称为线性可分(linearly separable)样例集合,它们就可以使用图中的感知机表示。
与、或、非问题都是线性可分的问题,使用一个有两输入的感知机能容易地表示,而异或并不是一个线性可分的问题,所以使用单层感知机是不行的,这时候就要使用多层感知机来解决疑惑问题了。

如果我们要训练一个感知机,应该怎么办呢?
我们会从随机的权值开始,反复地应用这个感知机到每个训练样例,只要它误分类样例就修改感知机的权值。重复这个过程,直到感知机正确分类所有的样例。每一步根据感知机训练法则来修改权值,也就是修改与输入 xi 对应的权 wi,法则如下:

这里 t 是当前训练样例的目标输出,o 是感知机的输出,η 是一个正的常数称为学习速率。学习速率的作用是缓和每一步调整权的程度,它通常被设为一个小的数值(例如 0.1),而且有时会使其随着权调整次数的增加而衰减。

多层感知机,或者说是多层神经网络无非就是在输入层与输出层之间加了多个隐藏层而已,后续的CNN,DBN等神经网络只不过是将重新设计了每一层的类型。感知机可以说是神经网络的基础,后续更为复杂的神经网络都离不开最简单的感知机的模型,

谈到机器学习,我们往往还会跟上一个词语,叫做模式识别,但是真实环境中的模式识别往往会出现各种问题。比如:
图像分割:真实场景中总是掺杂着其它物体。很难判断哪些部分属于同一个对象。对象的某些部分可以隐藏在其他对象的后面。
物体光照:像素的强度被光照强烈影响。
图像变形:物体可以以各种非仿射方式变形。例如,手写也可以有一个大的圆圈或只是一个尖头。
情景支持:物体所属类别通常由它们的使用方式来定义。例如,椅子是为了让人们坐在上面而设计的,因此它们具有各种各样的物理形状。
卷积神经网络与普通神经网络的区别在于,卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器。在卷积神经网络的卷积层中,一个神经元只与部分邻层神经元连接。在CNN的一个卷积层中,通常包含若干个特征平面(featureMap),每个特征平面由一些矩形排列的的神经元组成,同一特征平面的神经元共享权值,这里共享的权值就是卷积核。卷积核一般以随机小数矩阵的形式初始化,在网络的训练过程中卷积核将学习得到合理的权值。共享权值(卷积核)带来的直接好处是减少网络各层之间的连接,同时又降低了过拟合的风险。子采样也叫做池化(pooling),通常有均值子采样(mean pooling)和最大值子采样(max pooling)两种形式。子采样可以看作一种特殊的卷积过程。卷积和子采样大大简化了模型复杂度,减少了模型的参数。
卷积神经网络由三部分构成。第一部分是输入层。第二部分由n个卷积层和池化层的组合组成。第三部分由一个全连结的多层感知机分类器构成。
这里举AlexNet为例:

·输入:224×224大小的图片,3通道
·第一层卷积:11×11大小的卷积核96个,每个GPU上48个。
·第一层max-pooling:2×2的核。
·第二层卷积:5×5卷积核256个,每个GPU上128个。
·第二层max-pooling:2×2的核。
·第三层卷积:与上一层是全连接,3*3的卷积核384个。分到两个GPU上个192个。
·第四层卷积:3×3的卷积核384个,两个GPU各192个。该层与上一层连接没有经过pooling层。
·第五层卷积:3×3的卷积核256个,两个GPU上个128个。
·第五层max-pooling:2×2的核。
·第一层全连接:4096维,将第五层max-pooling的输出连接成为一个一维向量,作为该层的输入。
·第二层全连接:4096维
·Softmax层:输出为1000,输出的每一维都是图片属于该类别的概率。

卷积神经网络在模式识别领域有着重要应用,当然这里只是对卷积神经网络做了最简单的讲解,卷积神经网络中仍然有很多知识,比如局部感受野,权值共享,多卷积核等内容,后续有机会再进行讲解。

传统的神经网络对于很多问题难以处理,比如你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。RNN之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐藏层之间的节点不再无连接而是有连接的,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。理论上,RNN能够对任何长度的序列数据进行处理。
这是一个简单的RNN的结构,可以看到隐藏层自己是可以跟自己进行连接的。

那么RNN为什么隐藏层能够看到上一刻的隐藏层的输出呢,其实我们把这个网络展开来开就很清晰了。

从上面的公式我们可以看出,循环层和全连接层的区别就是循环层多了一个权重矩阵 W。
如果反复把式2带入到式1,我们将得到:

在讲DBN之前,我们需要对DBN的基本组成单位有一定的了解,那就是RBM,受限玻尔兹曼机。
首先什么是玻尔兹曼机?
[图片上传失败...(image-d36b31-1519636788074)]
如图所示为一个玻尔兹曼机,其蓝色节点为隐层,白色节点为输入层。
玻尔兹曼机和递归神经网络相比,区别体现在以下几点:
1、递归神经网络本质是学习一个函数,因此有输入和输出层的概念,而玻尔兹曼机的用处在于学习一组数据的“内在表示”,因此其没有输出层的概念。
2、递归神经网络各节点链接为有向环,而玻尔兹曼机各节点连接成无向完全图。

而受限玻尔兹曼机是什么呢?
最简单的来说就是加入了限制,这个限制就是将完全图变成了二分图。即由一个显层和一个隐层构成,显层与隐层的神经元之间为双向全连接。

h表示隐藏层,v表示显层
在RBM中,任意两个相连的神经元之间有一个权值w表示其连接强度,每个神经元自身有一个偏置系数b(对显层神经元)和c(对隐层神经元)来表示其自身权重。
具体的公式推导在这里就不展示了

DBN是一个概率生成模型,与传统的判别模型的神经网络相对,生成模型是建立一个观察数据和标签之间的联合分布,对P(Observation|Label)和 P(Label|Observation)都做了评估,而判别模型仅仅而已评估了后者,也就是P(Label|Observation)。
DBN由多个限制玻尔兹曼机(Restricted Boltzmann Machines)层组成,一个典型的神经网络类型如图所示。这些网络被“限制”为一个可视层和一个隐层,层间存在连接,但层内的单元间不存在连接。隐层单元被训练去捕捉在可视层表现出来的高阶数据的相关性。

生成对抗网络其实在之前的帖子中做过讲解,这里在说明一下。
生成对抗网络的目标在于生成,我们传统的网络结构往往都是判别模型,即判断一个样本的真实性。而生成模型能够根据所提供的样本生成类似的新样本,注意这些样本是由计算机学习而来的。
GAN一般由两个网络组成,生成模型网络,判别模型网络。
生成模型 G 捕捉样本数据的分布,用服从某一分布(均匀分布,高斯分布等)的噪声 z 生成一个类似真实训练数据的样本,追求效果是越像真实样本越好;判别模型 D 是一个二分类器,估计一个样本来自于训练数据(而非生成数据)的概率,如果样本来自于真实的训练数据,D 输出大概率,否则,D 输出小概率。
举个例子:生成网络 G 好比假币制造团伙,专门制造假币,判别网络 D 好比警察,专门检测使用的货币是真币还是假币,G 的目标是想方设法生成和真币一样的货币,使得 D 判别不出来,D 的目标是想方设法检测出来 G 生成的假币。
传统的判别网络:

生成对抗网络:

下面展示一个cDCGAN的例子(前面帖子中写过的)
生成网络

判别网络

最终结果,使用MNIST作为初始样本,通过学习后生成的数字,可以看到学习的效果还是不错的。

本文非常简单的介绍了四种神经网络的架构,CNN,RNN,DBN,GAN。当然也仅仅是简单的介绍,并没有深层次讲解其内涵。这四种神经网络的架构十分常见,应用也十分广泛。当然关于神经网络的知识,不可能几篇帖子就讲解完,这里知识讲解一些基础知识,帮助大家快速入(zhuang)门(bi)。后面的帖子将对深度自动编码器,Hopfield 网络长短期记忆网络(LSTM)进行讲解。

Ⅶ 人工智能CNN卷积神经网络如何共享权值

首先权值共享就是滤波器共享,滤波器的参数是固定的,即是用相同的滤波器去扫一遍图像,提取一次特征特征,得到feature map。在卷积网络中,学好了一个滤波器,就相当于掌握了一种特征,这个滤波器在图像中滑动,进行特征提取,然后所有进行这样操作的区域都会被采集到这种特征,就好比上面的水平线。

Ⅷ 哪些神经网络结构会发生权重共享

说的确定应该就是训练方法吧,神经网络的权值不是人工给定的。而是用训练集(包括输入和输出)训练,用训练集训练一遍称为一个epoch,一般要许多epoch才行,目的是使得目标与训练结果的误差(一般采用均方误差)小到一个给定的阈值。以上所说是有监督的学习方法,还有无监督的学习方法。

Ⅸ MPNN:消息传递神经网络

近年来,随着量子化学计算和分子动力学模拟等实验的展开产生了巨大的数据量,大多数经典的机器学习技术都无法有效利用目前的数据。而原子系统的对称性表明,能够应用于网络图中的神经网络也能够应用于分子模型。所以,找到一个更加强大的模型来解决目前的化学任务可以等价于找到一个适用于网络图的模型。

本文的目标是证明:能够应用于化学预测任务的模型可以直接从分子图中学习到分子的特征,并且不受到图同构的影响。本文提出的MPNN是一种用于图上监督学习的框架,能够概括之前一些文献提出的一些方法,并且能够按照这个框架提出一些新的架构。本文提出的新的MPNN变种基于实际的应用场景:预测有机小分子的量子力学性质。并且,作者希望以后提出的新的MPNN变种能够从实际的应用出发,从实际应用中获得启发。

本文以QM9作为benchmark数据集,这个数据集由130k个分子组成,每个分子有13个性质,这些性质是通过一种计算昂贵的量子力学模拟方法(DFT)近似生成的,相当于13个回归任务。这些任务似乎代表了许多重要的化学预测问题,并且目前对许多现有方法来说是困难的。

本文提出的模型的性能度量采用两种形式:
①DFT近似的平均估计误差;
②化学界已经确立的目标误差,称为“化学精度”。

本文介绍了能够应用MPNN框架的8篇文献,为了简便起见,以处理无向图 为例,无向图 包含节点特征 和边的特征 ,将这种形式推广到有向重图是不重要的。MPNN前向传播的过程包含两个阶段,即消息传递阶段(message passing phase)和读出阶段(readout phase)。消息传递阶段运行 个时间步并且依赖消息函数 以及节点更新函数 。在消息传递阶段,每个节点的隐状态 都会根据消息 进行更新,具体过程是:

代表节点 的邻居节点集合。读出阶段使用某种读出函数 来为整个图计算一个特征向量:

都是用来学习的可微函数。 作用于节点状态集合,并且必须对节点状态的排列保持不变,以使MPNN对图同构保持不变。注意MPNN也可以学习边的特征,这可以通过为每条边引入隐状态 并应用前面的两个过程来实现。接下来,我们通过指定所使用的消息函数 、顶点更新函数 和读出函数 来定义以前文献中的模型。

本文提出的模型采用的消息函数是:

代表拼接。节点更新函数是:

是节点 的度, 对应于时间步 以及节点度 的学习矩阵。读出函数将之前所有隐状态 进行连接:

是一个神经网络, 是时间步 的一个学习矩阵。

这样的消息传递的方法可能有问题,因为最终得到的消息向量为 ,这是边和节点状态向量的加和,缺乏边和节点状态向量的交互。

消息函数为:

是特定于边的标签的学习矩阵(这个模型假设边有离散的标签)。更新函数如下:

GRU就是门控循环单元,一种循环神经网络,对于每个时间步进行权重共享,也就是说每个时间步共用同一个更新函数。最后,读出函数:

代表神经网络, 代表哈达玛积。

这个模型考虑了两种情况,一种是每个节点都有自己的目标,另一种是有一个graph level的目标。它还考虑了在每个时间步骤中存在node level影响的情况,在这种情况下,更新函数将 连接作为输入,其中 是一个外部向量,表示顶点 受到的外部影响。消息函数 是一个神经网络,使用拼接向量 作为输入,节点更新函数 也是一个神经网络,使用 作为输入。最终读出函数得到一个graph level的输出: ,这里 是一个神经网络。注意,这个模型只定义了 的情况。

这个模型与之前的MPNNs稍微有一些不同,是因为它引入了边的表示 ,并且会在消息传递阶段进行更新。消息函数为:

节点更新函数为:

同样的 代表拼接, 代表ReLU激活函数, 是学习权重矩阵。边状态更新的方式是:

都是学习矩阵。

消息函数为:

是矩阵, 是偏置向量。更新函数为:

读出函数使用单个隐层神经网络独立地通过每个节点,并对输出进行求和:

8篇文献中有3篇属于这一类。其中两篇采用消息函数:

矩阵 通过拉普拉斯矩阵的特征向量和模型的学习参数来参数化。更新函数为:

代表非线性函数,比如ReLU激活函数。

另一篇文献采用消息函数:

这里 。节点更新函数为:

本文以前述GG-NN作为baseline进行改进,提出一种新的MPNN变种。下文中以 代表节点特征的维度,以 代表图的节点的数量。这一变种适用于有向图,这意味着入边和出边有分别的信息通道,那么信息 由 和 拼接而成,当我们将模型应用无向图时,就把无向图的边看做两条边,包含一条入边,一条出边,有相同的标签,这样处理的方式意味着信息通道的大小是 而不是 。

模型的输入是每个节点的特征向量 以及邻接矩阵 ,邻接矩阵 具有向量分量,表示分子中的不同化学键以及两个原子之间的成对空间距离。初始状态 是原子输入特征集合 ,并且需要padding到维度 。在实验中的每个时间步 都要进行权重共享,并且更新函数采用GRU。

GG-NN原本采用的消息函数,采用矩阵相乘的方式(注意原来的GG-NN的边有离散的标签,而现在我们假设的边有一个特征向量 ):

是特定于边的标签的学习矩阵。为了兼容边特征,本文提出了新的消息函数:

是一个神经网络,将边的特征向量 映射到一个 的矩阵。上述两种消息函数的特点是消息只依赖于 和 而不依赖于 ,如果消息同时依赖目标节点与源节点,那么应该是更加高效的,可以尝试以下这种消息函数:

这里 是一个神经网络。

对于有向图,一共有两个消息函数 和 ,对于边 应用哪个消息函数取决于边的方向。

本文探索了两种方式来改变模型中信息的传递。第一种是为未连接的节点对添加一个单独的“虚拟”边类型。这一处理可以在预处理时实现,效果是可以使得在传播过程中让信息传播更远的距离。

另一种方式是添加一个“master”节点,让它通过一种特殊类型的边与所有节点连接。“master”节点充当全局暂存空间,每个节点在消息传递的每个步骤中都对其进行读写操作。另外“master”节点拥有单独的节点维度 ,以及内部更新函数(实验中是GRU)的单独权重。这同样可以使得在传播过程中让信息传播更远的距离。这样可以允许模型有更大的容量,同时也不会过多的损失效率,其复杂度为 。

读出函数采用set2set模型,这个模型使用 作为输入,然后再经过 步计算后生成一个graph level的embedding ,其中过程与 内节点顺序无关,最终将 输入到一个神经网络中来获得最终输出。具体参考文献: Sequence to sequence for sets。

由于消息传递阶段的复杂度为 ,当 和 增大时,计算上就会是昂贵的。处理的方法是将 拆分成 个不同的 维的embedding ,并且在每个 上独立运行传播过程得到 ,然后进行混合:

代表神经网络, 代表拼接, 在所有节点上共享。这样的混合过程保持了节点排列的不变性,同时允许图的不同副本在传播阶段相互通信。这样的设计提升了计算效率,比如在使用矩阵相乘的消息函数时一个副本的复杂度为 ,当有 个副本时一共为 。

一个分子有很多特征,如下图所示:

边的特征包括化学键与距离,因此有以下三种表示方式:
①化学图(Chemical Graph):在不考虑距离的情况下,邻接矩阵的值是离散的键类型:单键,双键,三键或芳香键;
②距离分桶(Distance bins):GG-NN基于矩阵乘法的消息函数的前提假设是“边信息是离散的”,因此作者将键的距离分为 10 个 bin,比如说 中均匀划分 8 个 bin, 为 1 个 bin, 为 1 个 bin;
③原始距离特征(Raw distance feature):也可以同时考虑距离和化学键的特征,这时每条边都有自己的特征向量,此时邻接矩阵的每个实例都是一个 5 维向量,第一维是距离,其余4维是一个独热向量,代表4种不同的化学键。

实验中对比了本文提出的方法与现有的方法:

以下为不考虑空间信息的结果:

以下为一些消融实验:

具体实验设置参照原文。

Ⅹ 如何理解人工智能神经网络中的权值共享问题

权值(权重)共享这个词是由LeNet5模型提出来的。以CNN为例,在对一张图偏进行卷积的过程中,使用的是同一个卷积核的参数。比如一个3×3×1的卷积核,这个卷积核内9个的参数被整张图共享,而不会因为图像内位置的不同而改变卷积核内的权系数。说的再直白一些,就是用一个卷积核不改变其内权系数的情况下卷积处理整张图片(当然CNN中每一层不会只有一个卷积核的,这样说只是为了方便解释而已)。

阅读全文

与哪个神经网络不会权重共享相关的资料

热点内容
网络推销哪个公司好 浏览:358
取水刷卡时显示网络异常怎么回事 浏览:781
软件专用网络与公用网络设置 浏览:533
网络电视没有wifi名称 浏览:869
ip酒店网络营销策略 浏览:339
无线网络用哪个通道好 浏览:371
台式电脑网络黄色感叹号怎么解决 浏览:159
怎么关掉苹果135g网络 浏览:533
微信为什么打语音不走无线网络 浏览:969
4g导航车机网络信号太差 浏览:572
河南化工技师学院电信网络信号 浏览:364
清新广电网络wifi查询 浏览:497
网络延长对接头怎么接线 浏览:616
手机网络连接出现感叹号无法识别网络 浏览:93
网络小说写手软件 浏览:472
新品网络推广要多少钱 浏览:910
安广网络属于哪个网络 浏览:874
香港机场免费无线网络 浏览:674
万能移动网络机顶盒遥控 浏览:395
苹果8p网络差怎么改善 浏览:147

友情链接