--------------------------- 0. プログラムについて --------------------------- BBC本の4章の図の作成に使用したMATALBプログラムを納めています。 4章で学習した内容の理解を深めるためや、自分で脳活動パターン判別問題を 解くためのコードを書くための参考にしていただけたら幸いです。 なお、プログラムにはエラーが存在する可能性があります。 これらのプログラムに起因する損害には著者は責任を持てませんので、予めご了承ください。 質問やバグ報告がある方は、著者メールアドレス(oyamashi(アットマーク)atr.jp)まで連絡ください。 時間の許す範囲で対応したいと思います。 ------------------------ 1. 動作環境 ------------------------ コードはMATLAB7.5(Linux)で作成しました。動作はMATLAB7.5(Linux 64bit, Windows Vista) で確認しております。 プログラムの動作にあたっては、MATLABのSignal Processing Toolboxが必須となっています。 判別分析を行うMATALB関数が1つ含まれていますが、それを実行するには個人配布しているツールボックス群が必要です(詳細は2.インストールの項に記述)。 ------------------------- 2. インストール ------------------------- @プログラムをダウロードして適当な場所に解凍してください。 ADATA.zipは本書4.2節で使われるサンプルデータを、SIMUDATA.zipはシミュレーションデータを含んでいます。 これらのデータをダウンロードの上、@を展開したディレクトリの中で展開してください。  BCprog/bc_4_2_ ...m : :   /subfunc   /DATA/...     /SIMUDATA/...  のようになっていれば正しくインストールされています。 B以下は、"bc_4_2_c_classification.m"を実行したい人のために必要なオプショナルなインストール手続きです。  このプログラムは、SVMやSLRやガウス判別器を用いて判別を行うコードであり、その計算にはSVMやSLRのプログラムが必要です。  以下のサイトからダウンロード可能ですので、サイトのインストール手続きに従ってインストールを行ってください。  SVM : LIBSVM : http://www.csie.ntu.edu.tw/~cjlin/libsvm/  SLR : SLR Toolbox : http://www.cns.atr.jp/~oyamashi/SLR_WEB.html ----------------------------------- 3. プログラムの実行のための準備 ----------------------------------- まずはサブ関数を納めているディレクトリへのパスを加えてください。作業ディレクトリがBCprogの下であれば、 > addpath('./subfunc'); をMATLABのコマンドプロンプト上で実行してください。もし、SVMやSLR toolboxをインストールしているのであれば、そちらにもパスを通してください。 --------------------------------- 4. プログラムの実行 --------------------------------- 実行可能なスクリプトプログラムは、 bc_4_3_1_fig4_9_filtfilt_filter.m のように、 @ "bc_" という頭文字 A "4_3_1" のようにそのプログラムが関連する本のセクション B "fig4_9"のように関連する図番号 C "filtfilt_filter"のように意味を示す文字列 を繋げた文字列で命名されています。Bが "sub"となっているプログラムは、本には記述されていないが関連する事柄を納めています。 各プログラムは、独立なプログラムとなっているので、どのプログラムから実行しても構いません。 ただし、本書4.2節に関わるプログラム群("bc_4_2_"で始まるプログラム群)は特殊なので、次に細かく説明します。 ------------------------------------------- 5. 4.2節に関連するプログラムの説明 ------------------------------------------- 4.2節では、脳活動パターン判別問題を解くのに必要な処理が、 (a) 前処理 (b) 特徴量計算 (c) 判別 の順に紹介されており、この3つの処理に対応して、 1. "bc_4_2_a_preprocess.m" 2. "bc_4_2_b_feature_computation1.m" 3. "bc_4_2_b_feature_computation2.m" 4. "bc_4_2_c_classification.m" の4つのプログラムが用意されています。まずは、この順番にプログラムを走らせてください。 プログラム1は、"DATA/"ディレクトリ内にある生データをロードして、前処理してできた試行データ "trialData.mat"を"DATA/"ディレクトリに出力します。 プログラム2,3は、プログラム1で出力された"DATA/trialData.mat"をロードして、特徴量計算を した結果を"featurePS1.mat"と"featurePS2.mat"として"DATA/"ディレクトリに出力します (それぞれ本文の特徴量1と2に対応します)。 プログラム4では、プログラム2,3で出力された"DATA/featurePS1.mat"と"DATA/featurePS2.mat"を ロードして、判別処理を行い結果を"resultClassification.mat"として"DATA/"ディレクトリに出力します。 それぞれの処理結果をファイルに納めるのに、計200MB程度の空きディスク容量が必要です。 他の、"bc4_2_"で始まるプログラムに関しては上記ファイルを作成した後に好きな順番で実行時してください。 ------------------------------ 6. サンプルデータについて ------------------------------ 4.2節のチュートリアルに使われているデータは、DATA.zipの中に納められています。 また、この"DATA/"ディレクトリには、(デフォルトでは)4.2節の各処理の結果ファイルが出力されます。 ------------------- 7. ライセンス ------------------- このプログラムのライセンスは以下のBSDライセンスに基づくものとします。 (基本的には改変、再配布自由です。) 詳しくは以下をご覧ください。 http://www.jp.freebsd.org/www.FreeBSD.org/ja/copyright/freebsd-license.html ----------------------------------------------------------------------------------------------------- ソースコード形式であれバイナリ形式であれ、変更の有無に関わらず、 以下の条件を満たす限りにおいて、再配布および使用を許可します: * ソースコード形式で再配布する場合、上記著作権表示、 本条件書および下記責任限定規定を必ず含めてください。 * バイナリ形式で再配布する場合、上記著作権表示、 本条件書および下記責任限定規定を、 配布物とともに提供される文書 および/または 他の資料に必ず含めてください。 本ソフトウェアは THE FREEBSD PROJECT によって、”現状のまま” 提供されるものとします。 本ソフトウェアについては、明示黙示を問わず、 商用品として通常そなえるべき品質をそなえているとの保証も、 特定の目的に適合するとの保証を含め、何の保証もなされません。 事由のいかんを問わず、 損害発生の原因いかんを問わず、且つ、 責任の根拠が契約であるか厳格責任であるか (過失その他) 不法行為であるかを問わず、 THE FREEBSD PROJECT も寄与者も、 仮にそのような損害が発生する可能性を知らされていたとしても、 本ソフトウェアの使用から発生した直接損害、間接損害、偶発的な損害、 特別損害、懲罰的損害または結果損害のいずれに対しても (代替品またはサービスの提供; 使用機会、データまたは利益の損失の補償; または、業務の中断に対する補償を含め) 責任をいっさい負いません。 ---------------------------------------------------------------------------------------------------------- ---------------- 8. 謝辞 ---------------- 本プログラム作成は情報通信研究機構の研究委託の一環として実施したものです。 情報通信研究機構に深く感謝申し上げます。