Q: I don't know how to start my research?
A: This is a difficult question. Usually reimplementing some existing work is a good start. For example, Ming-Wei started his research by reimplementing Chih-Chung's IJCNN 2001 competition paper (I didn't ask him to do so). This leads him to develop some extensions and finish the work Analysis of switching dynamics with competing support vector machines.
Q: Is participating at competitions a good way to start my research?
A: Yes, this is how Bo-Juen and Yi-Wei did their thesis work.
Q: Are comparisons of existing methods suitable for a thesis? I worry that I don't propose any new method.
A: Yes. Chih-Wei did the paper A comparison of methods for multi-class support vector machines for part of his thesis. This is by far the MOST cited thesis from the group. Kuan-Ming's entire thesis is also a comparison.
Q: How about modifying existing implementations? I worry that such work is minor.
A: Why not. Indeed this is how Rong-En and Pai-Hsuan started their work. This leads to the main part of Pai-Hsuan's PhD thesis.
Q: Is finding errors in a paper a good starting point of doing research?
A: Yes. The big problem of our students is that they think everything in the paper is right. Indeed you should not trust anything in the paper. Even a highly cited paper or a best paper award winner may have serious problems. You should be critical in reading a paper. This is another good reason to reimplement some people's work as you can see whether their claims are true or not.
Q: LIBSVM has been such a great package. How come I can finish something comparable?
A: Things didn't start like that. The first version that Chih-Chung did was very preliminary. The success solely relies on our "consistent" development and research. Chih-Chung didn't worry so much whether it's going to be great or not. He did it simply because he think it's interesting and potentially useful.
Q: What's the principle in designing our software?
A: Minimalism. According to Wikipedia, "Developers may create user interfaces made to be as simple as possible by eliminating buttons and dialog boxes that may potentially confuse the user." We try the best not to "confuse the user" because they don't know as much machine learning knowledge as us. We don't add a fancy new option/function for a small percentage of users if it may confuse the majority of the users.
Q: Do I need to be very careful in developing the group's software?
A: Yes. For some our software such as LIBSVM, there are many users. Any bug can easily cause problems for a lot of people. In November 2012, we released LIBSVM 3.13, but we forgot to free something in the end (i.e., a minor memory leak). We may think that few users are affected, but before we released a new LIBSVM in January 2013, at least four users have reported this problem! For LIBSVM 3.15, in which we significantly modified grid.py, within hours of its release, users report that easy.py cannot be run. On the same day we were forced to quickly release a new version. This is annoying and is a waste of time. All these stories tell us that we must be extremely careful when working on our software.
Q: Do I need to have any publication before graduation?
A: No. Research is not equal to publication. However, you must do good research before graduation.
Q: On the day of my thesis defense, do I need to prepare drink/food for thesis committee members?
A: No. You prepare some simple tea at most. If you prepare lots of food you are bribing committee members. This is very inappropriate.
Q: The teacher asks me to revise code at libsvmtools page, but I don't think this is research.
A: It may not be directly related to your thesis work. But such activities greatly help you to be familar with our earlier work. From such experiences you may identify some problems to work on.
Q: The teacher asks if someone can help to answer a user's question, but I don't think this is research.
A: Users are our teachers. Most our past research work moltivates from their questions.
Q: I want to improve xxx, but would like to ask the teacher if results are going to be good or not.
A: You can discuss with me. But very likely I don't have definitive answers as I didn't try it. You try it and you know the situation.
Q: I want to do xxx, but worry if this can be a thesis topic.
A: You don't know unless you try it.
Q: I want to research xxx, but am afraid that I will fail.
A: We are very glad if you fail. You will never succeed without several failures.
Q: Why the teacher stops attending the group meeting?
A: In our department, many students wrongly think that attending the group meeting is the only requirement for being in a group. They think that at least they see the supervisor once per week. Hence I decide to do the opposite. Indeed the group meeting is important but not that important. The more important thing for you is to decide what you want to do and discuss with me.
Q: Is it important to know what is going on in the research community?
A: Yes, of course. You should subscribe to email lists of our research area. For example, connectionist, ML list, and Kdnugget news. On kernel machine blackboard some people frequently ask questions about libsvm. You should be active to help them. To be a computer science professional in the future, you should join ACM or IEEE Computer Science Society as a student member. Finally, the most direct way to know the area is by attending a top conference.
Q: What's the most important word for our members in doing research?
A: I used to think that "creativity" is the weakest point of Taiwanese students. But now I think "execution" is the word. Some our students are so afraid of trying things to the point that they can do nothing.