从零开始机器学习-6 如何降低损失

本文由 沈庆阳 所有,转载请与作者取得联系!

前言

在上一节中,我们介绍了和机器学习有关的一些概念。其中,通过损失来评价模型预测的准确程度。那么对于训练过程中,我们应该采取什么样的方法来减少损失呢?
我们都玩过猜价格的游戏:给定一个商品的价格,出题人明确商品的价格是多少,开始你也许会胡乱猜一个数字,出题人会告诉你相差多少(高很多,高一点,低一点...),那么你会根据出题人的反馈再次猜一个数字。上述的价格,可以是机器学习中的w1,当猜w1为0时,给出损失loss,根据损失再次猜w1的另一个值,比如0.2。如果一直这样猜下去的话,总有猜中的时候。但是,如何以最快的方法确定w1的值是值得商榷的。

降低损失的方法

迭代的方法

训练模型的迭代过程

上图展示了训练模型的迭代过程,首先迭代将模型的单个或多个特征来作为输入,然后通过模型来输出一个预测值y'作为输出,再通过输入标签与预测的值得出损失,再根据损失来更新模型中的参数。
假设,只有一个特征作为输入,则上述模型以机器学习形式表示如下:
y' = b + w1x1
通常,b和w1的初始值的取值是无所谓的,所以假设b和w1为0,若输入值(特征)为1的话,则y'=0。此时,我们需要通过y(特征x对应的正确的标签)和y'(预测值)进行对比,得出损失。我们的机器学习程序,通过得到的损失相应的更新参数,产生新的b和w1的值,从而通过模型得到新的预测y',并为损失函数提供新的输入。如此往复,直到整体损失不再改变,或是改变地很慢的时候,此时该模型已收敛。

梯度下降法

在高等数学中,我们学习过梯度。
梯度:本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。
在一元函数中,梯度即导数,而在二元以上函数中,梯度即偏导数。此处不深究计算方法。
在上一小节中讲到的迭代的方法并没有详细说明计算参数是如何更新的。那么该小节讲到的梯度下降法则是更为具体的方法。


损失曲线图

假设,实际损失与权重的图如上图所示(实际上我们是不知道该图是什么样子的)。对于损失与权重的图,其始终是凹的,即存在最低点使损失最小(也就是该点的斜率为0)。
暴力一点的方法,就是计算整个数据集中的w1的每个可能的值来得到最低的损失。对于回归问题来说,这种方法往往太过暴力而导致效率低下。在机器学习领域中有着一种更为聪明的方法——梯度下降法。
在梯度下降法中,首先需要找到一个起点w1的值。对于起点值得选取并不重要,在一些机器学习的训练程序中,起点值通常选择为0,或是任意一个值。这个起点值就是梯度下降法的起点。
梯度是偏导数相对于所有自变量的矢量,梯度下降法在起点选择好之后,会计算损失曲线在起点处的梯度。由于梯度的定义为:某一函数在该点处的方向导数沿着该方向取得最大值。即沿着梯度的方向,损失是增长的。因此我们需要取负梯度的方向。所以我们的下一步会沿着负梯度的方向,将梯度大小的一部分与起点相加取得下一个点。并重复该过程,直到取得最低点或模型趋于收敛。


通过负梯度确定下一步的方向
学习速率

学习速率又称Learn Rate,在有些机器学习程序中也称为Step Size即步长。
在梯度下降法中,我们确定下一步的位置首先依赖于负梯度的方向(确定方向),其次则是依赖步长来确定大小。
假设在梯度下降法中,起点的w1取0.5,起点的梯度大小通过计算为1,若学习速率为0.1,则梯度下降算法会取距离起点沿着负梯度方向相距1*0.1大小的点,即下一步的w1取0.6。
学习速率作为一个超参数,影响着训练的速度。如果学习速率过大,则会造成模型永远不会收敛;若学习速率过小,则会造成模型训练花费大量的时间。因此,在机器学习的过程中,工程师往往会花费大量的时间来选择合适的学习速率。


过大的学习速率造成来回震荡

通常在确定学习速率的时候,如果一个损失曲线的梯度一直都比较小,那么则可以相应加大学习速率;反之,减少学习速率。

随机梯度下降法(SGD)

在介绍随机梯度下降法之前,我们先说一下什么是批量(Batch)。
在机器学习领域中,批量(Batch)指的是在单次的迭代中用于计算梯度的样本的总数,批量可大可小。在前几个小节中,我们默认地认为批量是整个数据集。对于小规模的样本来说,这样做没什么不妥。但是当数据集规模十分巨大的时候,如上亿个样本(比如垃圾邮件的样本),面对如此超大批量的样本,进行一次迭代将会消耗大量的时间。
此外,对于大批量的样本,存在冗余样本的可能性越高。这些冗余样本是重复的样本。相比较,超大规模的批量比大规模批量出现冗余的可能性要高。
随机梯度下降法通过更少地计算来得到平均梯度。在随机梯度下降法中,批量的大小为1,即每次取1个样本来计算平均梯度,这个样本的选取是随机的。也就是随机梯度下降法中的随机指的是样本的选取。在这种方法下,当迭代的次数足够多的时候,平均梯度的值也就越准确。但是这样来计算平均梯度却显得极为杂乱。
通常,我们使用的是小批量随机梯度下降法。小批量随机梯度下降法是全批量和SGD的中间方案。小批量通常是10到100个随机选择的样本。相比随机梯度下降法,小批量随机梯度下降法可以减少杂乱样本的数量,同时也比全批量更为高效。

练习

1、在一个平均梯度较小的损失曲线情况下,学习速率应该怎样选取?
A.学习速率应越低越好
B.学习速率应相应变大
2、在进行超大型数据集的训练过程中,使用哪种方法效率更高?
A.小批量SGD或SGD
B.全批量SGD

觉得写的不错的朋友可以点一个 喜欢♥ ~
谢谢你的支持!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,657评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,662评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,143评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,732评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,837评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,036评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,126评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,868评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,315评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,641评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,773评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,859评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,584评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,676评论 2 351

推荐阅读更多精彩内容