Slamming the Brakes

It was a frenzied typing session yesterday, as I thanked all of my experience for preparing me to write thoughtful reports. The Image Processing program that I had been working on for the past three days was finally complete, and after the previous night’s roundtable discussion, everything was set in order. We had tested out some of the simpler ideas, hypothesized further conditions, and worked on increasing the accuracy of the current system. All we needed now were some additional test images, and we would be done!

I set out to make a composite document of everything that I had learned over the past three days, from the mathematics of the system, to the logic behind why this image processing algorithm worked, to the direct details of what this project could be used for in the future. The final result was a lengthy and complete 18-page report, with pictures, appendices and references. It was furious typing in a mostly empty office, clattering away to get all my thoughts on paper. With notes, textbooks, and code documents spread out around me, I was simply having a blast. As the day went on, we even had a chance to test the algorithm against some truly horrible images, and the results were astounding. Where there were nasty streaks all across the image, we were finally able to see a clear shape near the atom cloud.

But after finishing my project, everything suddenly started slowing down. The main thing that I’ve built up my knowledge around, the image processing algorithm, was complete! Essentially, I had programmed myself out of a job – or so I thought at first. But Yaxiong helped me find other people in the lab who I could speak with, namely another student who was working on Control Theory with a specific feedback loop that the lab was testing. So, just like the first day of my internship, I cleared off the junk on my desk, got the reference documents out along with a fresh page of notebook paper, and got cracking.

Control theory is a whole lot more difficult than image processing or even understanding the experiment, because instead of big picture ideas, you really need to become an expert in the mathematical models of how individual electrical components worked. For instance, I started off trying to figure out what an IGBT was, and then figuring out what a BT was, and then learning about how a transformer works (not the robot, although equally interesting) and then understanding the PID algorithm, and then … and then…

In specialized fields like Control Theory, everything seems like a rabbit hole – it is incredibly difficult to find a place to get started. Especially without a specialized teacher around, it was hard to just “dive in” to a textbook and really understand things. I did the best I could, and reminded myself repeatedly that I was primarily here at USTC to learn what life as a researcher is like. Being a programmer is rather exciting because you get to immediately test out the things you are working with. Being a theoretical researcher is harder because there isn’t an immediate feedback loop (hehe) for figuring out your own mistakes. It means having an iron will of discipline and a strong motivation to always be moving forwards.

I persisted, and around 9pm, I went over to the grad student and asked him a couple of the specific questions that I had about the PID system. I was confused because the textbook I was reading stated that the PID system had built in tuning software that could be used to minimize disturbances; couldn’t we just use those? His response helped reaffirm some of the knowledge I already knew – yes, the K_D could be very small because we had very small disturbances – but also gave me quite a surprise. The specific problem that he was working on did not really need any configuration of the PID variables at all – they were all already as precise as possible. He was instead working on another electrical component that could help raise the bandwidth of the system to reach higher precisions, which involved much more complicated arrangements of capacitors that neither he nor anyone else in the lab understood.

Again, I was a bit crushed. I spent so much time learning, and it looks like I wouldn’t be able to apply it! But reflecting now, I’m very glad that I was assigned to this project. It taught me something new within physics that I had never thought about, the feedback control for autonomous systems, and gave me an opportunity to explore electrical components on a level that I had never previously done before. Even though it was not immediate like with the programming project, it was an opportunity to discover something new. And I am happy for that.

Today, I believe that I will speak to Professor Zhao about learning something else – currently, the PID route seems dry as I don’t have the background to continue learning more. But in any case, the new day awaits – and regardless of what happens, it will be great :)

Round Table Discussions

A long wooden table rests in a small room inexplicably labeled as “tea room”, although there’s hardly a hot water dispenser in there. Scattered around it as haphazardly as the reflections of photons around an atom are graduate students, spread out in the half-lazy manner that they sit when there’s no teacher around. A skimpy VGA projector sits in the middle of the wooden table, projecting in 4:3 ratio to the screen just a few meters in front of it. And there was I, sweating profusely in the back, trying to explain my results to this collection of USTC students.

I wasn’t expecting to have anything to present three days into this internship, and honestly, I don’t think anyone else was expecting it either. After all, I am a high school student surrounded by graduate students, right? But I wouldn’t attribute finishing the program to hard work alone. It was largely because of Yaxiong and Fan Laoshi that I was able to find an entryway into this problem in the first place. If Yaxiong hadn’t shown me the algorithm that he was planning on implementing, I would be most likely still mucking around with linear algebra right now anyways!

Yesterday was primarily polishing and testing the ImageProcessing program with large data sets, creating helper programs and functions that could process images faster and more efficiently. Trying to zap miniscule bugs was difficult work, especially given particularly crappy internet that couldn’t even look things up on StackExchange. (For instance, I was absolutely confuzzled by why python interpreted np.nan == np.nan to be False instead of True – it easily took 30 minutes of testing and waiting for the internet to work to discover np.isnan(np.nan) -> True) Afterwards, I created a lab report, using the exact same template as the SSP research group meetings, and called it a day. I felt like I had done all that I could, and contentedly set off to learn Control Theory.

But wait, there’s more!

First, control theory is hard. Really hard. The “essay” that I was reading was targeted at “Physics professionals and physics graduate students, although especially talented undergraduates could understand the basic concepts”. I started getting lost after the 6th page of the 60 page document, where the author moves from classical dynamical systems modeled with differential equations and using Laplacian Transforms to suddenly speaking of complex and chaotic systems that required multiple transformations to be solved. Too much for me!

Second, Yaxiong was able to create a great way of allowing the user to manually select several regions of the image, which allowed the image processing program to run better. However, that meant updating my report, which existed in the crappy internet-based ShareLatex, AND he then told me that typical reports require not a document, but instead, a clear presentation of all of the ideas. Which I did not have. And the meeting was in three hours, don’t forget to get dinner, and good luck!

Okay, it wasn’t as hurried as that, but I was definitely feeling the pressure. I was desperate to prove that I was competent for small tasks, and furiously set out to create a polished report. Using the knowledge that Dr. Hsu taught me back at the University of Washington regarding presentation, I created an image-intensive ppt that was able to explain the rationale and successes of the program. I’m still quite proud of what I’ve made!

Still, actually getting to the round table discussion was entirely a different monster to take care of. There were about 8 Chinese graduate students and 3 German graduate students from Heidelberg university, all of them experts in imaging and ultracold atoms. I was expecting the meeting to take maybe 10 minutes for me, and then move on to the next person who wanted to present, so I was planning on only providing simple explanations. But, lo and behold, the entire thing took a full 45 minutes to conclude, and then 20 more minutes to answer lingering questions and propose new designs. I was very worried that I was only wasting these student’s time, but Yaxiong helped save the presentation by presenting heavily on the mathematics. I think that I could have explained it as well, and I’m proud to say that I understood the discussion, but clearly Yaxiong deserved the lion’s share of the credit here. I’m still mostly a code-junkie, trying to diligently work out each of the knots in python, while Yaxiong was the one who discovered the original paper and had the idea to solve the algorithm in this fashion.

I’m still a bit exhausted from yesterday night, partially because of the ridiculous intensity of it all. For the past three days, my life has been sleep, work out, eat, code, eat, code, eat, code, sleep, rinse and repeat. Other than the meals, where I would chat with Yaxiong about life in China, there really aren’t other people for me to talk to. I don’t want to distract the graduate students here – the office really is deathly quiet, as everyone has their own giant project that they are trying to solve – and obviously there are not any other high school students around that I can hang out with. Even my Facebook friends are out of reach, simply because of the horrible horrible HORRIBLE internet here. So I guess you can say that I’m a little tired right now. But chatting with some friends back home in a glorious hour of internet last night helped rejuvenate me a bit, so I should be ready to face a completely new challenge today :)

A … Negative Result?

My dad told me that I should always seek to be the last person in the lab at night, to be working and burning the midnight oil. Unfortunately for me, I’m working with grad students here, who seem to need absolutely no sleep, not even coffee, because the projects are much more important and deserving of their attention. This results in…

An empty office...

An empty office in the morning…

... and a nice, clean cubical!

… and a nice, clean cubical!

But hey, I don’t blame them. Once you get in the zone, whether for programming or for physics calculations, it’s hard to pull yourself away. And once your sleeping pattern starts to get late, it is quite hard to pull it back! These days, I’m forcing myself to sleep early, at around 11pm. It’s a lot easier to fall asleep when there’s no wifi connection in your room! That being said, I’m also waking up much earlier – getting up around 6:30ish for a morning run in this muggy weather. Gotta get fit for this FOOT trip – 6 days in the wilderness won’t be easy.

My humble adobe!

My humble adobe!

Even though my dorm is rather peaceful, there’s nowhere better to do work than in the student office that I am in these days. This place is usually more quiet than a Swiss patent office, AND there is just Absolutely Terrible connections to Facebook and Gmail. Along with the fact that there is so much to be done, the opportunity and the motivation to procrastinate seems to almost have disappeared, albeit temporarily.

Yesterday was a furious coding session as I attempted to 1) relearn Python, 2) learn linear algebra, 3) learn image processing tricks, and 4) create a script for the lab to use. It turns out that even though I have extremely limited background knowledge, I’m still capable of quickly learning the main challenges and solutions to physics problems here, and can ask good questions while brainstorming solutions. If nothing else, I can also type rather quickly :) The coding session reminded me of something almost exactly a year ago, at the Summer Science Program where we also had to write an Orbital Determination program for our asteroid, 214088 (2004 JN13). Along with Joan and Hannah, we worked on that program for hours, perfecting each individual part until the whole thing ran smoothly (or at least somewhat smoothly… with quite a couple lingering bugs…) Now, I’m doing a similarly herculean task, but without the help and camaraderie of very good friends. It’s a little lonely, but I still get to talk to professors and graduate students during meal times, and the problems are definitely extremely interesting!

During the afternoon, I was typing furiously at my computer, trying to solve a bug with NumPy’s MaskedArray class, when Zhao Laoshi passed by my cubicle. He remarked that, perhaps in the essay he sent me, I didn’t fully understand Fast Fourier Transforms, so Control Theory may be a bit challenging for me. I sheepishly looked at him and admitted that I had not been working on the Control Theory aspect yesterday; instead, I was working on the project that Yaxiong had assigned me. But I was almost done with the Image Processing program and can read up on it this afternoon, maybe tomorrow! Zhao Laoshi was a bit confused, he said that he didn’t assign that project to me because he was worried it would take too long for me to complete. How are you close to being done with it already?

Just as I was feeling a bit proud at being a fast learner and diligent student, he asked me to explain the process of the algorithm that I was implementing. Having gone through it several times with Yaxiong and Fan Laoshi, I was fairly confident in my explanation, and had the sample images and comments in my code to prove it. But as I explained, the eyebrows on Zhao Laoshi’s face continued to rise up and up. “I’m just not sure if your algorithm works!” he exclaimed, and my heart sank. A solid 18 hours of coding, for nought? Was this simply a negative result?

Later on, as Yaxiong helped explain some of the complex linear algebra theory behind the image processing and as we discussed, it is still possible that the code works. We just need to test it and see if, experimentally, it really is good at cleaning noise. But even before then, I had decided on one thing. Even if all of this programming was ultimately useless, that would be fine too! I had gained so much from going through the process of learning Python (again) and discovering how graduate students approach complex problems. I broke down this initially ridiculous task (Yaxiong explained it to me as decomposing a vector into it’s basis states within n-dimensions, with each column having a length of 512×512, and then recombining the image) into small, doable steps and found methods that could really help me to learn.

Today, I’ll be working on fixing the final bugs in this code, and perhaps moving on to something else. Zhao Laoshi said that if everything goes fine, perhaps I could speak to the other 5 grad students about this image processing method along with Yaxiong – that would truly be very exciting. But there’s a lot more to do before then, so let’s get cracking!

A Very Small Fish in a Very Big Pond

The mugginess presses you down and wraps you up, like the blankets your mother used when you were sick. You didn’t want them, but hey, you don’t have much choice! Outside, the air tastes vaguely of sweat and ozone, of too many researchers bundled up together close to very, very carefully tuned instruments. This is the University of Science and Technology of China – Shanghai Institute for Advanced Studies Branch, and this is my home for the next two weeks.


My new cubicle, and my ID badge lunch card (they don’t have ID badges here huehuehue)

I am so excited to be at USTC-SIAS (Such a mouthful!) for the next two weeks, working with professors and graduate students on quantum information and ultracold atoms! There’s such a large world of physics out there, and for the time being, I get to be a small cog in this large scientific apparatus. But when I say small, what I really mean is tiny. Speck-like. Miniscule. Microscopic. Unnoticeable. See, the Shanghai Institute for Advanced Studies is really a graduate school for the USTC, which is already China’s premier science/engineering school. Everyone here is in their second year of their PhD or above! My high school knowledge doesn’t even compare – perhaps the only thing I might be better at than some of these people is my English, but seeing that there are also exchange students from Germany and Canada, I doubt even that is true.

Still, I’m resolute to not let my limited knowledge restrict me from helping and learning. Luckily, through Interlake High School (and yes, the IB programme… ugh), I’m fairly adapt at researching and reading papers that are above my skill level, and slowly wrestling each topic into submission. So yesterday, I read a 200-page thesis by a MIT PhD student and proceeded to study Linear Algebra for 3 hours, just to get myself up to the baseline level required of even the lab grunts here.

Note that item number 1 is: Learn Linalg

Note that item number 1 is: Learn Linalg

It’s tough work, but so very enjoyable at the same time. I can truly understand what I am capable of when I am not able to keep up. I learn where my boundaries are, where my shortfallings are, and – very importantly – where my strengths lie.

Of course, I’m not alone here. How I got here is a story for another day, but right now, I’m working under Professor Zhao, a theorist and experimentalist working with ultracold atoms and mixing fermionic-bosonic atoms. (I haven’t signed a NDA or anything, but I suppose that the secrecy here is rather high, so I’ll leave out all of the details :D ) Working with me is Yaxiong Liu, a 2nd year PhD student who is brilliant and can speak English fairly well too. I’m sorry that he just got a High School student dumped on him to babysit, but I’m trying to learn to be competent ASAP!

Yesterday, after the lab tour, I essentially sat in the Graduate Student Office with 40 other students until 10pm, hacking away at gaining personal understanding and also on an algorithm program that I am working towards. These people here don’t really seem to sleep at night, working far later than any students I have seen in high school. But, as I’ve also learned in high school, late nights usually mean late mornings, and now I’m taking advantage of an empty office at 7AM to write this blog post :) I hope to be able to follow that pattern of early sleeping and early waking, so that I can have some time to reflect every morning of what I’ve learned and what I want to do. It’s a quiet and meditative time, something that I’ve really wanted to do for a while.

Better get started – the new day awaits!