Александр Амплеев, И так, и так будет работать, но чем больше примеров в батче (пачке примеров для одного шага обучения) - тем точнее.
В формулах обычно не акцентируется, что обучение идет батчами, кроме тех случаев, где это важно.
Александр Амплеев, в идеальном мире обучение происходит сразу на всем датасете - прогнали примеры, усреднили градиенты, изменили веса, повторили.
В реальном мире датасеты обычно слишком большие (или иногда доступны только в потоковом режиме), чтобы так можно было бы делать, поэтому "истинные" градиенты аппроксимируют градиентами мини-батча - берут небольшое количество примеров, делают шаг спуска, берут следующий набор примеров, делают еще шаг. При этом градиенты мини-батча получаются более зашумленными, но дистанция все вернет.
DevMan, чтобы учиться без вуза, надо уметь учиться.
Кто умеет это делать, тому вуз будет большим подспорьем. Кто не умеет, тот и сам по себе точно так же будет штаны протирать, только с еще худшим результатом.
Вуз дает некоторую минимальную планку знаний и умений. Стохастическую, конечно - кто-то будет ниже, а кто-то сильно выше. Но вот не надо занижать его роль, даже если есть исключения перед глазами.
По программе и по презенташке больше похоже на то, что по этому направлению хотят готовить молодых предпринимателей-стартаперов для hi-tech областей, а не инженеров. В программе присутствуют дисциплины типа тайм-менеджмента, умения делать презентации и т.д.
Так-то, наверно, вполне интересная тема, если к этому душа лежит.
Точнее обучится не домножать на -1 и прибавлять 1, а назначать первому классу большое положительное значение перед сигмоидом, а второму - большое отрицательное.
Сигмоид же идет последним преобразованием.
Герман, scikit-learn - это много всяких методов машинного обучения помимо глубокого (т.е. нейронных сетей) - random forest, SVM, LDA и т.д.
Tensorflow - это исключительно нейронные сети, но функционал там в этой части гораздо, гораздо шире, чем в sklearn.
Keras - это сейчас часть tensorflow.
Tensorflow - это весьма крутая штука, и при этом хорошо документированная.
Алексей Полоз, нет. Функция потерь в данном случае - это mean squared error.
Производная от неё - это и получается error в первом случае или f во втором.
Dplll, rnn.GRUCell(units)
Слои, ячейки RNN - это же классы, которые группируют вместе несколько переменных и реализуют мат. операции над ними + еще немного всякой всячины.
Фактически создание переменной происходит в tensorflow.python.ops.rnn_cell_impl.GRUCell.build
Чтобы все это поправить в твоем коде, надо в gru_cell передавать название переменной (и дальше в GRUCell), которое будет снаружи формироваться, например, как "decoder_cell_{}".format(i) в цикле.
cells = [gru_cell() for _ in range(4)] <----- это вообще нигде не используется.
snegirev_news, со скрытым слоем стоит поиграться. Современные CPU легко отработают и 32, 64, 128 нейронов. Размер выходного слой лучше делать равным количеству классов = 4, и применять функцию активации softmax + функцию потерь log loss для множества классов (она же crossentropy).
Json - не самый лучший формат для хранения больших данных. Ведь он не позволяет читать данные в потоковом режиме, пример за примером; там надо сначала его весь целиком распарсить. Какой-нибудь csv куда лучше подходит.
Альберт, польза от негативного датасета будет, только если там будут примеры, похожие на положительные. Встроить их в GAN довольно просто.
В примере с ребенком это не генеративная сеть, это reinforcement learning с наградами, которые заранее обрезают какие-то пути для поиска.
В формулах обычно не акцентируется, что обучение идет батчами, кроме тех случаев, где это важно.