Функції й відображення: чому кожна модель у ШІ — це функція
Область визначення, образ, ін’єктивність, композиція, обернена функція, функції кількох змінних і опуклість — з графіками сигмоїди, ReLU й ландшафту похибки.
Серія Основи ШІ Частина 6 з 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 тем
- Що таке функція, область визначення й образ — і які функції ви найчастіше зустрінете в ШІ.
- Що означає ін’єктивна, сюр’єктивна й бієктивна, чому нейронна мережа — це композиція функцій і коли існує обернена функція.
- Чому функція втрат — це ландшафт і чому опуклість важлива, коли шукаєте його дно.
Що варто знати заздалегідь: Як читати математичний запис: символи, індекси, суми та квантори, Множини й відношення: конструктор, з якого складаються означення в ШІ
Кожна модель у штучному інтелекті — це функція. Класифікатор спаму бере лист і повертає «спам» або «не спам», мовна модель бере текст і повертає ймовірності наступного слова, нейронна мережа — це функція, складена з тисяч менших функцій. А навчання — це не що інше, як пошук правильної функції.
Попередня частина закінчилася означенням функції як особливого відношення. Тут ми на нього спираємося: як функції виглядають, які мають властивості, як їх компонують і чому це важливо для ШІ.
1. Що таке функція
Означення — функція (відображення)
Функція f : X → Y ставить у відповідність кожному елементу x ∈ X рівно один елемент f(x) ∈ Y. Слово відображення означає те саме.
X — це область визначення, Y — кодомен (цільова множина). Образ функції — це множина значень, яких вона справді набуває: f(X) = {f(x) : x ∈ X} ⊆ Y.
Графік функції — це множина пар {(x, f(x)) : x ∈ X} ⊆ X × Y.
Функція — це автомат: ви кидаєте вхід, і випадає рівно один вихід — щоразу той самий. Область визначення каже, що можна кидати в автомат, кодомен — що з нього може випасти. Образ — це те, що з нього справді випадає.
Різницю між кодоменом і образом видно на сигмоїді σ : ℝ → ℝ: вона може повертати будь-яке дійсне число, але насправді повертає лише числа між 0 і 1. Тому з неї можна читати ймовірність.
2. Функції, які ви зустрінете в ШІ
Функцію однієї змінної найкраще зрозуміти з її графіка. Ці функції в штучному інтелекті трапляються знову і знову — як моделі, як функції активації нейронних мереж або як функції втрат:
- Лінійна функція — найпростіша модель; лінійна регресія — це саме вона.
- Квадратична функція — основа середньоквадратичної похибки: штраф росте з квадратом відхилення.
- Експонента й логарифм взаємно обернені; логарифм перетворює множення на додавання, і тому ви знайдете його в кожній функції втрат, що спирається на ймовірність.
- Сигмоїда й tanh «стискають» будь-яке число в інтервал (0, 1), відповідно (−1, 1).
- ReLU пропускає додатні числа, а від’ємні обнуляє. Вона така проста, що довго не вірили, що вона працюватиме, — сьогодні це найпоширеніша функція активації.
3. Ін’єктивні, сюр’єктивні й бієктивні
Означення — ін’єкція, сюр’єкція і бієкція
f : X → Y — ін’єктивна, коли різні входи дають різні виходи: ∀x1, x2 : f(x1) = f(x2) ⇒ x1 = x2.
f — сюр’єктивна (відображення «на»), коли влучає в кожен елемент Y: ∀y ∈ Y ∃x ∈ X : f(x) = y, тобто f(X) = Y.
f — бієктивна (взаємно однозначна), коли вона водночас ін’єктивна й сюр’єктивна.
Ін’єктивна: жодні два входи не мають спільного виходу — з виходу можна впізнати, звідки він прийшов. Сюр’єктивна: ніщо в цільовій множині не лишається покинутим. Бієктивна: кожному входу відповідає рівно один вихід і навпаки — як у гардеробі, де кожне пальто має свій номерок.
У ШІ майже кожна модель неін’єктивна: класифікатор відправляє тисячі різних фото котів до одного класу «кіт». Інформація про те, яке саме це було фото, при цьому губиться — і це нормально, саме цього ми від класифікатора й хочемо. Натомість моделі стиснення (автокодувальники) намагаються бути «майже ін’єктивними», щоб зі стиснутої форми можна було знову відновити вхід.
4. Композиція функцій
Означення — композиція функцій
Для f : X → Y і g : Y → Z композиція g ∘ f : X → Z визначається як (g ∘ f)(x) = g(f(x)).
Композиція асоціативна, h ∘ (g ∘ f) = (h ∘ g) ∘ f, але загалом не комутативна: g ∘ f ≠ f ∘ g.
Композиція — це конвеєр: вихід однієї машини йде просто в наступну. Порядок має значення — спершу одягнутися, а потім помитися закінчиться інакше, ніж навпаки.
Візьмімо f(x) = 2x + 1 і g(x) = x2:
(g ∘ f)(3) = g(f(3)) = g(7) = 49
(f ∘ g)(3) = f(g(3)) = f(9) = 19
Саме так побудована нейронна мережа. Кожен шар — це функція: лінійний крок, за яким іде функція активації, — а вся мережа є їхньою композицією: f = f3 ∘ f2 ∘ f1. «Глибока» мережа — це просто довга композиція. А коли в наступних частинах ми вчитимемося диференціювати, ланцюгове правило казатиме, як диференціювати саме композиції функцій.
5. Обернена функція
Означення — обернена функція
Функція f−1 : Y → X є оберненою до f : X → Y, коли f−1(f(x)) = x для всіх x ∈ X і f(f−1(y)) = y для всіх y ∈ Y.
Теорема. Обернена функція існує тоді й лише тоді, коли f бієктивна.
Обернена функція робить крок назад: з виходу дізнається вхід. Це можливо лише тоді, коли жодні два входи не ведуть до того самого виходу (інакше було б незрозуміло, куди повертатися) і коли кожен вихід справді кудись веде.
Експонента й логарифм — пара обернених функцій: ln(ex) = x. Оберненою до сигмоїди є функція логіт, logit(p) = ln(p / (1 − p)), — вона з імовірності знову робить будь-яке дійсне число. Тому виходи мережі перед сигмоїдою або softmax називають «логітами».
6. Функції кількох змінних
Означення — функція кількох змінних
Функція f : ℝn → ℝ ставить у відповідність вектору (x1, …, xn) одне число; функція f : ℝn → ℝm ставить у відповідність вектору вектор (векторна функція).
Більшість справжніх функцій бере кілька входів одночасно: ціна квартири залежить від площі, розташування й віку будинку. Шар нейронної мережі бере цілий вектор і повертає інший вектор.
Функцію двох змінних можна намалювати як карту: кожну точку (x, y) зафарбуємо відповідно до значення f(x, y). Ось функція Гіммельблау, класичний тест для алгоритмів оптимізації. Темні місця — долини з малим значенням, білі точки — чотири мінімуми, у яких функція дорівнює нулю:
Саме так уявіть собі функцію втрат моделі: вхід — її параметри, вихід — похибка. Тренування — це пошук найнижчої точки ландшафту, тільки замість двох вимірів ландшафт справжньої моделі має їх мільйони.
7. Монотонність і опуклість
Означення — зростаюча й опукла функція
f — зростаюча, коли x1 < x2 ⇒ f(x1) < f(x2). Зростаюча функція завжди ін’єктивна.
f — опукла, коли для всіх x1, x2 і t ∈ [0, 1] виконується f(tx1 + (1 − t)x2) ≤ t f(x1) + (1 − t) f(x2).
Теорема. Кожен локальний мінімум опуклої функції є водночас глобальним.
Опукла функція має форму миски: відрізок між двома точками графіка завжди лежить над графіком. У мисці лише одне дно — хто весь час іде вниз, той його знайде. У неопуклої функції можна опинитися в меншій ямі й так і не дізнатися про глибшу поруч.
опукла: x², єдиний мінімум
неопукла: x⁴ − 3x² + x
Неопукла функція x4 − 3x2 + x має два мінімуми: глобальний при x ≈ −1,30 зі значенням ≈ −3,51 і локальний при x ≈ 1,13 зі значенням ≈ −1,07. Хто почне шукати праворуч і весь час іде вниз, опиниться в гіршому. Функції втрат лінійної й логістичної регресії опуклі — тому їхнє тренування надійно знаходить найкращий розв’язок. Функції втрат нейронних мереж не опуклі, і про те, як із цим жити, буде частина про градієнтний спуск.
8. Функції у штучному інтелекті
Тепер усе машинне навчання можна висловити мовою функцій:
- Модель — це функція fθ : X → Y з параметрами θ — ціле сімейство функцій, по одній для кожного вибору параметрів.
- Функція втрат L : Y × Y → ℝ каже, скільки коштує відповідь ŷ, коли правильна відповідь y.
- Навчання — це вибір однієї функції із сімейства: argmin за θ середніх втрат — функції параметрів, яку ми щойно малювали як ландшафт.
- Функції активації (сигмоїда, tanh, ReLU) роблять із лінійних шарів нелінійну мережу; без них композиція лінійних функцій знову була б лише лінійною функцією.
9. Підсумок
- Функція ставить у відповідність кожному входу рівно один вихід; образ — це те, куди вона справді влучає.
- Ін’єктивна функція не плутає два входи, сюр’єктивна покриває всю ціль, бієктивна має обернену.
- Композиція функцій — це конвеєр, а нейронна мережа — композиція шарів.
- Функція втрат — це ландшафт над простором параметрів; опуклий ландшафт має єдине дно, неопуклий може мати їх кілька.
Маєте іншу думку? Напишіть на support@coden-app.com.