3

私は機械学習(およびスタックオーバーフローも)が初めてで、いくつかの分類タスクを作成したいと考えています。LIBSVM とニューラル ネットワーク ツールボックスの Matlab のパターン認識ツールを使用して、データ セット (音声音響分野) に対して 2 つのグループ分類を実行し、隠れ層が 1 つある単純なネットワークを作成しました。より高い分類結果を期待して、ディープ ニューラル ネットワークを試してみたいと思います。このコードを見つけました: http://www.mathworks.com/matlabcentral/fileexchange/42853-deep-neural-network

ちょっと理解に苦しむ。

私のデータは 19 個のパラメーターの 127 サンプルで構成されているため、入力番号は 19 です。それらを 0 と 1 の 2 つのグループに分類したいので、出力番号は 1 です。データ セットの値は 0 と 1 の間で正規化されます。 .

私のコードは次のとおりです。

clear all
clc

addpath('..');
load('data.mat')

inputdata = inputs;
outputdata = outputs;

datanum = 127;
outputnum = 1;
hiddennum = 3;
inputnum = 19;

% rbm = randRBM(inputnum, outputnum);
% rbm = pretrainRBM( rbm, inputdata );

dbn = randDBN([inputnum, hiddennum, outputnum]);
dbn = pretrainDBN( dbn, inputdata );
dbn = SetLinearMapping( dbn, inputdata, outputdata );
dbn = trainDBN( dbn, inputdata, outputdata );

estimate = v2h( dbn, inputdata )
[rmse AveErrNum] = CalcRmse(dbn, inputdata, outputdata)

コードが実行されます。rmse は 0.4183、AveErrNum は 0.1969 です。必要なのは、ターゲット (outputdata に格納されている) とネットワーク予測 (精度 = 正しく分類されたデータ / すべてのデータ) の間の分類精度です。二値化後のネットワーク予測はどこにありますか?

分類に適切なタイプのネットワークを使用していますか? データをトレーニング、検証、およびテストのサンプルに分割する必要はありませんか (隠れ層が 1 つある単純なニューラル ネットワークの場合など)。

助けてくれてありがとう!

4

0 に答える 0