在本文中,我们将了解单层感知器及其使用 TensorFlow 库在Python中的实现。神经网络的工作方式与我们的生物神经元的工作方式相同。
生物神经元的结构
生物神经元具有三个基本功能
接收外部信号。
处理信号并增强是否需要发送信息。
将信号传递给目标细胞,目标细胞可以是另一个神经元或腺体。
同样,神经网络也能发挥作用。
机器学习中的神经网络
什么是单层感知器?
它是最古老且最早引入的神经网络之一。它是由弗兰克·罗森布拉特 (Frank Rosenblatt)于1958 年提出的。感知器也称为人工神经网络。感知器主要用于计算AND、OR、NOR等具有二进制输入和二进制输出的逻辑门。
感知器的主要功能是:-
从输入层获取输入
对它们进行加权并总结。
将总和传递给非线性函数以产生输出。
单层神经网络
这里的激活函数可以是sigmoid、tanh、relu等任何函数。根据需求,我们将选择最合适的非线性激活函数以产生更好的结果。现在让我们实现一个单层感知器。
单层感知器的实现
现在让我们使用 TensorFlow 库使用“MNIST”数据集实现一个单层感知器。
Step1:导入必要的库
Numpy – Numpy 数组非常快,可以在很短的时间内执行大量计算。
Matplotlib – 该库用于绘制可视化效果。
TensorFlow – 这是一个用于机器学习和人工智能的开源库,提供一系列函数以通过单行代码实现复杂的功能。
Python3
import numpy as np
import tensorflow as tf
from tensorflow import keras
import matplotlib.pyplot as plt
%matplotlib inline
步骤 2:现在使用导入版本的张量流中的“Keras”加载数据集。
Python3
(x_train, y_train),\
(x_test, y_test) = keras.datasets.mnist.load_data()
步骤 3:现在显示数据集中单个图像的形状和图像。图像大小包含28*28的矩阵,训练集长度为60,000,测试集长度为10,000。
Python3
len(x_train)
len(x_test)
x_train[0].shape
plt.matshow(x_train[0])
输出:
来自训练数据集的样本图像
步骤 4:现在标准化数据集,以便快速准确地进行计算。
Python3
# Normalizing the dataset
x_train = x_train/255
x_test = x_test/255
# Flatting the dataset in order
# to compute for model building
x_train_flatten = x_train.reshape(len(x_train), 28*28)
x_test_flatten = x_test.reshape(len(x_test), 28*28)
第5步:构建具有单层感知的神经网络。在这里我们可以观察到,该模型是一个单层感知器,仅包含一个输入层和一个输出层,不存在隐藏层。
Python3
model = keras.Sequential([
keras.layers.Dense(10, input_shape=(784,),
activation='sigmoid')
])
model.compile(
optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.fit(x_train_flatten, y_train, epochs=5)
输出:
每个时期的训练进度
步骤6:输出模型在测试数据上的准确率。
Python3
model.evaluate(x_test_flatten, y_test)
输出:
测试数据上的模型性能
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。