DP: Полегшена бібліотека для навчання діфференційному програмуванню
DOI:
https://doi.org/10.15276/aait.04.2019.3Ключові слова:
диференційоване програмування, глибоке навчання, навчання, автоматичне диференціюванняАнотація
Технології глибокого навчання викликають великий інтерес, так як в даний час на ньому базується
велика кількість прикладних додатків. Як правило, ці програми реалізуються за допомогою спеціальних бібліотек
глибокого навчання, внутрішню реалізацію яких важко зрозуміти. Ми розробили таку бібліотеку в полегшеному вигляді
з упором на викладання відповідних дисциплін. Наша бібліотека має наступні характеристики, які відповідають певним
вимогам з урахуванням специфіки навчального процесу: невелика кодова база, прості концепції і стабільний інтерфейс
прикладного програмування (API). Основне призначення бібліотеки - допомога у володінні принципами роботи з
бібліотеками глибокого навчання. Бібліотека розділена на два шари. Низькорівнева частина дозволяє програмно
побудувати обчислювальний графік на основі елементарних операцій. У машинному навчанні обчислювальний графік
зазвичай є функцією вартості, що включає в себе модель машинного навчання, наприклад, нейронну мережу.
Вбудований зворотний режим автоматичного диференціювання на обчислювальному графіку дозволяє навчати моделі
машинного навчання. Це робиться за допомогою алгоритмів оптимізації, таких як стохастичний градієнтний спуск. Ці
алгоритми використовують похідні, щоб мінімізувати вартість шляхом адаптації параметрів моделі. У разі нейронних
мереж параметри є вагами нейронних мереж. Частина бібліотеки вищого рівня полегшує реалізацію нейронних мереж,
надаючи більші будівельні блоки, такі як нейронні шари і допоміжні функції, наприклад, реалізацію алгоритмів
оптимізації (оптимізаторів) для навчання нейронних мереж. Також до бібліотеки ми додаємо вправи для вивчення
основних принципів роботи бібліотеки глибокого навчання і основ нейронних мереж. Додатковою перевагою бібліотеки
є те, що вправи і відповідні програмні завдання на її основі не потребують постійного рефакторінгу через її
стабільного API