0%

技术飞速发展,机器学习正在成为各个企业的核心竞争优势之一。除了在处于风口浪尖的计算机视觉方向的应用,可能更能产生直接的价值的一个方向是在智能推荐领域。比如广告推荐,如果我们有一个更有效的算法,更精准的向用户推荐了某个广告,用户的广告点击将为企业直接带来收益。

然而在推荐领域,我们面临的是与当前的深度学习颇有不同的问题。这些不同主要体现在:

  • 超大的数据量
  • 领域专家人工设计的特征
  • 极致的在线服务性能需求

为了解决这个技术上非常有挑战的问题,一般情况下,我们要考虑的方案都是借助于大数据的工具。自Google的两篇经典论文发表以来,大数据相关生态发展至今已经十多年过去了,虽然一直都有新的思想的产生,但是很多经典的工具已趋于成熟。大数据的相关工具应对大数据的挑战应当是理所应当的选择。

阅读全文 »

自机器学习重新火起来开始,深度强化学习就一直是科研的一大热点,也是最有可能实现通用人工智能的一个分支。然而对于没有强化学习基础的同学们,如果直接去学习深度强化学习,想必会碰到很多问题。本文尝试普及一下最基础的强化学习算法,并以一个小例子来辅助大家理解。

问题定义

强化学习究竟研究的是一个什么样的问题,让其具有实现通用人工智能的潜力?

这个问题与我们认识世界的方式相关。我们都知道这个世界时刻在变化着,而每件事物的变化,势必是由其他一系列事物导致的。这就是我们所普遍认识的世界,一个由因果律定义的世界。由于有因果律的存在,我们就有可能根据某个当前世界的状态,计算后一时刻世界的状态。

而我们人类,作为一个智能体,通过观察这个世界,并进行各种各样的自主行动,来在这个世界中生存,并影响这个世界。通用人工智能的实现,就是期望能通过计算机模拟人类这样的智能体进行各种各样的行动决策。

阅读全文 »

作为机器学习的一个细分领域,CTR预估一直以来都是研究的一大热点。之所以成为研究的热点,是因为推荐领域巨大的商业价值。无论是我们每天通信用的微信QQ,还是我们每天搜索用的Google百度,或者是娱乐用的抖音斗鱼,广告在这些产品的收入中都占据着非常重要的组成部分,广告收入的背后是广告推荐引擎在发挥作用。除了广告,我们网上购物时的物品推荐,看新闻时的新闻推荐,听音乐时的音乐推荐等等,这些都是推荐引擎发挥作用的地方。在这些地方,推荐引擎都产生了巨大的价值。

对于如此重要的一个领域,我们做机器学习的小伙伴多多少少都需要了解一下。下面我将结合一个项目上的实际案例,来分享一下整个CTR的研究和应用情况。我将尝试尽可能用通俗易懂的语言,使得只要有一些基本的机器学习知识就能理解文章内容。文章将从应用角度出发,重点关注基本原理及工程实现而弱化更偏理论的公式推导等。

本系列文章将分为以下几个部分:

  • 概览:背景,研究的问题,技术架构及演进,一个小的例子
  • 传统模型:协同过滤、LR模型及其应用
  • Embedding、深度学习模型及其应用
  • FM与DeepFM
  • DCN及其他深度模型
  • 基于LSTM的模型:DIN、DIEN及DSIN
  • 多任务模型
阅读全文 »

今天跟大家分享一下时下非常流行的一个机器学习框架: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模型
阅读全文 »

大家好,这次要跟大家分享一个很炫酷的东西。我们要实现一个机器学习算法,这个算法可以通过观察屏幕,产生一系列操作,进而控制游戏,取得高分。

我们的目标

Atari是1972年成立的一家美国公司,主要做的是街机、家用电脑、家用游戏机。很多早期的经典游戏都是出自Atari,比如什么乒乓球、网球、各种弹珠游戏等等。我们今天要让机器来玩的游戏就是出自atari的游戏,名为breakout。这个游戏是基于乒乓球的玩法的一个游戏,与乒乓球不同的是,这个游戏可以由单人控制。相信只要是80后,肯定都玩过这个游戏。

Break out game

阅读全文 »

本文是上一篇文章『RNN和LSTM从理论到实践一:词向量』的续文。

上一章中,我们了解了词向量怎样训练,并跟随udacity上面的例子及问题动手实践了Skip Gram和CBOW模型训练算法。我们也顺带看了一下什么是语言模型,以及基础的n-gram模型是怎么样的。这次我们将要在前面的基础上,看看RNN和LSTM模型是什么样的,并将和大家一起动手去实现一个LSTM模型用于生成一个句子。

我们的问题

先来看我们的问题,然后让我们带着问题,来学习RNN和LSTM。这次我们要解决的问题是:如何生成一个看起来还不错的句子。

我们之前介绍过n-gram,那么我们能不能使用n-gram去预测单词,进而生成一个句子呢?我们可以使用频率统计来计算n-gram的语言模型:

阅读全文 »

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

大规模网络的特征

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

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

阅读全文 »

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

问题导入

提取门牌号进行地图标注

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

阅读全文 »

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

卷积计算过程

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

阅读全文 »