反向传播算法(代码笔记)

本文详细介绍了反向传播算法的基本原理,并通过代码实例解析了其在神经网络中的应用,帮助读者深入理解这一深度学习中的关键算法。
摘要由CSDN通过智能技术生成
import numpy as np
#反向传播算法定义损失函数和激活函数

def loss(network_y, real_y):
    '''
    返回函数的编导,损失函数使用 MSE
    L = 1/2 (netowork_y - real_y)^2
    delta_L = network_y - real_y
    损失函数使用了均方误差作为该神经网络的损失函数,因此求导后的输入分别为网络的预测值和真实输出值,
    输出为两者的差。激活函数采用 Sigmoid 函数
    '''
    return (network_y - real_y)
def sigmoid(z):
    """
    激活函数使用 sigmoid
    :param z:
    :return:
    """
    return 1.0 / (1.0 + np.exp(-z))

def sigmoid_der(z):
    """digmoid 函数的导数 dervation of sigmoid"""
    return sigmoid(z) * (1 - sigmoid(z))

#反向传播算法的具体实现
"""backprop() 函数的输入为 x 和 y ,其中x 为(3,1)的矩阵, y 为(2,1)的矩阵。
根据反向传播算法的四个基本公式(BP1 —BP4)的计算中需要知道每一层的神经元的激活值和加权输入值,因此在进行向前椽传播时,
使用activation 记录每一层的激活值和 zs 记录每一层的加权输入值
首先从L 层进行计算,因此先计算输出层的误差,然后计算损失函数关于输出层L 中的偏置和权值参数的偏导。
最后循环为range(2,num_l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值