我正在尝试复制 MATLAB 'sim' 函数,如本文所述: 导出使用 MATLAB 在其他编程语言中训练的神经网络,但是我正在努力寻找一种在 C# 中实现 MATLAB tansig 函数的方法。它被定义为: a = (2 ./ (1 + exp(-2*n)) - 1) 我读它的方式是我需要对矩阵执行指数。网络研究表明这是一个重要的数学问题,尤其是当矩阵不对称时。任何帮助表示赞赏。
问问题
6525 次
2 回答
3
虽然有些不清楚,但我猜你是指将挤压函数应用于神经元的输出信号。
您必须将该函数应用于神经元输出向量中的每个元素。
因此,您有效地将函数应用于浮点数而不是矩阵本身。
output = [ 1, 0, 1, 0, 1 ] # output vector from a neuron
def sqash( n ):
return (2 ./ (1 + exp(-2*n)) - 1)
squashed_output = [ sqash(1), sqash(0), sqash(1), sqash(0), sqash(1) ]
Matlab 可能支持与sqash( output )
Python 中的 NumPy 相同的语法。因此,当使用向量参数调用函数时,将函数单独应用于每个元素。
output = [ 1, 0, 1, 0, 1 ] # output vector from a neuron
def sqash( vector ):
return (2 ./ (1 + exp(-2 * vector)) - 1)
squashed_output = sqash( output )
于 2013-08-28T08:23:03.950 回答
1
MATLAB 中的 tansig 只是 tanh() 函数的近似值,因此您可以在每个元素上使用标准 tanh() 函数,同时在 MATLAB 或任何其他编程语言中工作。
于 2014-01-18T19:02:32.773 回答