The summer solstice today brought a drenching rain, starting in the morning and supposed to continue all day, even with storm gusts thrown in. Generally the weather has become more changeable. But we’re having those nearly white nights. Hamburg is above the 53rd parallel, and in June the sun hardly sets at all. Dusk lasts past midnight and at 3 AM it’s already dawn. At 5 the sun is up in all its brillance. Well, except today.
But I didn’t really want to talk about the weather. Arriving dripping wet on my bike, I realized it’s just gonna be three or four times more that I’ll come here. The first exam is two weeks from today.
Which I find rather irritating. Because I made a couple of serious breakthroughs with my thesis in the last few days. A week or so ago I finished the laborious “architecture and implementation” chapter, the one describing, in considerable detail, what I did and how and why it didn’t work the way I wanted and what I did then … It’s reasonably boring, but in the end it’s nearly the only substantial, tangible, practical stuff in the thesis. You don’t really have to program a lot to write a CS bachelor thesis, but since you need something to write about which is not sheer theory, it certainly helps.
That done, I needed a break. And just for a change I started to play a little more with training some neural networks. Since I have those training applications I’ve written running in the Kubernetes cluster anyway, and a command line interface that makes it trivial to queue network configurations for them to train, it’s not a big thing. Mind you, this was after I had already resigned myself to the fact that I would probably not manage, for the thesis, to train a network to a really useful accuracy. It’s just too much trial and error (as I know only too well from my 200-hour-odyssee with my boardgame AI in the fourth term). And after all, actually training networks was never the point of the thesis. Showing how one would go about training them and providing the right infrastructure to do so is.
But still, I did queue some. And suddenly, to my considerable surprise, I found a configuration that looked really promising. Two networks training for a couple of days got to around 80 per cent R2 (a metric for regression roughly indicating how well a machine learning model does, on a scale from not explaining anything at all in the data to explaining everything). All of a sudden, amazingly, it looked like I would, after all, have actual results I could write about. And could prove, rather than just claim, that my project would work in real life. Which is hard to make plausible when it doesn’t even work in a sandbox.
Somewhat elated by this discovery, yesterday I started writing the “extensions and generalization” chapter of the thesis, the one in which I attempt to show how the project would work if real data were available, how it could update the networks constantly on latest data, how training could be further automated and be made more efficient, and how the entire setup could be expanded and adapted to work for retail businesses other than gas stations, with thousands of different products rather than a single homogeneous one (fuel). I had always dreaded this chapter because I expected it to inevitably be a series of unsubstantiated claims and rather vague ramblings based on plenty of questionably plausible citations. And on that stuff then would hinge, more or less, the justification for the entire project, which would be quite banal indeed without showing the general applicability of the findings.
To my own surprise, however, when I started writing I found my thoughts, to the contrary, quite convincing. I finished the entire chapter–a core chapter of the thesis containing four decidedly distinct, rather unrelated subchapters–within a single day, i.e. 7 hours! A veritable writing flow as I hadn’t experienced in a long time. And not only leaves this only two of seven chapters in the thesis unfinished (though of course the rest is missing a lot of citations and diagrams, but that’s menial stuff needing no great inspiration), but also in writing this chapter I have suddenly managed to convince myself that the entire project makes sense! I am now (for the moment) perfectly certain, and can even, I think, prove, that it can be transferred without great effort to a real-life business situation and deliver useful predictions on actual data.
Feels good! I am greatly tempted to just continue writing and finish this thing within a few weeks.
But as I said the first exam is in a fortnight. So I really, really, should put the thing away and out of my mind and start studying for real. There is no chance at all I’ll finish this before the exams anyway. But there is every chance I will come to naught in the exams unless I start studying really hard really soon. The contents of both lectures are seriously overwhelming, and with one exam oral and one written, but without a crib, and with both professors, judging by their Altklausuren, expecting extremely detailed factual knowledge, two weeks are not a lot of time.
Particularly since it appears I will have to study alone. My practicum partner, for some reason, seems extremely reluctant to study with me, even though we worked together so well in the practicum and it’s a fact amply born out by our three years at UAS that time spent studying together is extremely well spent indeed. The presence of another person keeps one focused, and talking things through helps to understand the big picture.
But I can’t do anything about that. So, willy-nilly, I’ll reserve the next couple of weeks for frantic studying for the first exam. Then I’ll have another intensive week preparing for the second. And then I’ll pick up writing the thesis where I left it yesterday. And hopefully I’ll not have forgotten by then how good I feel about it right now.