--- Log opened Fri Mar 09 00:00:19 2012 | ||
-!- wiking [~wiking@huwico/staff/wiking] has quit [Quit: wiking] | 00:04 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 00:14 | |
-!- vikram360 [~vikram360@117.192.186.135] has quit [Ping timeout: 252 seconds] | 03:24 | |
@sonney2k | blackburn - lets discuss | 03:35 |
---|---|---|
-!- wiking [~wiking@huwico/staff/wiking] has quit [Quit: wiking] | 04:40 | |
-!- vikram360 [~vikram360@117.192.186.135] has joined #shogun | 06:59 | |
-!- cronor [~cronor@e178170108.adsl.alicedsl.de] has quit [Quit: cronor] | 07:11 | |
-!- cronor [~cronor@e178170108.adsl.alicedsl.de] has joined #shogun | 07:12 | |
-!- cronor [~cronor@e178170108.adsl.alicedsl.de] has quit [Ping timeout: 246 seconds] | 07:16 | |
-!- cronor [~cronor@e178170108.adsl.alicedsl.de] has joined #shogun | 07:46 | |
-!- cronor [~cronor@e178170108.adsl.alicedsl.de] has quit [Remote host closed the connection] | 08:18 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 08:37 | |
-!- n4nd0 [~nando@s83-179-44-135.cust.tele2.se] has joined #shogun | 09:10 | |
-!- n4nd0 [~nando@s83-179-44-135.cust.tele2.se] has quit [Ping timeout: 244 seconds] | 09:14 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Quit: wiking] | 09:16 | |
-!- n4nd0 [~nando@s83-179-44-135.cust.tele2.se] has joined #shogun | 09:32 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 09:38 | |
-!- Guest93322 [~rohit@14.139.82.6] has joined #shogun | 09:46 | |
-!- Guest93322 [~rohit@14.139.82.6] has quit [Client Quit] | 09:47 | |
CIA-64 | shogun: Sergey Lisitsyn master * rc25cd07 / src/shogun/classifier/svm/SVMOcas.cpp : Added maxtraintime initialization for ocas svm - http://git.io/YP8vmw | 09:50 |
-!- blackburn [~qdrgsm@109.226.105.25] has joined #shogun | 09:51 | |
-!- n4nd0 [~nando@s83-179-44-135.cust.tele2.se] has quit [Ping timeout: 240 seconds] | 10:01 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Quit: wiking] | 10:17 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 10:39 | |
CIA-64 | shogun: Soeren Sonnenburg master * r0d72eb6 / (2 files): if max_train_time == 0 - disable time limit for ocas - http://git.io/I86ydA | 10:47 |
blackburn | sonne|work: mc ocas scales O(K^2) in means of number of classes K :( | 10:53 |
sonne|work | I told you there is room for improvement in the MC area | 10:53 |
sonne|work | (the whole field of machine learning!) | 10:53 |
sonne|work | btw KNN scales better ;-) | 10:54 |
blackburn | sonne|work: I was expecting ocas is better than liblinear | 10:54 |
blackburn | but training is 50 times slower | 10:54 |
blackburn | noway | 10:54 |
sonne|work | how did you set epsilon? | 10:55 |
sonne|work | 1e-2? | 10:55 |
blackburn | yes | 10:55 |
sonne|work | C? | 10:56 |
blackburn | sonne|work: if I got better accuracy I would keep it, but liblinear is fast and gets better accuracy | 10:56 |
blackburn | well same as it was for liblinear | 10:56 |
sonne|work | well results may differ then | 10:56 |
sonne|work | liblinear will not optimize as accurately | 10:56 |
blackburn | isn't it a crammer-singer here as well? | 10:57 |
blackburn | here = in ocas | 10:57 |
sonne|work | could be a smaller C is better for ocas because of this | 10:57 |
sonne|work | yes sure | 10:57 |
sonne|work | but different method | 10:57 |
sonne|work | numerically different! | 10:57 |
sonne|work | if you do early stopping in one method results will differ for a very precisely optimizing method | 10:58 |
blackburn | sonne|work: well varying C can't slow down optimization so much? | 10:58 |
sonne|work | sure it can | 10:58 |
blackburn | in consistent ranges like [1,100] | 10:58 |
sonne|work | 100 will take more time than all the others together | 10:59 |
blackburn | ok I'll try 1e-5 C | 10:59 |
blackburn | and check train speed | 10:59 |
sonne|work | 1 iteration :) | 10:59 |
sonne|work | w=0 | 10:59 |
blackburn | sonne|work: why did you make another if there? | 10:59 |
sonne|work | blackburn: regarding structure | 11:00 |
blackburn | I'll change to one, and add MaxTime>0 everywhere | 11:00 |
sonne|work | why not have a separate shogun/multicalls folder? | 11:00 |
blackburn | sonne|work: what to place here? | 11:00 |
sonne|work | the multiclass methods | 11:01 |
sonne|work | all of them | 11:01 |
blackburn | svms, knn, etc | 11:01 |
blackburn | in one place? | 11:01 |
sonne|work | multiclass liblinear / multiclass ocas/ knn / GMNP / ... | 11:01 |
sonne|work | yes | 11:01 |
blackburn | hmm works for me | 11:01 |
blackburn | but ugly cross-dependencies | 11:01 |
sonne|work | and then all your new ecoc schemes | 11:01 |
sonne|work | well regression has the same issues | 11:01 |
blackburn | oh ecoc, yeah I should start with it as well | 11:01 |
blackburn | sonne|work: we need to extract libraries like libocas | 11:02 |
blackburn | to avoid these cross-shit | 11:02 |
sonne|work | If you have an idea how this could be done say so | 11:02 |
blackburn | shogun/libraries? | 11:02 |
sonne|work | and? | 11:02 |
blackburn | when no need to refer classifier in multiclass | 11:03 |
blackburn | cause all needed things are in shogun/libraries | 11:03 |
sonne|work | it doesn't solve all problems - if we use svmlight - we also want svrlight which is derived from it | 11:03 |
blackburn | no, with regression I see no solution | 11:04 |
sonne|work | for libocas/liblinear it would though | 11:04 |
blackburn | but at least for multiclass it would solve | 11:04 |
sonne|work | maybe even partially libsvm | 11:04 |
blackburn | storing libraries just near shogun wrappers is crappy for me anyway | 11:04 |
sonne|work | well they are all heavily modified - not really libraries anymore | 11:05 |
CIA-64 | shogun: Sergey Lisitsyn master * r7a9c865 / (2 files): Fixed max train time issue for MC OCAS - http://git.io/QoOZ5Q | 11:05 |
blackburn | sonne|work: not so heavily :) | 11:06 |
sonne|work | best would be if we did not have to modify them | 11:06 |
sonne|work | liblinear is pretty heavily modified / ocas too | 11:06 |
sonne|work | they all use the dotfeature concept of shogun | 11:06 |
blackburn | it would be possible is developers were providing good reverse interfaces | 11:07 |
sonne|work | libsvm/ svmlight shogun's kernels etc | 11:07 |
blackburn | sonne|work: ocas is not modified except some bugs we found | 11:07 |
blackburn | because of good reverse interface | 11:07 |
blackburn | &update_W things, etc | 11:07 |
sonne|work | ahh true I was working with vojtech on that - but IIRC then he changed to float32 internally or so? | 11:08 |
blackburn | sonne|work: the only difference is double/float64_t | 11:08 |
-!- n4nd0 [~nando@n179-p53.kthopen.kth.se] has joined #shogun | 11:08 | |
blackburn | no float or float32 there | 11:08 |
sonne|work | for ocas we could get things fixed and maybe even link to the (external) library | 11:08 |
sonne|work | anyway back to structure | 11:09 |
blackburn | aha | 11:09 |
sonne|work | shogun/classifier/multiclass is weird | 11:09 |
blackburn | why? | 11:09 |
sonne|work | I mean we could have shogun/classifier/oneclass | 11:09 |
sonne|work | shogun/classifier/binary | 11:09 |
sonne|work | shogun/classifier/multiclass | 11:09 |
blackburn | and place knn everywhere :D | 11:09 |
sonne|work | no | 11:09 |
sonne|work | knn is clearly mc | 11:10 |
blackburn | hmm | 11:10 |
blackburn | n4nd0: I've got a task for you | 11:10 |
blackburn | :D | 11:10 |
sonne|work | problem is we have an svm dir | 11:10 |
sonne|work | classifier/svm | 11:10 |
blackburn | yes, svm folder looks ugly | 11:10 |
sonne|work | what to do with that? | 11:10 |
blackburn | sonne|work: probably -SVM suffix would be better | 11:10 |
sonne|work | there are 82 files in that dir | 11:11 |
blackburn | but renaming all classes is pretty painful for users | 11:11 |
n4nd0 | blackburn: tell me ;) | 11:11 |
blackburn | sonne|work: I would suggest to do things gradually - i.e. extract multiclass, then extract domainadaptation, etc | 11:12 |
sonne|work | blackburn: so we are stuck again | 11:12 |
sonne|work | I guess it is all due to the way one does the sorting | 11:12 |
sonne|work | by task type or by method name | 11:12 |
blackburn | n4nd0: we have some covertree integrated there (fast data structure for neighbors searching) and KNN makes no use of it | 11:13 |
sonne|work | blackburn: currently we have a mixture of both | 11:13 |
sonne|work | e.g. kernel / distance ... | 11:13 |
n4nd0 | blackburn: so the idea is to change KNN so it uses it? should it be sth optional to the way it is currently done? | 11:14 |
blackburn | n4nd0: may be yes, some option if covertree should be used, | 11:14 |
blackburn | sonne|work: damn I got stucked as well | 11:14 |
n4nd0 | blackburn: ok | 11:15 |
sonne|work | n4nd0: yeah a separate train method utilizing covertree | 11:15 |
blackburn | n4nd0: check locallylinearembedding for example of covertree usage | 11:15 |
sonne|work | blackburn: my suggestion for now is to create shogun/multiclass and to move everything in there | 11:16 |
n4nd0 | blackburn: ok, thanks | 11:16 |
blackburn | sonne|work: agree | 11:16 |
sonne|work | this matches shogun/regression | 11:16 |
n4nd0 | blackburn: is this more important than QDA? | 11:16 |
sonne|work | YMMV :) | 11:16 |
blackburn | n4nd0: I don't know, it is up to you | 11:16 |
n4nd0 | blackburn: ook | 11:17 |
blackburn | probably yes, scikits treated we have slow KNN in their paper :D | 11:17 |
blackburn | sonne|work: what about machines? | 11:17 |
n4nd0 | blackburn: oh did they say that about shogun? what paper is that? | 11:18 |
sonne|work | blackburn: we had that discussion a year ago or so - machines are just the base-baselines for everything | 11:19 |
sonne|work | at some point we wanted shogun/machines/classifier ... | 11:19 |
blackburn | n4nd0: their jmlr paper http://www.jmlr.org/papers/volume12/pedregosa11a/pedregosa11a.pdf (well I showed my algos are faster than their in my paper that is under review) | 11:19 |
sonne|work | but multiple inheritance was required so we couldn't do it | 11:19 |
blackburn | sonne|work: where to place multiclass machines? | 11:19 |
sonne|work | in shogun/machines/ | 11:19 |
blackburn | hmm ok | 11:20 |
sonne|work | and the real multiclass impl. in shogun/multiclass | 11:20 |
sonne|work | as I expect several in there | 11:20 |
sonne|work | I guess we won't have the next release before end of gsoc | 11:20 |
sonne|work | so we have time to play around with things | 11:20 |
blackburn | sonne|work: huh, why don't you want to release? | 11:21 |
sonne|work | looks like we are doing lots of feature *additions* currently | 11:21 |
sonne|work | no stabilization work | 11:21 |
sonne|work | which would focus on test suite etc | 11:22 |
blackburn | probably | 11:22 |
blackburn | but well we've got no regressions from 1.1 | 11:22 |
blackburn | and even some fixes | 11:22 |
sonne|work | so you propose to release just now (or soon) and then again after gsoc is over? | 11:23 |
blackburn | sonne|work: makes sense for me | 11:23 |
blackburn | 6-7-8 months looks like pretty long release period | 11:24 |
blackburn | no idea how many, I always had troubles with math :D | 11:24 |
sonne|work | ok then - please prepare as much as you can ChangeLog, check for regressions etc | 11:26 |
sonne|work | no more feature commits before this release then | 11:26 |
blackburn | sonne|work: yeah sure | 11:26 |
sonne|work | blackburn: btw look at publicity | 11:27 |
sonne|work | I added the idea there | 11:27 |
sonne|work | if it makes sense to you I would put it live | 11:27 |
sonne|work | but maybe you have some addition ideas | 11:27 |
blackburn | sonne|work: ok checking | 11:27 |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Quit: wiking] | 11:27 | |
blackburn | sonne|work: my custom swig object idea? | 11:29 |
blackburn | I mean could go there as well | 11:29 |
sonne|work | what is this? | 11:29 |
sonne|work | ahh yes sure | 11:29 |
blackburn | sonne|work: I believe it could speed up development with shogun | 11:29 |
sonne|work | just make sure you know exactly what you want? | 11:29 |
blackburn | sonne|work: do you understand what I suggest? | 11:30 |
sonne|work | only very few function calls can be marked 'to be overloaded' | 11:30 |
blackburn | sonne|work: do we need to make it in base class? | 11:30 |
blackburn | mark it * | 11:30 |
sonne|work | I would always vote for a class that derives from the last known class | 11:31 |
blackburn | sonne|work: hmm probably then we can make it optional | 11:31 |
sonne|work | e.g. derive from OverloadableSimpleFeatures | 11:31 |
sonne|work | and then change it to whatever | 11:31 |
blackburn | yes, exactly what I suggest | 11:31 |
blackburn | can we get it done? | 11:31 |
blackburn | sonne|work: i.e. can we get it done w/o slowing down other features? | 11:32 |
sonne|work | yes | 11:33 |
sonne|work | but what is essential there is that we have *separate* classes for that for which we enable the so called director feature in swig | 11:34 |
blackburn | sonne|work: can you see impact of rapid development there? | 11:34 |
sonne|work | rapid crashes you mean :D | 11:34 |
blackburn | I just check whether I get hallucinated by this idea | 11:34 |
sonne|work | I like the idea so add it but think about one toy case (e.g. implement QDA via scikits learn or whatever) | 11:35 |
sonne|work | or orange | 11:35 |
sonne|work | or XXX | 11:35 |
sonne|work | ahh better | 11:36 |
sonne|work | a preprocessor that changes features from python side! | 11:36 |
blackburn | yes | 11:36 |
blackburn | did you get in love with this idea as me? | 11:36 |
blackburn | :D | 11:36 |
blackburn | sonne|work: features,labels,machines,preprocessors could be prototyped in python and then implemented in C++ | 11:37 |
sonne|work | we have to see how it goes | 11:38 |
sonne|work | but in principle yes | 11:39 |
blackburn | sonne|work: will you modify idea? | 11:42 |
sonne|work | no, please do it | 11:42 |
blackburn | ok | 11:42 |
sonne|work | maybe you have some other ideas / enhancements for that | 11:43 |
sonne|work | but do you like it in principle? | 11:43 |
blackburn | sonne|work: yes, good idea for me | 11:45 |
blackburn | not for me, but for me | 11:45 |
blackburn | ah nevermind | 11:45 |
blackburn | :D | 11:45 |
sonne|work | these are all small tasks - but have huge impact on usability I would say | 11:45 |
blackburn | ok I'll modify it a bit later | 11:47 |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 11:48 | |
-!- n4nd0_ [~nando@n179-p53.kthopen.kth.se] has joined #shogun | 11:54 | |
-!- n4nd0_ [~nando@n179-p53.kthopen.kth.se] has left #shogun [] | 11:55 | |
-!- blackburn [~qdrgsm@109.226.105.25] has quit [Ping timeout: 246 seconds] | 12:33 | |
-!- cronor [~cronor@fb.ml.tu-berlin.de] has joined #shogun | 12:33 | |
cronor | Hey! | 12:33 |
cronor | I have a weird problem. I do cross validation and then train on the full dataset. This does not work (all alphas are 0). If I take the C chosen by cross validation and train on the full dataset in a separate matlab instance, it works fine. I already use sg('clean_features', 'TRAIN|TEST'). Is there a possibility to destroy the classifier object, too? I noticed it has the same memory address. I would like to reset shogun as far as possible. | 12:37 |
cronor | or what does sg('clear') do? | 12:39 |
-!- vikram360 [~vikram360@117.192.186.135] has quit [Ping timeout: 245 seconds] | 13:00 | |
-!- vikram360 [~vikram360@117.192.164.156] has joined #shogun | 13:02 | |
-!- n4nd0 [~nando@n179-p53.kthopen.kth.se] has quit [Ping timeout: 244 seconds] | 14:01 | |
-!- in3xes [~in3xes@180.149.49.227] has joined #shogun | 14:17 | |
-!- in3xes [~in3xes@180.149.49.227] has quit [Read error: Operation timed out] | 14:22 | |
sonne|work | yeah sg('clear') should do that but it should work after xval too | 14:22 |
-!- in3xes [~in3xes@180.149.49.227] has joined #shogun | 14:37 | |
-!- in3xes [~in3xes@180.149.49.227] has quit [Remote host closed the connection] | 14:57 | |
-!- n4nd0 [~nando@s83-179-44-135.cust.tele2.se] has joined #shogun | 15:34 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Quit: wiking] | 15:47 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 16:23 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Client Quit] | 16:23 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 16:24 | |
-!- sonne|work [~sonnenbu@194.78.35.195] has left #shogun [] | 17:39 | |
-!- sonne|work [~sonnenbu@194.78.35.195] has joined #shogun | 17:39 | |
-!- wiking [~wiking@huwico/staff/wiking] has quit [Quit: wiking] | 17:42 | |
-!- blackburn [~qdrgsm@109.226.105.25] has joined #shogun | 18:06 | |
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun | 18:20 | |
blackburn | sonney2k: hmm I managed to fully reproduce same accuracy with liblinear and homogeneous map | 18:25 |
-!- sonne|work [~sonnenbu@194.78.35.195] has quit [Ping timeout: 244 seconds] | 18:45 | |
-!- sonne|work [~sonnenbu@194.78.35.195] has joined #shogun | 19:01 | |
-!- cronor [~cronor@fb.ml.tu-berlin.de] has quit [Quit: cronor] | 19:17 | |
-!- puneet [~chatzilla@115.240.22.83] has joined #shogun | 19:20 | |
-!- puneet [~chatzilla@115.240.22.83] has quit [Client Quit] | 19:21 | |
-!- jekintrivedi [~jekin@27.4.212.232] has joined #shogun | 19:56 | |
-!- jekintrivedi [~jekin@27.4.212.232] has quit [Client Quit] | 19:59 | |
-!- blackburn [~qdrgsm@109.226.105.25] has quit [Ping timeout: 246 seconds] | 19:59 | |
-!- blackburn [~qdrgsm@109.226.78.202] has joined #shogun | 19:59 | |
CIA-64 | shogun: Sergey Lisitsyn master * rc3afe20 / (18 files in 6 dirs): Some rearrangements - http://git.io/1avbYg | 20:39 |
@sonney2k | blackburn, what does that mean? | 20:46 |
blackburn | sonney2k: same 97.30 with liblinear | 20:46 |
blackburn | as with gmnp | 20:46 |
@sonney2k | with different C - or how did you manage to get that? | 20:47 |
@sonney2k | btw, do you do proper train/test splits? | 20:47 |
blackburn | sonney2k: well I just did use same data | 20:47 |
blackburn | sonney2k: train/test is already splitted | 20:47 |
@sonney2k | ok | 20:48 |
blackburn | probably my task was to get concepts how to classify it | 20:48 |
blackburn | so I was trying to get best accuracy | 20:48 |
blackburn | sonney2k: have you seen ECOC library code? | 20:49 |
blackburn | sonney2k: I am afraid to abandon part of MC gsoc idea | 20:50 |
blackburn | cause not very much of work and I need it probably | 20:51 |
@sonney2k | but what did you change that you got 97.3 instead of 96%? | 20:52 |
blackburn | sonney2k: features, I mixed up features :( | 20:53 |
blackburn | these was better and I was using exactly these ones with gmnp | 20:53 |
blackburn | sonney2k: I have rearranged things, but did not extract multiclass yet | 20:55 |
@sonney2k | so you should get same accuracy with mc ocas :) | 20:56 |
blackburn | sonney2k: too slow | 20:56 |
@sonney2k | you just have a too tight stopping criterion - maybe... | 20:57 |
CIA-64 | shogun: Sergey Lisitsyn master * rba356f2 / src/NEWS : updated NEWS - http://git.io/ibcGsA | 20:57 |
blackburn | probably | 20:57 |
blackburn | sonney2k: wow got 97.41 | 20:58 |
blackburn | with better normalization | 20:58 |
@sonney2k | ok updated task idea | 20:59 |
@sonney2k | maybe we need more links to classes | 20:59 |
blackburn | sonney2k: which idea? | 20:59 |
@sonney2k | but it should be rather good already | 20:59 |
@sonney2k | SGVector for example | 20:59 |
@sonney2k | and file swig_typemaps.i | 20:59 |
blackburn | sonney2k: I am pretty enjoyed with ideas and application both | 20:59 |
@sonney2k | you mean happy? | 21:00 |
blackburn | probably | 21:00 |
@sonney2k | yeah I think it is a nice mixture | 21:00 |
@sonney2k | have to leave train | 21:00 |
@sonney2k | cu | 21:00 |
-!- n4nd0 [~nando@s83-179-44-135.cust.tele2.se] has quit [Ping timeout: 260 seconds] | 21:13 | |
@sonney2k | blackburn, I added a couple of references for the first idea | 21:35 |
blackburn | sonney2k: aha, I checked | 21:35 |
@sonney2k | so we are done with that - now release and then next task is to weed through 100 student applications... | 21:53 |
blackburn | sonney2k: fyi I got same or worse results with pyramidal hog | 22:23 |
blackburn | probably it is pretty useless | 22:23 |
blackburn | no idea whether you're interested :) | 22:24 |
wiking | mmmm | 22:32 |
wiking | just as an fyi | 22:33 |
wiking | i'm starting my latent-svm branch on the weekend... had the chat with alex so now i'll try to first make the api and then a simple solver for it | 22:33 |
blackburn | wiking: huh!@ | 22:34 |
blackburn | wiking: why do you hurry so damn much? | 22:36 |
blackburn | ;) | 22:36 |
wiking | have to | 22:36 |
wiking | got to have some results for new papers | 22:36 |
blackburn | ah | 22:37 |
blackburn | wiking: we probably would need to discuss api | 22:50 |
wiking | cool | 22:51 |
wiking | now? | 22:51 |
blackburn | if you want to - why not :) | 22:51 |
wiking | ok | 22:52 |
wiking | just a sec | 22:53 |
blackburn | wiking: ok | 22:53 |
wiking | here | 23:12 |
blackburn | wiking: do you need some new features for l-svm btw? | 23:13 |
wiking | yeah | 23:13 |
wiking | well it all depends how do you define the latent variable h | 23:14 |
wiking | so you have x as usual | 23:14 |
wiking | y as labeling | 23:14 |
wiking | and h as the latent variable | 23:14 |
wiking | in case of image | 23:14 |
wiking | h can be a coordinate, x,y | 23:14 |
blackburn | yeah, I know | 23:14 |
wiking | ah ok | 23:14 |
wiking | so yeah | 23:14 |
wiking | that was a good question how you can read this in | 23:14 |
wiking | from a file | 23:14 |
wiking | i.e. how to store it | 23:14 |
blackburn | wiking: what do you plan to use as features? | 23:15 |
blackburn | sliding hog window? | 23:15 |
blackburn | just like in some papers before? | 23:15 |
wiking | yeah in my case yes | 23:15 |
wiking | but it can be different for anybody | 23:15 |
wiking | it's up to you how to define your features | 23:15 |
wiking | so alex had the idea | 23:15 |
wiking | that on the api level | 23:15 |
blackburn | what is the idea? | 23:15 |
wiking | you should supply the Psi(x, y, h) | 23:15 |
blackburn | dot product? | 23:16 |
blackburn | that's the thing I do not know ;) | 23:16 |
wiking | it's the joint features | 23:18 |
wiking | afaik | 23:18 |
blackburn | ah | 23:18 |
blackburn | so probably we would have hog in there :) | 23:18 |
blackburn | just as example | 23:19 |
wiking | yeah | 23:19 |
wiking | and position | 23:19 |
wiking | and labeling | 23:19 |
blackburn | okay I see | 23:20 |
blackburn | so you are going to implement new classes | 23:20 |
wiking | yep | 23:20 |
blackburn | some LatentDotFeatures? | 23:20 |
blackburn | and some LatentSVM | 23:20 |
blackburn | any other classes? | 23:20 |
wiking | LatentSVM | 23:20 |
wiking | and then it has a train and infer function | 23:21 |
wiking | question is the inheritance | 23:21 |
wiking | which machine should i use? | 23:21 |
blackburn | wiking: which solver will you use? | 23:21 |
blackburn | and which model will you train :) | 23:21 |
wiking | well | 23:22 |
wiking | that's another question | 23:22 |
wiking | i mean i would really like to use an SMO for this | 23:22 |
wiking | and libqp would be my usual suspect | 23:23 |
wiking | and i'd got first with a simple binary classification problem | 23:23 |
blackburn | wiking: can it be linear? | 23:23 |
wiking | well currently nobody had defined yet kernelized version of latent svm | 23:23 |
blackburn | only linear? | 23:23 |
wiking | you have to do some funky shit with the lagrangians to have it kernelized | 23:23 |
wiking | yep | 23:23 |
wiking | afaik | 23:23 |
blackburn | then LinearMachine | 23:24 |
blackburn | and MulticlassLinearMachine | 23:24 |
blackburn | probably you would have to separate these things | 23:24 |
blackburn | just as it is now | 23:24 |
blackburn | I mean MulticlassLatentSVM and LatentSVM | 23:24 |
-!- cronor [~cronor@e178169201.adsl.alicedsl.de] has joined #shogun | 23:26 | |
wiking | ok well then let's first go with LatentSVM : LinearMachine | 23:26 |
wiking | let me check what's the pure virtual functions in linearmachine | 23:27 |
blackburn | wiking: train_machine | 23:27 |
blackburn | and get_name | 23:27 |
blackburn | nothing more IIRC | 23:28 |
wiking | oh ok | 23:28 |
wiking | and it either trains on the supplied features | 23:28 |
wiking | via the func arg | 23:28 |
blackburn | wiking: train() just delegates to train_machine | 23:28 |
wiking | or the one given via apply | 23:28 |
wiking | or no | 23:29 |
blackburn | and train(Features) just set features and call train() | 23:29 |
wiking | apply is for getting the inference | 23:29 |
blackburn | yes | 23:29 |
blackburn | it works in train - apply way | 23:29 |
wiking | i mean apply is for actually doing the classification based on the trained machine | 23:29 |
wiking | right? | 23:29 |
blackburn | yes | 23:29 |
wiking | as it returns labels | 23:29 |
wiking | ok | 23:29 |
wiking | there we will have problem | 23:29 |
blackburn | which? | 23:29 |
wiking | since the return value | 23:29 |
wiking | in case of latent | 23:29 |
wiking | it should not only be the labels | 23:30 |
wiking | i.e. y | 23:30 |
blackburn | not a problem | 23:30 |
wiking | but h as well | 23:30 |
blackburn | well would be but easy to solve | 23:30 |
wiking | ok | 23:30 |
wiking | enlighten | 23:30 |
blackburn | okay I suggest to simply inherit from Labels | 23:30 |
wiking | ah ok | 23:30 |
wiking | and do my own LatentLabels | 23:30 |
blackburn | yes | 23:30 |
wiking | or something like that? | 23:30 |
wiking | ok | 23:31 |
wiking | i think i'll start writing the code now | 23:31 |
blackburn | wiking: you probably would need to modify apply as well? | 23:31 |
wiking | and do a commit then into my own repo | 23:31 |
wiking | which apply? apply () or apply (Cfeatures) ? | 23:31 |
wiking | or apply (int) | 23:31 |
blackburn | may be all | 23:32 |
wiking | well in case of apply (int) it'll be funky | 23:32 |
blackburn | just SG_NOTIMPLEMENTED it then | 23:32 |
wiking | ok | 23:32 |
blackburn | wiking: okay so classes are | 23:32 |
blackburn | hmm | 23:33 |
blackburn | wait | 23:33 |
wiking | kook listening | 23:33 |
wiking | *okok | 23:33 |
blackburn | wiking: may be you can do it as machine | 23:33 |
blackburn | not as svm only | 23:33 |
blackburn | or.. | 23:34 |
blackburn | wiking: no need to, just do svm | 23:34 |
blackburn | :)( | 23:34 |
wiking | :> | 23:34 |
blackburn | wiking: so, LinearLatentSVM | 23:34 |
blackburn | LatentLabels | 23:34 |
blackburn | LatentFeatures | 23:35 |
blackburn | LatentDotFeatures | 23:35 |
wiking | dotfeatures? | 23:35 |
blackburn | derive your features from DotFeatures | 23:35 |
blackburn | yeah it is an abstract class of features that are capable of + and dot | 23:35 |
wiking | ah ok | 23:35 |
wiking | i see from doxy now | 23:35 |
wiking | do i need then LatentFeatures itself? | 23:36 |
blackburn | I don't know :) | 23:36 |
blackburn | do you need? | 23:36 |
wiking | imho no | 23:36 |
wiking | but we'll see i guess :))) | 23:36 |
blackburn | ah yes | 23:36 |
blackburn | just some simplefeatures would work I guess? | 23:36 |
wiking | well i suppose so | 23:37 |
wiking | i mean my only wonder now is | 23:37 |
wiking | how the fuck will the solver know | 23:37 |
wiking | (pardon my french) about what is what | 23:37 |
wiking | in the features | 23:37 |
wiking | meaning x, y and h | 23:37 |
blackburn | I speak in this way always so no need to worry :) | 23:37 |
wiking | cool | 23:38 |
blackburn | hmm | 23:38 |
blackburn | well X is always features | 23:38 |
blackburn | and y and h are in labels | 23:38 |
wiking | people think usually in other parts of the world weird since they are not used to swearing only if they are mad :))) | 23:38 |
wiking | yeah | 23:39 |
blackburn | you probably should listen to my russian when I'm in rush and unhappy | 23:39 |
blackburn | :D | 23:39 |
wiking | but if you give like a feature where all these are in one | 23:39 |
wiking | i mean x,y, h | 23:39 |
wiking | then how do yiou know what is what | 23:39 |
wiking | especially that what h actually is | 23:39 |
wiking | how long it is | 23:39 |
wiking | in my case it's (x,y) coordinate | 23:39 |
blackburn | wait, isn't it already known? | 23:39 |
wiking | but in other application | 23:39 |
wiking | it can be whatever | 23:40 |
wiking | i mean that's the plan here | 23:40 |
blackburn | ahhhhh | 23:40 |
wiking | that somehow be able to generalize this | 23:40 |
blackburn | so you mean no way to generalize these LatentLabels? | 23:40 |
wiking | not to narrow down what kind of h you can have | 23:40 |
wiking | i'm just now digging the history of the chat with alex | 23:41 |
blackburn | wiking: some vector? | 23:41 |
blackburn | h could be some d-dimensional vector | 23:41 |
blackburn | probably pretty general | 23:41 |
wiking | I think that the meaning of the latent variable depends on the task: 1D position for genes | 23:42 |
wiking | [9/03/12 2:30:47 PM] Sascha: 2D or 3D position for object detection | 23:42 |
wiking | [9/03/12 2:31:07 PM] Sascha: whatever for language topics | 23:42 |
wiking | [9/03/12 2:31:29 PM] Sascha: well, on thei nterface level you have to provide it at each iteration with a set of psi(x,y,h_opt) | 23:42 |
wiking | [9/03/12 2:31:54 PM] Sascha: that would be my idea | 23:42 |
wiking | I would say that the basic interface should work with the psi(x,y,h) | 23:43 |
wiking | [9/03/12 2:27:47 PM] Sascha: and the argmax step should be a template | 23:43 |
wiking | [9/03/12 2:28:15 PM] Sascha: that allows to implement the core and tackle the latent variable meaning later | 23:43 |
wiking | from the logs | 23:43 |
blackburn | wiking: well just provide some api to extend | 23:47 |
blackburn | I mean LatentLabels <- 2DPositionLatentLabels or so is ok | 23:48 |
blackburn | or better VectorLatentLabels or so | 23:48 |
blackburn | wiking: http://cs9735.userapi.com/u649772/12134085/z_79bcd6ca.jpg | 23:51 |
blackburn | result of elections lol | 23:51 |
wiking | :P | 23:56 |
blackburn | ok sleep time! | 23:57 |
blackburn | wiking: good luck with code ;) | 23:58 |
blackburn | ?? | 23:58 |
blackburn | cu | 23:58 |
-!- blackburn [~qdrgsm@109.226.78.202] has quit [Quit: Leaving.] | 23:58 | |
--- Log closed Sat Mar 10 00:00:19 2012 |
Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!