深度学习主机入门版配置

为了让初学者花最少的钱办性价比最高的事情,我构造了这样一套DIY装机配置,在最大化利用显卡资源的同时,极力压缩无关配置。这个配置的主要特性是去掉了扩展性的可能,从而大幅降低了成本。

由于训练和推理主要使用显卡,显卡还是要尽量的好,为了能够训练主流的模型,我们还是要上性价比最高的NVIDIA 1080Ti。

显卡:技嘉(GIGABYTE) AORUS GTX 1080Ti,如果有渠道也可以买海外的英伟达出的公版(699美元)。

CPU:根据预算可以选择i5 7600K或i7 7700K,当然其他的LGA 1151接口的CPU都可以根据自己的经济能力进行选择,注意一下PCIe的通道数,只要要保证16通道,可以上英特尔官网查一下https://ark.intel.com/products。接口一定要是LGA 1151,后面的主板和他是配套的。

内存:至少16G,如果选择16G,建议两个8G,利用上双通道。如果32G,上两条16G。内存频率不是特别重要,DDR4 2133或2400普通的台式机内存就可以了。

主板:华硕Z270-A,跟X99系列主板的3000元起步,Z270要便宜好多,如果选择扩展性好的,比如网上经典的深度学习主机配置里那个三显卡支持的X99-E WS主板,X99系列主板的确有较好的扩展性,他需要搭配的CPU也要高端一些,起步CPU是6800K,比7700K要贵几百元,但6800K的优势是多核,主频却弱于7700K。对游戏、VR的支持,显然7700K更给力一些。Z270A+7700K京东有套装,便宜好几百块。

SSD:考虑到充分发挥显卡的性能,我们尽量不再占用PCIe通道,所以放弃了速度更快的m.2接口SSD,而选用了SATA3的SSD,但6Gbps的速度其实日常使用已经足够快了,而且SATA3的SSD可以持续达到6Gps的读写性能,而m.2(使用PCIe模式)或PCIe的SSD,在连续写入达到4Gb之后,写入速度就迅速衰减到1.6Gbps。推荐型号:三星(SAMSUNG) 850 EVO 250G SATA3 固态硬盘,容量根据需求自己选。

硬盘:建议还是要有一个上T的机械盘用来存数据的,这个就随便了,只要是SATA3接口的随便选。

电源:如果将来不再加显卡了,理论上这个配置也不适合加显卡,毕竟通道数只有16个,一个显卡占用的PCIe×16就给用没了,虽然这个主板支持两个PCIe×16插槽,但是真是两个都插上,主板芯片组就会变成两个8通道的运转了。所以600W的电源基本就够用了,建议电源要稳定,最好上EVGA品牌,大厂实力,然后根据经济能力自己选就好了。

虽然是深度学习的乞丐版,这个配置在游戏玩家中也算非常不错的高端配置了,玩各类游戏那是不在话下,再来个VR套装,就真是物尽其用了。

装机过程要注意的是显卡供电要求比较高,需要用两个电源线把两个供电口都插满。

如果有人使用这个配置装机了,你可以在此留言,我将再写一篇ubuntu、windows10双系统安装,以及深度学习基础环境搭建的文章。

Faster R-CNN论文翻译

Faster R-CNN是互怼完了的好基友一起合作出来的巅峰之作,本文翻译的比例比较小,主要因为本paper是前述paper的一个简单改进,方法清晰,想法自然。什么想法?就是把那个一直明明应该换掉却一直被几位大神挤牙膏般地拖着不换的选择性搜索算法,即区域推荐算法。在Fast R-CNN的基础上将区域推荐换成了神经网络,而且这个神经网络和Fast R-CNN的卷积网络一起复用,大大缩短了计算时间。同时mAP又上了一个台阶,我早就说过了,他们一定是在挤牙膏。

Faster R-CNN: Towards Real-Time Object

Detection with Region Proposal Networks

Shaoqing Ren, Kaiming He, Ross Girshick, and Jian Sun

摘要

最新的检测网络都依赖区域推荐算法来推测物体位置。像SPPnet[1]和Fast R-CNN[2]已经大幅削减了检测网络的时间开销,但区域推荐的计算却变成了瓶颈。本作将引入一个区域推荐网络(RPN)和检测网络共享全图像卷积特征,使得区域推荐的开销几近为0。一个RPN是一个全卷积网络技能预测物体的边框,同时也能对该位置进行物体打分。RPN通过端到端的训练可以产生高质量的推荐区域,然后再用Fast R-CNN进行检测。通过共享卷积特征,我们进一步整合RPN和Fast R-CNN到一个网络,用近期流行的“术语”说,就是一种“注意力”机制。RPN组件会告诉整合网络去看哪个部分。对于非常深的VGG-16模型[3]。我们的检测系统在GPU上达到了5fps的检测帧率(包括所有步骤),同时也在PASCAL VOC2007,2012和MS COCO数据集上达到了最好的物体检测精度,而对每张图片只推荐了300个区域。在ILSVRC和COCO 2015竞赛中,Faster R-CNN和RPN是多个赛道都赢得冠军的基础。代码已经公开。

Read more

Fast-RCNN论文翻译

本文实现了Fast-RCNN主要部分的翻译工作,在SPPnet出来之后,同在微软的R-CNN的作者Ross迅速怼了回去,抛出了更快更好的Fast-RCNN,思路为之一新的是,将之前的多阶段训练合并成了单阶段训练,这次的工作简洁漂亮,相比之前的RCNN,怀疑作者是在挤牙膏。另外,面对灵活尺寸问题,Ross借鉴了空间金字塔的思路,使用了一层空间金字塔。

Fast R-CNN

Ross Girshick

Microsoft Research
rbg@microsoft.com

摘要

本文提出了一个快速的基于区域推荐的卷积网络方法(Fast R-CNN)用于对象检测。Fast R-CNN在前人工作的基础上使用深度卷积网络,可以更有效地分类物体推荐。相比之前的工作,Fast R-CNN进行了多项创新,在提高了检测精度的同时,也提高了训练和测试速度。Fast R-CNN训练了一个超深VGG16网络,训练时间比R-CNN快9倍,测试时间快213倍,在PASCAL VOC2012上达到了更高的mAP。相比SPPnet,Fast R-CNN训练快3倍,测试快10倍,并且更加准确。Fast R-CNN用Python和C++(使用Caffe)实现,以MIT协议开放在:https://github.com/rbgirshick/fast-rcnn

Read more

SPPNet论文翻译-空间金字塔池化Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition

我对物体检测的一篇重要著作SPPNet的论文的主要部分进行了翻译工作。SPPNet的初衷非常明晰,就是希望网络对输入的尺寸更加灵活,分析到卷积网络对尺寸并没有要求,固定尺寸的要求完全来源于全连接层部分,因而借助空间金字塔池化的方法来衔接两者,SPPNet在检测领域的重要贡献是避免了R-CNN的变形、重复计算等问题,在效果不衰减的情况下,大幅提高了识别速度。

用于视觉识别的深度卷积网络空间金字塔池化方法

Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition

Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun

摘要

当前深度卷积神经网络(CNNs)都需要输入的图像尺寸固定(比如224×224)。这种人为的需要导致面对任意尺寸和比例的图像或子图像时降低识别的精度。本文中,我们给网络配上一个叫做“空间金字塔池化”(spatial pyramid pooling,)的池化策略以消除上述限制。这个我们称之为SPP-net的网络结构能够产生固定大小的表示(representation)而不关心输入图像的尺寸或比例。金字塔池化对物体的形变十分鲁棒。由于诸多优点,SPP-net可以普遍帮助改进各类基于CNN的图像分类方法。在ImageNet2012数据集上,SPP-net将各种CNN架构的精度都大幅提升,尽管这些架构有着各自不同的设计。在PASCAL VOC 2007和Caltech101数据集上,SPP-net使用单一全图像表示在没有调优的情况下都达到了最好成绩。SPP-net在物体检测上也表现突出。使用SPP-net,只需要从整张图片计算一次特征图(feature map),然后对任意尺寸的区域(子图像)进行特征池化以产生一个固定尺寸的表示用于训练检测器。这个方法避免了反复计算卷积特征。在处理测试图像时,我们的方法在VOC2007数据集上,达到相同或更好的性能情况下,比R-CNN方法快24-102倍。在ImageNet大规模视觉识别任务挑战(ILSVRC)2014上,我们的方法在物体检测上排名第2,在物体分类上排名第3,参赛的总共有38个组。本文也介绍了为了这个比赛所作的一些改进。

Read more

R-CNN论文翻译——用于精确物体定位和语义分割的丰富特征层次结构

我对深度学习应用于物体检测的开山之作R-CNN的论文进行了主要部分的翻译工作,R-CNN通过引入CNN让物体检测的性能水平上升了一个档次,但该文的想法比较自然原始,估计作者在写作的过程中已经意识到这个问题,所以文中也对未来的改进提出了些许的想法,未来我将继续翻译SPPNet、fast-RCNN、faster-RCNN、mask-RCNN等一系列物体定位和语义分割领域的重要论文,主要作者都是Ross Girshick和Kaiming He。

用于精确物体定位和语义分割的丰富特征层次结构

Rich feature hierarchies for accurate object detection and semantic segmentation

Ross Girshick      Jeff Donahue      Trevor Darrell     Jitendra Malik
UC Berkeley

摘要

过去几年,在权威的PASCAL VOC数据集上,物体定位的性能已经达到一个稳定水平。表现最好的方法都是融合了多个低层次图像特征和高层次的上下文环境的复杂系统。本文提出一种简单的可扩展的检测算法,可以将VOC2012上期望平均精度的最好结果明显提升30%以上——达到了53.3%。我们的方法结合了两个关键因素:(1) 将大型卷积神经网络(CNNs)应用于自底向上区域推荐以定位和分割物体;(2)当标签训练数据不足时,先针对辅助任务进行有监督预训练,再进行特定任务的调优,就可以产生明显的性能提升。由于我们结合了区域推荐和CNNs,该方法被称为R-CNN:Regions with CNN features。我们对比了R-CNN和OverFeat,Overfeat是最近被提出的一个机遇类CNN架构的滑动窗口检测器,发现R-CNN在ILSVRC2013检测数据集上面的表现明显优于OverFeat。整个系统的源码在:https://people.eecs.berkeley.edu/~rbg/rcnn(译者注:已失效,新地址:https://github.com/rbgirshick/rcnn)

Read more

使用.ai域名的著名人工智能创业公司盘点

.com域名基本已经废了,除非特别讨巧地起到新的名字,否则基本都要花大价钱才能搞到满意的名字。但这些对于人工智能的初创公司,似乎烦恼更小一点,因为.ai域名的注册价格不菲,导致投机者大幅减少,直到2015年,.ai域名都数量甚微,大量优质域名都无人注册,比如单拼ai域名今年才用尽,而双拼域名大把存在,因此这些人工智能初创公司,就可以开开心心地毫无压力地选择一个比较不错的域名注册。

Read more

[DeepMind论文部分翻译]克服神经网络中的灾难性遗忘 Overcoming catastrophic forgetting in neural networks

本文翻译了DeepMind的最新研究成果的第一部分,可以当做是introduction部分,借鉴神经科学成果,解决了一个通用人工智能领域持续学习所面临的关键性难题。
实现通用智能需要智能代理能够学习和记住许多不同的任务[1]。在现实世界中这很困难:任务的顺序并不会显式地标注出来,任务之间可能会不可预期地切换,单一任务可能在很长的一段时间内都不会复现。因而,智能代理必须具备持续学习的能力:也就是学习连贯的任务而不会忘记如何执行之前训练过的任务的能力。
持续学习对人工神经网络是一个特别大的挑战,因为与当前任务(比如任务B)相关的知识被合并掉,关于先前任务(比如任务A)的知识会突然地丢失。这个现象术语叫灾难性遗忘(catastrophic forgetting)[2-6],一般会发生在神经网络在多个任务上进行按序训练的时候,比如对任务A很重要的神经网络的权重正好满足任务B的目标时。然而近来机器学习的进步,尤其是深度神经网络的进步对各个领域已经产生了广泛的有利影响(如文献7和8),但连续学习领域的研究却停滞不前。当前的方法主要是通过确保来自各个任务的数据在训练中都可以同时获得。通过在学习过程中对来自多任务的数据进行交叉操作,其实遗忘并不会发生,因为神经网络的权重能够对所有任务上的表现进行联合优化,但这个方法通常指的是多任务学习范式-深度学习技术,已经被成功地应用在训练单一智能体玩多种Atari游戏[9,10]。如果任务按序呈现的话,只能在数据存储在事件记忆系统并在训练的过程中对网络进行回放时,才能采用这种多任务学习技术。这种方法(通常也叫系统级巩固[4, 5])面对学习大量任务时并不实用的,因为按照我们的设定,它应该需要与任务数量成比例的存储数量。相关算法的确实成为通用智能开发的关键障碍。
与人工神经网络形式鲜明对比的是人类和其他动物似乎能够以连续的方式学习[11]。最近的证据提示哺乳动物的大脑可能会通过大脑皮层回路来保护先前获得的知识,从而避免灾难性遗忘[11-14]。当小鼠需要一个新技能的时候,一定比例的突触就会增强,表现为单一神经元的树突棘数量的增加[13]。至关重要的是,即使进行了后续的其他任务的学习,这些增加了的树突棘能够得到保持,以便几个月后相关能力仍然得到保留。当这些树突棘被选择性“擦除”后,相关的技能就会被遗忘[11,12]。这表明对这些增强的突触的保护对于任务能力的保留至关重要。这些实验发现与诸如瀑布模型[15, 16]这样的神经生物学模型提示我们大脑皮层中的持续学习依赖于任务相关突触的巩固,知识能够长久地编码得益于让一部分突触降低可塑性从而在相当长的时间范围内变得稳定。
本次工作将展示任务相关突触巩固为人工智能的持续学习问题提供了独特的解决方案。我们为人工智能神经网络开发了一种类似于突触巩固的算法,称之为可塑权重巩固(elastic weight consolidation,EWC)。这个算法会针对那些对特定任务特别重要的特定权重降低学习率。也会展示EWC如何应用在监督学习和强化学习问题中,在不会遗忘旧任务的情况下,按次序地训练多个任务,并与之前的深度学习技术进行对比。

变分自编码器(Variational Autoencoder, VAE)通俗教程

1. 神秘变量与数据集

现在有一个数据集DX(dataset, 也可以叫datapoints),每个数据也称为数据点。
我们假定这个样本受某种神秘力量操控,但是我们也无从知道这些神秘力量是什么?那么我们假定这股神秘力量有n个,起名字叫\(power_1, power_2,…, power_n\)吧,他们的大小分别是\(z_1, z_2, …, z_n\),称之为神秘变量表示成一个向量就是

\(
z =
\left(
\begin{array}{c}
z_1\\
z_2\\
\vdots\\
z_n
\end{array}
\right)
\)

z也起个名字叫神秘组合

一言以蔽之:神秘变量代表了神秘力量神秘组合关系。
用正经的话说就是:隐变量(latent variable)代表了隐因子(latent factor)的组合关系。 Read more

STDP与无监督学习

SDTP是在大脑中发现的神经元之间权重连接的更新规则,他的目标非常的清晰就是如果两个神经元的发放在时间上离的远近,他们之间的绑定关系就越紧密,一般就反映到激活权重越大上。我从文献[1]中盗了个图,如下:

a

我们可以看到,如果一个神经元A的激活在另一个神经元B的激活之后很快就发生,时间差小于5ms时,B到A的连接权重就会增加约70%,而相反A到B的连接权重就会衰减20%。什么意思?通俗的说,就是当A和B先后激活时,具备紧密先后关系的双方会加强联系,而具备相反关系的,就会渐行渐远,这样的规则带来了什么样的结果呢?那就是具备时间上和空间上同时性或连续性的事件之间建立带有次序关系的联系。从这个角度,也可以想象到神经元之间往往建立的是单向的加强联系,如果A到B不断增强,那么B到A就不断减弱,而如果是同时发生,一般两者会不好不坏,而他们的共同下游则与他们之间形成了更加紧密的联系, 从而两者变成了同级,并具备了间接关系。 Read more

大脑、小脑与运动控制原理

发现一个写得还不错的关于运动控制的教学文章,翻译给大家。

原文地址: http://thebrain.mcgill.ca/flash/d/d_06/d_06_cr/d_06_cr_mou/d_06_cr_mou.html#4

运动皮层

人体的自主运动都是由大脑控制的。控制自主运动的大脑区域称作运动皮层。运动皮层位于额叶后部,中央沟回(额叶和顶叶的分界线)之前。运动皮层主要分为两个区域,4区和6区,也成为初级运动皮层,沿着中央沟回形成一条窄带。6区位于4区的正前方。6区更宽,进一步细分为两个亚区。为了能够执行目标导向的运动,运动皮层需要接收来自各叶的各种信息,包括:来自顶叶的身体空间位置信息;来自额叶前部的关于达成目标而采用的恰当策略信息;来自颞叶关于历史策略的记忆信息;

d_06_cr_mou_1a

图1. 区域划分

d_06_cr_mou_1b

图2. 身体映像

Read more