Я проверил линейную регрессию 1d входа и 1d выхода с помощью pytorch, используя три различных способа.
Один использует формулу из линейной алгебры,
другой использует nn.Linear (1,1).Эти два всегда дают одинаковое решение.
Однако, когда я использую два слоя: nn.Linear (1,2) и nn.Linear (2,1) последовательно для третьего подхода, результат сначала не сходится,После того, как я установил намного меньшую скорость обучения и намного большее число эпох, это, наконец, показывает его сходимость.
Теоретически, поскольку композиция линейного преобразования снова является линейным преобразованием, они должны давать один и тот же ответ, независимо от одного слоя и двух слоев.Интуитивно я думал, что больше нейронов и слоев делают вещи более эффективными.Но это говорит об обратном, и я не понимаю.
Код в github .Пожалуйста, сразу перейдите в последнюю оболочку для третьего подхода.Ожидаемый результат приведен в первом и втором подходах в записной книжке.