Я хотів би запропонувати цій громаді інший вигляд гольфу:
(Штучні) Нейронні мережі - дуже популярні моделі машинного навчання, які можуть бути розроблені та навчені наближати будь-яку задану (зазвичай невідому) функцію. Їх часто використовують для вирішення дуже складних завдань, які ми не знаємо, як алгоритмічно вирішити розпізнавання мови, певні види класифікації зображень, різні завдання в автономних системах керування, ... Для грунтовки в нейронних мережах вважайте це відмінним Стаття у Вікіпедії .
Оскільки це перше з того, що я сподіваюсь стати серією машинного навчання гольфу, я хотів би зробити все максимально простим:
Мовою та рамками на ваш вибір, спроектуйте та навчіть нейронну мережу, яка за даними обчислює їх добуток для всіх цілих чисел між (і включаючи) та .
Мета виконання
Щоб отримати право, ваша модель може не відхилятися більш ніж на від правильного результату в будь-якому з цих записів.
Правила
Ваша модель
- повинна бути "традиційною" нейронною мережею (значення вузла обчислюється як зважена лінійна комбінація деяких вузлів попереднього шару з наступною функцією активації),
- може використовувати лише такі стандартні функції активації:
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- повинно сприймати або як тупель / вектор / список / ... цілих чисел, або плаває як єдиний вхід,
- повернути відповідь як ціле число, float (або відповідний контейнер, наприклад, вектор або список, що містить цю відповідь).
Ваша відповідь повинна містити (або посилатися на) весь код, необхідний для перевірки ваших результатів - включаючи навчені ваги вашої моделі.
Оцінка балів
Виграє нейронна мережа з найменшою кількістю ваг (включаючи зміщення ваг).
Насолоджуйтесь!
f(x) = x
для пересилання свого введення?