我看到很多实现都是使用GIS或IIS来训练最大熵模型。我们可以使用梯度下降法吗?如果可以,为什么大多数教程直接讲解GIS或IIS方法,而不展示简单的梯度下降法来训练最大熵模型?我们知道,softmax回归等同于最大熵模型,但我从未在softmax中听说过GIS或IIS。这是为什么?有没有一个简单的玩具代码使用简单的梯度下降法来训练最大熵模型?我认为实现一个玩具代码很简单,推导只需计算经验期望和模型期望。
回答:
“最大熵模型”是一个定义不明确的术语,可以描述数十种最大化熵的方法。然而,如果你指的是最著名的“MaxEnt”,那么它只是逻辑回归,可以而且经常使用梯度下降法来解决。此外,经典的前馈网络在最后一层使用逻辑回归成本(因此是最大熵成本),它们也使用SGD来解决。
更一般地回答——任何具有可在参数上进行微分的成本的模型都可以使用GD来学习。例如,SVM可以用GD来学习(尽管通常不这样做,因为我们有更有效的方法,这些方法利用了SVM的一些特定特征)。
然而,“可以解决”并不意味着“应该解决”,因为GD是一种非常通用的工具,它不利用问题的特性(如曲率等)。迭代缩放方法对于MaxEnt的特定优化问题更为合适,因为我们对MaxEnt成本的了解更多,它是可微分的且具有单一解。
请参阅伯克利讲座以获取大量细节和对许多可能方法的逐步介绍。