用Python实现多层感知器神经网络

本文介绍了如何在Python中从头开始构建多层感知器(MLP)神经网络,包括激活函数(Sigmoid和Softmax)、权重和偏差初始化、训练算法以及预测过程。在MNIST手写数字分类任务中,经过训练,模型达到了93.2%的准确性。文章还探讨了超参数调整和数据预处理的重要性。
摘要由CSDN通过智能技术生成

作者|Vivek Patel 编译|Flin 来源|towardsdatascience

除非你能学习到一些东西,否则不要重复造轮子。

强大的库已经存在了,如:TensorFlow,PyTorch,Keras等等。我将介绍在Python中创建多层感知器(MLP)神经网络的基本知识。

感知器是神经网络的基本组成部分。感知器的输入函数是权重,偏差和输入数据的线性组合。具体来说:in_j = weight input + bias.(in_j =权重输入+偏差)。在每个感知器上,我们都可以指定一个激活函数g。

激活函数是一种确保感知器“发射”或仅在达到一定输入水平后才激活的数学方法。常见的非线性激活函数为S型,softmax,整流线性单位(ReLU)或简单的tanH。

激活函数有很多选项,但是在本文中我们仅涉及Sigmoid和softmax。

图1:感知器

对于有监督的学习,我们稍后将输入的数据通过一系列隐藏层转发到输出层。这称为前向传播。在输出层,我们能够输出预测y。通过我们的预测y*,我们可以计算误差| y-y | 并使误差通过神经网络向后传播。这称为反向传播。通过随机梯度下降(SGD)过程,将更新隐藏层中每个感知器的权重和偏差。

图2:神经网络的基本结构

现在我们已经介绍了基础知识,让我们实现一个神经网络。我们的神经网络的目标是对MNIST数据库中的手写数字进行分类。我将使用NumPy库进行基本矩阵计算。

在我们的问题中,MNIST数据由 [748,1] 矩阵中的8位颜色通道表示。从本质上讲,我们有一个 [748,1] 的数字矩阵,其始于[0,1,.... 255],其中0表示白色,255表示黑色。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值