利用神经网络做分类的时候,可以将神经网络看成一个mapping function,从输入到输出经过复杂的非线性变换。而输出的预测值与实际的目标值总是存在一定偏差的,一般利用这种偏差建立error 函数,再利用back propagation 来训练神经网络。

我们可以探讨一下,error 函数与概率分布或者概率密度函数的关系。

二分类

先来看二分类情况(}),我们假设网络最终的输出会经过一个sigmoid 函数:

 

)

 

), 这种概率分布可以用伯努利分布来表示:

 

t

 

那么,给定一组训练数据,含有N个独立观测的样本,我们可以建立如下的概率分布:

 

n

 

这里,). 对上式取对数,对应的是似然估计函数:

 

}

 

我们转换成error的时候,当然是希望error越小越好,最大似然估计对应最小的error,所以对上式取负号,可以得到如下的error函数:

 

}

 

这个就是训练二分类神经网络的时候,用的error 函数。

多个二分类

如果是多个二分类同时存在的情况,就像我们之前在离散变量的概率分布里讨论的那样,可以建立如下的概率分布:

 

)

 

整个训练集的概率分布可以表示为:

 

k

 

与二分类的情况类似,我们可以通过似然函数,取负对数,得到相应的error 函数:

 

}

 

多分类

最后,我们再讨论一下多分类的情况,可以用0-1组成的向量来表示输出,每个输出向量中,只有一个1,其它都是0,第几个分量为1,说明输入的), 这种多分类与上面讨论的多个二分类的情况不同,多分类中,每次的输出向量中只有一个1。显然:

 

1

 

给定一个样本,其概率分布为:

 

k

 

一组训练样本的概率分布可以表示为:

 

k

 

对上式取负对数,我们可以得到多分类的error函数为:

 

)

 

其中:

 

)
 
from: http://blog.csdn.net/matrix_space/article/details/51463117

相关文章:

  • 2021-12-06
  • 2022-01-31
  • 2021-11-09
  • 2021-06-21
猜你喜欢
  • 2021-10-12
  • 2021-07-14
  • 2021-11-28
  • 2021-05-15
  • 2021-11-26
  • 2021-04-23
  • 2021-07-09
相关资源
相似解决方案