Skip to content

落書き ニューラルネットワークのミニバッチ

合ってるんだか間違ってるんださっぱりかわからないミニバッチの図。

適当にスケッチするだけのつもりだったけど、思いのほかお絵かきが楽しすぎて終わらない。時間がどんどん消費されてちょっとあぶない。

minibatch

そして後半失速。大事な逆伝播の方がちょっと適当に。

minibatch2

少なくともバイアス項のことは完全に忘れていたよ。

こんな感じでやればRuby + Numo/Narray + Parallel + OpenBlas でマルチプロセスでミニバッチしたneural network作れるんじゃなかろうか。。

というのは憶測で、数式も他人のコードもほとんど読まずに書いているのでこのまま動かすのは自信なし。数式はどうせわからないから仕方ないとして、プロの方がnumpyでちゃんと書いてある実装でも読んで勉強してこよう。。

おまけ

下に書いてあった不具合がもう修正されている。毎回そのスピードにおどろく。newdimのかわりにexpand_dimsがあった。

↑とかnewdim は reshape(なんちゃらほい,1,なんちゃらほい)とかで対処するとして、
ReLUのために a * (a > 0) がほしいなあ。
a[a < 0] = 0; a すればいいとしても (a > 0).to_f なんかは簡単に書く方法が思いつかない。

One Trackback/Pingback

  1. […]  以前Ruby/Numo/Narrayを使ったMnist認識ニューラルネットワークで、Parallelという並列処理のgemを使ってCPUによるインチキ並列処理のスケッチを思いついたけど、実際に試してみたらParallelで […]

Post a Comment

Your email is never published nor shared. Required fields are marked *
*
*