简单的深度学习预测

Simple deep-learning prediction

我开始学习深度学习并发现 synaptic.js

我想创建一个预测系统,输入数字并希望 AI 理解该模式。

我的训练数据是一个包含 2 个数字的数组,我想要验证的输出是 [x, y, z],其中 x 和 z 是 even/odd 的布尔值,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 based on a YouTube talk 但不明白代码的实际作用...

循环生成训练数据 in this jsFiddle 基本上是:

// 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);

除非你搭建的生成器只是简单的向我们解释问题,否则问题是无法解决的。更正式地说,不存在可以从输出中恢复输入的函数。生成器产生随机数,保留的是它们是否是奇数/偶数以及总和。存在满足这些条件的无限组数字。从你的例子:54 = 20 + 34 = 18 + 36 = 16 + 38 ...如果有一个过程驱动这个,它可以完成。但它是随机的。你的神经网络永远无法学习模式,因为没有模式。