【子豪兄】精讲CS231N斯坦福计算机视觉公开课学习笔记

news2024/9/21 16:52:14

wx 搜索 gzh 司南锤,回复 子豪兄231笔记 可获取笔记文件(pdf+doc)


文章目录

        • 学习链接:
        • - 斯坦福大学公开课
        • - 计算机视觉发展历史
        • - 图像分类算法
        • - 线性分类、损失函数与梯度下降
        • - 神经网络与反向传播
        • - 卷积神经网络
        • - 可视化卷积神经网络
        • - 训练神经网络 (一)
          • - 激活函数
          • - 权重初始化
          • - Batch Normalization (批归一化)
          • - 总结
        • - 训练神经网络 (二)
          • - 优化器
            • -- SGD
            • -- SGD + 动量 【Momentum】
            • -- Nesterov Momentum 【NAG】
            • -- AdaGrad
            • -- RMSProp (Leakly AdaGrad)
            • -- Adam( almost)
            • -- Adam (full form)
          • - 学习率
            • -- 二阶优化法(牛顿法)
          • - 防止过拟合
          • - 模型集成
          • - 正则化
            • -- Dropout
            • - 数据增强 (data augement)
            • -- drop connect
            • -- Fractional Max Pooling
            • -- Stochastic Depth
            • -- Cutout
          • - 超参数选择
          • - 总结
        • - 卷积神经网络工程实践技巧
            • -- 卷积
            • -- imcol
            • -- FFT
        • - 迁移学习与fine tuning
          • - 迁移学习
        • - 卷积神经网络结构案例分析
          • . LeNet-5
          • . AlexNet
          • . ZFNet (可视化理解反卷积)
          • .VGG
          • .GoogleNet
          • .ResNet
          • .NetWork in NetWork
          • - 残差块的质量大于数量的重要性
          • - 分形网络
          • - 全附庸模型
          • - 可部署移动设备
          • - 元学习 (AI自己训练网络)
          • - 总结
        • - 深度学习硬件算力基础 (GPU & TPU)
            • -- 加速推断的算法
            • -- SqueezenNet
        • - 深度学习软件编程框架
          • - Pytorch
          • - TensorFlow
          • - Keras (对小白用户最友好,简单易上手)
          • - 建议
        • - 循环神经网络
            • -- 编码器 & 解码器
            • -- RNN梯度消失与梯度爆炸
          • - LSTM
          • -Transformer
          • - 总结


学习链接:

【子豪兄】精讲CS231N斯坦福计算机视觉公开课(2020最新)_哔哩哔哩_bilibili


- 斯坦福大学公开课

image.png


- 计算机视觉发展历史

猫对边缘视觉敏感的研究
image.png

ImageNet:
image.png

前置知识
image.png


- 图像分类算法

CIFAR10数据集
image.png

L1距离
将两个位置对应的地方直接相减 (曼哈顿距离)
image.png

image.png

LI距离python代码实现
image.png

LI距离与L2距离对比
image.png

  • L1距离对坐标系角度变化比较明显
  • L1距离适用于坐标系明确的情况:薪水和出勤

KNN图像分类的缺点

  1. 运算比较慢
  2. 距离作为划分的特征不够明显
  3. 随着维度增加计算量快速增大

- 线性分类、损失函数与梯度下降

铰链损失函数
image.png

正则化

image.png

image.png

image.png

Softmax 分类器:交叉熵损失函数
image.png

导数
image.png

数值解和解析解两种方式:
image.png

梯度下降算法
是损失函数下降,不是梯度本身下降

SGD算法
image.png

  • 一般选择2的指数作为批次

- 神经网络与反向传播

类比自然神经元
image.png

反向传播
image.png

梯度流的形式
image.png

向量的分类
image.png


- 卷积神经网络

卷积核

  • 使用卷积核个数有多少,通道就有多少
    image.png
  • 卷积核的作用是提取特征

池化

  • 使得神经网络具有平移不变性
  • 减少参数量
  • 防止过拟合

- 可视化卷积神经网络
  • 提取图像编码参数,进行降维之后进行可视化
    image.png

  • 遮挡实验 image.png

image.png

  • 反卷积方法 image.png

- 训练神经网络 (一)
- 激活函数

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

  • 二分类可以使用sigmoid

数据预处理

image.png

- 权重初始化
  • 权重设置为同一个数? 不行。这样每一个神经元的完全相同。

image.png

  • 参数随机初始化? image.png

image.png

该种初始化会导致梯度消失。

  • Xavier初始化
    image.png

根据输入的维度进行确认。

image.png

在relu上不成立,该方法前提要求w和x关于0对称,但是relu>=0

  • Kaiming/MSRA Initialization 何凯明提出初始化方法 【针对ReLU】
    image.png

image.png

- Batch Normalization (批归一化)

image.png

image.png

测试时用训练全局的方差和均值的的数据代替批处理的。训练里面使用的每batch的一批的。

image.png

image.png

image.png

- 总结

image.png

image.png

image.png


- 训练神经网络 (二)
- 优化器
  • 传统随机梯度下降优化的缺点
    image.png
    竖直方向上存在冗余的梯度

image.png
陷入局部最优点

– SGD

image.png

– SGD + 动量 【Momentum】

image.png

– Nesterov Momentum 【NAG】

image.png
优化:先看动量下一步根据下一步再计算梯度

image.png

– AdaGrad

image.png
随着累加分母会变的越来越大,更新量会越来越小。

– RMSProp (Leakly AdaGrad)

image.png
引入了衰减因子,类似于动量中的ρ

– Adam( almost)

image.png
综合考虑了第一和第二动量

– Adam (full form)

image.png


- 学习率
  • 如何评价一个好的学习率? image.png
– 二阶优化法(牛顿法)

image.png
一阶导数除以二阶导数,无需设置学习率

image.png
海森矩阵有时候计算量比较大,所以不普遍应用,参数爆炸

image.png
采用拟牛顿法解决上述的问题。

- 防止过拟合

提前停止

- 模型集成

image.png

image.png
采用训练过程中不同时刻的模型进行集成;多个局部最优点进行集成学习

- 正则化
– Dropout
  • 随机掐死一半的神经元,有效防止过拟合 image.png
    每个神经元都能够独当一面,减少神经元中的联合依赖和适应性;起到模型集成的效果;找到了主要矛盾,起到了稀疏性

  • 测试阶段不需要该操作,测试的时候需要补偿随机的P(0.5) image.png
    p=0.5能够使得各个神经元独立平等,不会出现部分神经元比重过大的情况,对应了 2 n 2^n 2n个模型。缺点是训练时间增加了。

  • 有效性的解释image.png

image.png

image.png

- 数据增强 (data augement)
  • 相当于增加了数据;
  • 图像裁剪,水平翻转,颜色的偏移和翻转,
– drop connect
  • 随机掐死某一些参数
– Fractional Max Pooling
  • 随机池化,训练过程中随机生成,大小不确定
– Stochastic Depth
  • 随机掐死一些层(resnet),可以使得网络的深度更大。
– Cutout
  • 扣掉图片的一部分
  • 将不同的物品的图片掺在一起

- 超参数选择
  • 检验初试损失函数
  • 在小数据集上尝试过拟合

image.png


- 总结

image.png


- 卷积神经网络工程实践技巧
– 卷积

image.png

  • 卷积核本质是二维信号滤波器
  • 卷积的本质是提取图像不同频率的特征

加速卷积运算的方法
image.png

– imcol

image.png

– FFT

image.png


- 迁移学习与fine tuning
- 迁移学习

借助预训练模型,泛化自己的数据集。借助冻结的模型进行特征的提取。

  • 数据库太小的处理方法?
    image.png

- 卷积神经网络结构案例分析

image.png

. LeNet-5

image.png

image.png

. AlexNet

image.png

image.png

image.png

  • 在LeNet的基础上进行改进

image.png

. ZFNet (可视化理解反卷积)

image.png

.VGG

image.png

image.png

image.png

.GoogleNet

image.png

image.png

image.png

image.png

  • inception模块, 不同类型的卷积层最后叠加
.ResNet

image.png

image.png

image.png

.NetWork in NetWork

image.png

- 残差块的质量大于数量的重要性

image.png

image.png

- 分形网络

image.png

- 全附庸模型

image.png

- 可部署移动设备

image.png

- 元学习 (AI自己训练网络)

image.png

image.png

- 总结

image.png

image.png

image.png

image.png

image.png

image.png


- 深度学习硬件算力基础 (GPU & TPU)

image.png

image.png

image.png

image.png

英特尔神经棒
能够实现嵌入式调用神经模型。进行边缘计算,对本地的硬件的要求比较高。

模型尺寸过大的危害
image.png

  • 主要能耗在于内存数据的读取
– 加速推断的算法

image.png

image.png

– SqueezenNet

image.png

image.png

image.png


- 深度学习软件编程框架

image.png

- Pytorch

image.png

  • 加下划线参数本身会被重置为0,否则只是输出返回0
    image.png

Dataloader:
image.png

预训练模型
image.png

可视化工具
image.png

image.png

构建动态计算图
image.png

other:静态图
image.png

- TensorFlow

image.png

image.png

- Keras (对小白用户最友好,简单易上手)

image.png

- 建议

image.png


- 循环神经网络

目前已经学习过两大类神经网络:全连接神经网络,卷积神经网络 (视频)
马上学习:RNN(处理序列数据)

image.png

RNN时间维度全局共享,CNN空间维度的全局共享

– 编码器 & 解码器

image.png

– RNN梯度消失与梯度爆炸

image.png

训练时间越长,越有可能出现。

- LSTM

image.png

image.png

C t C_t Ct为长期记忆,贯穿时间轴,与神经元内部的交互信息较少

  1. 选择被遗忘的信息
  2. 选择被保留的信息
  3. 更新CELL中的信息

image.png

image.png

image.png

image.png

  • 短期记忆为每个小模型的输出

image.png

image.png

-Transformer

image.png

image.png

- 总结

image.png


*感谢子豪大佬的精彩视频讲解❀

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2034419.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

关于WMS仓储管理系统的开发与应用

在当今这个全球化与数字化交织并进的时代,高效的仓储管理已经跃升为企业运营效能与市场竞争力提升的关键驱动力。仓库,这一供应链体系中的核心枢纽,其角色已远远超越了简单的货物存储功能,而是成为了推动货物流转效率与精准度的战…

软件测试之面试常见问题大全

软件测试之常见软件测试面试题 面试题解读,轻轻松松过面试,我以一个过来人的身份,写下这篇面试常见问题 1. 最常见的就是,为什么想进本公司,你了解本公司的业务吗? 再回答这个问题的时候是灵活的&#x…

DHCP学习笔记

1.DHCP快速配置 1.1配置接口IP R1: sysname R1 undo info-center enable interface Ethernet0/0/0 ip address 192.168.1.1 255.255.255.0 quit 1.2开启DHCP服务,接着在R1的e0/0/0配置DHCP Server功能 dhcp enable #全局下开启DHCP服务 interface Ethernet…

深度强化学习,模型改进

深度强化学习:DQN、PPO、DDPG、A3C、TD3、SAC、Rainbow、MADDPG、模仿学习,提供创新点,实验对比,代文章、润色 代码不收敛 菲涅尔模型 python深度学习算法模型定制

事务消息使用及方案选型思考

1. 事务消息概念与重要性 1.1 分布式系统中的事务问题 在分布式系统中,事务的一致性是一个核心问题。以电商登录送积分活动为例,用户登录成功后,系统需要执行两个关键操作:记录登录日志和发放积分。这两个操作需要保持一致性&am…

高性能的 C++ Web 开发框架 CPPCMS + WebSocket 模拟实现聊天与文件传输案例。

1. 项目结构 2. config.json {"service": {"api": "http","port": 8080,"ip": "0.0.0.0"},"http": {"script": "","static": "/static"} }3. CMakeLists.txt…

html+css+js网页设计 电商模版4个页面

htmlcssjs网页设计 电商模版4个页面 带js 网页作品代码简单,可使用任意HTML编辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作)。 获取源码 1&…

我把AI洗脑了!看了潘展乐、全红婵的采访,我才知道:远离人情世故,就是远离内耗——早读(逆天打工人爬取热门微信文章解读)

想无 引言Python 代码第一篇 洞见看了潘展乐、全红婵的采访,我才知道:远离人情世故,就是远离内耗第二篇 讲个鬼故事结尾 引言 昨天晚上把干货赶出来了 也就是昆虫小达人 大家可以看看 大概率能够让你心理上克服昆虫恐惧 今天没什么重点得事…

一、软件工程概述

软件工程概述 1. 软件的概念和特点2. 软件危机的产生3. 软件工程的概念和发展过程4. 软件工程知识体系与职业道德 1. 软件的概念和特点 软件定义 软件程序数据文档。 软件生存周期 问题定义:要解决的问题是什么?可行性分析:对于上阶段所确定…

智慧农业新篇章:实时监测与精细化管理

智慧农业,作为现代农业技术革命的先锋,正引领着一场深刻的产业变革。它通过融合物联网、大数据、人工智能等前沿科技,实现了对农业生产环境的实时监测与精细化管理,开启了农业发展的新篇章。这一转型不仅提升了农产品的质量与产量…

云仓酒庄湖南团队启航新征程:筑基新质生产力,深耕啤酒屋市场

原标题:云仓酒庄湖南团队启航新征程:筑基新质生产力,深耕啤酒屋市场 在当前经济转型升级的关键期,新质生产力的崛起正成为推动行业发展的重要引擎。云仓酒庄湖南团队积极响应市场变革,率先启动基础培训项目&#xff0…

基于paddlehub 未戴口罩检测算法

一、简介 以前大夏天戴着口罩别人觉得你不正常,现在上街不戴口罩你不正常。 本文要讲的未戴口罩算法是基于paddlehub提供的模型,paddlehub是百度飞浆(PaddlePaddle)下的深度学习模型开发工具。 PaddleHub旨在为开发者提供丰富的、高质量的、直接可用的…

beautifulsoup的简单使用

文章目录 beautifulsoup一. beautifulsoup的简单使用1、安装2、如何使用3、对象的种类 二、beautifulsoup的遍历文档树2.1 子节点.contents 和 .children descendants2.2 节点内容.string.text 2.3 多个内容.strings**.stripped_strings** 2.4 父节点.parent.parents 三、beaut…

AD如何在封装制作时添加禁止铺铜区域?

在PCB封装库中,选择“Top Layer”层执行菜单命令“放置→多边形铺铜挖空”, 然后画好所需要的挖空的区域即可,如果是设计完PCB之后才来进行铺铜挖空的,可以在添加完铺铜挖空之后选中器件右击点选“Update PCB With All”&#x…

PyFluent入门之旅(10)Fluent Python Console

之前的文章中都在介绍如何在Fluent外部环境使用PyFluent,那么是否有可能在Fluent内部使用PyFluent呢? 自Ansys 2023 R1开始,Ansys Fluent的内置控制台支持Python命令,这使在Fluent内部控制台使用PyFluent成为了可能。 准备工作 …

【SpringBoot】9 定时任务(Quartz)

介绍 实现方式 java定时任务调度的实现方式:Timer,ScheduledExecutor,Spring Scheduler,JCron Tab,Quartz 等。 Quartz Quartz是一个由Java开发的开源项目,它可以与J2EE、J2SE应用程序相结合也可以单独…

直播预约|8月14日,无人系统开发阶段故障注入与安全测试详解

电机失效故障硬件在环仿真 01 培训背景 卓翼飞思实验室暑期公益培训(第六期)将于8月14日,19:00开启!通过【飞思实验室】视频号线上直播,由中南大学计算机学院特聘副教授,RflySim平台总研发负责人戴训华副教授主讲。 第六期培训将…

Navicat Premium15 下载与安装(免费版)以及链接SqlServer数据库

转自:https://blog.csdn.net/m0_75188141/article/details/139842565

Hi910X 系列恒压恒流 BUCK 控制器

1. 产品介绍 Hi910X 是一系列外围电路简洁的宽输入电压降压 BUCK 恒压恒流驱动器,适用于 8-150V 输入电压范围的 DCDC 降压应用。Hi9100、Hi9101、Hi9102、Hi9103智芯半导体降压恒压系列 Hi910X 采用我司专利算法,实现高精度的降压恒压恒流。支持输出…

CV每日论文--2024.7.24

1 、AutoAD-Zero: A Training-Free Framework for Zero-Shot Audio Description 中文标题:T2V-CompBench:组合文本到视频生成的综合基准AutoAD-Zero:零样本音频描述的免训练框架 简介:我们的目标是以无需训练的方式为电影和电视剧…