当前位置: 首页 > news >正文

关于最简单的机器学习的梯度下降公式的求导过程

loss = \frac{\sum(\hat{y} - y)^2}{sampleNum}

那么对该式求导可得

loss' = \frac{2}{num}\sum(\hat{y} - y)

然后由

y = kx +b\Rightarrow y' = x

由求导的连续法则

那么loss对k求导得

\frac{\mathrm{d}(loss)}{\mathrm{d}(k)} = \frac{2(\sum(\hat{y} - y)^2\times x)}{num}

用python的numpy表示为

    grad_w = 2/sample_num * np.dot(-(y - y_pred),X)

对b求导同理

完整代码如下

import numpy as np
import matplotlib.pyplot as plt
# import tensorflow as tf
# from tensorflow.examples.tutorials.mnist import input_data
true_w = 2.5
true_b = 1.0
sample_num = 199
X = np.linspace(0,10,sample_num)
noise = np.random.normal(0,2.0,sample_num)
#第一个参数是均值,第二个参数是标准差,第三个值是样本数量
y = true_w*X + true_b +noise
plt.figure(figsize = (10,6))
#宽10英寸,高6英寸
plt.scatter(X,y)#画的散点图
# plt.show()
def linear_model(X,w,b):return X*w +b
def loss_f(y_true,y_pred):#MSEreturn np.mean((y_true - y_pred)**2)
w = 0
b = 0
learning_rate = 0.01 #是自己试的,通过经验来
loses = []#观察每一步损失有多大
epoches = 1000
#因为样本量小,所以不用分batch
for epoch in range(epoches):y_pred = linear_model(X,w,b)#X是药物的计量,X,w,b都是向量loss = loss_f(y,y_pred)loses.append(loss)#现在就要开始进行梯度下降啦grad_w = 2/sample_num * np.dot(-(y - y_pred),X)grad_b = 2/sample_num * np.sum(-y + y_pred)w = w - learning_rate * grad_wb = b - learning_rate * grad_bif (epoch+1)%100 == 0:print("{}{}{}{}".format(epoch+1,loss,w,",",b))
print("final w = ",w)
print("final b = ",b)

http://www.dtcms.com/a/498694.html

相关文章:

  • 【AI】一文说清楚神经网络、机器学习、专家系统
  • C语言数据结构:算法复杂度(2)
  • MySQL————索引
  • 建设网站具体步骤电子报 网站开发
  • 站外引流推广渠道专业的高密网站建设
  • (Kotlin高级特性二)kotlin内联函数(inline)的作用?为什么noinline和crossinline?
  • 网站关键词在哪里看做网站工作量怎么算
  • PostgreSQL 自动化脚本安装方案
  • 济南网络公司建站网站开发属于什么费用
  • IoT 系统中的 Saga 应用模式及其设计要点
  • WebServer类
  • 吃透 C++ 栈和队列:stack/queue/priority_queue 用法 + 模拟 + STL 标准实现对比
  • 重庆网站模版建设青岛做网站的公司排名
  • 圆桌讨论:Coding Agent or AI IDE 的现状和未来发展
  • 相机成像中的平行平面成像
  • 并发集合踩坑现场:ConcurrentHashMap size() 阻塞、HashSet 并发 add 丢数据、Queue 伪共享
  • BT之家1LOU站永久地址发布页 - 回归初心,最新官网入口
  • 《Linux系统编程之入门基础》【Linux基础 理论+命令】(上)
  • 如何套用别人网站模板wordpress 4.7.6
  • Git个人配置偏好记录以及注意事项
  • 做律师网站推广优化哪家好哪些设计网站可以赚钱
  • Windows / Linux 中如何使用 Docker 部署项目
  • JPA 学习笔记 4:JPQL
  • Linux网络编程:Socket编程UDP
  • 详解Redis锁误删、原子性难题及Redisson加锁底层原理、WatchDog续约机制
  • 【Java 集合】核心知识点梳理
  • 郑州建设厅官方网站地方网站推广
  • 宁波网站建设建站厂家wordpress 站点描述
  • 兴扬汽车网站谁做的公司设计图
  • 上海石化有做网站设计的吗广西网络广播电视台直播