Змагання
Знайдіть найменшу нейронну мережу, що подається, таку, що з урахуванням будь-якого тривимірного вхідного вектора з цілими записами в мережа виводить найбільший (тобто "найбільш позитивний") корінь многочлен з похибкою строго меншою за .
Допустимість
Поняття допустимості в моєму попередньому виклику з нейрологічної сітки з гольфу здавалося дещо обмежуючим, тому для цього виклику ми використовуємо більш ліберальне визначення нейронної мережі feedforward:
Нейрон є функцією , який задається вектором з ваг , A зміщення , і функції активації наступним чином:
Подача нейронної мережі з вхідними вузлами є функцією яку можна побудувати з послідовності нейронів, де кожен приймає входи з і виводить скаляр . З урахуванням деякого заданого безлічізвихідних вузлів, то вихід з нейронної мережі є вектор .
Оскільки функції активації можуть бути налаштовані на будь-яке завдання, нам потрібно обмежити клас функцій активації, щоб цей виклик був цікавим. Дозволені наступні функції активації:
Ідентичність.
ReLU.
SoftPlus.
Сигмоїдний.
Синусоїда.
В цілому допустима нейронна сітка задається вузлами введення, послідовністю нейронів та вихідними вузлами, тоді як кожен нейрон визначається вектором ваг, зміщенням та функцією активації з вищевказаного списку. Наприклад, допустима наступна нейронна сітка, хоча вона не відповідає цілі ефективності цього завдання:
Вузли введення:
Нейрони: для
Вихідні вузли:
Ця мережа складається з 8 нейронів, кожен з яких має нульовий зміщення та активацію ідентичності. Словом, ця мережа обчислює узагальнену послідовність Фібоначчі, породжену і а потім виводить 5, 9 та 10 числа з цієї послідовності в такому порядку.
Оцінка балів
З огляду на дійсне число із закінченням десяткового розширення, нехай є найменшим невід’ємним цілим числом для якого , і нехай - найменше невід’ємне ціле число для якого - ціле число. Тоді ми говоримо єточністювід .
Наприклад, має точність , тоді як має точність .
Ваш бал - це сума точності ваг і ухилів у вашій нейронній мережі.
(Наприклад, наведений вище приклад має оцінку 16).
Перевірка
Хоча коріння можна виразити у формі кубічної формули , найбільший корінь, можливо, найпростіше отримати за допомогою чисельних засобів. За пропозицією @ xnor, я обчислив найбільший корінь для кожного вибору цілих чисел , ірезультати можна знайти тут. Кожен рядок цього текстового файлу має формуa,b,c,root
. Наприклад, перший рядок повідомляє, що найбільший корінь - це приблизно .
Редагувати: Оригінальний файл, який я розмістив, мав помилки у випадках, коли поліном демонстрував кілька коренів. Поточна версія повинна бути без таких помилок.
a
ненульовий рівень, або навіть просто 1. Також я рекомендую ввести деякі тестові випадки, даючи корені з високою точністю, щоб ми могли перевірити, чи є наші в межах 0,1. Було б також добре мати вихідні дані для всіх можливих входів, ймовірно, за посиланням, оскільки це багато для посади.
x -> a * sin(b * softplus(x) + c)
може перевищувати будь-яку кінцеву кількість точок даних з цілим числом x
до довільної точності, використовуючи надзвичайно велику та точну частоту.
a=0
а квадратик має два складних кореня?