深度学习之多层感知器(人工神经网络)

多层感知器

在这里插入图片描述


多层感知器的数学表达式


在这里插入图片描述

  • 在不增加高次项数据的情况下,通过MLP实现非线性分类预测:

同或门 或门 异或门:
当x1和x2都为0或1时为1,实现二分类问题在这里插入图片描述

  • MLP模型框架
    在这里插入图片描述
  • MLP实现多分类预测

得到的预测结果群为多个线性无关的单位向量,需要对其进行可视化转换(预处理)

在这里插入图片描述

  • Keras
    Keras是一个用Python编写的用于神经网络开发的应用接口,调用接口可以实现神经网络、卷积神经网络、循环神经网络等常用深度学习算法的开发
    特点:
    • 集成了深度学习中各类成熟的算法,易安装和使用,样例丰富、
    • 能够以TensorFlow或者Theano作为后端运行
  • Tensorflow
    Tensorflow是一个采用数据流图,用于数值计算的开源软件库,可自动计算模型相关的微分导数:非常适合用于神经网络模型的求解(Keras可看作为TensorFlow封装后的一个接口(Keras作为前端,TensorFlow作为后端))
    Keras为用户提供了一个易于交互的外壳,方便进行深度学习的快速开发

Keras建立MLP模型

#建立一个Sequential顺序模型
from keras.models import Sequential
model = Sequential()

#通过.add()叠加各层网络
from keras.layers import Dense
model.add(Dense(units=3,activation='sigmoid',input_dim=3)) //units表示神经元的个数
model.add(Dense(units=1,activation='sigmoid'))

#通过.compile()配置模型求解过程参数
model.compile(loss='categorical_crossenttropy',optimizer='sgd') //optimizer表示优化器

#训练模型
model.fit(x_train,y_train,epochs=5) //epoch:迭代次数

关于实战(1):建立MLP实现非线性二分类的代码实现

#建立MLP模型,查看模型结构:
from keras.models import Sequential
from keras.layers import Dense,Activation

mlp = Sequential()
mlp.add(Dense(20,input_dim=2,activation='sigmoid'))
mlp.add(Dense(1,activation='sigmoid'))
mlp.summary()

#配置模型参数
mlp.compile(optimizer='adam',loss='binary_crossenttropy')

#模型训练
mlp.fit(X_train,y_train,epochs=3000)

#结果预测:
y_test_precit = mlp.predict_classes(X_test)

#把预测结果转换为可用于索引的Series类型:
y_range_predict = pd.Series([i[0] for i in y_range_predict])

mnist数据集介绍:机器学习领域中非常经典的一个数据集,由60000个训练样本跟10000个测试样本组成,每个样本都是一张28*28像素的灰度手写数字图片;包含训练集,训练集标签,测试集,测试集标签

  • 关于实战(2):MLP实现图像多分类的代码实现
#加载mnist数据集:
from keras.datasets import mnist
(X_train,y_train),(X_test,y_test) = mnist.load_data()

#可视化图片
img1 = X_train[0]
fig1 = plt.figure(figsize=(3,3))
plt.imshow(img1)

#转换输出结果格式
from keras.utils import to_categorical
y_train_format = to_categorical(y_train)

#转换输入数据维度
feature_size = (img1.shape[0]*(img1.shape[1])
X_train_format = X_train.reshape(X_train.shape[0],feature_size)

#模型建立:
mlp = Sequential()
mlp.add(Dense(units=392,activation='sigmoid',input_dim=feature_size))
mlp.add(Dense(units=392,activation='sigmoid'))
mlp.add(Dense(units=10,activation='softmax'))

#配置训练参数:
mlp.compile(loss='categorical_crossntropy',optimizer='adam')

#模型训练:
mlp.fit(X_train_normal,y_train_format,epochs=10)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杰杰批

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值