# InvariantCore — Ablation Study Report V1

**Дата:** 2026-08-10
**Статус:** ЗАВЕРШЕНО (2 модели, 14 текстов, кросс-модельная проверка)
**Файлы данных:** `ablation_final_v1.json`, `ablation_summary_v1.json`

---

## 1. Постановка

Проверялась гипотеза: **«резистентность текста к word-shuffle» (δ_σ) является
универсальным инвариантом семантической стабильности**, измеряемым как
z-score разницы между когерентностью реального текста и его word-shuffle-контроля
на sentence embeddings (Hamilton-стиль: эмбеддинги соседних предложений).

Метод: для каждого текста (60 предложений) считалось среднее косинусное
расстояние между соседними предложениями (μ_real), затем 3 word-shuffle
повтора (μ_ws, σ_ws) и δ_σ = (μ_real − μ_ws) / σ_ws.

**Выборка (14):** 9 писателей (Остин, Бальзак, Флобер, Мелвилл, Оруэлл,
Торо, Дюма, Гюго, Достоевский) + 5 контролей (Спиноза, Ницше, Сунь-Цзы,
Урантия, По).

**Модели:** all-MiniLM-L6-v2, all-mpnet-base-v2 (независимые архитектуры).

---

## 2. Главный результат

### 2.1. Гипотеза shuffle-инварианта ОТКЛОНЕНА

| Метрика | Кросс-модельная корреляция (n=14) |
|---|---|
| δ_σ, Pearson r | **+0.561** (p=0.037) |
| δ_σ, Spearman ρ | **+0.332** (p=0.246, незначимо) |

δ_σ не воспроизводится между моделями на уровне рангов. На 4-точечной
подвыборке корреляция была даже отрицательной (r=−0.65): знак переворачивается.
Писательский «коридор» 3.4±1.2σ из batch_v8 (Word2Vec) был артефактом
конкретного пайплайна:

- MiniLM: писатели δ_σ = −3.07 ± 6.65σ (разброс [−10.9, +9.4])
- MPNet: писатели δ_σ = +4.40 ± 8.62σ (разброс [−7.3, +19.2])

**Вывод: z-нормализация по σ word-shuffle разрушает сигнал — σ оценивается
по 3 точкам и нестабильна, а эффект shuffle зависит от внутренностей модели.**

### 2.2. НАЙДЕН инвариант: μ_real — сырая когерентность текста

Среднее косинусное расстояние между соседними предложениями **без
нормализации** оказалось высокостабильным между моделями:

| Метрика | Кросс-модельная корреляция (n=14) |
|---|---|
| μ_real, Pearson r | **+0.955** (p < 0.0001) |
| μ_real, Spearman ρ | **+0.921** (p < 0.0001) |

### 2.3. Идеальное разделение типов текста (обе модели)

| Модель | Проза (9) | Философия/сакр. (5) | Разделение | p (Mann-Whitney) |
|---|---|---|---|---|
| MiniLM | 0.633 ± 0.044 | 0.484 ± 0.064 | **100% (45/45 пар)** | 0.001 |
| MPNet  | 0.567 ± 0.053 | 0.411 ± 0.063 | **100% (45/45 пар)** | 0.001 |

На MiniLM min(проза)=0.5509 (Мелвилл) > max(филос)=0.5499 (Ницше).
На MPNet min(проза)=0.5148 (Остин) > max(филос)=0.4722 (Ницше).
Ни один писатель не оказался ниже ни одного философского текста — ни на одной модели.

### 2.4. Ранги по μ_real (обе модели)

```
[C] urantia   0.361 / 0.294   ← минимум (сакральный текст)
[C] spinoza   0.492 / 0.398
[C] suntzu    0.500 / 0.457
[C] poe       0.514 / 0.432
[C] nietzsche 0.550 / 0.472
--- граница типа ---
[W] melville  0.551 / 0.533
[W] dumas     0.595 / 0.536
[W] austen    0.618 / 0.515
[W] flaubert  0.625 / 0.555
[W] balzac    0.635 / 0.579
[W] thoreau   0.644 / 0.525
[W] orwell    0.652 / 0.573
[W] hugo      0.663 / 0.588
[W] dost_ug   0.718 / 0.701   ← максимум (художественная проза)
```

---

## 3. Интерпретация

- **Философские/сакральные тексты** = медленный концептуальный дрейф:
  соседние предложения семантически близки (один развиваемый аргумент).
- **Художественная проза** = быстрый дрейф: соседние предложения далеки
  (смена сцен, событий, персонажей, диалогов).
- Урантия — экстремум когерентности (0.36/0.29), Достоевский — максимум
  «рваности» (0.72/0.70). Согласуется с находкой прошлой сессии (Урантия
  как аномалия), но теперь на робастной метрике с подтверждением на
  независимой модели.

## 4. Ограничения

1. n=14 текстов (9+5) — выборка мала, требует расширения до 56+.
2. Все корпуса — переводы или конкретные издания; возможен конфаунд
   переводчика/редактора.
3. μ_real абсолютные значения зависят от модели (шкалы разные: MiniLM
   0.36–0.72, MPNet 0.29–0.70) — инвариант **ранговый**, не абсолютный.
4. Word-shuffle с N=3 даёт нестабильную σ — при необходимости пересчитать
   с N=10 на подвыборке.

## 5. Следующие шаги

1. **AI-детекция**: прогнать LLM-сгенерированные тексты через μ_real —
   попадают ли в зону 0.41–0.63 и какова дисперсия (гипотеза: AI-тексты
   имеют аномально низкую дисперсию / характерный уровень когерентности).
2. **Расширение выборки**: 56 текстов (включая русские и французские
   переводы) на MiniLM (быстрее), подтверждение разделения.
3. **Бенчмарк против известных метрик**: сравнить с существующими
   coherence-метриками (entity-based, discourse) для честной позиции
   новизны.

---
*Сгенерировано автоматически. Код: `ablation_final.py`.*

---

## 6. AI-детекция (первый пробный прогон)

**Данные:** 14 AI-текстов (Mistral-small, 7 категорий × 2 температуры),
14 человеческих текстов (та же выборка). Метрики: μ_real (среднее
косинусное расстояние соседних предложений) + σ_real (стандартное
отклонение этих расстояний = «гладкость»).

### Результаты (MiniLM)

| Группа | μ_real | σ_real (гладкость) |
|---|---|---|
| AI (n=14) | **0.688 ± 0.050** [0.60, 0.77] | **0.116 ± 0.020** [0.087, 0.153] |
| Человек (n=14) | 0.580 ± 0.089 [0.36, 0.72] | 0.153 ± 0.021 [0.117, 0.205] |

### Ключевые наблюдения

1. **AI-тексты «рванее» людей в среднем**: μ_real выше (0.688 vs 0.580).
2. **Но главное — философия**: AI-«философия» даёт μ_real = 0.67,
   тогда как настоящая (Спиноза, Сунь-Цзы, Ницше) = 0.36–0.55.
   **LLM не воспроизводит плотную концептуальную когерентность
   настоящей философии — разрыв 0.19.**
3. **Гладкость σ_real — новый дискриминатор**: AI-тексты однородно
   гладкие (0.087–0.153), человеческие — гетерогенные (0.117–0.205).
   Человек чередует плотные и рыхлые пассажи, LLM пишет ровно.
4. Простой 2D-классификатор (μ_real > 0.62 И σ_real < 0.14) ловит
   ~11/14 AI-текстов при 2/14 ложных срабатываниях на людях
   (Флобер, Торо) — ~80% точности на этом мини-наборе.

### Ограничения детекции
- Одна модель (Mistral-small), нет frontier-моделей (GPT/Claude недоступны)
- Короткие тексты (20–57 пар vs 59 у людей)
- Стилевые промпты, не «естественный» AI-текст
- Нужен второй энкодер (MPNet) для подтверждения + больше образцов

**Статус: детекционный сигнал ЕСТЬ и интерпретируем (гладкость +
неспособность к философской когерентности), но для заявки нужен
больший набор и вторая модель.**

---

## 7. AI-детекция v2 — мульти-модельный прогон (2026-08-10)

**Данные:** 35 AI-текстов от **4 моделей** (Mistral-семья, разные размеры):
mistral-small (14), mistral-medium-2508 (7), mistral-large-2512 (7),
ministral-3b-2512 (7) — 7 категорий × температура. Против тех же 14
человеческих текстов. Метрики: μ_real и σ_real (MiniLM).

### Итоговая таблица

| Модель | n | μ_real | σ_real |
|---|---|---|---|
| ministral-3b-2512 | 7 | 0.653 ± 0.066 | 0.121 ± 0.020 |
| mistral-large-2512 | 7 | 0.676 ± 0.060 | 0.122 ± 0.022 |
| mistral-medium-2508 | 7 | 0.696 ± 0.052 | 0.127 ± 0.027 |
| mistral-small | 14 | 0.688 ± 0.050 | 0.116 ± 0.020 |
| **ВСЕ AI (n=35)** | **35** | **0.680 ± 0.058** | **0.121 ± 0.022** |
| **Человек (n=14)** | **14** | **0.580 ± 0.089** | **0.153 ± 0.021** |

### Статистика (Mann-Whitney U, AI vs человек)
- μ_real: p = 3.5e-04 (t-test p = 3.6e-05)
- σ_real: p = 1.0e-04 (t-test p = 3.7e-05)
- Направление согласовано на ВСЕХ 4 моделях: μ выше, σ ниже у AI.

### ГЛАВНЫЙ РЕЗУЛЬТАТ: философия — полное разделение на всех моделях
AI-философия/религиозные (n=10): μ = **0.649 ± 0.027** [0.585, 0.673]
Настоящая философия (n=4): μ = **0.476 ± 0.070** [0.361, 0.550]
**min(AI) = 0.585 > max(человек) = 0.550 → разделение 100%, p = 0.002.**

По моделям: 3b=0.665, large=0.617, medium=0.646, small=0.670 — ни одна
модель не приближается к зоне настоящей философии (0.36–0.55).

### Честная оценка
- Универсальный 2D-классификатор (μ>0.62 И σ<0.14): 71% точности
  (23/35 AI, 2/14 ложных: Флобер, Торо) — для «детектора всего»
  недостаточно, нужен обучаемый классификатор + больше данных.
- Сильный, интерпретируемый сигнал — **домен философии**: LLM
  (все 4 размера) физически не воспроизводят плотную концептуальную
  когерентность настоящей философской прозы.
- Ограничение: все 4 модели — одна семья (Mistral). Meta/DeepSeek/Qwen
  API блокируют наш IP (403 WAF). Для внешней валидации нужен доступ
  к другим семьям или прокси.

*Данные: ai_detection_v2.json, ai_detection_summary_v2.json*

---

## 8. Классификатор v1 — Logistic Regression (2026-08-11)

**Данные:** 35 AI (4 модели) + 14 человек = 49 текстов.
**Признаки:** μ_real, σ_real, μ_real × σ_real (interaction).
**Метод:** LOOCV (Leave-One-Out Cross-Validation) — честная оценка:
каждый текст классифицируется моделью, обученной на остальных 48.

### Результаты LOOCV
| Метрика | Значение |
|---|---|
| Accuracy | **87.8%** (43/49) |
| Precision | 93.9% |
| Recall | 88.6% |
| F1 | 91.2% |
| AUC-ROC | **0.927** |

### Confusion matrix
```
          Predicted
          AI  Human
AI  (35)  31   4
Hum (14)   2  12
```

### Ошибки
**False positives (человек → AI, 2):**
- Торо (μ=0.644, σ=0.139) — поэтическая проза, μ высок
- Достоевский/УГ (μ=0.718, σ=0.148) — плотный текст, μ аномально высок

**False negatives (AI → человек, 4):**
- mistral-medium: eastern (μ=0.746, σ=0.166) — σ высокий
- mistral-large: philosophy (μ=0.617, σ=0.139) — μ на границе
- ministral-3b: religious (μ=0.585, σ=0.138) — μ низкий
- mistral-medium: religious (μ=0.673, σ=0.154) — σ высокий

### Per-model accuracy
| Модель | Точность |
|---|---|
| mistral-small | 14/14 (100%) |
| ministral-3b-2512 | 6/7 (86%) |
| mistral-large-2512 | 6/7 (86%) |
| mistral-medium-2508 | 5/7 (71%) |

### Коэффициенты модели (обучена на всех 49)
- μ_real: +1.528 (выше μ → AI)
- σ_real: -1.511 (ниже σ → AI)
- μ×σ: -0.352 (взаимодействие)
- Intercept: 0.865

### Вывод
Пороговый классификатор (71%) → обученный (88%) — улучшение на +17%.
AUC 0.927 означает, что в 92.7% случаев модель верно ранжирует
AI-текст выше человеческого. Для production нужны:
- больше данных (особенно человеческих, сейчас дисбаланс 35:14)
- внешняя валидация на других семьях моделей (Meta/DeepSeek/Qwen)
- тест на текстах Ленина (изначальная мотивация проекта)

*Файл: classifier_model_v1.json*

---

## 9. Ленин: проверка на реальном корпусе (2026-08-11)

**Данные:** 13 текстов из 55 томов ПСС Ленина (vol_01–40), каждый
200–500 слов. Прогнаны через тот же пайплайн (MiniLM, μ_real + σ_real).

### Результаты
| Группа | n | μ_real | σ_real |
|---|---|---|---|
| ЛЕНИН | 13 | **0.418 ± 0.051** | 0.110 ± 0.031 |
| AI (4 модели) | 35 | 0.680 ± 0.058 | 0.121 ± 0.022 |
| Человек (писатели) | 14 | 0.580 ± 0.089 | 0.153 ± 0.021 |

### Ключевые цифры
- **Ленин vs AI (μ):** p = 1.4e-07 — статистически различны
- **Ленин vs Человек (μ):** p = 0.0002 — статистически различны
- **Ленин μ range:** [0.327, 0.498] — **полностью вне AI-зоны** [0.553, 0.770]
- **Классификатор:** 11/13 → человек, 2/13 → AI (ложные, на границе)

### Интерпретация
Ленин занимает собственную зону в пространстве μ_real — ниже и
писателей, и AI. Его когерентность (μ=0.418) значительно ниже
среднего человека (0.580). Это не дефект — это стиль: Ленин
пишет короткими, плотными, рублеными фразами с резкими переходами.

**Важно:** 2 текста Ленина классифицированы как AI — не потому что
они похожи на AI, а потому что у них аномально низкая вариативность
(σ=0.063, σ=0.104), что совпадает с AI-паттерном «гладкости».
Это ложное срабатывание классификатора, а не признак AI-происхождения.

### Вывод
Ленин — третий кластер в пространстве (μ, σ): не AI, не писатель,
а отдельный стилометрический тип. Инструмент работает: AI и человек
разделяются на p<0.001, Ленин — отдельная популяция.

*Файл: lenin_results.json, lenin_classification_v1.json*
