Trong vài năm qua, trí tuệ nhân tạo (AI) đã là một chủ đề được truyền thông đặc biệt chú ý. Machine learning, deep learning và AI xuất hiện trong vô số bài báo, chúng hứa hẹn một tương lai với các chatbot thông minh, xe tự lái, trợ lý ảo – một tương lai đôi khi được mô tả trong một ánh sáng u ám và đôi khi là một thiên đàng, nơi công việc của con người sẽ ít và hầu hết hoạt động kinh tế sẽ được xử lý bởi robot hoặc tác nhân AI.
Chuỗi bài viết này sẽ cung cấp bối cảnh quan trọng xung quanh trí tuệ nhân tạo, machine learning và deep learning. Các bạn có thể đọc thêm các bài viết khác về chủ đề Machine Learning / Deep Learning tại đây.
Trí tuệ nhân tạo
Mặc dù nhiều ý tưởng cơ bản đã được nảy nở trong những năm và thậm chí là thập kỷ trước, “trí tuệ nhân tạo” cuối cùng đã hình thành như một lĩnh vực nghiên cứu vào năm 1956, khi John McCarthy, lúc đó là một giáo sư trợ giảng toán học tại Đại học Dartmouth, tổ chức một hội thảo mùa hè, nhiều người tham gia sau này đã trở thành những người tiên phong trong lĩnh vực AI, và nó đã tạo ra một cuộc cách mạng tư duy mà cho đến ngày nay vẫn tiếp tục.
Một cách ngắn gọn, AI có thể được mô tả là nỗ lực tự động hóa các nhiệm vụ trí tuệ mà thông thường được thực hiện bởi con người. Như vậy, AI là một lĩnh vực tổng quát bao gồm machine learning và deep learning, nhưng cũng bao gồm nhiều phương pháp khác có thể không liên quan đến bất kỳ loại “học” nào.
Mặc dù AI đã chứng minh phù hợp để giải quyết các vấn đề định nghĩa rõ ràng, hợp lý như chơi cờ vua, nhưng lại không thể giải quyết được các vấn đề phức tạp, mơ hồ hơn, chẳng hạn như phân loại hình ảnh, nhận dạng giọng nói hoặc dịch ngôn ngữ tự nhiên. Một phương pháp mới nổi lên để thay thế cho AI: machine learning.
Machine Learning (học máy)
Giới thiệu
Cách thông thường để làm cho máy tính thực hiện công việc hữu ích là cho lập trình viên viết ra các quy tắc (rule) để theo dõi và chuyển đổi dữ liệu đầu vào thành câu trả lời phù hợp. Còn Machine Learning đảo ngược quy trình này: máy tính nhìn vào dữ liệu đầu vào và các câu trả lời tương ứng, và tìm hiểu quy tắc nên là gì.
Hệ thống machine learning được huấn luyện thay vì được lập trình một cách rõ ràng. Nó được trình bày với nhiều ví dụ liên quan đến một nhiệm vụ, và nó tìm ra cấu trúc thống kê trong những ví dụ này cuối cùng cho phép hệ thống tạo ra quy tắc để tự động hóa nhiệm vụ.
Mặc dù machine learning chỉ bắt đầu phát triển mạnh mẽ từ những năm 1990, nhưng nó nhanh chóng trở thành lĩnh vực con phổ biến và thành công nhất của trí tuệ nhân tạo. Machine learning liên quan đến thống kê toán học, nhưng nó khác biệt với thống kê ở một số cách quan trọng, giống như y học liên quan đến hóa học nhưng không thể giảm xuống mức hóa học, vì y học đối mặt với các hệ thống riêng biệt có các đặc tính riêng biệt của chúng. Khác với thống kê, machine learning thường xử lý các bộ dữ liệu lớn, phức tạp mà việc phân tích thống kê cổ điển như phân tích Bayesian sẽ không khả thi. Do đó, machine learning, đặc biệt là deep learning, thường thể hiện ít lý thuyết toán học so với một số lĩnh vực khác và nó là một ngành kỹ thuật cơ bản.
Khác với vật lý lý thuyết hoặc toán học, machine learning là một lĩnh vực rất thực tế, dựa trên những phát hiện thực nghiệm và phụ thuộc sâu vào sự tiến bộ trong phần mềm và phần cứng.
Học các quy tắc và cách biểu diễn dữ liệu
Để định nghĩa deep learning và hiểu sự khác biệt giữa deep learning và các phương pháp machine learning khác, trước hết chúng ta cần có một ý tưởng về những gì các thuật toán machine learning thực hiện. Để thực hiện machine learning, chúng ta cần ba điều:
- Dữ liệu đầu vào – Ví dụ nếu nhiệm vụ là nhận dạng giọng nói, những điểm dữ liệu này có thể là các file âm thanh của người nói. Nếu nhiệm vụ là gắn nhãn hình ảnh, chúng có thể là các hình ảnh.
- Ví dụ về kết quả mong đợi – Trong một nhiệm vụ nhận dạng giọng nói, chúng có thể là bảng chấm điểm do con người tạo ra từ các fileâm thanh. Trong một nhiệm vụ hình ảnh, kết quả mong đợi có thể là các nhãn như “chó“, “mèo“.
- Cách đo lường xem thuật toán làm việc tốt không – Điều này cần thiết để xác định khoảng cách giữa kết quả hiện tại của thuật toán và kết quả mong đợi. Đo lường này được sử dụng như một tín hiệu phản hồi để điều chỉnh cách thuật toán hoạt động. Bước điều chỉnh này là những gì chúng ta gọi là quá trình học.
Một mô hình machine learning biến đổi dữ liệu đầu vào của nó thành các kết quả có ý nghĩa, một quá trình “được học” từ sự tiếp xúc với các ví dụ biết đến về đầu vào và kết quả. Do đó, vấn đề trung tâm trong machine learning và deep learning là biến đổi dữ liệu một cách có ý nghĩa: nói cách khác, học các biểu diễn hữu ích của dữ liệu đầu vào có sẵn – các biểu diễn mang lại cho chúng ta sự gần gũi với kết quả mong đợi.
Các mô hình machine learning chủ yếu xoay quanh việc tìm các biểu diễn phù hợp cho dữ liệu đầu vào của chúng – các biến đổi của dữ liệu giúp nó dễ dàng hơn cho nhiệm vụ cụ thể.
Xem xét một trục x, một trục y và một số điểm được biểu diễn bằng tọa độ của chúng trong hệ trục tọa độ (x, y):
Ta có một số điểm màu trắng và một số điểm màu đen. Giả sử chúng ta muốn phát triển một thuật toán có thể lấy tọa độ (x, y) của một điểm và đưa ra kết quả liệu điểm đó có khả năng là màu đen hay màu trắng. Trong trường hợp này,
- Đầu vào là tọa độ của các điểm
- Kết quả mong đợi là màu sắc của các điểm
- Một cách đo lường xem thuật toán của chúng ta có làm việc tốt không có thể là tỷ lệ phần trăm điểm được phân loại đúng.
Một biến đổi ta có thể sử dụng đó là thay đổi tọa độ:
Trong hệ thống tọa độ mới này, có thể nói rằng tọa độ của các điểm của chúng ta là một biểu diễn mới của dữ liệu của chúng ta. Và đó là một biểu diễn tốt! Với biểu diễn này, vấn đề phân loại đen/trắng có thể được biểu thị dưới dạng một quy tắc đơn giản: “Các điểm đen là những điểm mà x > 0,” hoặc “Các điểm trắng là những điểm mà x < 0.” Biểu diễn mới kết hợp với quy tắc đơn giản này ta sẽ giải quyết vấn đề phân loại một cách sắc sảo.
Trong ngữ cảnh của machine learning, “học” mô tả một quá trình tìm kiếm tự động cho các biến đổi dữ liệu tạo ra các biểu diễn hữu ích của một số dữ liệu, được hướng dẫn bởi một tín hiệu phản hồi nào đó – những biểu diễn có thể được áp dụng các quy tắc đơn giản giải quyết công việc cụ thể.
Deep Learning (học sâu)
“Deep” trong Deep Learning là gì?
Deep learning là một phần cụ thể của machine learning: một cách mới trong việc học biểu diễn từ dữ liệu, đặt trọng điểm vào việc học các tầng biểu diễn ngày càng có ý nghĩa. Từ “deep” trong “deep learning” không phải là một tham chiếu đến bất kỳ sự hiểu biết sâu sắc nào đạt được thông qua phương pháp; thay vào đó, nó đại diện cho ý tưởng về các tầng liên tiếp của biểu diễn. Số lượng tầng đóng góp vào mô hình dữ liệu được gọi là độ sâu của mô hình. Các tên phù hợp khác cho lĩnh vực này có thể là “layered representations learning” hoặc “hierarchical representations learning“.
Deep learning hiện đại thường liên quan đến hàng chục hoặc thậm chí hàng trăm tầng biểu diễn liên tiếp, và chúng được học tự động từ việc tiếp xúc với dữ liệu huấn luyện. Trong khi đó, các phương pháp khác của machine learning thường tập trung vào việc học chỉ một hoặc hai tầng biểu diễn của dữ liệu (ví dụ: lấy histogram pixel và sau đó áp dụng quy tắc phân loại); do đó, chúng đôi khi được gọi là “shallow learning” (học nông).
Trong deep learning, các biểu diễn tầng này được học thông qua các mô hình được gọi là neural networks, được cấu trúc bằng cách xếp chồng chúng lên trên nhau. Thuật ngữ “neural network” liên quan đến sinh học thần kinh, nhưng mặc dù một số khái niệm cơ bản trong deep learning được phát triển một phần thông qua việc lấy cảm hứng từ sự hiểu biết của chúng ta về não (đặc biệt là vỏ thị giác), mô hình deep learning không phải là mô hình của não. Không có bằng chứng nào chứng minh rằng não thực hiện bất kỳ cơ chế học nào giống với các mô hình deep learning hiện đại. Ta có thể gặp những bài viết khoa học giả tưởng tuyên bố rằng deep learning hoạt động giống như não hoặc được mô phỏng theo não, nhưng điều đó không đúng. Việc nghĩ về deep learning có liên quan đến sinh học sẽ làm mơ hồ và gây khó khăn cho những người mới bắt đầu trong lĩnh vực này.
Biểu diễn mà một thuật toán deep learning học trông như thế nào? Giờ ta xem xét cách một mạng nhiều tầng biến đổi một hình ảnh của một chữ số để nhận diện chữ số đó là gì.
Nhìn hình trên ta có thể đơn giản mạng deep như một quá trình chưng cất thông tin đa tầng, trong đó thông tin đi qua các bộ lọc liên tiếp và trở nên ngày càng tinh khiết hơn (nghĩa là hữu ích đối với một số nhiệm vụ).
Cách hoạt động
Thông số của việc một tầng thực hiện gì đối với dữ liệu đầu vào của nó được lưu trữ trong trọng số của tầng đó, mà bản chất là một tập hợp các số. Theo thuật ngữ kỹ thuật, ta nói rằng sự biến đổi được thực hiện bởi một tầng được tham số hóa bởi trọng số của nó. (Trọng số (weight) đôi khi cũng được gọi là các tham số của một tầng.) Trong ngữ cảnh này, học có nghĩa là tìm một bộ giá trị cho trọng số của tất cả các tầng trong mạng, sao cho mạng sẽ ánh xạ đúng đầu vào ví dụ vào mục tiêu tương ứng của chúng.
Một mạng neural sâu có thể chứa hàng chục triệu tham số. Việc tìm giá trị chính xác cho tất cả chúng có thể trở nên khó khăn, đặc biệt là khi sửa đổi giá trị của một tham số sẽ ảnh hưởng đến hành vi của tất cả các tham số còn lại.
Để kiểm soát điều gì đó, trước tiên ta cần có khả năng quan sát nó. Để kiểm soát kết quả của một mạng neural, ta cần có khả năng đo lường khoảng cách giữa kết quả này và điều mong đợi. Điều này là nhiệm vụ của hàm mất mát (loss function) của mạng, còn được gọi là hàm mục tiêu hoặc hàm chi phí (cost function).
Bí quyết cơ bản trong deep learning là sử dụng điểm số này như một tín hiệu phản hồi để điều chỉnh giá trị của trọng số một chút, theo một hướng giúp giảm điểm mất mát cho ví dụ hiện tại. Việc điều chỉnh này là công việc của bộ tối ưu hóa (optimizer), thực hiện điều gọi là thuật toán Backpropagation (lan truyền ngược): thuật toán trung tâm trong deep learning. Những bài viết tiếp theo sẽ giải thích chi tiết hơn về cách backpropagation hoạt động.
Ban đầu, trọng số của mạng được gán giá trị ngẫu nhiên, vì vậy mạng chỉ thực hiện một chuỗi các biến đổi ngẫu nhiên. Tự nhiên, đầu ra của nó rất xa so với những gì nó nên làm lý tưởng và điểm mất mát tương ứng rất cao. Nhưng với mỗi ví dụ mà mạng xử lý, trọng số được điều chỉnh một chút theo hướng chính xác, và điểm mất mát giảm đi. Đây chính là vòng lặp huấn luyện (training loop), được lặp lại một số lần (thường là hàng chục lần qua hàng nghìn ví dụ), tạo ra giá trị trọng số giảm thiểu hàm mất mát. Đây là một cơ chế đơn giản, nhưng khi được mở rộng, nó trở nên như phép màu.
Comments 1