网络看了一张图,说是草莓,把握接近百分之百。它是看了图上哪些像素才这么说的?把网络的判断分摊到每个像素头上,看每个像素出了多少力,这件事叫归因。本实验先看最直接的办法为什么不行,再动手做一遍集成梯度。
关于这个网络:它就是实验一练好的那个认苹果、香蕉、草莓的小网络。
这一步看什么挑一张水果图,网络先给三类各打一个分数,再把分数换算成把握,三类的把握加起来是 100%。后面三步要问的是:图上哪些像素让它对这一类这么有把握。
90 张测试图里,绝大多数的把握都在 99% 以上,最没把握的是草莓第 4 张,也有 89% 左右。判定的那一类只要比第二名多出几分,把握就贴近 100% 了。
网络说得很肯定,却不说理由。接下来三步就来找它的理由。
这一步看什么先把网络放一边,看课件第 47 页只有一个输入 x 的例子:输出 = x − x² ÷ 4,x 到 2 以后不再涨。梯度就是 x 再加一点点时输出跟着变多少,也就是曲线的斜率。最直接的归因办法是把“梯度 × x”当作 x 的功劳。
| x | 实际涨了 | 梯度 × x | 一路攒起来 |
|---|
x 到 2.00 时,输出从 0 涨到了 1.00,全是 x 的功劳。可曲线在这里已经平了,梯度是 0,“梯度 × x”也是 0,只看梯度就会说 x 毫无作用。输出涨到头、再怎么推也不动的情况叫饱和。
x 取 0.50 时,“梯度 × x”是 0.38,也比实际涨的 0.44 少。一路攒起来的值始终和实际涨的量相等,集成梯度用的就是这个办法。
这一步看什么回到网络。从一张只有背景色的空白图(课件叫基线)出发,分 40 步走到原图,把每一步的梯度攒起来,再乘上每个像素一共变了多少,就是这个像素的功劳,画成图叫归因图。课件用全黑图当基线,这里背景是浅色的,从全黑出发功劳会大半算到背景上,所以改用空白图。
用草莓第 5 张图时,网络对空白图的把握只有 27.3%。前 10 步把握涨得最快,梯度也最强,功劳已经攒下八成。走到第 22 步,把握过了 99%,这时梯度只剩最强时的百分之五左右,走到原图只剩千分之一左右,和第 02 步曲线变平的那一段一样。只看终点那一步的梯度,就会漏掉前面攒下的功劳。
走完 40 步,归因图亮的地方大致就是草莓的形状,背景是暗的。
这一步看什么一张图有 20 × 20 个像素,每个像素有红、绿、蓝三个数,一共 1200 个数。它们的功劳加起来,应该正好等于网络对原图的把握减去对空白图的把握(课件第 48 页写作分数之差),这叫完整性。
| 分几段 | 集成梯度加起来 | 差了多少 |
|---|
用草莓第 5 张图时,应该等于 0.727。分 1 段只算出 0.12,分 3 段又冲到 0.97,段数太少时算得忽高忽低。分 10 段、30 段、100 段时,差距都不到 0.01。课件第 49 页的工程近似就是这样把路切成 m 段来算的。
只看终点的梯度,加起来只有 0.002,几乎把全部功劳都漏掉了,段数再多也帮不了它。
前面四步的操作结果会自动写进报告。下面的题目按你实际看到的情况回答。