JSMA算法笔记

JSMA算法的代码和作者解读(这是一个超链接)
在上述文章中解释了JSMA算法的作用和原理,这里简单说一下代码的运行过程

input:
JSMA算法笔记
JSMA算法笔记
output:
JSMA算法笔记
基本公式:
JSMA算法笔记前向导数,描述了i输入分量对于j分类分值的影响

JSMA算法笔记

第一步:求jacobian矩阵

JSMA算法笔记
矩阵中的(i,j)是第i个分类对input的x(i)的偏导

第二步:求出alpha矩阵和beta矩阵

JSMA算法笔记

JSMA算法笔记

通过对jacobian矩阵进行操作可以得到alpha和beta矩阵

第三步:根据公式求解最大值

求解最大值的过程中,作者发现如果根据上述公式寻找合适的一个点,这个点可能不存在或者很难找到。所以作者决定采用下述公式,同时寻找一对点:JSMA算法笔记
同时在图中出现的限制条件,采用mask矩阵的方式,不符合条件的则在该位置置为0,最后mask矩阵和alpha,beta矩阵相乘得到Map。

第四步:在找到的点上加上扰动和判断类型,失败则继续迭代
没说到的地方:

在代码中存在一些调整,比如说对于该位置达到修改值上限(下限)的话则不在搜索该位置,该位置在mask中也会置为0.存在正负扰动值,但两者逻辑都差不多。