神经网络二分类(神经网络二分类代码)
大家好!今天让创意岭的小编来大家介绍下关于神经网络二分类的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。
开始之前先推荐一个非常厉害的Ai人工智能工具,一键生成原创文章、方案、文案、工作计划、工作报告、论文、代码、作文、做题和对话答疑等等
只需要输入关键词,就能返回你想要的内容,越精准,写出的就越详细,有微信小程序端、在线网页版、PC客户端
创意岭作为行业内优秀的企业,服务客户遍布全球各地,如需了解SEO相关业务请拨打电话175-8598-2043,或添加微信:1454722008
本文目录:
一、神经网络:卷积神经网络(CNN)
神经网络 最早是由心理学家和神经学家提出的,旨在寻求开发和测试神经的计算模拟。
粗略地说, 神经网络 是一组连接的 输入/输出单元 ,其中每个连接都与一个 权 相关联。在学习阶段,通过调整权值,使得神经网络的预测准确性逐步提高。由于单元之间的连接,神经网络学习又称 连接者学习。
神经网络是以模拟人脑神经元的数学模型为基础而建立的,它由一系列神经元组成,单元之间彼此连接。从信息处理角度看,神经元可以看作是一个多输入单输出的信息处理单元,根据神经元的特性和功能,可以把神经元抽象成一个简单的数学模型。
神经网络有三个要素: 拓扑结构、连接方式、学习规则
神经网络的拓扑结构 :神经网络的单元通常按照层次排列,根据网络的层次数,可以将神经网络分为单层神经网络、两层神经网络、三层神经网络等。结构简单的神经网络,在学习时收敛的速度快,但准确度低。
神经网络的层数和每层的单元数由问题的复杂程度而定。问题越复杂,神经网络的层数就越多。例如,两层神经网络常用来解决线性问题,而多层网络就可以解决多元非线性问题
神经网络的连接 :包括层次之间的连接和每一层内部的连接,连接的强度用权来表示。
根据层次之间的连接方式,分为:
1)前馈式网络:连接是单向的,上层单元的输出是下层单元的输入,如反向传播网络,Kohonen网络
2)反馈式网络:除了单项的连接外,还把最后一层单元的输出作为第一层单元的输入,如Hopfield网络
根据连接的范围,分为:
1)全连接神经网络:每个单元和相邻层上的所有单元相连
2)局部连接网络:每个单元只和相邻层上的部分单元相连
神经网络的学习
根据学习方法分:
感知器:有监督的学习方法,训练样本的类别是已知的,并在学习的过程中指导模型的训练
认知器:无监督的学习方法,训练样本类别未知,各单元通过竞争学习。
根据学习时间分:
离线网络:学习过程和使用过程是独立的
在线网络:学习过程和使用过程是同时进行的
根据学习规则分:
相关学习网络:根据连接间的激活水平改变权系数
纠错学习网络:根据输出单元的外部反馈改变权系数
自组织学习网络:对输入进行自适应地学习
摘自《数学之美》对人工神经网络的通俗理解:
神经网络种类很多,常用的有如下四种:
1)Hopfield网络,典型的反馈网络,结构单层,有相同的单元组成
2)反向传播网络,前馈网络,结构多层,采用最小均方差的纠错学习规则,常用于语言识别和分类等问题
3)Kohonen网络:典型的自组织网络,由输入层和输出层构成,全连接
4)ART网络:自组织网络
深度神经网络:
Convolutional Neural Networks(CNN)卷积神经网络
Recurrent neural Network(RNN)循环神经网络
Deep Belief Networks(DBN)深度信念网络
深度学习是指多层神经网络上运用各种机器学习算法解决图像,文本等各种问题的算法集合。深度学习从大类上可以归入神经网络,不过在具体实现上有许多变化。
深度学习的核心是特征学习,旨在通过分层网络获取分层次的特征信息,从而解决以往需要人工设计特征的重要难题。
Machine Learning vs. Deep Learning
神经网络(主要是感知器)经常用于 分类
神经网络的分类知识体现在网络连接上,被隐式地存储在连接的权值中。
神经网络的学习就是通过迭代算法,对权值逐步修改的优化过程,学习的目标就是通过改变权值使训练集的样本都能被正确分类。
神经网络特别适用于下列情况的分类问题:
1) 数据量比较小,缺少足够的样本建立模型
2) 数据的结构难以用传统的统计方法来描述
3) 分类模型难以表示为传统的统计模型
缺点:
1) 需要很长的训练时间,因而对于有足够长训练时间的应用更合适。
2) 需要大量的参数,这些通常主要靠经验确定,如网络拓扑或“结构”。
3) 可解释性差 。该特点使得神经网络在数据挖掘的初期并不看好。
优点:
1) 分类的准确度高
2)并行分布处理能力强
3)分布存储及学习能力高
4)对噪音数据有很强的鲁棒性和容错能力
最流行的基于神经网络的分类算法是80年代提出的 后向传播算法 。后向传播算法在多路前馈神经网络上学习。
定义网络拓扑
在开始训练之前,用户必须说明输入层的单元数、隐藏层数(如果多于一层)、每一隐藏层的单元数和输出层的单元数,以确定网络拓扑。
对训练样本中每个属性的值进行规格化将有助于加快学习过程。通常,对输入值规格化,使得它们落入0.0和1.0之间。
离散值属性可以重新编码,使得每个域值一个输入单元。例如,如果属性A的定义域为(a0,a1,a2),则可以分配三个输入单元表示A。即,我们可以用I0 ,I1 ,I2作为输入单元。每个单元初始化为0。如果A = a0,则I0置为1;如果A = a1,I1置1;如此下去。
一个输出单元可以用来表示两个类(值1代表一个类,而值0代表另一个)。如果多于两个类,则每个类使用一个输出单元。
隐藏层单元数设多少个“最好” ,没有明确的规则。
网络设计是一个实验过程,并可能影响准确性。权的初值也可能影响准确性。如果某个经过训练的网络的准确率太低,则通常需要采用不同的网络拓扑或使用不同的初始权值,重复进行训练。
后向传播算法学习过程:
迭代地处理一组训练样本,将每个样本的网络预测与实际的类标号比较。
每次迭代后,修改权值,使得网络预测和实际类之间的均方差最小。
这种修改“后向”进行。即,由输出层,经由每个隐藏层,到第一个隐藏层(因此称作后向传播)。尽管不能保证,一般地,权将最终收敛,学习过程停止。
算法终止条件:训练集中被正确分类的样本达到一定的比例,或者权系数趋近稳定。
后向传播算法分为如下几步:
1) 初始化权
网络的权通常被初始化为很小的随机数(例如,范围从-1.0到1.0,或从-0.5到0.5)。
每个单元都设有一个偏置(bias),偏置也被初始化为小随机数。
2) 向前传播输入
对于每一个样本X,重复下面两步:
向前传播输入,向后传播误差
计算各层每个单元的输入和输出。输入层:输出=输入=样本X的属性;即,对于单元j,Oj = Ij = Xj。隐藏层和输出层:输入=前一层的输出的线性组合,即,对于单元j, Ij =wij Oi + θj,输出=
3) 向后传播误差
计算各层每个单元的误差。
输出层单元j,误差:
Oj是单元j的实际输出,而Tj是j的真正输出。
隐藏层单元j,误差:
wjk是由j到下一层中单元k的连接的权,Errk是单元k的误差
更新 权 和 偏差 ,以反映传播的误差。
权由下式更新:
其中,△wij是权wij的改变。l是学习率,通常取0和1之间的值。
偏置由下式更新:
其中,△θj是偏置θj的改变。
Example
人类视觉原理:
深度学习的许多研究成果,离不开对大脑认知原理的研究,尤其是视觉原理的研究。1981 年的诺贝尔医学奖,颁发给了 David Hubel(出生于加拿大的美国神经生物学家) 和Torsten Wiesel,以及Roger Sperry。前两位的主要贡献,是“发现了视觉系统的信息处理”, 可视皮层是分级的 。
人类的视觉原理如下:从原始信号摄入开始(瞳孔摄入像素Pixels),接着做初步处理(大脑皮层某些细胞发现边缘和方向),然后抽象(大脑判定,眼前的物体的形状,是圆形的),然后进一步抽象(大脑进一步判定该物体是只气球)。
对于不同的物体,人类视觉也是通过这样逐层分级,来进行认知的:
在最底层特征基本上是类似的,就是各种边缘,越往上,越能提取出此类物体的一些特征(轮子、眼睛、躯干等),到最上层,不同的高级特征最终组合成相应的图像,从而能够让人类准确的区分不同的物体。
可以很自然的想到:可以不可以模仿人类大脑的这个特点,构造多层的神经网络,较低层的识别初级的图像特征,若干底层特征组成更上一层特征,最终通过多个层级的组合,最终在顶层做出分类呢?答案是肯定的,这也是许多深度学习算法(包括CNN)的灵感来源。
卷积神经网络是一种多层神经网络,擅长处理图像特别是大图像的相关机器学习问题。卷积网络通过一系列方法,成功将数据量庞大的图像识别问题不断降维,最终使其能够被训练。
CNN最早由Yann LeCun提出并应用在手写字体识别上。LeCun提出的网络称为LeNet,其网络结构如下:
这是一个最典型的卷积网络,由 卷积层、池化层、全连接层 组成。其中卷积层与池化层配合,组成多个卷积组,逐层提取特征,最终通过若干个全连接层完成分类。
CNN通过卷积来模拟特征区分,并且通过卷积的权值共享及池化,来降低网络参数的数量级,最后通过传统神经网络完成分类等任务。
降低参数量级:如果使用传统神经网络方式,对一张图片进行分类,那么,把图片的每个像素都连接到隐藏层节点上,对于一张1000x1000像素的图片,如果有1M隐藏层单元,一共有10^12个参数,这显然是不能接受的。
但是在CNN里,可以大大减少参数个数,基于以下两个假设:
1)最底层特征都是局部性的,也就是说,用10x10这样大小的过滤器就能表示边缘等底层特征
2)图像上不同小片段,以及不同图像上的小片段的特征是类似的,也就是说,能用同样的一组分类器来描述各种各样不同的图像
基于以上两个假设,就能把第一层网络结构简化
用100个10x10的小过滤器,就能够描述整幅图片上的底层特征。
卷积运算的定义如下图所示:
如上图所示,一个5x5的图像,用一个3x3的 卷积核 :
101
010
101
来对图像进行卷积操作(可以理解为有一个滑动窗口,把卷积核与对应的图像像素做乘积然后求和),得到了3x3的卷积结果。
这个过程可以理解为使用一个过滤器(卷积核)来过滤图像的各个小区域,从而得到这些小区域的特征值。在实际训练过程中, 卷积核的值是在学习过程中学到的。
在具体应用中,往往有多个卷积核,可以认为, 每个卷积核代表了一种图像模式 ,如果某个图像块与此卷积核卷积出的值大,则认为此图像块十分接近于此卷积核。如果设计了6个卷积核,可以理解为这个图像上有6种底层纹理模式,也就是用6种基础模式就能描绘出一副图像。以下就是24种不同的卷积核的示例:
池化 的过程如下图所示:
可以看到,原始图片是20x20的,对其进行采样,采样窗口为10x10,最终将其采样成为一个2x2大小的特征图。
之所以这么做,是因为即使做完了卷积,图像仍然很大(因为卷积核比较小),所以为了降低数据维度,就进行采样。
即使减少了许多数据,特征的统计属性仍能够描述图像,而且由于降低了数据维度,有效地避免了过拟合。
在实际应用中,分为最大值采样(Max-Pooling)与平均值采样(Mean-Pooling)。
LeNet网络结构:
注意,上图中S2与C3的连接方式并不是全连接,而是部分连接。最后,通过全连接层C5、F6得到10个输出,对应10个数字的概率。
卷积神经网络的训练过程与传统神经网络类似,也是参照了反向传播算法
第一阶段,向前传播阶段:
a)从样本集中取一个样本(X,Yp),将X输入网络;
b)计算相应的实际输出Op
第二阶段,向后传播阶段
a)计算实际输出Op与相应的理想输出Yp的差;
b)按极小化误差的方法反向传播调整权矩阵。
二、神经网络(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
三、神经网络分类问题
神经网络是新技术领域中的一个时尚词汇。很多人听过这个词,但很少人真正明白它是什么。本文的目的是介绍所有关于神经网络的基本包括它的功能、一般结构、相关术语、类型及其应用。
“神经网络”这个词实际是来自于生物学,而我们所指的神经网络正确的名称应该是“人工神经网络(ANNs)”。在本文,我会同时使用这两个互换的术语。
一个真正的神经网络是由数个至数十亿个被称为神经元的细胞(组成我们大脑的微小细胞)所组成,它们以不同方式连接而型成网络。人工神经网络就是尝试模拟这种生物学上的体系结构及其操作。在这里有一个难题:我们对生物学上的神经网络知道的不多!因此,不同类型之间的神经网络体系结构有很大的不同,我们所知道的只是神经元基本的结构。
The neuron
--------------------------------------------------------------------------------
虽然已经确认在我们的大脑中有大约50至500种不同的神经元,但它们大部份都是基于基本神经元的特别细胞。基本神经元包含有synapses、soma、axon及dendrites。Synapses负责神经元之间的连接,它们不是直接物理上连接的,而是它们之间有一个很小的空隙允许电子讯号从一个神经元跳到另一个神经元。然后这些电子讯号会交给soma处理及以其内部电子讯号将处理结果传递给axon。而axon会将这些讯号分发给dendrites。最后,dendrites带着这些讯号再交给其它的synapses,再继续下一个循环。
如同生物学上的基本神经元,人工的神经网络也有基本的神经元。每个神经元有特定数量的输入,也会为每个神经元设定权重(weight)。权重是对所输入的资料的重要性的一个指标。然后,神经元会计算出权重合计值(net value),而权重合计值就是将所有输入乘以它们的权重的合计。每个神经元都有它们各自的临界值(threshold),而当权重合计值大于临界值时,神经元会输出1。相反,则输出0。最后,输出会被传送给与该神经元连接的其它神经元继续剩余的计算。
Learning
--------------------------------------------------------------------------------
正如上述所写,问题的核心是权重及临界值是该如何设定的呢?世界上有很多不同的训练方式,就如网络类型一样多。但有些比较出名的包括back-propagation, delta rule及Kohonen训练模式。
由于结构体系的不同,训练的规则也不相同,但大部份的规则可以被分为二大类别 - 监管的及非监管的。监管方式的训练规则需要“教师”告诉他们特定的输入应该作出怎样的输出。然后训练规则会调整所有需要的权重值(这是网络中是非常复杂的),而整个过程会重头开始直至数据可以被网络正确的分析出来。监管方式的训练模式包括有back-propagation及delta rule。非监管方式的规则无需教师,因为他们所产生的输出会被进一步评估。
Architecture
--------------------------------------------------------------------------------
在神经网络中,遵守明确的规则一词是最“模糊不清”的。因为有太多不同种类的网络,由简单的布尔网络(Perceptrons),至复杂的自我调整网络(Kohonen),至热动态性网络模型(Boltzmann machines)!而这些,都遵守一个网络体系结构的标准。
一个网络包括有多个神经元“层”,输入层、隐蔽层及输出层。输入层负责接收输入及分发到隐蔽层(因为用户看不见这些层,所以见做隐蔽层)。这些隐蔽层负责所需的计算及输出结果给输出层,而用户则可以看到最终结果。现在,为免混淆,不会在这里更深入的探讨体系结构这一话题。对于不同神经网络的更多详细资料可以看Generation5 essays
尽管我们讨论过神经元、训练及体系结构,但我们还不清楚神经网络实际做些什么。
The Function of ANNs
--------------------------------------------------------------------------------
神经网络被设计为与图案一起工作 - 它们可以被分为分类式或联想式。分类式网络可以接受一组数,然后将其分类。例如ONR程序接受一个数字的影象而输出这个数字。或者PPDA32程序接受一个坐标而将它分类成A类或B类(类别是由所提供的训练决定的)。更多实际用途可以看Applications in the Military中的军事雷达,该雷达可以分别出车辆或树。
联想模式接受一组数而输出另一组。例如HIR程序接受一个‘脏’图像而输出一个它所学过而最接近的一个图像。联想模式更可应用于复杂的应用程序,如签名、面部、指纹识别等。
The Ups and Downs of Neural Networks
--------------------------------------------------------------------------------
神经网络在这个领域中有很多优点,使得它越来越流行。它在类型分类/识别方面非常出色。神经网络可以处理例外及不正常的输入数据,这对于很多系统都很重要(例如雷达及声波定位系统)。很多神经网络都是模仿生物神经网络的,即是他们仿照大脑的运作方式工作。神经网络也得助于神经系统科学的发展,使它可以像人类一样准确地辨别物件而有电脑的速度!前途是光明的,但现在...
是的,神经网络也有些不好的地方。这通常都是因为缺乏足够强大的硬件。神经网络的力量源自于以并行方式处理资讯,即是同时处理多项数据。因此,要一个串行的机器模拟并行处理是非常耗时的。
神经网络的另一个问题是对某一个问题构建网络所定义的条件不足 - 有太多因素需要考虑:训练的算法、体系结构、每层的神经元个数、有多少层、数据的表现等,还有其它更多因素。因此,随着时间越来越重要,大部份公司不可能负担重复的开发神经网络去有效地解决问题。
Conclusion
--------------------------------------------------------------------------------
希望您可以通过本文对神经网络有基本的认识。Generation5现在有很多关于神经网络的资料可以查阅,包括文章及程序。我们有Hopfield、perceptrons(2个)网络的例子,及一些back-propagation个案研究。
Glossary
--------------------------------------------------------------------------------
NN 神经网络,Neural Network
ANNs 人工神经网络,Artificial Neural Networks
neurons 神经元
synapses 神经键
self-organizing networks 自我调整网络
networks modelling thermodynamic properties 热动态性网络模型
四、一文详解图神经网络(二)
《The Graph Neural Network Model》
图领域的应用主要可以分为两种类型 :专注于 图的应用(graph-focused) 和 专注于节点的应用(node-focused) 。对于graph-focused的应用,函数 和具体的节点无关,(即 ),训练时,在一个图的数据集中进行分类或回归。对于node-focused的应用, 函数依赖于具体的节点 ,即
在一个图-节点对的集合 , 表示图的集合, 表示节点集合,图领域问题可以表示成一个有如下数据集的监督学习框架:
其中, 表示集合 中的第 个节点, 表示节点 的期望目标(即标签)。节点 的状态用 表示,该节点的输出用 表示, 为 local transition function , 为 local output function ,那么 和 的更新方式如下:
其中, 分别表示节点 的特征向量、与节点 相连的边的特征向量、节点 邻居节点的状态向量、节点 邻居节点的特征向量。 分别为所有的状态、所有的输出、所有的特征向量、所有节点的特征向量的叠加起来的向量,那么上面函数可以写成如下形式:
其中, 为 global transition function , 为 global output function ,分别是 和 的叠加形式
根据 Banach的不动点理论 ,假设 是一个压缩映射函数,那么式子有唯一不动点解,而且可以通过迭代方式逼近该不动点
其中, 表示 在第 个迭代时刻的值,对于任意初值,迭代的误差是以指数速度减小的,使用迭代的形式写出状态和输出的更新表达式为:
GNN的学习就是估计参数 ,使得函数 能够近似估计训练集
其中, 表示在图 中监督学习的节点,对于graph-focused的任务,需要增加一个特殊的节点,该节点用来作为目标节点,这样, graph-focused 任务和 node-focused 任务都能统一到节点预测任务上,学习目标可以是最小化如下二次损失函数
优化算法基于随机梯度下降的策略,优化步骤按照如下几步进行:
在GNN中,函数 不需要满足特定的约束,直接使用多层前馈神经网络,对于函数 ,则需要着重考虑,因为 需要满足压缩映射的条件,而且与不动点计算相关。下面提出两种神经网络和不同的策略来满足这些需求
对于节点n nn状态的计算,将 改成如下形式
相当于是对节点 的每一个邻居节点使用 ,并将得到的值求和来作为节点 的状态,由此,对上式中的函数 按照如下方式实现:
其中,向量 ,矩阵 定义为两个前向神经网络的输出。更确切地说,令产生矩阵 的网络为transition network,产生向量 的网络为forcing network
其中, , , 表示将 维的向量整理(reshape)成 的矩阵,也就是说,将transition network的输出整理成方形矩阵,然后乘以一个系数就得到 , 就是forcing network的输出
在这里,假定 ,这个可以通过设定transition function的激活函数来满足,比如设定激活函数为 tanh() 。在这种情况下, , 和 分别是 的块矩阵形式和 的堆叠形式,可得:
该式表示 对于任意的参数 是一个压缩映射,矩阵 的 1-norm 定义为:
在这个结构中, 通过多层前馈网络实现,但是,并不是所有的参数 都会被使用,因为同样需要保证 是一个压缩映射函数,这个可以通过惩罚项来实现
其中,惩罚项 在 时为 ,在 时为0,参数 定义为希望的 的压缩系数
NLP新人,欢迎大家一起交流,互相学习,共同成长~~
以上就是关于神经网络二分类相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。
推荐阅读:
神经网络和深度神经网络的区别(卷积神经网络和深度神经网络的区别)