我开始学习深度学习并找到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]
}];
如果我输入[20, 31]
,我希望AI知道答案。
我如何设置这样的逻辑?
我基于jsFiddle开始YouTube talk,但不明白代码实际上是做什么......
制作循环以生成基本上为in this jsFiddle的训练数据{<3}}。
// 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)
]
trainingSet.push(obj);
}
document.body.innerHTML = JSON.stringify(trainingSet);
答案 0 :(得分:1)
除非您构建的生成器只是向我们解释问题,否则问题无法解决。更正式地说,不存在任何函数,以便您可以从输出中恢复输入。生成器产生随机数,保留的是它们是奇数还是偶数和总和。存在一组满足这些标准的无限数字。从你的例子来看:54 = 20 + 34 = 18 + 36 = 16 + 38 ......如果有一个过程驱动这个,就可以完成。但它是随机的。你的神经网络永远无法学习模式,因为没有模式。