手工推导梯度下降公式

举报
山海之光 发表于 2021/04/09 17:44:14 2021/04/09
【摘要】 本文章为案例 机器学习方法实现手写数字二分类 的配套文章本文将手工推导梯度下降公式,模型为感知机,损失函数为均方误差函数。模型结构如下图所示:下面我们开始进行梯度下降公式的手工推导。至此,公式推导完成。

本文章为案例 机器学习方法实现手写数字二分类 的配套文章
本文将手工推导梯度下降公式,模型为感知机,损失函数为均方误差函数。
模型结构如下图所示:
感知机

下面我们开始进行梯度下降公式的手工推导。
手工推导梯度下降公式1
手工推导梯度下降公式2

至此,公式推导完成。

最终可以用下面的代码来实现梯度的计算过程:

def gradient(self, x, y, pred_y):
    """
    x: 样本输入值
    y: 样本标签值
    pred_y: 样本输入到感知机模型后得到的预测值
    """
    gradient_w = (pred_y-y)*pred_y*(1-pred_y)*x
    gradient_w = np.mean(gradient_w, axis=0)
    gradient_w = gradient_w[:, np.newaxis]
    gradient_b = (pred_y - y)*pred_y*(1-pred_y)
    gradient_b = np.mean(gradient_b)
    
    return gradient_w, gradient_b
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。