首页 > 其他分享 >CS231N assignment 2#3 _ dropout 学习笔记 & 解析

CS231N assignment 2#3 _ dropout 学习笔记 & 解析

时间:2023-04-13 14:04:14浏览次数:45  
标签:CS231N assignment dropout mask mode dx 拟合 隐含

dropout

定义 & 作用 & 基本实现

如课程所说,dropout最大的意义在于防止过拟合. 我们还记得, dropout在网络架构上介于激活函数之后, 下一层输入之前. 想法很简单, 就是将隐含层的某些数据屏蔽掉, 直接从以输入到下一层, 概率为p. 

需要注意的是, dropout是仅针对训练而言的,测试不能dropout, 所以为了保证规模近似, 需要确保矩阵均值不变, 所以dropout下还要乘1/p.

这样我们就知道了代码:

    if mode == "train":
        mask = (np.random.rand(*x.shape)<p)/p # 生成0,1rand, 随后利用<p来随机剔除
        out = x*mask         
    elif mode == "test":
        out = x        

而在反向当中, 很显然就是没有被dropout的正常, 而dropout得梯度直接为0, 相当直接乘mask, 所以结果如下:

    if mode == "train":
        dx = dout * mask
    elif mode == "test":
        dx = dout

需要注意的是, 原本代码中指定了rand得seed,保证每次推进得结果是可复现的.

下面是效果:

我们就能看出, 加入dropout之后, 虽然训练集表现收敛变慢, 但是验证集却差别不大甚至有所上升, 表明拟合效果能更好.

问题 & 解答

答: 为了保证均值一致, 如果不做p, 则需要在测试集*p. 

答: 既然隐含层本身就是控制拟合属性之一, 如果减少隐含层元素, 则不是很容易过拟合, 需要降低dropout淘汰参数, 增大p. (不知为啥很多博客都在说瞎话要减小p,我的评价是最好自己想想)

这次真的简单, 但是要开始卷积网络了, 算是暴风雨前得宁静把

标签:CS231N,assignment,dropout,mask,mode,dx,拟合,隐含
From: https://www.cnblogs.com/360MEMZ/p/17314268.html

相关文章

  • CS231N assignment 2 _ normalization 学习笔记 & 解析
    预警:本次内容不算多,但数学推导较复杂Normalization归一化的意义之前内部的权重没有做过标准化.实际上如果能标准化,可以提升训练效果,甚至可以提升精度(虽然不大).设立专门的batch/layernormalization层的意义在于:梯度更加规范对于学习率(可以更高),初始化权重等......
  • CS231N assignment 2 _ 全连接神经网络 学习笔记 & 解析
    本章内容较多预警Intro我们写过一个两层的神经网络,但是梯度是在loss内计算的,因此对网络的架构相关的修改难免比较困难.为此,我们需要规范化网络设计,设计一系列函数.,后面我们还会封装一个类,这也是最希望的方式了.环境搭建又到了工科生最上头(bushi的搭环境环节.......
  • CS231N assignment 1 _ 图像特征 学习笔记 & 解析
    利用图像特征提升准确度我们之前仅仅是逐个像素的计算,而忽视和图像在HSV空间的像素集中度和图像纹理特征.根据别人的博客,准确率进一步从54%提升到58%.下面进行解析.HOG/颜色直方图代码解读本次的作业没有要求我们自己实现,但是我们还是应该读懂代码. 在前面,我们一直......
  • CS231N assignment 1 _ softmax 学习笔记 & 解析
    [注意:考虑到这个和SVM重复很多,所以会一笔带过/省略一些]softmax和SVM只是线性分类器分类结果的评判不同,完全依靠打分最大来评判结果,误差就是希望结果尽可能接近正确分类值远大于其他值.我们将打分结果按照指数权重正则化为和为1的向量:而这个值希望尽可能接近1,也就是-l......
  • [博客入坑]CS231N assignment 1 _ KNN 知识 & 详细解析
    从零开始的全新博客我之前一直在语雀上更新文章,但是一会不更发现居然需要VIP才能发博客了:不过考虑到自己确实有一会没写博客了,之前对神经网络在课上学过,也鼓捣过pytorch,但是深感自己没有系统学习过.第一次接触这种公开课,希望也能有种从零开始的感觉,让自己面对这......
  • 算法设计与分析 Assignment 1(第一章)
    什么是算法?它有什么特点?算法是一组规则或过程,用于解决特定问题或完成特定任务。算法通常包括一系列的步骤和操作,可以将输入数据转换为输出数据。算法可以应用于各种领域,如计算机科学、数学、工程等,用于解决计算、优化、搜索、排序、加密等问题。算法有以下几个特点:精确性:算法......
  • 2022-10-26-CS231N-课后思考后笔记
    layout:posttitle:CS231N-课后思考后笔记subtitle:CS231N-课后思考后笔记description:CS231N-课后思考后笔记date:2022-10-26categories:deep......
  • 机器(深度)学习中的 Dropout
    在这篇文章中,我将主要讨论神经网络中dropout的概念,特别是深度网络,然后进行实验,通过在标准数据集上实施深度网络并查看dropout的影响,看看它在实践中实际影响如何。1.D......
  • dropout介绍+代码举例
    Dropout是一种在训练期间提高深度神经网络泛化能力的技术。在ConvolutionalNeuralNetworks(CNNs)中实现Dropout的方法如下:在卷积层或全连接层之间插入Dropout......
  • C/C++BUG: [Error] invalid array assignment
    在写字符串赋值给结构体成员的时候出现的报错报错的行,代码表示改变数据BookName,是将数据存储到结构体中,但是这样赋值会报错。报错这是结构体的组成,result是指向链表其......