Machine Learning thật thú vị (7): Tại sao Machine Learning vẫn chưa thể so sánh với bộ não con người? - mô hình DCGANs
Một trong những khả năng tuyệt vời nhất của con người chính là khả năng tưởng tượng. Có những người ta chưa gặp bao giờ, nhưng nếu ai đó đưa ta ảnh của nửa khuôn mặt người đó, ta hoàn toàn có thể dự đoán ra hình ảnh của cả khuôn mặt. Thậm chí, con người hoàn toàn có thể tưởng tượng ra toàn bộ một ...
Một trong những khả năng tuyệt vời nhất của con người chính là khả năng tưởng tượng. Có những người ta chưa gặp bao giờ, nhưng nếu ai đó đưa ta ảnh của nửa khuôn mặt người đó, ta hoàn toàn có thể dự đoán ra hình ảnh của cả khuôn mặt. Thậm chí, con người hoàn toàn có thể tưởng tượng ra toàn bộ một câu chuyện không có thật, hay hình dung về một câu chuyện mà ai đó kể cho chúng ta. Đó là common sense (trí thông minh cơ bản) mà bất kể ai trong chúng ta cũng có - theo Yann Lecun - tại sao bộ não học nhanh như vậy
Nhưng điều đó không/ chưa tồn tại trong bộ não của máy tính. Để nhận diện, phân tích bất cứ điều gì, máy tính cần hàng triệu dữ liệu, và khả năng dự đoán, chỉ gói gọn trong tập dữ liệu đó mà thôi. Và đó là lý do, một mô hình Deep Learning mới phát triển - mô hình sinh mẫu.
Hơn một năm trước, bài báo khoa học của Alec Radford đã thay đổi cách mọi người nghĩ về mô hình sinh mẫu trong học máy. Hệ thống mới được gọi là Deep Convolutional Generative Adversarial Networks (DCGANs - mình tạm dịch là mạng đối kháng sinh mẫu tích chập đa lớp).
Đối kháng (Adversarial): trong quá trình xây dựng mô hình có 2 mạng chạy đối lập nhau, cố gắng làm tốt hơn mạng còn lại. Sinh mẫu (Generative): tìm hiểu cách thức dữ liệu được hình thành, sau đó đặt câu hỏi: dựa vào giả định cách thức tạo ra dữ liệu, dữ liệu sẽ được phân vào nhóm nào?. Đối nghịch với sinh mẫu là Phân biệt (Discriminative): không quan tâm đến cách thức dữ liệu được tạo ra, chỉ phân loại dựa trên đầu vào dữ liệu. Tích chập (Convolutional): quá trình trích lọc đặc trưng dữ liệu thông qua cửa sổ trượt với trọng số không đổi
DCGANs đã giúp tạo ra những bức ảnh rất giống với thực tế bằng cách sử dụng tổ hợp 2 mạng nơron đa lớp đối kháng nhau. Tất cả những bức ảnh phòng ngủ dưới đây đều được vẽ lên bởi DCGAN: Những nhà nghiên cứu AI (trí thông minh nhân tạo) quan tâm tới generative model - mô hình sinh mẫu, bởi chúng dường như là cánh cửa tiếp theo để xây dựng hệ thống AI có sự hiểu biết về dữ liệu được tiếp nhận.
Chúng ta sẽ cùng nhau sử dụng mô hình sinh mẫu để làm điều gì đó tưởng chừng hơi điên khùng - tạo hình ảnh cho trò chơi điện tự 8-bit.
Mục đích của mô hình sinh mẫu
Tại sao các nhà nghiên cứu AI lại muốn xây dựng hệ thống để tạo ra hình ảnh không được rõ của phòng ngủ? Ý tưởng chính là: nếu bạn biết cách tạo ra bức ảnh, bạn phải hiểu về nó chứ.
Hãy nhìn vào bức ảnh sau: Ngay lập tức, bạn biết đây là hình ảnh của một chú chó - một loài vật có 4 chân và có đuôi. Nhưng với máy tính, hình ảnh chỉ là mạng lưới các con số đại diện cho màu sắc từng pixel. Máy tính không có khả năng hiểu rằng bức ảnh đại diện cho một khái niệm.
Nhưng hãy tưởng tượng, sau khi chúng ta chỉ ra cho máy tính hàng nghìn bức ảnh của chó, máy tính có khả năng tự tạo ra những bức ảnh mới với nhiều loài chó và góc độ khác nhau. Chúng ta thậm chí còn có thể yêu cầu nó tạo ra một bức hình cụ thể: "góc nhìn ngang của chó Becgie".
Nếu máy tính có thể làm điều đó, và bức ảnh tạo ra có đúng số chân, đuôi, tai, điều đó chứng tỏ máy tính biết phần nào bức ảnh là của con chó. Một cách nào đó, mô hình sinh mẫu tốt là bằng chứng của sự hiểu cơ bản của học máy - với trình độ đứa trẻ tập đi.
Đó là lý do tại sao các nhà khoa học lại rất phấn khích xây dựng mô hình sinh mẫu. Dường như có một cách để đào tạo máy tính mà không cần dạy chúng ý nghĩa của những khái niệm, và đó là một bước đi dài so với hệ thống hiện tại - học từ dữ liệu được gán nhãn trước bởi con người.
Nếu tất cả nghiên cứu này tạo ra chương trình tự động tạo ra ảnh loài chó, sau bao nhiêu năm nữa, chúng ta có thể có một cuốn lịch về các loài chó hoàn toàn được tạo bởi máy tính? Và nếu như chúng ta xây dựng chương trình có thể hiểu về loài chó, tại sao không hiểu về những điều khác nữa. Sao không phải là một chương trình tạo ra kho ảnh vô hạn mọi người bắt tay nhau? Tôi tin là ai đó sẽ trả tiền cho kho ảnh: Dựa vào tốc độ phát triển của mô hình sinh mẫu trong vài năm vừa qua, ai biết được điều gì sẽ chờ đợi trong 5 hay 10 năm nữa. Chuyện gì sẽ xảy ra nếu ai đó phát minh ra hệ thống tạo ra một bộ phim hoàn chỉnh? hay âm nhạc? hay trò chơi điện tử?
Nếu bạn nghĩ về 20-30 năm nữa, bạn có thể tưởng tượng một thế giới mà 100% hoạt động giải trí đều được tạo ra nhờ máy tính.
Dịch: Rồi một ngày, chúng ta nói về những bộ phim do con người thủ vai của những ngày xưa cũ; trong khi đang theo dõi những bộ phim máy tính tạo ra dựa trên nhu cầu.
Ngành trò chơi điện tử là lĩnh vực đầu tiên bắt đầu nghiêm túc thử nghiệm với AI để tạo ra nội dung. Chúng ta vẫn đang ở thuở sơ khai của mô hình mẫu sinh dựa trên học máy, và tính ứng dụng thực tế vẫn khá hẹp. Tuy thế, vẫn rất thú vị khi chúng ta tìm hiểu về nó. Hãy cùng nhau bắt đầu thôi nào!
DCGANs hoạt động như thế nào?
Để tạo ra DCGAN, chúng ta cần tạo ra 2 mạng nơron đa lớp, cho chúng cạnh tranh với nhau, và cố gắng làm tốt hơn đối thủ. Trong quá trình đó, cả 2 mạng sẽ cùng trở lên tốt hơn.
Tưởng tượng rằng mạng nơron đa lớp thứ 1 là một viên cảnh sát được đào tạo để phát hiện tiền giả. Nhiệm vụ của cảnh sát là nhìn vào bức tranh và nói cho chúng ta biết bức ảnh chứa tiền thật hay không.
Vì mục tiêu năm ở trong ảnh, chúng ta sử dung Convolutional Neural Network (CNN). Ý tưởng chính là mạng nơron nhận vào hình ảnh, xử lý qua nhiều lớp ẩn và lấy ra đặc trưng phức tạp từ ảnh, rồi trả ra một giá trị. Trong trường hợp này, giá trị biểu thị liệu ảnh có chứa tiền thật hay không.
Mạng thứ 1 có tên gọi là Discriminator - người phân biệt: Ta lại tưởng tượng mạng thứ 2 là kẻ lừa đảo, cố gắng học cách tạo tiền giả. Với mạng thứ 2, ta đảo ngược các lớp ẩn ở mạng thứ nhất để chương trình chạy ngược. Mạng này nhận một chuỗi các giá trị và trả kết quả là một bức ảnh. Mạng thứ 2 có tên gọi là Generator - người sinh mẫu:
Ở vòng thứ 1, người sinh mẫu - kẻ lừa đảo tạo ra đồng tiền chẳng giống tiền, bởi vì nó không có chút ý tưởng nào về đồng tiền thật. Nhưng bởi vì giờ đây, người phân biệt - viên cảnh sát cũng rất kém trong việc nhận diện tiền thật, nên nó cũng không nhận ra sự sai khác. Lúc này, chúng ta can thiệp và nói với viên cảnh sát rằng tờ tiền là giả. Chúng ta đưa ra đồng tiền thật và yêu cầu nó tìm điểm khác biệt. Cảnh sát cố gắng tìm chi tiết để phân biệt 2 tờ tiền.
Ví dụ: cảnh sát có thể chú ý rằng tiền thật có mặt người và tiền giả không. Sử dụng kiến thức này, cảnh sát biết phân biệt tiền giả, và làm tốt công việc hơn: Ở vòng 2, kẻ lừa đảo biết rằng tờ tiền ban đầu đã bị từ chối, và biết rằng cảnh sát tìm kiếm khuôn mặt trên bức ảnh, cách tốt nhất để lừa viên cảnh sát là tạo khuôn mặt trên bức ảnh. Tờ tiền giả lại được chấp nhận lần nữa! Cảnh sát lại phải nhìn vào tờ tiền thật để tìm ra điểm nhận dạng khác biệt so với tiền giả.
Quá trình này lặp lại liên tục hàng nghìn lần cho tới khi cả viên cảnh sát và kẻ lừa đảo đều trở thành chuyên gia. Cuối cùng, kẻ lừa đảo tạo ra tiền giả giống như thật, và cảnh sát cũng rất giỏi tìm ra những lỗi dù là bé nhất.
Đến thời điểm này, cả cảnh sát và kẻ lừa đảo đều đã được đào tạo đủ đến nỗi mà con người cũng khó phát hiện ra tờ tiền giả từ máy tính.
Mọi người có thấy quá trình này giống quá trình mà loài người đã trải qua đế tiến hóa không? Mình thì thấy nó giống với thuyết tiến hóa của Darwin, khi những cá thể yếu kém bị loại bỏ, những cá thể mạnh tiếp tục phát triển. Tương tự, trong mạng sinh mẫu, những nhận diện chuẩn xác được giữ lại, những phân biệt kém không được chấp nhận. Con người đã trải qua hàng chục ngàn năm để được như bây giờ. Thế mới thấy, sự tiến hóa của máy tính nhanh đến mức nào!!!
Áp dụng vào trò chơi điện tử
Giờ chúng ta đã biết cách thức DCGANs hoạt động, hãy xem cách chúng ta dùng nó để tạo ra trò chơi điện tử thế hệ 1980s.
Ý tưởng là chúng ta cố gắng tạo ra ảnh chụp màn hình của trò chơi điện tử tưởng tượng, rồi sao chép từng bits trong những ảnh chụp này để tạo ra những trò chơi theo phong cách cổ xưa. Vì trò chơi máy tạo chưa bao giờ tồn tại, nó có vẻ sẽ không bị coi là ăn cắp bản quyền