0%

2019年4月28日 下午2:47

深度学习有多深?(十七)衡量GPU的计算能力-王川-财新博客-新世纪的常识传播者-财新网

一个典型的计算流程是这样的:

  1. 1)数据从 CPU 的内存拷贝到 GPU 的内存.
  2. 2) CPU 把计算指令传送给 GPU
  3. 3) GPU 把计算任务分配到各个 CUDA core 并行处理
  4. 4) 计算结果写到 GPU 内存里, 再拷贝到 CPU 内存里.

    除了时钟的速度, 衡量GPU计算能力的其它几个重要参数是:

  5. (CUDA cores) 并行计算的核心处理器的数目. (类似轮船的吨位)
  6. 内存大小 (类似港口的大小).
  7. 内存带宽 (Bandwidth, 指数据传输的速度, 类似轮船装卸货的速度)
  8. GPU\CPU之间通讯的带宽. (类似从港口到火车/卡车上的装卸货的速度)
    任何一个技术参数过慢, 都可能成为妨碍计算能力进步的瓶颈.
    反过来说, 提高计算能力的关键, 在于改进提高计算过程中的瓶颈.

2019年4月28日 下午2:12

我有一个问题理解不了?

1. 为什么Hiton要使用统计力学里的”玻尔兹曼分布”的概念,这个出发点我目前还理解不了。
    1. **这个理解不了说明自己还没有理解透这个模型**

模型的理解:

受限玻尔兹曼机 - 维基百科,自由的百科全书
深度学习方法:受限玻尔兹曼机RBM(一)基本概念 - Bin 的专栏 - CSDN博客
深度学习方法:受限玻尔兹曼机RBM(二)网络模型 - Bin 的专栏 - CSDN博客

核心出发点:

  1. 是借用了统计力学里的”玻尔兹曼分布”的概念 (一个微粒在某个状态的几率和那个状态的能量的指数成反比, 和它的温度的倒数之指数成反比), 使用所谓的”限制玻尔兹曼机” (RBM)来学习.

  2. RBM是一个能量模型(Energy based model, EBM),是从物理学能量模型中演变而来;
    1. 能量模型需要做的事情就是先定义一个合适的能量函数
    2. 然后基于这个能量函数得到变量的概率分布
    3. 最后基于概率分布去求解一个目标函数(如最大似然

与深度网络进行分类的区别:

  1. 目的不同:
    1. RBM目的:求出一个合适的W权重,并没有一个明确的输出的概念
  2. loss function (cost function)的指代的概念不同:
    1. RBM:指的是最大似然函数
    2. 深度网络:与标准答案之间的距离

模型的求解:

我没看具体的求解

  1. 算法难点主要就是对W求导(当然还有bias参数),用于梯度下降的更新;
  2. 但是因为V和H都是二值化的,没有连续的可导函数去计算
    1. 实际中采用的sampling的方法来计算,这里面就可以用比如gibbs sampling的方法
    2. 当然,Hinton提出了对比散度CD方法,比gibbs方法更快,已经成为求解RBM的标准解法。
      【 归档 】深度学习方法:受限玻尔兹曼(三)(四)

2019年4月26日 下午4:59

关于双目摄像头深度测量精度分析 - 知乎

  1. 当物体距离达到一定范围,前后移动的距离不足以在左右视图中产生一个像素以上的视差
  2. 在这样的区域内,双目摄像头无法分辨深度的变化,即深度值不随实际空间距离变化而变化。即连续的世界物理量经传感器量化后的客观表现。
  3. 而这样的距离是多远且每一段不变化的范围有多长,由具体双目摄像头的参数决定

2019年4月25日 上午11:33

讲解:

非参数估计之Parzen窗估计 - 简书

实验:

模式识别:非参数估计法之Parzen窗估计和k最近邻估计 · 模式分类理论与方法 · 看云

非参数估计:

  1. 理解:
    1. 我们预先没有假设样本满足的分布,也就是完全的数据驱动

等式一的来源:样本的独立同分布

等式二的来源:连续性假设

Parent窗隐含的约束:

2019年4月25日 下午9:04

机器学习中的数学——概率与统计

这个对全概率贝叶斯公式讲解的特别清晰,最重要的是还举了多个具体的例子

全概率的例子:

判断是否是全概率的技巧:

  1. 前一步是不是不确定,应对不确定的方式是全部枚举出来,也就是的意思

贝叶斯的例子:

2019年4月25日 下午1:48

基于MeanShift的目标跟踪算法及实现 - Where there is life, there is hope - CSDN博客
这篇文章已经10w的访问量的!主要是给出了详细的实现代码

MeanShift理解的核心:

  1. 核密度函数求梯度
  2. 目的:找到密度最大的地方,因此才叫密度函数
  3. 核:这个是可以根据自己的需要进行更换的

MeanShift跟踪的核心

  1. 将跟踪问题,转化为密度最大化问题

MeanShift【追踪】算法如何利用【原始】的MeanShift算法


2. 我们需要做:
1. 坐标点==》直方图
1. 改变处理的单元

2. 坐标距离==》自己定义一个距离
1. 坐标点使用的距离是天生就有的,而我们这里需要我们自己定义
3. 最后:
1. 把上面两个公式采用和Meashift相同的思路,进行求解,最终目标是得出漂移向量
3. 什么是可以直接采用的?
1. 在原始MeanShift中推导出的性质
1. 根据核密度函数,就可以直接推导出漂移向量。不用我们再去推导了。

4. 具体看PPT
1. 自动化所图像视频理解

2019年4月23日 上午9:23

如何仅在本地local,使用submodule

  1. 尽在本地无法使用submodule,git submodule add <URL> <本地项目地址>
    1. 这其中的URL一定是一个github上的clone地址
    2. 这个指令会从这个地址clone一份到本地
    3. 换句话说:这个命令只用于远程
  2. 好的一点是:
    1. 如果我们当前git文件子文件中也是git。那么此时我们git push到远程,子文件夹提交的是空文件夹
    2. 并且,如果我们git status是可以在当前文件夹看到git子文件夹的修改的

如果提交把本地的子文件夹变成远程的submodule

  1. 将子文件夹单独提交git push一个仓库
  2. 在当前文件夹中git submodule add <刚刚提交的URL> <本地项目地址>
    1. 此时,会自动clone下来这个项目
  3. 然后将原先的子文件夹删掉就可以了

2019年4月22日 下午12:46

Kaggle新福利:如何用Kaggle Kernels免费使用GPU - 掘金
GitHub - ScarletPan/Kaggle-Rental-Listing-Inquireies: Summary of getting a silver medal in kaggle
Fashion-MNIST | Kaggle
FDDC2018金融算法挑战赛02—A股上市公司公告信息抽取—gogogo冠军解决方案
wepon直播分享GBDT算法原理与系统设计简介PPT
详解 Kaggle 房价预测竞赛优胜方案:用 Python 进行全面数据探索 | 雷锋网

2019年4月21日 下午5:11

需要虚拟化的原因:

虚拟化的发展历程和实现方式 - 又是火星人 - 博客园

全虚拟化中的特权解除+陷入模拟:

具体三种虚拟化的方式没有深入的理解,只是大致的理解了一下思路:

CPU纯软件全虚拟化技术 - 又是火星人 - 博客园

  1. 在没有CPU硬件辅助虚拟化技术之前,对于X86架构的CPU就采用陷入模拟二进制翻译的技术对CPU进行虚拟化实现,但是模拟的方式存在固有缺陷,并不完全虚拟化了x86的CPU架构。
  2. 二进制翻译技术则采用完全不同的思路实现了x86架构的CPU虚拟化
  3. 其实对于x86的CPU虚拟化,其难点就在于对其特权指令和敏感指令的虚拟化实现

CPU纯软件半虚拟化技术 - 又是火星人 - 博客园

  1. 半虚拟化的思想就是,让客户操作系统知道自己是在虚拟机上跑的,工作在非ring0状态,那么它原先在物理机上执行的一些特权指令,就会修改成其他方式,这种方式是可以和VMM约定好的
  2. 这就相当于,通过修改代码把操作系统移植到一种新的架构上来,就像是定制化。
  3. 所以XEN这种半虚拟化技术,客户机操作系统都是有一个专门的定制内核版本,和x86、mips、arm这些内核版本。这样以来,就不会有捕获异常、翻译、模拟的过程了,性能损耗非常低。这就是XEN这种半虚拟化架构的优势。这也是为什么XEN半虚拟化只支持虚拟化Linux,无法虚拟化windows原因,微软不修改代码无法实现半虚拟化。

CPU硬件辅助虚拟化技术 - 又是火星人 - 博客园

  1. 硬件辅助虚拟化引入了根模式(root operation)和非根模式(none-root operation),每种模式都有ring0-3的四级特权级别
  2. 所以,在硬件辅助虚拟化中,陷入的概念实际上被VM-EXIT操作取代了,它代表从非根模式退出到根模式,而从根模式切换到非根模式是VM-Entry操作