【问题标题】:How to define neural network neuron-by-neuron?如何逐个神经元定义神经网络?
【发布时间】:2021-02-07 10:42:50
【问题描述】:

所以我们想要一个随机的类似大脑的神经元混乱。含义:

  • 我们有 AxB 输入和 CxD 输出。
  • 我们希望有 K 个(其中 K >= CxD)神经元随机相互连接。
  • 然而,所有 K 个神经元都连接到至少一个 AxB 输入,
  • 并且所有 K 个神经元都连接到至少一个 CxD 输出。

类似的东西(这里 AxB=5,K=4,CxD=2):

神经元应该做的操作是加权求和 + 一些归约,比如 LeakyReLu。

因此可以想象,当控制连接随机性以便将连接定位在类似 CNN 层的图像块上时,它可以产生有趣的结果。

如何在 PyTorch 中做这样的事情(一个接一个地处理神经元)?

【问题讨论】:

  • 你为什么不直接使用一个普通的 PyTorch 网络并将一些连接的权重设置为 0,这样你就可以根据你的规则进行连接了?常规实现不应该能够恢复权重,因此它们保持为 0,因此就好像相应的神经元之间没有连接一样。
  • @jottbe: 优化器会惩罚这些未使用的可训练变量...((想象 256^2 基本图像和至少 10 层逐渐折叠成 10 个变量)
  • 你认为优化器为什么会惩罚这些变量?我认为 l1/l2 正则化至少不会对它们产生影响,因为权重为零

标签: machine-learning pytorch artificial-intelligence


【解决方案1】:

这里有两个问题:主要问题是如何随机采样连接,次要问题是如何优化稀疏线性层。

至于小问题,您可以根据链接的答案实现sparse fully-connected layer

至于随机连接,您必须以没有“循环”的方式实现它

【讨论】:

  • 好的,那么如何通过另一个 SC 层将 SC 层的输出与初始源层连接起来?
猜你喜欢
  • 2016-09-02
  • 2016-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-11
  • 2016-12-23
  • 1970-01-01
  • 2017-05-21
相关资源
最近更新 更多