diff --git a/docs/maths/type-pred.md b/docs/maths/type-pred.md index 6a2e5a1..a4d75a6 100644 --- a/docs/maths/type-pred.md +++ b/docs/maths/type-pred.md @@ -120,10 +120,37 @@ Python для работы. Эти подробности я опустил, и 3. На выходе будет столько нейронов, сколько типов файлов нужно будет предсказать. +Для для задания `loss`-функции и оптимизатора: + +```python +loss_fn = nn.CrossEntropyLoss() +optimizer = t.optim.SGD(model.parameters(), lr=1e-3) +``` + +Цикл обучения в данном случае состоял из 250 эпох. + +Пайплайн обучения можно будет найти в репозитории +[проекта](https://github.com/rustbas/filetype-prediction), вместе с +инструкцией по воспроизведению результатов (кроме того факта, что +файлы различных типов нужно будет скачать самому). + ## Результаты и картинки +Усреденные сигнатуры различных типов файлов можно увидеть ниже. + +![](./assets/type-pred/heatmaps.png) + +Также, показатели обучения: + +![](./assets/type-pred/stats.png) + ## Выводы +По итогу, можно сказать, что в некоторых случаях, *сигнатура* файла +является неплохим предиктором его типа. Гипотетически, это можно +использовать для того, чтобы восстанавливать частично испорченные +файлы, так сигнатура может сохраниться. + ## Источники 1. [https://ru.wikipedia.org/wiki/Executable_and_Linkable_Format](https://ru.wikipedia.org/wiki/Executable_and_Linkable_Format)