シェア
岩谷 成晃
2018年5月16日 12:58
このバージョンの時点MNIST手書き数字データで学習及び成果テストをした。結果はだいたい80〜90%正解。(記事公開時は70〜80%と記載してましたが、いろいろ修正調整して90%まできた)機械学習モデルとしてはダメダメだけど、根本的にやってることが間違ってるってことはなさそうでちょっとホッとした。自分でいろいろ調整しつつ、学習データもテストデータも毎回全部通すと時間かかるからラン
2018年5月15日 17:33
このバージョンの時点ソフトマックス層を実装しようと思っていたが、正準連結関数というものを使えば逆伝播させる誤差までまとめて楽に計算できるようなので(一応手計算で確かめはした)それを利用した。いい感じに動いているように見えるが、いかんせん確信が持てないのが辛い。次あたりMNIST食わせてみよう。そろそろ全体像が把握できてきた気がするので、Tensorfowなりなんなりデファクトなライ
2018年5月14日 14:57
このバージョンの時点※あまり期待通りに動いていないため、多分何かミスしてます畳み込み層のバックプロパゲーションを実装した。ついでにReLUとMaxPoolingも。結果はこんな感じ。(畳み込み層の誤差伝播が間違ってるのにさっき気づいたけど、いまの構成だとそれより前に層がないので動作には影響ないはず。)いまは各クラスに教師データはひとつで、繰り返し学習させるという動作になっている
2018年5月11日 13:35
このバージョンの時点バックプロパゲーション(逆誤差伝播法)が実装できた。できたといっても、伝播していく枠組みを作って、実装はとりあえず全結合層でのみやったというだけだけど。期待通り動いてそうに見える。とにかくいくつも解説してあるブログ記事を読んだけど、わかったと思って実装してみようとするとできない。- 順伝播の導関数ってどうやって実装するの?- 出力層から「何を」受け取って「何を
2018年5月2日 22:09
このバージョンの時点前回のMatrix(二次元配列)でもMatrixArray(三次元配列)でも同じ型で扱えるように修正をするつもりでいる。これを実装した。具体的には代数を扱うライブラリをEigenからArmadilloへ変更した。機能は増えてないし、動作も変わってない。Armadilloを選定した理由としては、前回も書いた通りEigenでは三次元配列が扱えないからだ。正確に
2018年4月27日 22:08
Machine Learningについて勉強したかったけど本を読むのが苦手なので、作ってみることにしました。とりあえず興味の湧いたCNN(Convolutional Neural Network)を。「よしわかった!作ってみよう」じゃなくて「わからん!作ってみよう」なので何か間違ってる可能性は多分にあります。また、実用に耐えるものを作ることは目的ではなくあくまで勉強のためなので、世にある他
2018年4月27日 22:17
このバージョンの時点このビデオを見ながら作っている。とりあえず教師画像を入れるといくつかのフィルタを通って分類器が作られて、入力画像とそれぞれの教師画像との類似度を計算するところまでできた。これからバックプロパゲーションの処理を作っていきます。学習する部分はまだ作ってないので分類器としての精度はもちろんぜんぜんなんだけど、本やブログを読んでなんとなくわかった気になってた部分が一気に
2018年5月2日 10:19
このバージョンの時点(前回から更新なし)バックプロパゲーション(逆誤差伝播法)を実装しようといろいろ調べてた。- 勾配法というものがあるらしい。今回は実装しない。- 学習において、CNN層(畳み込み層?)と全結合層は別物として考える必要があるのかと思っていたのだけど、どうやら共通のインターフェースで扱えそうなことがわかった。- 共通インターフェースで表せそうだということがわかったの