0%

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

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

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

本文包括四个部分:

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

今天跟大家分享一下时下非常流行的一个机器学习框架: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的方言支持。

阅读全文 »

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

问题定义

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

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

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

阅读全文 »