keras多层感知器识别手写数字

2.Keras建立多层感知器模型(接上一篇)

2.1简单介绍多层感知器模型

注:以下模型及其说明来自于《TensorFlow+Keras深度学习人工智能实践应用》林大贵 著

以矩阵方式仿真多层感知器模型的工作方式(如下图所示)

多层感知器模型的工作方式
建立输入与隐藏层的公式:

h1=ReLu(x*w1+b1)

变量名 说明
输入层 x仿真输入神经元接收外界传送消息,如上图所示,共有784个神经元。
隐藏层h1 隐藏层h1模拟内部神经元,如上图所示,共有256个隐藏神经元。
权重 权重模拟神经元的轴突,连接输入与接收神经元,负责传送信息。连接输入层(784个神经元)与隐藏层(256个神经元),为了让两层的每一个神经元都相互连接,总共需要784*256=200704个突触。所以w1(权重)必须是784*256的矩阵,用来模拟这些突触的功能。
偏差值b1 偏差值b1仿真突触的结构,代表接收神经元容易被活化的程度,偏差值越高,越容易被活化并传递信息。如上图所示,因为隐藏层共有256个神经元,所以偏差值是长度为256的向量。
激活函数 激活函数仿真神经传导的工作方式,在此我们使用ReLu激活函数接收刺激的总和:(x*w1+b1),经过激活函数ReLu的运算,大于临界值时,会传递至下一个神经元。

建立隐藏层与输出层公式:

y=softmax(h1*w2+b2)

变量名 说明
隐藏层h1 隐藏层h1模拟内部神经元,共有256个隐藏神经元。
输出层y 模拟输出神经元,就是预测的结果,共有10个输出神经元。对应我们希望预测的数字,从0到9共有10个结果。
权重w2 权重模拟神经元的轴突,连接输入与接收神经元,负责传送信息。连接隐藏层(256个神经元)与输出层(10个神经元),为了让两层的每一个神经元互相连接,总共需要25610=2560个轴突。所以(w2)权重必须是25610的矩阵,用来模拟这些轴突的功能
偏差值b2 偏差值b2仿真突触的结构,代表接收神经元容易被活化的程度,偏差值越高,越容易被活化并传递信息。如上图所示,因为接收神经元是输出层(10个神经元),所以偏差值是长度为10的向量。
激活函数 在输出层中,我们使用softmax激活函数,接收刺激的总和(w2*h1+b2)经过softmax运算后的输出是一个概率分布,共有10个输出,数值越高代表概率越高,例如输出结果由0算起第5个数字数值最高,代表预测结果是5。

2.2建立多层感知器模型的步骤

建立多层感知器模型识别MNIST数据集中的手写数字步骤如下图所示
在这里插入图片描述

2.3对数据进行预处理

输入上一篇文章讲到的关键代码

import numpy as np                             #导入相关包
import pandas as pd
from keras.utils import np_utils
from keras.datasets import mnist
np.random.seed(10)

(X_train_image,y_train_label),(X_test_image,y_test_label)=mnist.load_data() #读取MNIST数据

import matplotlib.pyplot as plt
def plot_image(image):                     #定义显示某个数字图像的函数
    fig=plt.gcf()
    fig.set_size_inches(2,2)
    plt.imshow(image,cmap='binary')
    plt.show()

def plot_images_labels_prediction(images,labels,prediction,idx,num=10):   #定义显示features,labels和prediction的函数
    fig=plt.gcf()
    fig
  • 8
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值