• このエントリーをはてなブックマークに追加

今なら、継続入会で月額会員費が1ヶ月分無料!

記事 5件
  • 【ヤバイ】ニューラル・ネットワークは本当に蒸留できるのか!?実験してみた【機械学習】

    2016-10-01 07:27  
     チュッス!オレだ。 あちら側でニューラル・ネットワークの蒸留がヤバイぜみたいな話になっているけど、あっちはあっちであんまり技術的要素強めの内容は書けないので実際に実験してみたオレの回顧録をここに記しておく。 蒸留について詳しくはあっちの記事を読んでほしいんだけど、かいつまんで言うと、要は勇気がないんでしょ・・・じゃなくて、複雑なネットワークをより単純なネットワークで置き換える手法である。 たとえばGoogLeNetで解析した画像をよりシンプルな構造のネットワークに転写することができるというわけだ。 ほんとかよ。 で、最初ためしに適当に作ってみたら・・・ わかりますかこの圧倒的絶望感 lossの値に注目 e+29ですよ。つまり0が29も付くんですよ。 たしかにlossは下がってるから学習はできているのだろう。 だがしかし!だがしかし!こんなんじゃいつまで経っても無理じゃんか なにがいけない
  • 【簡単】Chainer/Deelで手軽に学習済みCaffemodelを読み込んで性別や年齢判定に使う【便利】

    2016-09-25 11:13  
     前回、ついにChainerのCaffeFunctionを改造したことで、いろいろなCaffemodelを取り込んで使う時にもう「Chainerの内部で落ちてるから使い方わからんオワタ」と思わなくて済むようになった。しかし改めてChainerはわかりやすくて素晴らしい。 ちなみにCaffeモデルは公開されているものでも簡単に使えるやつと使えないやつがある。 ものによってはCaffeモデルだけでなく改造済みのCaffeとセットで公開されているものもあり、ちょっとノイローゼになりそうな気分である。それを移植しようとすると、改造済みのCaffeの中身も調査しなければならず、まあ単純に関数が増えたとかならまだいいんだけど、どうもそういうわけでもないケースも散見されて悩ましい。つらい まあいいや。 そういうわけで、いろいろすぐに使えるやつを試して見たんだけど、とりあえず性別判定と年齢判定、それと場所
  • 【勝利】 Microsoftの152層CNNを学習させるためにChainerを改造する!【機械学習】

    2016-09-20 06:00  
     前回、惜しくもメモリーエラーで終わってしまったMicrosoftの152層畳み込みニューラル・ネットワーク(略してCNN)、ResNet152のファインチューニング、人間の尊厳に掛けてできないというのは悔しい。 そこでついにChainerのソースを改変して対処することにした。 とはいっても、Chainerのソースをいじってしまうとあとで面倒なので、caffefunction.pyをコピーしてきてオレオレCaffeFunctionを作ったわけだ。 Chainerのソースの中でもCaffeのモデルを取り込むCaffeFunctionはとりわけ見どころが多いソースだと個人的には思う。 なぜなら、このソースさえマスターしてしまえば、CaffeとChainer、両方のことが一気に把握できる上に、これまであまりネットワークの構造を深く考えなくてもなんとなく使えてきてしまっていたChainerのモデル
  • 【人間より正確】 Microsoftの152層畳み込みニューラル・ネットワーク のファインチューニングに挑戦する!

    2016-09-19 08:45  
     今日もひきつづき、Microsoft先生が昨年発表した152層というノイローゼのような超深層のニューラル・ネットワークの話をしよう。 ResNetは、152層という驚異的な層の深さで知られるピカピカの畳み込みニューラル・ネットワークで、ついに人間よりも正確という驚異の的中率を実現した記念碑的なAIだ。 しかし相変わらずILSVRC2012のバタ臭いデータしか知らないため、我々日本人にはいまいち役に立つ機会がない。 そこで誰でも簡単にニューラル・ネットワークが操作できちゃうDeelをまたぞろ改造して、ちょいとResNet152をファインチューニングしてみたいと思う。 こんなプログラムを書いてみた。わかりますね、超簡単ですね。基本的にデフォルトのfinetuning.pyがGoogLeNetを使っているところをResNetに変えただけ!シンプル!イズ・ザ・ベスト!これでやってみるぜ!ゴーゴー
  • 【機械学習】 Microsoftの最強(?)152層畳み込みニューラル・ネットワーク を試す

    2016-09-16 07:00  
     やあみんな、畳み込んでるかな? 今日はMicrosoft先生が昨年発表した152層というノイローゼのような超深層のニューラル・ネットワークの話をしよう。 GoogLeNetが、Inceptionモジュールという組を作って、Inceptionモジュールごとにlossを逆伝播させてやることで層を深くしていたことはみんなもよく知っていると思う。 これがInceptionモジュール Pervious layerから入力された特徴が1x1の畳み込みや3x3の畳み込みを経由して最終的には統合される。 これをノイローゼのように繰り返し繰り返し深くしていって、38層という非常に深いネットワークを構築している。 図で黄色で表されたところがSoftmax層で、要はここで推定しているわけだから、lossを返すのはこの三箇所ということになる。 GoogLeNetは層が深い割には計算量が少ない。そのかわり、学習さ