This course selects a specific theme from the broad field of machine learning and cover its fundamental concepts, the principles behind key algorithms, implementation, and applications to real-world problems. This year we focus on unsupervised learning. Unlike supervised learning, evaluating the results of unsupervised learning is not straightforward. Furthermore, the common definition that "unsupervised learning is learning with unlabeled training data" is not always accurate. We introduce diverse topics ranging from classical principal component analysis (PCA) and clustering methods to deep generative models. The course is roughly divided into two parts: the first part will delve into foundational and classical (yet still important) unsupervised learning methods, and the last part will deal with deep generative models.