На самом деле, это немного разные понятия.
Backpropagation дает нам функцию, которую надо оптимизировать ( = найти минимум\максимум).
SGD находит минимум\максимум некоторой произвольной функции.
Кроме стохастического спуска, есть еще full-batch gradient descent (это тот самый, по умолчанию, когда изменяем коэффициенты после обсчета всей выборки), mini-batch gradient descent (промежуточный вариант, когда меняем коэффициенты после обсчета N элементов выборки), rmsprop, ADAM, имитация отжига и т.д.