CHƯƠNG 1. Giới thiệu về Học máy Mỗi con người chúng ta được trang bị các giác quan như thị giác, thính giác, xúc giác,… để quan sát, cảm nhận, nhận thức mọi thứ xung quanh rồi từ đó mỗi cá nhân từng người sẽ tự mình rút ra được những kinh nghiệm, đánh giá, phân tích riêng để đối phó, xử lí khi gặp lại các trường hợp đó trong cuộc sống. Máy tính cũng cũng vậy, muốn nó nhận thức, xử lí được như con người thì ta cần phải trang bị cho nó những thứ cần thiết, những thứ được xem như giác quan của máy tính như máy quay, tai nghe,… Từ đó, máy tính có thể thay thế con người để làm những việc phức tạp, thậm chí nó còn làm nhanh hơn và chính xác hơn. Ví dụ như hãy lọc ra những người giống nhau ở trong hai đoạn băng ghi hình ở hai nơi khác nhau kéo dài 12 tiếng để tìm ra những đối tượng bị tình nghi là thuộc một băng nhóm nào đó, hay là lọc ra âm thanh của cuộc trò chuyện điện thoại trong một buổi tiệc ồn ào,.
Những công việc dạng như vậy khi được chúng ta huấn luyện cho máy tính thì được gọi là tác vụ. Máy tính được trang bị một hay nhiều các tác vụ như trên để làm những công việc đó thay cho con người được gọi là AI (Trí tuệ nhân tạo). AI [1] là viết tắt của Artificial Intelligence, dịch ra là trí tuệ nhân tạo. Trong lịch sử phát triển thì trí tuệ nhân tạo được các nhà nghiên cứu phân thành 4 hướng tiếp cận chính đó là: - Hàng động như người (Acting humanly) - Suy nghĩ như người (Thinking humanly) - Suy nghĩ hợp lý (Thinking rationally) - Hành động hợp lý (Acting rationally) Trong thời đại phát triển chóng mặt của công nghệ số hiện nay, trí tuệ nhân tạo đang mang lại sự thay đổi sâu sắc về nhiều khía cạnh của cuộc sống, nó len lõi và hỗ trợ một cách tối đa cho các hoạt động của con người như kinh doanh, bảo mật, y tế,… Có thể kể ra một vài hệ thống trí tuệ nhân tạo tiêu biểu như máy chơi cờ vây tự động Google AlphaGo của Google DeepMind; các trợ lý ảo như Siri của Apple,Google Assistant của Google, Bixby của Samsung; nhà thông minh có khả năng học hỏi và ghi SV: Ngô Trần Hoàng Lâm 5 Khóa luận tốt nghiệp nhớ người dùng qua lệnh giọng nói, hành vi, thói quen,… của ACIS JSC; hệ thống nhận diện khuôn mặt trong ảnh đăng của người dùng lên Facebook, FaceID của Apple; hệ thống gợi ý sản phẩm cho khách hàng dựa trên lịch sử mua hàng, sở thích, thói quen của khách hàng của Amazon; thiết bị bay không người lái được ứng dụng vào y tế để tăng thời gian và có thể đến nơi có địa hình hiểm trở;…đây là một vài hệ thống trong vô vàn hệ thống có ứng dụng trí tuệ nhân tạo.
Trí tuệ nhân tạo thực sự mang lại cho con người chúng ta một cuộc sống tiện nghi, hiện đại và chất lượng hơn rất nhiều, khiến con người cảm thấy thoải mái hơn và bên cạnh đó, việc áp dụng thêm các tiến bộ khoa học kĩ thuật khác càng làm cho năng suất công việc được nâng cao, chất lượng sản phẩm được cải thiện từ đó dẫn đến một xã hội tiến bộ và cuộc sống chất lượng hơn. Để có được trí tuệ nhân tạo thì máy tính cần phải “học tập”, vậy máy tính sẽ “học tập” như thế nào? Một trong những lĩnh vực con bên trong AI rất quan trọng và có liên quan đến việc phát triển các kỹ thuật cho phép máy tính có thể “học tập” đó là Học máy (Machine Learning - ML) [2]. Học máy là một trong những công cụ có thể giúp máy tính có thể “tự học hỏi” và nâng cao khả năng nhận biết về thế giới xung quanh dựa vào các dữ liệu đã thu thập được từ trước đó. Học máy giúp giải quyết bài toán bằng cách sử dụng một lượng lớn dữ liệu sẵn có từ trước, sau quá trình được “học tập” thì máy tính có thể có khả năng tự động thực hiện những tác vụ khác nhau để giải quyết bài toán đó, thay cho các phương pháp lập trình truyền thống.
Cụ thể ở đây, máy tính có thể thực hiện các tác vụ đó thông qua việc phân tích dữ liệu, cập nhật và xử lý bộ dữ liệu có sẵn và sau đó khi gặp các trường hợp mới phát sinh thì nó có thể tự động ghi nhận lại và tự động xử lý với độ chính xác tương đối cao. Các thuật toán học máy được chia thành 2 loại thường dùng đó là: - Học có giám sát (Supervised Learning): máy tính được huấn luyện bằng một số mẫu đầu vào và đầu ra tương ứng đã được biết trước kết quả. Sau khi được huấn luyện, máy tính quan sát khi có đầu vào mới và có thể tự động tính ra kết quả cho đầu ra. Trong học có giám sát thì được phân thành 2 loại đó là hồi quy (Regression) và phân lớp (Classification).
SV: Ngô Trần Hoàng Lâm 6 Khóa luận tốt nghiệp Một vài giải thuật phổ biến trong học có giám sát: Hồi quy: hồi quy tuyến tính (Linear Regression), hồi quy Logistic (Logistic Regression), rừng ngẫu nhiên (Random Forest). Phân lớp: rừng ngẫu nhiên (Random Forest), vectơ hỗ trợ (Support Vector) - Học không giám sát (Unsupervised Learning): máy tính không được cho đầu ra mà chỉ có dự liệu đầu vào. Sau đó máy tính phải tự tìm cách phân lớp các mẫu này và các mẫu mới. Trong học không giám sát thì được chia thành 2 loại đó là phân cụm (Clustering) và không phân cụm (Non-Clustering) Một vài giải thuật phổ biến trong học không giám sát: Phân cụm: Kmeans Không phân cụm: Cocktail Party Algorithm Khoảng 2 thập kỷ trở lại đây thì học máy mới thực sự gây ra cơn sốt trong giới công nghệ trên toàn cầu, còn trước đó do khả năng tính toán của vi xử lý còn yếu và lưu lượng dữ liệu số lưu trữ trên các máy chủ trên khắp thế giới chưa được nhiều nên việc sự dụng học máy rất hạn chế.
Hiện nay, với khả năng xử lý của đơn vị xử lý trung tâm (CPU) đã đạt đến tầm cao mới theo cấp số nhân (Định luật Moore) và kho dữ liệu số lưu trữ trên các máy chủ ngày càng được tích lũy nhiều hơn thì học máy thực sự là một cơn bão trong giới công nghệ. Nó có tính ứng dụng rất cao trong nhiều lĩnh vực như hô biến ảnh đen trắng thành ảnh màu, phát hiện thẻ tín dụng giả, tự động tạo chú thích cho các bức ảnh, viết truyện – làm thơ – viết quảng cáo, dịch máy, phân lớp các chuỗi DNA,… Những ứng dụng này phần nào đã chứng tỏ sự vượt trội của học máy so với các phương pháp cổ điển khác và cho thấy sự cần thiết của học máy đối với cuộc sống của chúng ta hiện nay. Vì việc nghiên cứu và ứng dụng học máy còn chưa phổ biến ở Việt Nam nên các thuật ngữ dịch sang tiếng Việt còn chưa được thống nhất và chưa có một chuẩn mực chung cho mọi tài liệu. Do đó trong khóa luận này, người thực hiện khóa luận xin được dùng thuật ngữ tiếng Anh gốc để giữ được nghĩa gốc vốn có của các thuật ngữ.
Bảng các thuật ngữ tiếng Anh được dùng trong khóa luận được cung cấp ở trang viii. SV: Ngô Trần Hoàng Lâm 7 Khóa luận tốt nghiệp 1. Tổng quan về học không giám sát Như đã giới thiệu ở trên thì trong ngành khoa học dữ liệu có 2 hướng để sử dụng dữ liệu đó là học có giám sát và học không giám sát. Sử dụng dữ liệu để huấn luyện mô hình và tạo ra các dự đoán với dữ liệu mới đó là học có giám sát.
Nhưng đôi khi ta không muốn tạo ra các dự đoán mà lại muốn tìm ra những điểm tương đồng trong bộ dữ liệu đó và phân dữ liệu và các nhóm khác nhau đó lại là học không giám sát. Đó cũng là ưu điểm của nó so với học có giám sát vì trong cuộc sống không phải lúc nào chúng ta cũng có được kết quả đầu ra cho tất cả các bộ dữ liệu. Vì khóa luận này đang nói về phương pháp phân cụm Kmeans mà phương pháp này thuộc về học không có giám sát nên người thực hiện khóa luận sẽ trình bày phần học không giám sát trước, còn về phần học có giám sát thì chúng ta sẽ cần đến nó nhưng sẽ đề cập đến nó ở phần tiếp sau của khóa luận. Học không giám sát [3], [4] là phương pháp học mà máy tính học không có hướng dẫn cụ thể, không có các ví dụ cho trước, không có đầu ra mà chỉ có bộ dữ liệu đầu vào, sau đó nó sẽ tự động tìm các điểm tương đồng, sự khác biệt của dữ liệu và nhóm dữ liệu thành từng cụm khác nhau dựa vào độ tương đồng giữa chúng.
Chúng ta có một ví dụ như sau: máy tính chưa từng nhìn qua bức ảnh dưới đây và cũng chưa được dạy cho nó về như thế nào là chó và như thế nào là mèo. Hình minh họa cho ví dụ của phương pháp học không giám sát Do chưa được dạy nên máy tính của chúng ta sẽ không thể phân biệt được con nào là chó và con nào là mèo trong bức ảnh. Nhưng vì là học không giám sát nên khi nhìn thấy bức ảnh, máy tính có thể phân cụm bức ảnh này ra dựa vào các điểm tương đồng của các SV: Ngô Trần Hoàng Lâm 8 Khóa luận tốt nghiệp con vật trong bức ảnh. Để rồi nó có thể phân bức ảnh thành vùng chỉ có những con chó và vùng chỉ có hình ảnh những con mèo dựa vào điểm tương đồng giữa các con vật.
Trong học không giám sát thì các thuật toán phổ biến nhất được sử dụng bao gồm: - Phân cụm Phân cấp (Hierarchical Clustering) Phân cụm k (Kmeans) Mô hình hỗn hợp (Mixture models) Phân cụm không gian dựa trên các ứng dụng có tiếng ồn (DBSCAN) Thuật toán xác định cấu trúc phân cụm dựa trên thứ tự điểm (OPTICS algorithm) - Phát hiện bất thường (Anomaly detection) Yếu tố ngoại lệ địa phương (Local Outlier Factor) - Mạng lưới thần kinh (Neural network) Bộ tự động (Autoencoders) Lưới niềm tin sâu sắc (Deep Belies Nets) Học tiếng Do Thái (Hebbian Learning) - Mô hình biến tiềm ẩn (Latent variable models) Thuật toán tối đa hóa kì vọng (Expectation – maximization algorithm) (EM) Phương pháp của khoảnh khắc (Method of moment) Tách tín hiệu mù (Blind signal separation) 1. Tổng quan về phân cụm 1.