高焕堂 (台湾VR工业联盟主席,厦门VR/AR协会荣誉会长兼参谋)
0 导言
搬迁学习(Transfer Learning)就像俗称的“拿来主义”,善用他人现已练习好模型的参数(才智),引进到 自己的模型里,能够敏捷树立1个AI的运用情境。本文 以ResNet50为例,阐明怎么复用(Reuse)现已练习好的 ResNet50的才智(模型和参数),帮您瞬间探究任何一张 图画的特征(Feature),然后帮您辨认出图片里的人或物 的品种,如水牛、斑马、猫头鹰或轿车等。
1 知道搬迁学习:以ResNet50为例
AI的才智是来自机器的自我学习,通称为机器 学习。它常常需求凭借很多的数据来练习。例如, ResNet50就运用100多万张图画而练习出来的。在练习 的过程中,它去探究每张图画中的特称,并且学习概括 和分类。现在的ResNet50能够精确地辨认出1000种人 或物,如日常日子中常遇到的狗、猫、食物、轿车和各 种家居物品等。例如,您能够随意从百度图片上截取一 张224×224巨细的图片,如图1。
当您把这图片提交给ResNet50,它会瞬间探 索并进行分类,然后告诉您:我猜测这是大熊猫(Giant panda)。
2 介绍ResNet50模型的结构
现在最常见的AI图画辨认模型是:卷积网路(CNN) 模型。这ResNet50便是根据CNN的模型,如图2。
其间,CNN模型包含两部分:卷积层(Convolution Layers)与全衔接层(Full-Connected Layers)。前者我特 别称之为丫鬟部分;而后者则称之为格格部分[1-2],如图3。
Conv部分比较复杂,共约有40个层;而FC部分约 有10个层。所以称之为ResNet50模型。
3 复用ResNet50才智的办法
典型的复用(Reuse)过程如下。
1)编撰Python程式来树立一个ResNet50模型。 您能够从网路下载此Python程式的源码来做修正。网址为:
https://github.com/fchollet/deep-learning-models/ releases/
如图4的绿色框部分:
2)从网络下载现已练习好的模型参数(才智)。 例如,图4里的赤色框部分。包含2个档案(下文具体 阐明)。
3)把所下载的模型参数档案内容载入您方才树立 的ResNet50模型里。
经由这3个过程,就把他人现已练习(学习)好的模型 参数,顺畅地搬迁(Transfer)到您自己树立的模型里了。
4 新潮办法:运用Excel把ResNet50模型包装起来
4.1 预备履行环境(不需求编程)
运用Excel来包装Python程式,能够让许多不熟悉编 程者,来轻易地运用AI的各种运用情境。只需您的电 脑上装置有Excel和Python的相关套件(如TensorFlow、 Keras等)就能够履行根据Excel+Python的AI模板 (Template)了。至于这项履行环境的装置攻略,能够参 阅笔者的博客:https://www.cnblogs.com/SmartADT/。
装置好了履行环境,就能够从上述网页里下载两个 模板:jjt18.zip,根据阐明文件复制到您的环境里,然 后就能够履行了。 4.2 开端履行jjt18模板
首要,把这张图画放在图5里。
预备把c:/oopc/im001pd.pg图画提交给ResNet50去探 索和分类。接着,请您敞开Python程式:jjt18.py。画面 上就呈现了预先写好的Python程式:
然后履行这个程式,就呈现出Excel画面:
请按下“Predict”按钮,这Excel背面的ResNet50就 打开瞬间探究这张像并进行分类,然后输出如下:
它告诉您了:我猜测99%的可能性是大熊猫(Giant panda)。
5 仅复用丫鬟,练习自己的格格
5.1 阐明 因为ResNet50是典型的CNN模型,包含卷积层与 FC层。在上一节里,运用Excel画面来操作ResNet50, 并复用了悉数(卷积层与FC层)的权重,就不用从头训 练,而直接用来区别图画里的东西。在本节里,就来介 绍另一种用法:只复用它的卷积层(丫鬟)部分,而不复 用FC层(格格)部分的权重。也便是,要自己来练习FC层 (格格)部分。
在CNN 模型(如ResNet50)里,丫鬟部分担任探究像 的特征,然后把这些特征值交给格格,让格格(根据特 征值)来分辩出品种。例如,丫鬟看到一张图片里的动 物特征是:身体是非条纹、4只脚,然后格格就根据这 特征而判别这很可能是一匹斑马。
尽管ResNet50里的格格现已有才智来进行图画分类 (Classification)了,并且能够辨识1000种日常日子中的 人或物。可是,在一些较狭隘的运用场域里,只需求 (更精确)辨识较少的品种时,就需求练习自己的格格。
方才提到了,有些场合需求从头练习格格来分类, 可是丫鬟具有的探究像特征的才智,却能够复用之。亦即,能凭借于ResNet50的丫鬟(即卷积部分)的才智,帮 忙探究我的图片,来帮忙练习新的格格。一旦新格格训 练好了之后,ResNet50原有的丫鬟就能和新格格协同合 作,来更精确地区别特定的数据(图片)集了。因为不用 从头练习丫鬟部分,就能节省许多练习(丫鬟的)时刻。
5.2 预备数据,来练习新格格
兹拿一个较狭小的运用场域,只需求格格来分辩 3个品种:斑马、猫头鹰和蘑菇。所以,笔者在/oopc/ v_data/train/文件夹里,预备了150张图片(皆为224 x 224),包含50张斑马、50张猫头鹰、以及50张蘑菇的图 片。将它们别离放在这3个小文件夹里:
例如,其间的/Zebra/小文件夹里有50张图片,如图 6里。
亦即,在/v_data/train/里共有150张图片,分为3 品种(Classes)。接下来,就拿3类的图画来练习自己的 格格。所以,持续运用jjt18模板,履行jjt18.py呈现出 <作业表2”的画面,并按下<Train”按钮,就打开训 练了:
大约经过5分钟,就可练习结束了。接着点选“工 作表3”,并按下“Show”按钮,就显示出一张图片, 如下图。
接着,按下“Predict”,就把这张图片提交给 ResNet50去辨认。此刻,就先由(ResNet50原有的)丫鬟 先去探究这张图片的特征,然后把特征值转交给新格格 去分类。最后由格格输出成果如图7。
6 结语
本文是以ResNet50为例,阐明怎么凭借ResNet50已 经练习好的才智去辨认五花八门的图画。此外,还能够 复用ResNet50里的丫鬟才智,调配自己的图片集,来训 练自己的新格格,更新了ResNet50的才智。
跟着AI的运用领域愈来愈多,除了ResNet50之外, 您还能够经过本文所介绍的“搬迁学习”途径来同享更 多的AI模型和才智。
参考文献:
[1] 高焕堂.学AI之路,从探究特征动身[J].电子产品世界, 2019(11):81-84.
[2] 高焕堂.迈向AI与IC工业结合之路——从AI神鹰规划形式谈起 [J].电子产品世界,2019(12):78-80.
本文来源于科技期刊《电子产品世界》2020年第03期第85页,欢迎您写论文时引证,并注明出处。