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/
vivekp has quit [Ping timeout: 248 seconds]
vivekp has joined #mlpack
govg has joined #mlpack
hodor12345678 has joined #mlpack
< hodor12345678> Hello Everyone,I am new to OSS and want to contribute to get proposal in GSoC.Anyone please guide me.
hodor12345678 has quit [Read error: Connection reset by peer]
hodor12345678 has joined #mlpack
hodor12345678 has quit [Ping timeout: 258 seconds]
dilder_ has joined #mlpack
dilder_ has quit [Ping timeout: 268 seconds]
Kartikagg98 has joined #mlpack
alexscc has joined #mlpack
Kartikagg98 has quit [Ping timeout: 260 seconds]
< alexscc> one thing I’ve noticed is that running tests on 8 core, there are warnings about timers already being started
< alexscc> is the framework fully reentrant, besides logging?
hodor12345678 has joined #mlpack
< hodor12345678> Hello everyone,I want to contribute to mlpack for GSoC 2018.Where can I start?Somebody please help me.
< zoq> hodor123456: Hello there, www.mlpack.org/involved.html might be helpful.
< zoq> and since you mentioned GSoC http://www.mlpack.org/gsoc.html might be interesting too.
< hodor12345678> Thank you,Can I read history chat of IRC channels?
< zoq> btw. great name, reminds me off GoT
< zoq> make sure to checkout the mailinglist as well: http://knife.lugatgt.org/pipermail/mlpack/
< zoq> alexscc: Did you run the test against the master branch?
< alexscc> zoq: brew installed
< zoq> alexscc: I think it should be solved with: https://github.com/mlpack/mlpack/pull/1135
< alexscc> ok it’s fixed then, nice
< alexscc> btw, who implemented NCA? I have some questions about usage of the parameters, I am going a bit random atm here… if I set number of iterations = 0, what should be the tolerance in order to see it converging within, say, minutes?
< alexscc> my data is 71-dimensional, 15 classes more or less, 100 samples per class
< alexscc> I’d basically like to know how to decide the tolerance parameter: for example, does it depend on wether one starts the gradient descent with a normalization matrix?
< hodor12345678> alexscc thanks,btw GOT is love.
< hodor12345678> sorry,I meant zoq
< zoq> alexscc: Ryan implemented NCA, so he could probably provide some insights on this, probably not today since it's thanksgiving.
< zoq> If you use standard SGD as optimizer you could test different step sizes; and not sure setting iterations = 0 is necessary, since it's not granted to converge in the given time.
< alexscc> just launched a 500000 iteration
< alexscc> let’s see if it converges within some time
< zoq> hodor123456: Yeah awesome books and great show.
< zoq> alexscc: We recently added batch support, which could accelerate the training process.
< alexscc> cool is there any place where I can read about it?
< zoq> alexscc: It should at least converge after the given number of iterations.
< alexscc> yup
< zoq> you have to build against the master branch
< zoq> Ryan did run some tests using a simple neural network: http://www.ratml.org/misc_img/batch_size_sweep.png
< alexscc> super
< alexscc> I’ll use the master branch from now on
Akhil_ns has joined #mlpack
< zoq> batch support is going to be part of mlpack 3.0
Akhil_ns has left #mlpack []
< zoq> but until then, the master branch is probably the best option
hodor12345678 has quit [Quit: Page closed]
alexscc is now known as alesc
< alesc> I guess I’ll plot the difference between objectives to understand how training is going. on Monday :)
alsc has joined #mlpack
alesc has quit [Quit: alesc]
< alsc> please let me know if you have suggestions about how to treat NCA.. nca_iterations: 30000 nca_stepSize: 0.0001 nca_tolerance: 0.0001 took quite long and went to 91% from 89% accurcay over basic KNN/. I am sure I can get it better
< rcurtin> alsc: your nick keeps getting shorter :)
< rcurtin> sorry for the lack of responses, I am on vacation right now
< rcurtin> are you using the l-bfgs or SGD optimizer? if I am remembering correctly, the L-BFGS optimizer is able to take advantage of some significant optimizations that can make it orders of magnitude faster
< rcurtin> zoq is right that now using larger batch sizes will help accelerate it, but the problem is that optimizing the NCA objective requires full calculation of the denominator,
< rcurtin> even if you are just calculating the objective (or gradient) for a single point or a few points
< rcurtin> since the parameters change each iteration, that denominator has to be fully recalculated (which is O(N) time) so taking a small step with SGD takes the same amount of time as L-BFGS
< rcurtin> and since L-BFGS typically needs to take far fewer steps, it ends up being much faster
< rcurtin> I don't have any input for how to set the tolerance parameter really
< rcurtin> I believe that as the objective decreases, KNN performance *should* (but is not guaranteed to) improve
< rcurtin> to be perfectly honest, I think NCA is a nice metric learning technique, but I think it can be significantly outperformed by simpler techniques
< rcurtin> a long time ago I wrote an algorithm that was a metric learning technique that might be more applicable, found in this (not very good) paper: http://ratml.org/pub/pdf/2011mlsp.pdf
< rcurtin> like I said I don't think the algorithm there is particularly good, but it can be quicker than NCA and produce better results
< rcurtin> I never applied it to other tasks and never polished it for an mlpack implementation (whatever code I have now surely wouldn't compile)
< rcurtin> but all this rambling is to say that I think the NCA technique of "make a convex objective function so we can use well-known optimizers" may not be as good a technique as something more straightforward, like
< rcurtin> "let's use a simulated annealing-like algorithm to randomly guess a better metric for KNN"
< rcurtin> I think there is still a lot of interesting work to be done in the field of metric learning, but I think people are less interested in it and more interested in deep learning these days :)
< rcurtin> ok, that's enough rambling for now :)
< rcurtin> I make no guarantees that my opinions or postulations are correct :)