How does hyperparameter tuning help developers find suitable settings for machine learning models? What are the differences between grid search, random search, and Bayesian optimization? What challenges can teams face when balancing model accuracy, training time, and overfitting during hyperparameter tuning?