使用Numpy实现BP神经网络

本文介绍了如何使用Numpy实现BP神经网络,通过3层网络理解深度学习中参数更新的过程。BP网络包括输入层、隐藏层和输出层,通过正向传播计算损失,反向传播求解权重和偏置的梯度,利用梯度下降法更新参数,直至损失不再显著减少。激活函数的求导简单,便于实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言
BP神经网络是深度神经网络的基础,由于深度神经网络过于复杂,不便于理解其中参数更新的过程,所以我们一般会用3层网络来理解这个过程。BP网络由输入层,隐藏层和输出层组成。一次正向传播输出结果,算出损失值,然后一次反向传播,求出各层之间连接的权重和偏置的梯度,通过梯度下降法(或者其他方法)更新参数,从而完成一次loss的最小优化。重复正,反向传播的过程,直到loss不再减小(或者说减少的很小,可忽略不计)。求梯度的过程是需要仔细推导的,矩阵求导可以记住求导公式(或者自己去推敲),其他函数的求导倒是没啥问题,激活函数都比较简单。

编程实现

import numpy as np
import os
import matplotlib.pyplot as plt
#sigmoid 函数的导数
def sigmoid_dt(y):
    return y*(1-y)
#sigmoid 函数
def sigmoid(x):
    return 1./(1+np.exp(-x))
    
"""
函数说明:加载数据集
set,txt文件的数据格式形如:
-0.017612 14.053064 0
-1.395634 4.662541 1
-0.752157 6.538620 0
-1.322371 7.152853 0
0.423363 11.054677 0
0.406704 7.067335 1
Parameters:
    无
Returns:
    返回 feature 和 lable
"""
def loadData():
    feature = []
    lable = []
    fr = open('set.txt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值