Showing posts with label learning. Show all posts
Showing posts with label learning. Show all posts

Tuesday, 8 December 2009

subsumption

I mentioned that I tend to have a lot of difficulty with polarities. By this I mean, I tend to get left and right confused, along with true/false, plus/minus, subsumes/is subsumed by.

The good news is that I think I have finally figured out why I keep tripping over subsumption, as I have done ever since I encountered the concept in a beginner's Description Logic course.

In short, we say G ⊑ S (G subsumes S) more or less if G is a subset of S, right?

The reason I think this gives me difficulty is that there's a kind of subtle "contradiction" that my very sloppy and stupid brain simply cannot handle. It goes like this:
  • G is a subset of S, so G is SMALLER than S, gotcha
  • G is more general than S, so G is BIGGER than S, wait, WTF?
So the problem is that "G subsumes S" conjures up a mental image of a massive blob-like G swallowing up a helpless little S. I know the mental image isn't appropriate here, but I can't help it! You say the word, and I get the blob.

Of course, if I can keep my thinking cap on for long enough, I realise that the way out of this is that to remember that G is more general than S only by virtue of containing less stuff than it. Smaller, so more general.

But I think I'm the kind of guy that does NOT reason about things so much as trying to bash them into primitive mental constructs like "smaller" and "bigger". Hence the repeated run-ins with confusion about subsumption. How did I fool these people into giving me a fancy degree?

Monday, 8 December 2008

maths and statistical stuff

One of the reasons I came to Brighton was so that I could get an exposure to statistical NLP. It's not so much that I'm currently into it (although the idea of getting very far with relatively stupid techniques is quite nice), the truth is more that I feel something closer to a sense of duty to learn this stuff (see what all the fuss is about, more than N years too late), or less charitably a sense of paranoia about being left behind (which is also a form of stupidity because while you're busy trying to catch up on the Big Thing from N years ago, something really amazing is right around the corner and you're too blind to see it... of course the fact that I'm still thinking of this in terms of Big Things and trends belies another form of silliness, an inability to see the big picture on my part). Anyway that's one of the reasons why I'm here, to charge up my quiver, give myself a broad education.

My progress is slow and extremely discouraging. One reason is that I either (a) suck at math or (b) don't know enough of it (which may be attributed to [a]). When I look at a sentence like this, my heart just sinks
We assume the reader to be comfortable with Langrange multipliers, partial differentiation, and constrained optimization as they are presented in a typical college calculus text, and to have a nodding acquaintance with random variables

The last time I touched Calculus was eleven years ago (actually that's not true; I tried to refresh myself on it for my masters for this insanely difficult class on learning)... I also distinctly remember being awful in my second year of it, because I actually had to understand stuff whereas in the first year it was just learning a bunch of algorithms and sort of seeing how they worked.

I'm not sure what to do here. One thing is go learn more math. Another thing is to learn to be one of the super efficient and wise researchers that deeply understand understanding, and know when they don't actually need to know something. Right now in my early stages, I still reflexively go depth-first, try to apt-get all my knowledge dependencies, which is clearly stupid because then you never get anywhere, and anyway sometimes understanding things superficially but broadly helps you understand them deeply later. Or a third thing is to just give up.

I also need to stop being scared of mathematical notation. It's not bad once you get used to it. I just have to think of it as really crummy coding practice. (or maybe just very Haskell-y code, nice and terse).

Bah, I have a friend who's obsessed with Learning to Learn. This is one of those places where I could use a little bit of that :-)

Tuesday, 6 February 2007

unstuck (4::1056/18::7338)

The notation is pages_current_chapter::words_current_chapter/pages_total::words_total

I seem to be coming unstuck a little bit. Basically wrote down in less surly language the arguments from koweynlg yesterday. The helpful thing was to look in chapters 9 and 10 of crabbe2005rig. I feel kinda guilty in that I didn't so much read it as skimmed very intesively, looking at the class hierarchies that C. pointed out to me. Ah... I had always sort of had a rough idea how the metagrammar worked, but obviously not a clear enough one, so seeing the actual thinking behind it makes me a little more confident. I am now 2% less of ignorant fool, huzzah!

It's not the ignorance that bothers me, it's the not figuring out fast enough how to acquire the information I need. Constant learning is vital for this kind of career, vital for this century, and I would add, vital for a happy erician life. A stagnant eric is a dead eric. But what is even more important is learning how to learn efficiently, how to vacuum things up and put them to use, how to allocate time intelligent, cut through the crap, how to figure out what I need to do next. Like, I mean, "look in B. thesis" should have been totally obivous by now.

Anyway, it's inching forward.

kowdraft.tex (words: 1056, pages: 4)
kowthese.tex (words: 7338, pages: 18)


eric the walking learning disability

I sometimes wonder if I have some kind of learning disability, you know, the kind of thing that can be corrected with a nutrition program(me) or specially chosen learning techniques. I suppose you could claim that we are all learning disabled to the extent that we haven't worked out the right pedagogical algorithms yet... but I've always felt like I've special trouble in keeping certain things straight even after learning them OVER and OVER again. The thing I've had to do is develop little mnemonic devices custom fitted for the deficient erician mind.

currying vs uncurrying

I know the difference between the two, but I could never remember which is which, at least until I developed this chain of "reasoning":
  1. I like Haskell
  2. Haskell is named after Haskell Curry
  3. So obviously, the "curried" version of a function would be the kind I like best
  4. Currying is therefore going to take a f(x,y) and make it into the kind I like best (f x y). Uncurrying is the opposite
Now those of you who aren't learning disabled probably find this to be riduculously complicated and longabout way to learn such a simple thing, but hey, you got to work with what you got.

precision and recall

I've learned this quite a few times, but never really used it for my own purposes, so not only could I not figure out which is which, I could never even remember what exactly they were. After randomly discussing it with Y., I now have a technique for re-constructing what they are. I think in terms of spam and ham. I draw a 2x2 table:


i think it's
spam
I think it's
ham
it's actually
spam
A
B
it's actually
ham
C
D

There's no point making it more complicated than ABCD (for example S+, h-) because doing so just confuses me and leads me to error. ABCD forces me to look back at the table.

The precision-recall idea is to distinguish between two ways you can go wrong: either you say something is SPAM and it's not, or the opposite. Precision is just A/(A+C)... the more precise you are, the less often you accidentally mark something as SPAM. Recall is A/(A+B)... the more you recall, the less often you accidentally mark something as ham. Why is it important to distinguish between the two?

Well, how do you make a spam filter with the highest precision in the world? Just mark everything ham. No mistakes :-D Likewise, how do you get the best possible recall? .* is SPAM. End of story, look, no mail for eric, how relaxing. Anyway, I don't even know why I'm telling you this, of course you know what precision and recall are.

Me, I could never keep them straight (until now). There's actually three tricks in this:
  1. using SPAM as an example (very familiar)
  2. using the 2x2 table for visual memory
  3. remembering that it's always the A cell that counts


It's mostly about visual memory. I'm not sure what I can do to remember which is which, but I think now that I've got the visual part worked out, that should be relatively easy