ChanServ changed the topic of #mlpack to: "mlpack: a fast, flexible machine learning library :: We don't always respond instantly, but we will respond; please be patient :: Logs at http://www.mlpack.org/irc/
[DONG]Gibby is now known as d1
mistiry_ has joined #mlpack
mistiry has quit [Ping timeout: 240 seconds]
ImQ009 has joined #mlpack
< himanshu_pathak[> Hey Everyone here is the link to my weekly blog post https://medium.com/@hpathak336/gsoc2020-week-8-9-3ecd3cb26eb4
< say4n> Does mlpack participate in GSoD?
< rcurtin> say4n: we haven't in the past, but I think it might be a cool idea
< say4n> Ah, cool!
< chopper_inbound[> Hello everyone here is my weekly update for week 9 and 10. https://mrityunjay-tripathi.github.io/gsoc-with-mlpack/coding_period/week9_and_10.html Please have a look :)
< rcurtin> himanshu_pathak[: chopper_inbound[: awesome, thanks for the link!
< rcurtin> I like the git merge gif :)
< rcurtin> chopper_inbound[: I agree about reading, I always prefer to read something that's actually printed vs. on a screen
< chopper_inbound[> @rcurtin:matrix.org: 👍
ImQ009 has quit [Read error: Connection reset by peer]
ImQ009 has joined #mlpack
< himanshu_pathak[> <rcurtin "I like the git merge gif :)"> :)
< himanshu_pathak[> Hey zoq I didn't get this http://ci.mlpack.org/job/pull-requests-mlpack-static-code-analysis/6196/cppcheck/ What can I do I can't remove this variable and also we don't have to do anything with this ??
< himanshu_pathak[> * Hey zoq I didn't get this http://ci.mlpack.org/job/pull-requests-mlpack-static-code-analysis/6196/cppcheck/ What can I do I can't remove this variable and also we don't have to do anything else with this variable??
< zoq> himanshu_pathak[: You can ignore the issue, sometimes we get some false warnings; what we usally do in those cases is we add the error to: https://github.com/mlpack/jenkins-conf/blob/master/static/clean_cppxml.py#L14
< himanshu_pathak[> <zoq "himanshu_pathak: You can ignore "> Oh ok. when you get time can you do a review on my It will be a quick one . I can rebase my DBN pr after merging of this :)
ImQ009 has quit [Quit: Leaving]
< zoq> himanshu_pathak[: The RBM one?
< himanshu_pathak[> > himanshu_pathak: The RBM one?
< himanshu_pathak[> Yes removing r-value reference
< zoq> himanshu_pathak[: Alright, I'll take a look at the changes.
< himanshu_pathak[> <zoq "himanshu_pathak: Alright, I'll t"> Thanks
< say4n> For some reason the released script for ensmallen doesn't work on MacOS. I think it is because the `git diff | wc -l` in BSD output a tab followed by 0, which when compared to the string "0" is equated to false. A quick fix would be to just strip the whitespace characters if they exist from the string.
< say4n> Should I add it to the current PR updating the release script or make a separate one?
< say4n> *release script
< rcurtin> say4n: sure, feel free :)
< rcurtin> I certainly haven't tested it on OS X so any fixes are totally appreciated
< say4n> Alrighty! :)
< say4n> Also sed is pretty mysterious on BSD. I remember the last time I was playing with the release script, it was missing some flags that were being used by the script.
ak has joined #mlpack
< ak> hello, I am having some difficulty with training a logistic regression model one point at a time, it seems like the model is never getting better / parameters reset after each point
< ak> Say my model has 5 variables, I am doing model.Train(input, labels);, where input is a column vector of doubles and labels is a Row<size_t> of size 1.
< zoq> ak: So my idea would be to do the training outside the LR class itself, do the intalization once.
< zoq> and resign the trained parameters after the optimization process.
< zoq> something likeL model.Parameters() = parameters;
< zoq> that way you can reuse the LR class to call Classify() etc.
< ak> ah that makes a lot of sense, thank you. Does that mean I will lose out on any of the LR optimization stuff then?
< ak> optimization as in vector operations / other speed ups
< zoq> or you can modify the class itself and I think adding if (parameters.is_empty()) right before https://github.com/mlpack/mlpack/blob/0ed562bd52f70bbdca02f62484836ed56e553f27/src/mlpack/methods/logistic_regression/logistic_regression_impl.hpp#L90-L91 should do the trick as well.
< zoq> Hm, depending on the optimizer you might want to adjust the stepsize batch size.
< zoq> But the default settings should work as well.
< zoq> Actually wondering if we should just add that line, will test it out tomorrow.
< rcurtin> ak: it sounds like you are only giving one point for `input` and one label; maybe you should pass the entire dataset int hte call to `Train()`?
< ak> Yes, I sadly think I misread the docs. I am guessing https://www.mlpack.org/doc/mlpack-3.0.4/doxygen/classmlpack_1_1regression_1_1LogisticRegression.html#a0f30e4158da412fc6603ad8327c8d258, "This will use the existing model parameters as a starting point for the optimization." is not the same as incremental / online learning?
< rcurtin> it seems like maybe the documentation is incorrect! the code that zoq linked to resets the parameters in each call to Train()
< rcurtin> give me just a second---I will open a PR to fix the behavior
< ak> is there another ml algorithm that I could implement that I would work with that flow? I am kind of new to this work and want something that will get better whenever I have new data
< rcurtin> so, after I open this PR, LogisticRegression will behave like you expect (and like the documentation says it should)
< rcurtin> not all machine learning models can be trained incrementally, but logistic regression and neural networks can, at least
< rcurtin> I believe SoftmaxRegression (which is just an extension of logistic regression for more than 2 classes) will work that way too
< rcurtin> (and, glancing at the code there, I believe that incremental training will work correctly)
< ak> thats great, thank you! Ha, it is a relief to hear that!
< rcurtin> the bugs always sneak in somehow when we aren't looking :) thank you for reporting this!
< rcurtin> I believe that the model will train and perform best, though, when you can give it as many points as possible at a time when calling Train()
< rcurtin> ("perform best" both in terms of accuracy and speed)
< ak> that makes sense, I am just glad to know it is possible. The plan is to start the program with a fairly trained model, and as it goes it can only get better
< rcurtin> I was reading that comment too, I think that is also inaccurate according to the code I am seeing
< rcurtin> oops, sorry, for some reason my IRC client was scrolled to the wrong message
< rcurtin> ignore what I just wrote :)
< rcurtin> I'm waiting on tests to compile and pass here, then I'll have a patch posted
< ak> '=D I may not be able to update my installs for a bit, should I just add zoq's if-statement to enclose those two lines?
< rcurtin> ak: yeah, that's basically exactly what my patch does
< rcurtin> so you could just add that and it should work