Вперше світ дізнався про машинне навчання та нейронні мережі завдяки Гугл. Саме цей сервіс пошуку вперше запровадив програму, яка була здатна запам’ятовувати, аналізувати та відтворювати інформацію. Тож, що таке нейрон?
Це закінчений елемент програмного коду, що формує нейронну сітку. Кожний нейрон сприймає вхідні дані, опрацьовує їх, та передає далі за допомогою синапсу. Говорячи більш зрозуміло, нейрон — це базова одиниця штучного інтелекту. Нейронна мережа — комп’ютерна реалізація мозку людини.
Розвиток інтернету та процеси глобалізації сприяли тому, що з’явилося дуже багато інформації, опрацювати яку самотужки людина фізично не в змозі. Нейронні мережі знайшли застосування у:
Останній пункт, наприклад, використовується в системах безпеки аеропортів. Виконується це шляхом фіксації обличчя людей, та порівняння їх із базою злочинців. Ще один приклад — функція Google по пошуку схожого зображення. Достатньо завантажити фото і система знайде усі схожі картинки.
Існує декілька видів нейронного зв’язку. Найчастіше використовуються синапсоідальний та ReLU. В першому випадку нейронна мережа використовує дані в діапазоні від -1 до 1 (що фактично відповідає -100% до 100%). В другому вхідні дані передаються через значення 0 та inf (інформація любого характеру).
Для того, щоб пояснити, як проходить системний аналіз, краще підходить синапсоідальна функція, оскільки обмежений діапазон вхідної інформації дає більше наочності. Алгоритм обчислення:
Кількість обчислень задається шляхом встановлення кількості шарив. Сучасні нейронні мережі мають десятки, а іноді навіть сотні шарів обчислення. Книги з програмування містять приклади коду на Java, що свідчить про розвиток технології не тільки в сфері десктопних програм, а також і для мобільних платформ. Це свідчить про ефективність нейронних мереж.
Як зрозуміло із попереднього розділу, вхідні дані для нейронної мережі слід привести до встановленого виду. Що це значить? Розглянемо наступний приклад: проаналізувати динаміку ринку акцій.
Ціни в даному випадку будуть значно більше від одиниці. Тому можна звести дані до різниці цін, яка буде виражена через проценти. На виході отримаємо діапазон значень від -1 до 1.
Описана послідовність дій називається нормалізацією вхідних даних. Це перший і основний крок перед початком машинного навчання. Система повинна отримувати інформацію у тому виді, який вона може обробити.
Наступний крок — отримання першого результату обчислень. У 99% випадків він буде відрізнятися від того, що мало бути насправді. Ця обставина пояснюється просто: мережа не має достатньо інформації для правильної аналітики (тобто релевантного розподілення ваги).
На цьому етапі створюється алгоритм навчання — тренувальний сет. Це набір операнд, які задають параметри обробки вхідних даних та допомагають нейронній мережі правильно оцінювати вагу. В залежності від складності задачі може використовуватися від 4 до декількох сотень формул.
Проходження циклу операнд назветься епохою. На момент створення нейронна мережа має епоху під номером 0. Після першого циклу навчання наступає епоха 1, і так далі. С кожним циклом навчання похибка обчислень зменшується. Коли цей показник не перевищує декількох процентів, вважається, що мережа пройшла навчання і придатна для вирішення реальних задач.
Також слід відмітити що нейронні мережі та штучний інтелект — це хоча і схожі, але все ж таки різні терміни. Нейронні мережі мають модулярну систему, де обчислення виконуються на основі встановлених правил. Система вчиться аналізувати лише конкретні дані і підходить для вирішення однієї чітко сформованої задачі.
Добре розвинена та навчена нейронна мережа легко замінить штатного аналітика, але лише в межах одного діапазону даних. Штучний інтелект, говорячи максимально просто, це здатність комп’ютера самотужки створювати та навчати нейронні мережі.
Драгуцан Андрій, студент кафедри АПЕПС, ТЕФ