natural-agi 0.1.39
Components of reduction neural networks concept
Requires Python: >=3.12

# NaturalAGI

NaturalAGI is a research project focused on developing a natural approach to Artificial General Intelligence through image processing, pattern recognition, and concept formation. The project implements a pipeline for processing visual data, extracting structural features, and forming abstract concepts through defined reduction rules. **The core goal is to build a classification algorithm that learns from training data without using backpropagation or traditional neural network approaches.**

## Getting Started

### Prerequisites

- Python 3.12+
- [uv](https://docs.astral.sh/uv/) (recommended) or pip

### Installation

1. Clone the repository:
```bash
git clone https://github.com/your-org/NaturalAGI.git
cd NaturalAGI
```

2. Install uv (if not already installed):
```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```

3. Create and activate the virtual environment:
```bash
uv venv natural-agi --python 3.12
source natural-agi/bin/activate  # On Windows: natural-agi\Scripts\activate
```

4. Install dependencies:
```bash
uv sync              # Core dependencies only
uv sync --all-extras # All dependencies including ML and dev tools
```

### Optional Dependency Groups

| Group | Description | Install Command |
|-------|-------------|-----------------|
| dev | Jupyter notebooks, visualization, linting | `uv sync --extra dev` |
| ml | PyTorch, torch-geometric, deep learning tools | `uv sync --extra ml` |



# Project Overview

## 0 Аннотація

### 0.1 Коротке резюме підходу та результатів

### 0.2 Перелік внеску роботи (булет-список)

## 1. Вступ ⚠️ *(WIP: Work in progress)*

1.1. Проблема та мотивація

1.2. Мета проєкту (elevator-pitch 3–5 речень)

1.3. Основні завдання та очікувані результати

1.4. Новизна та відмінності від існуючих ШНМ (3–5 пунктів)

1.5. Чому це важливо зараз (обмеження сучасних підходів)


## 2 Архітектура та загальний пайплайн системи 

<img src="docs/images/basic_architecture.png" alt="System Diagram" style="background-color: #f0f0f0; padding: 10px; border-radius: 10px; border: 1px solid #ccc;">

### 2.1. Попередня обробка

- **Скелетизація.** Перетворити вхідний контур/зображення на граф‑подібний скелет (вузли/ребра), що зберігає топологію та прибирає товщину й шум.

- **Первинний аналіз контуру (виділення первинних параметрів).** Обчислити базові параметри зі скелета (напр., angles with Ox, length of the lines, coordinates, normalized coordinates, etc.).

### 2.2. Формування концепту

- **Вторинний аналіз контуру (від агрегованої/стабільної стартової точки).** Стартувати з найстабільнішої стартової точки та отримати вторинні параметри (напр., quadrant, half-plane тощо).

- **Структурні та ознакові редукції.** Структурне спрощення графів об’єднанням/видаленням вузлів і ребер; редукція набору параметрів до найбільш загального значення зі збереженням топології структури.

- **Ітеративна композиція концепту.** Багаторазово уточнювати концепт до стабілізації — канонічного аттрактора, що фіксує загальну структуру та статистику класу.

### 2.3. Класифікація (для кожного концепту)

- **Перевірка складності (якщо концепт складніший за зображення — відхилення).** Рання відмова: пропускати концепти, чия мінімальна складність перевищує складність кандидата.

- **Вторинний аналіз контуру (від стартової точки концепту).** Почати з найближчої точки до стартової точки концепту та отримати вторинні ознаки (quadrant, half-plane тощо).

- **Структурна редукція.** Звести граф на етапі інференсу до порівнюваного концепту для коректного структурного зіставлення з концептом.

- **Розрахунок рівня активації.** Обчислити міру відповідності (активацію) за структурною та параметричною подібністю між редукованим зразком і концептом.

### 2.4. Прийняття рішення

- **Порівняння рівнів активації.** Порівняти активації між усіма концептами та обрати найвищу; при нічиїх використовувати найбільш складний концепт.

- **Результат класифікації.** Повернути прогнозований клас разом із рівнем активації/довірою.

## 3. Переддетектори: побудова первісного графа та первісна обробка

### 3.1 Вхідні сигнали нейрона-детектора

### 3.1.1 Вступ та Постановка Проблеми

Функція скелетонізування перетворює растрові зображення у структуровані графові представлення, придатні для аналізу патернів та розпізнавання концепцій. Цей процес вирішує фундаментальну задачу перетворення пікселево-базованих даних зображень у математичні графові структури, зберігаючи при цьому основні топологічні та геометричні характеристики.

Система поєднує класичне морфологічне скелетонізування з навчанням топології на основі нейронних мереж для обробки різноманітних типів зображень, зберігаючи при цьому обчислювальну ефективність. Підхід вирішує обмеження традиційних алгоритмів скелетонізування, які часто створюють фрагментовані або надмірно складні скелетні структури.

#### 3.1.2 Морфологічне Скелетонізування

Морфологічна попередня обробка використовує бінарне порогування з адаптивним вибором порога:

```math
I_{\text{binary}}(x,y) = \begin{cases}
1, & \text{if } I(x,y) > \theta \\
0, & \text{otherwise}
\end{cases}
```

Система застосовує морфологічні операції замикання та видалення малих об'єктів для усунення шуму, зберігаючи при цьому структурні елементи. Скелетонізування використовує перетворення медіальної осі, реалізоване в scikit-image [1], створюючи витончені представлення, які зберігають топологію, водночас зменшуючи структурні елементи до ширини одного пікселя.

#### 3.1.3 Алгоритм Growing Neural Gas

Алгоритм Growing Neural Gas (GNG) [2] забезпечує теоретичну основу для навчання топологічних зв'язків з даних скелетних точок. GNG динамічно конструює мережеві топології шляхом поступового додавання вузлів та коригування з'єднань на основі розподілу вхідних даних.

#### 3.1.4 Спрощення Мережі

Спрощення мережі використовує алгоритм Рамера-Дугласа-Пекера (RDP) [3] для зменшення складності, зберігаючи при цьому основні геометричні характеристики. Алгоритм використовує критерій перпендикулярної відстані для виключення точок.

### 3.2 Архітектура Алгоритму

Конвеєр скелетонізування складається з восьми послідовних етапів:

1. **Бінарна Попередня Обробка**: Адаптивне порогування з морфологічними операціями
2. **Морфологічне Скелетонізування**: Перетворення медіальної осі
3. **Обрізання Гілок**: Усунення хибних гілок за допомогою бібліотеки skan [4]
4. **Витягування Точок**: Перетворення у хмари точок для нейронної обробки
5. **Підгонка Нейронної Мережі**: Навчання топології GNG
6. **Спрощення Мережі**: Зменшення складності на основі RDP
7. **Конструювання Графу**: Генерація графу NetworkX з атрибутами вузлів/ребер
8. **Нормалізація**: Нормалізація координат для інваріантності масштабу

Система використовує адаптивний вибір порога для балансування зменшення шуму із структурною повнотою. Алгоритм починає з високих значень порога для мінімізації шуму та витягування лише найвиразніших структурних особливостей, забезпечуючи чисті скелетні представлення. Однак високі пороги можуть призвести до відключених компонентів, коли основні з'єднувальні структури опиняються нижче порога.

Для вирішення цього компромісу система ітеративно зменшує значення порога при виявленні відключених графів, поступово включаючи раніше "втрачені" структурні деталі, поки не буде досягнуто зв'язності графу. Цей адаптивний підхід забезпечує, що фінальне представлення містить достатню структурну інформацію для збереження топологічної цілісності, зберігаючи при цьому переваги зменшення шуму від початкової обробки з високим порогом.

**Рисунок 1: Повний Конвеєр Скелетонізування**

<img src="docs/images/skeletonization_example.png" alt="Рисунок 1: Повний конвеєр скелетонізування, що показує перетворення від растрового зображення до графового представлення" style="width: 100%; max-width: 800px;" />

*Рисунок 1: Всебічна ілюстрація конвеєра скелетонізування, що демонструє поступове перетворення від вхідного растрового зображення через морфологічну обробку, навчання топології нейронної мережі та фінальне графове представлення.*

**Рисунок 2: Аналіз Адаптивного Вибору Порога**

Наступна послідовність демонструє ітеративну стратегію зменшення порога, застосовану для досягнення оптимальної зв'язності при збереженні придушення шуму:

<img src="docs/images/threshold_200.png" alt="Рисунок 2а: Бінарне зображення при порозі θ=200" style="width: 100%; display: block; margin: 0 auto 1em auto;" />
<img src="docs/images/threshold_195.png" alt="Рисунок 2б: Бінарне зображення при порозі θ=195" style="width: 100%; display: block; margin: 0 auto 1em auto;" />
<img src="docs/images/threshold_180.png" alt="Рисунок 2в: Бінарне зображення при порозі θ=180" style="width: 100%; display: block; margin: 0 auto 1em auto;" />

*Рисунок 2: Поступове зменшення порога, що демонструє механізм адаптивного вибору. (а) Початковий високий поріг (θ=200) створює чисті, але потенційно відключені структури. (б) Проміжний поріг (θ=195) починає відновлювати з'єднувальні елементи. (в) Фінальний поріг (θ=180) досягає зв'язності, зберігаючи при цьому основні структурні характеристики. Алгоритм систематично зменшує значення порога, поки не будуть задоволені критерії зв'язності графу.*

Цей ітеративний підхід реалізує математичну оптимізацію:

```math
\theta_{\text{optimal}} = \arg\max_{\theta} \{\theta : \text{connectivity}(G_{\theta}) = \text{true} \land \theta \geq \theta_{\text{min}}\}
```

де G_θ представляє граф, отриманий з бінарного зображення I_θ, а connectivity(G_θ) оцінює обмеження топологічної зв'язності.

### 3.3 Первинний аналіз контуру

#### 3.3.1 Структурні елементи та їх опис

#### 3.3.2 Типи точок

Система розрізняє чотири основні типи точок, кожен з яких характеризується специфічними властивостями та енергетичним рівнем:

- **`Point`** - звичайна точка, місце з'єднання відрізків
- **`EndPoint`** - термінальна точка структури, після якої розвиток структури відсутній
- **`CornerPoint`** - кутова точка з'єднання відрізків, характеризується зміною звичайного напрямку розвитку структури
- **`IntersectionPoint`** - точка з'єднання відрізків з більш ніж двома відрізками

#### 3.3.3 Типи відрізків

Відрізки (`Line`) класифікуються за геометричними характеристиками:

- **`HorizontalLine`** - відрізок з більшою горизонтальною проекцією ніж вертикальною
- **`VerticalLine`** - відрізок з більшою вертикальною проекцією ніж горизонтальною

### 3.3.4 Параметри структурних елементів

#### 3.3.1 Параметри відрізків (Line)

Кожен відрізок характеризується наступними параметрами:

**Геометричні параметри:**
- `x1`, `y1` - координати початку відрізка (абсолютні значення)
- `x2`, `y2` - координати кінця відрізка (абсолютні значення)
- `length` - довжина відрізка (абсолютне значення)

**Кутові та напрямкові параметри:**
- `angle_with_origin` - кут між відрізком та віссю X (0-360° з кроком 5°)
- `quadrant` - квадрант розташування відрізка при аналізі контуру (1-4)
- `horizontal_direction` - напрямок горизонтального розвитку ["RIGHT", "LEFT"]
- `vertical_direction` - напрямок вертикального розвитку ["TOP", "BOTTOM"]

#### 3.3.5 Параметри точок

Точки характеризуються параметрами:

**Просторові параметри:**
- `x`, `y` - координати точки (абсолютні значення)
- `relative_distance` - відстань до центру структури (абсолютне значення)

**Геометричні параметри:**
- `angle` - кут між двома відрізками, що сходяться в точці (0-360°)
- `segments` - сегменти розташування відносно центру структури ["TOP", "BOTTOM", "LEFT", "RIGHT"]

### 3.4 Структура первісного графу

Після етапів скелетонізації та попереднього аналізу структура подається у вигляді графа, що містить точки, відрізки та їх параметри.

<img src="docs/images/first_graph_sample.png" alt="Первісний граф" style="background-color: #f0f0f0; padding: 10px; border-radius: 10px; border: 1px solid #ccc; width: 100%; max-width: 900px;" />

Граф складається з точок і відрізків; кожна точка належить принаймні одному відрізку.

:::mermaid
graph TD
A(EndPoint) -- Належить до --> B(Line)
C(EndPoint) -- Належить до --> B(Line)
:::

Точка може належати кільком відрізкам одночасно (точка перетину або кутова точка), тому вона може представлятися як `IntersectionPoint` або `CornerPoint`.

:::mermaid
graph TD
A(EndPoint) -- Належить до --> B(Line)
C(IntersectionPoint) -- Належить до --> B(Line)
C(IntersectionPoint/CornerPoint) -- Належить до --> D(Line)
E(EndPoint) -- Належить до --> D(Line)
:::

Сформований первісний граф є базовою структурою та моделлю постсинаптичних сигналів.

### 3.5 Системи координат

Ключовою проблемою в розпізнаванні образів та аналізі зображень є виділення ознак, інваріантних до геометричних перетворень, таких як переміщення, обертання та масштабування. Для вирішення цієї задачі запропонована методологія використовує фреймворк подвійної системи координат для представлення та аналізу структурної інформації, отриманої із зображень. У цьому розділі формалізовано визначення та застосування двох різних систем координат: Абсолютної (СК_A) та Відносної (СК_R).

#### 3.5.1 Абсолютна система координат (СК_A)

Абсолютна система координат (СК_A) визначається як основна система відліку, що зазвичай відповідає піксельним координатам вхідного зображення. Усі початкові точки даних, такі як вузли та ребра графа, згенерованого під час процесу скелетонізації, спочатку представлені в СК_A. Ця система забезпечує пряме відображення просторового розташування ознак на вихідному зображенні. Однак представлення в СК_A є чутливим до положення об'єкта, що означає, що просте переміщення об'єкта призведе до абсолютно іншого набору координат для його складових точок. Ця залежність від положення робить СК_A непридатною для надійної класифікації об'єктів та формування концептів, де ідентичність об'єкта не повинна бути прив'язана до його місцезнаходження.

<img src="docs/images/absolute_coordinate_system.png" alt="Абсолютна система координат" style="background-color: #f0f0f0; padding: 10px; border-radius: 10px; border: 1px solid #ccc; width: 100%; max-width: 900px;" />

#### 3.5.2 Відносна система координат (СК_R)

Для досягнення інваріантності до переміщення — фундаментальної вимоги для узагальненого зіставлення зразків — ми вводимо Відносну систему координат (СК_R). Початок СК_R визначається в обчисленому центрі аналізованої структури. Цей центр може бути визначений різними методами, наприклад, як геометричний центроїд (центр мас) усіх точок у графовому представленні структури. Перераховуючи координати всіх точок відносно цього структурного центру, ми ефективно нормалізуємо положення об'єкта. Отримане представлення в СК_R залежить лише від внутрішньої геометрії структури, а не від її абсолютного розташування на зображенні. Це перетворення є першим кроком до створення канонічного представлення об'єкта.

<img src="docs/images/relative_coordinate_system.png" alt="Відносна система координат" style="background-color: #f0f0f0; padding: 10px; border-radius: 10px; border: 1px solid #ccc; width: 100%; max-width: 900px;" />

#### 3.5.3 Мета та забезпечення інваріантності

Основна мета цього підходу з подвійною системою — відокремити внутрішні геометричні властивості об'єкта від його зовнішніх позиційних властивостей. Хоча СК_A є важливою для початкової обробки та візуалізації, СК_R є критично важливою для наступних етапів виділення ознак, класифікації та створення концептів. Перетворення з СК_A в СК_R гарантує, що виділені ознаки є інваріантними до переміщення. Подальші етапи аналізу можуть розвивати цей підхід, нормалізуючи дані щодо обертання (наприклад, шляхом вирівнювання структури за її головною віссю) та масштабу (наприклад, шляхом нормалізації координат до стандартного розміру), досягаючи таким чином повної геометричної інваріантності. Цей багаторівневий підхід до нормалізації є наріжним каменем побудови надійної та узагальненої системи візуального розуміння.

### 3.6 Сегментація

Для переходу від кількісного опису геометрії до якісного, що є ключовим для узагальнення та формування абстрактних концептів, у проєкті вводиться ієрархічна система просторової сегментації. Ця система структурує простір у відносній системі координат (СК_R) і дозволяє класифікувати відрізки та точки контуру на основі їхнього розташування відносно початкової точки. Сегментація функціонує як набір порогових рівнів для визначення якісних просторових параметрів.

Процес сегментації реалізовано на трьох рівнях деталізації:

1.  **Сегментація на півплощини:** На найвищому рівні абстракції простір ділиться на дві півплощини (наприклад, верхню та нижню, або ліву та праву) відносно осі, що проходить через початкову точку. Це дозволяє отримати найбільш загальну якісну характеристику напрямку відрізку.

2.  **Сегментація на квадранти:** Наступний рівень деталізації передбачає поділ простору на чотири квадранти. Це забезпечує більш точну класифікацію напрямку, дозволяючи розрізняти чотири основні напрямки (наприклад, "вперед-вгору", "назад-вгору", "назад-вниз", "вперед-вниз").

3.  **Сегментація на сегменти квадрантів:** Для найтоншої якісної оцінки кожен квадрант може бути додатково поділений на менші кутові сегменти. Це дає можливість фіксувати більш специфічні напрямки, що може бути критично для розрізнення складних структур.

Цей ієрархічний підхід дозволяє системі аналізувати об'єкти на різних рівнях абстракції. Використовуючи ці сегментації як порогові рівні, система перетворює неперервні кутові метрики на дискретний набір якісних ознак. Наприклад, замість точного кута відрізку (наприклад, 45 градусів), система класифікує його як такий, що належить до "першого квадранта" або навіть до певного "сегмента першого квадранта". Такий підхід значно підвищує стійкість моделі до незначних варіацій у формі та орієнтації, що є необхідною умовою для створення узагальнених візуальних концептів.

### 3.4 Типи та правила редукції

Система застосовує правила редукції для оптимізації структурного представлення:

#### 3.4.1 Редукція точки перетину до кінцевої точки

**Рисунок 3: Редукція IntersectionPoint → EndPoint**

<img src="docs/images/intersection_point_to_endpoint.png" alt="Редукція точки перетину до кінцевої точки" style="background-color: #f0f0f0; padding: 10px; border-radius: 10px; border: 1px solid #ccc; width: 100%; max-width: 600px;" />

*Якщо після структурної редукції кількість відрізків (`Line`) для заданої точки дорівнює 1, то точка перетину (`IntersectionPoint`) спрощується до кінцевої точки (`EndPoint`).*

#### 3.4.2 Редукція точки перетину до кутової точки

**Рисунок 4: Редукція IntersectionPoint → CornerPoint**
⚠️
<img src="docs/images/intersection_point_to_corner_point.png" alt="Редукція точки перетину до точки кута" style="background-color: #f0f0f0; padding: 10px; border-radius: 10px; border: 1px solid #ccc; width: 100%; max-width: 600px;" />

*Якщо після структурної редукції кількість відрізків (`Line`) для заданої точки не відповідає визначеній кількості для точки перетину (`IntersectionPoint`), то точка перетину спрощується до кутової точки (`CornerPoint`).*

#### 3.4.3 Редукція кутової точки

Редукція кутової точки (`CornerPoint`) до кінцевої точки (`EndPoint`) виконується за тими ж правилами, що і для точки перетину (`IntersectionPoint`).

## 4. Енергетичний ландшафт і градієнтний спуск (⚠️ WIP)

### 4.1 Структура зміни параметрів, сегментація

#### 4.1.1 Енергетичні рівні параметрів

При навчанні (формуванні концепту) система узагальнює значення параметрів і переходить на інші енергетичні рівні, реалізуючи градієнтний спуск по енергетичному ландшафту для пошуку параметрів, які належатимуть до всіх тренувальних даних концепту.

Система застосовує різні стратегії енергетичної оптимізації залежно від типу даних параметра:

#### 4.1.2 Стратегії енергетичної оптимізації за типами даних

##### 4.1.2.1 Абсолютні значення (числові параметри)

**Двурівнева енергетична структура:**
- **Вищий рівень енергії**: абсолютне значення величини параметра
- **Нижчий рівень енергії**: діапазон значень для всіх тренувальних даних концепту

*Застосовується для:* координати (`x`, `y`), довжина відрізка (`length`), відстань (`relative_distance`), кути (`angle`, `angle_with_origin`)

##### 4.1.2.2 Списки значень (множинні параметри)

**Стратегія перетину множин:**
- **Вищий рівень енергії**: конкретне значення зі списку
- **Нижчий рівень енергії**: перетин множин усіх тренувальних даних

*Застосовується для:* сегменти (`segments`), які можуть містити декілька значень ["TOP", "BOTTOM", "LEFT", "RIGHT"]

##### 4.1.2.3 Строкові значення (категоріальні параметри)

**Стратегія бінарної відповідності:**
- **Енергія = 1**: повна відповідність строкового значення у всіх тренувальних даних
- **Енергія = 0**: відсутність повної відповідності → параметр видаляється зі структурного елементу

*Застосовується для:* напрямки (`horizontal_direction`, `vertical_direction`), квадранти (`quadrant`)

#### 4.1.3 Приклади енергетичної оптимізації

##### 4.1.3.1 Абсолютні значення

**Приклад з кутом:**
- Семпл 1: кут 90°, Семпл 2: кут 85°, Семпл 3: кут 95°
- **Результат**: діапазон [85°-95°], центр 90°

<img src="docs/images/range_energy_levels.png" alt="Приклад енергетичного рівня" style="background-color: #f0f0f0; padding: 10px; border-radius: 10px; border: 1px solid #ccc; width: 100%; max-width: 600px;" />

##### 4.1.3.2 Списки значень

**Приклад з сегментами:**
- Семпл 1: ["TOP", "RIGHT"], Семпл 2: ["TOP", "LEFT"]
- **Результат**: перетин = ["TOP"]

<img src="docs/images/list_energy_levels.png" alt="Приклад енергетичного рівня" style="background-color: #f0f0f0; padding: 10px; border-radius: 10px; border: 1px solid #ccc; width: 100%; max-width: 600px;" />

##### 4.1.3.3 Строкові значення

**Приклад з напрямком:**
- Семпл 1: "RIGHT", Семпл 2: "RIGHT", Семпл 3: "LEFT"
- **Результат**: відсутність повної відповідності → параметр видаляється (енергія = 0)

<img src="docs/images/string_energy_levels.png" alt="Приклад енергетичного рівня" style="background-color: #f0f0f0; padding: 10px; border-radius: 10px; border: 1px solid #ccc; width: 100%; max-width: 600px;" />

# 5. Етап формування концепту в процесі навчання

## 5.1 Вступ та Постановка Проблеми

Етап формування концепту представляє центральний компонент системи NaturalAGI, який відрізняється від традиційних підходів машинного навчання відсутністю градієнтного спуску та нейронних мереж. Замість цього система використовує структурний аналіз графів та ітеративне знаходження спільних підструктур для створення абстрактних представлень класів об'єктів.

**Фундаментальна проблема** полягає в необхідності навчитися розпізнавати абстрактні структурні шаблони з колекції графових представлень зображень, що належать до одного класу, при збереженні лише найбільш значущих топологічних та геометричних характеристик, спільних для всіх навчальних зразків.

**Концептуальна основа**: Формування концепту розглядається як **етап формування атрактору** у послідовності навчальних графів. Для набору графів зображень $\{G_1, G_2, \dots, G_n\}$, що представляють структурні шаблони одного класу об'єктів, мета полягає у побудові концептуального графу $C$, який зберігає суттєві структурні елементи, присутні у всіх навчальних зразках, при усуненні специфічних для зразків варіацій та шуму.

**Інкрементальний підхід**

$$
C_0 = G_1
$$

$$
C_{i+1}=\mathcal{A}(C_i, G_{i+1}),\quad i=1,2,\dots,n-1
$$

де $\mathcal{A}$ позначає процедуру **формування атрактору**, яка інтегрує новий граф у поточний концепт, зберігаючи тільки узгоджені та стійкі підструктури.

### 5.1.1 Енергетичний ландшафт концепту

Раніше ми розглядали поняття *енергетичного ландшафту* — багатовимірної поверхні, мінімальні точки якої відповідають стійким конфігураціям системи. Для відкритих систем визначається ландшафт спокою $E_{\mathrm{l\,rest}}$ із глобальним мінімумом, енергія якого позначається порогом $\mathrm{Tr}_1$. Аналогічно, у процесі формування концепту граф $C_i$ можна розглядати як поточну «точку» на енергетичному ландшафті класу; **процедура формування атрактору** поступово зміщує систему до глибшого мінімуму, де узгодженість між зразками максимальна.

У цьому контексті *структурна редукція* виконує роль зниження локальної енергії під час переходу від індивідуальних графів до узагальненого концепту, що відповідає руху по ландшафту до більш глобального мінімуму.

### 5.1.2 Пороги $\mathrm{Tr}_1,\;\mathrm{Tr}_2,\;\mathrm{Tr}_3$

* **$\mathrm{Tr}_1$ (поріг спокою).** Мінімальна енергія, до якої система прагне у відсутності зовнішнього впливу; у нашій задачі це «стабільний» концепт після обробки всіх зразків.
* **$\mathrm{Tr}_2$ (поріг активації).** Позначає додаткову енергію, необхідну для переходу системи зі стану спокою до активного навчання чи оновлення концепту; у енергетичному ландшафті в