Никак не могу понять как именно выбирается количество слоев, какие именно свертки будут, какие именно функции активации будут и сколько именно входов-выходов будет у каждого слоя. Смотрю опенсорсные сетки. Блин, там по 8-12 слоев. Как они выбрали именно столько и именно эти?
По очереди:
1. как выбирают количество слоев? Видимо, наращивают по мере решения? То есть начинают с одного, задача не решается и добавляют другой? Но почему именно добавляют? Вдруг что-то не так именно со слоем, и не надо никакого нового слоя? Или слоев, например, 5. Как решают что нужен 6-ой, а не что-то не так с 5 уже существующими?
2. Как выбирают функцию активации? Где-то ReLU, где-то нет. Почему так, а не иначе?
3. Как решают сколько входов-выходов у слоев? Ну, вход первого и выход последнего — это ясно. А например, у первого 256 входов, 128 выходов, у второго 128 входов, 32 выхода, у третьего 32 входа, 1024 выходов, у четвертого 1024 входов 8 выходов. С фига ли так? Откуда вообще эти числа?
Давайте рассмотрим пример. Я не прошу нейронку для нее писать. Мне интересен ход мышления. Разобрал уже кучу туториалов и примеров из книжек. Все пишут/говорят как надо, но никто не говорит — а почему именно так.
Например, есть куча видосов автомобильного трафика. Надо определить скорость самой быстрой машины. Ну и пусть есть набор тренировочных данных. То есть для каждого видео и для каждого кадра есть число — скорость самой быстрой машины. Скажите ход мыслей как именно строить сеть? То есть вот такой первый шаг, не получилось — давайте добавим еще один — почему именно такой? Вот это интересно