CYQ Blog

There's always a way out.

深度学习花书笔记(二)

机器学习基础

\[\newcommand{\bm}[1]{\boldsymbol{#1}}\] 估计、偏差与方差 对于模型的参数$\bm{\theta}$,$\lbrace\bm{x}^{(1)},\cdots,\bm{x}^{(m)}\rbrace$是$m$个独立同分布(i.i.d.)的数据点,$\bm{\theta}$的点估计是这些数据的任意一个函数 \[\hat{\bm{\theta}}_m=...

深度学习花书笔记(一)

数学基础

\[\newcommand{\bm}[1]{\boldsymbol{#1}}\] 信息论 香农熵: \[\begin{split} H(P)&=\mathbb{E}_{x\sim P}[I(x)]=-\mathbb{E}_{x\sim P}[\log P(x)]\\ &=-\int P(x)\log P(x) dx \end{split}\] KL散度: \[\be...

运维日常踩坑——Nvidia驱动

驱动更新

起因 服务器的Nvidia驱动从384更新到418之后,nvidia-smi命令报错:Failed to initialize NVML: Driver/library version mismatch Stackoverflow上有关于这个问题的几个 work around,重启试过,没用。重新加载内核模块是有用的。但每次重启之后就会失效。 虽然没有用,但是可以得到的信息是:驱动更新...

运维日常踩坑——Docker

Docker 版本更新

起因 由于17.12.0-ce的Docker存在一个严重bug,会导致各种操作显示 1 connection error: desc = "transport: dial unix /var/run/docker/containerd/docker-containerd.sock: connect: connection refused": unknown 而实验室的若干台机器都是装...

开集识别(三)

极值理论

极值理论简介 在开集识别问题中,对于输入数据提取特征之后,就要分别特征是否属于已知类。很常见的思想是选取一个阈值用于划分已知类与未知类。但是阈值应该如何选取呢?这时候就会经常用到极值理论。 极值理论跟中心极限定理类似,描述的是任意分布在样本量很大的时候的一种共同趋势。不同的是,中心极限定理描述的是整个分布,而极值理论描述的是样本中极值(最大最小值)的概率分布。 极值定理(Fisher–...

开集识别(二)

CVPR2019论文

C2AE1 全文的大致思路是:根据已知类别训练一个编码器,再锁死编码器参数,根据输出重建图片。由于编码器只学习了已知类别的编码信息,预计重建结果中已知类别的重建效果会非常好,未知类别的结果会比较差,可以基于这个特点,根据重建误差的大小区分未知类别。 闭集训练过程 设定一个一个常规的交叉熵loss,假设已知类数量为$k$,输入的batch与对应的标签分别为$\lbrace X_1,X_2...

开集识别(一)

基础知识

Open Space Risk1 设$f$ 是一个可度量的识别函数,并且对于类别$y$,$f_y(x)>0$表示该对象可能属于类别$y$,$f_y(x)=0$则表示未识别。设$\cal{O}$ 为“开放空间”,并且 $S_o$ 是一个半径为 $r_o$ ,并且包含了所有已知正训练样本$x\in\mathcal{K}$和开放空间$\cal{O}$的球体。那么类别$y$的Open Spa...

qizhi的任务调度机制(四)

GPU调度(一)

首先指明,这里的一切优化都是针对分布式机器学习中的同步梯度下降。并且目前只考虑数据并行的分布式。 为什么需要调度GPU? 数据并行的形式化描述 数据并行的通常做法,是将数据集进行划分到各计算节点,各自训练之后求梯度,然后加和平均。一个形式化的描述如下: 设$\lbrace y_i,x_i\rbrace_{i=1}^n$是一个数据集,其中有$n$条数据,每条形如$(y_i,x_i)$,...

组合博弈论(四)

局面的简化

学会使用Graphviz了,可以画彩图了2333333 兴奋的CYQ 前面我们已经认识了$0,1,-1,\ast$,这都是$\tilde{\mathbb{G}}_1$中的元素。$\tilde{\mathbb{G}}$的结构之所以复杂,很大程度就是因为$\ast$这个东西。首先我们会发现 \(\ast+\ast=0\) 这显然吗?当然,两条独立的绿边谁都可以取,那当然后手取完...

qizhi的任务调度机制(三)

机器调度(一)

已经开始改代码了,目前GPU调度的代码运行良好。调度结果符合预期,因此先卖个关子。考虑目前的难点:机器调度。 之前考虑的问题是:由于Task是逐个调度的,所以应该让一个任务尽可能调度到前面成功调度的节点上。于是就需要知道前面的任务都调到哪儿了。 StatusManager就是记录这个的,借助其记录状态的功能,可以方便的获得所有之前已经进行过调度的任务状态。 1 2 3 4 5 6 7 ...