美文网首页
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