Метод logistic_normalization()

Stochastic & Risk Generator: Логистическое нормирование многомерных весов в пространство вероятностей

1. Функциональное назначение

Метод logistic_normalization выполняет роль математического стабилизатора и нормировщика числовых параметров ядра. Он предназначен для преобразования многомерного массива сырых, некоррелированных весов интентов \(\mathbf{W}(t)\), полученных на этапе расчета плотности, в строго нормированный вектор вероятностей \(\mathbf{P}(t)\). Метод гарантирует, что на выходе все элементы вектора будут лежать в диапазоне \([0 \dots 1]\), а их математическая сумма будет равна единице.

2. Математический базис и Softmax-стабилизация

Для приведения хаотичных весов к строгому пространству вероятностей используется обобщенная многомерная логистическая функция (экспоненциальный Softmax-алгоритм) [3.3]. Вероятность наступления конкретного \(k\)-го интента рассчитывается по формуле [3.3]:

\[p_k(t) = \frac{e^{w_k(t)}}{\sum_{j=1}^{4} e^{w_j(t)}}\]

Где:

  • \(w_k(t)\) — сырой вес целевого интента (например, готовки или инвентаризации).
  • \(\sum e^{w_j(t)}\) — сумма экспонент всех четырех базовых интентов вектора \(\mathbf{I}\) [3.3].

Защита от численного переполнения (Overflow Protection)

Поскольку экспонента \(e^x\) растет сверхвысокими темпами, при критических значениях стресс-факторов (например, когда тревожность \(H_{\text{anxiety}}\) уходит к пику 5.0) математический процессор может столкнуться с ошибкой FloatingPointError (переполнение памяти RAM). Чтобы этого избежать, метод реализует стабилизационный сдвиг аргументов на величину максимального веса:

\[w_k \leftarrow w_k - \max(\mathbf{W})\]

3. Спецификация метода (ИТ-контракт)

  • Тип вызова: Синхронный, внутренний, утилитарный (Pure Function).
  • Исполнитель: Stochastic & Risk Generator.

3.1. Входные параметры (Аргументы вызова)

Параметр Тип данных Обязательный Описание
raw_weights np.ndarray Да Плоский вектор сырых числовых весов \(\mathbf{W}(t) = \{w_1, w_2, w_3, w_4\}\) [3.2].

3.2. Выходные данные (Возвращаемое значение)

  • np.ndarray (Float) — валидный вектор вероятностей \(\mathbf{P}(t) = \{p_1, p_2, p_3, p_4\}\), удовлетворяющий условию \(\sum_{k=1}^{4} p_k = 1\).

4. Схема алгоритма нормирования (Mermaid)

graph TD
    A[Входной вектор сырых весов W] --> B["Поиск максимума: max_W = max(W)"]
    B --> C["Численный сдвиг: стабильный_W = W - max_W"]
    C --> D["Расчет экспонент: exp_W = exp(стабильный_W)"]
    D --> E["Вычисление суммы: sum_exp = sum(exp_W)"]
    E --> F["Деление: P = exp_W / sum_exp"]
    F --> G[Выход: Нормированный вектор вероятностей P]

5. Production Реализация метода на Python

import numpy as np

def logistic_normalization(raw_weights: np.ndarray) -> np.ndarray:
    """
    Выполняет Softmax-нормирование вектора весов с защитой 
    от численного переполнения (In-Memory Stability).
    """
    # 1. Защита от переполнения: вычитаем максимальный элемент
    # Экспонента от нуля равна 1.0, это страхует RAM от FloatingPointError
    stabilized_weights = raw_weights - np.max(raw_weights)
    
    # 2. Расчет экспоненциального сдвига
    exp_weights = np.exp(stabilized_weights)
    
    # 3. Нормирование к единичной сумме вероятностей
    probability_vector = exp_weights / np.sum(exp_weights)
    
    return probability_vector