@ehevnlem
Программирую с 1975, в интернете с 1993.

Как точность нейронной сети зависит от функции активации?

Здравствуйте! Например для машинного зрения. Быстрее всего сеть будет работать со ступенчатой функцией активации. Но насколько хуже? Можно ли снижение точности компенсировать увеличением количества нейронов?
  • Вопрос задан
  • 127 просмотров
Пригласить эксперта
Ответы на вопрос 4
@Zerg89
Если это приведёт к достаточному уровню реакции и времени исполнения то да
Ответ написан
Комментировать
mayton2019
@mayton2019
Bigdata Engineer
В процессе обучения сигмоид очень важен т.к. он обеспечивает сходимость алгоритма. Направление грубо говоря.

Насчет рабочего режима модели я не скажу. Но вроде-как нейросети очень толерантны к элементной базе. В 20м веке считалось что нейроны вообще нужно строить не на софте а в виде транзисторной логики. Или на биологических элементах (уж каких я не знаю).

Практически если у тебя уже есть софт и модель то замена одно функции на другую в коде это дело одной
минуты. Лямбду заменить. Или еще один класс унаследовать.
Ответ написан
@AlexSku
не буду отвечать из-за модератора
Ступенчатая функция (sign) сейчас не применяется из-за невозможности реализации градиентного спуска во время обучения. Самая быстрая это Relu (кусочно-линейная).
Точность достигается за счёт архитектурных решений (количество слоёв, прямой проброс (residual layer), ячейки памяти (LSTM, GRU), свёрточные фильтры, трансформеры).
Ответ написан
Maksim_64
@Maksim_64
Data Analyst
Ну "формулировка" вашего вопроса, говорит о том, что надо начать с архитектуры нейронных сетей.

Узел (Node) | Персептрон | Нейрон | Unit - все это одно и тоже, вычислительная единица которая имеет входные данные, функцию активации, выходные данные.

функция активации - определяет каким образом взвешенная сумма (weighted sum) ввода трансформирована в вывод из нейрона.

Слои Layers Input Layer, Hidden Layer, Output Layer.

Нейронные сети используют одну и туже функцию активации внутри слоя. Часто внутри Hidden Layers используется одна функция активации, а в Output Layer другая в зависимости от типа задачи например мы хотим интерпретировать выходной слой как вероятности, что бы они были от 0 до 1 и суммировались в 1. И наша функция активации в Hidden будет RELU, а в Output Layer Sigmoid например. Потому что каким таким чудом RELU нам даст числа которые могут быть интерпретированы как вероятности? Нормализация не решит наших проблем RELU не может быть использована в задачах классификации в OUTPUT LAYER в HIDDEN на здоровье самая популярная.

Я к чему это все, вы в своем вопросе упускаете этот момент, что это обычное дело иметь разные функции активации для Hidden и Output Layer's.

Для Hidden Layer вот эти три функции самые популярные.

1. Rectified Linear Activation (ReLU)
2. Logistic (Sigmoid)
3. Hyperbolic Tangent (Tanh)

Для Output Layer вот эти функции самые популярные.
1. Linear
2. Logistic (Sigmoid)
3. Softmax

Подробнее про Output Layer линейная функция активации, она не для мебели в списке, а это как нейронные сети решают задачи регрессии, то есть например для регрессии например Hidden Layer - RELU + Output Layer - Линейная функция, это абсолютно нормальная конфигурация.

Для классификации там или softmax или logistic в Output Layer. В зависимости от количества классов и т.д.

Про количество нейронов да и количество слоев мы имеем.

Size - количество нейронов в модели
Width - количество нейронов внутри слоя
Depth - Количество слоев в модели.

Сколько нейронов использовать внутри слоя? Ответ мы не знаем, это дизайн ты экспериментируешь, нету на этот счет теории. Сколько слоев? больше одного не считая входного, если объекты нельзя разделить в пространстве прямой линией (Linearly separable). Дальше этого у нас нет теории сколько слоев иметь, эксперимент и еще раз эксперимент. Так обычно нейронные сети имеют 2+ hidden layers.

По этому вопрос сколько слоев и нейронов в каждом на сегодняшний момент имеет ответ - экспериментируйте.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы