Open in new window / Try shogun cloud
--- Log opened Thu May 03 00:00:37 2012
CIA-113shogun: Soeren Sonnenburg master * r52b1bf0 / (34 files in 13 dirs):00:08
CIA-113shogun: split up SG* datatypes into separate files00:08
CIA-113shogun: - fix includes accordingly00:08
CIA-113shogun: - drop direct access to do_free component of sgvector00:08
CIA-113shogun: - add some ref counting to sgvector -
@sonney2kgsomix, could be00:08
@sonney2kignore the class for now00:08
@sonney2kgsomix, you can do that by putting a IGNORE_IN_CLASSLIST in front of class00:09
@sonney2khalf way through sgvector again - yay!00:19
gsomixsonney2k, I'm testing new CSet.00:33
gsomixI am amazed at own slow speed of work. :(00:33
-!- sonney2k [] has quit [Ping timeout: 276 seconds]00:40
-!- sonney2k [] has joined #shogun00:40
gsomixsonney2k, it seems, that new CSet works right.00:54
gsomixtomorrow I'll replace old by new.00:57
gsomixtime to sleep, 3am at my clock00:58
gsomixI have the physical culture classes at 8am, oh00:58
gsomixgood night guys00:58
gsomixsonney2k, do not forget about sleep. :)00:59
-!- av3ngr [av3ngr@nat/redhat/x-csnenpsdsbtyljfc] has joined #shogun01:19
-!- vikram360 [~vikram360@] has quit [Ping timeout: 246 seconds]01:26
-!- vikram360 [~vikram360@] has joined #shogun01:27
-!- zxtx [] has joined #shogun02:57
-!- zxtx [] has left #shogun ["Leaving"]02:59
-!- vikram360 [~vikram360@] has quit [Ping timeout: 246 seconds]06:36
-!- mode/#shogun [+o sonney2k] by ChanServ07:47
@sonney2kgsomix, yeah... with kids you hardly get any07:48
* sonney2k continues with sgvector07:48
CIA-113shogun: Soeren Sonnenburg master * r9d458c8 / (29 files in 10 dirs): remove destroy / free vectro functions -
shogun-buildbotbuild #809 of libshogun is complete: Failure [failed compile]  Build details are at  blamelist: sonne@debian.org08:12
-!- gsomix [~gsomix@] has quit [Ping timeout: 244 seconds]08:18
-!- vikram360 [~vikram360@] has joined #shogun08:24
-!- sonne|work [~sonnenbu@] has joined #shogun08:51
sonne|workwiking: btw you can of course use float based features w/ shogun pretty efficiently08:51
-!- av3ngr [av3ngr@nat/redhat/x-csnenpsdsbtyljfc] has quit [Quit: That's all folks!]09:17
wikingsonne|work: who said that not?09:59
-!- wiking [~wiking@huwico/staff/wiking] has quit [Quit: wiking]10:05
-!- vojtech [9320543b@gateway/web/freenode/ip.] has joined #shogun10:07
sonne|workvojtech: hi10:07
sonne|workI have a question about libqp ...10:07
sonne|workshouldn't we integrate pr_loqo into it?10:07
sonne|workand also liblinear's tron?10:08
sonne|workcould uricamic do this?10:08
-!- vikram360 [~vikram360@] has quit [Ping timeout: 256 seconds]10:10
-!- vikram360 [~vikram360@] has joined #shogun10:11
-!- Marty28 [] has joined #shogun10:13
vojtechsonne: hi10:17
vojtechwhat is the point of integrating pr_loqo to libqp?10:18
vojtechI guess you already have pr_loqo in Shogun10:18
vojtechI don't know what is tron10:19
vojtechI want to say, integrating pr_loqo to libqp is good for libqp to become more comprehensive but the benefit for Shogun is not so big10:23
sonne|workvojtech: well it is10:24
vojtechto save time it may be more efficient to implement things which are not in none of the packages10:24
sonne|workwe can have the very same interface for pr_loqo and other solvers10:24
sonne|workso one could choose in shogun which solver from libqp to choose10:24
-!- Marty28 [] has quit [Quit: Colloquy for iPad -]10:25
sonne|workI mean with some standard interface it is easy10:25
sonne|worknow it is not really nice due to a completely different interface10:25
vojtechI think the problem is that the user will need to decide which specific solver he/she wants anyway because each of the solver is design fo a specific QP problem10:25
-!- wiking [] has joined #shogun10:26
-!- wiking [] has quit [Changing host]10:26
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun10:26
vojtechok, but to have a similar interface in all these solvers is reasonable10:26
sonne|workvojtech: yes but having a similar interface makes it easy to switch solvers10:27
sonne|workotherwise it is a lot of work10:27
vojtechok, will look at pr_loqo and think if it is reasonable to integrate it and if yes me or Michal will do it10:30
sonne|workvojtech: ahh tron is this here -
sonne|workthey use it to solve L2 regularized L2 loss svm or L2R logist loss problems10:33
sonne|workit is based on truncated newton I think10:33
sonne|workso I think this could also be in libqp10:34
vojtechwait a second, it seems that TRON stands for trust region Newton method but this method is for minimization of a generic smooth functions, i.e. it is not Quadratic Programming10:36
vojtecham I right?10:36
sonne|workbut if you have an unconstrained qp problem - one could use it10:37
sonne|workwith some smooth loss10:37
sonne|workfinally there is one more solver in shogun which I think would be nice to have in libqp10:38
sonne|workthe one in gpdtsolve.cpp10:39
vojtechhmm, but if libqp should be library for quadratic programming I'm not sure that integrating general problem solvers is a good idea.10:39
vojtechwhta is gpdtsolve.cpp ?10:39
sonne|workvojtech: one could use it for qp problems with smooth loss function inside libqp10:40
sonne|workso it makes sense10:40
sonne|workof course it can do more but we would not provide more interfaces than that10:41
sonne|workGPDT - Gradient Projection Decomposition Technique10:41
vojtechaha, you mean to write an instance of TRON for optimizing QP10:41
vojtechok, this may be a good idea10:41
sonne|workgpdt is from here
sonne|workand also in shogun10:42
vojtechI need to read about the algorithm to figure out if its is useful for unconstrained QP10:42
sonne|workit is used to solve subproblem of chunking svm training10:42
sonne|workso should be similar to pr loqo10:42
sonne|workin the way which problems it can solve10:42
sonne|workbut I heard the talk from these guys and they claimed that it was a lot faster10:43
sonne|workit is from 2005 or so ...10:43
sonne|workin the file gpdtsolve.cpp10:43
sonne|workthey have a class QPproblem10:43
sonne|workwhich you give alphas and stuff and then call problem.gpdtsolve() to get the solution10:44
sonne|workso that might also be a nice addition10:44
sonne|workvojtech: I am saying that because wiking and others all need qp solvers10:45
sonne|workand if we can come up with some nice class interface that itself can use libqp on the lower level things become a lot easier for everyone10:45
vojtechI'll put it to my todo list.10:45
vojtechbut we need to decide priorities10:45
sonne|workand it is actually very cool to have10:46
wikingeeey vojtech is here!!!10:46
sonne|workin any case this should not be too much work10:46
sonne|workmaybe 1-2 weeks for all the solvers I mentioned10:46
vojtechI think  Michal should first finish hist work on bundle methods10:46
vojtechin the remaining time he can work on libqp extension10:47
vojtechis it ok?10:47
sonne|workyes - but we will need to come up with some interface even for that10:47
sonne|workI mean there is fernando doing general SO problems10:48
sonne|workso defining a general framework where one can define the argmax function etc10:48
sonne|workso michaels bmrm should fit in there10:48
sonne|workso we have to communicate a bit10:48
vojtechI think the interface for SO and bundle method is more less clear10:49
sonne|workand I really hope we can continue with libqp afterwards10:49
sonne|workvojtech: did you discuss with nico goernitz (mentor for SO stuff - he is  a PhD student in Klaus' group) about it?10:49
vojtechthese methods need two functions, one evaluating the objective and one computing the subgradient10:50
vojtechI did not10:50
sonne|worknot sure if michael / you will have time to continue after gsoc :)10:50
vojtechwhy not10:50
sonne|workmaybe you should be in the loop then10:50
sonne|workbasically fernando, nico, michael, you10:51
vojtechI'll be on holidays the next week. otherwise I'm online10:52
sonne|workvojtech: alright nice talking to you10:55
sonne|workvojtech: ahh btw any news from ICML/10:55
vojtechyes, unfortunately bad news from ICML10:55
vojtechwe overlooked one paper which does similar thing10:56
vojtechbut this is life10:56
sonne|workwhich one?10:58
vojtechin the mean time we discovered very nice method for SO11:00
vojtechas you know the current (cutting plane based) solvers require excessively long time if regularization goes to 011:01
vojtechthe method we implemented does not have such problem at all11:01
vojtechyou can easily train without regularization, which is sometimes very useful11:02
vojtechthe only shortcoming is that currently it works for problems with up to 1000-2000 paramaters11:02
vojtechbut we work on removing the problem11:03
vojtechwe already submitted a paper about this to ICPR11:03
vojtechI can send you a copy as the convergence figures are quite impresive11:04
sonne|workwhy not :)11:19
-!- uricamic [~uricamic@2001:718:2:1634:f2de:f1ff:fecf:a6a5] has joined #shogun11:29
-!- vikram360 [~vikram360@] has quit [Ping timeout: 246 seconds]12:03
-!- blackburn [5bdfb203@gateway/web/freenode/ip.] has joined #shogun12:06
sonne|workalright food time12:10
blackburnhey vojtech12:11
-!- vojtech [9320543b@gateway/web/freenode/ip.] has left #shogun []12:14
blackburnsonne|work: about your recent commit13:16
blackburnso is there memory leaks now?13:16
-!- eric___ [2e1fd566@gateway/web/freenode/ip.] has joined #shogun13:16
eric___hi all13:17
-!- vikram360 [~vikram360@] has joined #shogun13:18
eric___wiking: I am wondering if you have any crossvalidation cpp example using multiclass svm ?13:18
wikingeric___: we have a problem with that13:18
wikingor at least me for sure13:18
wikingi still need to debug it because i'm getting segfaults13:18
eric___wiking: can I help ?13:19
blackburnwiking: what is this segfault in?13:19
eric___wiking: other thg: For now we only have Confusion matrix to evalute classifier ?13:19
eric___wiking: I mean multiclass kernel machine13:20
blackburneric___: which evaluations do you need?13:20
wikingblackburn: heheh i'm running it from java so i really don't know now where does it segfaults13:20
wikingthe only thing i see that the jvm crashed13:20
blackburnwiking: blind search humm13:20
wikingblackburn: trying now with a small cpp example...13:20
blackburnpython would work too13:20
wikingblackburn: yes true13:21
wikingeric___: you can have an accuracy + confusion matrix13:21
wikingbut yeah i agree that we would need more13:21
wikinglet me know your list of request13:21
wikingand then it can be included as part of an improvement of evaluation13:21
eric___Roc Fmeasure would be nice13:22
wikingafaik there's such thing13:23
blackburnwe have roc but multiclass..?13:23
wikingeric___: shogun/evaluation/ROCEvaluation.h13:23
wikingafaik a per class accuracy and Fmeasure would be great to have13:24
blackburneasy to do btw13:24
wikingblackburn: yeah i didn't say that it was rocket science ;)13:24
eric___I meant automatic pairwise ROC (etc..) for multiclass13:24
eric___blackburn:  agree13:25
blackburneric___: pairwise ROC? is it so easy to analyze it?13:25
blackburnone could die in hell of graphs :)13:25
blackburnwiking: they study rocket science in my university - sounds easy too :D13:26
wikingblackburn: i know that's why i told that ;)13:27
eric___wiking: could you let me know your advancement, problems, with multiclass crossvalidation ? If you need help ..13:29
wikingeric___: hehehe yeah if u give me 2 hours i'll let u know13:30
-!- vojtech [9320543b@gateway/web/freenode/ip.] has joined #shogun13:30
eric___wiking: btw for your evaluation of latent svm on action recognition you may indicate me which database you need me to process13:31
wikingeric___: well i thought u have data :)13:31
blackburnwiking: I lost you fMRI link :(13:31
eric___I have some, but I focus for now on visual speech13:31
wikingeric___ hahahah last time you were checking video sequence, no?13:32
wikingblackburn: www.oasis-brains.org13:32
eric___yea film sequence of speaking people13:33
eric___Hollywood database13:33
wikingand u wanna show who's speaking on the video stream?13:33
eric___wiking: exactly13:35
eric___wiking: I have also salsa dataabse :
wikingcool what are your features?13:36
blackburndamn is it feasible to solve?13:36
wikingi mean in case of the hollywood db13:36
eric___I implemented histogram of oriented optical flow13:36
eric___with some gradient information13:37
blackburneric___: hmm thanks for idea - I'm working on road sign recognition and thought - why not to use flow here? ;)13:38
eric___blackburn: np13:38
eric___blackburn: but for what I have read, road sign recognition is more based on color and digits recognition (using ANN) ?13:39
blackburneric___: I use svms13:39
blackburnand HOG13:39
eric___blackburn: ok, but digits recognition should be a good way.13:40
blackburnit is my bachelor thesis actually :)13:40
blackburneric___: too late to change paradigm for me13:40
eric___blackburn: svm/hog were used for pedestrian detection, isnt it ?13:41
eric___blackburn: dalal, triggs ?13:41
blackburneric___: right13:41
blackburneric___: works pretty well for signs too13:41
blackburnI have 97.5% accuracy on GTRSB13:41
eric___blackburn: do you use opncv ?13:41
blackburneric___: no only shogun and python clue code13:41
eric___blackburn: GTRSB ?13:42
blackburnI still have some ideas to try like different color spaces13:42
eric___blackburn: yes color is very important in this case13:42
blackburneric___: GTSRB sorry13:43
eric___blackburn: working on red channel could be nice, .. for europe :p13:43
blackburneric___: no, Hue is prefferable there13:43
blackburneric___: there are blue info signs as well13:46
wikingmmm we can parse libsvm files right?13:46
eric___blackburn: thx for the database, I send it to a colleague which could be very interested13:47
blackburneric___: how fast optical flow is being computed?13:49
eric___its very slow usually, but for me in vga, using integral image and small region of interest (from facedetector), it run in realtime 40fps on corei513:50
blackburnoh that's bad13:51
blackburneric___: I thought of implementing a detector based on flow but it would be hard I think13:51
blackburncolor is important but I am still unsure it would work well13:52
eric___blackburn: there are some ways to do faster, I didnt investigate this part too mauch, I only use farneback opencv implementation13:52
eric___blackburn: a detector based only on flow ?13:56
blackburneric___: yeah why not?13:57
eric___blackburn: what are your training data ?13:57
eric___blackburn: sequences ?13:57
blackburneric___: I should think about it heh just some idea13:58
blackburnI mean road sign should be visible on flow13:58
eric___blackburn: I thing there is somthg but more a way to make the road sign detection easier than to recognize a road sign13:59
blackburnit seems it is not that difficult to recognize it14:00
eric___97.5% accuracy is only for detection right ?14:04
blackburneric___: no this dataset involves no detection14:05
eric___ok and you use multiclasssvm from shogun ?14:06
blackburneric___: yes14:07
eric___then you need multiclass crossvalidation from wiking too :p14:07
eric___I ll be around, see you.14:07
blackburneric___: I did some simple manual xval14:07
blackburnC is the only parameter I had to validate14:08
-!- PhilTillet [] has joined #shogun14:16
-!- blackburn [5bdfb203@gateway/web/freenode/ip.] has quit [Ping timeout: 245 seconds]14:37
-!- blackburn [5bdfb203@gateway/web/freenode/ip.] has joined #shogun14:38
CIA-113shogun: Soeren Sonnenburg master * re2748d0 / (24 files in 7 dirs):14:40
CIA-113shogun: remove most of the destroy/free_vector calls14:40
CIA-113shogun: that should fix compilation -
shogun-buildbotbuild #810 of libshogun is complete: Success [build successful]  Build details are at
sonne|workat least something :)14:51
eric___sonne|work: why remove most of the destroy/free_vector calls ?15:01
sonne|workeric___: when things will work again it will be sufficient to say SGVector a(len);15:08
sonne|workand a will be automagically cleaned up15:08
sonne|workso no longer a need for destroy/free* functions15:08
sonne|workin the same way one does not have to copy 'a' but just pass it around to other functions15:09
sonne|work(if one doesn't intend to modify the content of a in a non-compat way)15:09
wikinghahahah apparently i've done a course in "3D data in urban environments". how fucking good that course must have been15:09
blackburnwiking: what is this course about?15:13
wikingdo i know? :D15:15
sonne|workblackburn, wiking - if anyone wants to start fixing sgvector double frees and leaks - feel free!15:44
-!- cronor [] has joined #shogun15:44
wikingsonne|work: ok let's see the new commits with valgrind15:44
sonne|workwiking: for the current crashers I would assume gdb is good enough15:45
-!- vikram360 [~vikram360@] has quit [Ping timeout: 265 seconds]15:46
cronorHey, i tried shogun once class (LibSVMOneClass) and can't find any documentation. Are the output labels +1 for normal points and -1 for outliers? I assumed this and tried varying C from 10^-2 to 10^3 and can't see any difference in the results15:47
eric___sonne|work: I would like gradually help/contribute to your lib, feel free to ask for help. I should have time for that this summer.15:59
sonne|workcronor: you get real valued outputs15:59
sonne|workeric___: what type of stuff is of interest to you ?16:00
sonne|workwe need all help we can get :D16:00
sonne|workeric___: for example one relatively simple task is to add a couple of functions to SGVector, e.g. operator overloading to do a+b, a-b etc16:01
blackburnbut please delegate it to CMath16:11
blackburnsonne|work: yeah I'll fix a bunch16:12
sonne|workblackburn: actually no - these functions should go away from CMath16:12
blackburnsonne|work: do you think so?16:12
blackburnI do not16:12
sonne|workI mean be moved to sgvectro16:12
sonne|workyes of course16:13
blackburnI have to disagree16:13
-!- pluskid [] has joined #shogun16:13
sonne|workfilling vectors, adding them belongs to vectors16:13
sonne|worknot CMath16:13
blackburnbut dot, +, matrix mult16:13
blackburnshould be shared16:13
sonne|workyes in SGVector16:13
sonne|workthe same function we had in CMath should be moved to sgvector16:13
blackburnI do not like it that much..16:14
blackburnsonne|work: but what about lightweight vector?16:14
blackburnweren't you wishing to do that16:14
sonne|workmuch later16:15
sonne|workI dont' really understand why you want to keep that cluttered CMath cluttered...16:15
blackburnsonne|work: we should measure overhead16:15
sonne|worknot yet16:15
sonne|workwe first should get things working with all the stuff16:15
blackburnsonne|work: no I want to make that low level available16:15
sonne|workand not just SGVector but matrix, string, sparse, ...16:16
sonne|workblackburn: where?16:16
blackburnsonne|work: in some class like cmath16:16
sonne|workand for what purpose16:16
sonne|workbut why?16:16
blackburnsonne|work: to do these operations w/o sgvectors16:16
blackburnone layer is pointers and another is sgvectors16:16
sonne|workblackburn: have a look at SGVector *now*16:17
sonne|workit has functions that will operate on double*, int16:17
sonne|workthat is what I am talking about16:17
blackburnsonne|work: yes and it shouldn't be like that16:19
sonne|workwhy not?16:19
blackburnsonne|work: I see it as different layers..16:20
sonne|workme too16:20
sonne|workbut CMath is a mess16:20
sonne|workwhy not have all the max /min functions that operate on double* / int (so in fact vectors) in SGVector instead16:21
blackburnsonne|work: yes should be separated16:21
sonne|workjust move I mean16:21
sonne|workno more16:21
sonne|workno overhead no nothing16:21
blackburnno SGVector should have only methods that do something on SGVectors16:21
sonne|workbut much easier to understand / find the function16:21
blackburnit can be SGVectorDriver :D16:22
sonne|workI don't understand why you would want a separate VectorMath class16:22
blackburnsonne|work: because I find strange that SGVector has any methods16:23
blackburnthat do something on pointers16:23
blackburnI am ok to have any methods there16:23
blackburnthat fill sgvector16:23
sonne|workblackburn: where would you put the vector related functions from CMath then?16:24
blackburnor anything16:24
blackburnsonne|work: just somewhere under SGVector16:24
sonne|workthat is what I am saying16:24
blackburnsonne|work: not in CMath but some VectorMath class (no idea about naming)16:25
sonne|workok I don't agree on that16:25
blackburnsonne|work: ok so you want to opearte on pointers16:25
blackburnwhy would you think about sgvector?16:26
sonne|workand I don't see any conflict / problem to have static functins in SGVector that work on standard ptrs16:26
sonne|workbecause I am dealing with vectors16:26
blackburnsonne|work: yes it can be true but I still have something I don't like there16:30
blackburnsonne|work: however it is not any impacting design decision16:30
blackburncan be changed at some point16:30
-!- vikram360 [~vikram360@] has joined #shogun16:40
-!- vojtech [9320543b@gateway/web/freenode/ip.] has quit [Quit: Page closed]16:41
-!- PhilTillet [] has quit [Remote host closed the connection]16:49
blackburnsonne|work: I think we should measure how slower it is to compute kernel w/ refcounting16:50
sonne|worksure - feel free16:51
blackburnsonne|work: is it the main of possible bottlenecks?16:52
blackburndistances/kernel - what else?16:53
sonne|workfeature vectors in general16:53
blackburnsonne|work: dotfeatures?16:54
sonne|worksome yes16:55
-!- blackburn [5bdfb203@gateway/web/freenode/ip.] has quit [Quit: Page closed]16:56
eric___sonne|work: i am back, operator overloading (or..) is definitely not a problem for me. I egt into shogun since a couple weeks, so I will be able to fully understand the mechanism in a couple more weeks. I will fork shogun and let you know what can I do.17:00
@sonney2keric___, we have lots of other unfinished stuff so feel free to propose sth :)17:11
@sonney2kpluskid, seeing how SGVector works now I start to like the idea of having automagic refcounting...17:12
pluskidsonney2k: haha! that's cool!17:13
pluskidsonney2k: but we should figure out whether this works with SWIG, which I'm not quite familiar with17:13
@sonney2kpluskid, yeah I guess it is too much too ask to do this before this GSoC so we can only start this in september or later...17:17
pluskidsonney2k: as a leader, you are right on this issue :D17:18
pluskidsonney2k: but otherwise, I personally like RAII (which is why auto-refcounting is implement-able) very much, and think it is one of the core feature of C++ over C/Java etc.
@sonney2kpluskid, haha17:19
-!- uricamic [~uricamic@2001:718:2:1634:f2de:f1ff:fecf:a6a5] has quit [Quit: Leaving.]17:21
CIA-113shogun: Soeren Sonnenburg master * rf4d8694 / src/NEWS : move next release date to ~september'12 -
CIA-113shogun: Soeren Sonnenburg master * r1c8b9b0 / (21 files): Adjust static examples to not do SGVector refcounting. -
@sonney2kI agree :)17:27
@sonney2kgot to leave train17:28
@sonney2kanyone wishing to fix the new sgvector crashes - now would be a good time :)17:28
-!- n4nd0 [~n4nd0@] has joined #shogun17:42
n4nd0wiking, hey!17:43
wikingwho's the exams going?17:43
n4nd0pse, so so17:43
n4nd0still lot of work to do, but I hope it will be ok :)17:44
n4nd0wiking, what about your papers, everything ok?17:44
wikingn4nd0: got it accepted17:44
n4nd0wow awesome, congrats!17:45
n4nd0wiking, I see on the logs that you wanted to discuss something17:45
wikingthnx well it's about so fw but there' already an email about it17:46
wikingso it's ok we'll see where it brings us, and moreover work now on your exams ;)17:46
n4nd0yes, but I enjoy taking rests and getting up to date with shogun too :)17:47
wiking:p procrastinator!17:49
-!- gsomix [~gsomix@] has joined #shogun17:53
gsomixhi all17:53
gsomixuff, I'm home17:53
gsomix*at :D17:54
gsomixsonney2k, sonne|work how are you?17:54
-!- karlnapf [] has joined #shogun18:06
-!- pluskid [] has quit [Quit: Leaving]18:11
karlnapfsonney2k, around?18:12
karlnapfor anybody else?18:12
-!- blackburn [~qdrgsm@] has joined #shogun18:12
wikinggsomix karlnapf sonney2k is on his way home...18:13
karlnapfwiking hi18:13
wikinghey hey18:13
karlnapfhow is it going? :)18:14
karlnapfn4nd0, hi, alright there?18:14
wikinguf busy busy18:15
karlnapfyeh same here18:15
blackburnhey there18:15
blackburngsomix could you please proceed with sgvector fixes?18:15
karlnapfblackburn hi18:15
blackburnkarlnapf: hey how are your exams?18:15
karlnapfhey blackburn, yes going along, just had one18:15
karlnapfnow got 2/718:15
blackburnn4nd0: hey did you try to implement so labels?18:15
blackburnkarlnapf: 7 exams?18:16
blackburnthey must be crazy18:16
blackburnI had one today too18:16
karlnapfpretty much, yes :)18:16
karlnapfwhat did you have?18:16
karlnapfI just did supervised learning18:17
blackburnkarlnapf: should sound like political science I think18:17
blackburnhah happy you study machine learning18:17
karlnapfand tuesway was probabilistic and unsupervised learning18:17
karlnapfyeh, pretty cool18:17
karlnapfhad to derive some SVM related stuff today in the exam18:17
blackburnI should be able to pass that exam too ;)18:17
karlnapfwasnt too hard18:18
karlnapfhowever, unsupervised learning was hard18:18
blackburnI had problems with gradient of crammer-singer dual18:18
karlnapfwhatever :D18:18
blackburnkarlnapf: what is unsupervised course about?18:18
karlnapfcoursely: PCA, PPCA&FA, EM in all its variants, time-series (HMM, SSM etc), graphical model and junction tree algo, bayesian modelselection and GP18:20
blackburni am dim reduction expert :D18:20
karlnapfwe mostly did Gaussian stuff18:20
blackburnhuh crazy18:20
blackburntoo much things18:20
karlnapfyes, this was an insane course18:20
karlnapfI also worked so many nights for the coursework back in december18:21
blackburnkarlnapf: I am on the way to start writing thesis :D18:21
karlnapfthese gatsby people want to defend their standards so they put up hard exams18:21
karlnapfwow, cool18:21
karlnapfwhats the title?18:21
blackburnlet me recall18:21
blackburn"Development and analysis of road sign recognition algorithms based on support vector machines"18:22
blackburnsth like that18:22
blackburnit was translation18:22
karlnapfah nice that thing18:22
n4nd0blackburn, not yet18:22
karlnapfyoure writing in Russian?18:23
blackburnin english I'd call it in other words18:23
karlnapfsad, I will never be able to reed it :)18:23
blackburnI am not able to write in english :(18:23
blackburnnot because of my skills18:23
n4nd0blackburn, I will see wait first what do we get in UML by next week as Nico suggested18:23
karlnapfblackburn, say I got a little problem and would like to have someones opinion18:23
karlnapfFor my statistical tests I need to do bootstrapping18:24
n4nd0gtg now guys18:24
n4nd0see you later18:24
blackburnn4nd0: ok UML is nice18:24
blackburnsee you18:24
karlnapfn4nd0 bye18:24
karlnapfwhich means mixing the two sets of samples and computing the statistics18:24
blackburnkarlnapf: I never tried bootstrapping so far :(18:24
-!- n4nd0 [~n4nd0@] has quit [Quit: Ex-Chat]18:24
karlnapfso I will need to merge two sets of features18:24
blackburnI had similar problem at some point18:25
karlnapfI would like to treat them via a single feature interface18:25
blackburnhmmm I'd like to have a class18:25
karlnapfso I would like to create CFeatures(CFeatures*a, CFeautre*b)18:25
karlnapfbut without copying the data18:25
blackburnkarlnapf: can be more general18:25
karlnapfhow would you do that?18:25
blackburnkarlnapf: the problem is that we can't keep types here :(18:26
blackburnkarlnapf: UnitedDotFeatures would work too I think18:26
karlnapfhowever, in my case, the types of the features WILL be the same18:26
blackburnyes but this united class18:27
blackburnwhat interface does it provide?18:27
karlnapfget_feature_vector is what I need18:27
karlnapfneed to compute kernel values on them18:28
blackburnkarlnapf: then dot features18:28
blackburnhowever get_feature_vector is absent18:28
karlnapfBut how can they do this merging?18:28
blackburnkarlnapf: hmm just keep the list of underlying feature instances and override all dotfeatures operations18:29
blackburnkarlnapf: should be pretty easy I think18:29
blackburnkarlnapf: no forget not so easy18:30
blackburnbut feasible still18:30
karlnapfso you mean to implement a new class ?18:30
karlnapfdid not really get you18:30
blackburnkarlnapf: yes sure18:30
karlnapfBut why base it on dot features, I would rather base it on CFeatures18:30
blackburnkarlnapf: yes exactly what I was talking about18:31
blackburnkarlnapf: the problem is still here18:31
blackburnkarlnapf: if you base it on cfeatures18:31
blackburnhow can you use svm on top of it or anything?18:31
karlnapfyes, its not very flexible18:31
karlnapfOne would need a united version of *every* feature class18:32
blackburnkarlnapf: I think there is other way though18:32
blackburnkarlnapf: UnionConverter?18:32
blackburninherited from converter18:32
blackburnreturns CFeatures18:32
blackburnkarlnapf: would need specialization here18:32
karlnapfConverter class has no documentation, I cannot see what it does ;)18:33
blackburnkarlnapf: haha18:33
blackburnjust takes features18:33
eric___wiking: I am going home, I will work on my datasets tonight, let me know about multiclass crossvalid plz ! cya18:33
blackburnand gives features18:33
karlnapfMMh I like the other variant more18:33
blackburnkarlnapf: latter one?18:33
karlnapfand then derive it for every type when needed18:34
karlnapfI mean its just append features18:34
blackburnkarlnapf: UnionConverter sounds better for me actually18:34
karlnapfbut how do you want to do that, the interface only accepts one instance of CFeatures18:34
blackburnkarlnapf: we can extend it ;)18:35
karlnapfstill, when you want to merge features in-place, you will have to have another class that encapsulates multiple features18:35
blackburnkarlnapf: ah in place sure..18:36
karlnapfotherwise, I would just append the feature matrices, but i dont wanna do that18:36
blackburnkarlnapf: UnitedDotFeatures then18:36
wikingeric___: will u be around?18:36
blackburnno need to implement any other18:36
karlnapfyes, I will start with that one18:36
blackburnkarlnapf: all the necessary API is provided with dot18:36
wikingeric___: tongiht?18:36
karlnapfhowever, any feature class that should be available for the MMD-tests will have to implement this18:37
blackburnkarlnapf: why/18:37
karlnapfstring features for example18:37
karlnapfgraph kernel possibly18:37
karlnapfall no dot-features18:37
karlnapfargh, get_feature_vector is an abstract method18:37
karlnapfI cannot call it from CUnionFeatures18:38
blackburnkarlnapf: there is other method you can call18:38
blackburnnaming is awful!18:38
blackburnkarlnapf: use it18:38
blackburnmore general btw18:38
blackburnworks for sparse as dense18:39
karlnapfmmh, but not for non-vector data18:39
karlnapfand that is one of the strengths of the kernel-two-sample-tests18:39
blackburnkarlnapf: damn :(18:39
karlnapfI fear there will have to be a separate class for any feature class18:39
blackburnshould be an elegant way..18:40
blackburnyeah I don't like it18:40
karlnapfMMh, well I will try to put most of the stuff to a base class18:40
blackburnkarlnapf: would be possible with multiple inheritance but you know18:40
karlnapfyeh, but thats nasty anyway, even if we would do it :)18:41
blackburnkarlnapf: ok I have to go - I'll try to think about it18:41
karlnapfblackburn, ok, thanks for the chat :)18:41
karlnapftake care18:41
blackburnsee you18:41
karlnapfIll write to the list18:41
blackburnsure makes sense18:41
@sonney2kkarlnapf, I dont' understand the problem19:20
karlnapfsonney2k, hi19:21
karlnapfwell I have this method that computes something on the base of two feature objects19:21
karlnapfnow I want to merge these two and permute and recompute19:21
karlnapfmore like: merge, permute, split, recompute19:22
karlnapfand all that in-place19:23
-!- cronor [] has quit [Ping timeout: 246 seconds]19:23
@sonney2kkarlnapf, I assume this is for numerical features only?19:24
karlnapfno should work on all19:24
karlnapfalso string19:24
@sonney2kso what you shuffle around are vectors not elements of vectors right?19:24
karlnapfcould be non-vectorfeatures19:25
@sonney2kand why do you need 2 separate feature objects for that?19:25
@sonney2kwhy isn't one sufficient?19:25
@sonney2kgsomix, hi - sgvector at least compiles now19:26
@sonney2kbreakage all over the place though19:26
karlnapfwell you got two sets of samples that you want to test whether they are from the same source19:26
@sonney2kkarlnapf, btw sgvector sharing stuff should work now - except that lots of stuff needs fixes19:26
karlnapfits natural to have two feature objects for that19:26
karlnapfsonney2k, wow cool :)19:26
@sonney2kkarlnapf, why not use combined features for that then?19:26
@sonney2kI mean you use 2 feature objects - put them into combined features and add a subset to that19:27
@sonney2kand voila19:27
karlnapfdoes that treat these 2 objects as one? for example the indices translate?19:28
@sonney2kno that is sth you would have to implement19:29
karlnapfyou can only access complete feature objects19:29
karlnapfnot the elements themselves19:29
@sonney2kyeah actually that doesn't make sense/work19:29
@sonney2kbecause you need access to the actual type19:30
karlnapfyes, thats the problem19:30
karlnapfI am currently thinking of just forcing a user to provide only 1 feature object where first half is one class and second half is the other19:30
karlnapfthat would solve everything while being a bit unfriendly19:30
@sonney2kwell you can add a convenience function for that...19:30
karlnapfBut then the features would have to be copied19:31
karlnapfI want to stay in place19:31
@sonney2kkarlnapf, for sparse/strings it would not matter19:31
karlnapfbut for large matrices it would19:32
@sonney2kbecause you are just resizing one array and moving ptrs19:32
@sonney2konly for simplefeatures it would19:32
karlnapfThe nicest thing would be to have a class that you can give multiple feature objects of the same type, and then this class would translate the get_feature_vector()-like method to the underlying list of feature objects19:32
karlnapfBut its tricky19:33
@sonney2kbut users are free to create the object in one go or use the convenience function19:33
@sonney2kkarlnapf, yeah but that you would need to do type specific19:33
@sonney2kso for simple/sparse/string...19:33
karlnapfso you are for copying, and if that doesnt fit, user can create feature object in one go?19:34
karlnapfaka convenience method or produce in one go19:34
@sonney2kthe other alternative is to have a function in simple/sparse/string that gets as parameter the second feature object and a Subset19:34
@sonney2kand you do the access from there19:34
@sonney2kthat would also be fast19:35
karlnapfoh yes, that sounds nice19:35
karlnapflike get_feature_vector(CFeatures* extension, CSubset* overall_subset, index_t idx) ?19:35
@sonney2kyes but probably a different function name19:36
karlnapfwould only work for one additional feature object though19:36
@sonney2kmaybe get_feature_vector_from_joint_features ;-)19:36
karlnapflol :) the names are getting longer and longer here19:36
@sonney2kkarlnapf, or you have a DynamicObjectArray there19:37
@sonney2kand make the function static19:37
karlnapfhowever, then, on every access, all the lenths of the feature objects would have to be accessed, so its a bit slower19:37
@sonney2kkarlnapf, well you could create a mapping table for that19:38
@sonney2klike for every index -> ptr to object & subindex19:38
@sonney2kbut yes one more memory access19:38
@sonney2kor 2 even19:38
karlnapfmmh, do you think its worth the effort? I will only need two joint feature objects, but perhaps later seombody else will need that?19:39
karlnapfAlso more complicated to call19:39
@sonney2kI also don't have a use case for that yet19:40
@sonney2kso IMHO simple things first19:40
karlnapfok then I will stick with the two elements case and see what happens :)19:40
@sonney2kheh - I would do the same19:41
karlnapfsonney2k, just found another problem with this19:48
karlnapfI am interfacing the features via the kernel19:48
karlnapfkernel method of kernel19:48
karlnapfthats why I wanted to have a separate object, now I remember19:49
karlnapfSo I think it will be copying in the con. method or creating one feature object for the user19:51
-!- davePrime [40fb4a0c@gateway/web/freenode/ip.] has joined #shogun20:13
@sonney2kkarlnapf, in this case really the only other alternative is to derive a class from each feature object and override the getter in there20:15
@sonney2kyour uninon features won't work20:15
karlnapfsonney2k, yes I realised that20:15
karlnapfthat would be too much work for this little problem in my eyes20:15
karlnapfI mean, not only overriding the getters20:15
karlnapfbut also the results of some other methods would change20:16
karlnapfalong with a huge amount of subclasses20:16
karlnapfI enforce this all features being in one object and then fiddle around with the indices in my test, that all works out of the box now20:16
CIA-113shogun: Soeren Sonnenburg master * r2d8d9bc / (88 files in 13 dirs): remove SGVector& -> use SGVector instead -
@sonney2kyeah. with helper functions this is actually not too bad20:21
karlnapfmachine learning takes over the world :)20:25
-!- nickon [] has joined #shogun20:25
karlnapfoh this is in london :)20:27
gsomixreceiving of data submodule is so slow... =___=20:42
-!- davePrime [40fb4a0c@gateway/web/freenode/ip.] has quit [Ping timeout: 245 seconds]20:51
@sonney2kyeah its big20:51
-!- eric___ [2e1fd566@gateway/web/freenode/ip.] has quit [Ping timeout: 245 seconds]20:51
blackburnsonney2k: why did you do that ^21:05
shogun-buildbotbuild #227 of nightly_all is complete: Failure [failed compile]  Build details are at
blackburnkarlnapf: what is difficult in tr?21:11
karlnapfblackburn, what?21:11
karlnapfjust asking if somebody needs it21:11
karlnapfif yes i will do this now and the other person can use it21:11
blackburnkarlnapf: I am confused if I understand it right :/21:12
karlnapfI am just suggesting to add a method get_trace to kernel21:12
blackburnfor(int i=0; i<N; i++) trace+=matrix[i*N+i]?21:12
blackburnto kernel21:12
blackburnI see now21:13
blackburnkarlnapf: is it only for square kernel matrices?21:14
blackburnA*A makes sense too at some point21:15
@sonney2kthere we have it21:15
@sonney2kJL is now at M$21:15
blackburnsonney2k: phew21:15
@sonney2kblackburn, do what?21:15
blackburnsonney2k: removed const and &21:15
@sonney2kbecause it is no longer21:16
@sonney2kref counts21:16
blackburnhmmmmm so does it refs on call?21:16
blackburnfunction call21:16
@sonney2kevery time it is passed around yes21:16
-!- davePrime [40fb4a0c@gateway/web/freenode/ip.] has joined #shogun21:16
@sonney2k(done in copy constructor)21:17
blackburnsonney2k: I did not expect it21:17
blackburnsounds cool21:17
blackburnhave to get to other thing again, see you21:17
davePrimeIf anyone has time to answer this beginner question, I'd appreciate it. The shogun website says that shogun "interfaces to Matlab(tm), R, Octave and Python", and the table says that "Language Bindings" are available in C# and Java. What's the difference between an "interface" and a "language binding" here?21:19
davePrimeFeel free to ignore if you don't have time, but thanks for reading.21:19
karlnapfdavePrime, hi21:22
karlnapfit all basically means that you can access shogun methods from any of these languages21:22
karlnapfand interface and language binding should be the same thing21:23
karlnapfwhat is it that you want to do?21:24
davePrimehi karlnapf. i want to write a java program that uses the shogun api for a classification problem21:27
karlnapfdavePrime, that is possible, have a look at the examples to get started, try to run one of them would be the first step21:27
karlnapfif you have any problems, just ask here or the mailing list21:28
karlnapfif you are using automatic parameter selection, you should use the current git instead of the latest release (there is a bug)21:29
@sonney2kkarlnapf, except that this week nothing will work on git master...21:30
@sonney2ksgvector transition21:30
karlnapfsonney2k, true, sorry21:30
karlnapfdavePrime, so start with the latest release to get stuff working. then you might change later21:31
davePrimeall right, thanks karlnapf, thanks for the info. i'm still not sure I get why the website is worded the way it is (for some reason, it greatly emphasizes the matlab, r, octave, and python interfaces), but i guess that doesn't really matter. again, thanks for the info.21:36
karlnapfdavePrime, that is because the other interfaces are new and the website hasnt changed21:36
karlnapfpython is the "main"-interface though, most complete in terms of examples21:37
davePrimemakes sense.21:37
karlnapfhowever ,java should work21:37
-!- wiking [~wiking@huwico/staff/wiking] has quit [Quit: wiking]21:53
gsomixsonney2k, CSet - done.21:54
-!- nickon [] has quit [Read error: Connection reset by peer]21:57
@sonney2kgsomix, great22:02
CIA-113shogun: Soeren Sonnenburg master * r786790d / (4 files in 3 dirs): overload assignment operator and add GC debug output for sgvector -
@sonney2kgsomix, can I merge it already?22:02
@sonney2kgsomix, and btw how fast is it now?22:03
@sonney2kgsomix, I had some minor comments22:06
gsomixsonney2k, it's fast as standart hashmap. from O(1+a) to O(n) for insert22:16
gsomixsonney2k, there is some space for optimization, of course. but later, in spare time.22:17
@sonney2kgsomix, ok22:19
@sonney2kbtw one thing22:19
@sonney2kit would be nice if we can serialize these things too22:19
-!- davePrime [40fb4a0c@gateway/web/freenode/ip.] has quit [Quit: Page closed]22:19
@sonney2kfor that to work everything must be of either some sgvector type or use SGObjects or int/float22:20
-!- wiking [] has joined #shogun22:20
-!- wiking [] has quit [Changing host]22:20
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun22:20
-!- karlnapf [] has quit [Ping timeout: 276 seconds]22:24
gsomixsonney2k, hmm. It seems, that HashSetNode should be SG class, right?22:32
@sonney2kgsomix, what does it do?22:36
@sonney2kgsomix, anyway we can merge this first then you can improve...22:37
@sonney2kit is 1000x better than old CSet22:37
-!- wiking [~wiking@huwico/staff/wiking] has quit [Quit: wiking]22:37
gsomixsonney2k, okey. just last testes...22:40
-!- wiking [] has joined #shogun22:47
-!- wiking [] has quit [Changing host]22:47
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun22:47
gsomixsonney2k, okay, you can merge it.23:01
CIA-113shogun: Evgeniy Andreev master * r7c05227 / (3 files): CHashSet -> CSet -
CIA-113shogun: Evgeniy Andreev master * rb225c47 / (2 files in 2 dirs): fixes for transition -
CIA-113shogun: Evgeniy Andreev master * rf1050ea / examples/undocumented/libshogun/library_hashset.cpp : minor fixes -
CIA-113shogun: Evgeniy Andreev master * r84311ca / src/shogun/lib/Set.h : fixes in codestyle -
CIA-113shogun: Soeren Sonnenburg master * r392ab41 / (5 files in 3 dirs):23:07
CIA-113shogun: Merge pull request #495 from gsomix/CSet23:07
CIA-113shogun: CHashSet -> CSet -
gsomixsonney2k, thanks.23:08
@sonney2kgsomix, please think about serialization ... the other thing you could do is this Array -> Dynarray transition23:17
* sonney2k goes to bed now23:18
@sonney2kcu all23:18
gsomixsonney2k, aha.23:19
gsomixsonney2k, good night23:19
gsomixphysics labs at 8am, oh23:32
gsomixgood night23:33
--- Log closed Fri May 04 00:00:37 2012