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

相关文章

C# List.Sort四种重载总结

《C#List.Sort四种重载总结》本文详细分析了C#中List.Sort()方法的四种重载形式及其实现原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友... 目录1. Sort方法的四种重载2. 具体使用- List.Sort();- IComparable

SpringBoot项目整合Netty启动失败的常见错误总结

《SpringBoot项目整合Netty启动失败的常见错误总结》本文总结了SpringBoot集成Netty时常见的8类问题及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一、端口冲突问题1. Tomcat与Netty端口冲突二、主线程被阻塞问题1. Netty启动阻

SpringBoot整合Kafka启动失败的常见错误问题总结(推荐)

《SpringBoot整合Kafka启动失败的常见错误问题总结(推荐)》本文总结了SpringBoot项目整合Kafka启动失败的常见错误,包括Kafka服务器连接问题、序列化配置错误、依赖配置问题、... 目录一、Kafka服务器连接问题1. Kafka服务器无法连接2. 开发环境与生产环境网络不通二、序

python3中正则表达式处理函数用法总结

《python3中正则表达式处理函数用法总结》Python中的正则表达式是一个强大的文本处理工具,用于匹配、查找、替换等操作,在Python中正则表达式的操作主要通过内置的re模块来实现,这篇文章主要... 目录前言re.match函数re.search方法re.match 与 re.search的区别检索

python协程实现高并发的技术详解

《python协程实现高并发的技术详解》协程是实现高并发的一种非常高效的方式,特别适合处理大量I/O操作的场景,本文我们将简单介绍python协程实现高并发的相关方法,需要的小伙伴可以了解下... 目录核心概念与简单示例高并发实践:网络请求协程如何实现高并发:核心技术协作式多任务与事件循环非阻塞I/O与连接

GO语言zap日志库理解和使用方法示例

《GO语言zap日志库理解和使用方法示例》Zap是一个高性能、结构化日志库,专为Go语言设计,它由Uber开源,并且在Go社区中非常受欢迎,:本文主要介绍GO语言zap日志库理解和使用方法的相关资... 目录1. zap日志库介绍2.安装zap库3.配置日志记录器3.1 Logger3.2 Sugared

深入理解Redis线程模型的原理及使用

《深入理解Redis线程模型的原理及使用》Redis的线程模型整体还是多线程的,只是后台执行指令的核心线程是单线程的,整个线程模型可以理解为还是以单线程为主,基于这种单线程为主的线程模型,不同客户端的... 目录1 Redis是单线程www.chinasem.cn还是多线程2 Redis如何保证指令原子性2.

深入理解MySQL流模式

《深入理解MySQL流模式》MySQL的Binlog流模式是一种实时读取二进制日志的技术,允许下游系统几乎无延迟地获取数据库变更事件,适用于需要极低延迟复制的场景,感兴趣的可以了解一下... 目录核心概念一句话总结1. 背景知识:什么是 Binlog?2. 传统方式 vs. 流模式传统文件方式 (非流式)流

深入理解Go之==的使用

《深入理解Go之==的使用》本文主要介绍了深入理解Go之==的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录概述类型基本类型复合类型引用类型接口类型使用type定义的类型不可比较性谈谈map总结概述相信==判等操作,大

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法