Почему в нейронных сетях нет только одной функции активации «ключевого камня»?
В этой статье говорится следующее:
Выбор между сигмовидной и tanh будет зависеть от ваших требований к силе градиента.
Я видел (пока что в процессе обучения) 7 функций / кривых активации. Кажется, каждый строит на последнем . Но затем, как и в приведенной выше цитате, я читал во многих местах по существу, что «в зависимости от ваших требований выберите функцию активации и настройте ее для вашего конкретного случая использования».
Это не кажется масштабируемым . С инженерной точки зрения, человек должен войти и повозиться с каждой нейронной сетью, чтобы найти правильную или оптимальную функцию активации, что, похоже, потребует много времени и усилий. Я видел документы, в которых, кажется, описываются люди, работающие над автоматическим поиском «лучшей» функции активации для определенного набора данных. С точки зрения абстракции, это похоже на написание кода для обработки каждого пользователя на веб-сайте индивидуально, независимо от других, а не на создание одной системы аутентификации пользователя, которая работает для всех (по аналогии).
Что все эти документы / статьи отсутствуют, так это объяснение того, почему . Почему у вас не может быть только одна функция активации, которая оптимально работает во всех случаях? Благодаря этому инженерам не придется возиться с каждым новым набором данных и нейронной сетью, они просто создают одну обобщенную нейронную сеть, и она хорошо работает для всех общих задач, к которым применяются сегодняшние и завтрашние нейронные сети. Если кто-то найдет более оптимальный вариант, это будет полезно, но до тех пор, пока не будет найден следующий оптимальный, почему нельзя просто использовать одну функцию активации нейронной сети для всех ситуаций? Мне не хватает этой ключевой информации из моих текущих чтений.
Каковы некоторые примеры того, почему невозможно использовать функцию активации трапецеидального искажения?
Ответы
Это старые статьи. Возиться с функциями активации, вероятно, в большинстве случаев - не лучшее решение для вас. Сегодня стандартная инженерная практика (в первом приближении): используйте ReLU и не переживайте по этому поводу. ReLU явно превосходит сигмовидную и tanh в большинстве случаев, поэтому, если вы читаете старые статьи, они будут говорить о сигмоиде и tanh, но сегодня ReLU заменил их. Существуют более интересные новые функции активации, которые в некоторых случаях немного лучше, чем ReLU, а в некоторых случаях немного хуже, но короткая версия ReLU достаточно хороша, и не беспокойтесь о других на этом этапе вашего обучения и знаний; просто используйте ReLU и покончите с этим.
Это грубое упрощение, и есть абсолютно исключения, но я даю вам практическое правило, которое будет довольно разумным на практике.
Почему? Мой главный ответ заключается в том, что вам нужно будет привыкнуть к тому, что при работе с нейронными сетями мы действительно не знаем ответа на большинство вопросов «почему». Иногда у нас есть интуиция и теории, но по своей сути это эмпирическая наука: мы действительно не понимаем, почему нейронные сети работают хорошо. Есть статьи, которые дают некоторое объяснение того, почему ReLU, кажется, работает лучше, чем сигмоид / tanh - в частности, сигмоид / tanh страдают от исчезающих градиентов, когда их входы находятся в хвостах сигмоида / tanh (так как тогда их выход экспоненциально мал , поэтому градиент по существу равен нулю), а затем обучение застревает или продолжается очень медленно - но не ждите, что хорошая теория подскажет вам, что делать. Напротив, это в значительной степени эмпирическая наука, и, если нам повезет, у нас есть эксперименты и теория, которые помогут нам понять эмпирические данные, которые мы видим.
Я не вижу причин ожидать, что будет единственная функция активации, оптимальная для всех задач, поэтому меня не беспокоит, что это неправда, и я не думаю, что нам нужна «причина» для этого. быть ложным.