Вступ до штучного інтелекту та машинного навчання
Вступ до штучного інтелекту та машинного навчання
Розмова, якої не було
Уявіть: ви відкриваєте застосунок для перегляду фільмів. Він пропонує вам нову кінокартину — і ви розумієте, що вона ідеально вам підходить. Хтось ніби знає ваші смаки краще, ніж деякі друзі.
Або: ви фотографуєте текст на іноземній мові, а телефон миттєво його перекладає прямо на екрані. Або: лікарська система аналізує знімок і виявляє пухлину розміром в кілька міліметрів, яку людське oko могло б пропустити.
За всіма цими речами стоїть одна ідея — машинне навчання. І ця ідея набагато простіша, ніж здається на перший погляд.
У цьому курсі ми побудуємо все з нуля: від розуміння того, що таке «навчання» взагалі, до власних програм, які розпізнають зображення, аналізують текст та спілкуються зі штучним інтелектом через API.
Але починати потрібно з початку. З питання: а що взагалі відбувається, коли ми кажемо, що комп'ютер «навчився»?
Коротка історія: від ідеї до ChatGPT
Перш ніж занурюватися в деталі, корисно побачити, звідки все це взялося. Штучний інтелект — не новинка 2022 року. Ідеї, на яких він базується, зароджувалися більше 70 років тому.
Аналогія: розвиток AI можна порівняти з освоєнням космосу. Були періоди ейфорії (перші запуски ракет), тривалі «зими» (скорочення програм через відсутність результатів) і справжні прориви, які змінювали все (висадка на Місяць). Так само і в AI — за хвилями ентузіазму йшли «зими», а потім раптово — революція.
| Рік | Подія | Чому важливо |
|---|---|---|
| 1950 | Алан Тюрінг публікує «Чи може машина думати?» та описує Тест Тюрінга | Перша формалізація поняття «інтелект машини» |
| 1956 | Дартмутська конференція — Джон Маккарті вводить термін «Artificial Intelligence» | Народження AI як наукової галузі |
| 1957 | Перцептрон Розенблатта — перша штучна нейронна мережа | Перша спроба змоделювати нейрон мозку математично |
| 1966–1974 | Перша «зима AI» — розчарування, скорочення фінансування | Ранні обіцянки не справдилися: задачі виявилися набагато складнішими |
| 1980-ті | Бум експертних систем — AI кодує знання людей-експертів у правила | Повернення інтересу та інвестицій в AI |
| 1987–1993 | Друга «зима AI» — експертні системи занадто дорогі та крихкі | Знову розчарування та скорочення фінансування |
| 1997 | Deep Blue (IBM) перемагає чемпіона світу з шахів Гаррі Каспарова | Перша гучна демонстрація: AI перевершує людину в конкретній задачі |
| 2012 | AlexNet перемагає у змаганні ImageNet з величезним відривом | Революція глибокого навчання — починається сучасна ера AI |
| 2016 | AlphaGo (DeepMind) перемагає чемпіона світу з го Лі Седоля | Го вважалося «недосяжним» для AI — виявилося, можливим |
| 2017 | Стаття «Attention Is All You Need» — архітектура Transformer | Фундамент для всіх сучасних LLM: GPT, BERT, LLaMA |
| 2022 | ChatGPT — LLM стають масовим продуктом | AI у повсякденному житті мільярдів людей |
Три поняття, які часто плутають
Перш ніж рухатися далі, потрібно розібратися з термінологією. Якщо ви читали новини про технології, то напевно зустрічали три терміни, які часто використовують як синоніми, хоча це — зовсім різні речі:
- AI (Artificial Intelligence, Штучний інтелект)
- ML (Machine Learning, Машинне навчання)
- Data Science (Наука про дані)
Ці три поняття пов'язані, але не замінюють одне одного. Щоб зрозуміти їх співвідношення, використаємо просту аналогію.
Аналогія: місто, район та лабораторія
Уявіть велике місто під назвою «Штучний інтелект». Це місто — загальна ідея: створити комп'ютерні системи, які поводяться розумно, вирішують складні задачі, імітують людське мислення.
У цьому місті є багато районів. Один з найбільших і найпопулярніших — район «Машинне навчання». Це конкретний підхід до побудови AI: замість того, щоб вручну прописувати правила («якщо є вуха та хвіст — це кіт»), ми показуємо комп'ютеру тисячі прикладів і він сам виводить правила.
А поруч з цим містом є велика дослідницька лабораторія — «Data Science». Вона частково знаходиться в місті AI, але також існує незалежно. Data Science займається збором, аналізом та інтерпретацією даних — іноді використовуючи ML, а іноді — просто класичну статистику.
Що таке AI
Штучний інтелект (AI) — це широка галузь комп'ютерних наук, що займається створенням систем, здатних виконувати задачі, які зазвичай вимагають людського інтелекту.
Що це за задачі? Розпізнавання мови та зображень, переклад, прийняття рішень, генерація тексту та зображень, гра у складні ігри (шахи, го), керування автомобілем.
Важливо: AI — це не обов'язково «робот, що думає як людина». Це просто програма, яка виконує розумну задачу. Фільтр спаму у вашій пошті — теж AI.
Вузький AI (Narrow AI)
Загальний AI (AGI)
Що таке Machine Learning
Машинне навчання (ML) — це підхід до побудови AI, при якому система навчається на даних, а не програмується вручну через явні правила.
Порівняйте два підходи:
Класичне програмування:
Правило 1: якщо в листі є слово "виграш" → спам
Правило 2: якщо в листі є "безкоштовно" → спам
Правило 3: якщо відправник невідомий → можливо, спам
... (тисячі правил, і все одно щось пропустимо)
Machine Learning:
Покажи системі 100 000 листів із мітками "спам" / "не спам"
→ Система сама виведе правила
→ Нові листи класифікуються автоматично
Аналогія: уявіть, що ви вчите дитину розпізнавати котів. Перший підхід — написати інструкцію: «кіт має чотири лапи, вуха, хвіст, мурчить...». Але що, якщо кіт сфотографований незвично? Що якщо вуха не видно? Другий підхід — просто показати дитині тисячу фотографій котів і не-котів, сказавши «ось кіт» або «це не кіт». Через деякий час дитина навчиться розпізнавати котів навіть на незвичних фото. Саме так працює ML.
Що таке Data Science
Data Science (Наука про дані) — це міждисциплінарна галузь, що поєднує статистику, програмування та доменні знання для витягування цінної інформації з даних.
Data Scientist — це людина, яка:
- Збирає та очищує дані
- Аналізує дані, шукає закономірності та аномалії
- Будує моделі (часто з використанням ML)
- Інтерпретує результати та переводить їх у бізнес-рішення
- Презентує висновки у зрозумілому вигляді
Аналогія: якщо ML — це кухонний комбайн, то Data Scientist — це шеф-кухар. Шеф знає, коли і який інструмент використовувати, але головне — він знає, що хоче приготувати і як це має смакувати в кінці.
Чим Data Science відрізняється від ML?
ML — це технічний метод (алгоритм, що навчається). Data Science — це повний процес: від питання бізнесу до прийнятого рішення. ML може бути одним з інструментів у роботі Data Scientist, але Data Science включає набагато більше: статистику, візуалізацію, A/B-тестування, роботу з базами даних, комунікацію результатів.
Вкладеність понять: AI ⊃ ML ⊃ Deep Learning
Ці три поняття утворюють вкладену структуру — кожне наступне є підмножиною попереднього:
Аналогія: AI — це бібліотека цілком. ML — це великий розділ «Технічні науки» в цій бібліотеці. Deep Learning — це конкретна полиця в цьому розділі з книгами про нейронні мережі. Якщо ви берете книгу з тієї полиці — ви, звичайно, читаєте й з розділу, і з бібліотеки. Але бібліотека містить набагато більше, ніж одна полиця.
| Характеристика | AI | ML | Deep Learning |
|---|---|---|---|
| Обсяг поняття | Найширше | Підмножина AI | Підмножина ML |
| Підхід | Будь-який — від правил до нейромереж | Навчання з даних | Нейронні мережі з багатьма шарами |
| Потрібні дані? | Не обов'язково | Так | Дуже багато |
| Приклад | Шаховий движок на правилах | Рекомендації Netflix | Розпізнавання облич, GPT |
Як комп'ютер «навчається»: інтуїція
Перш ніж заглиблюватися в алгоритми, давайте побудуємо правильну інтуїцію. Що взагалі відбувається під час «навчання»?
Навчання — це пошук закономірностей
Уявіть: перед вами лежать 1000 фотографій будинків і поруч із кожною — ціна продажу. Ваше завдання — зрозуміти, від чого залежить ціна, щоб потім оцінювати нові будинки.
Ви починаєте розглядати фото і поступово помічаєте:
- Великі будинки → дорожчі
- Будинки в центрі міста → дорожчі
- Нові будинки → дорожчі
- З гаражем → трохи дорожчі
Ви не вигадали ці правила наперед — ви виявили їх у даних. Саме це робить ML-алгоритм: шукає приховані закономірності між вхідними даними (характеристиками будинку) та виходом (ціною).
Три компоненти машинного навчання
Будь-яка задача ML складається з трьох обов'язкових елементів:
Дані (Data)
Модель (Model)
Алгоритм навчання (Learning Algorithm)
Аналогія: уявіть студента, що готується до іспиту.
- Дані — підручники, задачники, лекції (приклади з правильними відповідями)
- Модель — знання студента (що він «тримає в голові»)
- Алгоритм навчання — процес навчання: розв'язати задачу → перевірити відповідь → зрозуміти помилку → запам'ятати правило
Що всередині «навчання»: спрощений погляд
Щоб не залишати «навчання» магічною чорною скринькою, розглянемо базовий механізм на простому прикладі.
Припустимо, ми хочемо навчити модель передбачати ціну квартири за її площею. У нас є дані:
| Площа (м²) | Ціна (тис. грн) |
|---|---|
| 30 | 1 200 |
| 50 | 1 900 |
| 70 | 2 800 |
| 100 | 3 900 |
Ми припускаємо, що зв'язок лінійний: Ціна = a × Площа + b. Наша модель — це просте рівняння з двома параметрами a та b.
Спочатку параметри випадкові: нехай a = 10, b = 0. Для квартири 50 м² модель передбачить 10 × 50 + 0 = 500. Реальна ціна — 1 900. Помилка величезна.
Алгоритм навчання дивиться на помилку і запитує: «а якби я збільшив a, помилка б зменшилася?» Так. Він трохи збільшує a. Потім знову перевіряє, знову коригує. Після тисячі таких маленьких кроків параметри a і b стають такими, що модель передбачає ціни досить точно для всіх прикладів.
Це і є навчання: ітеративний процес коригування параметрів моделі для зменшення помилки.
Типи задач у машинному навчанні
Перш ніж будувати будь-яку ML-систему, потрібно зрозуміти: а яку задачу ми взагалі вирішуємо? В ML існує кілька фундаментальних типів задач, і кожен потребує свого підходу.
Навчання з учителем (Supervised Learning)
Навчання з учителем — це коли для кожного прикладу в навчальних даних ми знаємо правильну відповідь (мітку).
Аналогія: учитель показує учневі задачі разом із відповідями: «ось задача, ось правильне рішення». Учень навчається на прикладах з відповідями — звідси й назва «навчання з учителем».
Два головних підтипи:
Регресія — передбачення числа (неперервного значення):
- Площа та район → Ціна квартири (число в гривнях)
- Температура, вологість → Врожай пшениці (тонн з гектара)
- Стаж та освіта → Зарплата (число)
Класифікація — передбачення категорії (одного з фіксованого набору варіантів):
- Зображення → «кіт» або «не кіт»
- Лист → «спам» або «не спам»
- Рентгенівський знімок → «норма», «пневмонія» або «інша патологія»
Більша частина практичних ML-задач — це саме навчання з учителем. Більша частина цього курсу теж буде присвячена йому.
Навчання без учителя (Unsupervised Learning)
Навчання без учителя — це коли правильних відповідей немає. Система сама шукає приховану структуру в даних.
Аналогія: уявіть, що вам дали 10 000 фотографій людей без будь-яких підписів і попросили «згрупувати схожих». Ви не знаєте наперед, скільки груп буде і за яким принципом їх ділити. Ви просто дивитеся і помічаєте: ці троє схожі між собою, ті п'ятеро — інша компанія. Це і є навчання без учителя.
Основні задачі:
- Кластеризація — поділ даних на групи схожих елементів. Приклад: поділ клієнтів на сегменти для маркетингу
- Зниження розмірності — спрощення даних зі збереженням ключової інформації. Корисно для візуалізації та прискорення навчання
Навчанню без учителя присвячений Модуль 7.
Навчання з підкріпленням (Reinforcement Learning)
Навчання з підкріпленням — це принципово інший підхід: система (агент) взаємодіє з середовищем, отримуючи нагороду за корисні дії та «штраф» за шкідливі. Мета — навчитися максимізувати нагороду.
Аналогія: так дресирують тварин. Собака сіла за командою → отримала ласощі (нагорода). Собака гавкнула недоречно → нагороди немає (штраф). Поступово собака навчається, яка поведінка приносить ласощі.
Саме так AlphaGo навчився грати в го краще за будь-яку людину: він зіграв мільйони партій проти себе, отримуючи «нагороду» за перемогу.
Reinforcement Learning — складна і окрема велика тема; у цьому курсі ми зосередимося на перших двох типах.
Ключові поняття: словник ML
Перш ніж рухатися до практики, потрібно ввести базовий словник. Ці терміни ви будете зустрічати в кожній наступній статті.
Дані та їх структура
У задачах з учителем дані зазвичай представлені у вигляді таблиці. Кожен рядок — це один об'єкт (спостереження, зразок, sample). Кожен стовпець — це ознака (feature, атрибут) цього об'єкта.
Приклад датасету будинків:
| ID | Площа (м²) | Поверх | Район | Вік (років) | Ціна (тис. грн) |
|---|---|---|---|---|---|
| 1 | 45 | 3 | Центр | 10 | 2 100 |
| 2 | 90 | 7 | Захід | 2 | 3 400 |
| 3 | 30 | 1 | Схід | 25 | 900 |
Стовпці «Площа», «Поверх», «Район», «Вік» — це ознаки (features). Виділений стовпець «Ціна» — це цільова змінна (target, label) — те, що ми хочемо передбачити.
Типи ознак
Не всі ознаки однакові. Подивіться ще раз на наш датасет: «Площа» — це число, «Район» — це слово. З числами можна виконувати арифметику, а зі словами — ні. Саме тому в ML розрізняють два фундаментальних типи ознак.
Числові ознаки (Numerical)
Мають кількісне значення — над ними можна виконувати арифметичні операції.
Приклади: площа (м²), поверх, вік будинку, ціна, температура, зарплата.
Підтипи:
- Неперервні (continuous) — можуть приймати будь-яке значення в діапазоні: площа = 47.5 м²
- Дискретні (discrete) — лише цілі значення: кількість кімнат = 2
Аналогія: числові ознаки — це як позначки на лінійці. Між 45 і 90 є нескінченно багато значень, і можна сказати «90 — це вдвічі більше, ніж 45».
Категоріальні ознаки (Categorical)
Мають якісне значення — фіксований набір категорій, між якими немає числового порядку (або він умовний).
Приклади: район (Центр / Захід / Схід), тип будинку (цегляний / панельний), стать, колір.
Підтипи:
- Номінальні — без порядку: район «Центр» не «більший» за «Схід»
- Порядкові (ordinal) — є природний порядок: «відмінно» > «добре» > «задовільно»
Аналогія: категоріальні ознаки — це як назви країн на карті. «Франція» не дорівнює якомусь числу, і не можна сказати «Франція в 3 рази більша за Іспанію» у сенсі назви.
| Термін | Опис |
|---|---|
| Dataset (датасет) | Набір даних — вся таблиця цілком |
| Sample / Instance (зразок) | Один рядок таблиці — один будинок |
| Feature (ознака) | Одна характеристика об'єкта — один стовпець |
| Target / Label (мітка) | Те, що передбачаємо — стовпець «Ціна» або «Клас» |
| Feature vector (вектор ознак) | Набір усіх ознак одного об'єкта — один рядок без target |
| X | Матриця ознак (усі стовпці крім target) |
| y | Вектор цільових значень (стовпець target) |
Модель та навчання
| Термін | Опис |
|---|---|
| Model (модель) | Математична структура, що описує зв'язок між X та y |
| Parameters (параметри) | Внутрішні числа моделі, що змінюються під час навчання (наприклад, a і b у лінійній регресії) |
| Training (тренування) | Процес навчання — підбір параметрів на навчальних даних |
| Prediction (передбачення) | Вихід моделі для нового прикладу |
| Loss / Error (втрати / помилка) | Числова міра того, наскільки передбачення моделі відрізняється від реальної відповіді |
Оцінка якості
| Термін | Опис |
|---|---|
| Training set | Навчальний набір — дані, на яких модель навчається |
| Test set | Тестовий набір — дані, на яких ми оцінюємо якість навченої моделі. Модель їх ніколи не бачила під час навчання |
| Overfitting (перенавчання) | Модель «заучила» тренувальні дані, але погано узагальнює на нові |
| Underfitting (недонавчання) | Модель занадто проста і не вловлює закономірності навіть у тренувальних даних |
Огляд екосистеми Python для ML
Python став стандартною мовою для машинного навчання та Data Science — і не випадково. Розглянемо чому і що саме ми будемо використовувати.
Чому Python
- Простий синтаксис — можна зосередитися на алгоритмах, а не на мові програмування
- Найбільша екосистема бібліотек для ML — NumPy, pandas, scikit-learn, PyTorch — всі головні інструменти написані для Python
- Інтерактивність — Jupyter Notebook дозволяє поєднувати код, результати та пояснення в одному документі
- Спільнота — майже будь-яке запитання з ML вже хтось ставив і отримав відповідь на Stack Overflow або GitHub
Бібліотеки, з якими ми будемо працювати
Нижче — «карта» нашого курсу. Кожна бібліотека вводиться поступово, тому зараз не потрібно розуміти всі деталі — просто отримайте загальне уявлення.
NumPy
pandas
matplotlib / seaborn
scikit-learn
.fit() / .predict(). Модулі 3 та 7.PyTorch
Hugging Face
Також ми познайомимося з XGBoost — надзвичайно ефективною бібліотекою для градієнтного бустингу, яка перемагає на більшості Kaggle-змагань із табличними даними (Модуль 3), та з OpenAI API і Ollama для роботи з великими мовними моделями (Модуль 8).
Практика
Рівень 1: Впізнати AI навколо себе
Наведіть 3 приклади задач машинного навчання з вашого повсякденного життя (застосунки, сервіси, пристрої). Для кожного прикладу визначте:
- Тип навчання — з учителем, без учителя або з підкріпленням?
- Вхідні ознаки — які дані подаються на вхід системи?
- Цільова ознака (target) — що система передбачає або вирішує?
Приклад відповіді:
| Система | Тип навчання | Вхідні ознаки | Target |
|---|---|---|---|
| Фільтр спаму в Gmail | З учителем | Текст листа, відправник, частота слів | «спам» / «не спам» |
| ? | ? | ? | ? |
| ? | ? | ? | ? |
| ? | ? | ? | ? |
Рівень 2: Спроектувати датасет
Уявіть, що вам потрібно побудувати систему, яка передбачає, чи сподобається людині фільм (1 = так, 0 = ні).
Створіть власний датасет із 5–7 рядків у вигляді таблиці. Ваш датасет має містити:
- Щонайменше 3 числові ознаки та 2 категоріальні ознаки
- Цільову змінну (target):
liked= 1 або 0 - Реалістичні дані (заповніть таблицю самостійно)
Після заповнення відповідайте на запитання:
- Які ознаки, на вашу думку, найсильніше впливають на те, чи сподобається фільм?
- Яку ознаку ви б назвали «шумовою» — тобто такою, що навряд чи допоможе моделі?
- Як би ви закодували категоріальну ознаку «жанр» (бойовик / драма / комедія) у числа?
Резюме
Ви щойно отримали карту місцевості, перш ніж відправитися в подорож. Ось ключові ідеї цієї статті:
- AI — широка ідея розумних машин. ML — один підхід: навчання на даних. Data Science — повний процес від даних до рішень.
- Машинне навчання — це пошук закономірностей у даних для передбачення або класифікації нових прикладів.
- Три компоненти ML: дані (приклади), модель (математична структура) та алгоритм навчання (процес коригування моделі).
- Три типи задач: навчання з учителем (є правильні відповіді), навчання без учителя (немає відповідей, шукаємо структуру), навчання з підкріпленням (нагороди та штрафи від середовища).
- Основний словник: dataset, sample, feature, target, model, training, overfitting, underfitting.
- Основні інструменти в Python: NumPy, pandas, matplotlib, scikit-learn, PyTorch.
Робота з мережею та життєвий цикл застосунку
Глибоке розуміння fetch та axios у React Native, обробка помилок мережі, відстеження стану мережі (NetInfo) та стану застосунку (AppState)
Знайомство з Jupyter Notebook та JupyterLab
Чому Data Science використовує Jupyter замість .py файлів, як встановити та запустити JupyterLab, що таке комірки коду та Markdown, і як ефективно працювати з нотбуком