Confessions of a researchaholic

2011-12-28

Writing a previous work section

Filed under: Real — liyiwei @ 2:23 am
Tags: ,

Every research paper has to cite and describe relevant previous works, often in a dedicated previous work section, or sometimes as part of the introduction.
Trying to write a previous work section can be an excellent mirror exercise for reading papers. The quality of the former can be a good indication of how much you really understand from the latter.

First of all, spend enough time reading how other people write previous work sections. Pay particular attention to those you find educational, from which you can actually learn something, as well as those you find unhelpful, from which you feel only confusion and frustration.

A good previous work section contains multiple layers of information with different resolutions of details.

  • At the bottom level (highest resolution), you describe in one or a few sentences about the gist and merits of each paper.

  • At the middle level (medium resolution), you organize related papers into paragraphs, each contains information about the gist and merits of the group.

  • At the top level (lowest resolution), you relate every citation with your paper, in particular, how yours stands on the shoulders of previous giants: commonalities, inheritances, and mostly importantly, innovations.

After you have a draft, show it to your adviser or other experienced researchers, ask for advice, and iteratively improve it. It will be an excellent exercise for both reading and writing papers.

2011-11-30

Breaking point

Filed under: Real — liyiwei @ 11:37 pm
Tags: ,

Have you ever tried so hard to accomplish something that you feel that you are going to break anytime soon?

If not, you are unlikely to be truly successful for anything. The world is a very competitive place, and there are always people who are more talented and harder-working than you. So ask yourself why you deserve to win if you have not given everything you have.

Plus, the *breaking point* is one of the most wonderful life experiences. I and my collaborators have to go through that every year. I am not sure about them, but I truly, absolutely, enjoy the process.

Give it a try. Find something that is really hard and you really want to accomplish, and go for it. You will not regret.

2011-11-24

How to learn a new language

Filed under: Real — liyiwei @ 1:01 pm
Tags:

Disclaimer: This is based on my personal experience. You might find it eccentric, or even bizarre. It worked for me, but I am not sure if it suitable for everyone. So follow my advice at your own risk.

I have not found formal school education any useful for learning a foreign language. I learned English by reading novels and watching movies (mostly Hollywood) while having fun. I believe truly enjoying an activity is the most effective way to excel at it. The formal school education, at least in my personal experience, provides the exact opposite. It is usually dry, boring, exam based, and removed from practical usage.

The most important usages of any language are listening, speaking, reading, and writing. Whether or not you actually understand the underlying grammar or other theoretical aspects is only secondary. Most native speakers do not think about grammars or theories when using their own languages.

If possible, immerse yourself in an environment that will force you to use a particular language. I essentially picked up English speaking and listening while in grad school because otherwise I cannot survive. I heard a theory that the most effective method to learn a foreign language is to date a native speaker who is so deficient in other languages that you have to speak that particular language with him/her. I have no chance to actually try this but I believe it will work.

Falling short of dating a native speaker or trying to survive in a foreign country, you can still practice reading novels written in the target language (pick up something fun and well written, e.g. Harry Potter for English), watching foreign movies without any caption (again, pick up something you would like), and writing blogs (e.g. your opinions about a recent book you read or a movie you watched). With enough practice, you should be able to pick up any new language without going through any formal schooling or textbooks.

2011-11-20

Rejection

Filed under: Real — liyiwei @ 7:36 pm
Tags: , , ,

Let me begin by outlining a few basic laws of nature.

Scarcity
Resources are scarce, with scarcity proportional to relative supply and demand.

Ego
People tend to consider themselves better than they really are (and thus deserve better than what they currently have).

Randomness
The universe is stochastic, and unfortunately people like to imagine life is more deterministic than it really is. (Heck, even Einstein refused to believe God will throw dice.)

As a consequence, when people cannot get what they want, they complain about injustice, and question the fairness of the process that allocates the scarce resources.

Unfortunately, none of these will not help or change anything. People will just think you are a whiner. And do not even attempt to ask why you did not get what you want; you are forcing people to either tell you a white lie (e.g. you are really good; it is just that we cannot figure out a good task for you to do right now) or be impolite (e.g. dude, you really have no idea how lousy your performance was?) or to confess they really have no clue (e.g. huh, we cannot really decide between you and another candidate, so we picked the taller one).

Specifically, under a lot of situations, the decision depends on a lot of factors. For example, there is this famous thing called *affirmative action* in the US that discourages discrimination in job and school opportunities. The intention is all good, until people start to enforce hard quotas, like reserving a certain percentage of openings to a certain group of (alleged) minority. Then, if the real application pool does not contain that percentage of qualified minorities, the process will deem to hire a minority with inferior ability than certain more qualified majority. You can say it is not fair, but that is how things work.
Sometimes it can just be random; with hundreds or even thousands of applications for a certain opening, it is just information overload to for anyone to decide who is really good.

My personal suggestion is to stop worrying all of these, and use the rejection or denial as a source of motivation. Prove to the world that they are wrong, and you are the best.
Getting dumped by your ex? Shine yourself to make him/her regret next time you meet.
Getting rejected by a job application? Outperform whoever got hired instead of you.
Did not get permission to your dream school or professor? Publish better research papers than his/her group.

These being said, I really want to tell whoever applied to be my student: thank you all very much, but since I have received hundreds of applications and I can take probably only 2 (or maybe one more if I can muscle with the department), mathematically it is impossible for me to take everyone I like. Evaluating the quality of a student is more art than science, so I rely mostly on my intuition. If you really want to force an answer out of me, the only thing I can say is that my intuition told me that there are better and more suitable candidates than you. But can I prove it? Heck no, and I doubt if anyone can.

Ray tracing

Filed under: Real — liyiwei @ 6:43 pm
Tags: ,

Many mentors have their own favorite entry level project for both training and sieving purposes. And mine is ray tracing.

Read + code

Read the following books and implement your own ray tracer from scratch.
Yes, I mean writing every single line of the code yourself, except for standard libraries like iostream and cmath. And yes, I recommend c++ as the programming language.

Ray tracing in one weekend, by Peter Shirley.
Path tracing with soft phenomena. Very short and cute introduction to ray tracing in particular and computer graphics in general. Full of hidden gems and wisdom, but beginners might not appreciate all the nuances.

An introduction to ray tracing, by Eric Haines, Pat Hanrahan, Rob Cook, Jim Arvo, David Kirk, Paul Heckbert, and (edited by) Andrew Glassner.
Whitted-style ray tracing with hard phenomena. More comprehensive than the book above.

You should read the books (especially the first one) on a computer and code along. Do not just read; it is less fun and less effective.
Software engineer your code from the very beginning; ray tracing is nicely object oriented with natural object-like components such as rays, shapes, materials, colors, motions, and cameras.

Demo

Produce your own ray traced images. Start with something simple, like mirrors and glasses for basic reflections and refractions. Ultimately, I want to see 2 things:

  • Produce ray traced animations from the BART benchmark. (If you can reach this stage, I consider your training complete. If you cannot even get to this point for whatever reason, you have no chance to survive in our future projects.)
  • Design your own favorite scene, and ray trace it. Show me your creativity and artistic + scientific blend. You can find examples from prior Stanford cs348b rendering competitions.
    (This part can be good for a group project, even though I expect everyone to complete everything else individually.)

Why

I did ray tracing as part of Stanford CS348b image synthesis, and I would say this is perhaps the class that I have learned the most from.
First, ray tracing is a superb training for coding and software engineering; it is inherently modular and suitable for object oriented programming, and the amount of coding is non-trivial (actually, quite hefty for new-comers, especially if you code from scratch).
Second, ray tracing is a superb introduction to image formation, and you will learn the fundamentals of physics, computer graphics, computer vision, and image processing.
Third, and perhaps most importantly, it is heck of fun. It is beyond words for me to describe the satisfaction I (and many people I heard from) derived from producing my first ray traced image. I am not an artist, but I can paint with algorithms.

P.S.

There is another excellent book for ray tracing: Physically based rendering, by Matt Pharr and Greg Humphreys, but I personal opinion is that you should read it as your second, not first, ray tracing book.

2011-10-12

Why I do not stay up late for work

Filed under: Real — liyiwei @ 9:07 am
Tags: , , ,

Once, while in grad school, I tried to wrap up a long SIGGRAPH crunching day by cleaning up my code.

So, I did the following in the Makefile:

clean:
rm -r -f *.c

Instead of

clean:
rm -r -f *.o

After that wonderful experience, I decided not to stay up late for work anymore. 🙂

2011-09-21

Why software is eating the world

Filed under: Real — liyiwei @ 5:20 pm
Tags: , ,

I highly recommend this article from Marc Andreessen, especially for computer science folks.

To be fair, I think he is a bit too optimistic (as an entrepreneur he should be), but he still made plenty good points.

This is not exactly a new article, but I just realized that a lot of people haven’t read it yet, thus the sharing.

2011-09-17

Producing research results

Filed under: Real — liyiwei @ 4:06 pm
Tags: ,

Sylvain Lefebvre has a nice post about how to structure code for producing research results; see here. (Full disclosure: Sylvain is my collaborator, but he is a superb researcher and coder, as evident from his resume.)

2011-04-11

How to give a paper presentation

Filed under: Real — liyiwei @ 6:18 pm
Tags: ,

Congratulations that your paper has been accepted to the most prestigious conference in your academic field. You can have a sigh of relief and take a vacation. You deserve it.

But your job is not over yet. You still have to present the paper.

It is important
The presentation is essentially a promo for your paper, and to some degree, for yourself. So it is to your advantage to give a good talk. And if you are relatively junior in the field, you should do it yourself (instead of your adviser or another co-author). This will give you the necessary exposure and recognition.

It is a sales pitch
This can be a personal preference, but for me, a conference talk is more of an advertisement than an education. A very common mistake is trying to cram in all the information into a presentation, hoping that the audience will understand everything. Unfortunately, the talk slots are usually too short and the audience too distracted for this to happen.

Instead, consider the conference as a social event, and your talk a sales pitch. Your goal is to attract people to get interested in your paper, so that they will later spend time reading it. And if you can give a good talk, it also helps sell you as a good researcher. This can translate into long term benefits, like job offers.

Content
The content of your talk should be mainly about the following: (1) why people should care about your paper, (2) why they should read it after your talk, and (3) what are the key points of your paper. Remember, it is more of an advertisement (1 and 2) than education (3).

Actually, there is one more: (4) what a cool and smart guy you are. But you really need to know what you are doing. And if you do, you are beyond this post already.

Practice
Finally, practice your talk, both with yourself and in front of an audience. If you are relatively inexperienced or have a certain degree of glossophobia (most people do), practice enough times so that you can give the talk while sleeping. I practiced at least 20 times for my first SIGGRAPH talk, even though nowadays I usually do just once or twice to avoid cruising through my talk with a too rigid or scripted performance.

« Previous PageNext Page »

Theme: Rubric. Get a free blog at WordPress.com