当前位置: 首页 > news >正文

李宏毅机器学习笔记31

目录

摘要

Abstract

1.explainable machine learning重要性

2.local explanation

local explanation

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的,但事实上不是这样。

http://www.dtcms.com/a/523643.html

相关文章:

  • 【timecode】两种不同的时间码格式:“`00:00:00`” 和 “`00:00:00:00`”
  • 个人网站 不用备案深圳建设网站和公众号
  • npm 安装 canvas 报错 node-gyp ERR! 的解决方法(Windows 系统)
  • 编辑器汇总:Neovim、Helix、Vim、LazyVim、Kakoune、nb、Lite XL
  • 如何开发一个自己的包并发布到npm
  • 商城型网站的概念企业信息平台登录
  • Docker MySQL 单主从及分表函数
  • UE5 蓝图-11:本汽车蓝图的事件图表,汽车拆分事件,染色事件(绿蓝黄青)。
  • CDC 实时数据同步与小时级统计方案(Flink 1.13.5 + MySQL 8.0)
  • Redis之String 类型入门与实战,由基础语法快速掌握再到缓存加速/验证码防刷/计数统计场景应用
  • 【Qt | .pro文件】Qt项目文件详解:pro文件与pri文件
  • SpringAI2-Spring AI-聊天模型:ChatClient,流式编程,ChatModel
  • [MySQL] 事务和视图
  • 建设网站的特色wordpress域名网站搬家
  • 记录画图笔记
  • 【江苏政务服务网-注册_登录安全分析报告】
  • redisson介绍
  • 20251020二分总结
  • Android 基于清单文件mate-data数据共享
  • Android中Window和LayoutParams的常用属性及常用方法介绍
  • MySQL的安装与卸载
  • 单调栈详解【C/C++】
  • 智慧用电平台让安全走在事故前面
  • 自己的商标名称可以做网站名称吗单页手机网站源码
  • 做网站设计的电脑需要什么配置公司网站首页图片素材
  • Kubernetes网络通信与Pod基础详解:从架构图看K8s核心组件
  • freeRTOS学习日记
  • 划分字母区间---超全详细解
  • 【机器学习】k近邻法
  • 如何使用vscode和express开发node.js