Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
  • F FEDOT
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 87
    • Issues 87
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 1
    • Merge requests 1
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • ITMO-NSS-team
  • FEDOT
  • Merge requests
  • !215

Merged
Created Dec 21, 2020 by Elizaveta Lutsenko@LizLutsenkoOwner

Multi-obj optimization and fit time control

  • Overview 239
  • Commits 9
  • Changes 55

Created by: YanaPolonskaya

  1. Была добавлена возможность использования алгоритмов многокритериальной оптимизации. Практически все инструменты для этого я взяла из deap, пришлось немного переделать класс fitness из deap под multi-objective fitness (это вынесено в отдельный файл). В selection можно добавить любой тип многокритериальной селекции из deap(сейчас я добавила SPEA2 и NSGA2 селекции, интересно бы попробовать например selNSGA3WithMemory, но т к тут немного по-другому надо добавлять поскольку это класс с памятью которая должна обновляться подумаю как лучше встроить его чтобы выглядело норм). Пришлось значительно изменить вычисление метрики в gp-composer-е.

  2. Добавила так же прерывание fit-а модели при помощи библиотеки multiprocessing (создается процесс, и он прерывается в том случае если модель фитится более заданного ограничения по времени). По умолчанию эта опция отключена, но если передать в GPComposerRequirements параметр model_fit_time_constraint (например сейчас в credit_scoring экспериментах я задала model_fit_time_constraint=900 (15 мин)) то ограничение будет работать, и в случае если обучение модели не входит в рамки заданного кол-ва времени она исключается из популяции.

  3. Добавила визуализацию изменчивости Парето-Фронта (зеленые точки - все решения, красным - решения из фронта).

  4. Так же из за того что для каждого fit создается процесс начало выскакивать много повторяющихся warning-ов от tensor-flow (которые были до этого). Сделала чтобы warning-и от tensor-flow не выводились. Из за этого возникает проблема в pep8speaks. Дело в том, что в keras eval строку "os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'" необходимо добавлять раньше, чем tf импортирована, а это не по pep8.

  5. Добавлено сохранение времени fit цепочки в ее свойствах, чтобы можно было на графике нарисовать (и данная хар-ка включена в качестве метрики сложности отдельной).

  6. Визуализация сходимости objectiv-ов при помощи boxplot-ов.

  7. Исправлено еще 2 ошибки связанные с зависанием алгоритма (в мутации и скрещивании). Это происходило из-за того что data-models вставали в root в ходе эволцюции. Мы не учитываем что data models в качестве root быть не может и в качестве primary и secondary models во всех экспериментах у нас подаются одинаковые модели. Чтобы такую ошибку нельзя было совершить добавила проверку в builder-е.

Assignee
Assign to
Reviewer
Request review from
Time tracking
Source branch: multi-objective-optimization