美文网首页
12.20 向量化,简单logistic梯度下降

12.20 向量化,简单logistic梯度下降

作者: KK_f2d5 | 来源:发表于2018-12-20 14:46 被阅读0次
    import time
    a = np.random.rand(100000)
    b = np.random.rand(100000)
    #记录时间
    tic = time.time()
    # 进行矩阵运算,不使用for loop
    c = np.dot(a,b)
    #再次记录时间
    toc = time.time()
    print("need time:" + str(1000*(toc-tic)) +"ms")
    

    shift + enter 运行
    numpy的函数:
    np.log np.abs np.maximum 并行化计算
    这个网站列举了函数:https://www.cnblogs.com/TensorSense/p/6795995.html

    我们来写一个简单的梯度下降logistic回归

    #简单一点,我们设置一个只有两个特征x1,x2,并且只有两组的数据。
    x = np.random.rand(2,2)
    y = [1,0]
    #初始化参数w和b
    w = np.zeros(2)
    b = 0
    #计算linear总和
    for i in range(10):
        z = np.dot(w.T,x)+b
    #sigmoid函数,a就是预测值
        a = 1/(1+np.exp(-z))
        print(a)#我们看一看它是如何变化的
    #计算导数
        dz = a-y
        dw = np.dot(x,dz.T)/2
        db = np.sum(dz)/2
    #调整参数w,b,这里的学习率是0.2
        w = w-0.2*dw
        b = b-0.2*db
    

    输出如下:

    [0.5 0.5]
    [0.50805306 0.50055199]
    [0.51560339 0.50073525]
    [0.522694   0.50058677]
    [0.52936473 0.50014016]
    [0.53565232 0.49942591]
    [0.54159047 0.49847166]
    [0.54721005 0.49730245]
    [0.5525392  0.49594098]
    [0.55760359 0.49440778]
    

    可以感觉到变化趋势。
    这里的导数都是loss function对相应参数求导计算得到的。

    相关文章

      网友评论

          本文标题:12.20 向量化,简单logistic梯度下降

          本文链接:https://www.haomeiwen.com/subject/dnuykqtx.html