迁移学习101: Transfer learning, pretrained learning, fine tuning 代码与例程分析 源码实践

目前的迁移学习太粗浅, 归因于我们对表征的理解太粗浅. 但这是一个好方向, 如果我们能从”迁移学习”上升到”继承学习”, 任何模型都是”可继承”的, 不用担心今天的模型到了明天就毫无用处, 就像人类的基因一代代地演变, 是不是会有点意思 ? — David 9

太多初学者总是混淆迁移学习预训练模型, David 9一直想为大家区分两者, 其实迁移学习预训练并不难区分:

  1. 把模型的所有参数保存起来, 都可以宽泛地叫做预训练, 所以预训练比迁移学习宽泛的多. 我们并不设限预训练的保存模型未来的用处 (部署 or 继续优化 or 迁移学习)
  2. 把预训练的模型用在其他应用的训练可以称为迁移学习. 

迁移学习(Transfer learning) 的原理相当简单:

如上图, 复用之前预训练的复杂深度网络(第一行大蓝框), 我们复用倒数第二层对图像的输出特征作为新的训练输入.

使用这个输入, 我们再训练一个迷你的浅层网络(第二行绿底网络), 就可以应用在其他领域. 继续阅读迁移学习101: Transfer learning, pretrained learning, fine tuning 代码与例程分析 源码实践

机器视觉 目标检测补习贴之SSD实时检测, Multibox Single Shot Detector

机器视觉是一场科学家与像素之间的游戏 — David 9

上一期,理解了YOLO这样的实时检测是如何”看一眼“进行检测的, 即让各个卷积特征图(通道)蕴含检测位置分类置信度的信息(即下图的Multiway Classification和Box Regression):

对于卷积的本质, David 9需要总结下面两点:

1. 单纯的卷积不会造成信息损失. 只是经过了层层卷积, 计算机看到了“更深”的图片, 输入图片被编码到最后一层的输出特征图(通道) 

2. 较大的卷积窗口可以卷积得到的输出特征图能够看到较大的物体, 反之只能看到较小的图片. 想象用1*1的最小卷积窗口, 最后卷积的图片粒度和输入图片粒度一模一样. 但是如果用图片长*宽 的卷积窗口, 只能编码出一个大粒度的输出特征. 即, 输出特征图越小, 把原始图片压缩成的粒度就越大.  继续阅读机器视觉 目标检测补习贴之SSD实时检测, Multibox Single Shot Detector

业界 | 扒一扒Facebook人工智能谈判模型 — Facebook开源的”端到端”强化学习模型

端到端学习是那么吸引人, 因为它与理想的”自治”学习是那么近. — David 9

我们离完全”自治”的AI系统还很远很远, 没有自我采集样本的能力, 没有自己构建模型的能力, 也缺少”端到端” 学什么就像什么的灵活性. 而最近Facebook 人工智能研究所(FAIR)的研究人员公开了一个具有谈判新能力的对话智能体(dialog agents),并开源了其代码, 在”端到端” 这一方向上更进了一步:

这篇文章的突破仅限于智能对话, 更像是一篇专利, 教大家如何用一堆神经网络训练一个智能对话来获得谈判最终利益. 另外值得注意的是该pytorch项目虽然开源, 但是是经过 creativecommonsNonCommercial 4.0 非商业化协议保护的, 即, 你可以研究和使用代码, 但是你不能直接用它做商业用途.

言归正传, David 9 想说的是, 这个近乎科幻的对话机器人, 其实并没有那么神奇.

首先看看Facebook一伙人怎么收集对话(dialog)数据的 :

Facebook这伙人收集的数据是从亚马逊 Mechanical Turk 交易网站上 买来的, $0.15一个对话, 总共买了5808个对话. 继续阅读业界 | 扒一扒Facebook人工智能谈判模型 — Facebook开源的”端到端”强化学习模型

#16 那些没被玩坏的GAN—用条件对抗网络实现”图片到图片”的通用风格转换

AI的进步是不断为机器赋能: “深蓝”时代机器有了暴力搜索能力, “数据”时代有了依靠数据建模的能力, 甚至用GAN自动寻找目标函数.  下一个时代, 会不会是一个数据和模型泛滥, 机器自我寻找数据和创造模型的时代 ? — David 9

之前伯克利人工智能研究实验室(Berkeley Artificial Intelligence Research (BAIR) Lab)在Arxiv上放出的论文: Image-to-Image Translation with Conditional Adversarial Networks , 又把图片风格转换玩了一把:

来自: https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix
图片到图片风格转换示例—马匹变斑马 来自: https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix

如今, 想把GAN(生成对抗网络)训练出来并且不玩坏, 已经很了不起, 而这篇文章提出通用的框架用于”图片到图片”的风格转换.  加之投稿即将举办的cvpr 2017 , 又出自伯克利之手, 引来了不少目光.

条件对抗网络cGAN进行图片风格转换已经不是新鲜事, 继续阅读#16 那些没被玩坏的GAN—用条件对抗网络实现”图片到图片”的通用风格转换

机器视觉 目标检测补习贴之YOLO实时检测, You only look once

机器视觉是一场科学家与像素之间的游戏 — David 9

上一期,我们已经介绍了R-CNN系列目标检测方法(R-CNN, Fast R-CNN, Faster R-CNN)。事实上,R-CNN系列算法看图片做目标检测,都是需要“看两眼”的. 即,第一眼 做 “region proposals”获得所有候选目标框,第二眼 对所有候选框做“Box Classifier候选框分类”才能完成目标检测:

事实上“第一眼”是挺费时间的,可否看一眼就能得到最后的目标检测结果?达到实时检测的可能? 答案是肯定的,这也是我们要讲YOLO的由来 — You only look once !

YOLO能够做到在输出中同时包含图片bounding box(检测框)的分类信息位置信息:  继续阅读机器视觉 目标检测补习贴之YOLO实时检测, You only look once

机器视觉目标检测补习贴之R-CNN系列 — R-CNN, Fast R-CNN, Faster R-CNN

CVPR 2017在即,David 9最近补习了目标检测的趋势研究。深度学习无疑在近年来使机器视觉和目标检测上了一个新台阶。初识目标检测领域,当然先要了解下面这些框架:

  • RCNN
  • Fast RCNN
  • Faster RCNN
  • Yolo
  • SSD

附一张发表RCNN并开启目标检测深度学习浪潮的Ross B. Girshick(rbg)男神

无论如何,目标检测属于应用范畴,有些机器学习基础上手还是很快的,所以让我们马上来补习一下!

首先什么是目标检测?目标检测对人类是如此简单:

把存在的目标从图片中找出来,就是那么简单! 继续阅读机器视觉目标检测补习贴之R-CNN系列 — R-CNN, Fast R-CNN, Faster R-CNN

TensorFlow手把手入门之分布式TensorFlow — 3个关键点,把你的TensorFlow代码重构为分布式!

分布式架构就像哈姆雷特,一千个人眼中有一千种分布式方式 — David 9

对于机器学习模型,分布式大致分两类:模型分布式数据分布式:

模型分布式非常复杂和灵活, 它把整个机器学习模型分割,分散在多个节点上,在每个节点上计算模型的各个部分, 最后把结果拼接起来。如果你造了一个并行性很高的深度网络,比如这个,那就更棒了。你只要在每个节点上,计算不同的层,最后把各个层的异步结果通过较为精妙的方式汇总起来。

而我们今天要手把手教大家的是数据分布式。模型把数据拷贝到多个节点上, 每次算Epoch迭代的时候,每个节点对于一个batch的梯度都会有一个计算值,一个batch结束后,所有节点把梯度值汇总起来(ps参数服务器的任务就是汇总所有参数更新),从而进行更新。这就会导致每个batch的计算都比非分布式方法精准。相对非分布式,并行方法下,同样的迭代次数,收敛较快。 继续阅读TensorFlow手把手入门之分布式TensorFlow — 3个关键点,把你的TensorFlow代码重构为分布式!