深度学习(三):Keras初探:多层感知机

作者: monte3card | 来源:发表于2017-06-12 13:22 被阅读0次

之前使用Keras构建了简单的前馈神经网络,并通过SGD方式进行训练,很好地已完成红酒分类任务。现在我们通过复杂一些的任务来看看BP神经网络的性能。我们选择mnist手写数字库来进行测试,Keras包含了这个数据库,可以通过下面的方式来调用此数据库:

#通过Keras导入mnist数据库
from keras.datasets import mnist
# keras中的mnist数据集已经被划分成了60,000个训练集,10,000个测试集的形式
(X_train, y_train), (X_test, y_test) = mnist.load_data()

读取数据并且构建Keras所需的训练集和测试集(张量)之后,开始构建神
经网络:

  • 多层感知机(增加dropout层)

      model.add(Dense(256, activation='relu', input_dim=784))
      model.add(Dropout(0.2))
      model.add(Dense(256, activation='relu'))
      model.add(Dropout(0.2))
      model.add(Dense(10, activation='softmax'))
    
  • 多层感知机

      model.add(Dense(256, activation='relu', input_dim=784))
      model.add(Dense(256, activation='relu'))
      model.add(Dense(10, activation='softmax'))
    
  • 简单前馈神经网络

    model.add(Dense(256, activation='relu', input_dim=784))
    model.add(Dense(10, activation='softmax'))

之后通过编译训练,就可以分别得到不同神经网络的分类结果。

    sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
    model.compile(loss='categorical_crossentropy',
          optimizer=sgd,
          metrics=['accuracy'])
    hist=model.fit(train_x_scaled, y_train,
      epochs=20,
      batch_size=10,validation_data=(test_x_scaled, y_test))

结果分析:比较图2、图3可以看到多层感知机要比简单前馈神经网络出现过拟合现象(虽然都不算很明显),而图1和图2相比较,可以看出增加dropout层之后的多层感知机出现过拟合现象更晚,说明dropout对过拟合是有一定抑制作用的。

多层感知机+dropout层 多层感知机 简单前馈神经网络

最后比较一下,三种神经网络的性能,比较明显多层感知器+dropout层要优化其它两种神经网络。(虽然相差不多)

性能比较

完整的程序和数据:下载
欢迎访问我的博客monte3card's blog

相关文章

  • 深度学习(三):Keras初探:多层感知机

    之前使用Keras构建了简单的前馈神经网络,并通过SGD方式进行训练,很好地已完成红酒分类任务。现在我们通过复杂一...

  • 反馈神经网络

    1、Reference 多层感知机MLP(机器学习5)多层感知机原理详解 & Python与R实现深度学习笔记——...

  • TensorFlow HOWTO 4.1 多层感知机(分类)

    4.1 多层感知机(分类) 这篇文章开始就是深度学习了。多层感知机的架构是这样: 输入层除了提供数据之外,不干任何...

  • 深度学习-多层感知机

    多层感知机 概念:多层感知机就是含有至少一个隐藏层的由全连接层组成的神经网络,且每个隐藏层的输出通过激活函数进行变...

  • 深度学习:多层感知机

    @[toc] 多层感知机 multilayer perceptron 线性模型可能出错 线性模型的单调性并不是所有...

  • 一文理清深度学习前馈神经网络

    ? Index 多层感知机(MLP)介绍 深度神经网络的激活函数 深度神经网络的损失函数 多层感知机的反向传播算法...

  • TensorFlow 深度学习基本概念

    1. 深度学习 特性: 多层:单层神经网络其实就是感知机(1958年由Frank Rosenblatt提出),感知...

  • Keras深度学习--多层感知器

    推荐书籍:魏贞原《深度学习,基于Keras的Python实践》 人工神经网络也被称为多层感知器(MLP, Mult...

  • ML4 - 深度学习 Deep Learning

    6. Deep Learning 简介 最先开始的是感知机,然后是多层感知机,深度学习其实就是多加了隐藏层。 全连...

  • 02-25:DNN算法

    DNN算法 多层感知机MLP 2、一个例程代码 class MLP(tf.keras.Model): def ...

网友评论

    本文标题:深度学习(三):Keras初探:多层感知机

    本文链接:https://www.haomeiwen.com/subject/tvjlqxtx.html