【问题标题】:why unsupervised model needs to implement nn.diag?为什么无监督模型需要实现 nn.diag?
【发布时间】:2015-12-21 15:06:09
【问题描述】:

我正在努力学习深度学习。

在火炬教程中,

https://github.com/torch/tutorials/blob/master/2_supervised/2_model.lua

https://github.com/torch/tutorials/blob/master/3_unsupervised/2_models.lua

监督模型

-- Simple 2-layer neural network, with tanh hidden units
model = nn.Sequential()
model:add(nn.Reshape(ninputs))
model:add(nn.Linear(ninputs,nhiddens))
model:add(nn.Tanh())
model:add(nn.Linear(nhiddens,noutputs))

无监督模型

-- encoder
encoder = nn.Sequential()
encoder:add(nn.Linear(inputSize,outputSize))
encoder:add(nn.Tanh())
encoder:add(nn.Diag(outputSize))
-- decoder
decoder = nn.Sequential()
decoder:add(nn.Linear(outputSize,inputSize))
-- complete model
module = unsup.AutoEncoder(encoder, decoder, params.beta)

为什么无监督模型需要实现 nn.Diag ?

提前致谢。

【问题讨论】:

标签: deep-learning torch unsupervised-learning


【解决方案1】:

它实际上是一个可学习向量(矩阵的对角线)的缩放。这在论文Learning Fast Approximations of Sparse Coding 的第 3.1 节中有所提及。它乘以 tanh 并一起形成非线性。

【讨论】:

    猜你喜欢
    • 2021-09-28
    • 2022-12-10
    • 1970-01-01
    • 2020-09-21
    • 2017-09-04
    • 2010-12-22
    • 2018-07-29
    • 2020-11-09
    • 1970-01-01
    相关资源
    最近更新 更多