Của bài toán ngược và các thuật toán máy học năm 2024

Không lâu sau sự ra đời của chiếc máy tính Alan Turing, ngành khoa học về trí tuệ nhân tạo cũng bắt đầu phát triển. Cố gắng đầu tiên để tạo ra trí tuệ nhân tạo là sự ra đời của mô hình perceptron. Trong mô hình này, một tín hiệu đầu ra đơn giản là sự tổng hợp của các tín hiệu đầu vào. Theo thời gian, mô hình perceptron phát triển thành mạng thần kinh nhân tạo (artificial neural network). Lúc này, các nhà khoa học về não bộ đã khám phá ra bộ não người được tạo ra bởi một mạng lưới các tế bào thần kinh (gọi là nơ-ron) xếp thành từng lớp, theo đó mỗi nơ-ron của lớp sau là sự tổng hợp của các nơ-ron lớp trước. Điều đặc biệt là mỗi liên kết giữa 2 nơ-ron bất kì có khả năng truyền dẫn tín hiệu khác nhau (theo ngôn ngữ toán học thì có trọng số khác nhau), kết quả là tín hiệu đầu vào chỉ cần khác nhau một chút cũng sẽ dẫn tới tín hiệu đầu ra hoàn toàn khác nhau. Mạng nơ-ron nhân tạo được tạo ra dựa trên cảm hứng từ chính bộ não của chúng ta. Nhưng bởi vì chúng ta học hỏi liên tục theo thời gian, mạng nơ-ron trong bộ não cũng sẽ phải cập nhật liên tục. Câu hỏi mấu chốt là xét về bản chất thì chúng ta, cụ thể là mạng nơ-ron trong bộ não, học như thế nào? Đây là câu hỏi quan trọng nhất, mà cũng là câu hỏi duy nhất, để tạo ra trí tuệ nhân tạo đích thực.

Hinton là nghiên cứu sinh hậu tiến sĩ và sau đó là giáo sư tại đại học Carnegie Mellon trong giai đoạn 1982-1987, với chuyên ngành về trí tuệ nhân tạo. Trong suốt chiều dài lịch sử của ngành này, có những thời kì mà mọi người đều háo hức khi nói về về một tương lai xán lạn, mà khi đó trí tuệ nhân tạo có thể giải quyết được mọi vấn đề của thế giới. Đó là những mùa xuân của ngành trí tuệ nhân tạo (AI spring). Và thường thì theo sau luôn là mùa đông u tối (AI winter), khi mà mọi người chợt vỡ mộng vì nhận ra cái được quảng cáo là trí tuệ nhân tạo kia chỉ là một vài thuật toán có tầm sử dụng hạn hẹp. Mùa xuân đầu tiên của ngành này là những năm 1950, khi mô hình perceptron ra đời và Alan Turing vừa mới giới thiệu về bài kiểm tra Turing nổi tiếng. Nhưng một mô hình đơn giản chỉ với vài phép cộng tỏ ra không phải là sự lựa chọn tối ưu cho các bài toán phức tạp, và ngành trí tuệ nhân tạo bước vào mùa đông đầu tiên. Nguồn vốn dành cho nghiên cứu bị cắt giảm, nhưng không hoàn toàn. Cuối thập niên 1970, ngành trí tuệ nhân tạo bắt đầu trỗi dậy với những thuật toán hiệu quả hơn đi cùng với mạng nơ-ron nhân tạo. Một vài gợi ý về cách để mạng nơ-ron nhân tạo có thể tự học đã bắt đầu xuất hiện. Trưởng thành với nghề nghiên cứu trong thời kì này, Hinton tỏ ra phấn khích trước cơ hội tạo ra những cỗ máy biết “tự học” đầu tiên.

Năm 1986, Hinton và các đồng nghiệp cùng nhau xuất bài một bài báo nghiên cứu khoa học, giới thiệu thuật toán lan truyền ngược (backpropagation) dành cho mạng nơ-ron nhân tạo. Để hiểu thuật toán này thì chúng ta cần biết qua về một khái niệm gọi là các thuật toán tự học (machine learning). Trong cuộc sống, có rất nhiều trường hợp chúng ta muốn dự đoán tương lai, dựa vào những dữ liệu trong quá khứ. Đa phần các dữ liệu có sẵn này tuân theo một khuôn mẫu nào đó. Ví dụ để tính thể tích của một quả bóng hình cầu, chúng ta có hai cách: 1) bỏ quả bóng vào một chậu nước đầy, và tính thể tích của lượng nước tràn ra ngoài; hoặc 2), đo đường kính của quả bóng và áp dụng công thức tính thể tích khối cầu có sẵn trong sách giáo khoa. Chúng ta sẽ thích cách nào đơn? Cách thứ 2, vì nó đơn giản và tiết kiệm thời gian.

Có khi nào chúng ta thử đặt câu hỏi làm sao có thể tin tưởng được công thức này? Rất đơn giản, hãy lấy vài quả bóng khác nhau và làm theo cách đầu tiên để có được thể tích của các quả bóng một cách chính xác. Cẩn thận ghi lại các số liệu. Sau đó dùng thước kẹp để đo đường kính của các quả bóng và áp dụng công thức có sẵn. Ta sẽ thấy hai bảng kết quả này hoàn toàn giống nhau. Đó là cách mà tri thức khoa học ra đời: một công thức được gọi là chính xác nếu nó đúng cho những dữ liệu quan sát được trong quá khứ (kèm theo những điều kiện nhất định, ví dụ trường hợp này là quả bóng không được thấm nước). Sau khi đã xác minh tính đúng đắn của công thức tính thể tích khối cầu, trong tương lai ta chỉ cần áp dụng lại mà thôi.

Bây giờ hãy thử khám phá “khoa học” thêm một chút nữa. Chúng ta sẽ tò mò đặt câu hỏi: các nhà khoa học nghĩ ra công thức tính thể tích bằng cách nào? Nếu bạn đặt ra câu hỏi này, thì bạn đã chạm tay vào nền tảng của ngành khoa học, và bạn sẽ trở thành nhà khoa học thực thụ nếu tìm cách trả lời câu hỏi này. Trong trường hợp đi tìm công thức tính thể tích khối cầu, đáp án cho câu hỏi trên là không biết! Không ai biết bằng cách nào các nhà khoa học có thể nghĩ ra được công thức kia, và nó đã có sẵn từ thời cổ đại Hy Lạp (hoặc cổ đại Ai Cập). Nhưng có những công thức khác mà ta có thể có được câu trả lời cho việc nó được nghĩ ra bằng cách nào. Lấy một ví dụ sau đây, trước khi chúng ta quay trở lại các thuật toán tự học Machine Learning.

Isaac Newton là con trai của một quý tộc người Anh vào thế kỷ 17. Ngoài niềm đam mê chính là thuật giả kim (cố gắng biến chì thành vàng), ông còn có một vài niềm đam mê phụ khác, trong số đó là nghiên cứu khoa học. Lúc trẻ, ông thường dùng kính viễn vọng quan sát bầu trời và nhận ra trái đất thì quay vòng quanh mặt trời, và mặt trăng thì quay vòng quanh trái đất. Ông mới đặt ra câu hỏi vì sao lại như vậy. Một ngày đẹp trời, khi đang ngồi dưới gốc cây táo thì ông bị một trái táo rơi vào đầu. Ông đặt ngay câu hỏi vì sao quả táo rơi xuống đất mà không bay ngược lên trời. Chỉ có một cách giải thích duy nhất là quả táo bị trái đất hút vào. Đôi khi vài thiên thạch cũng rơi vào bầu khí quyển thành sao băng, vậy là chúng cũng bị trái đất hút vào. Suy rộng ra thì có thể là mặt trời đang hút trái đất, và trái đất đang hút mặt trăng. Vậy tại sao mặt trăng vẫn chưa rơi vào trái đất? Lúc này ông mới để ý là khi chạy xe ngựa, đôi khi thắng gấp thì xe ngựa sẽ cua thành một vòng tròn. Vậy lý do mặt trăng chưa rơi vào trái đất mà bay vòng vòng, chỉ có thể là do mặt trăng đang bay quá nhanh và bị trái đất hút vào (giống như việc kéo chiếc xe ngựa đang chạy nhanh lại). Kết quả là định luật vạn vật hấp dẫn và các nguyên lý Newton được tạo ra, ví dụ một vật thể đang chuyển động sẽ chuyển động mãi mãi nếu không có gì tác động lên chúng. Và chúng ta cũng đã biết được bằng cách nào mà Newton có thể nghĩ ra định luật vạn vật hấp dẫn: ông dựa vào những kiến thức và dữ kiện có sẵn, dùng trí thông minh của mình để xâu chuỗi chúng lại với nhau một cách hoàn chỉnh.

Đến đây thì chúng ta thấy con đường tạo ra những công thức hữu dụng gian khổ ra sao. Tất cả phụ thuộc hoàn toàn vào trí thông minh của các nhà khoa học, cộng thêm một chút may mắn. Sẽ như thế nào nếu dữ liệu thu được quá nhiều và không thể nào dẫn ra được một công thức chung? Ngành trí tuệ nhân tạo có một bài toán nhập môn là nhận dạng chữ số viết tay. Bài toán này đơn giản là yêu cầu máy tính xác định một chữ số được viết ra trên giấy là chữ số gì. Dữ liệu có sẵn là hình chụp của khoảng 60000 chữ số viết tay, và được con người dán nhãn (label) cho mỗi hình. Chúng ta có khả năng bị cám dỗ với suy nghĩ bài toán này khá đơn giản, vì trung bình một người trưởng thành đoán đúng 95% chữ số viết tay (tức là không nhận ra 5 chữ số trong tổng số 100 chữ số viết ra). Nhìn chung, ta có thể dễ dàng nhận ra một chữ số, nhưng lại không có cách nào giải thích (tức ra đưa ra một công thức chung) để nhận dạng các chữ số. Vì sao? Vì mỗi người có một cách viết khác nhau, vì vậy một quy tắc đơn giản chẳng hạn số 0 là hình tròn, còn số 6 là hình tròn có thêm nét móc ở trên không thể nào hiệu quả được. Trong ngôn ngữ tin học thì ta nói là không thể lập trình máy tính để hoạt động tốt với bài toán này. Cộng thêm nhiều người viết chữ rất xấu! Xấu đến nỗi không thể nhận ra, và chúng ta phải đoán thử là chữ số gì. Để ý xem các giáo viên tiểu học phải vất vả chấm bài ra sao.

Chúng ta có thể sẽ cảm thấy bị sốc khi biết rằng các nhà khoa học không có cách nào tìm ra được một công thức để nhận dạng chữ số viết tay, nhưng sự thật là bởi vì nó quá phức tạp. Rõ ràng có khuôn mẫu chung cho các chữ số nên bằng mắt thường chúng ta mới biết đâu là số 1, số 2, nhưng số khuôn mẫu quá lớn và quá phức tạp để có thể mô tả được. Các thuật toán tự học Machine Learning ra đời để giải quyết vấn đề này. Một mô hình Machine Learning sẽ nhận đầu vào là các hình chụp chữ số viết tay và dự đoán đó là số gì. Sau đó nó so sánh kết quả dự đoán với nhãn gốc của bức hình đó, nếu không trùng nhau thì sẽ học cách làm giảm sai số xuống thấp nhất có thể. Kết quả sau khi huấn luyện xong thì mô hình Machine Learning sẽ là sự xấp xỉ của công thức nhận dạng chữ số viết tay. Tất cả các thuật toán tự học Machine Learning đều hoạt động dựa trên nguyên lý cơ bản này.

Nhiều thuật toán tự học đã ra đời hơn một thế kỷ và được áp dụng vào các lĩnh vực khác nhau, nhưng khi nhận dạng chữ viết tay thì đạt được độ chính xác thấp. Tại sao? Quay trở lại bài toán tính thể tích quả bóng, cái mà chúng ta phải đưa ra là đường kính của quả bóng để nhận về kết quả là thể tích của nó. Bằng cách nào mà ngay từ đầu chúng ta biết là nên dùng đường kính của quả bóng mà không phải là những thứ khác đặc trưng hơn, ví dụ màu sắc hay độ cứng của quả bóng chẳng hạn? Tại vì đơn giản là chúng ta thấy một khối cầu thì có vẻ “tròn tròn”, mà cái gì hình tròn thì đường kính (và chu vi) là đặc trưng cơ bản nhất để mô tả. Nếu chúng ta thay thế công thức tính thể tích bằng một mô hình machine learning thì ta phải đưa vào giá trị đặc trưng là đường kính và nhận được tại ngõ ra thể tích của khối cầu (mô hình Machine Learning sau khi được huấn luyện chính là đại diện cho một công thức). Ta không may mắn như vậy với bài toán nhận dạng chữ số viết tay: số 1 có thể là một nét sổ, mà cũng có thể là nét xiên cộng nét sổ, hoặc là có thêm nét ngang ở dưới; số 7 thì hao hao giống số 1 nhưng thay vì nét xiên thì là nét ngang ở trên, nối liền với nét xiên ở giữa. Tóm lại là có quá nhiều đặc điểm đóng góp vào việc nhận dạng chữ số viết tay, dẫn tới kết quả là ta không biết nên chọn đặc điểm nào để đưa vào mô hình Machine Learning. Các thuật toán tự học mà không phải là mạng nơ-ron nhân tạo thất bại ở khâu này.

Mạng nơ-ron nhân tạo có một cách tiếp cận khác: thay thế luôn khâu chọn đặc trưng vốn được làm bởi con người. Với mỗi hình chụp chữ số viết tay, giả sử hình chụp này có 28 điểm ảnh chiều dọc và 28 điểm ảnh chiều ngang, vậy sẽ có tổng cộng 784 điểm ảnh (pixel). Mỗi điểm ảnh sẽ kết nối vào một nơ-ron trong mạng nơ-ron nhân tạo. 784 nơ-ron này lại kết nối với hàng ngàn nơ-ron của lớp tiếp theo, cứ như vậy cho tới lớp sau cùng để dự đoán một trong 10 chữ số. Cho tới trước thời của Hinton thì đáng tiếc là mạng nơ-ron vẫn còn thô sơ và chưa có khả năng tự học. Thuật toán lan truyền ngược backpropagation của Hinton và các đồng nghiệp vào năm 1986 trang bị cho mạng nơ-ron khả năng này bằng cách lan truyền ngược lỗi dự đoán sai ở lớp nơ-ron cuối cùng về lớp trước đó, và cứ như vậy cho tới khi tất cả các nơ-ron nhận ra lỗi sai và điều chỉnh để dự đoán tốt hơn ở lần tiếp theo. Mạng nơ-ron tự điều chỉnh ở cấp vi mô nên chúng ta nói nó có khả năng tự học rất nhanh. Như vậy thuật toán của Hinton đã đặt viên gạch cuối cùng còn thiếu sót vào nền tảng lý thuyết của mạng nơ-ron nhân tạo. Thuật toán này quan trọng tới mức ngày nay, tất cả mọi sinh viên theo đuổi ngành trí tuệ nhân tạo đều bắt buộc phải hiểu rõ nó ở những tuần đầu tiên. Và với sự hoàn chỉnh của mạng nơ-ron nhân tạo, chỉ còn là vấn đề thời gian trước khi nó trở thành động lực chính của làn sóng trí tuệ nhân tạo tiếp theo.

Nhưng thời gian lại là thứ quý giá nhất đối với sự quan tâm của công chúng. Cuối năm 1986, niềm tin của công chúng vào trí tuệ nhân tạo một lần nữa cạn kiệt. Mùa đông lần này thật sự tàn khốc: toàn bộ các quỹ nghiên cứu bị cắt giảm, và các công ty coi trí tuệ nhân tạo là trò lừa đảo. Rất nhiều sinh viên đã phải che giấu việc từng học ngành này và đổi thành kinh nghiệm lập trình thuật toán cao cấp chẳng hạn để có thể tìm việc. Hinton từ bỏ việc nghiên cứu mạng nơ-ron ở Mỹ và chuyển sang làm giáo sư toán tại Anh. Chỉ còn một số ít các nhà khoa học vẫn còn theo đuổi đam mê, trong số đó có học trò của Hinton là LeCun, và học trò của LeCun sau này là Bengio. LeCun là người sau này sẽ tạo ra mạng tích chập Convolutional nets có ý nghĩa quyết định trong nhận dạng hình ảnh. Một nhà khoa học châu Âu khác sẽ phát minh ra cách mà mạng nơ-ron nhân tạo có bộ nhớ, và Bengio sẽ dùng phương pháp này để thúc đẩy việc nhận dạng giọng nói và ngôn ngữ. Tất cả họ đều hoạt động trong bóng tối hơn 20 năm tiếp theo.