相关疑难解决方法(0)

让神经网络输出介于-1.0和1.0之间的任何东西

我正在尝试制作反向传播神经网络.根据我在这里找到的教程:James McCaffrey的MSDN文章.他提供了许多例子,但他所有的网络都是基于同样的问题来解决.所以他的网络看起来像4:7:3 >> 4输入 - 7隐藏 - 3输出.

他的输出总是二进制0或1,一个输出得1,将爱尔兰花分类为三个类别之一.

我想用神经网络解决另一个问题,这需要我2个神经网络,其中需要在0..255之间的输出和0到2倍Pi之间的另一个输出.(一个完整的转弯,圆圈).基本上我认为我需要一个范围从0.0到1.0或-1到1以及介于两者之间的任何输出,以便我可以将它乘以becomme 0..255或0..2Pi

我认为他的网络确实有行为,就像它的computeOutputs一样,我在下面显示:

  private double[] ComputeOutputs(double[] xValues)
    {

    if (xValues.Length != numInput)
            throw new Exception("Bad xValues array length");

        double[] hSums = new double[numHidden]; // hidden nodes sums scratch array
        double[] oSums = new double[numOutput]; // output nodes sums

        for (int i = 0; i < xValues.Length; ++i) // copy x-values to inputs
            this.inputs[i] = xValues[i];

        for (int j = 0; j < numHidden; ++j)  // compute i-h sum of …
Run Code Online (Sandbox Code Playgroud)

c# neural-network

8
推荐指数
1
解决办法
709
查看次数

"高对比度"曲线的快速公式

我的内部循环包含一个计算,分析显示有问题.

想法是采用灰度像素x(0 <= x <= 1),并"增加其对比度".我的要求相当宽松,如下:

  • 对于x <.5,0 <= f(x)<x
  • 对于x> .5,x <f(x)<= 1
  • f(0)= 0
  • f(x)= 1 - f(1 - x),即它应该是"对称的"
  • 优选地,该功能应该是平滑的.

因此图表必须如下所示:

图形.

我有两个实现(他们的结果不同但两者都符合):

float cosContrastize(float i) {
    return .5 - cos(x * pi) / 2;
}

float mulContrastize(float i) {
    if (i < .5) return i * i * 2;
    i = 1 - i;
    return 1 - i * i * 2;
}
Run Code Online (Sandbox Code Playgroud)

因此,我要求对这些实现之一进行微优化,或者为您自己的原始,更快的公式.

也许你们其中一个人甚至可以把这些小事扭曲;)

math optimization formula

5
推荐指数
2
解决办法
2578
查看次数

标签 统计

c# ×1

formula ×1

math ×1

neural-network ×1

optimization ×1