长沙网站设计哪里好,推广网站详细教程,用dreamever如何建设网站,网络营销方式的使用方法损失函数 L#xff1a;衡量单一训练样例的效果。
成本函数 J#xff1a;用于衡量 w 和 b 的效果。
如何使用梯度下降法来训练或学习训练集上的参数w和b #xff1f; 成本函数J是参数w和b的函数#xff0c;它被定义为平均值#xff1b;
损失函数L可以衡量你的算法效果衡量单一训练样例的效果。
成本函数 J用于衡量 w 和 b 的效果。
如何使用梯度下降法来训练或学习训练集上的参数w和b 成本函数J是参数w和b的函数它被定义为平均值
损失函数L可以衡量你的算法效果每一个训练样例都输出把它跟真实标签进行比较。
梯度下降法从初始点开始朝最陡的下坡方向走一步在梯度下降一步后或许在那里停下或者尽可能快的向下走这是梯度下降的一次迭代。然后继续希望收敛到全局最优解。 Gradient Descent 梯度下降法重复执行以下的更新操作
更新w的值使用 : 表示更新w。Learning Rate 学习率 可以控制每一次迭代或者梯度下降法中的步长。这里的导数 dJ(w)/dw 就是对参数w的更新或变化量。我们写代码来实现梯度下降时会使用变量名dw表示导数即上图中的式子写为:w : w - dw新的w的值 等于 w自身 减去 学习率和导数的乘积 导数是函数在对应点的斜率函数的斜率是高除以宽。如果J函数最开始在右边的点那么它的斜率是正数更新的w的值w : w - dw会变小即上图中的点会往左移反之如果一开始点在左上方即斜率为负数那么更新的w的值会变大也就是会逐渐往右移。不论起始点在左边还是右边最终都会到中间底部那个点。
在深度学习里有循环会降低算法的运行效率。实现梯度下降的迭代不使用任何循环而是向量化(Vectorization)。使用内置函数避免使用显式for循环可以让程序运行速度快很多。
import numpy as npimport timea np.random.rand(1000000)
b np.random.rand(1000000)tic time.time()
c np.dot(a,b)
toc time.time()print(c)
print(Vectorization version: str(1000*(toc-tic)) ms)c 0
tic time.time()
for i in range(1000000):c a[i]*b[i]
toc time.time()print(c)
print(For loop: str(1000*(toc-tic)) ms)
运行结果 由上述代码运行结果可知使用内置函数比显式使用for循环快了200倍所以我们尽量不要使用显示for循环。