-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
NeuralMAB #102
NeuralMAB #102
Conversation
maypink
commented
May 22, 2023
•
edited
Loading
edited
- Implementation of Contextual Bandits and Neural Contextual Bandits from the article.
- SyntheticExperimentHelper to compare bandits with each other
…e_drop_mutation-fails-to-remove-node
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Все выглядит разумно, вопросов по реализации нет, есть вопросы и комментарии по логике.
- Сориентируй, как долго работает энкодер на графах? Сколько занимает итерация обучения нейронки?
- Тестировала ли ты реализацию бандита на какой-то простой задаче? Бенчмарк из статьи, например. Можно без энкодера графов обойтись.
- Нужно поставить эксперимент, где для разных графов (разных эмбеддингов) наилучшими будут различные действия. Например, если это оптимизация размера графов до N , то маленькие графы надо растить, а большие обрезать. Вот надо бы хотя бы такой тривиальный случай поймать, чтобы проверить , что контекст вообще работает. И затем что-то менее тривиальное надо придумать.
deep_context = self._get_deep_context(context=context) | ||
self._mab.fit(decisions=self._indices, rewards=uniform_rewards, contexts=n * [deep_context]) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Предлагаю убрать этот обман бедного бандита с произвольным контекстом. Вместо этого использовать флаг is_fitted внутри partial_fit для первого фита
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
не совсем поняла, при чем тут первый фит. проблема же в том, что predict вызывается первее, чем partial_fit, так что нужен какой-то warm start
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
может, тогда в predict добавить проверку на is_fitted? и выдавать дефолтные вероятности, что-то такое
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
да будто бы это оно и есть. мы же одинаковый контекст с одинаковыми наградами передаем для всех рук, то есть вероятности не сдвинутся после такого
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Мы вносим bias , давая бандиту ложные данные. Это не очень корректно, больше на хак похоже.
Если можем обойтись без этого, то лучше обойтись.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
да вроде не можем: у бандитов есть warm_start, но он предназначен не для этого, а для того, чтобы просто задать начальное представление перед первым фитом. без фита все равно не обойтись
Codecov Report
@@ Coverage Diff @@
## main #102 +/- ##
==========================================
+ Coverage 71.30% 72.55% +1.25%
==========================================
Files 120 126 +6
Lines 6691 7208 +517
==========================================
+ Hits 4771 5230 +459
- Misses 1920 1978 +58
|
examples/adaptive_optimizer/mab_experiment_different_targets.py
Outdated
Show resolved
Hide resolved
dbf3521
to
fa8973a
Compare
* fix * fix#2 * minor * initial neural mab * add context agents enum * add experiments * launch * minor * add contextual mab to pull arms * put NN in a separate class & add docstrings * adjust settings * change places of mutations * fixes after review * minors * minors * add contextual bandits * add experimenter & multiple fitness lines visualizer * experiments * probabilities for contexts * minors & docstrings * fix pep8 * fix requirements * minor * minor * add average visualizatio * fixes after review * minors * update requirements * Update unit-build.yml * Update unit-build.yml * fix pep8 * Update unit-build.yml
* fix * fix#2 * minor * initial neural mab * add context agents enum * add experiments * launch * minor * add contextual mab to pull arms * put NN in a separate class & add docstrings * adjust settings * change places of mutations * fixes after review * minors * minors * add contextual bandits * add experimenter & multiple fitness lines visualizer * experiments * probabilities for contexts * minors & docstrings * fix pep8 * fix requirements * minor * minor * add average visualizatio * fixes after review * minors * update requirements * Update unit-build.yml * Update unit-build.yml * fix pep8 * Update unit-build.yml