Перейти к основному содержимому

Многоклассовая логистическая регрессия

Существует обобщение логистической регрессии и для решения задачи многоклассовой классификации, в которой прогнозируемая величина принадлежит одному из CC классов:

y{1,2,...C}.y\in\{1,2,...C\}.

В этом случае вводится дополнительное преобразование поверх рейтингов классов линейного многоклассового классификатора.

Многоклассовый линейный классификатор, как известно, определяется CC дискриминантными функциями, измеряющими рейтинг каждого из классов:

y=1:g1(x)=w1Txy=2:g2(x)=w2Txy=C:gC(x)=wCTx\begin{array}{cc} y=1: & g_{1}(\mathbf{x})=\mathbf{w}_{1}^{T}\mathbf{x}\\ y=2: & g_{2}(\mathbf{x})=\mathbf{w}_{2}^{T}\mathbf{x}\\ \cdots & \cdots\\ y=C: & g_{C}(\mathbf{x})=\mathbf{w}_{C}^{T}\mathbf{x} \end{array}

Для компактности записи смещение не указано, поскольку здесь мы добавили константную единицу в число признаков.

В модели многоклассовой логистической регрессии предполагается связь g1(x),...gC(x)g_{1}(\mathbf{x}),...g_{C}(\mathbf{x}) с вероятностями классов через softmax-преобразование:

p(y=cx)=SoftMax(wcTxw1Tx,...wCTx)=ewcTxi=1CewiTxp(y=c|\mathbf{x})=\text{SoftMax}(\mathbf{w}_{c}^{T}\mathbf{x}|\mathbf{w}_{1}^{T}\mathbf{x},...\mathbf{w}_{C}^{T}\mathbf{x})=\frac{e^{\mathbf{w}_{c}^{T}\mathbf{x}}}{\sum_{i=1}^{C}e^{\mathbf{w}_{i}^{T}\mathbf{x}}}

для каждого класса c=1,2,...Cc=1,2,...C.

Как видим, SoftMax преобразование переводит CC-мерный вектор рейтингов классов в CC-мерный вектор выходов, которые

  • неотрицательны

  • и суммируются в единицу.

Таким образом, выходы SoftMax можно трактовать как вероятности классов.

Веса полученной вероятностной модели нужно оценивать методом максимального правдоподобия.

Более компактное представление

Поскольку дискриминантные функции определены с точностью до сдвига на общую функцию (обоснуйте!), то, сдвигая каждый раз найденные дискриминантные функции на wCTx\mathbf{w}_C^T \mathbf{x}, получим эквивалентный классификатор с рейтингом последнего класса равным тождественному нулю.

Поэтому, не ограничивая общности, можно сразу положить gC(x)0g_C(\mathbf{x})\equiv 0 и находить только вектора весов w1,w2,...wC1\mathbf{w}_1,\mathbf{w}_2,...\mathbf{w}_{C-1}. Число параметров модели тогда снизится с C(D+1)C(D+1) до (C1)(D+1)(C-1)(D+1).