Tổng số lượt xem trang

Thứ Sáu, 26 tháng 5, 2017

Tại sao cuốn Học Máy Học ra đời?

Mục tiêu của ngành Trí tuệ Nhân tạo (Artificial Intelligence – AI) là tạo ra những máy tính để có thể thay thế (thậm chí tốt hơn) công việc con người. Mặc dù “đường xa vạn dặm”, những nhà khoa học máy tính đã có những bước tiến đáng kinh ngạc. Hiện tại, có thể kể ra rất nhiều ứng dụng đa dạng: Nhận dạng chữ viết, nhận dạng âm thanh, xe tự hành, dịch máy (từ một ngôn ngữ sang nhiều ngôn ngữ), khả năng dự đoán và gợi ý sản phẩm cho người dùng, nhận dạng hình ảnh (mặt người, vân tay, hay nhiều đồ vật khác), lọc thư rác (spam filtering). Ngoài ra có rất nhiều lĩnh vực mà chúng tôi không thể kể hết ở đây như: y học (IBM Watson), bảo mật thông tin, dự đoán thị trường chứng khoán, v.v… Năm 2016 tổng thống Obama đã tổ chức một cuộc trao đổi với các chuyên gia đầu ngành về AI về việc chuẩn bị cho tương lai của AI [17]. Xe không người lái (driverless cars) đã trở thành sự thực với Uber ở Pittsburgh [18]. Điều đáng nói là một số lĩnh vực, khả năng nhận dạng đã bằng hoặc vượt con người (ví dụ nhận dạng chữ viết, tiếng nói [20]).
Những ứng dụng thông minh trên tuy ở nhiều lĩnh vực và hoàn cảnh khác nhau, nhưng đều có chung một nguồn gốc: Máy học (Machine Learning). Lịch sử Máy học có từ lâu, nhưng nó thực sự có nhiều đột phá cho tới khi các nhà khoa học máy tính áp dụng kỹ thuật Deep Learning (học nhiều tầng) để cho ra nhiều sản phẩm có tính ứng dụng hiệu quả trong thương mại và công nghiệp.  Hiện nay, những công ty hàng đầu về công nghệ đều có những đội ngũ nghiên cứu và phát triển các sản phẩm Máy học. Những nhà nghiên cứu AI hàng đầu thế giới như Geoff Hintonm, Sebastian Thrun, Peter Novig, Yann LeCun, Andrew Ng, v.v… đềuthuộc nhóm phát triển trong các dự án quan trọng bậc nhất của Google, Facebook, IBM, Intel, Amazon, Microsoft, Apple, v.v...

AlphaGo đánh Lee Sedol,  người từng 18 lần vô địch thế giới môn cờ vây, 
là bước tiến vượt bậc của AI.

Demis Hassabis, người sáng lập DeepMind – thuộc Google, lấy cảm hứng từ bộ não con người đã xây dựng một chương trình “Máy học vạn năng”: một tập các lệnh cho thuật toán tự học – giống như là một hệ sinh học – để tìm cách giải quyết một nhiệm vụ từ ban đầu mà chỉ cần dùng dữ liệu thô. AlphaGo là chương trình Máy học của DeepMind đã chiến thắng nhà vô địch thế giới cờ vây Lee Se-dol tháng 3.2016. Độ phức tạp của cờ vây từ lâu đã được xem như là bất khả xâm phạm cho máy tính, nhưng DeepMind đã dùng kĩ thuật tiên tiến nhất của Máy học (Deep Learning) để tự học và biến AlphaGo thành nhà vô địch cờ vây.  Nhiều chuyên gia trong lĩnh vực trí tuệ nhân tạo cho rằng cờ vây đòi hỏi nhiều yếu tố bắt chước suy nghĩ của con người hơn cờ vua [21]. Chiến thắng này sớm 10 năm so với dự đoán của các chuyên gia.  Đây được coi là một bước tiến vượt bậc của ngành AI và nó sẽ là cảm hứng cho bất kì lĩnh vực nào muốn ứng dụng AI. Demis Hassabis có nói “…nhưng điều thú vị bậc nhất cho chúng ta là đây không phải là một hệ chuyên gia dùng các luật được lập trình rõ ràng. Mà nó là chương trình tự học để trở thành nhà vô địch của môn cờ vây bằng nhờ các kĩ thuật Máy học. Sau cùng thì chúng ta có thể áp dụng những kĩ thuật này vào nhiều vấn đề trong cuộc sống, như mô hình dự báo thời tiết hay phân tích các dịch bệnh phức tạp. Vì vậy, nó thực sự thú vị để khởi động sự đương đầu tiếp theo”. Để biết thêm sự ảnh hưởng của Máy học, người đọc có thể tìm hiểu bài viết của Tom Mitchell [2]. Ông đã dùng nó để thuyết phục chủ tịch hội đồng trường CMU mở ra ngành Máy học đầu tiên trên thế giới, giáo sư Tom Mitchell có khẳng định rằng Máy học sẽ còn là chủ đề phát triển nóng trong 100 năm tới.

Chúng ta đã trải qua ba cuộc cách mạng công nghiệp. Lần thứ nhất là cuối thế kỉ 18, khi máy hơi nước và kĩ thuật cơ khí bắt đầu ra đời. Lần thứ hai là cuối thế kỉ 19 với việc xuất hiện của điện. Lần thứ ba là cuối thế kỉ 20 với sự xuất hiện của Internet, máy tính cá nhân, và công nghệ truyền thông. Hiện nay, ngày càng nhiều các nhà khoa học và các nhà kinh tế đều cho rằng chúng ta đang đứng trước thời gian đầu của cuộc cách mạng lần thứ bốn trong công nghiệp. Cuộc cách mạng của trí tuệ nhân tạo (Artificial Intelligence) và cụ thể hơn là Máy học (Machine Learning). Nó sẽ là nhân tố tiền đề cho một xã hội kết nối mọi vật (Internet of Thing – IoT). Nếu người ta coi dầu lửa là nguồn tài nguyên cho phát triển công nghiệp cho thế kỉ 20, thì dữ liệu chính là nguồn tài nguyên cho phát triển công nghệ thế kỉ 21. Do vậy, chúng ta có thể khẳng định rằng đây là thời điểm không thể tốt hơn để tìm hiểu, nghiên cứu và ứng dụng Máy học vào trong rất nhiều lĩnh vực của cuộc sống.

Hiện nay có rất nhiều sách và khóa học online cho Máy học với nhiều chủ để chuyên sâu. Khóa học được nhiều người biết đến: của giáo sư Andrew Ng và giáo sư Sebastian Thrun đều rất thú vị và hữu ích. Có thể đếm được rất nhiều khóa học xoay quanh chủ đề Machine Learning trên Coursera và Udacity. Số cuốn sách hay đã được viết về Máy học cũng nhiều không kém.
Vậy tại sao cuốn sách này lại ra đời? Thứ nhất, cuốn sách này viết bằng tiếng Việt. Nó sẽ là tài liệu tham khảo cho nhiều người đam mê Khoa học Máy tính gặp khó khăn trong việc đọc tài liệu chuyên ngành bằng tiếng Anh, đặc biệt là người mới tiếp cận. Cuốn sách ra đời nhằm cung cấp những kiến thức cơ bản và quan trọng nhất về Máy học cho những người muốn tìm hiểu. Chúng tôi cho rằng vì chỉ có những hiểu biết nhất định, người học mới có niềm yêu thích, rồi tiếp đến có thể thúc đẩy chúng ta khám phá thêm. Tất nhiên, cuốn sách cũng là tài liệu tham khảo cho những ai quan tâm tới Máy học.
Thứ hai, chúng tôi sẽ cố gắng trả lời các câu hỏi hỏi cơ bản nhưng rất nhiều khi lại khó khăn với người tìm hiểu Máy học. Việc hiểu rõ các câu hỏi này là quan trọng, vì nó giúp cho người học hiểu đúng, từ đó tạo niềm say mê với Máy học.
-          Máy học là gì? (What?)
-          Tại sao chúng ta cần Máy học? (Why?)
-          Khi nào nên/buộc phải dùng Máy học? (When?)
Thứ ba, chúng tôi tiếp cận Máy học theo hướng ứng dụng để không làm những kiến thức lý thuyết gây khó khăn cho người chưa có nền tảng kiến thức tốt. Có nghĩa là cuốn sách sẽ tập trung vào ý tưởng ở mức cảm nhận thuật toán, cách thức nó hoạt động ra sao và cung cấp những kiến thức căn bản nhất để cài đặt nó. Người học không phải lo lắng khi chưa thể hiểu hết ngay được bài toán; đơn giản là hãy thử và xem thuật toán hoạt động thế nào thông qua các chương trình nhỏ được cài đặt từng bước một. Người học có thể thay đổi chương trình ở một vài điểm để cảm nhận rõ hơn về thuật toán. Mỗi bài chúng tôi đều có lời khuyên cho người đọc cách tiếp cận phù hợp.  Bằng cách này, chúng tôi tin rằng những người mới tìm hiểu Máy học sẽ có cảm hứng và nhanh hiểu thuật toán ở mức cơ bản mà không mất đi tính chính xác. 
Thứ tư, chúng tôi muốn góp phần thay đổi cách nhìn nhận về việc học Máy học. Rất nhiều người cho rằng, muốn tiếp cận Máy học, chúng ta cần phải biết về Thống kê (statistics), biết về đại số (Linear Algebra), biết về xác suất (probability theory), v.v... Tuy nhiên, chúng tôi cho rằng người học có thể tiếp cận Máy học, đặc biệt cho người bắt đầu và không/chưa cần nền tảng lý thuyết toán học nhiều, bằng cách tiếp cận Máy học như tiếp cận một công cụ đề tìm tòi, rèn luyện, và khám phá. Hiện nay, lĩnh vực Máy học ngày càng phát triển rộng và áp dụng vào rất nhiều lĩnh vực khác nhau. Thực tế, trong Máy học có hai hướng chính: i) ứng dụng và ii) nghiên cứu lý thuyết. Việc tiếp cận theo hướng ứng dụng giúp những người chưa có nền tảng lý thuyết (toán học, trí tuệ nhân tạo) và kĩ năng lập trình có thể dễ hơn trong tiếp cận, trước khi họ có thể hiểu những kiến thức phức tạp hơn. Đây là một lý do quan trọng thôi thúc chúng tôi viết cuốn sách này.
Thứ năm, rất quan trọng rằng, chúng tôi muốn cài đặt thuật toán Máy học từ đầu (scratch). Bởi chúng tôi tin vào những lợi ích sau đây: i) Thực sự thấu hiểu rõ cách thức hoạt động của thuật toán.; ii) Chúng ta có thể hiểu các tham số trong thuật toán, từ đó có thể cải tiến thuật toán hiệu quả hơn khi gặp bài toán thực tế; iii) Có thể đề xuất thuật toán mới nhờ hiểu những thuật toán đã có. Chỉ có hiểu và cài đặt thuật toán từ đầu, chúng ta mới tự tin sử dụng thuật toán và coi nó là một công cụ quen thuộc mỗi khi gặp bài toán thực tế.
Trong cuốn sách này, chúng tôi sử dụng ngôn ngữ Python. Tại sao là Python? Có nhiều lý do. Đầu tiên và vô cùng quan trọng, Python là một ngôn ngữ rất dễ học cho người mới bắt đầu. Python có cú pháp, cấu trúc cực kì đơn giản và dễ đọc. Một học sinh phổ thông chăm chỉ cũng có thể tự học được Python. Thứ hai, Python là ngôn ngữ ngày càng phổ dụng (rất nhiều sản phẩm đang được phát triển ở Google dùng Python). Thứ ba, Python có rất nhiều thư viện cho Máy học (scikit-learn, pandas, theano, tensorflow). Do vậy, Python là sự lựa chọn hàng đầu cho người mới học có thể dễ dàng hơn trong việc phát triển ứng dụng cho Máy học, khoa học dữ liệu (data science), và nhiều lĩnh vực khác trong khoa học máy tính.
Như vậy, cuốn sách này phù hợp với những người chưa có nhiều kiến thức về Máy học muốn khám phá một lĩnh vực đang có những bước đột phá trong ngành Trí tuệ Nhân tạo (AI). Chúng tôi mong rằng, cuốn sách này sẽ ươm mầm cho bất kì ai, dù là học sinh, sinh viên, và ngay cả những người ở lĩnh vực khác có khả năng xây dựng các chương trình ‘thông minh’ áp dụng vào trong lĩnh vực họ quan tâm.
Mặc dù chúng tôi rất mong muốn chuyển thể tất cả các thuật ngữ tiếng Anh sang tiếng Việt, tuy nhiên khi những thuật ngữ tiếng Anh nào thực sự thông dụng, chúng tôi sẽ để nguyên (hoặc chỉ dịch tạm thời) vì ba lý do: 1. Dịch sang tiếng Việt có khi không đúng với nghĩa và nhiều khi gây hiểu nhầm sang thuật ngữ vốn đã được dùng ở hoàn cảnh khác; 2. Các thuật ngữ này là những khái niệm cần biết và hiểu với người học Máy học; 3. Số lượng thuật ngữ này không nhiều, nên chúng tôi tin rằng người học (dù không thạo ngoại ngữ) vẫn có thể thoải mái theo dõi và làm chủ bài học.

Tham khảo:

1. https://vi.wikipedia.org/wiki/AlphaGo_đấu_với_Lee_Sedol
2. http://www.cs.cmu.edu/~tom/pubs/MachineLearning.pdf.



1 nhận xét: