在本文中,我们将介绍超参数优化,然后使用TensorBoard显示超参数优化的结果。
深度神经网络的超参数是什么?
深度学习神经网络的目标是找到节点的权重,这将帮助我们理解图像、文本或语音中的数据模式。
要做到这一点,可以使用为模型提供最佳准度和精度的值来设计神经网络参数。
那么,这些被称为超参数的参数是什么呢?
用于训练神经网络模型的不同参数称为超参数。这些超参数像旋钮一样被调优,以提高神经网络的性能,从而产生一个优化的模型。超参数的一个通俗的解释是:用来优化参数的参数。
神经网络中的一些超参数是:
1.隐藏层的数量
2.隐含层中单位或节点的集合的数量
3.学习速率
4.DropOut比例
5.迭代次数
6.优化器的选择如SGD, Adam, AdaGrad, Rmsprop等
7.激活函数选择如ReLU, sigmoid, leaky ReLU等
8.批次大小
如何实现超参数优化?
超参数优化是寻找深度学习算法的优化器、学习率、等超参数值,从而获得最佳模型性能的过程。
可以使用以下技术执行超参数优化。
手动搜索
网格搜索:对指定超参数的所有可能组合进行穷举搜索,从而得到笛卡尔积。
随机搜索:超参数是随机选择的,不是每一个超参数的组合都被尝试。随着超参数数量的增加,随机搜索是一个更好的选择,因为它可以更快地得到超参数的良好组合。
贝叶斯优化:整合关于超参数的先验数据,包括模型的准确性或损失。先验信息有助于确定模型超参数选择的更好近似。
为了在TensorBoard中可视化模型的超参数并进行调优,我们将使用网格搜索技术,其中我们将使用一些超参数,如不同的节点数量,不同的优化器,或学习率等看看模型的准确性和损失。
为什么使用TensorBoard进行超参数优化?
一幅图片胜过千言万语,这也适用于复杂的深度学习模型。深度学习模型被认为是一个黑盒子,你发送一些输入数据,模型做一些复杂的计算,输出结果。
TensorBoard是Tensorflow的一个可视化工具包,用于显示不同的指标、参数和其他可视化,帮助调试、跟踪、微调、优化和共享深度学习实验结果
TensorBoard可以跟踪模型在每个训练迭代的精度和损失;
还有不同的超参数值。不同超参数值的跟踪精度将帮助您更快地微调模型。
我们将使用猫和狗数据集使用TensorBoard可视化标量、图形和分布。
导入所需的库
导入TensorFlow和TensorBoard HParams插件以及Keras库来预处理图像和创建模型。
import tensorflow as tf
from tensorboard.plugins.hparams import api as hp
import datetime
from tensorflow.keras.models import Sequential