Нейро-нечіткі системи (ANFIS): нечіткі правила, які навчаються з даних
Нечітка система Суґено як п’ятишарова мережа, гібридне навчання найменшими квадратами й градієнтом, навчання функції із зашумлених даних, вибір кількості правил і перенавчання, читабельність навчених правил і зв’язок із мережами RBF.
Серія Основи ШІ Частина 37 з 52
- Мапа штучного інтелекту: що є що і як усе це пов’язано
- Коротка історія штучного інтелекту: від Тюрінга до мовних моделей
- Дані, модель, тренування, інференс: основні поняття на одному прикладі
- Як читати математичний запис: символи, індекси, суми та квантори
- Множини й відношення: конструктор, з якого складаються означення в ШІ
- Функції й відображення: чому кожна модель у ШІ — це функція
- Логіка й доведення: правила, за якими міркують у ШІ
- Графи й дерева: структура, на якій тримаються пошук і нейронні мережі
- Лінійна алгебра для машинного навчання: вектори, матриці й чому ШІ передусім множить
- Похідні, градієнт і правило ланцюжка: як модель дізнається, у якому напрямку вчитися
- Градієнтний спуск: як навчається модель
- Що таке ймовірність: від кидка кубика до аксіом Колмогорова
- Умовна ймовірність і теорема Баєса: як змінити оцінку, коли дізнаєтеся щось нове
- Випадкова величина і функція розподілу: одна функція, яка каже про розподіл усе
- Функція щільності та функція маси ймовірності: чому неперервна величина має в точці ймовірність нуль
- Математичне сподівання, дисперсія і коваріація: де лежить розподіл, наскільки він широкий і що з чим пов’язано
- Огляд розподілів ймовірностей: Бернуллі, біноміальний, Пуассона, рівномірний, нормальний і експоненційний
- Закон великих чисел і центральна гранична теорема: чому середні поводяться так передбачувано
- Статистика й оцінювання параметрів: максимальна правдоподібність, MAP і довірчі інтервали
- Теорія інформації: ентропія, перехресна ентропія і KL-дивергенція — звідки беруться функції втрат
- Пошук у просторі станів: BFS, DFS, UCS і A* з анімаціями
- Ігри та суперник: мінімакс, альфа-бета відсікання і Monte Carlo tree search
- Задоволення обмежень: бектрекінг, поширення обмежень і AC-3 на судоку та мапі чеських країв
- Логіка й системи, засновані на знаннях: пряме і зворотне виведення, резолюція та експертні системи
- Планування: STRIPS, світ кубиків, евристики з релаксації та планування в AI-агентах
- Локальний пошук та імітація відпалу: комівояжер через обласні центри Чехії
- Генетичні алгоритми: популяція, схрещування, мутація і добір на рюкзаку для походу
- Еволюційні стратегії і генетичне програмування: від правила однієї п’ятої до закону Кеплера
- Оптимізація мурашиною колонією: як феромоновий слід знаходить короткий шлях
- Оптимізація роєм частинок: інерція, власний досвід і досвід рою
- Нейроеволюція: еволюція ваг і форми нейронних мереж та алгоритм NEAT
- Нечіткі множини й функції належності: як записати «трохи тепло»
- Нечітка логіка та ймовірність: чому «трохи тепло» не означає «імовірно тепло»
- Нечітка логіка: t-норми, імплікації та правила ЯКЩО–ТО
- Нечітке керування: Мамдані та Суґено від вентилятора до маятника на візку
- Нечітка кластеризація: алгоритм fuzzy c-means і точки між кластерами
- Нейро-нечіткі системи (ANFIS): нечіткі правила, які навчаються з даних
- Марковські ланцюги: матриця переходів, стаціонарний розподіл і PageRank
- Приховані марковські моделі: алгоритм Вітербі й нечесне казино
- Байєсівські мережі: чому трава мокра і що з цього випливає для дощувача
- Фільтр Калмана: як за неточними вимірюваннями оцінити, де авто і як швидко воно їде
- Види машинного навчання: з учителем, без учителя, з частковим залученням учителя та інші
- Промпти, контекст і RAG: як дати моделі правильну інформацію
- Варіаційні автокодувальники (VAE): нові зображення з неперервного латентного простору
- Генеративні змагальні мережі (GAN): фальшувальник проти детектива
- Дифузійні моделі: як із чистого шуму постає зображення
- Марковські процеси ухвалення рішень: стани, дії, винагороди й рівняння Беллмана
- Q-навчання і DQN: як навчитися цінності дій — від таблиці до нейронної мережі
- Policy gradient і PPO: навчання безпосередньо політики
- Як працює ШІ-агент: мовна модель у циклі з інструментами
- Програмування з AI-агентами: завдання, тести й перевірка
- Оцінювання і безпека систем ШІ: як вимірювати і як стежити
Повна програма серії Готово: 52 з 83 тем
- Як нечітку систему Суґено записати у вигляді мережі і які з її параметрів навчаються.
- Чому гібридне навчання (найменші квадрати плюс градієнт) випереджає чистий градієнтний спуск.
- Чому з додаванням правил зростає ризик перенавчання і що залишається від читабельності навчених правил.
Що варто знати заздалегідь: Нечітке керування: Мамдані та Суґено від вентилятора до маятника на візку, Градієнтний спуск: як навчається модель
Нечіткі регулятори з минулих частин мали одну слабину: правила й функції належності хтось мусив вигадати. Коли досвідчений оператор є, це перевага. Коли його немає — або коли система має відтворювати виміряні дані, — це проблема. Нейронні мережі мають протилежну вдачу: навчаться чого завгодно з даних, але того, чого вони навчилися, ніхто не прочитає. 1993 року Цзи-Шин Роджер Джанг поєднав обидва підходи в системі ANFIS (Adaptive Neuro-Fuzzy Inference System): нечітку систему Суґено, записану як мережа, параметри якої навчаються з даних. Цією частиною завершується модуль про нечітку логіку.
Продовжує частини Нечітке керування: Мамдані та Суґено і Градієнтний спуск.
1. Нечітка система як мережа
Візьмімо систему Суґено першого порядку з одним входом і чотирма правилами «ЯКЩО x є Ai, ТО y = pix + ri». Кожен крок її обчислення — це шар мережі:
Означення — ANFIS (Джанг, 1993)
- Належність: μi(x) = exp(−(x − ci)2 / 2σi2) — гауссова функція з центром ci і шириною σi.
- Сила правила: wi = добуток належностей умови (з одним входом лише μi(x)).
- Нормалізація: w̄i = wi / ∑j wj.
- Висновок: w̄i · (pix + ri).
- Сума: y = ∑i w̄i (pix + ri).
Параметри передумов — це ci, σi; параметри висновків — pi, ri.
Це точнісінько регулятор Суґено з минулої частини, тільки намальований як мережа. Кожне правило має свою «зону дії» (гауссів пагорб) і в ній лінійне передбачення. Вихід — зважене середнє передбачень залежно від того, наскільки вхід лежить у зоні того чи іншого правила. Уся система диференційовна, тож її можна навчати так само, як нейронну мережу.
y = ∑i wi / ∑j wj · (pix + ri)
- y
- вихід усієї системи для входу x — те, що ми порівнюємо з даними і чим вимірюємо похибку
- ∑i
- сума за всіма правилами — кожне робить свій внесок, жодне не «вибирається»; тому вихід гладкий і його можна диференціювати
- wi / ∑j wj
- нормалізована сила w̄i — ділення на суму гарантує, що ваги разом дають 1, тож вихід є зваженим середнім висновків і не залежить від того, наскільки високі пагорби
- pix + ri
- лінійний висновок правила — локальна пряма, яка описує функцію в зоні правила; пряма замість константи дає змогу з невеликою кількістю правил відстежувати й нахил
μi(x) = exp( − (x − ci)2 / 2σi2 )
- μi(x)
- ступінь належності з [0, 1] — наскільки x «близько ci»; експонента від’ємного числа завжди лежить між 0 і 1, а в центрі дорівнює рівно 1
- (x − ci)2
- квадрат відстані від центру — належність спадає в обидва боки однаково і гладка навіть у центрі (з модулем там був би гострий кут і похідна не існувала б)
- 2σi2
- ширина пагорба — відстань вимірюється в одиницях σi, тож на відстані σi від центру належність завжди дорівнює e−1/2 ≈ 0,61; навчаючи σi, ми змінюємо, як далеко правило «дістає»
Приклад — прямий прохід у точці x = 3
Візьмімо систему після нульової епохи навчання (див. нижче): центри c = 0, 2, 4, 6, усі ширини σ = 1 і висновки з методу найменших квадратів. Для x = 3 відстані від центрів дорівнюють 3, 1, 1, 3, отже
- належність і сила: w = (e−4,5; e−0,5; e−0,5; e−4,5) = (0,0111; 0,6065; 0,6065; 0,0111);
- нормалізація: сума дорівнює 1,2353, тож w̄ = (0,0090; 0,4910; 0,4910; 0,0090);
- висновки: прямі pix + ri з навченими коефіцієнтами (9,54x + 0,01; 9,34x − 17,38; 8,56x − 36,61; 2,60x − 18,90) мають у точці 3 значення (28,63; 10,66; −10,94; −11,09) — коефіцієнти округлені, значення обчислені з точних;
- сума: y = 0,2574 + 5,2329 − 5,3698 − 0,0997 ≈ 0,021.
Справжнє значення — sin(3) = sin(32/3) ≈ 0,141. Зверніть увагу, що вихід утворюється відніманням двох великих, майже однакових внесків — до цього ми повернемося, коли говоритимемо про читабельність.
2. Гібридне навчання
Ми хочемо мінімізувати середньоквадратичну похибку на навчальних даних. Можна було б зробити все градієнтним спуском. Але Джанг помітив, що вихід є лінійним за параметрами висновків.
Означення — середньоквадратична похибка і RMSE
Для даних (x1, y1), …, (xN, yN) і виходу моделі ŷ(x) середньоквадратична похибка дорівнює E = (1/N) ∑k (ŷ(xk) − yk)2, а RMSE (root mean square error) — це її квадратний корінь √E. Мінімізувати одну чи другу — те саме; проте наводять RMSE, бо вона має одиниці виходу. Усі похибки в цій частині — RMSE.
RMSE = √( (1/N) ∑k (ŷ(xk) − yk)2 )
- ŷ(xk)
- передбачення системи в k-й точці — єдине місце, через яке в похибку входять параметри c, σ, p, r
- − yk, потім у квадрат
- відхилення від виміряного значення, піднесене до квадрата — знак не відіграє ролі, великі похибки важать більше за малі, а квадрат можна гладко диференціювати (і для висновків він дає точний розв’язок методом найменших квадратів)
- (1/N) ∑k
- середнє за точками — тоді похибки на 40 навчальних і на 121 тестовій точці можна порівнювати
Алгоритм — гібридне навчання
За фіксованих передумов y(x) = ∑i (w̄ix) pi + w̄i ri — лінійна функція параметрів висновків. Тому в кожній епосі:
- вперед: обчисли w̄i для всіх даних і знайди параметри висновків точно методом найменших квадратів;
- назад: зі знайденими так висновками зроби крок градієнтного спуску для центрів ci і ширин σi.
Там, де задачу можна розв’язати точно, розв’язуйте її точно; градієнт залиште лише для того, що точно розв’язати не вдається. Лінійна регресія з частини про статистику знаходить найкращу пряму одним обчисленням — а тут вона знаходить одразу найкращі лінійні висновки всіх правил. Градієнт потім лише зсуває й розширює пагорби функцій належності.
Означення — найменші квадрати для висновків
За фіксованих ci, σi величини w̄i(xk) — просто числа. Упорядкуймо параметри висновків у вектор θ = (p1, r1, …, pn, rn) і для кожної точки складімо рядок
ak = (w̄1xk, w̄1, …, w̄nxk, w̄n), тож ŷ(xk) = ak · θ.
Рядки утворюють матрицю A (N × 2n), а похибка дорівнює ‖Aθ − y‖2/N. Її мінімум задовольняє нормальні рівняння ATA θ = ATy — систему з 2n лінійних рівнянь. Для 4 правил і 40 точок A — матриця 40 × 8, а система має 8 рівнянь. Наше обчислення додає до діагоналі ATA ще 10−6 (малий гребеневий член), щоб система була розв’язною навіть за майже залежних стовпців, і розв’язує її методом Гаусса.
Теорема — градієнт за центром і шириною
Позначмо gi = pix + ri і W = ∑j wj. З ŷ = ∑j wjgj / W похідна частки дає ∂ŷ/∂wi = (gi − ŷ)/W. Похідні гауссового пагорба: ∂wi/∂ci = wi(x − ci)/σi2 і ∂wi/∂σi = wi(x − ci)2/σi3. За ланцюговим правилом
∂E/∂ci = (2/N) ∑k (ŷ − yk) (gi − ŷ) w̄i (xk − ci)/σi2,
∂E/∂σi = (2/N) ∑k (ŷ − yk) (gi − ŷ) w̄i (xk − ci)2/σi3,
де ŷ, gi і w̄i беруться в точці xk.
∂E/∂ci = (2/N) ∑k (ŷ − yk) (gi − ŷ) w̄i (xk − ci)/σi2
- ∂E/∂ci
- як зміниться похибка, якщо зсунути центр i-го пагорба — крок навчання йде проти цього знака
- ŷ − yk
- похибка в точці — там, де система влучає, точка нічого не хоче і в градієнт не робить внеску
- gi − ŷ
- наскільки висновок правила відрізняється від загального виходу — додати правилу ваги означає потягти вихід до його висновку; коли висновок каже те саме, що й ціле, зсувати пагорб немає сенсу
- w̄i
- частка правила у виході — точки далеко від пагорба, де правило майже мовчить, на його центр майже не впливають
- (xk − ci)/σi2
- напрямок зсуву — точка праворуч від центру тягне пагорб праворуч, ліворуч — ліворуч; у самому центрі пагорб плаский і зсув нічого не змінить
Усе навчання з прикладу нижче в псевдокоді (крок η = 0,1, 300 епох):
c = центри рівномірно на [0, 6] # для 4 правил 0, 2, 4, 6
σ = половина відстані між центрами # для 4 правил 1
for epocha in 0 … 300:
# вперед: шари 1–3, потім висновки точно найменшими квадратами
wn[k][i] = w̄_i(x_k) для всіх точок k і правил i
A = рядки (wn[k][1]·x_k, wn[k][1], …, wn[k][n]·x_k, wn[k][n])
p, r = розв’яжи (AᵀA + 10⁻⁶·I)·θ = Aᵀy
if epocha == 300: break
# назад: крок градієнта за формулами вище
gc, gσ = ∂E/∂c, ∂E/∂σ
c = c − η·gc
σ = max(0,05; σ − η·gσ) # пагорб не сміє зникнути
3. ANFIS навчається функції
Задача: з 40 зашумлених зразків (шум зі стандартним відхиленням 0,1) навчитися функції y = sin(x2/3) на інтервалі [0, 6]. Праворуч функція коливається дедалі швидше, тож чотири рівномірно розміщені правила не ідеальні. Похибку вимірюємо також на 121 точці без шуму поза навчальними даними:
Уже в нульовій епосі — лише з найменшими квадратами для висновків і рівномірними пагорбами — похибка на тесті становить 0,394, а на навчальних даних 0,198. Потім починають навчатися передумови. Після 100 епох похибка на тесті 0,202, а після 300 епох 0,173. На навчальних даних вона падає до 0,107 — нижче за рівень шуму в даних (0,114), розумно краще не вийде. Центри пагорбів при цьому зсунулися лише трохи; головна зміна — у ширинах: останнє правило праворуч, де функція коливається найшвидше, звузилося з 1 до 0,64.
Означення — рівень шуму в даних
Навчальні точки — це yk = f(xk) + εk, де f(x) = sin(x2/3), а εk — незалежні випадкові відхилення з нормального розподілу зі стандартним відхиленням 0,1. Рівень шуму — це RMSE, яку на навчальних даних мала б сама справжня функція: √((1/40) ∑k εk2) = 0,114. Він трохи більший за 0,1 лише випадково — у наших 40 випадково вибраних відхиленнях.
Модель, яка має на навчальних даних похибку меншу за рівень шуму (0,107 < 0,114), уже починає копіювати й випадкові відхилення. За такої малої різниці це ще не шкодить — похибка на тесті далі спадає, — але це перше попередження, до якого ми повернемося, коли говоритимемо про кількість правил.
Чистий градієнтний спуск для всіх параметрів починає з нульових висновків і навчається значно повільніше: після 300 епох його похибка на тесті 0,387, і навіть після 3 000 епох (0,188) він не наздоганяє гібридне навчання після 300. Більший крок навчання до того ж швидко веде до розбіжності. Розділити задачу на лінійну й нелінійну частини варто.
4. Скільки правил?
| Кількість правил | 2 | 3 | 4 | 6 | 8 | 12 |
|---|---|---|---|---|---|---|
| Похибка на навчальних даних | 0,510 | 0,181 | 0,107 | 0,098 | 0,089 | 0,085 |
| Похибка на тесті | 0,590 | 0,177 | 0,173 | 0,172 | 0,566 | 0,319 |
Із додаванням правил похибка на навчальних даних постійно спадає. Але на тесті вона від восьми правил різко зростає — система почала вчити шум: із 40 точками та 32 параметрами (8 правил × 4) вона має досить свободи, щоб між навчальними точками дико коливатися. Це перенавчання, те саме явище, що й у надто вигнутої поліноміальної регресії. Розумна кількість правил тут лежить між трьома й шістьма.
Приклад — скільки параметрів має ANFIS
З одним входом кожне правило має два параметри передумови (ci, σi) і два параметри висновку (pi, ri), разом 4n. На 40 навчальних точок:
- 4 правила: 16 параметрів, із них 8 лінійних — на кожен лінійний параметр припадає 5 точок;
- 8 правил: 32 параметри, із них 16 лінійних — 2,5 точки на лінійний параметр, і найменші квадрати мають досить свободи, щоб пройти навіть через шум;
- 12 правил: 48 параметрів — більше, ніж точок. Найменші квадрати, щоправда, визначають «лише» 24 висновки із 40 рівнянь, але ще 24 параметри передумов можуть пересунути й звузити пагорби саме там, де шум якраз відхилився.
Корисне емпіричне правило: точок має бути принаймні в кілька разів більше, ніж параметрів, які з них оцінюються.
5. Що можна прочитати
Обіцянка нейро-нечітких систем полягає в тому, що навчена модель залишиться читабельною. Передумови читабельні: чотири правила «близько 0», «близько 2,2», «близько 4» і «близько 6,2». А от висновки — ні. Правило «ЯКЩО x близько 2,2, ТО y = 10,06 x − 13,83» у своєму центрі передбачало б 8,25, хоча справжнє значення — 1,0. Окремі правила взаємно врівноважуються — пагорби сильно перекриваються, і вихід має сенс лише як ціле.
Приклад — як правила врівноважуються в точці x = 2,195
Навчений центр другого правила — c2 = 2,195. Там друге правило має повну належність (w2 = 1), але сусіди — не нульову: w = (0,140; 1; 0,331; 0,000), сума 1,471, отже
| Правило | 1 | 2 | 3 | 4 |
|---|---|---|---|---|
| вага w̄i | 0,095 | 0,680 | 0,225 | 0,000 |
| висновок gi | 12,64 | 8,25 | −25,64 | −31,68 |
| внесок w̄igi | 1,203 | 5,609 | −5,769 | 0,000 |
Сума y = 1,203 + 5,609 − 5,769 = 1,043, справжнє значення sin(2,1952/3) = 0,999. Вихід добрий, але утворюється як різниця двох внесків близько ±5,7: друге правило «перестрілює» вгору, а третє тягне його вниз. Жодне з правил саме по собі не каже, чому дорівнює y.
Отже, інтерпретованість не дається задарма. Зберегти її допомагають обмеження: менше перекриття функцій належності, регуляризація висновків або Суґено нульового порядку з константними висновками. Платити за це доводиться точністю. Це той самий баланс, що й усюди в машинному навчанні, — між тим, що модель уміє, і тим, що ми вміємо про неї сказати.
6. ANFIS і нейронні мережі
- Спорідненість із мережами RBF. Джанг і Сунь 1993 року показали, що мережі з радіальними базисними функціями та нечіткі системи Суґено нульового порядку за м’яких умов — одне й те саме, лише по-різному витлумачене.
- Прокляття розмірності. З n входами і k термами на вхід сітка правил має kn правил — для 10 входів і 3 термів понад 59 тисяч. Тому ANFIS використовують для невеликої кількості входів або з правилами, вибраними кластеризацією (наприклад, fuzzy c-means з минулої частини).
- Застосування. Прогнозування часових рядів (класичним тестом є хаотичний ряд Макі–Гласса), моделювання і керування системами, для яких ми маємо виміряні дані, але мало теорії.
- Сьогодні. Глибокі мережі давно перебрали задачі з багатьма входами. Але ідея «навчуване, але читабельне» живе далі в пояснюваному ШІ — і нечіткі шари часом додають навіть до глибоких мереж там, де вихід треба пояснити правилами.
Означення — мережа з радіальними базисними функціями (RBF)
Нормалізована мережа RBF з n прихованими нейронами обчислює
y(x) = ∑i vi φ(‖x − ci‖) / ∑j φ(‖x − cj‖),
де φ — спадна функція відстані від центру ci (зазвичай гауссова), а vi — вихідні ваги. Система Суґено нульового порядку з гауссовими належностями і добутком як «і водночас» — це y = ∑i w̄i ri — після підстановки wi = φ(‖x − ci‖) і vi = ri точно та сама формула. Спрощено кажучи: правило = нейрон, функція належності = базисна функція, висновок = вихідна вага. (Джанг і Сунь, 1993, перелічують умови точно: однакова кількість правил і нейронів, константні висновки, гауссові належності з однаковою шириною в межах одного правила, добуток як «і водночас» та однаковий спосіб складання виходу — зважене середнє або зважена сума.)
Приклад — прокляття розмірності в числах
З n входами і k термами на кожен вхід повна сітка має kn правил. Висновок Суґено першого порядку y = p1x1 + … + pnxn + r має n + 1 параметрів, тож лінійних параметрів — kn(n + 1). Параметрів передумов лише 2kn — кожен вхід має свої k пагорбів, спільні для всіх правил.
Для n = 10 і k = 3: 310 = 59 049 правил, 59 049 · 11 = 649 539 параметрів висновків і 2 · 3 · 10 = 60 параметрів передумов. Найменші квадрати розв’язували б систему з 649 539 невідомими — а даних знадобилося б іще набагато більше.
7. Підсумок
- ANFIS — це нечітка система Суґено, записана як п’ятишарова мережа: належність, сила, нормалізація, висновок, сума.
- Гібридне навчання знаходить лінійні висновки точно найменшими квадратами, а центри й ширини функцій належності доналаштовує градієнтом.
- На функції sin(x2/3) навчання передумов знизило похибку на тесті з 0,394 до 0,173; чистому градієнту знадобилося вдесятеро більше епох для гіршого результату.
- Забагато правил веде до перенавчання — від восьми правил похибка на тесті різко зростає.
- Передумови залишаються читабельними, а от висновки взаємно врівноважуються; за інтерпретованістю треба стежити.
Цією частиною завершується модуль про нечітку логіку: від слова «тепло» через логіку й регулятори аж до системи, яка сама навчається правил. Хочете спробувати це самі? Доручіть ШІ-агенту навчити ANFIS передбачати споживання електроенергії за температурою з відкритих даних — а потім подивіться, які правила мають сенс.
Маєте іншу думку? Напишіть на support@coden-app.com.