Які частини лінійної алгебри використовуються в інформатиці?


15

Я читав лінійну алгебру та її додатки, щоб допомогти зрозуміти матеріал з інформатики (головним чином машинне навчання), але мене хвилює, що багато інформації не корисно для CS. Наприклад, знання ефективного розв’язання систем лінійних рівнянь не здається дуже корисним, якщо ви не намагаєтеся запрограмувати нове рішення для рівнянь. Крім того, у книзі багато говорилося про проміжок, лінійну залежність та незалежність, коли матриця має зворотний зв'язок та взаємозв’язки між ними, але я не можу думати про будь-яке застосування цього в CS. Отже, які частини лінійної алгебри використовуються в CS?


2
Ви просите в свою користь чи ви вчитель шукаєте стратегії мотивації своїх учнів?
Рафаель

Лінійна алгебра корисна у багатьох частинах комп’ютерної графіки (ви можете знайти багато пов'язаної інформації гуглінг).
Juho

Розв’язування систем лінійних рівнянь неймовірно корисне в інформатиці. Наприклад: en.m.wikipedia.org/wiki/Combinatorial_optimization
Ant P

1
Матриці широко використовуються при розробці ігор, IE для проекцій, обертів та математики кватерніона.
Павло

@Paulpro Питання стосується додатків лінійної алгебри (основна частина роботи), а не матриць (набору об'єктів).
Рафаель

Відповіді:


11

Частини, про які ви згадали, є основними поняттями лінійної алгебри. Ви не можете зрозуміти більш вдосконалених понять (скажімо, власних значень та власних векторів), перш ніж зрозуміти основні поняття. В математиці немає ярликів. Без інтуїтивного розуміння понять прольотної та лінійної незалежності ви не досягнете далеко лінійної алгебри.

Деякі алгоритми працюють лише з повноцінними матрицями. Чи знаєте ви, що це означає? Чи знаєте ви, що може зробити матрицю не повною? Як впоратися з цим? У вас не буде поняття, якщо ви не знаєте, що таке лінійна незалежність.

Алгоритм усунення Гаусса, який використовується для вирішення лінійних рівнянь, насправді може бути чисельно нестабільним при неправильному впровадженні, і це може те, що вам доведеться турбуватися в деяких випадках. Без розуміння алгоритму ви не знатимете, звідки виникла проблема і чи можете ви з цим щось зробити - не на рівні алгоритмів розв’язування лінійних рівнянь, а на рівні придумування правильних лінійних рівнянь для вирішення.

Коротше кажучи, не лінуйтеся, і вірите, що ці речі корисні.


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

9
"Не лінуйся" задає тон, не конструктивний. Я напрочуд допитливий, зайнятий, і зовсім не ліниві студенти задають мені саме це питання. Я думаю, що велика кількість студентів CS вважає, що традиційний клас лінійної алгебри є світами, крім того, що вони думають, що їм потрібно. Їх інтереси - обчислення та програмування, а не обов'язково математика. Потреба чи бажання певного контексту та мотивації не є ознакою ліні. Давайте не малювати її як таку.
Логан Мейфілд

@Raphael, Логан Мейфілд, ви, хлопці, навіть знаєте, як машинне навчання стосується лінійної алгебри? Хоча дещо конкретний, Юваль тут досить орієнтований на згаданих ним прикладах. На питання ОП не можна повністю відповісти лише за один Інтернет-пост.
musicliftsme

7

Лінійна алгебра іноді надзвичайно корисна і потужна в графічних алгоритмах. За допомогою теореми про матричне дерево можна ефективно підрахувати кількість діючих дерев, які має графік (потрібно зрозуміти власні значення). Більш складним додатком, коли потрібно ще більш чітке розуміння лінійної алгебри, є алгоритм FKT для обчислення кількості досконалих відповідностей у площинному графіку в поліноміальний час.

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


Можна задатись питанням, чому б коли-небудь захотілося порахувати кількість розкинутих дерев чи ідеальні відповідність. Для чого це добре? Чи маєте ви на увазі додаток у реальному світі?
Yuval Filmus

@YuvalFilmus Я цього не роблю, і, можливо, важче придумати додатки для підрахунку проблем. Я думаю, що обидва цікаві в основному з теоретичної точки зору, хоча вікі-запис FKT дає певну історію та мотивацію. У будь-якому разі, головний момент полягає в тому, що лінійна алгебра є корисною для розробки алгоритмів графіків і, отже, має застосування в інформатиці.
Juho

6

Одне з найвідоміших застосувань лінійної алгебри - це алгоритм Pagerank Google :

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


3

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


2

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

Але , що ще важливіше, прийняття класу лінійної алгебри є цінним, оскільки воно вчить мислити певним чином. Більшість хороших лінійних класів алгебри роблять акцент на узагальненні, логіці та доказуванні. Чи є щось справжнє взагалі, або лише певні конкретні, загальні випадки? Як ти можеш бути певним? Вміти думати про те, як довести свої припущення, це добре, оскільки це допомагає вам уберегти себе від поганих припущень та написання коду, який не узагальнюється так, як ви вважаєте, що це робить. Це також допомагає вам подумати про те, як узагальнити речі, які в іншому випадку можуть бути важкими для узагальнення, і що дамо вам вирішити більші проблеми.

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


0

Розв’язування системи лінійних рівнянь (що можна зробити методом усунення Гаусса), лінійне програмування (яке можна вирішити методом симплекса), найменші квадрати та стиснене зондування (див. Статтю у Вікіпедії) - це практичні проблеми, які виникають у багатьох області застосування. Лінійна алгебра допомагає розробити правильні та ефективні алгоритми вирішення цих проблем.

Дивіться текст [Cormen, Leiserson, Rivest and Stein, "Вступ до алгоритмів, Третє видання"], де глава 28 про операції з матрицею, а глава 29 - про лінійне програмування.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.