Machine learning 用神经网络实现二维/三维阴影

Machine learning 用神经网络实现二维/三维阴影,machine-learning,neural-network,shadow,raytracing,Machine Learning,Neural Network,Shadow,Raytracing,在用java编写了一个简单的反向传播+前馈神经网络类之后,我尝试使用阴影投射器NN来检查四边形(或三角形)是否在顶点上投射阴影 输入(标准化,8+2*targetNumber总计): 点光源坐标xL和yL 三角形或四边形对象xt1、xt2、xt3、yt1、yt2、yt3的坐标 目标顶点坐标xT(i),yT(i) 输出(标准化,目标总数): (点i):有阴影(1.0f)或无阴影(0.0f) 问题:它需要思考多少个神经元?我是否必须尝试每个隐藏层的神经元数量、隐藏层数量、最小训练迭代次数等的

在用java编写了一个简单的反向传播+前馈神经网络类之后,我尝试使用阴影投射器NN来检查四边形(或三角形)是否在顶点上投射阴影

输入(标准化,8+2*targetNumber总计):

  • 点光源坐标xL和yL
  • 三角形或四边形对象xt1、xt2、xt3、yt1、yt2、yt3的坐标
  • 目标顶点坐标xT(i),yT(i)
输出(标准化,目标总数):

  • (点i):有阴影(1.0f)或无阴影(0.0f)
问题:它需要思考多少个神经元?我是否必须尝试每个隐藏层的神经元数量、隐藏层数量、最小训练迭代次数等的所有组合? 有没有办法预见到这一点

问题:与普通光线跟踪器相比,这种方法对数百万个顶点的性能如何(NN似乎比光线跟踪器更令人尴尬地平行)

问题:与普通光线跟踪器相比,这种方法对数百万个顶点的性能如何(NN似乎比光线跟踪器更令人尴尬地平行)

您试图解决的问题似乎不是机器学习模型的问题。这些方法应该应用于复杂的统计数据问题,对于人类来说,找到好的算法解决方案太难了。这些简单的问题(从某种意义上说,你可以找到高效的算法),你可以深入分析(因为它只是2/3维的数据),应该使用经典的方法,而不是神经网络(或任何其他machnie学习模型)

即使你尝试这样做,你对问题的描述准备得相当糟糕,网络也不会通过显示这样的数据来学习“影子的想法”,有两个多模型可以用神经网络来表示,与你的数据一致。即使是经过训练的网络的效率似乎也无法与“算法”方案相比

总之,没有理由使用这些方法,事实上,使用它们:

  • 不会很好地工作,因为问题的表现不好(而且我看不到“从头到脚”的良好表现)
  • 即使它能起作用,也不会有效
问:它需要思考多少个神经元?我是否必须尝试每个隐藏层的神经元数量、隐藏层数量、最小训练迭代次数等的所有组合?有没有办法预见到这一点

正如我之前所说的,无论您使用什么参数,它都无法很好地学习此类数据。但对于“未来参考”-对于“简单”神经网络,实际上你总是需要一个隐藏层。在大多数情况下,更多的隐藏层实际上没有帮助,因为渐变现象正在消失(深度学习是一个成功的解决方案)。对于隐藏层的大小有一些经验法则,但没有真正的数学答案。一个好的选择是使用大量隐藏单元并添加强正则化,这将防止网络过度拟合,这可能是隐藏层过大的结果。Regarin迭代次数-您应该永远不要将其用作参数。只要网络不满足某些定义良好的停止标准,就应该对其进行训练—迭代次数不在其中。最经典和最有效的方法是测量泛化误差(独立验证集上的误差),当误差开始上升时,停止学习过程

问题:与普通光线跟踪器相比,这种方法对数百万个顶点的性能如何(NN似乎比光线跟踪器更令人尴尬地平行)

您试图解决的问题似乎不是机器学习模型的问题。这些方法应该应用于复杂的统计数据问题,对于人类来说,找到好的算法解决方案太难了。这些简单的问题(从某种意义上说,你可以找到高效的算法),你可以深入分析(因为它只是2/3维的数据),应该使用经典的方法,而不是神经网络(或任何其他machnie学习模型)

即使你尝试这样做,你对问题的描述准备得相当糟糕,网络也不会通过显示这样的数据来学习“影子的想法”,有两个多模型可以用神经网络来表示,与你的数据一致。即使是经过训练的网络的效率似乎也无法与“算法”方案相比

总之,没有理由使用这些方法,事实上,使用它们:

  • 不会很好地工作,因为问题的表现不好(而且我看不到“从头到脚”的良好表现)
  • 即使它能起作用,也不会有效
问:它需要思考多少个神经元?我是否必须尝试每个隐藏层的神经元数量、隐藏层数量、最小训练迭代次数等的所有组合?有没有办法预见到这一点

正如我之前所说的,无论您使用什么参数,它都无法很好地学习此类数据。但对于“未来参考”-对于“简单”神经网络,实际上你总是需要一个隐藏层。在大多数情况下,更多的隐藏层实际上没有帮助,因为渐变现象正在消失(深度学习是一个成功的解决方案)。对于隐藏层的大小有一些经验法则,但没有真正的数学答案。一个好的选择是使用大量隐藏单元并添加强正则化,这将防止网络过度拟合,这可能是隐藏层过大的结果。Regarin迭代次数-您应该永远不要将其用作参数。只要网络不满足某些定义良好的停止临界值,就应该对其进行训练