IRC logs of #shogun for Tuesday, 2013-06-18

--- Log opened Tue Jun 18 00:00:50 2013
-!- nube [~rho@49.244.111.202] has joined #shogun00:03
-!- shogun-notifier- [~irker@7nn.de] has quit [Quit: transmission timeout]00:04
-!- nube [~rho@49.244.111.202] has quit [Ping timeout: 248 seconds]00:11
hushelliglesiasg: python modular is okay now, but java failed...00:50
iglesiasghushell: oh, do we have java examples with SO? :D00:51
iglesiasgdidn´t know about that00:51
iglesiasghushell: what is the test that fails?00:51
hushelliglesiasg: https://travis-ci.org/shogun-toolbox/shogun/jobs/817786700:52
hushelldo you have any idea why this happened?00:52
iglesiasgmmmm that looks weird00:53
iglesiasghushell: no, no idea really00:53
iglesiasgI would say it is not your patch's fault though00:53
hushell:) the java modular was okay before I modifying python examples00:53
hushellmaybe the travis machine got a problem00:53
iglesiasgyes, it should be that00:54
iglesiasgdid you update the PR then?00:54
hushellI just update the python examples00:54
hushellLet's wait Nico's reply for the m_loss00:54
iglesiasghushell: yeah sure00:55
iglesiasghushell: any idea why there are two different commits in the PR?00:55
iglesiasgthis one looks a bit weird00:56
iglesiasghttps://github.com/hushell/shogun/commit/dfa323f58d35a55b4108c91c5bf2b605316ff23200:56
hushellI used the commit --amend00:56
iglesiasgit seems Soumyahit changes got in there00:56
hushellmaybe I should do reset --soft00:57
iglesiasgI don't really understand how his changes got in there :D00:59
-!- lisitsyn [~lisitsyn@83.234.169.173] has left #shogun []01:00
iglesiasganyway in the overall diff of the PR they don't appear01:01
iglesiasgso if you are struggling to fix that we can probably just merge it, I don't think it should be a big issue01:01
hushellnow I made them one commit :)01:02
iglesiasghushell: ah nice you fix it already :)01:02
iglesiasgthanks!01:02
hushellall these happend because I don't git rebase :(01:02
hushelllearning from pain01:02
hushelliglesiasg: Thanks again for the tips!01:03
iglesiasghushell: you are welcome :)01:03
iglesiasgwe have all screwed with git so many times, I have specially done it many many times :D01:03
hushell:D Shogun makes me know how to use git01:05
iglesiasgyes, that's pretty good actually!01:05
iglesiasghushell: what's the plan now, heading already towards the factor graph?01:06
hushelliglesiasg: yep, I have started factor graph, but things will going a bit slow, cause I need to go to Seatle for 2 days01:07
hushelliglesiasg: How is your project going?01:07
iglesiasghushell: good!01:08
iglesiasgI am meeting Georg tomorrow around here at 10am CET, I will be able to start harcdore coding soon :)01:09
iglesiasgbut it will probably be slow this week as well for me01:09
iglesiasgI am coming back to Sweden tomorrow01:09
iglesiasgand this week is sort of big festivity there01:10
hushellSo you done with your holidays01:10
hushellwhy you go back to school?01:10
iglesiasghehe I was not in Spain for holidays actually, I came to finish my degree here01:11
iglesiasghushell: no, it is called midsommar, the longest day of the year01:11
hushellmy place still cold at night :(01:12
iglesiasg:(01:13
hushellSweden should be even colder I guess01:14
iglesiasgwell now in summer, providing that it is not raining, is normally nice weather01:14
hushellpeople should wait for few weeks for celebrating01:14
iglesiasgsomething around 20-25 ºC01:14
hushelllike spring even better than summer :)01:15
iglesiasgyeah01:15
iglesiasgit is too hot for me now in Spain01:15
hushelland you have graduated, enjoy the time !01:15
hushell:D I remember the weather in Barcelona last year, pretty hot01:16
iglesiasghehe01:16
iglesiasgit tends to be warmer in Madrid (where I come from)01:16
hushellI support Real Madrid :)01:16
iglesiasgin Barcelona the weather the sea tends to make the weather sort of less warm01:16
iglesiasgbut here it gets crazy01:17
iglesiasghushell: nice! I am Real Madrid supporter too! :)01:17
iglesiasgnow I like you more :P01:17
hushellhahahaaaa01:17
hushellI was very sad in Bacelona, can't really celebrate too much in bar01:18
iglesiasghaha01:18
iglesiasgwhen were you there? Was there any Real Madrid - Barcelona or so?01:18
hushellI did my master's in UAB01:19
hushellfor one year01:19
iglesiasgaaaah ok!01:19
hushellbut I went to Madrid for once01:19
iglesiasgso did you learn some Spanish?01:19
hushellso hard for me :)01:19
iglesiasgdid you like Madrid?01:19
hushellso much!!!01:19
hushellbut I didnt get a change to watch a match at Bernabeu. probably make this up next year01:20
iglesiasg:)01:20
iglesiasgcool01:20
iglesiasgdid you visit Bernabeu anyway?01:21
iglesiasgI was there a couple of weeks ago01:21
hushellyep I visited there last year this time01:21
hushellAncelotti is coming, a lot of expectation for next season01:22
hushellmaybe we shouldn't talk too much football here haha01:23
iglesiasghahaha a little bit of noise in the logs shouldn't hurt too much :)01:24
iglesiasgbut yes, I am looking forward to seeing a new trainer (I didn't like Mourinho specially)01:25
iglesiasgand I am curious about this guy they mean to incorporate, Bale01:25
hushellI don't like C. Ronaldo too, let Bale come instead :)01:26
iglesiasgc'mon! How can you not like Ronaldo!?!01:27
iglesiasghehe01:27
hushelltoo selfish I guess01:27
iglesiasgIMHO it is just appearence01:28
hushellin this sense, Ozil much better01:28
iglesiasggood player too, indeed01:28
hushellbut I agree CR made many important goals01:28
hushellespecially games with Barca last season01:29
hushellI was happy about that01:29
iglesiasg:)01:30
iglesiasglot of talk going on now around Messi01:30
hushellabout the tax evasion?01:31
iglesiasgyes01:31
hushellis it true?01:31
iglesiasgyes01:31
hushellomg, but I think they will never put him to jail01:32
iglesiasghe is probably not really guilty anyway. I mean, it is not the player who decides where the money is going01:32
iglesiasgthey have other people doing that job01:32
iglesiasgyeah, I bet he won't go to jail. He will probably have to pay a big fine I think01:33
hushellI see, if I were him, I have no idea where the money going01:33
hushelllittle case for him01:34
hushelliglesiasg: I am going to do some exercises right now, have a good night!01:35
iglesiasghushell: good night! talk to you in the morning :)01:35
hushelliglesiasg: see you01:35
-!- shogun-notifier- [~irker@7nn.de] has joined #shogun01:53
shogun-notifier-shogun: hushell :develop * 8288d99 / / (15 files): https://github.com/shogun-toolbox/shogun/commit/8288d99c5dc97bf041fbf69a047c308593e4a93901:53
shogun-notifier-shogun: Removed m_loss from CStructuredOutputMachine01:53
shogun-notifier-shogun: Fernando Iglesias :develop * 3ff28a7 / / (15 files): https://github.com/shogun-toolbox/shogun/commit/3ff28a7854de8c8ffcd0b077d87a756adc74b5c801:53
shogun-notifier-shogun: Merge pull request #1174 from hushell/develop01:53
shogun-notifier-shogun:01:53
shogun-notifier-shogun: Removed m_loss from CStructuredOutputMachine01:53
-!- iglesiasg [d58f3226@gateway/web/freenode/ip.213.143.50.38] has quit [Quit: Page closed]02:06
shogun-buildbotbuild #947 of cyg1 - libshogun is complete: Failure [failed compile]  Build details are at http://www.shogun-toolbox.org/buildbot/builders/cyg1%20-%20libshogun/builds/947  blamelist: hushell <hushell@hushell-U510.(none)>02:08
shogun-buildbotbuild #948 of cyg1 - libshogun is complete: Failure [failed configure]  Build details are at http://www.shogun-toolbox.org/buildbot/builders/cyg1%20-%20libshogun/builds/948  blamelist: Fernando Iglesias <fernando.iglesiasg@gmail.com>02:09
-!- nube [~rho@49.244.81.95] has joined #shogun02:18
-!- nube [~rho@49.244.81.95] has quit [Ping timeout: 246 seconds]02:22
-!- nube [~rho@49.126.230.83] has joined #shogun02:47
-!- nube [~rho@49.126.230.83] has quit [Quit: Leaving.]03:53
-!- zxtx [~zv@rrcs-74-62-200-195.west.biz.rr.com] has quit [Ping timeout: 256 seconds]04:41
-!- shogun-notifier- [~irker@7nn.de] has quit [Quit: transmission timeout]04:53
-!- nube [~rho@116.90.239.3] has joined #shogun05:29
-!- nube [~rho@116.90.239.3] has quit [Ping timeout: 276 seconds]05:34
-!- nube [~rho@116.90.239.3] has joined #shogun05:42
-!- zxtx [~zv@cpe-75-83-151-252.socal.res.rr.com] has joined #shogun07:05
-!- foulwall [~foulwall@2001:da8:215:503:70af:908a:2f4b:1f27] has joined #shogun07:12
-!- foulwall_ [~foulwall@li379-21.members.linode.com] has joined #shogun07:13
-!- foulwall [~foulwall@2001:da8:215:503:70af:908a:2f4b:1f27] has quit [Remote host closed the connection]07:14
-!- foulwall_ [~foulwall@li379-21.members.linode.com] has quit [Remote host closed the connection]07:51
-!- foulwall [~foulwall@2001:da8:215:503:4d40:8c59:6d30:e247] has joined #shogun07:57
-!- iglesiasg [~iglesias@193.147.49.157] has joined #shogun08:39
-!- mode/#shogun [+o iglesiasg] by ChanServ08:39
-!- sonne|work [~sonnenbu@sams-office-nat.tomtomgroup.com] has left #shogun []08:47
-!- lisitsyn [~lisitsin@mxs.kg.ru] has joined #shogun08:55
-!- patrickp [~patrickp@84-75-165-165.dclient.hispeed.ch] has joined #shogun08:56
@iglesiasgpatrickp, hushell hey guys, good morning08:58
patrickphi hushell and iglesiasg08:58
patrickphushell: thanks for the pr last night, great work08:58
@iglesiasghushell, yeah! nicely done :)08:59
@iglesiasghushell, patrickp I have one hour more or less to discuss, then I will be around here with Georg and maybe lisitsyn discussing about the LMNN project :)09:00
lisitsyniglesiasg: yes I am here09:00
patrickpsure, thanks a lot for taking the time to discuss with us!09:00
@iglesiasgpatrickp, with pleasure!09:00
patrickpone question: what's the state of CKernelStructuredOutputMachine? Is it just an abstract class for now?09:01
@iglesiasgpatrickp, yes09:02
@iglesiasgthere is no KernelStructuredOutputMachine implemented so far apart from that class09:02
@iglesiasgthat I added a bit for consistency, when I created the LinearStructuredOutputMachine09:02
patrickpis there a point in keeping it? I mean if somebody feels eager to implement it, one could always go back in the git history09:03
patrickpwhat's the policy of shogun w.r.t. this?09:03
@iglesiasgpatrickp, any particular reason why you would like to drop it?09:04
hushellgood morning, patrickp and iglesiasg09:04
patrickpalso, I find the name LinearStructuredOutputMachine very misleading, in the end all all SVMs are linear (in some space)09:04
@iglesiasgaham09:04
lisitsynpatrickp: that's kind of conventional here09:04
lisitsynwe have KernelMachine and LinearMachine09:05
patrickpI see, cool, then I don't want to mess with that :)09:05
lisitsynpatrickp: our linear is linear like <w,x> in original or explicit space09:05
hushelland seems there is a new branch for latent machines09:05
patrickplisitsyn: yes, I understand that, it's just that the kernelized version is in some sense also linear (in the primal), but that's just a detail. Never mind09:06
lisitsynpatrickp: yes sure I understand - though we can't make them all linear09:07
lisitsynimplementation-wise I mean09:07
patrickphushell: not sure you got this: thanks for your PR, great work09:08
lisitsynbahh have you heard goldbach's conjecture is proven?09:08
patrickplisitsyn: It's totally fine with me, I was just thinking primal vs. dual machine might be a more natural name09:08
hushellpatrickp: I got it! You are welcome. This just the 1st step09:08
patrickpsure09:08
lisitsynpatrickp: oh that's nice suggestion09:09
@iglesiasgI think so too09:09
hushellI updated a new work plan, https://docs.google.com/document/d/1xkJ1N4nV3rJrDJwvp4IdKwGStlmBDbcJdcALarL1tV8/edit#heading=h.44b5ay8ssuhp09:09
patrickplisitsyn: but probably very intrusive :)09:09
patrickphushell: I think removing surrogate_loss should be your next mini-pr, or does anybody feel strongly about keeping it?09:10
lisitsynpatrickp: sed uber alles09:10
@iglesiasgyeah, and we would probably lose consistency between SVMs and other machines/classifiers for which primal/dual does not make sense09:10
lisitsynbut yes lets not change that09:10
patrickpiglesiasg: that's probably a good point too09:10
@iglesiasgpatrickp, let's see what nico says about the surrogate_loss09:10
-!- zxtx [~zv@cpe-75-83-151-252.socal.res.rr.com] has quit [Ping timeout: 260 seconds]09:11
@iglesiasglisitsyn, http://arxiv.org/abs/1303.4649 this one?09:11
patrickpsure, let's wait a few days, if no answer, or positive, let's remove it09:11
hushellpatrickp: I am going to make the factor graph as main task this week09:11
@iglesiasglisitsyn, haha all integers greater than 362 -- that sounds funny I think :D09:11
lisitsyniglesiasg: yes09:11
lisitsyniglesiasg: pure math is so pure09:12
@iglesiasglisitsyn, I can see you have been studying hard for you philosophy exam :P09:12
patrickphushell: ambitious first week09:12
lisitsyniglesiasg: ahh no that's wrong paper09:12
lisitsyniglesiasg: http://arxiv.org/abs/1305.2897 this one09:12
lisitsyniglesiasg: yes that's why I failed09:13
@iglesiasglisitsyn, oh have you already done it? I am sorry :(09:13
patrickphushell: I know it's not the most rewarding to cleanup the interface, so yeah, try to both at the same time. Probably also gives you an indication where the framework has some weaknesses.09:14
lisitsyniglesiasg: hah not really failed but can be considered so09:14
hushellpatrickp: I mean what I have mentioned in email and last PR09:14
patrickphushell: sure09:14
hushellpatrickp: That's true. The best way to understand it is to modify it09:15
patrickphushell: any thoughts on moving init_opt, get_num_aux to the machines?09:15
@iglesiasgpatrickp, I am not sure if that makes complete sense09:16
patrickpok, I haven't looked too much into the code, why not?09:16
@iglesiasgpatrickp, say I am using the PrimalMosekSOSVM for label sequence learning with the HMSVMModel09:17
@iglesiasgthen it could make sense to have some auxiliary labels that ensure smoothness of the functions used to model the observations09:17
@iglesiasgbetter than ensure, enforce09:17
patrickplet me try to understand this a bit better from the code09:18
@iglesiasgI think this would not make sense in other structured model, say the MulticlassModel or the upcoming one with the factor graph09:18
hushelliglesiasg: but init_opt and risk can be moved to machine classes, isn't it?09:18
@iglesiasghushell, I am not sure about risk since I have not used it that much09:18
patrickpwell, risk might be something we want to keep, but I have to check09:19
patrickpnot sure what exactly the use case is09:19
@iglesiasgregarding init_opt I feel a bit like for get_num_aux09:19
hushellrisk() only depends on m_features, so if we move m_features to machine classes ...09:19
patrickpand probably the labels, no?09:19
@iglesiasg intuitively I think it makes sense to move the risk09:20
hushellfor init_opt(), in multiclass case, it creates a identity matrix while used regularization09:20
hushellI am not sure other places09:20
hushellfor multiclass, I think it should be bound with a solver09:21
@iglesiasgIIRC init_opt does quite a bit of things in the HMSVM09:21
@iglesiasgalthough I doubt it is well designed09:21
hushelllet me check :) I just read the main code09:22
hushelliglesiasg: yes, it uses labels features etc for initialization09:24
hushellbut in StructuredOutputMachine, we have a reference to structured model09:24
@iglesiasghushell, what I mean is that init_opt might do things that make sense for the HM-SVM but not for other models09:25
@iglesiasgmight do, or is actually doing09:25
@iglesiasgthen I see it better bound to the model rather than the machine09:25
hushellmy opinion is making StructuredModel as simple as possible09:25
@iglesiasgok09:26
patrickphushell: I second that :)09:26
@iglesiasghow would you do these sort of differnt initializations for different models if init_opt is bound to the machine?09:26
patrickpin the optimization: what's the implication of these aux vars?09:26
@iglesiasgpatrickp, they are part of the weight vector09:26
patrickpbut that means they also have some corresponding elements in phi, no?09:27
@iglesiasgphi = joint feature vector right?09:27
patrickpyes09:27
hushelliglesiasg: I see what you concern, different models may have different initialization09:27
@iglesiasgI normally say psi, just wanted to ensure :)09:27
@iglesiasgpatrickp, let me think of it a moment09:27
patrickpnormally: psi = the difference of the phis, phi = feature map09:28
patrickpthere are of course scenarios, where you want to impose some constraints on the weight vector, that is true09:29
@iglesiasgpatrickp, aham ok09:29
@iglesiasgpatrickp, according to CHMSVMModel::get_dim() they don't have corresponding elements in phi09:29
patrickpi see, so it's really optimization constraints09:29
@iglesiasgindeed09:30
patrickphmm, ok, but then maybe we just have a function in all the models that returns the constraints on the weights?09:31
hushelliglesiasg: what are the A B C in the init_opt?09:31
patrickpin general this is a nop, but for HMSVM this actually returns the constraints, in some to be specified format09:31
@iglesiasghushell, C is the regularization, A and B are the Ax <= B in the constraints of the QP09:32
hushelliglesiasg: ok I saw it in Mosek.h09:32
@iglesiasgpatrickp, that would make sense. When you say returns the constraints, you don't mean just the number of them as get_num_aux currently does, do you?09:33
@iglesiasgbut also what constraints in the weight vector they actually represent09:33
patrickpno, more something along the lines of your C, A and B09:33
@iglesiasgaham ok09:33
patrickpbut these are a bit QP centric, not sure whether there is a better way though to express them09:34
patrickpmy concern is anyway, that probably many solvers/machines would have a hard time taking care of the constraints09:34
@iglesiasgyes, I agree09:35
hushellLet's make it clear, init_opt() uses features and labels for constructing / initializing the QP, then it depends on how we would like to design StructuredModel09:36
@iglesiasgI think it would be difficult to handle in other solver that does not solve the QP explicitily as the PrimalMosekSOSVM09:36
hushellif we want to keep features and labels in StructuredModel, we could keep init_opt here09:36
hushellotherwise it is better to move it to StructuredOutputMachine09:36
patrickpsorry, i realize this was a bit ambiguous: it seems that these constraints are about the weight vector. I think this is a model property and hence should be kept in there.09:37
patrickpNow about the implementation: many solvers (say SGD etc) will need special modifications to actually take care of these constraints09:38
patrickpiglesiasg: in hmsvm, do you modify the regularization at all, or is it only about the Ax <= b09:39
@iglesiasgpatrickp, there is also a small change in the regularization09:39
@iglesiasgdifferent regularization strength is used for different parts of the vector09:39
patrickpas in: still l2, but different lambda for each component?09:40
@iglesiasgyes09:40
@iglesiasgstill l209:40
hushelliglesiasg: HMSVM implemented this paper? http://cs.brown.edu/~th/papers/AltTsoHof-ICML2003.pdf09:40
@iglesiasgmy lambda is what I called C09:40
@iglesiasghushell, yes09:41
hushelliglesiasg: Great job!09:41
@iglesiasghushell, the implementation is based on the hmsvm matlab implementation http://mloss.org/software/tags/hmsvm/09:41
@iglesiasgso our implementation is a bit different09:42
patrickpok, so it seems to me that these constraints would be very difficult to handle in all the solvers.09:42
@iglesiasgin the paper they only account for discrete observations09:42
@iglesiasgwe have also something to use continuous observations09:42
@iglesiasgpatrickp, yes probably09:42
@iglesiasgpatrickp, I would very like being able to disable or enable them. For instance, I am afraid the HMSVMModel right now is only usable with the PrimalMosekSOVM09:43
* iglesiasg AFK, brb in 5 minutes max09:43
patrickpso how about this: we keep a method get_additional_constraints() which in some way returns the number of constraints and the A,B,C matrices09:44
hushelliglesiasg: for python, I saw it can be trained by bmrm09:44
patrickpthe solvers will then call this function, and decide whether they just error (because they can not handle constraints) or take care of the constraints09:45
* iglesiasg back09:47
-!- zxtx [~zv@cpe-75-83-151-252.socal.res.rr.com] has joined #shogun09:48
@iglesiasgpatrickp, when you say that it returns the A,B,C you mean the part that is related to the aux constraints09:49
@iglesiasgnot the whole A,B,C or?09:49
patrickpyes, for A and B yes09:49
patrickpfor C I'm not sure09:49
-!- foulwall [~foulwall@2001:da8:215:503:4d40:8c59:6d30:e247] has quit [Remote host closed the connection]09:50
@iglesiasgok, and when are these terms initialized in the model, in the constructor or so?09:50
patrickpif i understood correctly: C is the regularization "matrix", so you might want to define this yourself in some situations09:50
@iglesiasgyes09:50
patrickpwell, I think we would just have the solver call that special constraint function before doing any work09:51
patrickpif it supports the constraints, say PrimalMosek machine, then it modifies the A,B,C that it would normally use09:52
@iglesiasgok09:52
@iglesiasgI think it makes sense09:52
patrickplike this we would implement the constraint function in the parent SOModel as returning no constraints whatsoever09:53
hushellpatrickp: another related fundemental question, shall we keep features and labels in model?09:53
patrickpand only in HMSVM, we would need to implement this09:53
@iglesiasgpatrickp, it sounds good09:54
hushellmaybe Factor graph we also need some auxilary variables09:54
patrickphushell: I would strongly vote for moving them into the machine, but you know the code better than me by now. It just seems the wrong place to have any observations.09:54
patrickpi mean for multi class SOSVM, you know that dim = K*d, for factor graph with the templates we will also be able to infer this without the data09:55
hushellyes, I agree that model should be independent of data and observations09:55
@iglesiasgpatrickp, in the hmsvm it might be a bit more involved to do this change09:56
@iglesiasgalthough I agree with moving features and labels to the machine only09:56
hushellso ideally, we only need user to implement these functions: joint_feat_vector(), argmax(), loss()09:57
hushellall data labels related things move to machine09:57
hushellAm I right?09:57
-!- zeller [~zeller@embln.embl.de] has joined #shogun09:57
patrickpyes, exactly, and after today's discussion, if the user feels like it, he can also implement a constraint generator09:57
patrickpyes, you're right :)09:57
@iglesiasghi zeller !09:58
zellerhi fernando!09:58
hushellconstraint generator you mean for the case HMSVM09:58
@iglesiasgzeller, lisitsyn : maybe we should move to another chat room so this does not get too confusing with patrickp and hushell's conversation :)09:59
lisitsynheh sure09:59
patrickpexactly, there might be other models, too. like a sub modular binary model09:59
zelleralrigt09:59
lisitsynjoin #lmnn-sucks09:59
@iglesiasglisitsyn, zeller I have just joined #lmnn09:59
lisitsyn:D09:59
@iglesiasghaha ok09:59
@iglesiasglmnn-sucks then09:59
lisitsynoh well09:59
lisitsynokay09:59
lisitsyn:D09:59
hushellThanks :D09:59
patrickphushell: does that roughly make sense?10:00
hushellyes! now I see the big picture10:00
hushellbut for the hmsvm may need more eforts to change the current structure10:01
patrickphushell: next steps: 1. (when we hear back from nico) remove the surrogate loss, 2. resolve the init_opt, aux_vars_* mess. Probably boils down to implementing a constraint generator in model, defaults to do nothing. 3. move labels and features to machine only10:01
hushellI think I can make it this week10:01
patrickpI agree, hmsvm, seems tricky10:01
patrickpbut I think in the end it is important that the class design doesn't get too complicated just because of one particular application10:02
patrickpif you can get that fixed this week that would be incredible :), but I see that these are a lot of changes10:03
hushellto make things a bit clear before coding, the constraint generator need to output A B C?10:03
patrickpone last concern i have with the current design is CResults, but I have to understand this a bit better before commenting on it10:04
patrickphushell: well, I don't fully understand HMSVM just yet. But from iglesiasg 's descriptions the init_opt etc boil down to having specific constraints on the weight vector.10:05
patrickpwhich as far as I can say is equivalent to specifying an A, B and C10:05
hushellthey just keep results in a class: esult = m_model->argmax(m_w, i);10:05
hushellyes, anyway just initialize the QP10:06
patrickpI'd say ideally the signature is something like this: bool constraints(A,B,C)10:06
hushellI will think about how to clean this up10:06
patrickpso, return a bool whether there are any special constraints10:07
patrickpin the machines we would then always call that function and check that it has no special constraints10:07
patrickpif it has we error10:07
hushellthis function defined in model?10:07
patrickpyes10:07
patrickpthat's a model assumption, I'd say10:08
hushellokay, like a back door10:08
hushell:)10:08
patrickp:)10:08
patrickpwhich change do you think is easier: features+labels or init_opt?10:09
patrickpI'd start with the easier one10:09
hushellI agree10:09
hushellI am still not fully sure how should modify init_opt, maybe after read HMSVM I get a better sense10:10
patrickpsure, that seems like a difficult one, I would also need to look into the specifics10:10
hushellanyway, all these stuff should be done this week10:10
patrickp:), you're ambitious!10:11
hushell:) according to the plan, we have more difficult things later10:11
patrickpyes, but with these you can start from scratch, this is sometimes easier :)10:12
hushellI hope so10:12
pickle27lisitsyn, made some good progress tonight!10:12
patrickpand I think the other tasks are achievable10:12
lisitsynpickle27: oh nice! what's going on?10:12
pickle27lisitsyn, I started working on a basic main program to test the various methods10:13
lisitsynpickle27: tomorrow is the interview day for you right?10:13
hushellpatrickp: hmm, I need to go to Seatle for 2 days, maybe the next PR will be on Friday10:13
pickle27I basically borrowed the scikit-learn ICA example but re-wrote it for shogun and my work10:13
patrickphushell: sure, that's fine. let me know if you have questions10:13
pickle27so I have a basic synthetic test case ready to go10:13
hushellpatrickp: I will keep in touch10:14
pickle27lisitsyn, well technically tomorrow because its 2 AM here but its really the day after tomorrow10:14
hushellpatrickp: How is your visa?10:14
lisitsynpickle27: hah yes sure10:14
patrickphushell: still waiting :)10:14
pickle27lisitsyn, anyways I'm heading to sleep10:15
pickle27later!10:15
lisitsynpickle27: sure, see you later!10:15
-!- pickle27 [~Kevin@S0106002191dec7e8.cg.shawcable.net] has quit [Quit: Leaving]10:15
patrickpalright, I'm leaving now, hushell, lisitsyn and iglesiasg thanks for the discussion!10:16
lisitsynpatrickp: I was not really into it sorry! :)10:17
lisitsynpatrickp: see you10:17
@iglesiasgpatrickp, thank you! see you10:17
-!- patrickp [~patrickp@84-75-165-165.dclient.hispeed.ch] has quit [Quit: patrickp]10:17
hushellpatrickp: see you, have a good day10:17
-!- Yantlittle [b74040fc@gateway/web/freenode/ip.183.64.64.252] has joined #shogun10:50
Yantlittleexcuse me, how can i get the combined parameters after running "best_combination=grid_search.select_model(print_state)" ?10:51
-!- hushell [~hushell@c-24-21-141-32.hsd1.or.comcast.net] has quit [Quit: WeeChat 0.3.7]10:54
-!- HeikoS [~heiko@nat-180-225.internal.eduroam.ucl.ac.uk] has joined #shogun11:38
-!- mode/#shogun [+o HeikoS] by ChanServ11:38
-!- iglesiasg [~iglesias@193.147.49.157] has quit [Quit: Saliendo]11:40
Yantlittleexcuse me, how can i get the combined parameters after running "best_combination=grid_search.select_model(print_state)" ?11:44
-!- van51 [~van51@athedsl-408350.home.otenet.gr] has joined #shogun11:47
@HeikoSYantlittle: combined parameters?11:47
@HeikoSof a kernel?11:47
@HeikoSYanlittle, you can for example print the parameter tree11:48
@HeikoSor you can apply them to the machine and then read out the parameters11:48
Yantlittlei applied it to a  classifier, and the C i can get, but i didn't know how to get  the kernel's width11:49
@HeikoSYantlittle: is it a combined kernel?11:49
@HeikoSor is it a single one?11:50
Yantlittleit is a chi2kernel11:50
Yantlittlea single kernel11:50
@HeikoSYantlittle: then its easy, apply the best parameters to the underlying machine11:50
@HeikoSand then call get_kernel() of the machine11:50
@HeikoScast it to the proper type11:50
@HeikoSusing obtain_from_generic of the target class11:50
@HeikoS(does type checking)11:50
@HeikoSand then call get_width() on the kernel11:51
Yantlittleget_kernel() is no problem  and  the next step, how to cast it to the proper type ?11:52
-!- zeller [~zeller@embln.embl.de] has left #shogun []11:53
@HeikoSis it a Gaussian?11:53
YantlittleChi2Kernel11:53
@HeikoSI see, do you know that for sure? (can it be another one or did you only add kernels of this type?11:53
Yantlittlei'm sure.11:54
@HeikoSok then you can simple do a manual c-style cast11:54
@HeikoS(or dynamic cast)11:54
Yantlittlei just grid search the c and the width11:54
@HeikoSchi_kernel = (Chi2Kernel*) machine->get_kernel()11:54
@HeikoSoh which interface?11:54
Yantlittlepython modular11:54
@HeikoSah I see11:55
@HeikoSthen let me write a quick patch for you, since I think its currently not possible from there ....11:55
@HeikoSlisitsyn:  do we have a kernel factory that does casts or do we have to add the obtain_from_generic for every single one?11:57
-!- shogun-notifier- [~irker@7nn.de] has joined #shogun12:01
shogun-notifier-shogun: Heiko Strathmann :develop * 5e55448 / src/shogun/kernel/Chi2Kernel.cpp,src/shogun/kernel/Chi2Kernel.h: https://github.com/shogun-toolbox/shogun/commit/5e554488562defc8f35a9a11c914e2f248bbffdf12:01
shogun-notifier-shogun: added get_width and obtain_from_generic12:01
shogun-notifier-shogun: Heiko Strathmann :develop * 8d73e86 / src/shogun/kernel/Chi2Kernel.cpp,src/shogun/kernel/Chi2Kernel.h: https://github.com/shogun-toolbox/shogun/commit/8d73e8652aa2cd121de7b9b4544fdff52e16ff1f12:01
shogun-notifier-shogun: Merge pull request #1175 from karlnapf/develop12:01
shogun-notifier-shogun:12:01
shogun-notifier-shogun: added get_width and obtain_from_generic for Chi2 kernel12:01
@HeikoSYantlittle: I have added this to the development branch12:01
@HeikoSyou can do CChi2Kernel.obtain_from_generic(any_kernel) which returns the proper type, then call get_width12:01
Yantlittlei need to rebuild the shogun?12:02
@HeikoSYantlittle: yes unfortunately, but only make, not configure12:03
@HeikoSjust do a git pull and then make -j 412:03
@HeikoSmake install12:03
Yantlittlei know  now  i used the shogun 2.1.0 ..12:03
@HeikoSoh12:04
@HeikoSI see, yes you have to checkout the development branch12:04
-!- nube [~rho@116.90.239.3] has quit [Quit: Leaving.]12:07
Yantlittlei reinstall the shogun may be it's better12:07
@HeikoSYantlittle: let me know how it goes12:08
Yantlittleok12:08
@HeikoSlisitsyn, wiking do we have a general solution for this casting problem? Its dull to add these methods for every class12:08
@HeikoSwiking: how are the unit tests going, please give this some priority, otherwise your bagging might crash12:08
-!- lambday [67157c4c@gateway/web/freenode/ip.103.21.124.76] has joined #shogun12:09
-!- van51 [~van51@athedsl-408350.home.otenet.gr] has left #shogun ["PART #gsoc-gr :QUIT :Leaving."]12:14
lisitsynre12:14
lisitsynHeikoS: our usability ueber alles12:15
lisitsyn:D12:15
lisitsynHeikoS: where is the master btw?12:16
@HeikoSlisitsyn: dont know :)12:16
@HeikoSlisitsyn: the obtain_from_generic are the same for any kind of object12:16
@HeikoSevery class should have that automagically12:16
lisitsynHeikoS: oh we need TO THINK HARD to obtain a solution for that..12:16
@HeikoScan you do some # magic12:16
@HeikoS :)12:16
shogun-buildbotbuild #949 of cyg1 - libshogun is complete: Failure [failed compile]  Build details are at http://www.shogun-toolbox.org/buildbot/builders/cyg1%20-%20libshogun/builds/949  blamelist: Heiko Strathmann <heiko.strathmann@gmail.com>12:17
lisitsynHeikoS: casting is indeed wrong12:18
lisitsynHeikoS: what is even worse no magic is appliable here I think12:18
@HeikoSlisitsyn:  why not, code is always the same12:18
@HeikoSuse dynamic cast12:18
shogun-buildbotbuild #950 of cyg1 - libshogun is complete: Failure [failed configure]  Build details are at http://www.shogun-toolbox.org/buildbot/builders/cyg1%20-%20libshogun/builds/950  blamelist: Heiko Strathmann <heiko.strathmann@gmail.com>12:18
-!- van51 [~van51@athedsl-408350.home.otenet.gr] has joined #shogun12:18
@HeikoSnot these enums12:18
@HeikoSI dont like them anyways ;)12:18
lisitsynHeikoS: no I mean if we go for casting everything we get a lot of casts12:19
lisitsyntoo many12:19
lisitsynkernel, distance etc12:19
lisitsyneverywhere12:19
@HeikoSso?12:19
@HeikoSevery class has to get a method where we just have to replace the class name12:19
lisitsynHeikoS: don't you think it is a sign of something bad?12:21
lisitsynHeikoS: well I have a solution in my mind12:21
lisitsynHeikoS: good there is no master around there12:22
lisitsyntemplate<typename T>12:24
lisitsynclass A12:24
lisitsyn{12:24
lisitsyn   static T* from(CSGObject* sgo) { return dynamic_cast<T>(sgo); }12:24
lisitsyn}12:24
lisitsynclass B : public A<B>12:24
lisitsyn{12:24
lisitsyn}12:24
lisitsynHeikoS: ^12:24
lisitsynCRTP12:24
lisitsynI don't know how is it applicable to swig12:26
lisitsynbut that's how static polymorphism is reached12:26
Yantlittlex.obtain_from_generic(x).get_width()  it says no attribute get_width.12:30
-!- shogun-notifier- [~irker@7nn.de] has quit [Ping timeout: 264 seconds]12:32
-!- votjakovr [~votjakovr@host-46-241-3-209.bbcustomer.zsttk.net] has joined #shogun12:33
lisitsynYantlittle: Chi2Square.obtain_from_generic(x).get_width()12:34
votjakovrHeikoS: hi! Maybe it's a good idea to ask Oliver about real life application of GPC. What do you think about that? I remember he talked something about using log poisson in bio applications, so probably he has some suggestions12:39
Yantlittleno chi2square12:40
lisitsynYantlittle: oh sorry12:40
lisitsynChi2Kernel :D12:40
Yantlittlei  have  used this command  the same error12:41
@HeikoSlisitsyn: sounds good to me :) haha12:41
@HeikoSYantlittle: let me check...12:42
@HeikoSvotjakovr: very good idea, I will write him a mail12:45
@HeikoSYantlittle: it is the static method of Chi2Kernel12:45
@HeikoSthat should work12:45
@HeikoStry printing Chi2Square.obtain_from_generic(x).get_name()12:46
@HeikoSto see what instance that is12:46
YantlittleChi2Kernel.obtain_from_generic(x).get_name()  result : 'Chi2Kernel'12:47
@HeikoSYantlittle: and then get_width() is not available??12:47
@HeikoSok there might be another problem, let me check12:48
@HeikoSvotjakovr:  how is the GP baseclass business going?12:48
YantlittleChi2Kernel.obtain_from_generic(x).get_width() Traceback (innermost last):   File "<stdin>", line 1, in <module> AttributeError: 'Kernel' object has no attribute 'get_width'12:48
lisitsynHeikoS: ha obtain from generic returned kernel12:48
@HeikoSwell thats weird since12:49
@HeikoSstatic CChi2Kernel* obtain_from_generic(CKernel* kernel);12:49
@HeikoSlisitsyn:  any ideas?12:49
lisitsynHeikoS: don't knwo12:49
@HeikoSYantlittle: could you post your code on gist?12:50
@HeikoSlisitsyn: it would be great to have this automagically, already the 5th time somebody asks about that12:51
lisitsynHeikoS: CRTP is the solution12:51
Yantlittlewait a moment12:52
@HeikoSlisitsyn: lets try it! :)12:52
votjakovrHeikoS: working on it...12:52
lisitsynHeikoS: not now though12:53
@HeikoSlisitsyn:  okay ;)12:53
Yantlittlehttps://gist.github.com/anonymous/5804425   here12:59
@HeikoSYantlittle: checking ...13:06
@HeikoSlisitsyn:  my current shogun cannot compile13:08
@HeikoShow with you?13:08
lisitsynHeikoS: under windows now13:09
lisitsynlet me try13:10
@HeikoSlisitsyn:  had some git issues maybe it was that13:11
@HeikoSYantlittle: sorry for the wait, will check asap13:11
@HeikoSlisitsyn:  look like it works now, there were some old files messing thigns up13:14
@HeikoSah git I love you13:14
lisitsynHeikoS: that's not git ;)13:16
@HeikoSlisitsyn:  it was, related to my failures yesterday ;)13:16
lisitsynI see13:17
lambdayHeikoS: lisitsyn something is wrong with GCDEBUG :-/13:23
lambdayhttps://gist.github.com/lambday/580446913:23
@HeikoSlambday: weird, have you tried SG_DEBUG instead?13:24
lambdayHeikoS: yes that's working13:24
lambdaybut not GC13:24
@HeikoSlambday:  could you fill in a bug report then with the example code and assign it to sören?13:24
lambdayno idea why!13:24
lisitsynlambday: whoop13:24
lambdayHeikoS: alright13:25
lambdaylisitsyn: any clue? :(13:25
lisitsynlambday: no I don't know13:25
lisitsynlambday: it happens *only* with gcdebug right?13:25
lambdayya tested with the rest13:26
lambdayHeikoS: by filing a bug report, you mean creating an issue, right? (never done this before)13:32
Yantlittleis there any problem?13:44
lambdayhow do I put a label on an issue? :-/13:46
Yantlittlenow shogun can be used under windows?13:51
-!- nube [~rho@49.244.125.191] has joined #shogun13:52
@HeikoSlambday: yes issue14:37
@HeikoSYantlittle: sorry I was out for lunch, checking now14:37
@HeikoS(now that shogun is compiled here)14:37
@HeikoSYantlittle: I dont get this error here, may it be that you haven't re-installed shogun=?14:40
@HeikoSkernel=Chi2Kernel(10, width)14:40
@HeikoSprint Chi2Kernel.obtain_from_generic(kernel).get_width()14:40
@HeikoSthis works14:40
lambdayHeikoS: yes I created one.. not sure how to put label or assign anyone though14:43
@HeikoSjust create the issue then,Ill do the rest14:44
lambdayHeikoS: https://github.com/shogun-toolbox/shogun/issues/117614:44
@HeikoSassigned14:47
lambdayHeikoS: :)14:49
lambdayHeikoS: I'm writing the classes one by one... CJobResult, CScalarResult and CVectorResult finished...14:49
@HeikoSlambday: very nice14:50
lambdayHeikoS: next I'll write the aggregator base class, and then something for the direct log of dense14:50
@HeikoSsounds good14:50
lambdaythen modify operator and engines..14:50
lambdayHeikoS: one stupid question - say, I test the whole thing and commit each of these classes one by one... is it possible that I push it all to my fork and send PR one per each commit?14:51
@HeikoScanÄt you just send the ones that are done before starting new ones?14:52
@HeikoSif not, you can create some local branches to manage that14:52
@HeikoSif this is all too annoying, just send the full thing14:52
lambdayHeikoS: that would be a bit problematic for reviewing :( I understand.. okay I'll send PRs for the ones that are already done14:54
lambdayHeikoS: sending one now then.. check if the documentation you wanted me to fix seems okay :)14:54
@HeikoSlambday: yep14:55
@HeikoSlambday:  its very good to push things as soon as they are working14:55
@HeikoSno need in piling stuff up14:55
@HeikoSsmall steps are better14:55
lambdayHeikoS: yes :)14:56
lambdayjust sent..14:56
lambdaybrb14:58
-!- van51 [~van51@athedsl-408350.home.otenet.gr] has quit [Quit: Leaving.]14:59
@HeikoSlambday:  is there a reason why you put everything in .h files only?15:03
lambdayHeikoS: no.. its just, they are too small..15:03
lambdayI wasn't sure if I should make separate cpp for these15:04
@HeikoSlambday: yeah make one, otherwise one has to recompile all dependent classes if implementation is changed15:04
lambdayHeikoS: okay.. changing then.. the base class in .h is fine though, right?15:05
@HeikoSyep15:05
@HeikoSlambday:  ah wait15:06
@HeikoSin fact15:06
@HeikoSthe results can stay in h15:06
@HeikoSI confused something15:06
lambdayHeikoS: since these had just one get_result method, so I thought it would be okay15:06
@HeikoSthought there was an aggregator class also15:06
@HeikoSbut there isnt15:06
@HeikoSso its fine15:06
lambdayHeikoS: hmm.. okay then15:06
@HeikoSrest is fine, I would remove the init flag, but thats up to you15:07
lambdayHeikoS: that I put in case someone uses the no-arg constructor and then tries get_results with it.. that gives error.. so thought a warning would be nice.. but ya.. looks unnecessary :-/15:08
@HeikoSlambday: why should that happen?15:08
lambdayideally, should not!15:09
@HeikoSthis means that the job returns new BlaResult()15:09
@HeikoSbut if someone does that, its kind of weird anyways15:09
@HeikoSso my point is, thats a development error then, no user error15:09
lambdayHeikoS: yup15:09
@HeikoSso we do not need to protect users from that15:09
lambdayyeah its better to drop that15:09
Yantlittlehey, it's strange, i reinstall shogun again now it work!!!   what's the warning "oid shogun::CMulticlassStrategy::register_parameters(): MulticlassStrategy::CMulticlassStrategy(): register parameters!"15:11
lambdayHeikoS: changed15:13
@HeikoSmerged :)15:14
-!- shogun-notifier- [~irker@7nn.de] has joined #shogun15:14
shogun-notifier-shogun: lambday :develop * b019018 / src/shogun/ (4 files): https://github.com/shogun-toolbox/shogun/commit/b019018843af6218904f04bfb28a7af25105cfc815:14
shogun-notifier-shogun: CJobResult added, CDenseMatrixOperator documentation extended15:14
shogun-notifier-shogun: Heiko Strathmann :develop * dae693c / src/shogun/ (4 files): https://github.com/shogun-toolbox/shogun/commit/dae693c9d4accaf9bdbbc9475b05a2ac35b8766c15:14
shogun-notifier-shogun: Merge pull request #1177 from lambday/feature/log_determinant15:14
shogun-notifier-shogun:15:14
shogun-notifier-shogun: CJobResult added, CDenseMatrixOperator documentation extended15:14
lisitsynHeikoS: ooh man again template classes!15:16
@HeikoSlisitsyn:  whats the alternative here?15:16
lisitsynHeikoS: I don't see any15:17
@HeikoSwe need two versions of the same thing15:17
@HeikoScomplex and float6415:17
lisitsynHeikoS: just crying because of increased compile time15:17
shogun-buildbotbuild #951 of cyg1 - libshogun is complete: Failure [failed configure]  Build details are at http://www.shogun-toolbox.org/buildbot/builders/cyg1%20-%20libshogun/builds/951  blamelist: lambday <heavensdevil6909@gmail.com>15:18
Yantlittle...when I run classifier=MulticlassLibSVM(), there is a warning "RuntimeWarning:void --shogun::CMulticlassOneVsOneStrategy::register_parameters" did any body know what's the problem?15:19
lambdaylisitsyn: not many classes will be template for our purpose :( just 4-5 more15:19
lisitsynlambday: 5 template classes is equal to 70 new classes for swig :)15:21
lambday:( :( no other way :(15:21
@HeikoSlisitsyn:  well we dont need them all15:22
lisitsynHeikoS: I am eager to find some alternative15:22
@HeikoSlambday, lisitsyn when adding interfaces, we will only add Real and Complex for now15:22
lisitsynHeikoS: opencv guys solved it their own way15:22
@HeikoSlisitsyn: in fact, we dont even need to interface them since only internals15:22
@HeikoSso no problem here15:23
lisitsynHeikoS: I want to get rid of template classes everywher15:23
lisitsyn:D15:23
lambdayHeikoS: yes..15:23
@HeikoSuse java :D15:23
lisitsynHeikoS: how java helps here?15:24
@HeikoSno templates15:24
lisitsynwell but generics?15:24
@HeikoSdoent help here at all15:24
@HeikoSjust a stupid comment ;)15:24
@HeikoSgenerics are not templates15:24
@HeikoSthey work differently15:24
lambdayin runtime?15:24
@HeikoSlets not get into this, I take my comment back ;)15:25
lisitsynHeikoS: I hope you didn't tell me what generics are ;)15:25
@HeikoSlambday: btw http://www.ucl.ac.uk/roulette15:26
@HeikoSpublic15:26
lambdayaaah! :D let me check15:26
lambdayI'm gonna be famous among my friends :D15:27
@HeikoSyeah :)15:27
lisitsynHeikoS: german visa is here!15:27
lambdayHeikoS: by the way, in the next meeting, do we have to give a write up or just have to say what we're planning to do? (as in, in irc chat)15:28
@HeikoSlisitsyn:  yeah :)15:28
@HeikoSlambday: just very informal15:28
@HeikoSirc15:28
lisitsynHeikoS: thankfully with no need to visit embassy15:28
@HeikoSit good to prepare something, but not too much or too sophisticated15:28
@HeikoSlisitsyn: nice!15:28
lisitsynHeikoS: if they take me to mentor summit I'll start messing with usa visa in august15:29
lambdayalright.. I will start then.. if I write something up I'll mail you15:29
lisitsynotherwise I am out :D15:29
lisitsynHeikoS: btw we could share the same plane london - sfo15:30
@HeikoSlisitsyn:  good luck with that15:30
@HeikoSlisitsyn:  yea, I havent booked flights yet, so lets talk about that then15:30
@HeikoSlambday: just a few sentences15:30
lambdayHeikoS: okie15:30
lisitsynHeikoS: well I can't book before anything is decided so unclear15:30
@HeikoSoverview of what you are doing, what are the plans for upcoming weeks, what the real life exaple is15:30
lisitsynHeikoS: but still I'd probably have to flight through heathrow15:31
@HeikoSbut for that, you can share the ozone link and say we compute likelihoods in *massive* Gaussian Markov Random Field models15:31
@HeikoSlisitsyn: yep that might be15:31
@HeikoSlisitsyn:  or you go the other way round the globe?15:31
lisitsynHeikoS: haha hah15:31
lisitsynyou should check da map!15:31
lisitsyn;)15:32
@HeikoSmaybe ;)15:33
shogun-buildbotbuild #952 of cyg1 - libshogun is complete: Failure [failed compile]  Build details are at http://www.shogun-toolbox.org/buildbot/builders/cyg1%20-%20libshogun/builds/952  blamelist: Heiko Strathmann <heiko.strathmann@gmail.com>15:39
shogun-buildbotbuild #1108 of deb2 - static_interfaces is complete: Failure [failed test octave_static]  Build details are at http://www.shogun-toolbox.org/buildbot/builders/deb2%20-%20static_interfaces/builds/1108  blamelist: Heiko Strathmann <heiko.strathmann@gmail.com>15:40
lambdayerror!!15:43
@HeikoSlambday:  dont worry15:53
@HeikoSits perceptron stuff15:53
@wikingerrorSKI15:53
@HeikoSwiking: hi! :)15:53
@wikingyo15:53
@HeikoSwiking: ready to be harrassed about unit tests for cloning? :D15:53
@wikingheheheh15:54
@wikingi'm on a trip back home since 22:30 last night15:54
@wikingatm i'm waiting for my transfer at dusseldorf airport ;)15:54
@HeikoSwiking: ah nice15:54
@HeikoSgreetings to Germany! :)15:54
@wikingi'm destroyed :)15:54
@HeikoSwiking: no excuses!15:54
@HeikoS!!!!!!!!15:54
@HeikoS :D15:54
@wikingstill need like 1.5 hours to catch the next flight15:55
@HeikoSall best for your trip !15:55
@wikingand then around 19:30 i arrive15:55
@wikingand then i should still catch a train at 22:30 :P15:55
@wikingthat should arrive around 2:30am15:55
@wiking:D15:55
@wikinghence this is a nice 28 hours trip :P15:55
@HeikoSman15:58
@HeikoStoo much15:58
@wikingheheh yeah15:59
@wikingi did this sorts of things but not within eu :P15:59
@wikingwhen i first flew to australia it was like 35 hours :P15:59
Yantlittle...16:00
Yantlittlewelcome to china16:01
@HeikoSYantlittle: any luck with the get_width() ?16:26
-!- lisitsyn [~lisitsin@mxs.kg.ru] has quit [Ping timeout: 248 seconds]16:45
-!- lisitsyn [~lisitsin@mxs.kg.ru] has joined #shogun16:57
-!- van51 [~van51@athedsl-408350.home.otenet.gr] has joined #shogun17:03
Yantlittleyeah  it can get the width.  but when run the  classifier=MulticlassLibSVM(), it says runtime warning.  what's the meaning ?17:14
Yantlittleexcuse me .17:16
@HeikoSwhats the exact warning?17:23
YantlittleRuntimeWarning: void shogun::CMulticlassStrategy::register_parameters(): MulticlassStrategy::CMulticlassStrategy(): register parameters!17:25
Yantlittleshogun 2.1.0 have not the warning .17:28
@HeikoSYantlittle: dont worry about this one, its internal stuff17:29
Yantlittleok.17:30
-!- lisitsyn [~lisitsin@mxs.kg.ru] has quit [Quit: Leaving.]17:35
-!- Yantlittle [b74040fc@gateway/web/freenode/ip.183.64.64.252] has quit [Quit: Page closed]17:56
-!- shogun-notifier- [~irker@7nn.de] has quit [Quit: transmission timeout]18:14
votjakovrHeikoS: i think we probably need to reorganize file hierarchy, since we'll use inference methods, mean functions, likelihood models, etc not only for regression18:30
@HeikoSvotjakovr: I agree18:31
@HeikoSvotjakovr: suggestions?18:31
@HeikoSI suggest the following: add a gp folder in shogun/machine/18:31
@HeikoSwhich contains all the base class stuff18:32
@HeikoSand then have a gp subfolder in each classifier and regression, where we put the implementations18:32
@HeikoSso all the mean functions, and base classes go to machine/gp18:33
@HeikoSthe regression specific inference methods/likelihoods go to regression/gp18:33
@HeikoSthe classification specific inference methods/likelihoods etc go to classifier/gp18:34
@HeikoSvotjakovr: let me know what you think18:34
@HeikoSvotjakovr: also I would rename the Inference method ExactInferenceMethod ->ExactRegressionInferenceMethod18:36
@HeikoSin fact I would call it ExactRegressionInference (without method)18:36
@HeikoSand then LaplacianInferenceMethod ->LaplacianRegressionInference18:36
votjakovrHeikoS: and what about inference methods, which are used both classification and regression?18:37
@HeikoSvotjakovr: those parts should be pulled out as base classes and put under machine/gp18:37
@HeikoSso if they contain regression/classification specific parts, these go into subclasses18:38
@HeikoSso for example Laplace could be18:38
@HeikoSLaplaceApproximation (base class)18:38
@HeikoSwith subclasses LaplacianRegressionInference and LaplacianClassificationInference18:38
@HeikoSvotjakovr: but actually, it might be not even necessary  since inference methods just compute posterior of GP18:39
@HeikoSvotjakovr: so lets change it a little bit18:40
@HeikoSinference methods also go to machine/gp18:40
@HeikoSfor both classification and regresseion18:40
@HeikoSand the likelihoods also go to machine/gp18:40
@HeikoSjust the GP subclasses go to classifier/ and regression18:40
@HeikoSI think thats better18:40
@HeikoSand inference methods dont have base classes (apart from CInferenceMethod) but rather check whether they can deal with the provided likelihood18:41
@HeikoSdo you think thats sensible?18:41
votjakovrHeikoS: i think, that for user it's better to locate all stuff (inference methods, likelihoods, etc) somewhere in one place (machine/gp/ or probably simple gp/), but classifiers and regression should be in classifier/ and regression/ dirs18:46
votjakovrHeikoS: base class (GPMachine) should be in machine/18:47
@HeikoSvotjakovr: yep, thats the last thing I said :)18:47
@HeikoSyes, that sounds good18:47
@HeikoSthen add a directory machine/gp/ for all the stuff18:48
@HeikoSvotjakovr: that works well, later on, we will have multiclass18:48
@HeikoSgo into multiclass folder18:48
@HeikoSwe will document all this later on ....18:48
votjakovrHeikoS: ah yep :)18:49
votjakovrHeikoS: it should be very useful to describe shogun dirs18:50
@HeikoSvotjakovr: I agree, we will produce documentation later, dont worry about that for now18:50
@HeikoSjust document the classes properly :)18:50
@HeikoSvotjakovr:  it might also be sensible to add an enum to the likelihoods and inference methods, which tell whether something can be used with regression/classification/multiclass or combinations of them18:53
@HeikoSso that the GP machines later can check whether their members are legal18:54
votjakovrHeikoS: but now we can check this by type of inference or likelihood18:57
@HeikoSvotjakovr:  we could for example add a method bool supports_regression()=0; which has to be implemented18:58
@HeikoSsame for classification and multiclass18:58
@HeikoSand the GP machine then calls this method as a check18:58
@HeikoSvotjakovr: they dont have to be pure virtual even19:02
@HeikoSjust add virtual bool supports_regression() { return false; } to all base class of inference and overload in implementations19:03
@HeikoSsame for classification19:03
@HeikoSvotjakovr: see what I mean?19:04
votjakovrHeikoS: make something like apply_...() methods for machines19:05
votjakovrHeikoS: but for supports_...()19:05
@HeikoSvotjakovr: I am not following you19:05
@HeikoSapply_ have to be implemented for the GP sub-classes19:06
@HeikoSdepending on what the machine can do19:06
@HeikoSbut since we pass inference methods to the GP machine, it is possible to pass say a regression inference method to a classification GP machine, we want to avoid that. That is why the classification GP machine then can call inference_method->supports_classification() and gets a false. Then, an error can be thrown19:07
votjakovrHeikoS: Ah, yep, i'll do that :)19:08
@HeikoSvotjakovr: ok nice, how long do you think it will take you?19:08
@HeikoSvotjakovr: I really would like to finish this re-factoring stuff asap so that we can start coding the classification things19:08
votjakovrHeikoS: probably 1-2 days, i'll also need to check all examples, tests, etc... I'd also like to start classification, but we need to deal with re-factoring stuff first19:13
@HeikoSvotjakovr: I agree that this should be finished first. The refactoring should be done fairly quickly, doesnt take more than a few hours. Checking examples and tests is crucial too, but again its only moving stuff around so shoudnt take too long.19:14
votjakovrHeikoS: Ok, i'll try to quickly finish it :)19:16
@HeikoSvotjakovr: nice :) let me know the status from time to time19:16
@HeikoSvotjakovr: I warned you, 24h google surveillance after GSoC start ;)19:17
votjakovrHeikoS: i'm just curious, how do they do that?19:19
@HeikoSvotjakovr:  they use nano-robots in your brain to measure how many thoughts are about c++19:20
@HeikoSvotjakovr: all in real time19:20
votjakovrHeikoS: :D19:20
-!- lisitsyn [~lisitsyn@83.234.169.173] has joined #shogun19:28
votjakovrHeikoS: yep, you're right, i'll do that much quickly19:37
@HeikoSvotjakovr: nice, keep me updated then!19:38
@HeikoSvotjakovr: would be great if its done tomorrow and we can talk a little bit about logit Laplace classifier19:42
votjakovrHeikoS: Ok19:44
lisitsynHeikoS: did you put yourself to the waiting list?19:49
@HeikoSvotjakovr: btw on the IRC meeting, you should mention that you unit-tested most of the framework, and that it did not really work before, and that you made the structure much simpler yet flexible19:50
lisitsynof mentor summit19:50
@HeikoSlisitsyn: yes accident, told carol to ignore19:50
lisitsynHeikoS: oops it seems she forgot19:50
lisitsynshe just contacted me and soeren19:50
lisitsynI'll tell her you and soeren are going to be registered and I am on the waiting list19:50
@HeikoSlisitsyn: strange, she replied to me, let me forward you the mail19:51
@HeikoSlisitsyn: check your mail19:51
lisitsynHeikoS: may be it is someone else?19:52
lisitsyn:D19:52
votjakovrHeikoS: oh yep, i'll do that19:54
lisitsynHeikoS: I told she about your accidental filling the form19:54
lisitsynbut asked to tell us if it is someone else19:55
lisitsynHeikoS: we didn't plan any other attendees did we?19:55
@HeikoSnope19:55
lisitsynHeikoS: I told that the plan is she soeren, you + me19:55
lisitsynehm19:55
@HeikoSlisitsyn:  told her :)19:56
lisitsynHeikoS: oops19:56
lisitsyn:D19:56
lisitsynHeikoS: my language gets broken w/o much sleep19:56
lisitsynHeikoS: anyway19:56
lisitsynHeikoS: that's strange absense of the master19:58
@HeikoSlisitsyn: well ....19:59
@HeikoSlisitsyn: we should soon talk about the workshop19:59
@HeikoSpossibly tomorrow before evening20:00
@HeikoSsince I am away afterwards20:00
lisitsynHeikoS: oh that's benoit rostykus20:00
lisitsyn:D20:00
lisitsynHeikoS: surprising?20:03
lisitsyn:D20:03
@HeikoSlisitsyn:  what?20:04
lisitsynHeikoS: the two persons on the waiting list is20:04
lisitsynme and benoit rostykus20:04
@HeikoSwho is that?20:04
lisitsynHeikoS: lol20:05
@HeikoSrandom guy?20:05
lisitsynHeikoS: no, kind of mentor of van5120:05
@HeikoSlisitsyn:  really?20:05
@HeikoSI see20:05
@HeikoSwell yeah sören said, apply to the list20:05
lisitsynHeikoS: maybe he did notify soeren about that20:06
votjakovrbtw will you make a video from workshop?20:07
lisitsynvotjakovr: german video yeah20:07
lisitsyn;)20:07
votjakovrlisitsyn: haha :D20:08
votjakovri'm looking forward to watch it20:10
lisitsynHeikoS: could you please register as a participant to avoid carol's confusion?20:10
@HeikoSlisitsyn: sure where?20:22
lisitsynHeikoS: ehmm I thought you know! :D let me find20:22
@HeikoSlisitsyn, votjakovrno we will probably talk in english20:22
-!- nube [~rho@49.244.125.191] has quit [Quit: Leaving.]20:23
@HeikoSvotjakovr: btw if you want, you can contribute an example that I present at the workshop (for regression)20:23
lisitsynHeikoS: probably?20:23
lisitsyn;)20:23
lisitsynHeikoS: pm'ed you20:25
@HeikoSlisitsyn:  done, thanks :)20:26
votjakovrHeikoS: wow, cool! I'll think about that20:27
@HeikoSvotjakovr:  like a big example (interactive) with modelselection and sparse regression20:27
-!- zxtx [~zv@cpe-75-83-151-252.socal.res.rr.com] has quit [Ping timeout: 240 seconds]21:03
-!- HeikoS [~heiko@nat-180-225.internal.eduroam.ucl.ac.uk] has quit [Quit: Leaving.]21:26
-!- shogun-notifier- [~irker@7nn.de] has joined #shogun21:46
shogun-notifier-shogun: Soeren Sonnenburg :develop * 1f705d4 / src/configure: https://github.com/shogun-toolbox/shogun/commit/1f705d4baba8f87fa007b220191f229edf9b539a21:46
shogun-notifier-shogun: require json-c version >=1121:46
shogun-notifier-shogun:21:46
shogun-notifier-shogun: in version 0.10 json_object_get_int is b0rken causing shogun21:46
shogun-notifier-shogun: serialization / tests to fail21:46
-!- lisitsyn [~lisitsyn@83.234.169.173] has quit [Quit: Leaving.]21:51
shogun-buildbotbuild #1121 of bsd1 - libshogun is complete: Failure [failed test_1]  Build details are at http://www.shogun-toolbox.org/buildbot/builders/bsd1%20-%20libshogun/builds/1121  blamelist: Soeren Sonnenburg <sonne@debian.org>21:59
shogun-buildbotbuild #953 of cyg1 - libshogun is complete: Failure [failed compile]  Build details are at http://www.shogun-toolbox.org/buildbot/builders/cyg1%20-%20libshogun/builds/953  blamelist: Soeren Sonnenburg <sonne@debian.org>22:04
shogun-buildbotbuild #1109 of deb2 - static_interfaces is complete: Success [build successful]  Build details are at http://www.shogun-toolbox.org/buildbot/builders/deb2%20-%20static_interfaces/builds/110922:06
-!- travis-ci [~travis-ci@ec2-54-242-24-102.compute-1.amazonaws.com] has joined #shogun22:32
travis-ci[travis-ci] it's Soeren Sonnenburg's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: http://travis-ci.org/shogun-toolbox/shogun/builds/821034122:32
-!- travis-ci [~travis-ci@ec2-54-242-24-102.compute-1.amazonaws.com] has left #shogun []22:32
-!- lambday [67157c4c@gateway/web/freenode/ip.103.21.124.76] has quit []22:46
-!- votjakovr [~votjakovr@host-46-241-3-209.bbcustomer.zsttk.net] has left #shogun ["Fallen asleep!"]22:50
-!- zxtx [~zv@rrcs-74-62-200-195.west.biz.rr.com] has joined #shogun22:53
-!- van51 [~van51@athedsl-408350.home.otenet.gr] has quit [Quit: Leaving.]23:09
--- Log closed Wed Jun 19 00:00:51 2013

Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!