如何提高前馈神经网络的准确性?

ade*_*ago 15 javascript artificial-intelligence training-data neural-network synaptic.js

我想用这个神经网络绘制 StackOverflow 的标志:

在此处输入图片说明

理想情况下,NN 应该变成[r, g, b] = f([x, y])。换句话说,它应该为给定的坐标对返回 RGB 颜色。FFNN 非常适用于简单的形状,如圆形或盒子。例如,经过数千个 epoch 后,一个圆看起来像这样:

在此处输入图片说明

自己试试:https : //codepen.io/adelriosantiago/pen/PoNGeLw


然而,即使经过数千次迭代,StackOverflow 的标志也更加复杂,因此 FFNN 的结果有些糟糕:

在此处输入图片说明

从左到右:

  1. StackOverflow 的 256 色徽标。
  2. 有 15 个隐藏的神经元:左边的手柄永远不会出现。
  3. 50 个隐藏神经元:一般来说结果很差。
  4. 0.03 作为学习率:在结果中显示蓝色(蓝色不在原始图像中)
  5. 时间递减的学习率:出现左手柄,但现在丢失了其他细节。

自己试试:https : //codepen.io/adelriosantiago/pen/xxVEjeJ

一些感兴趣的参数是synaptic.Architect.Perceptron定义和learningRate值。


我怎样才能提高这个神经网络的准确性?

你能改进这个片段吗?如果是这样,请解释你做了什么。如果有更好的 NN 架构来处理此类工作,您能否提供一个示例?

附加信息:

xur*_*rei 7

通过添加另一层,您可以获得更好的结果:

let perceptron = new synaptic.Architect.Perceptron(2, 15, 10, 3)
Run Code Online (Sandbox Code Playgroud)

1000 次迭代 2000 次迭代

您可以做一些小的改进来提高效率(微不足道):这是我优化的代码:

let perceptron = new synaptic.Architect.Perceptron(2, 15, 10, 3)
Run Code Online (Sandbox Code Playgroud)

编辑:我制作了另一个 CodePen,效果更好:

在此处输入图片说明

https://codepen.io/xurei/pen/KKzWLxg

顺便说一句,它很可能过度拟合。感知器定义:

let perceptron = new synaptic.Architect.Perceptron(2, 8, 15, 7, 3)
Run Code Online (Sandbox Code Playgroud)