2017-05-14 17 views
-1

深い学習について学び始めていて、synaptic.jsが見つかりました。簡単な深い学習の予測

数字の入力があり、AIがパターンを理解したいと思う予測システムを作成したいと思います。

私の訓練データは2つの数字の配列で、検証したい出力は[x、y、z]です。ここでxとzは偶数/奇数のブ​​ール値の一種であり、yは両方入力の数字。

ので

var trainingSet = [{ 
    'input': [20, 34], 
    'output': [1, 54, 0] 
}, { 
    'input': [22, 33], 
    'output': [1, 55, 1] 
},{ 
    'input': [24, 35], 
    'output': [1, 59, 1] 
},{ 
    'input': [23, 36], 
    'output': [0, 59, 0] 
}]; 

と私は答えを知っているAIをご希望の場合はI入力[20, 31]

どうすればこのようなロジックを設定できますか?

// training data generator: 
 
var trainingSet = []; 
 
for (var i = 0; i < 500; i++) { 
 
    var obj = {}; 
 
    obj.input = [ 
 
     Math.random() * 10, 
 
     Math.random() * 10 
 
    ].map(Math.round); 
 
    obj.output = [ 
 
     Number(obj.input[0] % 2 == 0), 
 
     obj.input[0] + obj.input[1], 
 
     Number(obj.input[1] % 2 == 1) 
 
    ] 
 
\t trainingSet.push(obj); 
 
} 
 

 
document.body.innerHTML = JSON.stringify(trainingSet);

は私が

は基本的にin this jsFiddleをtrainigデータを生成するためのループを作った... YouTube talkに基づいてjsFiddleを開始したが、コードが実際に何をするか理解していません

+0

なぜ、「あまりにも幅広い」クローズ投票が理由を説明するのは大歓迎です。私はこれを特定の問題、特定の言語、特定のAPI /ライブラリに細分化しようとしました。私はこれがどこに "広すぎる"ことができるかわかりませんが、もちろんそのコメントを歓迎します。 – Rikard

+0

あなたは言語と問題を選択したかもしれませんが(どちらもNNの悪い選択肢ですが)、独自の試みは追加しませんでした。これは悪い準備のようです。 **編集:**このjsFiddleリンクを訪問した後(SOに行く最良の方法ではない)、単純なモデルかもしれませんが、それが本当に(線形の)パーセプトロンなら、うまく動作せず、良いニューラルネットワークコースの最初の部分(問題のモデル複雑度はどれくらいですか?問題は線形分離可能ですか?いいえ、いいえ)です。最初に理論を学びましょう。 – sascha

+1

@サシャ私はこの問題をdownvoteする理由はありません。それは具体的であり、よく記述され、著者はそれを解決しようとしています。 「理論を学ぶ」と言うのは役に立たず、SOの大部分の質問にも適用できます。著者に:私が間違っていれば訂正してください。問題はやや逆転してはいけませんか?あなたの声明では、出力に基づいて入力を予測したいので、効果的な出力はあなたの訓練でなければなりません。 –

答えて

1

あなたが構築する発電機が単に私たちに問題を説明していない限り、問題を解決する方法はありません。より正式には、出力から入力を回復できるような関数は存在しません。ジェネレータは乱数を生成し、保存されるのはそれらが奇数/偶数か和かどうかです。これらの基準を満たす数字は無限に存在します。あなたの例から:54 = 20 + 34 = 18 + 36 = 16 + 38 ...これを動かすプロセスがあれば、それを行うことができます。しかし、それはランダムです。パターンがないため、ニューラルネットワークはパターンを学習できません。

関連する問題