JavaRush /Java блог /Random UA /Нейросети: колиска майбутнього AI або просто черговий тех...

Нейросети: колиска майбутнього AI або просто черговий технічний тренд?

Стаття з групи Random UA
У матеріалах на JavaRush ми вже торкалися теми штучного інтелекту (ІІ), машинного навчання та інших технологій, так чи інакше пов'язаних з ІІ. Зокрема, ми вже говорабо про те, як штучний інтелект пов'язаний із програмуванням на Java , обговорювали міфи та страшилки про ІІ , як і в низці статей згадували ключові технології, які застосовують у цій сфері. Нейросети: колиска майбутнього AI або просто черговий технічний тренд?  - 1Тому ми вирішабо, що зараз — добрий час, щоб заглибитись у сферу ІІ ще сильніше, та докладніше розібрати технологію, яка фактично лежить в основі сучасного ІІ та машинного навчання, — нейромережі. А саме: як спочатку зародилася сама концепція нейромереж та як ця технологія трансформувалася у свій нинішній стан, чим штучні нейромережі відрізняються від нейронів у мозку людини, чи справді вони вміють навчатися, і на що справді здатні сьогодні. Нейросети: колиска майбутнього AI або просто черговий технічний тренд?  - 2

Штучні нейромережі та мозок людини. Одне і теж?

Спочатку комп'ютерні нейромережі отримали таку назву тому, що принцип їхнього пристрою нагадує систему нейронів у людському мозку. Так, звичайний мозок людини включає більше 100 млн дрібних клітин, званих нейронами. Насправді, ніхто точно не знає, скільки реально може бути таких клітин у людському мозку – оцінки варіюються від 50 до 500 млрд. Кожен нейрон складається з тіла клітини з безліччю так званих дендритів (входи клітини – передають інформацію клітині) та одним аксоном ( вихід клітини – передає інформацію від клітини). Нейрони настільки дрібні, що близько сотні таких клітин можна розмістити на площі один квадратний міліметр. Усередині комп'ютера еквівалентом нейрона є крихітні перемикаючі пристрої, транзистори. Нові сучасні мікропроцесори (однокристальні комп'ютери) містять понад 30 млрд. транзисторів. Навіть перший мікропроцесор Pentium, створений близько 20 років тому, мав близько 50 млн. транзисторів, упакованих в інтегральну мікросхему площею всього 25 мм. По суті, кажуть експерти, на цьому зв'язок комп'ютерних процесорів з нейронами в мозку людини закінчується, бо в іншому вони сильно відрізняються один від одного і працюють зовсім по-різному. Комп'ютерні транзистори з'єднуються у відносно прості послідовні ланцюжки, кожен з яких може бути пов'язаний з двома або трьома іншими, тоді як нейрони в мозку щільно пов'язані складними паралельними способами. Так, вчені підрахували, що кожен нейрон може бути пов'язаний з більш ніж 10 тис. своїх сусідів.

Що таке штучна нейронна мережа?

Таким чином, найбільша структурна відмінність комп'ютерів від нейронів у мозку полягає в тому, як вони працюють. Базова ідея, що лежить в основі нейромереж, полягає в симулюванні, або, якщо завгодно, моделюванні, у спрощеному вигляді роботи безлічі взаємозалежних нейронів мозку. Саме це дозволяє нейромережі робити те, що не підвладне звичайним мікропроцесорам, а саме - навчатися, розпізнавати патерни і приймати рішення за схожим з людським мозком принципом. Однак важливо підкреслити, що на даний момент нейромережі являють собою просту програмну емуляцію роботи нейронів у мозку. Нейросети: колиска майбутнього AI або просто черговий технічний тренд?  - 3Звичайна нейронна мережа містить від кількох десятків до сотень, тисяч і навіть мільйонів штучних нейронів, званих юнітами, які у вигляді кількох верств. Частина даних юнітів, які називаються юнітами введення, відповідає за отримання із зовнішнього світу різних форм інформації, яку нейромережа потім спробує вивчити, запам'ятати та обробити іншими способами. Інші юніти, звані юнітами висновку та розміщені на протилежному боці мережі, відповідають за те, як мережа взаємодіє з цією інформацією. Між цими двома шарами розташовуються інші юніти, які займаються обчисленнями та становлять основну частину нейронної мережі. Більшість нейронних мереж взаємопідключені, тобто кожен юніт підключений до інших юнітів у шарах з обох боків. Зв'язки між юнітами представлені числом, яке називають вагою. Вага в нейромережі може бути позитивною (якщо один юніт активує інший) або негативною (якщо один юніт пригнічує або послаблює інший). Чим вища вага, тим більший вплив одного юніту на інший. Проста нейромережа, створена для вирішення простих завдань, може включати лише три базові шари, як показано на картинці. Однак між шарами введення та виведення може розміщуватися цілий ряд різних шарів, що виконують різні функції. Нейросети з більш комплексними (ніж на ілюстрації вище) структурами називаються глибокими нейромережами (deep neural network) і зазвичай використовуються для вирішення складних проблем. Теоретично, використання глибокої структури дозволяє нейромережі зіставити будь-який тип вхідних даних з будь-яким типом вихідних даних, таким чином роблячи її здатною вирішувати будь-які завдання. Однак для цього нейромережі знадобиться серйозне і тривале навчання, яке полягає в обробці мільйонів і навіть мільярдів прикладів інформації, з якої мережі потрібно працювати. Нейросети: колиска майбутнього AI або просто черговий технічний тренд?  - 4

Нейросети: трохи історії

Ну що ж, з базовими поясненнями про те, чим насправді є нейромережі, розібралися, тепер можна трохи відступити про теорію і поговорити про історію цієї технології і коли вона взагалі з'явилася. Багатьох це може здивувати, але нейронні мережі з'явабося у науці понад 70 років тому. Це поняття в 1944 році вперше запропонували Уоррен МакКаллох (Warren McCullough) і Уолтер Піттс (Walter Pitts), два дослідники з Університету Чикаго, які в 1952 році перебралися в Массачусетський технологічний інститут, де і заснували першу групу з досліджень когнітів. Нейронні мережі фактично були основною областю досліджень як у нейробіології, і в інформатиці до 1969 року. Тобто ця технологія, що лежить в основі сучасних систем штучного інтелекту, вже була, висловлюючись сучасною мовою, на хайпі більше десятиліття — приблизно з середини п'ятдесятих до кінця шістдесятих. Вважається, що “вбивцею” цього хайпа стала книга авторства двох комп'ютерних вчених – Марвіна Мінські (Marvin Minsky) та Сеймура Паперта (Seymour Papert) – які у своїй роботі розкрабо всі обмеження нейронних мереж. Справа в тому, що ранні нейронні мережі мали тільки один або два шари, що навчаються. Мінські та Паперт показали, що такі прості мережі математично не здатні моделювати складні явища реального світу. В результаті, до нейронних мереж як технології загубився інтерес на довгі роки — усі сімдесяті та першу половину вісімдесятих їм приділяли об'єктивно мало уваги. Інтерес відновився лише у 1986-му році, після публікації статті, в якій було представлено концепцію зворотного розповсюдження, практичного методу навчання глибоких нейронних мереж. Завдяки зворотному поширенню, глибокі нейронні мережі стали зручнішими для обчислень, але досі вимагали до роботи великих обчислювальних ресурсів. А результати досліджень у 1990-х та 2000-х роках часто показували, що складні нейронні мережі не дають бажаного результату щодо ефективності. В результаті нейронні мережі на якийсь час знову злетіли з хвилі хайпа і повернулися лише у другому десятилітті двотисячних, багато в чому завдяки збільшеній обчислювальній потужності графічних чіпів, які дозволяють глибинним нейромережам працювати більш ефективно, ніж раніше. Феномен такої циклічності в науці загалом добре пояснюєТомасо Поггіо (Tomaso Poggio), професор Массачусетського технологічного інституту: “Є таке пояснення, що ідеї в науці поширюються багато в чому так само, як це роблять віруси. Наприклад, існує п'ять чи шість основних штамів вірусу грипу, і кожен з них повертається приблизно раз на кожні 25 років. Люди заражаються, у них виробляється імунітет, у результаті протягом наступних 25 років вони захищені від інфекції. А потім приходить нове покоління, яке знову інфікується тим самим штамом вірусу. У науці люди закохуються в ідеї і працюють над ними до знемоги — так, що у них виробляється імунітет у вигляді втоми від цієї ідеї. А потім ідея повертається вже з іншим поколінням вчених. Враховуючи той факт, що нейронні мережі та технології штучного інтелекту – це, як і раніше, досить нова і слаборозвинена технологія, не виключено, що хайп навколо неї скоро знову почне слабшати, тільки для того, щоб повернутися знову, ще через кілька десятиліть. Нейросети: колиска майбутнього AI або просто черговий технічний тренд?  - 5

Як нейронні мережі навчаються?

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

Як нейромережі працюють та де використовуються?

Ну і насамкінець, розберемо приклад того, як працює подібна нейромережа. Отримавши достатньо прикладів даних, на яких можна навчитися, нейромережа досягає точки, коли користувач може завантажити в неї абсолютно нові дані, які ніколи раніше мережа не обробляла, і отримати від неї потрібний результат. Наприклад, припустимо, що ви навчаєте вашу нейромережу знаходити зброю, коли вона з'являється десь у межах видимості камери спостереження. Ви навчаєте мережу, демонструючи їй сотні, тисячі та десятки тисяч зображень різного роду озброєння, наприклад, пістолетів та гвинтівок. На якомусь етапі ви завантажуєте в мережу зображення нового типу зброї, яке раніше не демонструвалося, наприклад, рушницю. Внаслідок чого мережа успішно визначає цей об'єкт як зброю за низкою базових критеріїв, таких як загальна форма, наявність ручки та приклада, наявність спускового курка тощо. Тобто нейромережа визначає зброю на зображенні на основі ряду “вивчених” патернів. При цьому, звичайно, це не означає, що нейромережа вміє переглядати нові дані, самостійно приймаючи рішення, як це роблять люди. Вона отримує всю інформацію у вигляді бінарного коду, і кожен з юнітів введення (інформації в мережу) може бути лише у двох положеннях: увімкнено або вимкнено. Відповідно, якщо ви, користуючись тим самим прикладом, навчаєте нейромережа знаходити зброю, інформація проходитиме через набір юнітів введення, які відповідають базові “так/ні” питання. Наприклад, такі: чи має об'єкт спусковий гачок?; чи є дуло?; чи зроблено предмет із металу?; чи відповідає його форма формі пістолета? Відповідно, для рушниці, відповідь мережі була б: "так, так, так, ні" або "1110" у бінарному коді. Звичайно, в реальній системі таких питань було б значно більше, але суть залишається такою самою: нейромережа отримує дані у вигляді бінарного коду, і за його допомогою вчиться відрізняти потрібну інформацію від непотрібної. Тепер, знаючи базовий механізм роботи нейромережі, легко уявити собі, як ця технологія використовується для вирішення різних завдань вже сьогодні. Наприклад, класичним прикладом є використання нейромереж для запобігання банківському шахрайству — коли система вчиться самостійно знаходити і миттєво блокувати ті перекази, які з тих чи інших причин здаються підозрілими. Або, наприклад, використання нейромереж для базового автопілота автомобілів або літаків: коли юніти введення отримують інформацію від різних систем управління, а юніти виводу коригують режим пілотування у відповідність із заданим курсом.

Висновки

Тепер ви бачите, що нейромережа – це порівняно нескладна, загалом, технологія, яка дійсно рухає комп'ютери та комп'ютерні системи на крок уперед, ближче до людей. З іншого боку, також очевидно, що нейромережі все ж таки близько не стоять за складністю та ефективністю з людським мозком. Тому давайте будемо вдячні тому, що ми всі народжуємося з просунутою нейронною мережею, яка вбудована прямо нам у мозок, і будемо користуватися цим природним багатством частіше, наприклад, для навчання та самовдосконалення.
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ