李宏毅机器学习笔记31

目录

摘要

Abstract

[1.explainable machine learning重要性](#1.explainable machine learning重要性)

[2.local explanation](#2.local explanation)

[local explanation](#local explanation)

[saliency map](#saliency map)

smoothgrad


摘要

本篇文章继续学习李宏毅老师2025春季机器学习课程,学习内容是explainable machine learning的重要性,以及explainable machine learning分类中的local explanation及基本判断方法。

1.explainable machine learning重要性

为什么需要可解释的机器学习?一个本质上的原因是就算机器可以得到正确答案但并不代表它非常聪明。在很多真实的应用中explainable machine learning往往是必须的,举例来说,银行可能会用机器学习的模型判断要不要贷款给某一个客户,但是法律规定银行用机器学习的模型自动判断必须要有一个理由,此时我们并不是只训练机器模型就好,我们还需要机器学习的模型是有解释力的。或者是未来用在医疗诊断上,这样关乎人身安全的问题,如果机器学习不会给出理由的话,我们无法相信它做出的是正确的判断。所以我们需要机器学习不只给我们答案,还要给我们得到答案的理由。

更进一步,如果机器学习的模型具有解释力的话,我们可以凭借解释的结果去调整我们的模型

2.local explanation

explainable machine learning分为两大类,一种是local explanation,一种是global explanation。假设有一张图片,里面是一只猫,那么我们的问题是:为什么会认为这张图片是一只猫。根据一张图片来回答问题,这叫作local explanation。而global explanation是现在没有给图片,而是问它上面样的图片叫做猫,它并不针对任何一张特定图片分析。

local explanation

对local explanation来说,我们可以把问题问的更具体一些,它知道这个图片是一只猫时,到底是图片中的什么东西让他觉得是一只猫。假设输入为x,可能是一张图片,一段文字。可以把x拆分为多个部分。那现在要问的问题就是,这些拆分的部分哪一个对机器现在做出的最终决断是最重要的。那我们如何知道哪个部分最重要?我们将某个部分拿出来改造或者是删除,如果我们改造或删除某个部分后,输出发生巨大的变化,就说明这个部分很重要。

举个例子,在一个图片中想要知道每一个区域的重要性时,有一个很简单的方法,在图片不同的位置放上一个灰色的方块,输出的是相应位置被灰色色块遮挡时,正确输出的几率,蓝色部分代表输出正确几率是低的,红色部分代表输出正确几率是高的。

saliency map

还有一种方法是计算gradient,假设有一张图,写作X1-Xn,每个X代表一个部分(pixels),计算这张图片的loss,即图片输入模型中,输出与正确答案的差距,用e表示。想知道某个pixel对这张图片的重要性,就把某个pixel的值做一个小小的变化,接下来看loss的值会有什么变化。如果loss变化很大,则代表这个pixel对这张图片很重要。我们把变化的e和变化的X作比值来代表pixel的重要性,比值越大,就代表越重要。把图中每一个比值计算出来就得到一个叫做saliency map的图,在saliency map上越偏白色代表比值越大,也就是这个部分越重要。

smoothgrad

我们可以用smoothgrad让saliency map画的更好,在下图中直接画出来的的saliency map并不是很理想,但是用smoothgrad会让saliency map的白色部分集中在动物附近。具体的做法就是在原有的图片上加上不同的杂讯,每个都计算saliency map最后平均起来就可以得到更好的效果。

光看gradient并不能完全反应一个部分的重要性。举一个例子,下图中横轴表示某种生物鼻子的长度,纵轴表示生物是大象的可能性。不难看出,在鼻子长度到一个限度之后,即使鼻子更长也不会更像大象,在限度附近会让我们计算的gradient为0。这就可能导致我们得出鼻子长度对是不是大象这件事情不重要,因为鼻子长度变化对是大象的可能性的变化是趋近于0的,但事实上不是这样。

相关推荐
爱喝水的鱼丶1 天前
SAP-ABAP:SAP概述:数据处理的系统、应用与产品
运维·学习·sap·abap·1024程序员节
CoderJia程序员甲2 天前
GitHub 热榜项目 - 日榜(2025-11-13)
ai·开源·github·1024程序员节·ai教程
小坏讲微服务3 天前
MaxWell中基本使用原理 完整使用 (第一章)
大数据·数据库·hadoop·sqoop·1024程序员节·maxwell
liu****3 天前
18.HTTP协议(一)
linux·网络·网络协议·http·udp·1024程序员节
洛_尘3 天前
JAVA EE初阶 6: 网络编程套接字
网络·1024程序员节
2301_800256114 天前
关系数据库小测练习笔记(1)
1024程序员节
金融小师妹4 天前
基于多源政策信号解析与量化因子的“12月降息预期降温”重构及黄金敏感性分析
人工智能·深度学习·1024程序员节
GIS数据转换器4 天前
基于GIS的智慧旅游调度指挥平台
运维·人工智能·物联网·无人机·旅游·1024程序员节
南方的狮子先生5 天前
【C++】C++文件读写
java·开发语言·数据结构·c++·算法·1024程序员节
Neil今天也要学习5 天前
永磁同步电机无速度算法--基于三阶LESO的反电动势观测器
算法·1024程序员节