22

AutoML : 更有效地设计神经网络模型

 3 years ago
source link: https://www.leiphone.com/news/202009/j72W9MZuvJQiyTqa.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

FzYBRrf.png!mobile

字幕组双语原文: AutoML : 更有效地设计神经网络模型

英语原文: AutoML: Creating Top-Performing Neural Networks Without Defining Architectures

翻译:雷锋字幕组( chenx2ovo

自动化机器学习,通常被称为AutoML,是自动化构建指神经网络结构。AutoML通过智能架构的操作,可以让大家更方便、更快速的进行深度学习的研究。

在本文中,我们将介绍AutoML的以下内容:

  • 如何安装AutoKeras来进行神经网络架构搜索

  • 在使用结构化、图像和文本数据进行回归和分类任务中,如何使用AutoKeras找到最佳的神经网络架构。

  • 如何评估、预测、导出(搜索到的模型)到Keras/TensorFlow,并且查看搜索到的高性能模型的架构。

关于AutoKeras的一个简短介绍

  • 通过AutoKeras这个神经架构搜索算法,我们可以找到最好的神经网络架构,比如层中神经元的数量,架构的层数,加入哪些层,层的特定参数,比如Dropout中的滤波器大小或掉落神经元的百分比等等。当搜索完成后,你可以将模型作为常规的TensorFlow/Keras模型使用。

  • 通过使用AutoKeras,你可以建立一个具有复杂组件的模型,比如嵌入和空间缩减,这些对于那些还在学习深度学习的人来说是不太容易理解的。

  • 当AutoKeras创建模型时,会进行大量预处理操作,如矢量化或清理文本数据等等,都会自动完成并优化。

  • 启动和训练搜索只需要两行代码。AutoKeras拥有一个类似Keras的界面,所以它非常易于使用。

是不是很激动,让我们正式开始叭!

安装

在安装前,请先确保你安装了以下包:

  • Python 3 (AutoKeras不能在Python 2上运行)

  • TensorFlow ≥ 2.3.0 (AutoKeras基于TensorFlow构建

在命令行中,运行下列两个命令。这样就能正确安装AutoKeras。注意,不能在Kaggle笔记本中运行,最好在本地环境中运行。

JFBJzu.png!mobile

作为测试,在编码环境中运行import autokeras以确保一切正常。

结构化数据的分类/回归任务

我们从著名的iris数据集开始,该数据集可以从sklearn的几个简单的示例数据集中导入。导入的数据是一个字典,有两个键值对组成,"data "和 "target"。

然而,由于target是分类标签(三个类别),我们需要对它进行虚拟编码。由于结果是一个pandas DataFrame,并且需要一个NumPy数组,我们在pd.get_dummies之后调用.values(独热编码)。

fAnmIzM.png!mobile

调用X.shape得到(150,4),调用y.shape得到(150,3)。这是说明X中包含了150行4列,y中有3个不同的类别(因此有3列)。为了评估我们的模型,我们将把数据分成训练集和测试集。

VzyAZnj.png!mobile

查看数组的尺寸是一个很好的做法:

  • X_train: (105, 4)

  • X_test: (45, 4)

  • y_train: (105, 3)

  • y_test: (45, 3)

太好了!一切都很顺利。我们可以开始使用Autokeras了。

导入Autokeras通常没有问题。StructuredDataClassifier是一个在 "结构化数据 ",或者说是带有列和标签的标准二维数据上工作的搜索对象。max_trials参数表示要测试的模型的最大数量;在iris数据集上,由于数据集规模较小,这个参数可以设置较高一些。通常在达到max_trials之前搜索就会结束(它作为一个上限)。

iq2e6n6.png!mobile

对于回归问题,使用StructuredDataRegressor。

我们可以通过调用.fit()来启动搜索过程。verbose是一个参数,可以设置为0或1,这取决于你是否希望模型输出训练相关信息,比如潜在网络的架构和每个epoch的搜索情况。然而,每个潜在架构都有数百个epoch,所以开启这一项可能会占用空间并减慢训练速度。

yQjAb2q.png!mobile

建议设置verbose=1,来显示整个训练的过程。因为整个搜索过程至少会持续几分钟才能完成。如下面示例的输出:

beMjia.png!mobile

如果你愿意的话,可以观察搜索到架构随着时间的推移而不断变化,以及哪些元素会进入最终的神经网络。这一过程很有意思。

在我的本地环境中,在没有GPU加速的情况下,总共花了1小时左右才跑完15次试验。

一旦你的模型被拟合,我们就可以评估它的性能或进行预测。一般来说,这一过程速度较快,所以verbose可以设置为0。

eaIZBnZ.png!mobile

为了查看模型结构的更多细节并保存它,我们需要使用model = search.export_model()对其进行导出。这里的model是一个标准的TensorFlow/Keras模型,而不是AutoKeras对象。

调用model.summary()可以打印出搜索到的最佳架构。

Njee6zz.png!mobile

保存模型权重,使用model.save(‘filepath/weights.h5’).

图像分类/回归

图像分类和回归的工作原理很像标准结构化数据的分类和回归,但他们所使用的神经网络的建立使用了卷积神经网络的元素,比如卷积层、最大池化和扁平化。其中所有的参数都是可学习的。

例如,我们在MNIST数据集上实验,从28乘28的图像中找到一个卷积神经网络来识别数字。Keras数据集提供了一种方便的方法来检索这些数据,但需要将y变量转换为虚变量。

7Z3Qja.png!mobile

我们看一下这些数据的尺寸:

  • X_train: (60000, 28, 28)

  • X_test: (10000, 28, 28)

  • y_train: (60000, 10)

  • y_test: (10000, 10)

很强!AutoKeras还可以处理四维数据(多通道的彩色图像)。我们可以用ImageClassifier创建一个搜索对象(或者创建ImageRegressor用于回归任务)。

jqieYnQ.png!mobile

*如果您正在运行多个搜索,请在定义搜索对象时添加一个参数overwrite=True (ak.object(overwrite=True, max_trials=x))。否则会出现错误。

评估、预测和导出模型的过程与结构化分类器和回归器一样。需要注意的是,对图像数据进行神经架构搜索会花费更长的时间。

文本分类/回归

AutoKeras不需要任何文本矢量化操作,这很方便,因为当前有很多方法可以完成这一操作,而且每一种方法的实现都很漫长。在AutoKeras中这一操作这是由模型学习的。

我们使用20个新闻组数据集,它由属于20个不同类别的若干新闻摘录组成。为了节省时间和计算开销,我们只选择导入其中的四个类别,并且调大了测试集划分规模(整个数据集的一半)。

3Yz2iey.png!mobile

X_train和X_test分别是由1128个原始文本字符串组成的数组,y_train和y_test分别是形状(1128, 4)的数组。

请注意,AutoKeras可以处理可变长度的字符串!输入的每个字符串不需要长度相同。

接下来,让我们建立我们的文本分类器/回归器。

vArau2R.png!mobile

*如果您正在运行多个搜索,请在定义搜索对象时添加一个参数overwrite=True (ak.object(overwrite=True, max_trials=x))。否则会出现错误。

评估、预测和导出与结构化分类器和回归器一样进行。

值得一看的是提出的网络。NLP和深度学习之间的融合可以说是非常先进,像嵌入、空间还原等复杂的元素不需要明确调用就可以实现,这很神奇。

BfINniI.png!mobile

有了AutoKeras,深度学习更容易被所有人使用!

雷锋字幕组是一个由 AI 爱好者组成的翻译团队,汇聚五百多位志愿者的力量,分享最新的海外AI资讯,交流关于人工智能技术领域的行业变革与技术创新的见解。

团队成员有大数据专家、算法工程师、图像处理工程师、产品经理、产品运营、IT咨询人、在校师生;志愿者们来自IBM、AVL、Adobe、阿里、百度等知名企业,北大、清华、港大、中科院、南卡罗莱纳大学、早稻田大学等海内外高校研究所。

如果,你也是位热爱分享的AI爱好者。欢迎与雷锋字幕组一起,学习新知,分享成长。

Z36Bvqa.png!mobile

雷锋网雷锋网 (公众号:雷锋网)

雷锋网版权文章,未经授权禁止转载。详情见 转载须知

VJjyIf.jpg!mobile


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK