机器学习模型可视化类型和工具

532 阅读9分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情

image.png

什么是模型可视化?

模型可视化提供了模型背后的原因和逻辑,以实现模型的问责和透明度。由于复杂的内部工作原理,机器学习模型被视为黑盒模型。数据科学家提供了一个高精度的模型。在某些情况下,模型无法向公众解释,因为系统可能会被非法侵入。

数据可视化技术使用图表和图形来可视化大量复杂数据。单击以探索高级的数据可视化技术及其功能

不同类型的模型可视化描述如下:

  • 数据探索 - 数据探索是使用探索性数据分析 (EDA) 完成的。应用 T 分布随机邻域嵌入 (t-SNE) 或主成分分析 (PCA) 技术来理解特征。
  • 构建模型 - 用于衡量分类和回归模型的各种指标。分类中使用的准确率、精确率和召回率、混淆矩阵、对数损失和 F1 值,而回归中使用的均方误差 (MSE)、均方对数误差、均方根误差 (RMSE)。建立模型后的所有这些指标都用于理解和衡量性能。
  • 决策树模型 - 静态特征摘要,例如:从模型中检索到的特征重要性。它仅存在于基于决策树的算法中,例如:随机森林和 XGBoost。
  • 评估模型 - 评估模型的错误预测。

训练期间的模型可视化

在模型的训练过程中,需要将训练过程可视化,有助于理解调试模型,跟踪模型的错误和进度。可视化每个步骤的测试和训练结果值。

  • 标量(Scalars) - 标量可用于显示训练期间的误差趋势。除了定期将损失和准确率记录到标准输出之外,我们还会记录并绘制它们以分析其长期趋势。
  • 直方图(Histograms) - 可视化模型图中张量的分布如何随时间变化。显示张量在不同时间点的许多直方图可视化。
  • 权重和偏差(Weight and bias) - 通过在直方图上可视化权重和偏差来监控训练期间的权重和偏差。
  • 激活(Activation) - 为了使梯度下降发挥最佳效果,节点输出通常在激活函数之前分发。
  • 梯度(Gradients) - 可以对每一层的梯度进行可视化,以识别深度学习问题,如梯度减少或爆炸问题。
  • 图表(Graphs) - 通过图表来可视化模型的内部结构或架构。
  • 图像(Image) - 训练每一步的图像意味着生成的中间图像可以可视化并可视化张量。
  • 投影(Projector) - 用于将高维向量进行可视化,可视化主成分分析(PCA)和 T-SNE 算法模型结果。该技术主要用于降维。将高维向量投影到三维坐标系。

数据可视化是数据和信息的图形表示。点击探索十大数据可视化工具

为什么模型可视化很重要?

仅仅是准确率不会给出模型的准确解释。我们需要测试模型的准确性并相信分类器或模型工作正常。

  • 对模型在做什么的正确解释?
  • 为什么结果是这样的?
  • 以向非技术人员描述的形式或视觉形式输出。

开发机器学习模型的示例:

开发用于医疗诊断目的的机器学习模型,仅测试样本的高精度或更少的错误可能不足以将它们出售给临床医生。医生和患者都不太愿意相信他们不理解的模型做出的决定。

我们需要在大多数情况下进行解释,因为:

  • 可信度——如果使用分类或预测结果,需要一些领域知识,如股票交易员才能理解,以提供购买或出售特定股票的决策。
  • 透明度——机器学习不能是一个黑盒子,应该为客户、消费者和管理层提供模型结构、清晰度。就像开源一样,模型理解应该是开源的。
  • 负责任 - 模型应该有责任向消费者提供正确的答案。作为模型所有者,我们应该验证模型特征以保证其有助于做出决策。

模型可视化如何工作?

分类/回归机器学习模型的结果或决策很难被人脑理解。这也使得向非数据科学家解释变得困难。复杂模型功能可以通过将线性模型局部拟合到训练集的某些排列来近似。

LIME

LIME 是一种算法,用于解释分类器或回归模型的预测。它给出了带有视觉解释的特征列表,需要视觉形式的特征重要性来确定数据集中的基本元素。 LIME 提供模型的可视化描述并解释实际模型正在实现的内容。

模型预测示例:

模型预测特定患者患有流感。然后由解释器解释预测,该解释器突出显示对模型很重要的症状。借助有关模型背后原理的这些信息,医生现在有权信任或不信任该模型。

Grad-CAM

梯度加权类激活图是一种先进且专业的方法。这种方法的一些限制是我们需要访问模型的内部,并且它应该与图像一起使用。为了简单地理解该方法,给定一个数据样本(图像),它将以神经网络具有最多和最大激活的图像区域的热力图的形式给出输出,因此,图像中的特征在模型中与类相关。

SHAP

SHAP 为不同类型的模型提供了许多解释器。

  • Tree Explainer - 通过 Tree SHAP 支持 XGBoost、LightGBM、CatBoost 和 scikit-learn模型。
  • Deep Explainer(DEEP SHAP) - 通过使用 Deeplift 和 Shapley 值支持 Tensorflow 和 Keras 模型。
  • Gradient Explainer - 支持 Tensorflow 和 Keras 模型。
  • Kernel Explainer (kernel SHAP) - 使用 LIME 和 Shapley 值应用于任何模型。

分析数据对象及其与其他对象的关系的过程,点击探索数据建模工具和技术

决策树可视化

决策树模型可以在决策树的帮助下轻松可视化或解释。它允许浏览每个单独的树以查看它们对整个模型的相对重要性。回答每个特征对特定树的重要性的问题。

以下是独特的可视化特征:

  • 决策节点显示特征空间如何分割。
  • 决策节点的分割位置在分布中直观地显示。
  • 在模型中,它可视化了训练数据或样本如何分布在叶节点中,以及树如何对特定观察进行预测。

模型结构可视化

  • 通过深度可视化了解神经网络。
  • 显示每一层、激活、权重。

神经网络行为的可视化

人工神经网络的可视化采用静态节点链接图的形式,它可视化网络的结构,而不是模型的动作。

神经网络的可视化已训练数字识别模型,显示给定用户提供输入的网络的实际行为。用户通过绘图板与网络进行交互,并实时观察网络的激活模式。

如何选用模型可视化?

模型可视化可以选用:

训练期间的可视化

在此期间可视化模型将提供调整超参数的简单指示,以提供更高的准确率和更低的错误率。例如,训练可视化期间的 GAN(生成对抗网络)将显示一个 GAN 模型,该模型学习点在二维中的分布。二维空间中的分布比高分辨率图像空间中的分布更易于可视化。首先选择 GAN 学习的概率或数据分布,将其可视化为一组数据样本。选择数据分布,在分层分布中的两个地方显示较小版本的模型概览图和较大的版本。模型概览图将显示 GAN 的架构。分层分布视图将显示模型概览图中组件的可视化,可以比较组件输出。

可视化期间的调试

模型可视化将提供在训练和推理期间运行 TensorFlow 图的内部结构和状态的视图,很难使用通用调试器进行调试。

3-D 维度数据,提供深度、宽度和高度的感知。点击探索多维数据可视化

模型可视化有什么好处?

  • 有必要了解所有这些算法是如何做出决策的。
  • 识别模型的基本特征可以让我们深入了解其内部运作,并为消除偏见和提高其性能提供方向。
  • 它还有助于调试模型。
  • 大多数情况下,为预测提供解释的原因是可解释的 ML 模型对于获得最终用户的信任是必要的。

模型可视化工具

神经网络可视化

  • CNNVis - 提供对深度卷积神经网络的更好分析。
  • Neural Networks Playground - 神经网络的交互式浏览器内可视化。TensorFlow playgrounds涉及神经网络的交互式可视化。
  • Netron - Netron 为深度学习和机器学习模型提供可视化。
  • ANN visualizer - 一个很棒的可视化 python 库,用于与 Keras 一起工作。它使用 python 的 graphviz 库来创建您正在构建的神经网络的可展示图。

数据探索工具

解释预测的工具

  • SHAP
  • LIME

训练期间的可视化工具

  • Visual DL - VisualDL 是一个深度学习可视化工具,可以帮助可视化深度学习作业,包括标量、参数分布、模型结构和图像可视化等特征。
  • TensorBoard - 它允许可视化模型结构,绘制有关模型执行的定量指标,并显示通过它的图像、音频、文本等附加信息数据。

评估可视化工具

  • Yellowbrick - Yellowbrick 由称为可视化工具的可视化诊断工具组成,这些工具扩展了 Scikit-learn API 以允许人工控制模型选择过程。

其中包括的可视化工具有:特征可视化、分类可视化、聚类可视化、回归可视化和模型选择可视化。

模型可视化总结

模型可视化的整体方法是构建透明且准确的深度学习可视化模型。它提供准确的数据以对其执行进一步的操作。它有助于执行和了解有助于识别样式、不可靠数据、异常值等的数据集。

原文链接:Machine Learning Model Visualization Types and Tools