【问题标题】:Are Neural Networks complex "Linear Functions" with many parameters?神经网络是具有许多参数的复杂“线性函数”吗?
【发布时间】:2018-10-29 19:01:46
【问题描述】:
【问题讨论】:
标签:
machine-learning
neural-network
deep-learning
artificial-intelligence
【解决方案1】:
单个神经元适用于线性问题,但现实世界的问题大多是复杂的,这意味着非线性问题。所以ANN/NN可以产生高度非线性的函数,可以帮助我们解决非线性问题,产生非线性函数的原因是神经元之间的加权连接。所以神经网络是复杂的线性和非线性函数,有很多参数。
【解决方案2】:
NN 是“函数逼近器”。
它们本身不是函数。
NN 可以设计为近似于输入和相应输出之间的几乎任何类型的关系。
每个神经元都使用从简单到复杂的函数来近似目标(经过训练的)行为。
所以,我们可以设计一个NN来逼近线性关系、非线性关系、指数关系,甚至是DeepMind、AlphaGo等极其复杂的行为。
所以,我认为应该重新表述这个问题。
【解决方案3】:
问题有点模棱两可。如果我们使用线性激活函数(身份激活函数),或者,如果我们没有激活函数,那么无论我们的神经网络有多少层,它所做的只是计算一个线性激活函数。所以我们还不如没有隐藏层。
只有在采用非线性激活函数后,神经网络才能学习相关信息。这就是激活函数是非线性的原因。
所以在我看来,很容易将它们视为具有许多参数的复杂非线性函数。
【解决方案4】:
这个问题的描述有点不正确。虽然你可以说神经网络的核心是矩阵尺度(或 n 维尺度)上的线性方程,但只有非线性激活才能让它学习一些相关的东西。
虽然,您可以将激活函数设为activation(x) = k * x + c,在这种情况下,答案可能是复杂的线性函数。但是,线性函数的线性组合总是会产生线性函数。但是,神经网络显然通过学习非线性函数来解决机器学习问题。
所以,我们不能说它们是线性函数。
【解决方案5】:
线性函数的好处是您可以提前组合它们,因为组合线性函数可以获得另一个线性函数(矩阵乘法等等)。
所以如果它只是一个线性函数,那么你基本上只有一个单层网络。正是层之间的非线性转换使层真正有用,所以我会说这些是非线性函数。