前に書いた【MSGD】Goで確率的勾配降下法を書いてみた【gonum/matrix】 の続きで goroutine で MSGD (Mini-batch Stochastic Gradient Descent)を並行処理化してみました。 参考にさせて頂いた書籍は, オンライン機械学習 (機械学習プロフェッショナルシリーズ)です。 確率的勾配降下法の並列化 前回は Minibatch に分割して Minibatch単位で パラメータを更新する MSGD を書いた。 確率的勾配降下法 (に限らずオンライン学習に関する最適化手法?) の並列化について, 大まかに下記の3つのアプローチがある。 Bulk Synchronous Parallel(BSP) : 各プロセスが1回同期するたびに全体を同期する Parallel SGD : 各プロセスで学習し, 最後に1度だけパラメータベクトルの平均を計