#machine-learning #keras
#машинное обучение #keras
Вопрос:
Я использую Keras для задачи, которая имеет одну основную цель и несколько дополнительных целей. Когда я тренируюсь по всем целям (и поэтому у меня несколько выходов), на каждую эпоху уходит столько же времени, сколько и при обучении с одной целью/выходом. Не следует ли нам ожидать, что в многоцелевом сценарии это займет несколько больше времени?
Ответ №1:
Как правило, это зависит от того, насколько велик выходной слой. Теоретически, большее количество нейронов на выходном слое означает большую матрицу перехода (т. Е. веса, если предположить MLP), что означает, что обратное распространение должно вычислять производные по большему количеству значений, но когда эти значения для начала относительно малы, я предполагаю, что большой разницы не будет
Комментарии:
1. Сеть имеет вес порядка 1 м. Переход от 1 выхода к 20 выходам не сильно влияет на общий размер, но не должно ли это привести к увеличению в 20 раз при расчете ошибок для каждого веса, так как ошибка с каждого выхода распространяется обратно? И разве это не значительная часть вычислений? Я наблюдаю, возможно, увеличение времени выполнения на 10%, в то время как я ожидал чего-то вроде 10-кратного.
2. Я думаю, что вы правы в отношении ошибки, но, вообще говоря, если бы вы думали о своих весах как о векторе с 1 м элементами, добавление еще 19 выходов (что составляет порядка 19 весов в общей сложности, при рассмотрении полного соперничества с предыдущими слоями) не добавило бы в общей сложности много (опять же, по сравнению с 1 миллионом, вы добавляете намного меньше весов. если только у вашего из последнего слоя нет 10^5 нейронов)
3. Вы правы в том, что он не добавляет много весов, но для каждого вывода необходимо выполнить обратное распространение ошибок. Это означает 20-кратное увеличение вычислений для вычисления ошибок и обновления всех весов в сети. Есть ли у Кераса какой-нибудь способ сделать это изящно параллельно или что-то в этом роде?
4. Градиенты скрытых слоев просто суммируются (или усредняются, в зависимости от того, как рассчитывается общая потеря) по всем выходным данным. После этого вычисления будут такими же, как и при одной потере/выходе.