0%

DORN模型的重现

DORN模型是在单图像深度估计问题上效果非常好的模型,18年刚发布的时候,就同时在KITTI数据集和ScanNet数据集上面取得了Robust Vision挑战的第一名。

阅读全文 »

作为每天和AI模型打交道的开发者,深度学习模型在不同的框架之间转换一直是一个老生常谈的问题。为了让这个问题变得容易,大家做了很多这样的工作,像是微软推出的MMdnn工具,号称可以将模型在几乎所有的流行AI框架中转换,又比如Facebook和微软一起推出的ONNX不依赖具体框架的中间格式等。

阅读全文 »

EfficientNet是谷歌AI科学家们在论文《EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks》中提出的模型。这篇文章不仅提出了这个模型,还系统地研究了模型扩展的问题,大家感兴趣的,可用阅读一下论文原文。EfficientNet的亮眼之处在于,其在保持领先的性能的同时,将模型的参数数量和预测速度都提升了一个数量级。请看下图的性能对比:

阅读全文 »

今天给大家分享一下,在网络规模越来越大时,我们会遇到什么问题,以及如何使用tensorflow来应对。下面将会给大家分享一些有用的tips。

大规模网络的特征

首先我们来看一下用什么来衡量网络规模。

下图是alexnet的网络结构图,在2012年的imagenet图像分类挑战中,alexnet取得了80.2%的top-5正确率。

阅读全文 »

今天给大家分享一个tensorflow的机器学习应用实例。我们将能看到如何针对特定的问题设计网络结构、设计损失函数,应用一些技巧来简化和拆分问题。还将演示如何将模型导出并部署到Android上,可以让我们感受到tensorflow强大的跨平台特性。

问题导入

提取门牌号进行地图标注

先让我们来看看我们要解决的问题。这个问题的应用场景来源于地图应用,如果能在地图上标注门牌号信息,这样就可以通过文本搜索找到地图中对应的位置了,事实上google地图就是通过训练这样的机器学习模型来进行地图信息标注的。要解决这个问题,可以读取google街景中的照片数据,然后训练一个机器学习模型来提取门牌号信息。如下图所示,当我们可以识别图片中的门牌号"42"了,我们就可以在地图上面进行标注了。

阅读全文 »

在当前深度学习领域中,卷积神经网络在图像处理、语音处理等方面都表现出了优异的性能,得到了广泛的认可。作为深度神经网络中的一个基础算法,有很多资料介绍了卷积实现原理,但是不少人在学习之后,还是对其及其梯度的计算过程细节不够清楚。在这里,我想分享几个自己做过的小试验来加深大家对卷积及其梯度计算过程的理解。

卷积计算过程

在卷积神经网络中,卷积计算过程可以通过下面的动图(来自此处)来理解:

阅读全文 »

最近在研究生成对抗网络,也对内对外做过一些分享。这里把分享过的内容整理一下,如有不对的地方,欢迎留言指出。也欢迎大家留言交流。这里是关于生成对抗网络的第一部分。

生成对抗网络介绍

什么是生成对抗网络?

从这个名称来看,我们可以了解到,这个网络是用一种对抗方法去生成数据的。和其他的机器学习模型相比,生成对抗网络里面最炫酷的理念莫过于给机器学习引入了对抗。纵观地球上的生物们的成长和发展路线就会发现,物竞天择,适者生存,万物都是在不停的和其他事物对抗中成长和发展的。生成对抗网络就像我们玩下面的格斗游戏一样,我们的学习过程就是,不断找其他对手对抗,在对抗中积累经验,提升自己的技能。

fighting game

阅读全文 »

最近在研究生成对抗网络,也对内对外做过一些分享。这里把分享过的内容整理一下,如有不对的地方,欢迎留言指出。也欢迎大家留言交流。这里是关于生成对抗网络的第二部分。第一部分在这里

上一篇中介绍了GAN的历史及发展,详细研究了GAN的模型和思想,还用tensorflow做了一个简单的实现。这一部分我们将看看GAN模型在近两年取得的进步以及未来可能的发展方向。同时,我们还会在上一次实现过的GAN例子上面,做一些增强,让GAN可以根据我们的需要来生成图像。

阅读全文 »

今天跟大家分享一下时下非常流行的一个机器学习框架:TensorFlow。希望大家可以一瞥TensorFlow的易用性和强大功能。

TensorFlow目前在我司的技术雷达上面处于assess阶段。

TensorFlow是什么

TensorFlow诞生于Google公司Google Brain项目。其前身是一个名为DistBelief的系统,DistBelief是Google内部使用非常广泛的一个机器学习系统。TensorFlow作为github上面的一个很火的开源项目,它的第一个提交是在2015年11月。到现在也不过刚好一年时间。

TensorFlow提供的API库可以用于编写富有表现力的程序。同时TensorFlow底层使用c++实现,其性能也是不错的。

TensorFlow在系统设计上使用一个有状态的数据流图来描述计算。使用TensorFlow时,需要先定义好计算图,以便TensorFlow可以在内部进行分布式的调度,然后一般会使用向计算图填充数据的形式进行迭代计算。

TensorFlow支持的系统非常广泛,从移动设备到桌面电脑再到大型分布式系统,从CPU到GPU,TensorFlow都提供了支持。

TensorFlow为了便于高效率的开发,同时也是顺应社区的技术潮流,提供的是Python的API。同时,也可以直接使用C++进行开发。目前还有Rust,Haskell的方言支持。

阅读全文 »

本文试图帮大家理解深度学习中的两大重要而基础的模型RNN和LSTM,并结合google在udacity上面关于深度学习的课程习题进行实践。

近两年深度学习在自然语言处理领域取得了非常好的效果。深度学习模型可以直接进行端到端的训练,而无须进行传统的特征工程过程。在自然语言处理方面,主要的深度学习模型是RNN,以及在RNN之上扩展出来的LSTM。RNN和LSTM也可以广泛用于其他序列处理和预测的机器学习任务。

RNN,全称为Recurrent Neural Network,常译为循环神经网络,也可译为时序递归神经网络,很多人直接简称为递归神经网络。另一个模型Recursive Neural Network,缩写也同样是RNN,译为递归神经网络。递归神经网络是时序递归神经网络的超集,它还可以包括在结构上有递归的神经网络,但是结构递归神经网络使用远没有时序递归神经网络使用得广泛。

本文包括四个部分:

  • NLP
  • 单词的向量表示
  • RNN和LSTM理论介绍
  • 训练一个LSTM模型
阅读全文 »