I'm new to ML/AI field, and after completing several free university courses from MIT OpenCourseWare and Harvard CS50, I've gained some familiarity with the theoretical foundations of Artificial Intelligence.
Now, I'm attempting to apply this knowledge by experimenting with Python examples I can find online. I've delved into various topics, spanning from Perceptrons and Nearest Neighbors to Reinforcement Learning with Q-Learning and Neural Networks. During this process, I've discovered the existence of numerous ML/AI libraries (such as scikit-learn, TensorFlow, PyTorch, Stable-Baselines, and Gymnasium/Gym) designed to facilitate programming, which is both advantageous and somewhat overwhelming.
What bewilders me the most is that the same AI concepts can be implemented using different Python libraries. For instance, I've come across examples of reinforcement learning implemented using TensorFlow, PyTorch, Stable-Baselines, or just Gym combined with NumPy. This makes me wonder: which one should I choose? Is it necessary to invest my time in learning all of them?
As a newcomer to this field, I'd like to gain clarity on the following:
Are these libraries complementary or do they compete with each other?
Which two libraries would provide the broadest coverage for AI applications? (I aim to maintain focus and limit my efforts, so becoming proficient in using only two libraries effectively would be a significant accomplishment. I'm already acquainted with the scikit-learn pipeline and find it quite appealing, but I've also noticed its limitations in the context of Reinforcement Learning and Neural Networks.)