Предыдущие вызовы нейронной сети ( то и это ) вдохновили меня поставить новую задачу:
Соревнование
Найдите наименьшую нейронную сеть с прямой связью, такую, что для любого 4-мерного входного вектора с целочисленными значениями в сеть выводит с координатной ошибкой, строго меньшей, чем .
допустимость
Для этой задачи нейронная сеть с прямой связью определяется как композиция слоев . Слой является функцией , что определяется матрицей из веса , вектор из уклонов , а функция активации , который применяется покоординатным:
Поскольку функции активации могут быть настроены для любой конкретной задачи, нам нужно ограничить класс функций активации, чтобы эта задача была интересной. Разрешены следующие функции активации:
Идентичность.
РЕЛУ.
Softplus.
Гиперболический тангенс.
Сигмовидной.
В целом, допустимая нейронная сеть принимает форму для некоторого , где каждый слой определяется весами , смещениями и функцией активации из приведенного выше списка. Например, допустима следующая нейронная сеть (хотя она не удовлетворяет цели производительности этой задачи, это может быть полезным гаджетом):
Этот пример демонстрирует два слоя. Оба слоя имеют нулевое смещение. Первый уровень использует активацию ReLU, а второй использует идентификацию активации.
счет
Ваша оценка - это общее количество ненулевых весов и смещений.
(Например, приведенный выше пример имеет оценку 16, поскольку векторы смещения равны нулю.)
источник
Ответы:
Октава ,
96 88 87 84 76 5450 весов и уклоновЭтот 6-слой нейронная сеть, по существу , 3-ступенчатые сортировки сеть построена из очень простых
min
/max
сетей в качестве компонента. В основном это пример сети из Википедии, как показано ниже, с небольшой модификацией: первые два сравнения выполняются параллельно. Чтобы обойти отрицательные числа через ReLU, мы просто сначала добавляем 100, а затем снова вычитаем 100 в конце.Так что это следует рассматривать как основу, так как это наивная реализация. Однако он сортирует все возможные числа, которые не имеют слишком большой величины идеально. (Мы можем настроить диапазон, заменив 100 другим числом.)
Попробуйте онлайн!
макс / мин-компонентный
Существует (
значительно менее элегантный, болееэлегантныйспособ, благодаря @xnor!) Способ найти минимум и максимум двух чисел, используя меньше параметров:Это означает, что мы должны использовать гораздо меньше весов и уклонов.
Спасибо @Joel за указание на то, что на первом шаге достаточно сделать все числа положительными, а на последнем - на обратном, что составляет -8 весов. Спасибо @xnor за указание на еще более короткий метод max / min, который дает -22 веса! Спасибо @ DustinG.Mixon за совет по объединению определенных матриц, которые приводят к еще -4 весам!
Попробуйте онлайн!
источник
(a - relu(a-b), b + relu(a-b))
?