• CS231n Lecture3-Loss Functions and Optimization学习笔记


    一、Visualizing the loss function

    1. 这部分讲述了损失函数的可视化。

    二、Optimization ways

    • 优化的目标是发现合适的权值W,使得损失函数最小化。
    • 核心思想是随机初始化权值的参数,然后进行计算损失,如果发现损失之前的小,那么保存参数这一次的权值。
    • 进行一千次迭代后,测试发现准确率只有15.5%,仅仅比随机猜10%高一点,可以看得出,这个办法是十分糟糕的。
    • 核心思想是,一开始随机初始化一组权重W,然后再这一一个步长step(一般比较小为0.0001),原来的w每次加上随机更新步长乘以随机初始化的一组权重W2,如果发现损失减小,保存更新后的参数。
    • 效果相比于第一种方法的准确率有所提高,达到21.4%,但是还是不够理想。

    3. Following the Gradient

    • 我们期望以最快的速度,在向量空间中下降到谷底,而不是随机的,因此这里用到知识是梯度(gradient)。
    • 这里用到函数的导数,一维情况下,多维就是偏导数,梯度就是在每个维度下的偏导向量,作用是可以以最快的速度下降到坡底。(公式插图)

    三、Computing the gradient

    • 这里介绍了两种方法计算梯度,一种是较慢的但是容易的方法数值梯度(numerical gradient);还有一种是比较快的但是更易出错的方法,同时需要微积分分析梯度(analytic gradient)

    1. Computing the gradient numerically with finite differences

    • 首先应该计算梯度(这是一个大概的计算,也就是使用定义进行计算),然后根据梯度更新权重,这里关于更新权重,有更新的速率(学习率)。
    • Effect of step size, 确保一个合适的步长,也就是学习率,是一个重要的问题。(插图)
    • efficiency,考虑到成千上万的参数,这个方法的效率不高。

    2. Computing the gradient analytically with Calculus

    • 这里是使用微积分进行计算偏导数和梯度。结果是精确的,速度也是极快的。
    • 插图

    3. Gradient Descent

    • Mini-batch gradient descent, 如果我们的数据集很大,全部计算梯度是麻烦的,并且是浪费计算资源的,所以会抽取一部分样本进行计算损失,然后进行梯度计算并更新权重。
    • SGD, 这样随机抽取一部分样本,进行计算梯度更新参数的方法,叫做随机梯度下降方法。
    作者:睿晞
    身处这个阶段的时候,一定要好好珍惜,这是我们唯一能做的,求学,钻研,为人,处事,交友……无一不是如此。
    劝君莫惜金缕衣,劝君惜取少年时。花开堪折直须折,莫待无花空折枝。
    曾有一个业界大牛说过这样一段话,送给大家:   “华人在计算机视觉领域的研究水平越来越高,这是非常振奋人心的事。我们中国错过了工业革命,错过了电气革命,信息革命也只是跟随状态。但人工智能的革命,我们跟世界上的领先国家是并肩往前跑的。能身处这个时代浪潮之中,做一番伟大的事业,经常激动的夜不能寐。”
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    c# 事件阻断
    正则语义化API
    c# 防止继承和单例
    Maxscript 控制流混淆
    3dmax快速安装补丁的方法
    c# 使用类中的方法更新自己
    Maxscript 变量作用域
    Maxscript 键值对
    Maxscript 数据结构和算法记录
    Datawhale 之NLP学习-打卡(五)
  • 原文地址:https://www.cnblogs.com/tsruixi/p/12578232.html
Copyright © 2020-2023  润新知