2018 年 3 月
第 33 卷,第 3 期
此文章由机器翻译
人工智能 - 使用 Jupyter Notebook 探索深度学习工具包
通过Frank La La |年 3 月 2018
在我最后一列中,我介绍了 Jupyter 笔记本,一种开放源,基于浏览器的软件解决方案,允许用户创建和共享包含实时代码、 可视化效果和文本的文档。时用于创建应用程序不理想,Jupyter 笔记本是浏览,试用数据的好办法。将它们作为一种类型的数据科学交互式"便笺本"。Jupyter 笔记本提供数据科学家来共享代码、 insights 和文档的常用格式。许多常用的机器学习库,如 CNTK 和 TensorFlow,提供 Jupyter 笔记本作为文档以便了解如何使用它们。幸运的是,没有获取对许多示例笔记本所有最受欢迎的库的访问权限的简单办法-在一个位置和无需安装软件。
数据科学虚拟机
数据科学和机器学习需要新工具,其中的许多可能不熟悉的.NET 开发人员。幸运的是,Microsoft Azure 提供的虚拟机 (VM) 映像-调用数据科学虚拟机 (DSVM)-使用多种工具和实用程序可用于数据科学和机器学习工作预加载的。DSVM 图像可以轻松地开始使用深入学习技术,并包括 Microsoft 认知工具包 (CNTK),TensorFlow,Keras、 PyTorch 和详细信息,已生成、 安装和配置。每个工具包是那么就可以开始使用。
最重要的一点,并与本文最相关,也会包括大量示例 Jupyter 笔记本。简单地说,DSVM 可以轻松地以启动而无需在本地计算机上安装任何内容。在 Windows、 Ubuntu 和 CentOS 提供了 DSVM 映像。在本文中,我将重点的 Ubuntu 版本,因为我发现其成为最彻底。你可以找到在 DSVM 映像上安装的工具的完整列表bit.ly/2Dc5uA4。
创建 DSVM 很容易。若要开始,登录到 Azure 门户并单击新建,然后键入"数据科学虚拟机"中的搜索文本框和命中 enter。你应该会看到搜索结果类似于图 1。单击 Linux (Ubuntu) 的项数据科学虚拟机。
图 1 应用商店搜索数据科学虚拟机映像
若要创建 DSVM 的实例,请按照创建虚拟机边栏选项卡的说明进行操作。提供虚拟机,用户名的名称和身份验证类型选择"密码"。为 DSVM 创建新的资源组,或使用现有。请记住除了用户名和密码的资源组名称。将其他选项保留为其默认值。
单击确定以将移到下一步: 选择用于 VM 的大小。现在,大小不重要,因此只需转适合你的预算的大小。如果看不到的价格实惠,请单击"全部查看"若要查看所有 VM 配置。单击选择以选择的大小和配置。在第三个步骤中,保留为默认值的所有内容,然后单击确定。最后一步是摘要屏幕。值得注意的,某些 Azure 计划不包括 DSVM 并且你的帐户将单独收取费用。如果是这种情况,摘要屏幕将通知你。单击创建来实例化 VM 以继续。
连接到 DSVM GUI
若要充分利用 DSVM 的最佳方式是以图形方式连接到它。虽然在门户上的 VM 实例的边栏选项卡提供有关如何通过 SSH 服务连接的信息,但它不提供通过图形 shell 连接到它的任何指导。幸运的是,没有如何执行此操作使用远程桌面的 Windows 上的大量文档 (bit.ly/2Davn3j)。DSVM Ubuntu 映像具有已安装,xcfe4 桌面环境和设置 VM 时创建的本地用户帐户。所有剩下所要做现在是配置远程桌面服务来侦听传入远程桌面协议 (RDP) 连接。若要执行此操作,你将需要启用 xrdp,适用于 xfce 的开源 RDP 服务器。
若要在 Ubuntu DSVM 上安装 xrdp,你必须连接到它通过 SSH 服务,它在 Windows 上通常需要像 PuTTY 这样的终端程序 (putty.org)。如果您的电脑正在运行 Windows 10 生成 1709年或更高版本,你可以选择改为在通过应用商店的 Windows 上安装 Ubuntu (bit.ly/2Dm8fSR)。若要获取的连接信息,请查看 DSVM 实例的边栏选项卡上的连接按钮。单击它以打开所示的对话框图 2以获取连接信息。
图 2 获取 DSVM 的 SSH 连接信息
在终端窗口中,输入连接信息,并且出现提示时,输入"是"以信任该连接,跟用户名的密码。若要安装并启用 xrdp 服务以使用 xfce4,输入以下三个行:
sudo apt-get install xrdp
echo xfce4-session >~/.xsession
sudo service xrdp restart
如果系统提示,请使用"Y"以启用额外的磁盘空间使用情况的响应。上 DSVM 安装 xfce 后,你需要允许到 VM 的 RDP 流量通过网络安全组中创建规则。这可以通过 Azure 门户 (bit.ly/2mDQ1lt),或通过发出以下语句通过 Azure CLI 命令行:
az vm open-port --resource-group ResourceGroup --name DSVM-Name --port 3389
请确保"资源组"和"DSVM-Name"替换为资源组和 VM 名称从前面的名称。该过程完成后,打开远程桌面连接应用程序、 输入 DSVM 实例的 IP 地址并单击连接。如果系统提示,请选择信任该计算机,并输入与 DSVM 一起创建的帐户的凭据。
Ubuntu CLI 上的所有此配置活动可能看起来多余有关人工智能,但请记住,此空间中的许多工具假定基本熟悉 Linux 和 Bash 命令行 shell 的列。你更快地认为熟悉 Bash 和 Linux,更快,你将准备工作效率。
如果你想要避免前面的步骤来安装和配置 xrdp,X2Go (wiki.x2go.org) 是 Mac 和 Windows 用户的替代方法。X2Go 直接与通过 xfce 协议 DSVM 通信,因此无需在 VM 上安装任何内容或更改网络安全组。只需在本地桌面上安装 X2Go 并为 DSVM 连接的 IP 地址和用户名。
连接到 DSVM 后,单击在 GUI 窗口左上角的应用程序菜单上。单击开发并 JupyterHub 上单击生成子菜单上单击。JupyterHub 是用于管理多个单用户 Jupyter 笔记本 server 实例的多用户集线器。它可以用于提供给一组用户,例如在类中,研究组或一组数据科学家学生的笔记本。
现在会打开一个终端窗口并系统的默认浏览器 (FireFox) 打开到 http://localhost:8888/树。单击 CNTK 文件夹可访问 Microsoft 认知工具包示例。接下来,单击 CNTK_101_LogisticRegression.ipynb 文件,以访问逻辑回归和 ML 入门 notebook,其中包含对于那些教程到机器学习和 CNTK 新。此教程笔记本专为 Python。如果你收到错误,"不能 execvp Jupyter:没有此文件或目录,"你将需要使用 X2Go 继续。
分类肿瘤
CNTK_101_LogisticRegression 笔记本中心围绕分类为恶意或良性肿瘤增长所带来的问题。这是分类问题,具体而言是一个二进制分类,因为有只有两个输出分类。若要分类的一种在每位患者的增长,医院已提供患者的年龄和他或她肿瘤的大小。工作假设是,年轻患者和使用较小肿瘤患者不太可能有恶意的增长。图 3演示如何在数据集中的每位患者表示为到笔记本绘图区中的一个点。红点指示恶意增长和蓝点指示良性。目标是创建二元分类器,以便分开恶意良性的类似于在散点图 [3] 中粘贴到笔记本的单元格和中重复图 3。
使用二元分类器由绿线图 3 散点图
粘贴到笔记本包括警告指出此处使用的数据集,出于教育目的只是一个示例。一个生产分类系统,用于确定增长的状态会涉及多个数据点、 功能、 测试结果和从医疗人员最终诊断的输入。
机器学习的五个阶段项目
机器学习项目通常分为五个阶段:读取数据、 调整数据、 创建模型,学习模型的参数和评估模型的性能。读取数据时,需要为结构中加载数据集。对于 Python,这通常意味着 Pandas 数据帧 (bit.ly/2EPC8rI)。数据框架是实质上是行和列组成的表格数据结构。
第二步调整为机器学习算法接受的格式中的输入格式的数据。通常情况下,此过程称为"数据清理"或"数据变形。" 此阶段中非常频繁使用大量的时间和机器学习项目中的工作量。
不直到实际的机器学习工作开始的第三个阶段中。在此笔记本,我将创建一个模型,用于分隔开来恶意良性的增长。逻辑回归是一种简单的线性模型,采用输入的值 (由蓝色圆圈表示图 4) 的我正在分类并计算输出。每个输入的值上图中所示的输出都有不同程度的权重图 4一样线条宽度。
图 4 的逻辑回归算法的关系图
下一步是最大程度减少错误或丢失,使用的优化方法。此笔记本使用随机梯度下降 (SGD),通常首先随机初始化模型参数的常用技术。在这种情况下,模型参数是权重和偏移。对于在数据集中的每一行,SGD 优化器可以计算预测的值和相应的真实值之间的错误。随后,算法将应用梯度下降,可以在每个观察值后创建新模型参数。SGD 解释和 YouTube 视频中粘贴到笔记本内有更详细的 Siraj Raval (bit.ly/2B8lHEz)。
最后一步是评估对测试数据的预测模型的性能。有此二元分类器的实质上是四种结果:
- 正确标记形式恶意的值。
- 正确标记为良性的值。
- 被错误地标记为恶意的值。
- 被错误地标记为良性的值。
在此方案中,结果不能。 3 将假负。肿瘤是良性的但该算法标记不正确地为恶意它。这也称为是类型 II 错误。结果否。 4 表示反向、 假正。肿瘤是恶意的但该算法将其标记为良性的 I 型错误。I 型和 II 错误有关的详细信息,请参考错误结果的统计测试上的 Wikipedia 文章bit.ly/2DccUU8。
使用在绘图图 5,你可以确定该算法时不 mislabeling 作为恶意任何良性肿瘤标记为良性的三个恶意肿瘤。
图 5 三不正确标记肿瘤
总结
快速开始浏览数据科学、 机器学习和人工智能不同的框架的最佳方式是通过在 Azure 上的 DSVM 映像。它不需要安装或配置,并可以向上扩展或向下基于要解决问题。它是人士兴趣机器学习来启动立即试验的好方法。最重要的是,DSVM 包括在最受欢迎的机器学习框架上的大量 Jupyter 笔记本教程。
在本文中,我设置 DSVM 以及到浏览 CNTK 的第一个步骤。通过创建逻辑回归和随机梯度下降二元分类器,我训练要确定肿瘤为良性或恶意的算法。在此模型依赖于只有两个维度,并且可能不是为生产做好准备,未更了解如何在现实生活中将处理此问题。
Frank La Vigne 负责领导 Wintellect 的数据与分析实践,共同主持 DataDriven 播客。他博客定期在 FranksWorld.com 并且你可以在他的 YouTube 频道,"Frank 的 World 电视"上观看他 (FranksWorld.TV)。
衷心感谢以下技术专家对本文的审阅:Andy Leonard