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/
stephentu has joined #mlpack
stephentu has quit [Ping timeout: 255 seconds]
stephentu has joined #mlpack
stephentu has quit [Ping timeout: 240 seconds]
govg has joined #mlpack
stephentu has joined #mlpack
sumedhghaisas_ has quit [Quit: Ex-Chat]
sumedhghaisas__ has joined #mlpack
sumedhghaisas__ has quit [Ping timeout: 268 seconds]
sumedhghaisas__ has joined #mlpack
stephentu has quit [Quit: Lost terminal]
sumedhghaisas__ has quit [Ping timeout: 268 seconds]
< zoq>
sumedhghais: Not sure how the test framework looks like, maybe you can open a PR or something like that, so I was thinking if we need a visitor to call the specific method since we know the type?
kris1 has joined #mlpack
< zoq>
ironstark: Hello, do you need any help with the dlib-ml implementation? Probably a good first step would be to write an install script?
sumedhghaisas__ has joined #mlpack
zoq has quit [Read error: Connection reset by peer]
zoq_ has joined #mlpack
< kris1>
I had a question zoq
< kris1>
so in layer you use InputDataType and OutputDataType
< kris1>
but i am not able to understand how did you some variables like gradient to OutputDataType.
< kris1>
Is the logic that anything that gets computed within the layer is labeled as OutputDataType.
< zoq_>
kris1: Yes, everything inside the layer is of type OutputDataType only the input is of type InputDataType.
zoq_ is now known as zoq
< kris1>
okay….. but why use InputData type and also arma::Mat<eT> when you could have replace arma::Mat<eT> by InputDataType.
< zoq>
kris1: Right, in fact I already refactored some of the existing layer, to not use arma::Mat<eT> but e.g InputType for the input and OutType for the output etc. That way we could also pass e.g. arma::subview.
< lozhnikov>
however, it seems you fixed that later
< kris1>
Yes, i think we can just cherry pick the commits if we see there are some unncessary commits.
< kris1>
Were you able to look at comments i gave in the PR.
< lozhnikov>
I am looking through the code right now, I'll post a review soon
shikhar has joined #mlpack
shikhar has quit [Ping timeout: 240 seconds]
shikhar has joined #mlpack
shikhar has quit [Ping timeout: 240 seconds]
shikhar has joined #mlpack
shikhar has quit [Ping timeout: 260 seconds]
< kris1>
lozhnikov i looked at the comments. I made some points. Were you able to look them over.
< kris1>
Also one of the thing i am not sure about is that. ssRBM can outperform binary rbm on the mnist dataset. I did not see any papers that even consider using the mnist dataset. They all use “natural images”.
< kris1>
for ssRBM classification testing.
< kris1>
this goes for variants of ssRBM as well.
shikhar has joined #mlpack
< lozhnikov>
yeah, I think we should try the CIFAR dataset
sumedhghaisas__ has quit [Ping timeout: 268 seconds]
< lozhnikov>
kris1: I'll be unavailable this weekend
kris1 has quit [Quit: kris1]
kris1 has joined #mlpack
shikhar has quit [Read error: Connection reset by peer]
< lozhnikov>
kris1: are you online?
< kris1>
Yes
< lozhnikov>
I'll be unavailable this weekend
< kris1>
Ahhh…okay.
< lozhnikov>
I'll return in the evening on Sunday
< lozhnikov>
I am going to ride a bicycle for 2 days
< kris1>
Wow !!! That sound exciting and tiring
< kris1>
Is it part of some marathon?
< kris1>
I will continue working on the weekend on ssRBM and GAN.
< lozhnikov>
No, I just want to relax with my family
< kris1>
I just need to clarify few things
< lozhnikov>
usually, I don't participate in bicycle marathons
< kris1>
1. Gan: See my comment on Github 2. ssRBM: did you agree with slabPenalty can’t be used as a scalar i had commented upon Github
< lozhnikov>
I replied at github to your comment about slabPenalty
< lozhnikov>
I think it is possible to simplify expressions with slabPenalty
< lozhnikov>
The second option is to use arma::diagmat()
< lozhnikov>
but I think that arma::mat should work slowly in this case
< lozhnikov>
regarding GAN:
< lozhnikov>
I think it is possible to call optimize() only once instead of `numIterations` times
< lozhnikov>
*once
< kris1>
Your comment is to use arma::cumsum. So i think you mean to spike(i) * slabBias * arma::cumsum(weight.slice(i).t() * visible)
< kris1>
Is that correct.
< lozhnikov>
yeah, looks like that is correct, it isn't hard to verify
< kris1>
okay.
< kris1>
Can you explain how you would just call optimize just once for GAN.
< lozhnikov>
maybe it is possible to add a counter to Gradient()
< kris1>
The cause of problem for me seems to be that we have to generate the ouputs for optimisation of generator from the training of Discriminator.
< kris1>
So if we have just call to the optimizer we can’t change the predictors and responses
< kris1>
Also we can’t generate all the predictors and reponses in a matrix since we need to get the predictors from a trained Generator at a previous time step.
< kris1>
Sorry for the 1st comment it generate oputputs for optimisation of discriminator from a trained generator.
< lozhnikov>
I think you can move everything to the Gradient() function, I have to think about that
< kris1>
But the evaluate function is called before the Gradient function and it utilizes the predictors as well as the responses.
< kris1>
If we by pass the evaluate function. Then also it would not be possible since we have to train the generator to generate ouputs which would require us to return the gradients.
< lozhnikov>
it is not hard to fix that. I think you needn't the noise matrix at all
< lozhnikov>
that means you should reimplement the FFN:Gradient() function inside the GAN class
< kris1>
Why woudn’t we need the noise matrix? The generator is trained on that input only.
< kris1>
See point 2 above.
< lozhnikov>
I think the noise matrix require some unnecessary operations
< lozhnikov>
*requires
< kris1>
Maybe you misunderstand me. I am saying for training of the generator at iteration i we need a generator that has been trained at iteration i -1. We generate the samples from the generator at iteration i and then call gradients function for updating it’s parameters. Sorry but i did not get your point on “noise matrix requires some unnecessary ops”
< lozhnikov>
I think it is possible to generate samples inside GAN::Gradient()
< kris1>
I think you can look at algorithm 1 from the goodfellow’s paper
< kris1>
Aaah okay i get you point now…..
< lozhnikov>
I think you can reimplement the algorithm that trains generator inside GAN::Gradient()
< kris1>
Since the Gradient Function is being called n times we will train the generator and discriminator n times inside the gradient function.
< kris1>
Really cool idea btw.
< kris1>
Okay just the last thing should i test ssRBM on cifar 10 dataset(it’s pretty large > 1 GB). Because that is the only one that paper checks for classification accuracy.
< lozhnikov>
I think we can start with that version
< kris1>
okay…. i will do that then.
< kris1>
I already have taken out the patches and done the preprocessing. So it would be easy.
< kris1>
I think
< kris1>
Thanks, Have great weekend.
< lozhnikov>
I started the implementation of the mu-ssRBM, a successor of the ssRBM. It seems the mu-ssRBM solves some problems with rejection sampling. But it seems I am not in time, I'll finish that after this weekend
< lozhnikov>
yeah, but I want to compare the mu-ssRBM with the ssRBM
kris1 has quit [Quit: kris1]
kris1 has joined #mlpack
kris1 has quit [Quit: kris1]
kris1 has joined #mlpack
kris1 has quit [Client Quit]
kris1 has joined #mlpack
kris1 has quit [Quit: kris1]
sumedhghaisas__ has joined #mlpack
< sumedhghaisas__>
zoq: Hey Marcus. Hey Zoq... The gradients are finally correct for NTM. I will committing the code today. Next week we can do cool experiments...
< sumedhghaisas__>
Just had couple of questions regarding the design.
< sumedhghaisas__>
How do you think we should have the controller network right now?
< sumedhghaisas__>
Currently I have hardocded the network...
< zoq>
sumedhghais: Hello, with hardcoded you mean it's part of the NTM? I thought we could use a Wrapper class or something like (pass the controller to the NTM class), that way we could easily test different designs.
< zoq>
Have you seen my last message about the test framework?
< zoq>
sumedhghais: Not sure how the test framework looks like, maybe you can open a PR or something like that, so I was thinking if we need a visitor to call the specific method since we know the type?