carpedm20 / carpedm20/ENAS-pytorch

Retraining from scratch yields worse results

Open
#32 5 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
2.7k
Forks
486
PR merge metrics
No merged PRs in 30d

Description

Hello,

As written in the paper (2.2 _Deriving Architectures_) I tried to re-retrain from scratch the best derived model, but it surprisingly gives worse result when I retrain it from scratch than if I would keep the original (shared) weights.
I expected training the best model (dag) from scratch to be faster and eventually have a better perplexity, but it's not the case.

I do the following:

1. Launch ENAS with the `--load_path` argument, which loads a previous run, and the `--mode test`, which will call a custom `test` method inside the `trainer` class
2. (In the `test` method) I reset the shared weights with `self.shared.reset_parameters()`
3. I derive the best model (dag)
4. Then I train this model from scratch, iterating over the train set for N epochs (like in the `train_shared` method)

The following picture shows the loss and ppl during the "normal" training (first slope) and after reseting the shared weights (second slope). The second slope only trains the same best model (dag).

![shared-loss-ppl4](https://user-images.githubusercontent.com/1918021/47652781-273a4c00-db87-11e8-8309-cbb36eba572d.png)

Has anyone any idea about why resetting the shared weight and re-training from scratch is so bad?

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing the custom test method, self.shared.reset_parameters(), the model derivation step, and the train_shared method described in the issue. Compare the normal shared-weight training path with the from-scratch path and inspect the reported loss and perplexity behavior. Done means identifying a reproducible cause or a clearly documented explanation for the worse retraining results.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, pytorch
Domain
machine-learning
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.