Есть первое приближение, сложность задачи практически линейно влияет на количество нейронов, но вот как именно оценить численно эту сложность - зависит от задачи.
Есть предположение, что каждый последующий слой (для deep learning) это фактически отдельная задача преобразования данных в другую форму, выделение критериев, внутренняя классификация и т.п., а количество нейронов в слое - это сложность именно этого преобразования.
Если зависимость между входами и выходами имеет сложную форму (не просто если-то), то каждый лишний слой - определяет именно эту зависимость, но все они работают сразу для всех условий в зависимостях...
И вообще, нейроны в нейронной сети это как голограмма, они все одновременно влияют на результат. Я поверхностно копался в доступной информации, в основном все гуляют вокруг изучения конкретной задачи.
Еще одно направление исследования сложности нейронной сети - ее модификация. Сначала вы делаете сеть достаточно сложной по вашему мнению, для того чтобы она описывала вашу предметную область, а затем ее уменьшаете, удаляя отдельные веса и нейроны (после каждой модификации необходимо повторное до обучение).
Вполне возможна игра с входными обучающими данными, их можно группировать, выделять для их группировки отдельные нейронные сети, и обучать разные сети для разных групп.
А еще фишкой последних лет является использование тензоров, для того чтобы обучать не саму нейронную сеть а ее упрощенный вариант (тензор, это я так понял, мы преобразовываем веса нейронной сети в упрощенное дерево, проводим обучение на его основе а затем результат приводим обратно к сети ) - это позволяет уменьшить требования ресурсов на обучение на порядок. К сожалению красивых примеров в русскоязычном сегменте интернета нет, да и на английском... только пара открытых библиотек имеет готовую реализацию по работе с тензорами, tensorflow от гугла и theano