首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何理解增量随机梯度算法及其在logistic回归[更新]中的实现?

如何理解增量随机梯度算法及其在logistic回归[更新]中的实现?
EN

Data Science用户
提问于 2018-01-25 10:07:14
回答 1查看 957关注 0票数 4

在logistic回归中,增量随机梯度下降算法的实现及其各自的实现,在哪里是比较困难的。我不太理解这个算法,几乎没有什么来源可以用清晰的解释和可能的演示代码来解释它。我对ML算法非常陌生,我不知道怎样才能有效地解决这个问题。

特别是,我正在研究的问题是如何实现hogWild!逻辑回归算法,它要求我用顺序顺序编写增量SGD算法。有人能给我一个大致的想法或可能的管道来实现这一点吗?

logistic损失函数与梯度

以下是我的实现:

代码语言:javascript
复制
import numpy as np
import scipy as sp
import sklearn as sl
from scipy import special as ss
from  sklearn import datasets

X_train, y_train=datasets.load_svmlight_file('/path/to/train_dataset')
X_test,y_test=datasets.load_svmlight_file('/path/to/train_dataset.txt', 
                                          n_features=X_train.shape[1])

class ISGD:
def lossFunc(X,y,w):
    w.resize((w.shape[0],1))
    y.resize((y.shape[0],1))

    lossFnc=ss.log1p(1+np.nan_to_num(ss.expm1(-y* np.dot(X,w,))))
    rslt=np.float(lossFnc)
    return rslt

def gradFnc(X,y,w):
    w.resize((w.shape[0],1))
    y.resize((y.shape[0],1))

    gradF1=-y*np.nan_to_num(ss.expm1(-y))
    gradF2=gradF1/(1+np.nan_to_num(ss.expm1(-y*np.dot(X,w))))
    gradF3=gradF2.resize(gradF2.shape[0],)
    return gradF3

def _init_(self, learnRate=0.0001, num_iter=100, verbose=False):
    self.w=None
    self.learnRate=learnRate
    self.verbose=verbose
    self.num_iter=num_iter


def fitt(self, X,y):
    n,d=X.shape
    self.w=np.zeros(shape=(d,))

    for i in range(self.num_iter):
        print ("\n:", "Iteration:", i)

        grd=gradFnc(self.w, X,y)
        grd.resize((grd.shape[0],1))
        self.w=self.w-grd
        print "Loss:", lossFunc(self.w,X,y)

    return self

看来我上面的实现有一些问题。有人能帮我纠正一下吗?另外,我不太清楚如何按顺序实现增量SGD。我怎样才能做到这一点?有什么想法吗?

EN

回答 1

Data Science用户

发布于 2022-10-27 20:01:26

我不太懂这个算法

事实上,在2020年之前,(在这个世界上)没有人理解它。但是从2020年6月开始,我们实验室(https://richtarik.org/)的一篇论文描述了这种方法:https://arxiv.org/abs/2006.05988

当然,如果您想了解这个方法的实际工作原理以及在什么意义上起作用的话,这是给您的.(发表于NeurIPS 2020)

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

https://datascience.stackexchange.com/questions/27028

复制
相关文章

相似问题

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