博客
关于我
神经网络中的矩阵求导及反向传播推导
阅读量:321 次
发布时间:2019-03-03

本文共 647 字,大约阅读时间需要 2 分钟。

两层全连接神经网络的实现涉及前向传播、梯度反向传播以及权重更新过程。以下是优化后的详细步骤说明:

  • 网络结构与初始化

    • 输入层(D_in),隐藏层(H),输出层(D_out)。
    • 权重矩阵w1(D_in x H)和w2(H x D_out)。
    • 随机初始化权重矩阵和学习率。
  • 前向传播

    • 计算隐藏层激活:h = x.dot(w1)。
    • 应用ReLU激活:h_relu = np.maximum(h, 0)。
    • 计算预测值:y_pred = h_relu.dot(w2)。
    • 计算损失:loss = np.sum((y_pred - y)^2)。
  • 梯度反向传播

    • 计算损失对预测值的梯度:grad_y_pred = 2.0 * (y_pred - y)。
    • 计算权重w2的梯度:grad_w2 = h_relu.T.dot(grad_y_pred)。
    • 计算隐藏层梯度:grad_h_relu = grad_y_pred.dot(w2.T);处理ReLU导数,grad_h = grad_h_relu.copy(),grad_h[h < 0] = 0。
    • 计算权重w1的梯度:grad_w1 = x.T.dot(grad_h)。
  • 权重更新

    • 更新w1和w2:w1 -= learning_rate * grad_w1;w2 -= learning_rate * grad_w2。
  • 这种实现方法确保了每个权重参数根据其梯度下降,从而优化模型性能。正确处理激活函数的导数是关键,以确保梯度计算的准确性和模型的有效训练。

    转载地址:http://usgm.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现eulerianPath欧拉路径算法(附完整源码)
    查看>>
    Objective-C实现eval函数功能(附完整源码)
    查看>>
    Objective-C实现Exceeding words超词(差距是ascii码的距离) 算法(附完整源码)
    查看>>
    Objective-C实现extended euclidean algorithm扩展欧几里得算法(附完整源码)
    查看>>
    Objective-C实现Factorial digit sum阶乘数字和算法(附完整源码)
    查看>>
    Objective-C实现factorial iterative阶乘迭代算法(附完整源码)
    查看>>
    Objective-C实现factorial recursive阶乘递归算法(附完整源码)
    查看>>
    Objective-C实现FigurateNumber垛积数算法(附完整源码)
    查看>>
    Objective-C实现Gale-Shapley盖尔-沙普利算法(附完整源码)
    查看>>
    Objective-C实现hamiltonianCycle哈密尔顿图算法(附完整源码)
    查看>>
    Objective-C实现hamming numbers汉明数算法(附完整源码)
    查看>>
    Objective-C实现hanning 窗(附完整源码)
    查看>>
    Objective-C实现hanoiTower汉诺塔算法(附完整源码)
    查看>>
    Objective-C实现hardy ramanujana定理算法(附完整源码)
    查看>>
    Objective-C实现highest response ratio next高响应比优先调度算法(附完整源码)
    查看>>
    Objective-C实现hill climbing爬山法用来寻找函数的最大值算法(附完整源码)
    查看>>
    Objective-C实现hornerMethod霍纳法算法(附完整源码)
    查看>>
    Objective-C实现Http Post请求(附完整源码)
    查看>>
    Objective-C实现Http协议下载文件(附完整源码)
    查看>>
    Objective-C实现IIR 滤波器算法(附完整源码)
    查看>>