使用深度学习实现自动光学检查
第 3 章
构建并训练深度学习网络
回到关于六角螺母检查的例子,我们要训练一个卷积神经网络 (CNN)。
CNN 是一种“深度”神经网络,可直接用于处理结构化数据,比如图像。该网络由一个输入层、多个隐藏层和一个输出层组成。各层通过节点(即神经元)相互连接。
下面是一种简单的 CNN 架构。
通过控制电压提高转速
在数据通过网络的过程中,部分层(卷积层、reLu 层以及池化层)会从图像中学习特征,而 softmax 层则会提供分类。
两种训练网络的方式
您可从头开始训练深度学习网络,或对预训练的网络进行微调。
从头开始训练
这种方法能够给出最准确的结果,同时也最具挑战性。它适合新的应用或输出类别数量较多的应用。不过,从头训练需要大量的数据与深度学习专业知识,因此大部分人会选择尝试第二种方法。
微调预训练的网络
这一方法会使用迁移学习。其主要思路是利用已有网络(如 AlexNet 或 GoogLeNet),向其馈入包含此前未知的类的新数据。在完成网络的调整后,您就可以执行新任务了。
与从头训练相比,迁移学习的速度更快,难度也更低。它的另一个优势是数据需求量小得多:只需数千张图像,而不是上百万张。
试验管理器
试验管理器可用于创建深度学习试验,在各种初始条件下训练网络并对结果进行比较。例如,深度学习试验可用于:
- 扫描一系列超参数值
- 使用不同数据集训练同一个网络,并比较结果
- 重用同一组数据集训练多个网络,以测试多种架构
试验管理器提供了训练图和混淆矩阵等可视化工具,以及用于细化试验结果的筛选器。