Ivan

个人博客

[机器学习] NLNL: Negative Learning for Noisy Labels论文解读

0x01 Introduction 最近在做数据筛选方面的项目,看了些噪声方面的论文,今天就讲讲之前看到的一篇发表于ICCV2019上的关于Noisy Labels的论文《NLNL: Negative Learning for Noisy Labels》 论文地址:https://arxiv.org/pdf/1908.07387.pdf 这篇论文的核心思想是NL(Negative Learning)也就是利用complementary label(互补标签)对模型进行训练从而提升噪声鲁棒性 0x02 Negative Learning 对于一个图像分类任务,传统的学习策略PL(Positive Learning)利用图像正确的标签:”input image belongs to this label”。但在噪声情况下,PL会提供错误的信息,随着训练的进行会逐渐拟合噪声标签从而降低模型性能。......

[深度学习] Noisy-Label paper implementations

Noisy label 相关论文复现

noise-validationSome Noisy-label, Robust learning and Training tricks implementation.Code:https://github.com/ivanwhaf/noise-validation Algorithms1.BaselineMNIST and CIFAR10 dataset baseline without label noise. 2.QBC-LossReferring to Active Learning. Using several models to inference, calculating each sample’s weighted average loss 3.O2U-NetTitle: O2U-Net: A Simple Noisy Label Detection Approach f......

[软件安装] Ubuntu20.04安装Nvidia驱动,CUDA10.2,cuDNN7.6.5,Pytorch1.6.0及Detectron2踩坑记录

Ubuntu CUDA cuDNN Pytorch Dtectron2

前言最近准备装facebook的Detectron2目标检测框架,因对Windows适配不是很好,需要预装很多依赖以及CMake用来编译,折腾了半天没弄好,遂果断转至Linux,舒服多了,但是中间还是踩了一些坑,下面讲讲注意的一些事项。 安装/卸载Nvidia驱动安装ubuntu安装英伟达显卡驱动有两种方式。1.通过sudo命令安装:sudo apt install nvidia-driver-4402.打开Ubuntu自带的应用Software&Updates软件更新,选择要安装的驱动版本,如下图所示:注:以上两种方式安装完均须重启后才能生效,uefi的电脑需要在重启时将Secure Boot设为disable重启完打开设置点击关于(About)查看显卡信息(下图所示),如果变成N卡,驱动就安装成功了。也可以终端输入nvidia-smi查看应用有没有使用N卡驱动,nvidia-setti......

[机器学习] 强化学习DQN入门Demo之CartPole

CartPole Pytorch

前言最近在入门强化学习(RL)及DQN,看了一些博文和文章,花了2天时间跑了下DQN的经典demo—CartPole。其中踩过一些坑,本篇文章就简单谈一谈强化学习、DQN和我跑的入门demo。 什么是强化学习?强化学习是一类算法,是让计算机实现从一开始完全随机的进行操作,通过不断地尝试,从错误中学习,最后找到规律,学会了达到目的的方法。这就是一个完整的强化学习过程。让计算机在不断的尝试中更新自己的行为,从而一步步学习如何操自己的行为得到高分。 强化学习的常见模型是标准的马尔可夫决策过程(Markov Decision Process, MDP)。按给定条件,强化学习可分为基于模式的强化学习(model-based RL)和无模式强化学习(model-free RL),以及主动强化学习(active RL)和被动强化学习(passive RL)。 它主要包含四个元素,Agent、环境状态、行......

[软件安装] CUDA+cuDNN+Tensorflow-gpu+Keras安装教程

简介最近电脑重装,重新装了下深度学习数件套,结合之前安装遇到的一些问题和踩过的坑,决定写一篇安装教程。以下安装建议按照顺序进行,否则会有不必要的兼容性问题。软硬件环境如下: Windows 10NVIDIA MX350 CUDA首先打开N卡的控制面板界面,点击左下角的系统信息,如下图所示: 接着点组件,找到NVCUDA.DLL一项,查看显卡支持的最高版本号的CUDA版本,笔者的显卡支持的CUDA版本最高为10.2,如下图: 接下来是很重要的一步,不可跳过!打开https://tensorflow.google.cn/install/source_windows网站,查看tensorflow各版本适合的CUDA版本和cuDNN版本:此时可以看到,截至目前在Windows上适配的比较好的最高版本是tensorflow-gpu-2.0.0、CUDA 10、cuDNN 7.4。注意!虽然我之前查......

[深度学习] 神经网络参数Batch size浅谈

Batch Size一次训练所选取的样本数 GD / batch-GDGradient Descent,没有Batch Size SGDStochastic Gradient Descent,Batch Size=1 mini-batch SGD选择合适Batch Size的SGD mini-batch优点 提高运行效率、相比GD,一个epoch更新多次参数,加速收敛解决训练集过大无法一次性读入内存的问题人为给训练带来噪声,带领算法走出鞍点 大Batch Size优缺点 并行化提高内存利用率、发挥GPU性能一次epoch所需迭代次数减少、数据处理速度快梯度准确、震荡小、稳定性高、容易收敛泛化性能差、容易陷入局部极小值或鞍点内存容量不够 小Batch Size优缺点 收敛速度快花费时间多,梯度震荡严重,稳定性差,不利于收敛 Batch Size从小到大的变化对网络影响 没有batch siz......

[其它] Editor.md 开源在线 Markdown 编辑器

Editor.md 目录 (Table of Contents) 目录 Editor.mdHeading 1Heading 2Heading 3Heading 4Heading 5Heading 6Heading 1 link Heading linkHeading 2 link Heading linkHeading 3 link Heading linkHeading 4 link Heading link Heading link Heading linkHeading 5 link Heading linkHeading 6 link Heading link标题(用底线的形式)Heading (underline)This is an H1This is an H2字符效果和横线等引用 Blockquotes锚点与链接 Links多语言代......

[笔记] 2020-03-19

MySQL事务基本要素、事务隔离级别

事务的基本要素(ACID)1.原子性(Atomicity)要么全部做完,要么全部不做2.一致性(Consistency)事务开始之前和事务结束以后,数据库的完整性没有被破坏3.隔离性(Isolation)同一时间,只允许一个事务请求同一数据4.持久性(Durability)事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便系统故障也不会丢失 MVCC(Multi-Version Concurrency Control)多版本并发控制,通过保存数据在某个时间点的快照 事务隔离级别1.READ UNCOMMITTED(读未提交)脏读、不可重复读、幻读被读数据不加锁;更新数据加行级共享锁2.READ COMMITTED(读已提交) 不可重复读、幻读被读数据加行级共享锁(读到时才加锁),读完立即释放;更新数据加行级排他锁 3.REPEATABLE READ(可重复读) 幻读读数据加行级......

[笔记] 2020-03-04

加密算法

柯克霍夫原则密码学上的柯克霍夫原则(Kerckhoffs’s principle,也称为柯克霍夫假说、公理、或定律)系由奥古斯特·柯克霍夫在19世纪提出:即使密码系统的任何细节已为人悉知,只要密匙(key,又称密钥或秘钥)未泄漏,它也应是安全的。 信息论的发明者克劳德·香农则改成说:“敌人了解系统”,这样的说法则称为香农箴言。 它和传统上使用隐密的设计、实现、或其他等等来提供加密的隐晦式安全想法相对。依据柯克霍夫原则,大多数民用保密都使用公开的算法。 但相对地,用于政府或军事机密的保密器通常也是保密的。柯克霍夫为军用保密器所设计的这六个原则是: 即使非数学上不可破解,系统也应在实质(实用)程度上无法破解。系统内不应含任何机密物,即使落入敌人手中也不会造成困扰。密匙必须易于沟通和记忆,而不须写下;且双方可以容易的改变密匙。系统应可以用于电讯。系统应可以携带,不应需要两个人或以上才能使用(应......

[Python] PyGame模拟PID算法控制小车循迹

PID算法简介PID即:Proportional(比例)、Integral(积分)、Differential(微分)的缩写。顾名思义,PID控制算法是结合比例、积分和微分三种环节于一体的控制算法,它是连续系统中技术最为成熟、应心最为广泛的一种控制算法,该控制算法出现于20世纪30至40年代,适用于对被控对象模型了解不清楚的场合。实际运行的经验和理论的分析都表明,运用这种控制规律对许多工业过程进行控制时,都能得到比较满意的效果。PID控制的实质就是根据输入的偏差值,按照比例、积分、微分的函数关系进行运算,运算结果用以控制输出。 比例Kp成比例地反映控制系统的偏差信号,偏差一旦产生,立即产生控制作用以减小偏差。比例控制器的输出u(t)与输入偏差e(t)成正比,能迅速反映偏差,从而减小偏差,但不能消除静差。静差是指系统控制过程趋于稳定时,给定值与输出量的实测值之差。 积分Ki积分环节的作用,主要......