• 欢迎光临~

【神经网络】多层感知机

开发技术 开发技术 2022-08-23 次浏览

多层感知机

Outline

【神经网络】多层感知机

传统的线性神经网络存在一个问题:不论增加任何数量的节点,最终效果等价于一个节点。本篇文章为这个问题提供了一个可能的解决方案:对于部分节点,使用非线性函数代替线性函数。

Method

1.ReLU函数(实际使用较多):只保留正数。

【神经网络】多层感知机

 2.sigmoid函数:将值映射到0到1之间。

【神经网络】多层感知机

【神经网络】多层感知机

 3.tanh函数:将值映射到-1到1之间。

【神经网络】多层感知机

使用方法(Gluon)

net = nn.Sequential()
net.add(nn.Dense(256, activation='relu'),nn.Dense(256, activation='relu'),//新增了一个全连接层作为隐藏层,它的隐藏单元个数为256,并使用ReLU函数作为激活函数。
        nn.Dense(10))
net.initialize(init.Normal(sigma=0.01))

效果

softmax的learning_rate设为0.1,mlp的learning_rate设为0.5。

softmax:最高85.9%

【神经网络】多层感知机

mlp:最高87%

【神经网络】多层感知机

Discussion

虽然采取了新的ReLU隐藏层,但实际效果没有想象中好。如果设置learning_rate为0.2,在训练200轮的情况下有机会达到0.9的测试集正确率。

【神经网络】多层感知机

如果调整softmax和mlp的learning_rate和训练轮数并收集不同参数的数据,能够得到更具说服力的实验结果。

程序员灯塔
转载请注明原文链接:【神经网络】多层感知机
喜欢 (0)