備忘録とか日常とかスマートフォン用の表示で見る備忘録とか日常とか学んだこととかを書きます。この広告は、90日以上更新していないブログに表示しています。learningは十分な量のデータセットがあって初めて効果を発揮することは周知の事実である。対象がなんにせよ、初めからそこまで用意できないのであればわざわざそれを使うことなく、従来のような特徴量抽出でもって機械学習したほうが性能は出るはず。今現在研究で使っているデータセットは二千枚程度(3クラス)で、あまり多いとは言えない。learningを使ってみる)を指示されたわけである。augmentationによってデータ量を水増しすることで実験している。使っている画像はいわゆる一般物体認識のようなものではなく、ある一定のテクスチャパターンが画像全体に写っているようなものである。顕微鏡下で撮られた細胞培養の写真とか、内視鏡による患部の画像とか、そういうの感じのやつ。そのパターンを3クラスに識別し、画像中にどのクラスのパターンが最も多いか、また画像のどの部分にどのクラスがあるかを可視化することが目的である。theanoでネットワークに使うlayerを定義する。x)ほぼほぼDeepLearningTutorialの内容と同じだが、ちょっとだけ書き換えてる。ConvolutionとPoolingを別々に定義し、それぞれにpylearn2からcuda-convnetのFilterActs()とMaxPool()を使っている。あとdropoutとかreluとか。正規化層も書くべきかと思ったが、データセットがすでに特殊な環境下で撮られた(ある程度正規化された?)ものなので、どれぐらい効果があるのかはわからない...とりあえず後回し。実際使うときはTutorialと同じ感じなので割愛。次に画像をcropしていく。使う画像はクラスごとにディレクトリに入れて、0,1,2,...とリネームして同じ階層に入れておく。そこで次の関数を使う。tその後cropしていくわけだが、その際に小領域のsizeと、それを動かすstepを指定できるようにした。イメージとしては畳み込みのフィルタの動かし方と同じ感じ。size>stepとすればoverlapしてcropすることもできる。result変数augmetationを"reverse"とすると左右反転、"rotate"とすると45度回転×4枚も加える。あとは以下の関数でnumpy.ndarrayとして返せば、データセットとして使えるようになる。augmentation)一応crop後の各クラスの総数を表示するようにしている。forestなどの識別器の性能には勝てていない。チューニングが難しいので結局手間はあんまり変わらないのかな。CNNで抽出した特徴をファイルに出力タイトルの通り。読んでいく...機械学習に関する色んな書籍が世の中には出回っている。learningを勉強中。(1)はてなブログをはじめよう!may46onezさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。