AI人工智能这几年作为科技界的热门话题被媒体宣传的如火如荼。在这种氛围之下,身为创客的我们怎能错过展现好点子落地的大好时机呢?接下来就为大家介绍如何取得及应用免费的AI实验场域资源「Google Colaboratory」。
Google免费GPU资源Colaboratory
大家都说要玩AI先得准备个很贵的高级显卡及服务器才能跑得动,对于想入门练练手的人实在有点花不下去,就像想学开车的人不会先买一台法拉利,而是先去教练场学到一定程度后,再考虑一下预算及需求后才会依用途去买合适的跑车、房车、货车、代步车甚至是二手车。
现在阮囊羞涩的各位有福了,Google旗下的实验计划Colaboratory (以下简写为Colab)提供了免费的NVIDIA K80等级GPU资源及虚拟机(Xeon 2.2GHz CPU*2)供大家使用,其中整合了Linux (Ubuntu)环境、Python、Jupyter notebook及TensorFlow等常用套件包,并允许大家安装执行时所需套件包(如Keras、 OpenCV、PyTorch、MxNet、XGBoost等),只要有Google云端硬盘账号就可免费使用。
Google Colaboratory
当然不可避免地,这项免费资源并非毫无使用限制的,所提供的虚拟服务器,目前只提供至少50G储存空间和12GB(可用于训练约2GB)的内存,使用时间仅可连续12小时(包含安装软件套件包、数据下载到虚拟机及训练时间)。超过时间便会清掉使用中内容,有时还会因使用者过多造成连不上线或用到一半断线,并不适合用在太大的模型及数据集训练。
话虽如此,整体来说还是很方便家中没有Linux + Python环境或计算机(笔电)CPU等级太低或没有独立显卡的人及想学习人工智能的新手练习使用。
何谓影像二元分类
在知名HBO影集「硅谷群瞎传」第四季的第四集当中有个有趣的桥段,华人杨靖发明一款可拍照后辨识食物类型的APP叫「See Food」,展示时第一次拍热狗成功辨识,众人欢呼开始想象满桌子的食物若都能辨识出来的话,这款APP肯定大卖。接着再拍了披萨后众人等着APP回答「披萨」,可是APP却回答「不是热狗(Not Hotdog)」,众人瞬间傻眼,「这只能辨识热狗吗?」杨靖回答:「是」,众人大失所望、一哄而散。
然而,故事还没完呢!竟有一家创投看上这个APP,要他改成侦测色情图片中男生的小丁丁,这就是标准的「失之东隅,收之桑榆」。
虽然上面桥段的「Not Hotdog」只是虚构剧情,但现实中还真的人有把它实现出来,有兴趣的人可到Apple APP Store下载Not Hotdog 。从上面故事中我们可得知影像分类的重要性,虽然影像二元分类(是或不是)的用途较窄些,但若能大量(数千到数百万张)标注影像的分类,经过训练后可令影像精准地分类,那就有可能产生一些独特的商机。
Not Hotdog APP屏幕撷图
用Colab实现影像二元分类
为了让大家能快速上手,在此整理了一段完整的代码并有详尽的原理解说及批注,只要依着下列步骤就可快速建构出一个二元分类的影像分类系统,当然也包括如何用自定义的数据集进行训练及推论。代码主要包括以下四个主要步骤,另外还有更进一步的细节说明,如下所示。
1. 取得及建构训练数据(TrainingDataset)
下载数据集
数据集解压缩
检视数据集
自定义数据集及挂载
2. 建构一小型深度学习模型(TrainingModel)
卷积网络模型
输入图像尺寸正规化
模型架构及训练参数说明
模型配置及训练优化设定
数据预处理
3. 训练及验证模型准确度(ValidationAccuracy)
训练及验证模型
评估模型的准确性和损失
4. 应用深度学习训练成果进行推论(Inference)
推论
可视化表示
了解了相范例的学习目标后,可以至https://goo.gl/SqigfE下载image_classification.ipynb 到您的Google云端硬盘,双击后选择以「Colaboratory」开启,就可以开始享受Colab提供的免费GPU运算信息。执行时,请按【Shift+Enter】进行单步执行并自动跳至下一行;若想一次全部运行本范例所有代码,可按【Ctrl+F9】。接下来就简单为大家介绍主要步骤的工作内容。