Hype Dark logo







by SS at 9:28 pm on Friday 4th October

The tragedy of studying at Cal is that it's a stunningly beautiful place to study but there's scant time to explore! I've been getting slammed the past couple of weeks - having started the many interviews that are to come, and having struggled on a homework assignment. As soon as that was handed in, another was immediately available and I'm back to square one now with two on my plate.

One of the classes I'm taking, Advanced Robotics, is excellent and is exactly what I was looking for in my Master's degree. That said, I can't help feeling somewhat lost with each class. It's getting better as we've moved away from controls (which is ostensibly part of mechanical engineering, which explains why I had no idea what was happening for the first 6 weeks of class) and moved back towards classic AI. It also wasn't immediately clear to me, particularly without a background in controls, what exactly the relevance of the methods we learnt was. I'm now starting to get an appreciation of how you might be able to use them though, mainly through the homeworks.

In the last homework, we programmed a tetris game AI that uses an approximate linear program to generate a policy for how best to play tetris. We also applied linear quadratic regulators to help stabilise a inverted pendulum (a famous problem, also known as the cartpole problem) and to hover a helicopter. In the first case, we used a convex optimisation library called CVX to solve a linear problem. This approach seems particularly common in courses here at Berkeley.

I helped my teammate Gita out with one his homework assignments to find the shortest path in a graph. Instead of just asking students in his class (CE290i) to implement Dijkstra's, they managed to shoehorn the most horrific Java wrapper of a C linear program solving library into their assignment. Instead of writing a beautiful piece of code that could have solved the shortest path problem in maybe ~ 20 lines of Java code at a stretch, it was necessary to generate a string, pass it via some obfuscated interface to this solver and parse the output (of questionable precision). Yuck.

For the majority of my assignments I've been using MatLab, which presents a nice clear interface for implementing programmatic solutions to mathematical problems. It's not my favourite language though - I like writing clean code and it's easily possible to write unintelligible code in MatLab. Perhaps in the same way that you could in other weakly typed languages like Python or Javascript. MatLab also runs extremely slowly - being an interpreted language. Prof Abbeel mentioned that if you were actually implementing these solutions, you'd use C and see a speedup of ~ 1000 times.

In particular, one of the ideas that came to me during the many bleary eyed hours I spent staring at / trying to do the second homework was to use some of the control policy algorithms from robotics to control thyroid disease. As I've mentioned before - I suffer from Hashimoto's thyroiditis, an autoimmune disorder which effectively means my thyroid gland functions less well over time. The typical approach advocated by mainstream physicians treats it pretty poorly. I feel normally energetic on about 1 in 7 days. The other 6 days of the week I'm sleepy for a good part of the day (hypothyroid). Often I'm unable to focus well (hyperthyroid). It's a difficult condition to live with as a normally productive person. Still, I manage.

Where a control algorithm could come in is by more closely modelling the relationship between the different thyroid 'variables'. The normal treatment assumes that a patient's TSH (thyroid stimulating hormone) level is inversely proportional to their Free T4 (thyroxine) level. i.e., if your TSH is high, you need more synthetic thyroxine. If it is low, you need less. From my reading and shallow understanding of the endocrinological system, that's not an accurate assessment of the situation. There are perhaps five variables, if not more that need to be tracked. A patient's thyroid gland may not adequately convert T4 into T3 (this is the form of thyroxine that is usable by the body). Additionally, this conversion takes its toll on their adrenal system, requiring cortisol to carry out the conversion (I think). Taking supplemental T4 for a significant period of time can deplete these levels.

I'd be interested in trying to work out the actual relationship between these variables and perhaps implementing a control algorithm that could determine the optimal policy for medicating a patient. The only caveat is that collecting this data would be exorbitantly expensive (~ $200 for every data point) and that you'd need a lot of it. This is one of those projects that might have to wait for my one-day startup to go public. Incidentally, this autoimmune disorder is the same that Larry Page suffers from. I'm hoping that having a billionnaire with the same problem means some actual research will be done into it :).

This digression aside, these assignments are tough. I suspect they'd be easier if it hadn't been 4 years since I finished my undergraduate degree (and about 6 years since I last studied any maths). The Advanced Robotics course is tough too because I'm the only Master's student taking the course. I've tried to make friends with PhD students to study with but it's difficult - they have their own offices and are generally smarter than me! Luckily there is a sizeable group of Master's students to work on Computer Vision assignments with and that seems to be going well so far.

The other main activity of the last two weeks has been forming (by way of recruiting MBA students) a team for our application to the Lean Launchpad class at the Haas (business school) run by Steve Blank. This is one of the classes that helped me choose to attend Cal based on the advice of Kevin Yien and a handful of other students. This started with almost getting shot down by Steve Blank after my very first pitch at the information session (thankfully saved by an accurate but witty retort). It continued with a networking session and ended up with us forming a team with three MBA students, myself and my teammate Gita - also an engineering student.

Somehow this class wasn't widely advertised amongst CS graduate students and most MBA students wanted people who could build software for their teams. It was a little sad to take myself off the market of available team members. This class won't fulfil my core requirements next semester which means I'll be taking it in additional to my normal workload. I'm hopeful that there is some crossover between the work in the class and our capstone project. Still, next semester is going to be extremely busy.

I've made a conscious effort this week not to buy granola. That was my comfort food of choice and being high in both sugar and fat, it probably wasn't doing good things for my health in the quantity that I was consuming it. I've also succumbed to the coffee shop culture here and have been consuming caffeine regularly. Hopefully I'll get a chance to reset soon.

No comments yet
No comments yet!

Comments have been disabled. You can probably comment on this post on Geek On A Bicycle.

"Our thoughts define our reality." - Anon.