ImageNet Classification with Deep Convolution Neural Networks
作者
Alex Krizhevsky, Geoffrey Hinton
EfficientNet
解决了什么问题?
如图所示, efficientNet 试图解决在构建神经网络的时候改变输入的宽度 (向量长度), 模型的层数 (深度) 以及 输入图片的分辨率对模型训练结果的影响
![[effiicientNet.png]]
“In this paper, we systematically study model scaling and identify that carefully balancing network depth, width, and resolution can lead to better performance.”
宽度问题
增大宽度可以学到更加细粒度的特征,也更容易训练,但是对于 width 很大而深度很浅的网络,往往很难学到更深层次的特征
深度问题
增大深度可能会得到更加丰富或者复杂特征的学习效果更好,但是也会遇到梯度消失、训练困难等问题
![[efficient_diff_scaling.png]]
Untitled
encoder
主要功能是将输入图像转换为低维的特征表示,也叫“特征向量”或“嵌入”
浓缩了图像中的关键信息,便于模型在后续任务中使用
特征提取
• Image Encoder 提取图像的高层特征(如颜色、形状、纹理、边缘等)并将它们表示为特征向量。比如在卷积神经网络(CNN)中,图像经过多层卷积和池化层后,会生成一个包含图像关键信息的特征向量。
降维
• 原始图像通常包含大量的像素信息,而 Image Encoder 的任务之一就是将这些高维像素信息转换为低维的特征表示。这种降维处理不仅可以去除不必要的细节,还能保留最具代表性的图像特征。
创建通用表示
• Image Encoder 生成的特征表示可以被用于不同任务,如分类、目标检测、图像检索等。因此,优秀的编码器通常会学习到一种通用的图像表示,使得模型可以在不同任务之间共享这些表示,从而具备更强的迁移能力。
多模态任务中的桥梁
• 在 CLIP 等多模态模型中,Image Encoder 将图像转换为特征表示,并将其与文本编码器生成的文本表示进行对比,从而实现图像-文本匹配等多模态任务。
常用的 Image Encoder 模 ...
18. 基础图论
定义
一个图 G=(V,E)G = (V,E)G=(V,E) 由点的集合 VVV 和边的集合 EEE 组成
平行边 两个节点之间存在多条边界
self-loop 自循环
没有自循环的图称为 simple graph,两端不同的边称为 simple path
connect path: 一个 simple path 存在于任意一对 vertices 之间 (节点间均间接/直接相连)
cycle: 简单路径除了首尾 vertex 相同
稠密度
complete graph 任意两个 vertex 直接相连
dense graph 稠密图表示图内的 edge 数量很多 E∼V2E\sim V^2E∼V2
sparse graph 稀疏图 E∼VE\sim VE∼V
相邻关系表示
邻接矩阵 adjacency matrix
一个 0-1 矩阵,坐标 i,j 表示边 (i,j) 是否存在于图中
常用于无权图
距离矩阵 distance matrix
在这个距离矩阵中,对应坐标的值表示对应 edge 的距离
一般用 ∞\infty∞ 表示不存在通路
邻接表 adjacency list
点均边 ...
Untitled
mesh 网格
Mesh 是一种用于表示 3D 物体的结构,通常由三角形、四边形等基本多边形单元拼接而成。可以把它想象成一张“网”,用小的面片(面片即多边形)拼接成一个立体形状,比如游戏中的角色模型或建筑物
voxel 体素
“Volume Element” 的缩写,即“体积单元”。你可以把它看成 3D 空间中的小方块,每个方块都有特定的位置和颜色,就像 3D 像素一样
优点是它可以轻松表示出物体的内部结构,并且适合动态的修改和计算。然而体素模型会占用较多的存储空间,并且随着分辨率提升,计算需求也会增加
terminalogy
focal 焦距
ndc (normalized device coordinates) 标准化设备坐标系, 将点从裁剪空间映射到一个固定的范围 (归一化, 大多为 [-1,1]之类的空间)
mvp (model-view-projection transformation) 模型-视图-投影变换
作用是将 3d 世界坐标系变成 裁剪空间
处理结果是一个 4d 向量,第四维表示缩放因子
Untitled
映射关系
用神经辐射场隐式地表示场景,再用体积渲染技术显式得渲染出图像
输入
输入变量为一个 5维向量 (x,y,z,θ,ϕ)(x,y,z,\theta, \phi)(x,y,z,θ,ϕ) 其中 x,y,z 表示的是 相机的空间坐标, θ,ϕ\theta, \phiθ,ϕ 表示球坐标系下相机的朝向
输出
表示采样点的颜色和不透明度 (RGBA)
定义
辐射场
辐射场是一种用于描述场景中每一点的颜色和密度的方法。它不直接表示物体的形状,而是通过光线在空间中传播的信息来定义场景
神经辐射场
神经辐射场(NeRF) 是一种基于深度学习的辐射场表示方法。它使用一个全连接的神经网络来学习场景的连续体积密度和颜色分布。网络输入是一个五维向量 (空间位置的 XYZ 坐标和观察方向的 θ\thetaθ 和 ϕ\phiϕ 角度),输出是该点的RGB颜色值和体积密度。
体渲染技术
用于渲染三维数据的方法,它通过模拟光线穿过具有不同密度和颜色的介质的过程来生成图像
流程
读取数据,获取图片和对应的相机参数
光线采样,根据相机参数计算每个像素对应的 camera ray
batch 训练,对所有的 ray ...
1. Learning Transferable Visual Models From Natural Language Supervision
总体思路
首先是利用了 对比性训练的优良效果 并且同时计算了 文本 encoder 的数值以及 image encoder 的数值,将二者计算得到的两类数据分别计算 cosine 相似性,找到最大相似的文字进行 classify
这个思路将输入变成了两个:text + image, 这样事实上将可以分的类别变大了,只要图片及其对应文字类别同时存在就可以非常好的实现分类 (不用 categorial label 的限制 从而不需要依赖于现有数据集对于图片内容的要求)
![[clip_model.png]]
来自 NLP 界的无监督属性
CLIP 使用了一种类似 NLP 中无监督学习的方式,不依赖单一标签,而是将图像和自然语言文本对(例如一张图像和一段描述该图像的文字)作为输入。这种方法的核心是对比学习
监督学习的局限性
• 标注成本高:为每种物体手动标注数据代价非常高。
• 类别受限:模型的知识局限于训练时的标签,难以扩展到未见过的类别。
• 迁移困难:在迁移到新任务时,模型需要重新训练或微调,且效果可能不如预期。
零样本学习 zero-shot
主要依赖于知识的广泛迁移,模型通过处理大 ...
9. 基本 GPU 架构
Data-Level Parallelism (DLP)
在前面的工作中我们主要学习的 并行架构 就是 pipelining
简单的做法就是并行使用多个 核 core 或者使用多个硬件结构实现并行,但是这里要讨论的是 数据层面的并行
在固有的处理器中,我们计算如下公式
12for(i = 0; i < 100; i++) z[i] = A * x[i] + y[i];
很显然这一步可以用矩阵和向量等式进行优化
即表达式 z⃗=A⋅x⃗+y⃗\vec z = A\cdot \vec x + \vec yz=A⋅x+y
那么接下来的问题就是如何用硬件快速计算向量
SIMD 方法论
基础方法称为 single insturction single data 处理,即每个指令获取一个对应的 data 部分,但是事实上我们可以从一个指令调用多个 变量(来自一个 vector 的多个相关变量) 这就是 simd (可以在单核处理器上面有出色表现)
当然也可以 多个指令调用多个变量, 这个取决于多核同时工作
对比 cpu 和 gpu, 我们会发现当我们要处理大量相同类型的数据的时候 (例如 ...
1. 贝尔曼公式
决定形式
假设有一个 2×22\times 22×2 的 grid 网格,一个程序会分别从四个节点出发沿着顺时针方向旋转, 返回值分别为 v1,v2,v3,v4v_1, v_2, v_3, v_4v1,v2,v3,v4 那么每个值分别可以表述为
v1=r1+γr2+γ2r3+γ3r4+⋯v_1 = r_1 + \gamma r_2 + \gamma^2 r_3 + \gamma^3 r_4 + \cdots
v1=r1+γr2+γ2r3+γ3r4+⋯
类似的可以写出 v2,v3,v4v_2, v_3, v_4v2,v3,v4 的表达式
将 v1v_1v1 表达式进行变化得到递归形式:
v1=r1+γ(r2+γr3+⋯ )=r1+γv2v_1 = r_1 + \gamma(r_2 + \gamma r_3 + \cdots) = r_1 + \gamma v_2
v1=r1+γ(r2+γr3+⋯)=r1+γv2
这一步被称为 bootstrapping. 同理这也可以写出 v2,v3,v4v_2, v_3, v_4v2,v3,v4 的表达式, ...
0. 基本概念
基本概念
agent 相对于环境的状态
那么对于所有 state 的集合就是 state space
action: 对于每个 state 会有对应的改变当前 state 所执行的操作就是 action
action space of a state: 就对于某个 state 而言所有可能的 action 的集合, 写作 A(si)={ai}i=1k\mathcal{A}(s_i) = \{a_i\}_{i=1}^kA(si)={ai}i=1k 其中 k 表示 action 的可能数
state transition: 从一个state 转移到另一个 state 的过程称为一个 state transition, 写作 s1→s2s_1 \to s_2s1→s2
policy策略: 告诉 agent 在给定 state 下需要 take 的 action, 一般用条件概率进行描述 π(ai∣sj)=...\pi(a_i|s_j) = ...π(ai∣sj)=...
reward: 完成某个 action 之后获得的 数值, 正 reward 表示鼓励某个 action; ...
