aiken's blog
  • home
  • archives
  • search
  • Aiken's Blog
  • home
  • posts
  • tags
  • categories
  • archives
  • about
  • search
  • linklog
Home

Posts

UniFramework 01

文章的部分内容被密码保护: --- DON'T MODIFY THIS LINE --- @aiken 2021 Framework Abstract Try To make structure universal,编写一个自己的通用的架构,框架化,满足通过不同的model文件和特殊配置文件就能实现不同的模型的一个架构。 只是一个初步的框架集成,还有很多没有完善的地方,目前测试了ResNet18 跑Cifar10,没有什么问题,如果有什么可以改进的地方,或者你实现了一些Feature,*欢迎进行交流*!(私下联系我最好啦!) 感谢帮助 还有一些可以参数化或者可视化的地方,由于时间关系目前还没有修改,有兴趣的可以自己先添加一下 暂时只集成了分类的模块,后续可能会随缘扩展 本框架主要希望实现的是:易读性,可拓展性,以及简洁; 希望将重要的,可变的参数都尽量的分离出来,通过配置文件和命令行参数去定义和运行我们的网络,在这种情况下实现一个较好的工作流程。 Final Project Design PURPOSE:新类发现和模型自主更新;同时希望能够解决长尾分布的数据情景; **ANALYSIS:**为了实现这种模型的自主更新过程,将整体的流程分成两个部分 启动(start): self supervissed 等方法无监督的学习特征提取网络(这种方式是否会对Unbalance产生增益) 初始化预测模型: 基于Unbalance的数据训练一个基础的分类模型,在输出分类结果的同时需要输出对应的预测置信度,这两个其实都是一些简单的Trick,而最重要的是Backbone的分类效果需要得到保证,同时Backbone需要支撑后续的模型蒸馏更新。 模型的自主更新和迭代: Online:在线运行推断模型,通过置信度输出筛选出新类样本,将样本在样本池中收集 Offline:基于样本池的规模和评估触发离线更新:伪标签生成模型;模型蒸馏和更新 创新点:自主新类发现和学习 ...

December 4, 2021 · 3 min · 526 words · aikenhong ·  Machine Learning
#Machine Learning

Hungarian

@AikenHong 2021 @Code: Scipy(repo) @Reference: 匈牙利算法&KM算法 该篇笔记用来介绍匈牙利算法和KM算法(Kuhn-Munkres Algorithm),这两个算法通常用来做目标之间的匹配问题。 常用于:多目标跟踪,和深度聚类中的标签匹配问题。 Method 这两种方法实际上解决的问题都是: 二分图的最大匹配问题; 首先需要对二分图有个基本的了解: 实际上就是将数据分为两组,各组的每一个点都去另一个组找对应的匹配,我们希望将两组中,相关的数据尽可能的准确的匹配起来。 可以想象成,是同一个数据在不同的映射下的不同表征需要做这样的匹配关系。 解决这种问题的方式就是使用匈牙利算法或者KM算法 匈牙利算法 匈牙利算法是一种在多项式时间内求解任务分配问题的组合优化算法 匈牙利算法可以将二分图中的连线,看成是我们认为可能是相同的目标(不带权值),实际上就是从上到下假想成立,然后进行唯一匹配的搜索,有点像BackTrack的过程。 整体算法的成功率或者准确率实际上十分依赖与连线的准确率,对算法输出预测的准确度要求更高。 KM KM解决的是带权的二分图的最优匹配的问题。 相当于我们给每条线都给出一个置信度预测值,基于这样的权值图去计算对应的匹配关系 Step1: 将左边节点标上与他所关联的最大权值的边的数值 Step2: 寻找匹配,原则如下 只有权重和左边分数相同的边才进行匹配; 如果找不到边,此条路径的所有左边顶点-d,右侧+d,这里我们将d取值为0.1 对于考虑换边的另一个节点,如果无法换边,也需要对应的进行-d 具体的例子可以这么看(最好还是看blog): ...

December 3, 2021 · 1 min · 45 words · aikenhong ·  Matching
#Matching

Cherno的cpp教程笔记

this notebook is based on Cherno‘s Video Class in YouTube ;if there is sth get confused,I can recheck the video which talk about it, or just google it. this is not totally for newbie, so some basic information we should search it And this is a important websize to tell us basic info about C++. ToDo: using c++ and Python to finish the leetcode. review data structure when we code. eorganize the notebook by onenote** and leetcode 后续可能会添加 Effetive C++中的相关内容 C++ Switch语句 Attention: ...

November 29, 2021 · 17 min · 3543 words · aikenhong ·  Cpp
#Cpp

FSL前期调研

文章的部分内容被密码保护: --- DON'T MODIFY THIS LINE --- 主要是limited labels & Few Samples & Data programing Weakly supervised learning semi-supervised in video field if we can recoding this work? 多指标下降(LOSS的耦合或者循环的选择)、相关的CV最新论文等等会在后续关注 元学习、浅层神经网络的概念等等 semi-supervised PART1 Limited Labels (base on LiFeiFei‘s reference) in this part we may list the paper which is useful for my recoding. 还有一些其他重要的可能在对论文进行重新精读的时候要记得注意reference:就比如说在loss变换和决策树生成那一块。 distant supervision(it’s kind of early) can be another baseline for our method, we need to understand how this method work for that situation distant supervisor到底是什么机制可以去CSDN什么的看一下 ...

November 29, 2021 · 3 min · 549 words · aikenhong ·  Survey ·  FSL
#Survey #FSL

IL-MgSvF

@Author & Paper:Arxiv @Note:Aikenhong 2021/11/12 Other’s Note 1 Intro 旧知识的缓慢忘记和新知识的快速适应的困境:主要探讨Incremental中的Old和New的相互牵制和适应的问题, 旧知识的缓慢遗忘会导致对新任务的欠拟合,而快速适应会导致灾难性的遗忘,如何对这两种策略之间进行权衡,是一个重要的问题。 多尺度混合的解决这个问题: Intra-space: 新类别的特征在同一个特征空间中 inter-saoce:新旧类别的特征在不同的特征空间中 本文提出的多粒度策略: 提出了一种频率感知的正则化操作,加速空间内的增量学习能力 新的特征空间组合操作,提升空间间的学习性能 实际上新类和旧类的特征最好是通过自监督或者无监督的特征学习方法归化到同一个特征空间中,在这种情况下对Classifier进行调整可能是一种更好的策略。通过混合特征空间来得到一个泛化能力更高的特征表示器。 传统的策略:无论是累加还是进行数据混合进行梯度计算,这种方式应该是将类别之间的梯度进行直接的叠加。 是否可以自行混合不同类别之间的学习梯度?通过对梯度的下降方程求解来得到一个旧类和新类之间的更好的下降方法。 具体的操作上就是对step进行处理,通过mixdataset对梯度进行分开计算 在混合策略上可以考虑梯度的下降方向,对不同的维度进行加权计算? 上述的策略难以实施的点在于框架中的梯度是自动计算的,我们可以对损失进行加权,但是很难重新计算不同节点之间的梯度值 退而求其次的方法就是对新旧类的损失进行加权处理, 或者直接的混合数据 如果我们能获取梯度的方向, 或许我们能在每次迭代的过程中获得一个更好的加权值 首先可以尝试对梯度进行获取,Grad 我们在蒸馏的过程中通过MLP对不同的类别进行聚类划分, 这种方式的聚类和传统机器学习聚类的优劣又如何对比解释呢. 能不能用PCA方法或者multi-head策略来对特征进行处理, 这种类似因果的方式来分析特征中的冗余维度 上述的分析基于Mix Guide make error 的想法, 实际上还有一个问题就是Feature’s capabliity 不足的问题 New Key Word: Few-Shot class-incremental Learning ...

November 29, 2021 · 1 min · 72 words · aikenhong ·  Incremental Learning
#Incremental Learning

SSL-MoCov3

@Aiken 2021 恺明大神对自监督学习+transformer的实证研究,针对Transformer再自监督学习学习框架中的训练不稳定问题提出了Random Patch Projection的解决方案。 Article ;Paper ; Motivation ViT的方法在自监督学习的任务中,精度下降的主要原因是由于算法的不稳定性,容易陷入局部的最优值,本文主要聚焦于采用视觉领域的自监督框架进行Transformer的训练,CNN的训练方法已经是一个比较明确约定俗称的方法,而Transformer的训练架构实际上还没有被完全的构建。

November 29, 2021 · 1 min · 10 words · aikenhong ·  SSL
#SSL

Survey for Few-Shot Learning

@aikenhong 2020 @h.aiken.970@gmail.com 另一个综述文章:https://zhuanlan.zhihu.com/p/61215293 对该文中一些内容有一些补充,可以看看 FSL简介:https://blog.csdn.net/xhw205/article/details/79491649 GCN用于FSL:https://blog.csdn.net/qq_36022260/article/details/93753532 Abstract FSL的根本目的就是弥合人工智能和人类之间的鸿沟,从少量带有监督信息的示例中学习。像人类一样有很高的泛化能力。这也能解决在实际应用场景中,数据难以收集或者大型数据难以建立的情景。 FSL的核心问题是:经验风险最小化器不可靠;那么如何使用先验知识去解决这个问题? 三个主要的角度: 数据:使用先验知识增强数据的监督经验 模型:使用先验知识来降低假设空间 算法:使用先验知识来改变搜索最佳假设(来进行搜索?) 现阶段针对FSL提出的一些相关的机器学习方法: meta-learning; embedding learning; generative modeling etc. 本文的主要工作: 基于FSL的原有设定,在现阶段的FSL发展上给出正式定义,同时阐明具体目标以及解决方式 通过具体示例列举和FSL的相关学习问题,比较了相关性和差异性,更好的区分问题 指出核心问题:经验风险最小化器不可靠,这提供了更系统有组织的改进FSL的方向。 经验风险最小化器👉:基于ML中的错误分解来分析的 整理,更好的理解 未来方向 Notation and Terminology 一般基于参数方法(因为非参数方法需要大量数据),在假设空间中搜索最优假设,并基于基于标签的Loss Function 来衡量效果。 Main Body Overview 2.1:具体定义&示例 2.2:相关问题和FSL的相关性和差异 2.3:核心问题 2.4:现有的方法如何处理这个问题 ...

November 29, 2021 · 5 min · 912 words · aikenhong ·  Survey ·  FSL
#Survey #FSL

C++的常见数据类型和操作

主要介绍一些常用数据类型的一些method,区别还有一些特殊的定义; priority_queue 默认是大顶堆,great的话是小顶堆,less的话是大顶堆,自定义的话不知道是不是一致的 set默认top是小顶,这个大小我就不知道了,自定义的话,好像和我想得是一致的 所有的动态容器都是存放在heap上的,像是什么Vector,String,unordered_map之类的 指定精度的输出和计算 在腾讯的笔试中出现的需要指定精度和指定的计算精度的分析,在使用常数的时候一定要使用.0去修正一个方法。 Vector 动态数组 Vector中的一些常用的函数,方法,以及一些属性介绍和辨析 emplace_back & push_back(在末尾添加元素) empalce_back 直接在数组的末尾进行构造,而push_back借助于构造的临时变量再将其加入数组末尾,所以在一些操作中empalce_back对于空间时间的效率是会更高的,但是如果我们有重复构筑的数据的话,可能就需要使用push_back。 要注意实际上vector中并没有append的方法。 初始化方法 主要有几种常用的构造函数,在这里主要介绍的是关于多维度的初始化构造方式。 cpp vector<int> v = {7, 5, 16, 8}; // 最基本的定义 // 通过大括号来设定多级的vector的初始值 vector<vector<char>> value = { {'5','3','.','.','7','.','.','.','.'}, {'6','.','.','1','9','5','.','.','.'} }; 常用的长度和常量 cpp vector<vector<int>> vec(size1,vector<int>(size2,defaultvalue)); Unordered_map&set哈希结构 CPP中hash table的实现数据类型: 实际上就是无序表,针对不同情况下的基本的定义方式,理念相同,针对不同的应用场景 ...

November 28, 2021 · 3 min · 483 words · aikenhong ·  Cpp
#Cpp

Linux 基础操作 01

学习资源汇总 manual:菜鸟Shell | ExplainShell 收录一些Linux的工具书以及相关的OnLine-Doc,方便后续进行学习和查阅: 鸟哥的Linux私房菜 :相对全面一点但是内容有点太多了 Linux就该这么学 :从开始到结束的流程挺完善的,但是这个网站做的是纯傻逼 Linux Tools Quick Tutorial :简单入门教程好像是 Linux命令行于Shell脚本编程大全:本地PDF,在当前文件夹下面进行查看 文件架构&系统信息 Linux各文件夹的含义 分析LInux下的文件架构体系,包括最外层的一些系统文件夹的基础作用以及对应的特殊功能等等,帮助我们能够更清楚我们文件的存储体系以及系统文件的存储地址。 /tmp:临时文件夹,系统会定期清理其中的文件,用来存放一些下载和安装的文件 /mnt: mount挂载文件夹,作为挂载目录来使用,比如在WSL中,对应的就是windows系统的文件 /etc :用来存放所有的系统管理所需要的配置文件和子目录,linux正是因为这些文件才能正常运行 /home: 个人文件夹,在home下会有自己的user dir,通常情况下我们的工作区和对应的其余资料都会放在这个部分 /bin: 是binary的缩写,包含了引导系统启动所需的命令和普通用户可以使用的常用命令 /root: 系统管理员的主目录 /var:这个目录中存放着那些不断在扩充着的东西,为了保持/usr的相对稳定那些经常被修改的目录可以放在这个目录下,实际上许多系统管理员都是这样干的顺带说一下系统的日志文件就在/var/log目录中。 /usr: 最庞大的目录,要用到的应用程序和文件几乎都在这个目录 GPU & CPU信息 Linux查看显卡信息: shell lspci | grep -i vga # 如果是nvidia还可以 lspci | grep -i nvidia # 最常用:或者使用nvidia的自带命令 nvidia-smi 监视GPU使用情况 ...

November 28, 2021 · 6 min · 1221 words · aikenhong ·  Linux
#Linux

Data Augmentation

intergrate with those augmentation method. this doc will Record those theory and the effect after transformation Show the codes for ez use And the complete .py will be intergrate in my classification pipeline reference below:arrow_down_small:, if use them,start it for respect for his work. aleju/imgaug :star:albumentations-team/albumentations: torchvision PIL/ImageEnhance CCBS opencv Principle Principle 1 of coding: Don’t reinvent the wheel unless it’s needed 具体而言,仅在函数的拓展性较差,无法对其定制化,满足我们的日常需求的时候,我们会自行编写函数从而满足我们的需求,否则我们直接引用已知的库,提升我们的实现效率。 Principle 2 of coding 图像增强的两种使用方式: 做全集的增强后存储在本地,然后通过随机载入或者按一定batch的载入来实现我们增强的作用,(or contrasive),这种方式实际上是使用空间来换时间,由于处理是一次性的,所以如果空间充足的话,是更为充足的方式。 ...

November 28, 2021 · 3 min · 518 words · aikenhong ·  ML-DataProcessing
#ML-DataProcessing
<< « Prev 11/17 Next 13/17 » >>
© 2025 aiken's blog Licensed under CC BY-NC 4.0 · Powered by Hugo & PaperMod Visitors: Views: