深度学习实用指南:从数据到部署
第 4 章
使用迁移学习
您可以使用迁移学习基于现有架构进行构建,而不必完全从头开始设计和训练架构。本章介绍如何修改现有架构,并重新训练它来完成您的特定任务。
![深度学习-工程师-电子书-第 4 章-模型-训练-雏菊](https://ww2.mathworks.cn/campaigns/offers/next/practical-guide-to-deep-learning/transfer-learning/_jcr_content/mainParsys/band_2102914970/mainParsys/lockedsubnav/mainParsys/image_copy_copy_copy.adapt.full.medium.jpg/1700469168043.jpg)
假如有一个用来识别图像中花朵之类图案的现成网络,而您要开发的是一个能在传感器数据中找出模式的网络,乍看之下,前者似乎没什么帮助。但有意思的是,借助信号的时频表示,如频谱图或尺度图,我们可以对信号进行预处理以获得图像。斑点、颜色、环和线条等基元特征几乎存在于所有图像,包括信号的时频图像。
![深度学习-工程师-电子书-第 4 章-图像中的模式](https://ww2.mathworks.cn/campaigns/offers/next/practical-guide-to-deep-learning/transfer-learning/_jcr_content/mainParsys/band_2102914970/mainParsys/lockedsubnav/mainParsys/image_copy_copy_copy_1434920980.adapt.full.medium.jpg/1700469168055.jpg)
借助迁移学习,您可以利用预训练网络识别这些基元特征的能力,只需替换用于组合特征和完成最终分类的最后几个层即可。
![深度学习-工程师-电子书-第 4 章-模型-训练-替换](https://ww2.mathworks.cn/campaigns/offers/next/practical-guide-to-deep-learning/transfer-learning/_jcr_content/mainParsys/band_2102914970/mainParsys/lockedsubnav/mainParsys/image_copy_copy_copy_2085447476.adapt.full.medium.jpg/1700469168067.jpg)
一般情况下,训练这样一个网络会比从零开始要快得多,所需的数据也少得多,因为它只需要学习如何组合特征来识别您要寻找的较大的模式。
![深度学习-工程师-电子书-第 4 章-Arduino-装置](https://ww2.mathworks.cn/campaigns/offers/next/practical-guide-to-deep-learning/transfer-learning/_jcr_content/mainParsys/band_2102914970/mainParsys/lockedsubnav/mainParsys/image_copy_copy_copy_710563297.adapt.full.medium.jpg/1700469168098.jpg)
MATLAB Support Package for Arduino Hardware 用于通过 Arduino 从 MPU-9250 中读取加速度数据。只需三行代码即可连接到 Arduino,实例化 MPU9250 对象,然后读取加速度计。
![深度学习-工程师-电子书-第 4 章-加速度计-代码片段](https://ww2.mathworks.cn/campaigns/offers/next/practical-guide-to-deep-learning/transfer-learning/_jcr_content/mainParsys/band_2102914970/mainParsys/lockedsubnav/mainParsys/columns_1495810583/1763298a-b77e-4530-a02a-d35da0f3109c/image_copy_copy_copy.adapt.full.medium.jpg/1700469168154.jpg)
以 50 Hz 的频率读取加速度计并显示读数
该三轴加速度数据转换成一个彩色图像,其中图像的红、绿、蓝三个通道分别表示 x、y 和 z 加速度轴的尺度图。
要训练网络识别击掌模式,您需要为网络提供经过标注的训练数据。在本例中,训练数据是多个击掌图像以及多个其他手臂动作的图像。
此示例收集了 200 个经过标注的训练图像。这些数据是通过测量一个人手臂的真实动作来收集的。然后,从这些训练数据中剔除可能破坏训练的离群值和其他动作,并删除对应的图像。
我们使用深度网络设计器替换最后几个层。要替换的只有 GoogLeNet 网络末尾的两个层。这两个层分别是全连接层(用于将基元特征组合为特定模式)和输出层(用于分配标签)。
![深度学习-工程师-电子书-第 4 章-深度网络设计器](https://ww2.mathworks.cn/campaigns/offers/next/practical-guide-to-deep-learning/transfer-learning/_jcr_content/mainParsys/band_2102914970/mainParsys/lockedsubnav/mainParsys/image_copy_copy_copy_557984664.adapt.full.medium.jpg/1700469168188.jpg)
导入训练数据,并留出其中 20% 的图像用于验证。有了经过训练的网络,下一步是基于更大的数据集测试该网络。在本例中,我们对真实手臂动作试用击掌分类器来进行测试。
这里有一篇关于构建击掌计数器的博客文章,对示例进行了更深入的讲解。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
亚太
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)