verne.freenode.net changed the topic of #mlpack to: http://www.mlpack.org/ -- We don't respond instantly... but we will respond. Give it a few minutes. Or hours. -- Channel logs: http://www.mlpack.org/irc/
chenzhe has quit [Quit: chenzhe]
chenzhe has joined #mlpack
chenzhe has left #mlpack []
kris1 has joined #mlpack
mikeling has joined #mlpack
kris1 has quit [Quit: kris1]
kris1 has joined #mlpack
kris1 has left #mlpack []
Trion has joined #mlpack
mikeling has quit [Quit: Connection closed for inactivity]
shikhar has joined #mlpack
Trion1 has joined #mlpack
Trion has quit [Ping timeout: 260 seconds]
Trion1 is now known as Trion
govg has quit [Quit: leaving]
< zoq>
kris1: Hello, about the sharing weights question, couldn't you implement the visible and hidden layer as a single layer, that way you could use the same weight internally? If that's not an option, you could write another layer that holds the visible and hidden layer and handles the weight sharing. I guess if you know your architecture (static) you could also, implement weight sharing on a higher level.
Trion has quit [Ping timeout: 268 seconds]
govg has joined #mlpack
Trion has joined #mlpack
mikeling has joined #mlpack
vivekp has quit [Ping timeout: 246 seconds]
vivekp has joined #mlpack
Trion has quit [Ping timeout: 246 seconds]
Trion has joined #mlpack
sgupta has quit [Ping timeout: 240 seconds]
sgupta has joined #mlpack
shikhar has quit [Quit: WeeChat 1.7]
sgupta has quit [Ping timeout: 240 seconds]
sgupta has joined #mlpack
< sumedhghaisas_>
zoq: Hey Marcus
< sumedhghaisas_>
free?
< sumedhghaisas_>
you are right about the github comment...
< sumedhghaisas_>
I was thinking something better...
< sumedhghaisas_>
why don;t we shift to list
< sumedhghaisas_>
I noticed that both backward and forward access elements in order
< sumedhghaisas_>
so an iterator would prodocue similar results
< sumedhghaisas_>
what do you think?
Trion has quit [Quit: Have to go, see ya!]
shikhar has joined #mlpack
< rcurtin>
sumedhghaisas_: sorry I haven't chimed in on that discussion yet, I'm currently really underwater with work (some things exploded here) so it might be tonight before I can get to it
< zoq>
would be relative easy to test, don't you tink?
shikhar has quit [Quit: WeeChat 1.7]
< sumedhghaisas_>
zoq: already doing it :)
< sumedhghaisas_>
and also... I was doing some debugging
< sumedhghaisas_>
I realized that we are calling Evaluate many times before Gradient
< sumedhghaisas_>
with same parameters
< sumedhghaisas_>
even though with tests the overhead is not too much...
< sumedhghaisas_>
but it might be huge for large datasets
kris1 has joined #mlpack
< kris1>
YEs
< lozhnikov>
kris1: you told yesterday that visible layer requires an access to hidden biases
< kris1>
Yes
< kris1>
it does
< lozhnikov>
If I am not mistaken the hidden layer and the visible one use different biases
< lozhnikov>
but the weight matrix is shared
< kris1>
Not the weight matrix but hidden biases. For both layer’s the weight and not weigthts matrix are shared
< lozhnikov>
I suggest to use another notation:
< lozhnikov>
hidden variables are sampled from P(h=1|v)=sigm(Wv+c)
< lozhnikov>
and visible variables are sampled from P(v=1|h)=sigm(W^t h+b)
< lozhnikov>
So, the matrix W is shared between the visible and hidden layers
< kris1>
Yes the c is for the hidden biases
< kris1>
and not the visible biases
< lozhnikov>
and biases c and b are different
< kris1>
W is shared but the weigthts indicate all the parameters of the networks and weight indicates W
< lozhnikov>
okay, in such a way the matrix W is shared and biases 'b' and 'c' are not. Do you agree?
< kris1>
Yes
< lozhnikov>
I suggest to use the same technique for sharing this matrix as the technique that allows to store different wights inside the main weight matrix
< kris1>
Sorry i do not understant you
< kris1>
I am not sharing the weights explicitly every layer has there own parameters(weights(weight + bias)) while we update ‘weight W matrix in the vanilla_rbm_impl.hpp ’ them we update them with same values
< lozhnikov>
Just use the following constructor: arma::mat(weights.memptr() + offset, nRows, nCols, false, false); with the same offset
< kris1>
Though i wanted to share weights between layers but i have no idea how to do so
< kris1>
There are 2 layers visible and hidden there are instantiated sepreatlely and fed to the vanilla_rbm_impl.hpp
< kris1>
The weights can’t be shared in the above way you specify
< lozhnikov>
Why? You can write something like visibleLayer.Parameters()=arma::mat(hiddenLayer.Parameters(), ... ... ... )
< kris1>
oh okay so you are suggesting that in vanilla_rbm_impl while in the constructor we do visibleLayer.Parameters() = arma::mat(hiddenLayer.Parameters(),….,….) this would share the full weights(weight + biases) both the network
< kris1>
sorry for both the layer i mean
< kris1>
that would do the trick its just that we would have to cautious while we reset the parameters
< lozhnikov>
yeah, you allocate the full matrix and then just set up links
< kris1>
Okay that would do the trick i guess. I will ask if i get anyother doubts
< lozhnikov>
ok
shikhar has joined #mlpack
kris1 has quit [Quit: kris1]
< zoq>
sumedhghais: Are you sure the parameter are the same? Can you share the code/test you used for debugging?
< zoq>
sgupta: Do you have a book with awesome sayings? ... nice blog post :)
< sgupta>
zoq: thanks a lot. And no, I don't have a book. It's just something I shine at. :)
< zoq>
sgupta: really unique style :)
< sgupta>
zoq: thanks a lot :)
< zoq>
shikhar: Excited to see the next step: do you plan to implement HOGWILD in one week?
< shikhar>
zoq: Probably not :) I have some things to discuss about the paper right now. I have an implementation at hand, but the code is a bit complex.
< zoq>
shikhar: I can imagine, it's not going to be easy :)
< shikhar>
The implementation is from the authors of the paper. I wonder why they couldn't use OpenMP :D
< zoq>
shikhar: Maybe you will find out, but hopefully not :)
< zoq>
sgupta: It somehow reminds me of Ryan's comment style he used for the IRC frontend/backend; it's not the same style, but it also makes small things way more entertaining.