4

I'm writing this because I'm in a real trouble and I need to hear from experienced people.

I'm new here so please excuse me if I get anything wrong. I'm doing my masters in Deep Learning and I'm having toughest time ever.

I have a research paper very similar to what I wish to make, with the codes in Python which is working fine and is giving results. The problem is I can't understand that code it's beyond my knowledge.

I read books looking at codes but couldn't achieve that level of being able to understand the code or the paper.

The paper is about Recurrent Nueral Networks and motion prediction.

Unfortunately I'm not good at Python or Deep Learning and feel like I'm really stuck.

My supervisor didn't know much about Deep Learning but he approved my proposal. Now I don't know what to do. Should I stick to the topic and take courses in Deep Learning like the one in Coursera even if It means to take extensions beyond the deadline?

Or should I change the topic completely?

I asked my supervisor and he was against changing the topic he suggested to simplify the topic and choose something simpler than Deep Learning like interpolation. He said that submitting a proposal will take time and it's not guaranteed that your new topic will be easier than your current topic.

I tried to find some codes about interpolation motion data to begin with but can't find anything related to my topic.

I'm not lazy at all, I love researching and I have hundreds of codes in my machine but still can't understand the code I have about RNNs.

I contacted the authors of that paper but they weren't cooperative.

I feel like I ran out of energy and very confused.

If you were in the same situation what would you do?

  • 2
    Is there anyone nearby you can ask for help? If not, there are programming and data science sites on the StackExchange network where you can look for advice, help, background material etc. for your specific research project. – Anyon Aug 19 '18 at 15:00
  • Are you trying to implement any previously published research article? If so, keep the title unchanged, and replace that with another similar but easier article. – user84565 Aug 19 '18 at 15:47
  • 3
    I think your background is simply too weak for the area. The question then is how you should go about getting the required knowledge? If you are not good at programming or Python, then start from the beginning. Get a book and do lots of exercises. For Neural Nets, look at the pre-requisites for standard textbooks and get the required background before you start. Also you cannot read the source of any concepts without having a solid understanding of said concepts. End of the day, you have to go back to basics and spend a significant amount of time to build your foundation. – Prof. Santa Claus Aug 19 '18 at 19:39
  • 3
    @AmalFahad, there you go. either you have to take more time, or change your article. More importantly, talk to your supervisor. – user84565 Aug 19 '18 at 22:16
  • 1
    It's necessary to learn the basics of deep learning at the level of a Coursera course before diving into some complicated paper. Go ahead and learn deep learning properly and you will find it's not very hard. – littleO Aug 21 '18 at 1:55
3

It's a bit hard to bring this all together to give good advice but let me make a few suggestions.

With regard to the Python code you are looking at, it is possible that it is just terrible code that no one could understand easily. That may not be the case also, but it happens. On the other hand, if it is a sensible program, then it is probably based on some underlying model that doesn't itself depend on the code. If that is the case, you could find that model and understand it first, then attack the code. The paper you have found probably has some bibliographic references that may help you understand everything.

Furthermore, you could try to find someone locally who is a Python guru and have them look at the code and give you advice about it - perhaps with the model in hand.

But your advisor seems to be giving good advice. He or she is the one who will need to approve your result in the end, so it is good to take the advice offered. If doing a bit less is acceptable to them, then it is acceptable, and probably easier. Doing a simpler project should also give you more experience and better enable you to take on harder work later. As a Master's level student it may be a mistake to go beyond the understanding of your professor. Doctoral students normally need to do that, but they have a lot more experience by then.

Running out of energy (burn out) is a serious academic issue. One way to avoid it is to make a plan, in conjunction with your advisor, that you can execute properly. Once you have a plan it won't feel like you are just thrashing around, as long as you follow the plan.

  • Thanks for the advice. I really appreciate that. I think I will stick to it and follow my supervisor advice. The code is built on a model namely Recurrent Neural Networks. I will search for other codes and try to figure out the basics of it. Simplifying things sounds good, I'm not sure how but will think of a way to do so. – Amal Fahad Aug 19 '18 at 18:15
3

I should say that mistakes seem to have been made, and not (only) by you: putting a student with (as you say) limited programming skills and no experience in deep learning on a topic as notoriously hard to get into as deep learning when the advisor also has little understanding of the topic seems to me like a recipe for desaster. That said, it happens to all of us occassionally.

Your advisor's proposal to move forward with a simpler algorithm seems smart - this is also what I generally do if the original plan turns out not to be feasible. That said, your general approach to "find codes" that implement your algorithm for your use case would worry me, to be honest. Extrapolation is a fairly simple principle - simple enough that if I told a student to try extrapolation for a given problem, I would expect that they can come up with a solution themselves in fairly finite time (that is not to say that you shouldn't use an existing solution if one is already out there, but in the absence of an existing library just writing it yourself should totally be doable).

If that is outside your reach, actually changing topics may really be the most sensible thing to do for you, but I suggest having this conversation with your advisor.

  • Thanks for the reply. Yes unfortunately it was a mistake to choose that topic. Fortunately I have 2 years to finish my degree. I can ask for extensions after that If I need to, but hope to finish earlier. I was excited to learn about Deep Learning at the beginning but then I feel very nervous about it. I will try to do my best whether to go for it or to change to an easier topic. – Amal Fahad Aug 20 '18 at 0:21
1

Your advisor suggestion is wise. simplify the technical basis for your thesis while you try to improve your python programming skills.

you could be able to get some support from other python programmers in your university and online. people would be able to hep more if you have specific programming question related to one problem at a time. so try to break your project into smaller chunks of problem and then solve it one by one.

Also There is many websites that run python courses like data camp.com and, as you mentioned, coursera.

  • Thanks for the reply. Yes I think it's better to follow my supervisor instructions. I haven't tried asking questions in forums, maybe I feel like I'm very novice when I look to others questions₩, but I will do it, I hope things will work. – Amal Fahad Aug 19 '18 at 18:09
1

Remember that compilers aren't smart. If they can understand the code, you can too.

What to do now:

  • Relax. Code written by someone else is not easily understood. The last time I tried, it took weeks before the code started making sense, and even longer before I was able to use it confidently.
  • Get a high-level understanding of the code. You can do this off the Coursera course for instance. Knowing roughly what each part of the code is trying to do helps a lot with understanding it.
  • Test the code with different parts changed. For example, if you find a piece of code that doesn't seem to do anything, try commenting it out and rerunning the code.
  • If you still can't understand it, phrase your questions in a way someone else can understand and ask at Stack Overflow.
  • Thanks for the advice. You gave me some hope 😄. I will try to attack that code relentlessly. Wish me the best of luck. – Amal Fahad Aug 20 '18 at 0:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.