sknn多层感知器分类器

时间:2016-05-14 15:15:31

标签: python neural-network

我在python中使用以下神经网络分类器

from sknn.mlp import Layer,Classifier

nn = mlp.Classifier(
            layers=[
                mlp.Layer("Tanh", units=n_feat/8),
                mlp.Layer("Sigmoid", units=n_feat/16),
                mlp.Layer("Softmax", units=n_targets)],
            n_iter=50,
            n_stable=10,
            batch_size=25,
            learning_rate=0.002,
            learning_rule="momentum",
            valid_size=0.1,
            verbose=1)

工作得很好。我的问题是,如果我需要100,200或500个隐藏图层,如何继续?我是否必须手动指定每一层,或者有人在MLP中为MLP指定更好的想法?

1 个答案:

答案 0 :(得分:1)

您可以创建一些基于循环的机制来构建我想要的层列表,但这里存在更大的问题。具有数百个层的标准MLP可能在训练方面非常昂贵 - 无论是在计算速度还是在内存使用方面。 MLP通常只有一个或两个隐藏层,或者偶尔会有一些隐藏层。但是对于能够真正受益于更多隐藏层的问题,将deep learning领域的一些经验教训纳入其中变得非常重要。例如,对于图像上的对象分类,使用所有完全连接的图层是非常低效的,因为您对识别空间局部图案感兴趣,因此空间距离像素或区域之间的相互作用主要是噪声。 (这是使用深度卷积神经网络的完美案例。)

尽管已经创建了一些非常深度网络,但值得指出的是,即使是谷歌非常强大的Inception-v3模型也只有42层深度。无论如何,如果您对建立深度模型感兴趣,我建议您阅读此Deep Learning book。从我所读到的内容来看,它似乎是一个非常好的介绍。希望有所帮助!