Великі дані, обробка мови, 3D. Як і де використовується лінійна алгебра в Data Science
Якщо ми в новій країні, то для спілкування шукатимемо допомоги в онлайн-перекладачів, шлях до потрібної точки нам прокладуть карти, а красиву панораму можемо зняти за допомогою дрона. Ті ж, своєю чергою, використовують лінійну алгебру, щоб виконувати всі ці функції.
Як саме та де ще використовуються методи лінійної алгебри далі й розповімо.
Є дуже широке поняття штучний інтелект. Є Data Science, де слово «data» вже говорить про те, що ми маємо дані й з ними потрібно щось робити. Якщо говорити просто, то коли є велика кількість даних, то перше, що намагається зробити Data Scientist — помістити ці дані в якийсь багатовимірний простір, описати їх, отримати якусь закономірність та представити це як певну модель.
Грубо кажучи, ця модель — буде спрощеною моделлю світу, що характеризується реальними фактами чи даними. А після цю модель можна використовувати як предиктивну (прогнозну), яка допомагатиме приймати певні рішення. Наприклад, видавати кредит чи ні, купувати чи не купувати акції, є проблеми зі здоров'я чи ні.
Лінійна алгебра якраз ідеально справляється з такими завданнями, оскільки це наука про багатовимірні простори й те, що з ними робити. Дані — це вектори й відповідно операції з ними ми можемо перетворити на певні математичні задачі. Це допомагає побудувати структуру й далі зручно оперувати даними. Тому всі сучасні методи роботи з даними так чи інакше базуються на лінійній алгебрі. Про кілька з них далі поговоримо детальніше.
Предиктивні моделі
Перше про що варто поговорити — предиктивні, або прогнозні моделі. Це великий клас завдань, до якого входять різні методи.
Уявімо, що маємо велику базу різних даних про поведінку наших клієнтів. Проаналізувавши яку ми створили певні моделі та поділили усіх клієнтів на типажі: один, два й три. Тепер, коли до вас приходить нова людина, ви аналізуєте як він себе поводить, й розумієте, що клієнт належить до типажу два. А про цей типаж ви знаєте все, тому одразу пропонуєте те, що цікавить людей саме цього типу. У фіналі — ви маєте модель, яка рекомендує певні товари на сайті.
Метод опорних векторів
Support vector machine (SVM) — дуже потужний метод класифікації, що базується на побудові гіперплощин в багатовимірних просторах.
Уявимо що в нас є два класи з величезною кількістю параметрів. Наприклад, чоловіки та жінки. Параметри ж це зріст, вага, вік тощо. Усі вони — це точки чи вектори в багатовимірному просторі. SVM дозволяє провести розподільну межу, яка найкращим чином розділяє два класи.
В одновимірному просторі ми мали б число-поріг, яке розділяє ці класи. Якщо значення вище цього порога — один клас, якщо нижче — інший. Так ми розділили два класи. Це найпростіший приклад.
Ця гіперплощина будується так, що всі вектори одного класу знаходяться з одного боку, а іншого з другого боку. Це дозволяє легко класифікувати невідомі нам вектори — потрібно тільки перевірити з якого боку цієї площини (моделі) вони знаходяться.
Зниження розмірності
У роботі з даними часто доводиться працювати з десятками, а то й сотнями параметрів. Оскільки ми не знаємо, які з них важливі, а які ні, то змушені зберігати все.
Зниження розмінності — дуже універсальний метод, що використовується в гігантській кількості застосунків. Для Наприклад у всім відомому Google Translate, що зробив прорив у сфері перекладу. Спочатку із різних баз даних були виділені мільйони слів з урахуванням їх контексту, а далі це все векторизувалося.
Кожне слово, його зв'язок з іншими словами, був записаний у вигляді гігантських векторів в мільйоновимірному просторі, оскільки слів дуже багато. Проте пізніше виявилося що кожне з них взаємодії тільки з обмеженою кількістю інших слів.
Для зменшення кількості змінних використовується сингулярне розкладання матриць (SVD) і ці мільйоновимірні простори звели до 100 чи 200-мірних. Це і є зниження розмірності.
У цьому випадку приклад стосується NLP, але він працює і для багатьох інших речей. Наприклад виділення на відео об'єктів що бекграунду, виділення людини, виділення певних сигналів тощо.
Чи просто коли у вас є величезна кількість параметрів й ви не знаєте, які з них важливі. Таким чином умовно з 50 параметрів методами лінійної алгебри можна виділити три, які дійсно важливі. Ви зменшуєте кількість вимірів в моделі й тим самим робите її простішою та стійкішою.
Геометричні методи
Крім того, лінійна алгебра допомагає розв'язувати різноманітні задачі, пов'язані з геометрією. Коли ми маємо багатомірні простори, але на планіметрії.
Методи лінійної алгебри використовуються, наприклад, в іграх для відновлення 3D-сцен за фотографіями. Для розпізнавання сцен.
Найпростіше це пояснити на роботі дронів. По-перше, їм потрібно орієнтуватися в просторі, розпізнавати об'єкти навколо себе, аби не врізатися нікуди.
По-друге, дронові необхідно із великої кількості фотографій скласти все в одне відео. Оскільки ці всі фотографії робляться на різних висотах, під різними кутами. І відповідно вони всі трапецевидної форми із різним масштабуванням. Тому їх не можна просто склеїти. Їх треба звести до ортонормального вигляду. Ніби вони всі були зроблені з однієї висоти. Для цього якраз і використовуються методи лінійної алгебри.
Якщо ж хочете познайомитися з більшою кількістю алгебраїчних методів та навчитися самим використовувати їх на практиці — реєструйтеся на курс Linear Algebra.
Автори: Денис Пристай, Ян Цибулькін Фото: Наталія Азаркіна