LIME技术个人总结和理解

2024-04-29 20:58
文章标签 技术 总结 理解 个人 lime

本文主要是介绍LIME技术个人总结和理解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

方法:

干涉输入,然后观察预测结果会怎样变化。

实验表明这种做法在可解释性上是有用的。

因为我们可以通过改变人类可以理解的组件(比如单词或图像的一部分)来改变输入,即使模型使用的是更加复杂的组件(比如词向量)作为输入的特征。

LIME 背后的关键直觉就是,通过一个简单的模型来局部地(在我们想要解释的预测的附近)逼近一个黑箱模型会比全局性地去逼近这个模型要容易得多。

怎么实现?(通过给改变后的输入图像设定权重的方式来实现, 权重的值是改变后的图形和我们想要解释的实例的相似度的值。)

图 3 所示的例子说明了LIME在图像分类上是如何工作的。假设我们想解释一个可以预测图片中是否包含树蛙的分类器,我们可以借助右边被分解成可解读的组件(连续超像素)的图像。

640?wx_fmt=jpeg

 

超像素---番外篇解释:

超像素:有一系列 位置相邻的 比如颜色, 纹理,亮度等特征相近的 连续小区域。

如图 4 所示,我们通过“隐藏”一些可解读组件生成一个修改过的实例的数据集(在这个例子中是将隐藏的组件都设置成灰色)。对于每一个被修改过的实例,模型都会以一定概率判断图像实例是否包含树蛙。然后我们就在这个局部加权的数据集上得到了一个简单的(线性)回归模型,而我们更关心在更接近原始图像的修改过的实例上出现的错误。最后,我们给出带有最高正权重的超像素作为解释,将其它部分都改成灰色。
 

640?wx_fmt=jpeg

图4:用LIME解释一个预测。图片来源:Marco Tulio Ribeiro和Pixabay

第二个例子是解释谷歌的Inception神经网络模型对图像做的分类。如图 6所示,分类器预测这个图像是“树蛙”类的概率最高,而“台球”和“气球”的概率低一些。我们的解释揭示该分类器主要专注于蛙的面部作为此预测分类的依据。它也说明了为什么“台球桌”有非零概率,因为青蛙的爪子和眼与台球非常地相似,特别是在绿色背景下。同样,红色的心脏也和红气球类似。 
 
图6:解释Inception神经网络模型生成的预测。头三名预测结果是“树蛙”、“台球桌”和“气球”。图片来源:Marco Tulio Ribeiro和Pixabay提供的树蛙、台球和热气球图片。 
我们论文所述的实验表明机器学习专家和普通人都能从类似于图5和图6 这样的解释中获益。能够选择哪个模型泛化的更好,能够通过改变模型对模型进行改进,以及获得模型行为的关键洞察。

640?wx_fmt=jpeg

 

原作者论文:https://arxiv.org/pdf/1602.04938.pdf

 

 

这篇关于LIME技术个人总结和理解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/947140

相关文章

MySQL中查询和展示LONGBLOB类型数据的技巧总结

《MySQL中查询和展示LONGBLOB类型数据的技巧总结》在MySQL中LONGBLOB是一种二进制大对象(BLOB)数据类型,用于存储大量的二进制数据,:本文主要介绍MySQL中查询和展示LO... 目录前言1. 查询 LONGBLOB 数据的大小2. 查询并展示 LONGBLOB 数据2.1 转换为十

Python中高级文本模式匹配与查找技术指南

《Python中高级文本模式匹配与查找技术指南》文本处理是编程世界的永恒主题,而模式匹配则是文本处理的基石,本文将深度剖析PythonCookbook中的核心匹配技术,并结合实际工程案例展示其应用,希... 目录引言一、基础工具:字符串方法与序列匹配二、正则表达式:模式匹配的瑞士军刀2.1 re模块核心AP

深入理解go中interface机制

《深入理解go中interface机制》本文主要介绍了深入理解go中interface机制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前言interface使用类型判断总结前言go的interface是一组method的集合,不

在Java中实现线程之间的数据共享的几种方式总结

《在Java中实现线程之间的数据共享的几种方式总结》在Java中实现线程间数据共享是并发编程的核心需求,但需要谨慎处理同步问题以避免竞态条件,本文通过代码示例给大家介绍了几种主要实现方式及其最佳实践,... 目录1. 共享变量与同步机制2. 轻量级通信机制3. 线程安全容器4. 线程局部变量(ThreadL

springboot自定义注解RateLimiter限流注解技术文档详解

《springboot自定义注解RateLimiter限流注解技术文档详解》文章介绍了限流技术的概念、作用及实现方式,通过SpringAOP拦截方法、缓存存储计数器,结合注解、枚举、异常类等核心组件,... 目录什么是限流系统架构核心组件详解1. 限流注解 (@RateLimiter)2. 限流类型枚举 (

Python实现PDF按页分割的技术指南

《Python实现PDF按页分割的技术指南》PDF文件处理是日常工作中的常见需求,特别是当我们需要将大型PDF文档拆分为多个部分时,下面我们就来看看如何使用Python创建一个灵活的PDF分割工具吧... 目录需求分析技术方案工具选择安装依赖完整代码实现使用说明基本用法示例命令输出示例技术亮点实际应用场景扩

Java Spring的依赖注入理解及@Autowired用法示例详解

《JavaSpring的依赖注入理解及@Autowired用法示例详解》文章介绍了Spring依赖注入(DI)的概念、三种实现方式(构造器、Setter、字段注入),区分了@Autowired(注入... 目录一、什么是依赖注入(DI)?1. 定义2. 举个例子二、依赖注入的几种方式1. 构造器注入(Con

Spring Boot 与微服务入门实战详细总结

《SpringBoot与微服务入门实战详细总结》本文讲解SpringBoot框架的核心特性如快速构建、自动配置、零XML与微服务架构的定义、演进及优缺点,涵盖开发环境准备和HelloWorld实战... 目录一、Spring Boot 核心概述二、微服务架构详解1. 微服务的定义与演进2. 微服务的优缺点三

深入理解Go语言中二维切片的使用

《深入理解Go语言中二维切片的使用》本文深入讲解了Go语言中二维切片的概念与应用,用于表示矩阵、表格等二维数据结构,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录引言二维切片的基本概念定义创建二维切片二维切片的操作访问元素修改元素遍历二维切片二维切片的动态调整追加行动态

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys