前言很多人都在质疑,作为老牌的统计分析编辑语言到底能不能胜任深度学习这个新任务。不可否认,在“某度”上,R语言的深度学习资料确实不多,我想这主要是应用群体的关系。因此,我们开始搜索英文原始资料,希望能够搜罗到尽可能多的R语言深度学习解决方案(有朋友劝我,要不你换个编程语言?我说算了吧,以前用过C,学过VB,换过PB,也编过Matlab,年纪一把了,实在懒得再换语法了)。
Keras简介

下面我们开始言归正传,首先什么是Keras? Keras的中文文档是这么介绍的:
Keras是一个高层神经网络API,Keras由纯Python编写而成并基Tensorflow、Theano以及CNTK后端。Keras 为支持快速实验而生,能够把你的idea迅速转换为结果,如果你有如下需求,请选择Keras:
- 简易和快速的原型设计(keras具有高度模块化,极简,和可扩充特性)
- 支持CNN和RNN,或二者的结合
- 无缝CPU和GPU切换
https://keras-cn.readthedocs.io/en/latest/
读到这里,我心中窃喜,呵呵,果断没必要学习Python了,能调用就好了啊。
如何在R中调用Keras要学习如何调用Keras,你可以在https://keras.rstudio.com/中找到非常详细的说明,当然是全英文的(做DA不会英语不行啊)。下面我们就以网站上的例子来讲解如何运用在R中运用Keras进行深度学习。
以下为个人理解版,要看原文的直接点击链接https://keras.rstudio.com/
步骤1 安装Keras包
这里的代码很好理解,安装和调用。最后一行install_keras()是默认安装keras功能,这种情况下默认安装的是tensorflow作为后端,具体如下
此外,默认情况都是安装的CPU版本,当然,哪位土豪配置了NVIDIA® GPU,那么你就可以用下面的命令安装GPU版本。
MNIST算例:MNIST是非常著名的一个手写数字算例数据集,纠结细节的同学可以移步http://yann.lecun.com/exdb/mnist/,简单的来说,我们就是要运用深度学习方法来识别手写数字,比如:
步骤2 导入数据
步骤3 调整数据结构
#改变数据形状,矩阵转向量
这些工作是为了满足模型输入的需求,其中to_categorical是将对应的分类转化为向量,例如
to_categorical(2, 4)
上述代码分类是2,从0开始,所以2是第3个。4表示总共4个分类,所以输出的结果是
步骤4 定义模型
这里的%>%表示向右传递的管道函数。
步骤5 设置优化项
这里定义了损失、优化和度量方式。
步骤6 运行
到这里,我们的介绍就差不多了,这篇短文并不是深度学习的理论介绍,所以没有太多概念的说明。本文的用意只是抛砖引玉,希望有更多的R语言爱好者能够分享更多的R语言深度学习解决方案。
编后语本文是R语言数据分析系列中的第2篇,我们将继续推出R语言语法、统计分析数据挖掘等一系列文章。你的点赞和关注使我们最大的动力。
原文:
https://zhuanlan.zhihu.com/p/292 ... l&from=timeline