Khoa học máy tính trong kỷ nguyên thông tin
Trong khoảng 50 năm trở lại đây, khoa học máy tính chú trọng vào việc sử dụng máy tính giúp ích cho công việc của chúng ta nên các thuật toán, ngôn ngữ lập trình, hệ điều hành là những chủ đề được quan tâm bậc nhất. Tuy nhiên hiện nay, trọng tâm đã chuyển dịch sang ứng dụng trước những tác động quan trọng như công suất máy tính, lượng dữ liệu khổng lồ hay sự kết nối internet. Do đó, khoa học máy tính ngày nay không chỉ tạo ra nhu cầu ứng dụng mà còn là nhu cầu nghiên cứu đa ngành, đặc biệt trong việc phân cụm mạng xã hội, lý thuyết học, kích thước của dữ liệu, quá trình số hóa và yêu cầu bảo mật quyền riêng tư.
Những tác động quan trọng như công suất máy tính, lượng dữ liệu khổng lồ hay sự kết nối internet dã ảnh hưởng đến khoa học máy tính.
Bài toán phân cụm
Ban đầu, mục tiêu của bài toán này là phân chia các nút của một mạng xã hội thành những cụm riêng biệt. Các nghiên cứu sau đó lại tập trung vào việc tìm ra các nhóm giao nhau – các thành viên tham gia vào nhiều cụm khác nhau. Gần đây bài toán phân cụm có hai hướng quan trọng. Thứ nhất là do kích thước của các mạng xã hội tăng lên quá lớn, hàng tỷ nút, phân cụm tất cả các nút – phân cụm toàn cục – trở nên không thể và được thay thế bằng phân cụm cục bộ. Trong phân cụm toàn cục, nếu một một mạng lưới một tỷ nút cần phân thành mười cụm hoặc hơn thì mỗi cụm sẽ có hàng trăm triệu đỉnh. Với phân vùng đệ quy người ta có thể tìm thấy các cụm có kích thước một trăm nhưng quá trình này lại không hiệu quả.
Việc tìm ra các các nhóm giao nhau ở các mạng lớn cũng tốn kém và khó triển khai. Thay vào đó người ta có thể tìm các cụm địa phương xung quanh một số nút/đối tượng cần quan tâm. Ví dụ như tìm ra nhóm năm mươi người bạn thân cận của một cá nhân nào đó. Một phương pháp khác để làm điều này là sử dụng phân cụm phổ. Trong phân cụm phổ, người ta tạo ra một ma trận có các cột là một số nhỏ các vectơ phổ quan trọng nhất của ma trận kề (Mỗi mạng lưới có thể biểu diễn bằng một ma trận kề. Áp dụng phép biến đổi Singular Matrix Decomposition, ta thu được các vectơ phổ) và sau đó tìm vectơ tối thiểu chuẩn đơn vị trong không gian sinh bởi các vectơ phổ trên 1, 2.
Một cách khác, thay vì tìm vectơ tối thiểu chuẩn đơn vị trong không gian sinh bởi các vectơ phổ chúng ta có thể sử dụng phương pháp đi ngẫu nhiên: xuất phát từ một vài nút trong một cụm cục bộ, chúng ta đi theo các cạnh một cách ngẫu nhiên cho đến khi nào xác suất của nút hội tụ trong phạm vi cục bộ. Khi đó vectơ tối thiểu chuẩn đơn vị trong không gian sinh bởi các vectơ không hội tụ sẽ chỉ ra các cụm cục bộ.
Hướng thứ hai trong phân cụm là tìm ra các cấu trúc ẩn3,4. Giả sử bạn có hình ảnh của một số chữ cái, các chữ cái này có những bóng màu xám và kiểu font khác nhau. Nếu để phân cụm những hình ảnh trước hết chúng ta phân cụm chúng bằng chữ cái. Tuy nhiên cũng có thể phân cụm hình ảnh theo màu sắc hoặc theo phông chữ. Như vậy các chữ cái là cấu trúc chi phối của hình ảnh còn phông chữ và màu sắc (của các chữ cái) là các cấu trúc ẩn, yếu hơn và không tương quan với cấu trúc chi phối. Mạng lưới trong thế giới thực cũng vậy, chúng có cấu trúc chi phối và một số lớp cấu trúc ẩn. Làm thế nào để bạn tìm thấy cấu trúc ẩn trong một mạng xã hội?
Chọn một thuật toán phân cụm bạn thích và tìm cấu trúc chi phối, sau đó làm yếu đi cấu trúc chiếm ưu thế bằng cách loại bỏ ngẫu nhiên các cạnh trong mạng lưới. Sau đó lại áp dụng thuật toán phân cụm ban đầu và nó sẽ tìm đến các cấu trúc ẩn. Nếu bạn quay lại mạng lưới ban đầu và làm suy yếu cấu trúc ẩn (mới tìm ra) thì bạn sẽ tìm thấy cấu trúc chi phối với kết quả được cải thiện. Cứ lặp lại như vậy vài lần, chúng ta sẽ tìm ra cả cấu trúc chiếm chi phối lẫn cấu trúc ẩn một cách chi tiết hơn. Một số mạng lưới thực có nhiều cấu trúc ẩn có thể có ý nghĩa quan trọng.
Áp dụng kỹ thuật này vào dữ liệu Facebook của sinh viên Đại học Rice 5, các nhà nghiên cứu tìm ra cấu trúc chiếm chi phối và ba cấp độ cấu trúc ẩn. Cấu trúc chi phối là ký túc xá và cấp độ ẩn thứ nhất là năm học của sinh viên (năm nhất, năm hai…). Hai cấu trúc khác có tính phân nhóm cao, không tương quan với các cấu trúc trước đó nhưng chúng tôi chưa thể xác định đặc tính tương ứng của chúng; có thể là các môn thể thao hoặc những sở thích khác của sinh viên.
Học sâu (deep learning)
Máy học (“machine learning”) đã trở nên đặc biệt quan trọng trong những năm gần đây. Ban đầu mô hình chủ đạo (cho nhận diện hình ảnh) là Support Vector Machine, nhưng đến năm 2012 thì các tiến bộ của học sâu (“Deep Learning”) đã làm thay đổi cuộc chơi. Cho đến năm đó, tiến bộ trong cuộc thi phân loại hình ảnh phổ biến ImageNet ILSVRC 6,7 thường rất nhỏ (ImageNet có 1,2 triệu hình ảnh được phân loại trong 1.000 danh mục.)
Nhiệm vụ là dùng một tập hợp hình ảnh để huấn luyện cho các mô hình mạng nơron và dùng mô hình đó dự báo danh mục của các hình ảnh trong một tập hợp khác, gọi là tập kiểm tra (test). Trước năm 2012, tỷ lệ lỗi (phân loại sai) vào khoảng 25% và vào đúng năm đó, mô hình AlexNet giảm tỷ lệ lỗi xuống 15%, đây là một cải tiến thực sự lớn. Hai năm sau, GoogleNet giảm xuống còn 6,7%, năm 2015 ResNet giảm tiếp xuống còn 3,6%, nhỏ hơn cả tỷ lệ phân loại lỗi bằng mắt thường của con người (khoảng 5%). Những mô hình này là các mạng nơron sâu đã vượt qua khả năng tự nhiên của con người. Kể từ năm 2012, các mạng học sâu đã được áp dụng trong nhiều rất nhiều ứng dụng của chúng ta, và chúng hoạt động rất tốt mặc dù ít ai biết được tại sao chúng hoạt động tốt như vậy.
Một trong những vấn đề của bài toán học có giám sát là thiếu dữ liệu được dán nhãn. Ngược lại với nó là học không giám sát với dữ liệu ban đầu không được dán nhãn. Hướng này đã có những tiến bộ lớn gần đây. Thay vì huấn luyện để một mạng học sâu phân loại hình ảnh, người ta có thể huấn luyện cho chúng tái tạo hình ảnh. Như vậy các mạng nơron sẽ thể hiện tốt hơn nội hàm của hình ảnh, và còn đặt ra câu hỏi là những nơron trong mạng học cụ thể điều gì. Điều này đã làm gia tăng sự quan tâm vào hướng học không giám sát.
Tuy nhiên vẫn còn khá nhiều câu hỏi mở cho mạng nơron học sâu. Ví dụ như các nơron có học giống nhau không? Nếu chúng ta huấn luyện một mạng hai lần, mỗi lần với các giá trị khởi tạo ngẫu nhiên khác nhau thì các mạng vẫn học ra giống nhau hay tiến đến các trạng thái hoàn toàn khác nhau để phân loại hình ảnh8? Điều gì quyết định những gì một nơron sẽ học? Việc học của chúng theo thời gian như thế nào? Các nơron ở lớp thứ nhất hoặc thứ hai của mạng nơron tích chập (CNN) có học một cách độc lập với nội dung hình ảnh không? Khi huấn luyện một mạng học sâu nếu chúng ta gặp nhiều cực tiểu địa phương với cùng giá trị hàm Loss thì cực tiểu địa phương nào sẽ dự báo tổng quát tốt hơn? Một cách thực nghiệm cho thấy các cực tiểu địa phương trải rộng hơn có vẻ cho kết quả tốt hơn. Điều này có thể là do hàm sai số (thành phần của hàm Loss) áp dụng cho tập huấn luyện rất gần với hàm sai số thực. Do vậy nếu dữ liệu có thay đổi nhỏ sẽ không làm ảnh hưởng đến giá trị cực tiểu địa phương giống như các cực tiểu địa phương sâu.
Gần đây, các mạng sinh đối nghịch9 trở nên rất phổ biến. Ví dụ, nếu muốn tạo ra các hình ảnh giống như hình ảnh thật (gọi là ảnh sinh) chúng ta có thể training một mạng đối nghịch để mạng này phân biệt được ảnh thật và ảnh sinh. Sau đó chúng ta lại training cho mạng sinh để sao cho nó sinh ra các hình ảnh giống thật đến mức mạng đối nghịch không thể phân biệt được. Rồi lại lặp lại training cho mạng đối nghịch làm tốt hơn, cứ thế tiếp tục,… Bằng cách tương tác giữa hai mạng học sâu chúng ta có được những hình ảnh sinh ra giống hệt như hình ảnh thật. Tuy nhiên cần quan tâm đến vấn đề đạo đức trong việc sử dụng kỹ thuật này.
Một ứng dụng khác có thể là dịch thuật. Trước đây, người ta sử dụng những đoạn văn bản gốc và bản dịch tương ứng để huấn luyện một mạng lưới dịch. Nhưng nếu giả sử chúng ta không có đủ mẫu trong cả hai ngôn ngữ thì có thể sử dụng mạng đối nghịch như sau. Ví dụ cần dịch từ tiếng Anh sang tiếng Đức, trước tiên, chúng ta xây một mạng nơron dịch một câu tiếng Anh ra các từ tiếng Đức. Sau đó xây tiếp một mạng nơron đối nghịch để phân biệt giữa các từ tiếng Đức và câu tiếng Đức. Cuối cùng, chúng ta lấy các từ tiếng Đức đầu ra của mạng đầu tiên để xây một mạng nơron khác tạo ra các câu tiếng Anh và so sánh với câu gốc ban đầu. Huấn luyện cho cả ba mạng này cuối cùng sẽ tạo ra thiết bị dịch ra một câu tiếng Đức chứ không chỉ là từ tiếng Đức.
Có một số chủ đề nghiên cứu đáng chú ý khác. Ví dụ làm thế nào có thể “đánh lừa” một mạng học sâu bằng cách thay đổi một chi tiết nhỏ trong hình ảnh, đủ nhỏ để mắt người không phát hiện ra nhưng lại khiến cho mạng thay đổi cách phân loại hình ảnh 10. Chẳng hạn như hình ảnh một con mèo bị nhận dạng thành một chiếc xe hơi. Lý do có thể là tập hợp các hình ảnh của mèo dùng để huấn luyện lại khớp với đa tạp (“manifold”) có số chiều nhỏ hơn nhiều so với chiều của không gian kích hoạt. Do đó, nếu chúng ta di chuyển trong không gian kích hoạt theo hướng vuông góc với bề mặt của đa tạp thì mạng nơron học sâu có khả năng phân loại sai.
Cuối cùng thì các chương trình AI hiện nay không đọc được bản chất của một đối tượng, hiểu các chức năng của nó hoặc các khía cạnh quan trọng khác. Có thể là 40 năm nữa, chúng ta lại có một cuộc cách mạng thông tin khác có khả năng nhận dạng ra chức năng của vật thể hoặc chi tiết trên hình ảnh. Nếu điều này thành hiện thực thì khả năng ứng dụng của trí tuệ nhân tạo còn to lớn hơn nữa.
(Còn nữa)
Nguyễn Quang dịch
TÀI LIỆU THAM KHẢO
[1] Kun He, Yiwei Sun, David Bindel, John E. Hopcroft and Yixuan Li, “Detecting overlapping communities from local spectral subspaces,” in 15th IEEE International Conference on Data Mining (ICDM), Atlantic City, USA, 2015, pp. 769-774.
[2] Yixuan Li, Kun He, David Bindel and John E. Hopcroft. “Uncovering the small community structure in large networks,” in 24th International Conference on World Wide Web (WWW), Florence, Italy, 2015, pp. 658-668.
[3] Kun He, Sucheta Soundarajan, Xuezhi Cao, John E. Hopcroft and Menglong Huang, “Revealing multiple layers of hidden community structure in networks,” CoRR abs/1501.05700, 2015.
[4] Kun He, Yingru Li, Sucheta Soundarajan and John E. Hopcroft, “Hidden community detection in social networks,” Information Sciences, vol. 425, pp. 92-106, Jan. 2018.
[5] Alan Mislove, Bimal Viswanath, P. Krishna Gummadi, Peter Druschel, “You are who you know: inferring user profiles in online social networks,” in Proceedings of the 3rd International Conference on Web Search and Web Data Mining (WSDM), New York, NY, USA, 2010, pp. 251-260.
[6] Olga Russakovsky, Jia Deng, Hao Su, Jonathan Krause, Sanjeev Satheesh, Sean Ma, Zhiheng Huang, Andrej Karpathy, Aditya Khosla, Michael Bernstein, Alexander C. Berg and Fei-Fei Li, “ImageNet Large Scale Visual Recognition Challenge,” International Journal of Computer Vision, vol. 115, no. 3, pp. 211-252, April 2015.
[7] ImageNet Large Scale Visual Recognition Challenge (ILSVRC), [Online]. Available: http://www.image-net.org/challenges/LSVRC/.
[8] Yixuan Li, Jason Yosinski, Jeff Clune, Hod Lipson, and John E. Hopcroft, “Convergent learning: Do different neural networks learn the same representations? ” in ICLR, 2016.
[9] Ian J. Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron C. Courville, Yoshua Bengio, “Generative adversarial networks,” in Advances in Neural Information Processing Systems(NIPS). Montreal, Quebec, Canada, 2014, pp. 2672-2680.
[10] Anh Nguyen, Jason Yosinski, and Jeff Clune, “Deep neural networks are easily fooled: high confidence predictions for unrecognizable images,” in IEEE Conference on Computer Vision and Pattern Recognition (CVPR). 2015