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]
Метод 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)
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