可解释的神经网络:分类
在这篇文章中,我的目的是简单解释神经网络如何执行二元和多原分类。我将解释二元分类只是网络执行的核技巧,而多类分类只是搜索最优功能。
简单的2D案例
我们想做一个二元分类,其中输出可以是Class 1或Class 0.最初我们的数据是非线性分离的,看起来像:
图1:绿点(Green)代表0,红点(Red)代表1
绿色区域 - G是目标决策边界,对于属于G的所有点(x,y),我们的网络输出0.并且类似于R输出1中的所有点(x,y)。
考虑一个简单的隐藏层神经网络,其中有两个隐藏的神经元。输出是一个概率P(另一个是1-P,因为只有两个类)。最后一层P的计算是之前通过激活函数C1和C2的计算以及最后的权重和偏差:
输出节点处的计算
归结为
其中sigma(C1),sigma(C2)和P是三个变量。我们已经创建了一个3D表面,它以某种方式组合输入X,Y以输出一个thrid变量P.这三个变量可以被视为一些复杂的表面。
现在记住我们的目标,我们希望这个表面是这样的:对于属于R的(x,y),我们得到Class 1给出P值大,而对于G中的(x,y),Class 1得到一个P值小(相反,Class 0值大)。
通常对于具有两个类别的情况,P被阈值化为0.5,即如果一个类别具有高于0.5,则我们选择该类别。在很多优化之后网络确定的这个等式可以看作是这样的东西:
图2:网络可视化输出方程(1)
该图是这样的:对于红色区域中的点X,Y,我们得到P大于0.5,而对于绿色值,我们得到P小于0.5。
图2中绿色和红色的边界是决定边界,其中两个类别恰好为0.5(为了更清楚,参见图3)。你可以将这个决策边界视为超平面切割我们的图形。我们的映射是将X,Y(它们不是线性可分离的)投射到另一个空间中,在那里它们可以线性分离,然后在空间中传递线性分类器或超平面。这是一个线性分类器的原因是因为如果我选择P = 0.5的表面点并将其与P = 0.5的周围点连接,由于函数的连续性,我将在边界周围获得平滑的曲线然后,我可以通过超平面。
基本上我们的神经网络做了一些非凡的事情。它采用了我们的2D输入并将它们映射到3D空间,使得它们在该空间中可线性分离。它所做的就是通过超空间或者线性分类器来确定这个点是0还是1。这就是所谓的核技巧:创建到变量可线性分离的空间的映射。
图3:Kernal Trick-Data在2D空间中非线性可分离但可线性分离,并具有映射到3D空间的函数
3个类
假设我们有3个类A,B和C,让相应的X,Y区域为RegionA,RegionB,RegionC。在这种情况下,我们的网络输出一个3个数字的向量,表示每个数字的原始分数。
通过一系列矩阵变换和激活函数计算的三个类的原始分数然后变成每个类的概率
然后可以通过softmax函数传递该原始分数以给出每个类的比例概率。
现在每个原始分数是通过输入的一系列矩阵变换和激活函数计算的函数,并且可以表示为:
原始分数计算
基本上我们有三个函数S1,S2,S3,它们接收输入(x,y)并计算每个类的原始分数。我们希望这些函数是S1 >> S2,S3((x,y)属于RegionA),S2 >> S1,S3((x,y)属于RegionB)而S3 >> S2,S1((x, y)属于RegionC)。
这些函数必须用矩阵变换和激活函数表示。由于神经网络是通用逼近器,我们基本上在所有可能函数的空间中搜索以查看哪3个满足这些属性。
我们的神经网络正在有效地解决一个优化问题,它试图找到最佳参数,以满足这些条件。
人们普遍认为神经网络是一个“黑匣子”或“不可解释的”。这是错误的,不能明确解释的是它获得的 特定参数以获得该方法的最优化版本。
结论:
我们已经看到,我们可以将二元分类作为核技巧和多原分类作为在整个函数空间中搜索最优函数。这使我们更深入地了解神经网络用于实现降低成本函数的优化目标的方法。