深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类

这篇具有很好参考价值的文章主要介绍了深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

多层感知器(Multi-Layer Perceptron)(人工神经网络)

多层感知器模型框架
深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类,人工智能,深度学习,分类,人工智能

MLP用于非线性分类预测

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

深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类,人工智能,深度学习,分类,人工智能
深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类,人工智能,深度学习,分类,人工智能
深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类,人工智能,深度学习,分类,人工智能
深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类,人工智能,深度学习,分类,人工智能

深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类,人工智能,深度学习,分类,人工智能
深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类,人工智能,深度学习,分类,人工智能
深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类,人工智能,深度学习,分类,人工智能
深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类,人工智能,深度学习,分类,人工智能

深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类,人工智能,深度学习,分类,人工智能
深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类,人工智能,深度学习,分类,人工智能
深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类,人工智能,深度学习,分类,人工智能
深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类,人工智能,深度学习,分类,人工智能
深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类,人工智能,深度学习,分类,人工智能
深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类,人工智能,深度学习,分类,人工智能
MLP模型框架
深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类,人工智能,深度学习,分类,人工智能
MLP实现多分类预测
深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类,人工智能,深度学习,分类,人工智能
深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类,人工智能,深度学习,分类,人工智能

实战准备

Keras

Keras是一个用Python编写的用于神经网络开发的应用接口,调用开接口可以实现神经网络、卷积神经网络、循环神经网络等常用深度学习算法的开发
特点:

  • 集成了深度学习中各类成熟的算法,容易安装和使用,样例丰富,教程和文档也非常详细
  • 能够以TensorFlow,或者Theano作为后端运行

Keras or 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))
model.add(Dense(units=1,activation='sigmoid'))
# 通过.compile()配置模型求解过程参数
model.compile(loss='categorical_crossentropy',optimizer='sgd'])
# 训练模型
model.fit(x_train,y_train,epochs=5)

深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类,人工智能,深度学习,分类,人工智能
实战-建立MLP实现非线性二分类
深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类,人工智能,深度学习,分类,人工智能
任务:基于data.csv数据,建立mlp模型,计算其在测试数据上的准确率,可视化模型预测结果︰

  • 进行数据分离:

test_size=0.33,random_state=10

  • 模型结构:一层隐藏层,有20个神经元

深度学习-多层感知器-建立MLP实现非线性二分类-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_crossentropy')

模型训练

mlp.fit(X_train,y_train,epochs=3000)

结果预测

y_test_predict = mlp.predict_classes(X_test)

把预测结果转换为可用于索引的Series类型

y_range_predict = pd.Series([i[0] for i in y_range_predict])

实战:MLP实现图像多分类
深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类,人工智能,深度学习,分类,人工智能
任务:基于mnist数据集,建立mlp模型,实现0-9数字的十分类:

  • 实现mnist数据载入,可视化图形数字
  • 完成数据预处理:图像数据维度转换与归一化、输出结果格式转换
  • 计算模型在预测数据集的准确率
  • 模型结构:两层隐藏层,每层有392个神经元

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

  • 官方网站: http://yann.lecun.com/exdb/mnist/
  • 一共4个文件,训练集、训练集标签、测试集、测试集标签

加载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_crossentropy',optimizer='adam'])

模型训练

mlp.fit(X_train_normal,y_train_format,epochs=10)

实战-建立MLP实现非线性二分类

任务:基于data.csv数据,建立mlp模型,计算其在测试数据上的准确率,可视化模型预测结果

  • 进行数据分离test_size=0.33,random_state=10
  • 模型结构:一层隐藏层,有20个神经元

加载数据

import pandas as pd
import numpy as np
data = pd.read_csv('data.csv')
data.head()

赋值

X = data.drop(['y'],axis=1)
y = data.loc[:,'y']
X.head()

数据可视化

from matplotlib import pyplot as plt
fig1 = plt.figure(figsize=(5,5))
passed=plt.scatter(X.loc[:,'x1'][y==1],X.loc[:,'x2'][y==1])
failed=plt.scatter(X.loc[:,'x1'][y==0],X.loc[:,'x2'][y==0])
plt.legend((passed,failed),('passed','failed'))
plt.xlabel('x1')
plt.ylabel('x2')
plt.title('raw data')
plt.show()

深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类,人工智能,深度学习,分类,人工智能
数据分离

from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.33,random_state=10)
print(X_train.shape,X_test.shape,X.shape)

深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类,人工智能,深度学习,分类,人工智能
建立模型

from keras.models import Sequential
from keras.layers import Dense, Activation
mlp = Sequential()
mlp.add(Dense(units=20, input_dim=2, activation='sigmoid'))
mlp.add(Dense(units=1,activation='sigmoid'))
mlp.summary()

深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类,人工智能,深度学习,分类,人工智能
配置

mlp.compile(optimizer='adam',loss='binary_crossentropy')

训练

mlp.fit(X_train,y_train,epochs=3000)

深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类,人工智能,深度学习,分类,人工智能
计算模型预测准确率

y_train_predict = mlp.predict_classes(X_train)
from sklearn.metrics import accuracy_score
accuracy_train = accuracy_score(y_train,y_train_predict)
print(accuracy_train)

深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类,人工智能,深度学习,分类,人工智能
测试数据集准确率

y_test_predict = mlp.predict_classes(X_test)
accuracy_test = accuracy_score(y_test,y_test_predict)
print(accuracy_test)

深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类,人工智能,深度学习,分类,人工智能
查看数据格式

print(y_train_predict[0:10])

生成点集 预测

xx, yy = np.meshgrid(np.arange(0,1,0.01),np.arange(0,1,0.01))
x_range = np.c_[xx.ravel(),yy.ravel()]
y_range_predict = mlp.predict_classes(x_range)
print(type(y_range_predict))

转换格式

y_range_predict_form = pd.Series(i[0] for i in y_range_predict)

print(y_range_predict_form)

可视化

fig2 = plt.figure(figsize=(5,5))
passed_predict=plt.scatter(x_range[:,0][y_range_predict_form==1],x_range[:,1][y_range_predict_form==1])
failed_predict=plt.scatter(x_range[:,0][y_range_predict_form==0],x_range[:,1][y_range_predict_form==0])

passed=plt.scatter(X.loc[:,'x1'][y==1],X.loc[:,'x2'][y==1])
failed=plt.scatter(X.loc[:,'x1'][y==0],X.loc[:,'x2'][y==0])
plt.legend((passed,failed,passed_predict,failed_predict),('passed','failed','passed_predict','failed_predict'))
plt.xlabel('x1')
plt.ylabel('x2')
plt.title('prediction result')
plt.show()

深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类,人工智能,深度学习,分类,人工智能

实战二:MLP实现图像多分类

基于mnist数据集,建立mlp模型,实现0-9数字的十分类task::

  1. 实现mnist数据载入,可视化图形数字
  2. 完成数据预处理:图像数据维度转换与归一化、输出结果格式转换
  3. 计算模型在预测数据集的准确率
  4. 模型结构:两层隐藏层,每层有392个神经元

载入数据

from keras.datasets import mnist
(X_train,y_train),(X_test,y_test) = mnist.load_data()

查看数据类别和维度

print(type(X_train),X_train.shape)

深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类,人工智能,深度学习,分类,人工智能
可视化一个数据

img1 = X_train[0]
%matplotlib inline
from matplotlib import pyplot as plt
fig1 = plt.figure(figsize=(3,3))
plt.imshow(img1)
plt.title('image size: 28 X 28')
plt.show()

创建一个新数组

feature_size = img1.shape[0]*img1.shape[1]
X_train_format = X_train.reshape(X_train.shape[0],feature_size)
X_test_format = X_test.reshape(X_test.shape[0],feature_size)


print(X_train_format.shape)

归一化

X_train_normal = X_train_format/255
X_test_normal = X_test_format/255

输出结果转换

from keras.utils import to_categorical
y_train_format = to_categorical(y_train)
y_test_format = to_categorical(y_test)
print(y_train_format[0])

深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类,人工智能,深度学习,分类,人工智能
查看转换效果

print(X_train_normal.shape,y_train_format.shape)

深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类,人工智能,深度学习,分类,人工智能
设置模型

from keras.models import Sequential
from keras.layers import Dense, Activation

mlp = Sequential()
mlp.add(Dense(units=392,activation='relu',input_dim=784))
mlp.add(Dense(units=392,activation='relu'))
mlp.add(Dense(units=10,activation='softmax'))
mlp.summary()

深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类,人工智能,深度学习,分类,人工智能
模型配置

mlp.compile(loss='categorical_crossentropy',optimizer='adam',metrics=['categorical_accuracy'])

训练

mlp.fit(X_train_normal,y_train_format,epochs=10)

深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类,人工智能,深度学习,分类,人工智能
评估模型

y_train_predict = mlp.predict_classes(X_train_normal)
print(type(y_train_predict))
print(y_train_predict[0:10])
from sklearn.metrics import accuracy_score
accuracy_train = accuracy_score(y_train,y_train_predict)
print(accuracy_train)
y_test_predict = mlp.predict_classes(X_test_normal)
accuracy_test = accuracy_score(y_test,y_test_predict)
print(accuracy_test)

深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类,人工智能,深度学习,分类,人工智能
查看结果、

img2 = X_test[100]
fig2 = plt.figure(figsize=(3,3))
plt.imshow(img2)
plt.title(y_test_predict[100])
plt.show()

深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类,人工智能,深度学习,分类,人工智能

img2 = X_test[19]
fig2 = plt.figure(figsize=(3,3))
plt.imshow(img2)
plt.title(y_test_predict[19])
plt.show()

深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类,人工智能,深度学习,分类,人工智能

# coding:utf-8
import matplotlib as mlp
font2 = {'family' : 'SimHei',
'weight' : 'normal',
'size'   : 20,
}
mlp.rcParams['font.family'] = 'SimHei'
mlp.rcParams['axes.unicode_minus'] = False
a = [i for i in range(1,10)]
fig4 = plt.figure(figsize=(5,5))
for i in a:
    plt.subplot(3,3,i)
    plt.tight_layout()
    plt.imshow(X_test[i])
    plt.title('predict:{}'.format(y_test_predict[i]),font2)
    plt.xticks([])
    plt.yticks([])

深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类,人工智能,深度学习,分类,人工智能文章来源地址https://www.toymoban.com/news/detail-821078.html

环境版本

numpy 1.20.3
matplotlib 3.4.3
pandas 1.3.4
keras 2.6.0
scikit-learn 0.24.2

到了这里,关于深度学习-多层感知器-建立MLP实现非线性二分类-MLP实现图像多分类的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【深度学习 | 感知器 & MLP(BP神经网络)】掌握感知的艺术: 感知器和MLP-BP如何革新神经网络

    🤵‍♂️ 个人主页: @AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!🐱‍🏍 🙋‍♂️声明:本人目前大学就读于大二,研究兴趣方向人工智能硬件(虽然硬件还没开始玩,但一直

    2024年02月12日
    浏览(29)
  • 人工智能专栏第六讲——多层感知机(Multilayer Perceptron,MLP)

    本篇文章我们将介绍一种常用的人工神经网络模型——多层感知机(Multilayer Perceptron,MLP),它是一种前向反馈网络,具有强大的处理能力和表达能力,被广泛应用于分类、回归、识别等各种任务中。 1. 什么是多层感知机? 多层感知机是一种基于前馈神经网络的结构,由输

    2024年02月05日
    浏览(65)
  • 《动手学深度学习》——多层感知机

    参考资料: 《动手学深度学习》 隐藏层 + 激活函数能够模拟任何连续函数。 4.1.2.1 ReLu函数 ReLU ⁡ ( x ) = max ⁡ ( x , 0 ) operatorname{ReLU}(x) = max(x, 0) ReLU ( x ) = max ( x , 0 ) 当输入为负时,ReLU 的导数为 0 ;当输出为负时,ReLU 的导数为 1 。 ReLU的优势在于它的求导非常简单,要么让

    2024年02月12日
    浏览(45)
  • 李沐《动手学深度学习》多层感知机 深度学习相关概念

    李沐《动手学深度学习》预备知识 张量操作及数据处理 李沐《动手学深度学习》预备知识 线性代数及微积分 李沐《动手学深度学习》线性神经网络 线性回归 李沐《动手学深度学习》线性神经网络 softmax回归 李沐《动手学深度学习》多层感知机 模型概念和代码实现 教材:

    2024年01月20日
    浏览(37)
  • 多层感知机与深度学习算法概述

    读研之前那会儿我们曾纠结于机器学习、深度学习、神经网络这些概念的异同。现在看来深度学习这一算法竟然容易让人和他的爸爸机器学习搞混…可见深度学习技术的影响力之大。深度学习,作为机器学习家族中目前最有价值的一种算法,正在悄悄改变着世界以及我们生活

    2024年02月09日
    浏览(48)
  • 李沐深度学习-激活函数/多层感知机文档

    multilayer perceptron (MLP):多层感知机(多层神经网络) (hidden layer)隐藏层: 介于输入层和输出层之间的网络层 输入层不涉及计算,如果一个神将网络由三层组成,则多层感知机层数为2 多层感知机中隐藏层和输出层都是全连接 隐藏层的输出(也叫隐藏层变量或隐藏变量) 隐藏层单元

    2024年01月24日
    浏览(27)
  • (5)深度学习学习笔记-多层感知机-pytorch lightning版

    pytorch lighting是导师推荐给我学习的一个轻量级的PyTorch库,代码干净简洁,使用pl更容易理解ML代码,对于初学者的我还是相对友好的。 pytorch lightning官网网址 https://lightning.ai/docs/pytorch/stable/levels/core_skills.html 代码如下: 代码如下:(可以直接把download改为true下载) 更多pl的方

    2024年02月12日
    浏览(34)
  • wps图表怎么改横纵坐标,MLP 多层感知器和CNN卷积神经网络区别

    目录 wps表格横纵坐标轴怎么设置? MLP (Multilayer Perceptron) 多层感知器 CNN (Convolutional Neural Network) 卷积神经网络

    2024年02月15日
    浏览(29)
  • 计算机视觉与深度学习 | 非线性优化理论:图优化、高斯牛顿法和列文伯格-马夸尔特算法

    ===================================================== github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 ===================================================== 计算机视觉与深度学习 | SLAM国内外研究现状 计算机视觉与深度学习 | 视觉惯性SLAM的基础理论 计算机

    2024年02月08日
    浏览(38)
  • 【AI】《动手学-深度学习-PyTorch版》笔记(十四):多层感知机

    在前面介绍过,使用softmax回归来处理分类问题时,每个输出通过都一个仿射函数计算,网络结构如下,输入和输出之间为全链接层: 多层感知机就是在输入和输出中间再添加一个或多个全链接层,将中间的层称为“隐藏层”,下图为添加了一个全链接层的网络结构: 现实世

    2024年02月13日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包