I worked so damn hard but "IT JUST DOESN'T WORK!"π€
How can I unblock myself quickly and make good progress toward the goals?
Below I compiled a list of tips that I found useful. π
*Imagine success*
Forget about all the technical difficulties for a moment. Imagine you finish your project successfully, would you find the outcome exciting?
If not, drop the project. Yep, just drop it. Free up your time to work on important problems.
*Work backward π(1/2)*
Say your project involves three steps: Aβ‘οΈBβ‘οΈC.
First, assume that you have perfect output of B and work on the step C.
Next, assume that you have perfect output A and work on the step B and so on.
In the end, you will have a fully working method.
*Work backward π(2/2)*
Okay, this is weird. WHY?
Because you get to 1) see final outcome early 2) measure the performance upper bound 3) focus on each task with perfect inputs without distraction 4) figure what are needed to achieve the desire results.
*Toy examples*
Design toy examples that capture the essence of your problem. They are sufficiently simple so you can focus on the core problem.
It's also often helpful to construct/synthesize such toy examples so that you have access to all the ground truth in all the steps.
*Baseline first*
Don't know where to start? Start with trying out baseline methods on your problem.
It helps identify limitations of the state-of-the-art. If they work perfectly well, why do you need to work on this problem?
Finding specific gap helps motivate your work.
*Simple case first*
If your method does not work on simple/trivial cases, how could you expect it to work on unconstrained, real-world cases?
*One thing at a time*
When doing experiments, change exactly ONE thing at a time. This helps you understand what the results mean.
*Identify proxy*
Do not use full-scale experiments (that may take weeks to complete) as the only way to validate your ideas. Run smaller-scale/simpler experiments with short turnaround time so you get to iteratively refine your ideas a lot faster.
*Automate everything*
If you find that you need to do the same task twice, write a script for that.
Your future self will thank you.
*Visualize everything*
You cannot debug what you cannot see. Investing time in visualizing your inputs/intermediate steps/outputs is definitely worthwhile!
*Quantify success*
Instead of always eyeballing a few results on your own, identify a couple of quantitative metrics for your problem and let them guide your exploration.
*Make the best use of machine time*
Plan your experiments so that your machines still work for you while you are not working.
That's all! Would love to learn more from your tips! What are your best strategies to make steady progress?
β’ β’ β’
Missing some Tweet in this thread? You can try to
force a refresh
Writing an effective rebuttal helps answer questions, address reviewers' concerns, clarify misunderstandings, and help the AC make an informed decision.
But it takes work to write a good one. π
Sharing some tips I found useful. π§΅
*Start positive*
Start with summarizing all the strengths noted by the reviewers and adding quotes to provide evidence.
Remind the reviewers and AC of
"Why should this paper be accepted?"
*Neutralize negative comments*
AC and other reviewers may only see all the NEGATIVE comments you responded to.
Some tips on why, what, and how to do experiments. π§΅
*Why? π€*
β Do an experiment to get improved performance.
β Do an experiment to test a hypothesis.
Many students trying to show improved results with experiments are missing the point.
Your goal of experiments should be to validate/test your research questions.
*What? π€*
What experiments should we do?
This involves three main steps:
1β£ identify key research questions
2β£break them down into baby steps
3β£design experiments that best answer those questions