深度学习基础知识3-BP神经网络

概述

反向传播神经网络(Backpropagation Neural Network,BP神经网络)是一种用于机器学习的前馈神经网络,也是一种监督学习算法。它由三层神经元组成:输入层、隐藏层和输出层。BP神经网络通过不断地调整权重来学习输入与输出之间的映射关系。

下面是BP神经网络的基本原理:

  1. 前馈传播(Forward Propagation): 在前馈传播过程中,输入信号通过输入层传递到隐藏层,然后从隐藏层传递到输出层。每个神经元都有一个权重,输入信号和权重的乘积经过激活函数得到神经元的输出。

  2. 损失函数(Loss Function): 用于衡量模型输出与真实输出之间的差距。常见的损失函数包括均方误差(Mean Squared Error,MSE)等。

  3. 反向传播(Backward Propagation): 在反向传播过程中,通过计算损失函数对权重的梯度,然后利用梯度下降法等优化算法来更新权重,以减小损失函数值。

  4. 梯度下降法(Gradient Descent): 通过不断调整权重,使得损失函数逐渐减小,最终收敛到局部最小值。

  5. 隐藏层(Hidden Layer): BP神经网络中的隐藏层可以有多层,每一层都有一定数量的神经元。这些隐藏层的存在使得网络能够学习更加复杂的模式和特征。

  6. 激活函数(Activation Function):
    BP神经网络的训练过程就是通过不断地调整权重,使得网络输出尽可能接近真实值的过程。这种网络结构可以适用于各种复杂的模式识别和预测问题。

BP算法

在这里插入图片描述
网络结构

在这里插入图片描述

BP神经网络实现手写数字识别

#一个用于数值计算的库。
import numpy as np
from sklearn.datasets import load_digits  # 用于加载手写数字数据集
from sklearn.preprocessing import LabelBinarizer  #用于将类别标签转换为二进制形式,以便于机器学习模型使用。
from sklearn.model_selection import train_test_split #用于将数据划分为训练集和测试集。
from sklearn.metrics import classification_report,confusion_matrix #用于评估分类模型的性能。
import matplotlib.pyplot as plt #用于绘制图像。

#  载入数据
digits = load_digits()
print(digits.images.shape)

#显示图片

plt.imshow(digits.images[0],cmap='gray')
plt.waitforbuttonpress()
plt.imshow(digits.images[1],cmap='gray')
plt.waitforbuttonpress()
plt.imshow(digits.images[2],cmap='gray')
plt.waitforbuttonpress()



#数据

X=digits.data


#标签
y = digits.target

print(X.shape)
print(y.shape)
print(X[:3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值