Skip to content

Commit f178d09

Browse files
authored
Merge pull request #9 from MaikBastian/readme
Improve readme with clearer description and training arguments of existing models
2 parents b2b2ccb + 4b23fc3 commit f178d09

File tree

1 file changed

+25
-3
lines changed

1 file changed

+25
-3
lines changed

README.md

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ Following are our training results from a DGX-1 with 2 GPUs on the models with l
206206

207207
## Extended models trained for recognition of ACA and rotor ciphers
208208

209-
The models are trained on variable length ciphertexts in between 100 and 1000 characters. This was done to improve the recognition of the models towards rotor ciphers. For resonable recognitions of rotor ciphers longer ciphertexts are needed.
209+
The extended models are trained with ciphertexts of variable length in between 100 and 1000 characters. The usage of variable length ciphertexts helps the recognition of the rotor ciphers, as the longer ciphertexts include more distinct features.
210210

211211
| Model Name | Accuracy in % | Iterations in Mio. |
212212
| :---------------------------- | :-----------: | :----------------: |
@@ -216,13 +216,35 @@ The models are trained on variable length ciphertexts in between 100 and 1000 ch
216216
| nb_var_10000000 | 53.50 | 10 |
217217
| ffnn_var_10000000 | 72.98 | 10 |
218218

219-
These models are always part of an ensemble model with a SVM trained only on rotor ciphers. When the main models recognize rotor ciphers, the SVM is used to differentiate
220-
between the rotor ciphers. This helps with the results since the original models can differentiate between ACA and rotor ciphers but are bad at differentiating rotor ciphers from each other.
219+
These models are always part of an ensemble model augmented by an SVM that is trained only on rotor ciphers. When the main models recognizes a rotor cipher, the SVM is used to differentiate between the five types of rotor ciphers. This improves the results, as the original models are quite good in distinguishing between ACA and rotor ciphers but have issues differentiating the rotor ciphers from each other.
221220

222221
| Model Name | Accuracy in % | Iterations in Mio. | Training Time |
223222
| :---------------------------- | :-----------: | :----------------: | :-----------: |
224223
| svm_rotor_only_1000_16000 | 61.50 | 0.016 | 0d 01h 01m |
225224

225+
## Arguments used for training
226+
227+
The following arguments were used to train these models:
228+
229+
```
230+
python train.py --architecture=FFNN
231+
--download_dataset=False \
232+
--plaintext_input_directory=../data/gutenberg_en \
233+
--rotor_input_directory=../data/rotor_ciphertexts \
234+
--train_dataset_size=976 \
235+
--dataset_workers=16 \
236+
--batch_size=64 \
237+
--max_iter=10000000 \
238+
--min_train_len=100 \
239+
--max_train_len=1000 \
240+
--min_test_len=100 \
241+
--max_test_len=1000 \
242+
--epochs=1 \
243+
--ciphers=all
244+
```
245+
246+
were the argument 'FFNN' can be replaced by the actual architecture to train. Attention: `max_iter` is set to `1000000` when the RF model is trained.
247+
226248

227249
# Publications
228250

0 commit comments

Comments
 (0)