-
Hello I am using botorch to optimize my problem that has two outputs and I want to maximize both outputs. Do you think this Pareto front makes sense? Any advice/ comments? |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 5 replies
-
Hi @A-ep93! That does not look like a Pareto frontier if you're optimizing both objectives. The plot includes many points that are clearly dominated by others. I suspect the plot shows all evaluations, which is what the bottom plots do in the notebook you linked to. Judging by these plots, and assuming those are the evaluations, it seems that the two objectives are quite strongly correlated here (maybe you don't really need to do multi-objective optimization?). The PF here would be a handful of points that are at upper right corner of your plots. If you want to filter out the Pareto points, you can use the following where
|
Beta Was this translation helpful? Give feedback.
-
Thanks for your reply @saitcakmak. Yes, the plot shows all evaluations. Also, I see the points you mentioned about the correlation between outputs and I will surely look into that. But I encountered one other problem: These results are worse than the results I posted previously. Any suggestions to somehow increase the performance? I post the main parts of my code here (I didn't bring unnecessary parts here) if you want to take a look at what exactly I am doing:
Any suggestions/comments are greatly appreciated. |
Beta Was this translation helpful? Give feedback.
-
Thanks for your response @saitcakmak. Do you have any further suggestions? I am not sure whether I applied your third comment correctly to my code. So basically, based on your first suggestion, I added |
Beta Was this translation helpful? Give feedback.
Thanks for your response @saitcakmak.
I did what you mentioned. Here are the new results:
Do you have any further suggestions?
Also, do you think increasing N_TRIALS, N_BATCH, MC_SAMPLES, RAW_SAMPLES, NUM_RESTARTS, BATCH_SIZE, etc. can increase the performance? If yes, which one do you think is more critical?
I am not sure whether I applied your third comment correctly to my code. So basically, based on your first suggestion, I added
input_transform=Normalize(d=4)
to myinitialize_model
function. I then replaced everystandard_bounds
withbounds
in theoptimize_acqf
functions. Also, I replaced theunnormalize(candidates.detach(), bounds=bounds)
comment withcandidates.detach()
. Did I app…