2016-09-19 7 views
0

私は巨大なtrainDataを持っており、ランダムなサブセットを取り除きたいとします(1000回言うとします)、それらを使ってネットワーク・オブジェクトを逐次トレーニングします。 neuralnet Rパッケージを使用することで可能ですか?私は何を考えていますすることのようなものです:ニューラルネットの逐次トレーニング

library(neuralnet) 

for (i=1:1000){ 
classA <- 2000 
classB <- 2000 
dataB <- trainData[sample(which(trainData$class == "B"), classB, replace=TRUE),] #withdraw 2000 samples from class B 
dataU <- trainData[sample(which(trainData$class == "A"), classA, replace=TRUE),] #withdraw 2000 samples from class A 
subset <- rbind(dataB, dataU) #bind them to make a subset 

、その後のように何度も何度もneuralnetオブジェクトを訓練するために、実際のtrainDataのこのサブセットを養う:私の質問は、このneualnetオブジェクトnn命名されますされ

nn <- neuralnet(formula, data=subset, hidden=c(3,5), linear.output = F, stepmax = 2147483647) #use that subset for training the neural network 
} 

ループのすべての反復で訓練され、ループが終了すると完全に訓練されたニューラルネットワークオブジェクトを取得しますか?第2に、ニューラルネットが特定のサブセットのために収束することができない場合に非コンバージェンスの効果はどのようになるか?予測結果に影響はありますか?

+0

これは、非決定論的アルゴリズムの動作が不十分に列挙されていることを予測するための2つの質問です。他のスタック交換フォーラム、ベータマシンラーニング、または確立された統計フォーラムのいずれかで、より適切なものと思われます。 (第2のものは 'try"や他のいとこの1つを使って答えているようです) –

+0

@ 42-あなたのコメントから理解できるのは、 "この質問はstackoverflowには適していません。私はニューラルネットワークを訓練するために言及しました "私は正しいですか? – Newbie

+0

パート1の建設的な提案を認めない。パート2で正しくない。 –

答えて

1

最短の答え - ノー

もっと微妙な答え - 並び替えの...

なぜ? - neuralnet::neuralnet関数は、thresholdに到達していない場合は、stepmaxの範囲内でweightsを返すように設計されていないためです。ただし、thresholdに達した場合、結果のオブジェクトには最終weightsが含まれます。次に、これらのweightsは、引数としてneuralnet関数に供給して、連続学習を可能にすることができます。あなたの呼び出しは次のようになります。

# nn.prior = previously run neuralnet object 

nn <- neuralnet(formula, data=subset, hidden=c(3,5), linear.output = F, stepmax = 2147483647, startweights = nn.prior$weights) 

サブセットのうち、情報の適切な量を得るためにthresholdを選択するともstepmaxの可能性が高いだろう前に、それが収束する」を確認しながら、しかし、私は最初に「いいえ」と答え推測ゲームであり、あまり客観的ではありません。

あなたは私が考えることができる、基本的に4つのオプションがあります。

  1. は、この明示的
  2. neuralnetソースコードを取得し、weights場合でも、「収束」ISN」を返すように、それを修正することができます別のパッケージを探します達成された(すなわち、thresholdに達する)。
  3. 適切なサイズのランダムなサブセットを用意し、その上にモデルを作成し、そのパフォーマンスをテストします。 (これは実際にAFAIKというかなり一般的な方法です)。
  4. すべてのサブセットを取り上げ、それぞれのモデルを作成し、それらを組み合わせて「アンサンブル」モデルとして探します。
0

ライブラリー(e1071)とチューニング機能を使用して多数のネットを訓練するには、k倍検証を使用することをお勧めします。

関連する問題