Нет, это вопрос экспериментов, чтобы найти то, что решает вашу проблему. Как показывает ваша справка, сложность слоя определяется внутренней сложностью ваших данных и классификациями, которые вы пытаетесь сделать.
В качестве общего принципа обратите внимание, что скрытый слой - это минимальное удобство: линейная комбинация линейных комбинаций не дает никаких дополнительных возможностей для обучения: это все еще линейная комбинация. Таким образом, вам нужен только один скрытый слой - хотя для некоторых задач использование двух или трех скрытых слоев немного уменьшит количество нейронов, необходимых для обучения с той же скоростью.
Когда мне нужно сделать такой дизайн, я нападаю на него просто: начните со скрытого слоя с моим лучшим предположением о количестве нейронов, которое мне понадобится. Тренировать модель; если он не может сходиться, посмотрите на функцию потерь, чтобы увидеть, насколько сильно она потерпела неудачу. Исходя из этого, увеличьте нейроны (двойные, 10х, ...) и попробуйте снова.
Как только это удастся, я постепенно уменьшаю количество нейронов, пока не найду «точку отсчета» для точности по сравнению с временем тренировки.
Некоторые проблемы не могут быть легко решены с помощью простого NN. В зависимости от приложения вам может понадобиться что-то из мира глубокого обучения, например, простой CNN (Convolutional NN).
Если ваш набор данных достаточно сложный, вы также можете применить PCA (анализ основных компонентов), чтобы найти важные входные параметры. Затем вы можете уменьшить входные данные, значительно уменьшив размер NN и время обучения, необходимое для схождения.