#Python3入门机器学习之4.梯度下降法
_凡一
这个作者很懒,什么都没留下…
展开
-
Python3入门机器学习之4.8如何确定梯度计算的准确性?调试梯度下降法
Python3入门机器学习4.8 如何确定梯度计算的准确性?调试梯度下降法梯度的调试用来验证我们数学求解梯度的准确性。调试梯度下降法:(1).准备模拟数据:(2).准备损失函数、数学推导方式求梯度的函数和用调试的方式求梯度的函数:(3).梯度下降的过程:(4).分别运用数学推导方式求梯度和调试的方式求梯度的方法求得结果,并进行比较:...原创 2020-07-01 17:46:09 · 137 阅读 · 0 评论 -
Python3入门机器学习之4.7scikit-learn中的随机梯度下降法
Python3入门机器学习4.7 scikit-learn中的随机梯度下降法1.封装我们自己的随机梯度下降法: def fit_sgd(self, X_train, y_train, n_iters=5, t0=5, t1=50): """根据训练数据集X_train,y_train,使用随机梯度下降法训练Linear Regression模型""" assert X_train.shape[0] == y_train.shape[0], \原创 2020-07-01 17:03:15 · 196 阅读 · 0 评论 -
Python3入门机器学习之4.6随机梯度下降法
Python3入门机器学习4.6 随机梯度下降法通过我们推导的如下求梯度的公式,要想准确地求出梯度,每一项都要对所有的样本进行计算,这样的梯度下降法通常又叫做批量梯度下降法(Batch Gradient Descent)。显然,这样带来一个问题:如果我们的样本量m非常大,计算梯度本身也是非常耗时的。基于这个问题,我们有这样的改进方案。在之前的式子中,由于对于每一项都对m个样本进行了计算,之后为了取平均,还除以了m。所以一个自然的想法就是:我们可不可以每一次只对一个样本计算呢?基于这样的想法,之前的原创 2020-07-01 15:16:12 · 430 阅读 · 0 评论 -
Python3入门机器学习之4.5梯度下降法的向量化和数据标准化
Python3入门机器学习4.5 梯度下降法的向量化和数据标准化1.向量化:在上一节中,我们推导出求解梯度的公式如下:继续变形,使其可以向量化,如下:于是求梯度的函数的实现方式也相应的改变,如下: def dJ(theta, X_b, y): # res = np.empty(len(theta)) # res[0] = np.sum(X_b.dot(theta) - y) # for i in range(1, len原创 2020-07-01 14:23:52 · 220 阅读 · 0 评论 -
Python3入门机器学习之4.4实现线性回归中的梯度下降法
Python3入门机器学习4.4 实现线性回归中的梯度下降法1.在线性回归模型中使用梯度下降法:(1).首先准备我们的模拟数据:(2).使用梯度下降法训练:损失函数:求解梯度的函数:梯度下降法求解参数θ的过程:2.封装用梯度下降解决线性回归问题的算法: def fit_gd(self, X_train, y_train, eta=0.01, n_iters=1e4): """根据训练数据集X_train,y_train,使用梯度下降法训练Linear Re原创 2020-07-01 10:17:26 · 127 阅读 · 0 评论 -
Python3入门机器学习之4.3多元线性回归中的梯度下降法
Python3入门机器学习4.3 多元线性回归中的梯度下降法以下是对有两个参数的梯度下降法的可视化:推导过程:观察上式,显然梯度的大小将与样本数量m有关,这样其实是不合理的。我们希望最后求出的梯度向量中的每一个值与m无关,为此,我们让整个梯度值再除以一个m,如下:于是,其实目标函数可以写成:...原创 2020-06-29 21:28:53 · 172 阅读 · 0 评论 -
Python3入门机器学习之4.2模拟实现梯度下降法
Python3入门机器学习4.2 模拟实现梯度下降法怎样判断当前的theta或θ是否达到最小值了呢?理论上来到了最小点,其实是导数为0。不过在这里在具体编程实现时,有一些问题需要注意。我们的可能设置的η不合适,或者我们在求导时有各种浮点精度的问题,使得我们求得的最小值点达不到导数正好等于0。既然是梯度下降,理论上我们每一次求得新的θ,它对应损失函数的值都应该比上一个θ对应的损失函数的值还要小。如果小的这部分已经达到了我们的精度要求,那么我们就可以说基本上来到了最小值。1.首先准备模拟的数据,我们以原创 2020-06-29 18:03:43 · 110 阅读 · 0 评论 -
Python3入门机器学习之4.1梯度下降法
Python3入门机器学习4.1梯度下降法1.什么是梯度下降法?不是一个机器学习算法是一种基于搜索的最优化方法作用:最小化一个损失函数梯度上升法:最大化一个效用函数2.超参数η:η称为学习率(learning rate)η的取值影响获得最优解的速度η取值不合适,甚至得不到最优解η是梯度下降法的一个超参数...原创 2020-06-29 17:19:57 · 146 阅读 · 0 评论