Сьогодні спробуємо розібратись з тим, що собою являють нейронні мережі, як вони працюють та яка їх роль у створенні штучного інтелекту.
Нейронні мережі. Це словосполучення ми чуємо майже всюди. Доходить до того, що нейромережі ви зустрінете навіть у холодильниках (це не жарт). Нейронні мережі широко використовуються алгоритмами машинного навчання, які сьогодні можна зустріти не тільки у комп’ютерах і смартфонах, а й у багатьох інших електронних пристроях, наприклад, у побутовій техніці. А чи замислювалися ви коли-небудь, що являють собою ці нейронні мережі?
Не хвилюйтеся, цей матеріал не буде академічною лекцією. Існує безліч публікацій, у тому числі, українською мовою, які дуже професійно та достовірно пояснюють це питання у галузі точних наук. Таким публікаціям вже не один десяток років. Як можливо, що ці старі публікації є актуальними й досі? Річ у тім, що основи нейронних мереж не змінилися, а саму концепцію — математичну модель штучного нейрона — було створено ще під час Другої світової війни.
Те саме і з Інтернетом, сьогоднішній Інтернет незрівнянно більш розвинений, ніж у ті часи, коли було надіслано першого електронного листа. Основи Інтернету, фундаментальні протоколи існували з самого початку його створення. Кожна складна концепція побудована на фундаменті старих структур. Те саме і з нашим мозком, наймолодша кора головного мозку не здатна функціонувати без найдавнішого еволюційного елемента: стовбура мозку, який знаходиться в наших головах з часів, набагато більш давніх за існування нашого виду на цій планеті.
Я вас дещо заплутав? То ж давайте розбиратись більш детально.
Також цікаво: ChatGPT: Проста інструкція з використання
Що таке нейронні мережі?
Мережа – це сукупність певних елементів. Це найпростіший підхід в математиці, фізиці чи технологіях. Якщо комп’ютерна мережа — це набір взаємопов’язаних комп’ютерів, то нейронна мережа — очевидно, набір нейронів.
Однак ці елементи за складністю навіть віддалено не можна порівняти з нервовими клітинами нашого мозку та нервової системи, але на певному рівні абстракції деякі риси штучного нейрона та біологічного нейрона є загальними. Але необхідно пам’ятати, що штучний нейрон – набагато простіша концепція, ніж його біологічний аналог, про який ми й досі знаємо не все.
Читайте також: 7 найкрутіших варіантів використання ChatGPT
Спочатку був штучний нейрон
Перша математична модель штучного нейрона була розроблена в 1943 році (так, це не помилка, під час Другої світової війни) двома американськими вченими, Уорреном МакКалоком і Уолтером Піттсом. Їм вдалося це зробити на основі міждисциплінарного підходу, об’єднавши базові знання з фізіології мозку (згадайте час, коли була створена ця модель), математики та тодішнього молодого ІТ-підходу (вони використовували, серед іншого, теорію обчислюваності Алана Тьюринга). Модель штучного нейрона Маккалока-Піттса – дуже проста модель, вона має безліч входів, де вхідна інформація проходить через ваги (параметри), значення яких визначають поведінку нейрона. Отриманий результат надсилається на єдиний вихід (див. схему нейрона МакКаллока-Піттса).
Така деревоподібна структура пов’язана з біологічним нейроном, адже коли ми згадуємо малюнки, що зображують біологічні нервові клітини, запам’ятовується саме характерна деревоподібна структура дендритів. Однак не слід піддаватися ілюзії, що штучний нейрон хоча б якоюсь мірою близький до справжньої нервової клітини. Цим двом дослідникам, авторам першого штучного нейрона, вдалося продемонструвати, що будь-яка функція, що обчислюється, може бути обчислена за допомогою мережі взаємопов’язаних нейронів. Проте пам’ятаймо, що ці перші концепції створювалися лише як ідеї, які існували тільки «на папері» і не мали реальної інтерпретації у вигляді діючого устаткування.
Читайте також: Про квантові комп’ютери простими словами
Від моделі до новаторських реалізацій
МакКаллок і Піттс розробили теоретичну модель, але створення реальної першої нейронної мережі довелося чекати більше десяти років. Її творцем вважається інший піонер досліджень штучного інтелекту, Френк Розенблатт, який у 1957 році створив мережу Mark I Perceptron і ти самим показав, що завдяки цій структурі машина набула здатність, раніше притаманну тільки тваринам і людям: вона може вчитися. Однак сьогодні ми знаємо, що, насправді, були й інші вчені, яким спала на думку ідея про те, що машина може вчитися, в тому числі й до Розенблатта.
Багатьом дослідникам та піонерам інформатики в 1950-і роки спала на думку ідея, як змусити машину робити те, що вона не може зробити самостійно. Наприклад, Артур Семюел розробив програму, яка грала у шашки з людиною, Аллен Ньюелл та Герберт Саймон створили програму, що могла самостійно доводити математичні теореми. Ще до створення першої нейронної мережі Розенблатта два інших піонери досліджень у галузі штучного інтелекту, Марвін Мінські та Дін Едмондс, у 1952 році, тобто ще до появи перцептрону Розенблатта, побудували машину під назвою SNARC (Stochastic Neural Analog Reinforcement Calculator) – стохастичний нейронний аналоговий калькулятор підкріплення, яку багато хто вважає першим комп’ютером зі стохастичною нейронною мережею. Слід зауважити, що SNARC не мав нічого спільного з сучасними комп’ютерами.
Потужна машина, що використовує понад 3000 електронних ламп та запасний механізм автопілота від бомбардувальника B-24, змогла змоделювати роботу 40 нейронів, що, як виявилося, було достатньою кількістю, щоб математично змоделювати пошук щуром виходу з лабіринту. Звичайно, ніякого щура не було, це був просто процес дедукції та пошуку оптимального рішення. Ця машина була частиною докторської дисертації Марвіна Мінські.
Ще одним цікавим проектом у галузі нейронних мереж стала мережа ADALINE, розроблена у 1960 році Бернардом Уідроу. Таким чином, можна поставити запитання: оскільки понад півстоліття тому дослідники знали теоретичні основи нейронних мереж і навіть створили перші робочі реалізації таких обчислювальних структур, чому знадобився такий великий проміжок часу, аж до 21 століття, щоб створити реальні рішення на основі нейронних мереж? Відповідь одна: недостатня обчислювальна потужність, але це була не єдина перешкода.
Хоча у 1950-х і 1960-х роках багато піонерів штучного інтелекту були зачаровані можливостями нейронних мереж, і деякі з них передбачали, що залишилося всього років десять до створення машинного еквівалента людського мозку. Таке навіть смішно читати сьогодні, бо ми ще й досі навіть не наблизилися до створення машинного еквівалента людського мозку, і до вирішення цього завдання ще далеко. Досить швидко з’ясувалося, що логіка перших нейромереж була одночасно захоплюючою та обмеженою. Перші реалізації ШІ з використанням штучних нейронів та алгоритмів машинного навчання були здатні вирішувати певне вузьке коло завдань.
Однак, коли справа дійшла до ширших просторів і вирішення чогось дійсно серйозного, наприклад, розпізнавання образів та зображень, синхронного перекладу, розпізнавання мови та рукописного тексту, тощо, тобто речей, які комп’ютери та ШІ можуть робити вже сьогодні, виявилося, що перші реалізації нейронних мереж були просто неспроможними це робити. Чому це так? Відповідь дали дослідження Марвіна Мінські (так, того самого з SNARC) і Сеймура Паперта, які в 1969 році довели обмеженість логіки перцептрону і показали, що збільшення можливостей простих нейронних мереж виключно за рахунок масштабування не працює. Був ще один, але дуже важливий бар’єр – доступні на той час обчислювальні потужності були надто малими для того, щоб нейронні мережі могли бути використані за призначенням.
Також цікаво:
- Тож, говорив чи не говорив? Маск заперечує розмову з путіним. Але є «але»
- Сучасна артилерія – суперзброя України. І до чого тут Ілон Маск?
Ренесанс нейронних мереж
Практично, у 1970-х та 1980-х роках про нейронні мережі забули. Лише наприкінці минулого століття доступні обчислювальні потужності стали настільки великими, що люди почали повертатися до них та розвивати свої можливості у цій галузі. Саме тоді з’явилися нові функції та алгоритми, здатні подолати обмеження перших найпростіших нейронних мереж. Саме тоді й виникла ідея глибокого машинного навчання багатошарових нейронних мереж. Що відбувається насправді із цими шарами? Сьогодні практично всі корисні нейронні мережі, що працюють у нашому середовищі, є багатошаровими. У нас є вхідний шар, завдання якого – отримати вхідні дані та параметри (ваги). Залежно від того, наскільки складна обчислювальна задача, яку повинна розв’язати мережа, кількість цих параметрів варіюється.
Крім того, ми маємо так звані “приховані шари” – це те місце, де відбувається вся “магія”, пов’язана з глибоким машинним навчанням. Саме приховані шари відповідають за здатність даної нейронної мережі навчатися та виконувати потрібні обчислення. Нарешті, останній елемент це вихідний шар, тобто, шар нейронної мережі, який дає бажаний результат, у даному випадку: розпізнаний почерк, обличчя, голос, сформоване зображення на основі текстового опису, результат томографічного аналізу діагностичного зображення і набагато більше.
Читайте також: Я перевірив, як працює чат-бот Bing, і взяв у нього інтерв’ю
Як навчаються нейронні мережі?
Як ми вже знаємо, окремі нейрони в нейронних мережах обробляють інформацію за допомогою параметрів (ваг), яким присвоєно окремі значення та зв’язки. Ці ваги змінюються у процесі навчання, що дозволяє налаштувати структуру цієї мережі таким чином, щоб вона генерувала бажаний результат. Як саме мережа навчається? Це очевидно, її постійно треба дресувати. Нехай вас не дивує цей вислів. Ми теж навчаємось, і цей процес не хаотичний, а впорядкований, скажімо так. Ми називаємо це освітою. У будь-якому разі нейронні мережі також можна навчати, і зазвичай це робиться з використанням відповідним чином підібраного набору вхідних даних, що якимось чином готує мережу до завдань, які вона виконуватиме в майбутньому. І все це повторюється крок за кроком, інколи процес навчання якоюсь мірою нагадує саме процес дресування.
Наприклад, якщо завданням цієї нейронної мережі є розпізнавання облич, вона попередньо навчається на великій кількості зображень, що містять обличчя. У процесі навчання ваги та параметри прихованих шарів змінюються. Експерти тут використовують фразу “мінімізація функції вартості”. Функція вартості – це певна величина, яка говорить нам, в якій мірі дана нейронна мережа припускається помилок. Чим більше нам вдасться мінімізувати функцію вартості в результаті навчання, тим краще ця нейронна мережа функціонуватиме в реальному світі. Найважливіша особливість, яка відрізняє будь-яку нейронну мережу від задачі, запрограмованої з використанням класичного алгоритму, у тому, що у разі класичних алгоритмів програміст повинен крок за кроком проектувати, які дії виконуватиме програма. У випадку нейронних мереж сама мережа здатна навчитися самостійно правильно виконувати завдання. І ніхто точно не знає, як складна нейронна мережа виконує свої обчислення.
Сьогодні нейронні мережі використовуються широко і, можливо, дивно, дуже часто без розуміння того, як насправді працює обчислювальний процес в даній мережі. В цьому немає необхідності. Програмісти використовують готові машинно-навчені нейронні мережі, які підготовлені до вхідних даних певного типу, обробляють їх відомим лише їм способом та видають бажаний результат. Програмісту не обов’язково знати, як працює процес виведення всередині нейронної мережі. Тобто, людина залишається осторонь великого обсягу обчислень, способу отримання інформації і її обробки нейронними мережами. Звідки й певні побоювання людства щодо моделей штучного інтелекту. Ми просто боїмось, що колись нейронна мережа буде сама собі ставити певну задачу і самостійно, без допомоги людини, знаходити шляхи її рішення. Це непокоїть людство, викликає страх і недовіру до використання алгоритмів машинного навчання.
Цей утилітарний підхід поширений сьогодні. Те саме і з нами: ми знаємо, як навчити когось конкретному виду діяльності, і знаємо, що процес навчання буде ефективним, якщо його правильно проводити. Людина набуде бажаних навичок. Але чи розуміємо ми, як саме в його мозку відбувається процес дедукції, що спричинив цей ефект? Ми не маємо жодного уявлення.
Завдання вчених максимально вивчити ці проблеми, щоб вони служили і допомагали нам там, де це необхідно, і, найголовніше, не ставали загрозою. Ми, люди, так влаштовані – боїмося того, чого не знаємо.
Цікаво також: