文 | MAC

技术只选择最好的,碾压单隐层
对于共识的处理,MAC多原链结合了AI的神经网络,有机结合所带来的效果是对传统区块链的进一步升华。当然,神经网络也有自己的优缺点,但MAC充分展现出其优势之处,瑕不掩瑜,对总体带来了不一样的效果。
神经网络的发展经历了3次大的转折。由于早期的计算资源的限制,以及数据量不足,导致前2个时期提出的神经网络,大多规模很小,而且在一定程度上还不如传统的统计机器学习方法,而且神经网络的结构相对简单,因此并没有体现出神经网络的潜在价值。

在07年,Hitton提出了利用自编码器来stack by stack的学习图像的表征,然后堆叠起来作为神经网络参数的初始化值,然后在统一采用反向传播算法(BP算法)进行训练,最终准确率有显著的提升。同样的,由于大数据的出现,以及GPU等计算资源的出现,使得深度神经网络的训练得到可能。

(1)由于神经网络天生具备拟合任意复杂函数的特点,因此神经网络你和能力很强,可以做非常复杂的非线性映射。
(2)深度神经网络的参数很多,因此要得到的假设空间维度非常高,有很强大的表征能力。
(3)现代的深度神经网络大多可以用来提取图像,语音,文本的抽象特征,而且提取出来的特征要比人为设定的特定具有更强的泛化性能,可以应用到多个领域。可以学习浅层语义信息,同样可以学习深层语义信息,因此这样便可以自动获取特征。为后面各个不同的任务提供特征。
(4)神经网络通过设计不同的结构,可以改变网络提取特征的方法,同样也可以对拟合目标函数达到不同的效果。其中,从早些时候的Alexnet,到后面的vgg16, vgg19, googlenet, resnet,以及近期提出的双通道网络,都围着这降低参数量,学习更加丰富的特征,以及加快训练速度等角度提出的,可见神经网络具有非常大的灵活性,可以适应于多种不同的任务。
今天,我们要聊的只是其中的一小部分,谈谈单隐层和深层网络间的联系及差异。
单隐层神经网络
单隐层神经网络相当于由多个对率回归模型组成。中间的隐藏层可以看成特征提取的过程,由于对率回归使用了非线性激活函数,所以通过特征提取,就可以把原本线性不可分的数据变得线性可分,最后通过输出层进行线性分类。
特征提取:
隐藏层z⃗ =σ(Wx⃗ +b⃗ )z→=σ(Wx→+b→),其中 x⃗ x→ 是输入向量,z⃗ z→ 是输出向量,WW 是权重矩阵,b⃗ b→ 是偏移向量,σ()σ() 是激活函数。每一层仅仅是把输入 x⃗ x→ 经过简单的操作得到 y⃗ y→。
在线性代数或者计算机图形学中学过,空间中的物体乘以一个矩阵就可以对物体进行放大 / 缩小、升维 / 降维或者旋转;加上一个向量就可以进行平移;这里的非线性激活函数还可以让物体变弯曲,如果使用线性函数作为激活函数,那么无论神经网络有多少层,输出都是输入的线性组合。
因此每层神经网络的作用就是对输入使用线性变换和非线性变换,通过最小化代价函数使得在输出空间中尽量线性可分;如果神经网络学习的效果不好,就会导致在输出空间中不能线性可分。
数据集
实验中通过添加噪声生成了一些非线性可分的二维数据:
1 |
# planar_utils.py 生成数据部分代码 |
实验中使用了sklearn.linear_model.LogisticRegressionCV() 数据进行分类,由于数据线性不可分,因此测试集的准确率只有 47%,因此需要使用多层神经网络进行分类。
经网络模型
实验生成的数据是平面 (二维) 数据,因此输入是一个二维的向量,隐藏层具有四个神经元并且隐藏层使用的激活函数是 Tanh 函数,最后一层需要输出属于哪一类的概率,所以只能使用 Sigmoid 激活函数。
神经网络模型
实验生成的数据是平面 (二维) 数据,因此输入是一个二维的向量,隐藏层具有四个神经元并且隐藏层使用的激活函数是 Tanh 函数,最后一层需要输出属于哪一类的概率,所以只能使用 Sigmoid 激活函数。
构建神经网络模型主要分为以下几部分:
1. 定义神经网络结构 (神经元的个数、隐藏层的层数等)
2. 初始化模型参数
3. 循环
o 实现前向传播 (实现公式 1~4,得到预测值 y^y^,即 a[2])
o 计算代价 (根据前向传播得到的预测值和测试集的标签,实现公式 6,得到代价)
o 实现反向传播,计算梯度
o 梯度下降更新模型参数
定义神经网络结构
在生成的实验数据中,X.shape = (2, 400)、y.shape = (1, 400),因此输入层的神经元个数n[x]=2;隐藏层的神经元个数定义为n[h]=4;输出层神经元的个数n[y]=1。
1 |
def layer_sizes(X, Y): |
初始化模型参数
使用np.random.randn(a, b) 初始化一个形状为 (a, b) 的矩阵,使其元素为标准正态分布中的样本。使用 np.zeros((a, b)) 初始化一个形状为 (a, b) 的矩阵,使其各元素值为 0。
o 如果权值全部初始化为相同的数,那么隐藏层中神经元的输出就都是一样的,通过归纳法可以归纳出这些隐藏层的神经元一直在计算完全一样的函数,所以需要随机初始化打破对称性;
o 如果权值全部初始化为 0,更加糟糕的是不管输入是什么,隐藏层中神经元的输出就都是 0;
o 如果初始化为比较大的数,那么就会导致激活函数输出的值比较大,梯度较小,梯度下降的速度较慢,所以需要初始化为 0 附近的随机数。
1 |
def initialize_parameters(n_x, n_h, n_y): |
前向传播
在前向传播计算预测值时需要缓存中间变量A[1],用于反向传播计算梯度dW[2]。在实验中也缓存了所有中间变量包括Z[1] 和 Z[2]。
1 |
def forward_propagation(X, parameters): |
计算代价
1 |
def compute_cost(A2, Y, parameters): |
反向传播
为了快速计算,实验对所有样本数据使用向量化编程。同时为了表示简单,以下求导公式省去上标(i)。所以对于一个样本数据的输入、隐藏层输入、隐藏层输出和标签分别用小写字母x、z、a 和 y 表示;所有样本数据则对应大写字母 X、Z、A 和 Y。

集成模型
集成单隐层神经网络的所有模块:
1 |
def nn_model(X, Y, n_h, num_iterations = 10000, print_cost=False): |
预测
最后要根据神经网络的输出和阈值,预测输出,即实现公式 5:
1 |
def predict(parameters, X): |







深层神经网络的其它相关
首先,我们搭建的模型叫做神经网络,那么它与神经,或者说与人的大脑运行机制有什么关联么?其实关联不大,有些人猜想大脑也是先从简单部分的开始探测,层层递进,最终得到复杂的结论,甚至有人猜想大脑运行也是与梯度下降法有某些相似之处,但这些说法都是缺乏科学依据的,对于人的大脑运行机制,人类目前来讲还没有搞明白。对于单个人脑神经具体能干些什么,人类还不是很清楚,所以说,其实神经网络与大脑并没有多大关联。
其次,我们来说一下超参数。超参数之所以叫超参数,而不统一称为参数,是因为它与参数是不同的。我们所说的参数,一般指的是神经网络中的w和b,这些参数是可以通过训练学习得到最合适的值。而神经网络中还存在一些必须人为设定的值,例如学习率,层数,每层的神经元个数等等。这些参数都是需要认为的设定,而目前为止,对于超参数的设置还是无迹可寻,所以只能靠一个字:试。这的确是一个不够完善的地方,但随着深度学习的发展,我相信这个问题在未来将会得到很好的解决。
MAC采用深层神经网络主要有两个优点
总的来讲,MAC采用深层神经网络主要有两个优点,第一,对于一些复杂问题,只有加深隐层的层数,才能得到较为准确的模型。所以深层神经网络与之类似,当问题比较复杂时,虽然层数增加了,但神经元却减少了,实际上减少了运算量。看似将问题复杂了,但实际上却是“简化”了。这就是深层神经网络的第二个优势。对于区块链而言,这些相对于单隐层都更具优势,更重要的是在拟合过程中可以更快地收敛归一结果,快速对于MAC多原链来说,虽不是最重要的,但却是关键的。共识方面,MAC不只是有采取了深层网络这一特点,还有反向传播,异步通讯等。

具备神之力的MAC,颠覆时代已成必然。在MAC的诸多技术优势中,神经网络系统在MAC大生态体系中依然占重要位置。在商业应用及与政府协理技术搭建生态系统时为场景应用留下了非常大的发挥空间,预计将以众多MAC独具优势打破,关于MAC更多创造性的技术成就将以何种方式进入我们的生活中?敬请期待哦!

MAC多原链介绍
Multiple Atomic Chain,简称MAC,全球第一公链,以超千万级TPS为特点。是支持多个行业领域去中心化的场景应用商业开发的底层生态平台。现有区块链DAPP开发的应用受限,MAC多原链打破技术壁垒,超强性能支持商业级别应用开发,并且具备自我可循环造血功能,企业端、客户端、开发端三位一体!
MAC多原链TPS公测数据达:1500万左右,办公室日常网络状态下,TPS区间为1000万-5000万稳居全球首位。是真正实现区块链3.0时代生态应用体系开创先锋。
MAC全球两大技术团队-技术团队及山东超算团队 。
超级节点合作商全国达成23个,分布节点合作商700+。

公布MAC全球TPS公测地址:
tps.macblock.io

长按二维码开始测试


Welcome to MAC 多原链
一起打开新大门
MAC
欢迎加入MAC社区的新朋友!
我们是MAC公链,
集合了NDPoS多链原子操作与
DHP分片优化算法的
高速TPS全生态应用价值平台

官网
macblock.io

公众号
MAC多原社区

Telegram
https://0.plus/MultipleAC

https://www.facebook.com/MultipleAC

https://twitter.com/AcMultiple

QQ
Macblock.io : 936390419
MAC多原链

REVIEW
往期回顾




