首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我的SGD实现有问题

我的SGD实现有问题
EN

Stack Overflow用户
提问于 2020-07-27 12:18:45
回答 1查看 67关注 0票数 0

我是机器学习的新手,我试图在numpy中实现SGD来优化单变量线性回归,但它找不到最优的参数。

代码语言:javascript
复制
def sgd(alpha,x,y,params,epochs):
    m = len(x)
    cost_history = []
    for i in range(0,epochs):
        for xi,yi in zip(x,y):
            error = (params @ xi) -yi
            grad0 =  error * xi[0]
            grad1 = error * xi[1]
            params[0] = params[0] - alpha *grad0
            params[1] = params[1] - alpha * grad1
        cost_history.append(cost_func(params,x,y))
    return params,cost_history
sgd_params,sgd_cost_hist = sgd(0.001,designX,y,np.array([3,2]),5)
EN

回答 1

Stack Overflow用户

发布于 2020-07-27 12:49:46

看起来你的参数被定义为一个整数。再试一次

代码语言:javascript
复制
sgd_params,sgd_cost_hist = sgd(0.001,designX,y,np.array([3.0,2.0]),5)

以下是该问题的快速演示。

代码语言:javascript
复制
b = np.array([3, 2])
print(b, b.dtype)

b[0] = b[0] + 0.1
print(b, b.dtype)

b[0] = b[0] + 1.2
print(b, b.dtype)

获取:

代码语言:javascript
复制
[3 2] int64
[3 2] int64
[4 2] int64

该值保持为整数。由于学习率的原因,增量的绝对值往往低于1,因此该参数不会更新。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63108656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档