Tag: math

如何更新neural network反向传播的偏见?

有人可以向我解释如何更新反向传播中的偏见吗? 我读过不less书,但是找不到更新! 我明白,偏见是一个额外的input1附加一个权重(每个神经元)。 必须有一个公式。 谢谢, @msw 最有趣的。 谢谢,我认为有两点好处:1.“如果你省略偏置项,那么具有最常用的隐层激活函数的多层感知器的”通用逼近“属性并不成立,但是Hornik(1993)没有偏差的通用逼近性质的充分条件是没有激发函数的导数在原点处消失,这意味着在通常的S形激活函数中,可以使用固定的非零偏差项而不是可训练的偏差。 2.可以像其他权重一样学习偏差项。“所以我要么join一个”恒定的权重“,要么像使用梯度下降一样训练这个权重。 我理解对吗?

什么是空序列的算术平均值?

免责声明:不,我没有find任何明显的答案,违背了我的预期! 当寻找代码示例Wrt。 算术平均值,我可以通过Googlefind的前几个例子似乎被定义为空序列产生0.0的平均值。 (例如, 在这里和这里 …) 然而,看维基百科, 算术平均值是这样定义的,即一个空序列将产生0.0 / 0 – A = 1/n ∑[i=1 -> n](a[i]) – 所以,一般情况下可能是NaN 。 所以如果我写一个效用函数来计算一组浮点值的算术平均值,那么我应该在一般情况下: 为空序列返回0. . 为空序列返回(Q)NaN ? 在空序列的情况下“抛出exception”?

我如何做一个便携式isnan / isinf函数

我一直在Linux平台上使用isinf , isnan函数,这是完美的。 但是这在OS-X上不起作用,所以我决定使用std::isinf std::isnan ,它可以在Linux和OS-X上运行。 但是,英特尔编译器不能识别它,我想它是在intel编译器中的一个错误,根据http://software.intel.com/en-us/forums/showthread.php?t=64188 所以现在我只是想避免麻烦,并定义我自己的isinf , isnan实现。 有谁知道如何做到这一点? 编辑: 我结束了在我的源代码中做isinf / isnan工作 #include <iostream> #include <cmath> #ifdef __INTEL_COMPILER #include <mathimf.h> #endif int isnan_local(double x) { #ifdef __INTEL_COMPILER return isnan(x); #else return std::isnan(x); #endif } int isinf_local(double x) { #ifdef __INTEL_COMPILER return isinf(x); #else return std::isinf(x); #endif } int myChk(double a){ std::cerr<<"val is: […]

如何将欧拉angular转换为方向vector?

我有俯仰,滚转和偏航angular度。 我将如何将这些转换为方向vector? 如果你能告诉我一个四元数和/或matrix表示,这将是特别酷的!

圆圈交点

我如何计算两个圆的交点。 我希望在所有情况下都有两个,一个或没有交点。 我有中心点的x和y坐标,以及每个圆的半径。 在python中的答案是首选,但任何工作algorithm是可以接受的。

在同一平面内具有相同原点的两个3Dvector之间的夹angular

我需要的是两个vectorVa和Vb之间的符号旋转angular度,这两个vector位于相同的3D平面内并具有相同的原点,因此知道: 包含两个vector的平面是任意的,并不平行于XY或任何其他的基本平面 Vn – 是一个正常的飞机 两个vector与法线都具有相同的原点O = {0,0,0} Va – 是测量Vn左旋的参考 angular度应该这样测量,所以如果平面是XY平面,Va将代表X轴单位vector。 我想我应该用Va作为X轴,Vb和Vn的叉积作为Y轴进行一种坐标空间变换,然后像atan2()那样使用一些2d方法。 有任何想法吗? 公式?

Math.cos()给出了错误的结果

根据Wolfram Mathematica: cos(50) = 0.6427876096865394 ; 但是这个Java代码: System.out.println(Math.cos(50)); 给出0.9649660284921133 。 java.lang.Math什么问题?

我怎样才能安全地平均两个无符号整数在C + +?

单独使用整数math,我想“安全地”平均两个C ++的无符号整数。 我的意思是“安全地”避免溢出(以及其他任何可以想到的)。 例如,平均值200和5000很容易: unsigned int a = 200; unsigned int b = 5000; unsigned int average = (a + b) / 2; // Equals: 2600 as intended 但在4294967295和5000的情况下,则: unsigned int a = 4294967295; unsigned int b = 5000; unsigned int average = (a + b) / 2; // Equals: 2499 instead of 2147486147 我想到的最好的是: […]

C指针算术,没有结构对象

我认为这是不可能在C,但要求validation这一点。 是否有可能在没有这种types的实际variables的结构成员之间进行算术运算? 例如: typedef struct _s1 { int a; int b; int c; } T1; 我想看看“C”成员与结构开始的偏移量。 如果我有变数,这很容易: T1 str; int dist = (int)&str.c – (int)&str; 但是我的结构太大,RAM中没有成员(只在EEPROM中)。 我想做一些地址计算,但不要定义RAM成员。 我可以使用结构指针而不是结构variables(它只需要4字节),但是这个例子对我来说很有意思。

2D欧几里得vector旋转

我坐在坐标(0, 1)有一个欧几里得vector。 我想围绕原点旋转90度(顺时针):( (0, 0) 。 如果我对这应该如何工作有一个正确的理解,旋转后的结果(x,y)坐标应该是(1, 0) 。 如果我将它旋转45度(仍然是顺时针),那么我会期望得到的坐标是(0.707, 0.707) 。 theta = deg2rad(angle); cs = cos(theta); sn = sin(theta); x = x * cs – y * sn; y = x * sn + y * cs; 使用上面的代码, angle值为90.0度,结果坐标是: (-1, 1) 。 而我真是太糊涂了。 在下面的链接中看到的例子肯定表示上面显示的相同的公式? 我做错了什么? 还是我误解了一个vector是如何旋转的?