現在ニューラルネットワークのC言語で書かれたDLLを利用して機械学習をしています。AWSのEC2を利用することも考えられますが、MapReduceの方が目的にかなっているサービスだと感じています。
ところが、webのサンプル等は単純なテキストマイニング、または特定文字のカウントばかりで、私のニーズが実現できるか確認することができませんでした。
市販のプログラム(DLL)とS3に格納するinput/outputデータを用いて現在のMapReduceを使って機械学習を実施することはできるでしょうか?
「C言語で書かれたDLL」というのは、Windows用に作成されたモジュールを指していますよね。そうなると、MapReduceとスキームが異なるので、そのままDLLを利用することはできません。
「C言語で書かれた」ソースをリコンパイルして、MapReduceで利用できるようにするのが最善策です。
MapReduce というのは、EMR のことを言われているのだと思いますが EC2 のサービスの中で Hadoop クラスタを動作させるものです。
Hadoop フレームワークは java で実装されていますが、アプリケーションを java で実装しなくてはいけないということではないです。
http://aws.amazon.com/jp/elasticmapreduce/
Amazon Elastic MapReduce の機能
望むなら、Cascading、Java、Ruby、Perl、Python、PHP、R、C++ の中から選んで、より洗練されたアプリケーションを開発することもできます。入門ガイドにはいくつかのコードサンプルとチュートリアルが用意されています。
c++ で Hadoop アプリケーションを作るときには Pipes というライブラリを使います。
http://oss.infoscience.co.jp/hadoop/common/docs/current/mapred_tutorial.html
実際のソースのイメージはこちらあたりを見ると参考になるんじゃないでしょうか。
http://www.slideshare.net/youandi060219/mapreduce-hadoop-c
http://d.hatena.ne.jp/nokuno/20110428/1303952209
MapReduceによる大規模データを利用した機械学習
http://www.slideshare.net/pfi/mapreduce-7022974
ニューラルネット自体は、並列処理や分散処理と相性が良いので、質問文のようなことは可能でしょう。
ただ、市販のプログラム(DLL)がどういうものか不明なので・・・。
たぶん、これを使用するというアプローチでは、無理だと思います。
コメント(0件)