Gần đây tôi đọc được rằng một mạng thần kinh tái phát có thể xấp xỉ bất kỳ thuật toán nào.
Vì vậy, câu hỏi của tôi là: điều này chính xác có nghĩa là gì và bạn có thể cho tôi một tài liệu tham khảo nơi điều này được chứng minh?
Gần đây tôi đọc được rằng một mạng thần kinh tái phát có thể xấp xỉ bất kỳ thuật toán nào.
Vì vậy, câu hỏi của tôi là: điều này chính xác có nghĩa là gì và bạn có thể cho tôi một tài liệu tham khảo nơi điều này được chứng minh?
Câu trả lời:
Lý lịch
Trước tiên chúng ta phải đi qua một số khái niệm từ lý thuyết tính toán. Một thuật toán là một thủ tục để tính toán một hàm. Với đầu vào, thuật toán phải tạo ra đầu ra chính xác trong một số bước hữu hạn và sau đó chấm dứt. Để nói rằng một hàm là tính toán có nghĩa là tồn tại một thuật toán để tính toán nó. Trong số các tập hợp vô hạn của tất cả các hàm, hầu hết không tính toán được. Máy Turing là một mô hình toán học chính thức hóa khái niệm tính toán. Các mô hình tương đương khác tồn tại, nhưng máy Turing là 'mô hình tham chiếu' tiêu chuẩn. Theo luận án Church-Turing, mọi thuật toán đều có thể được thực hiện bởi máy Turing và tất cả các hàm tính toán có thể được tính toán như vậy. Bất kỳ trường hợp cụ thể nào của máy Turing chỉ tính một chức năng cụ thể. Nhưng, tồn tại một loại máy Turing đặc biệt gọi là máy Turing phổ dụng có thể mô phỏng bất kỳ máy Turing nào khác cho bất kỳ đầu vào nào. Họ làm điều này bằng cách lấy một mô tả của máy được mô phỏng (và đầu vào của nó) như là một phần của đầu vào của chính họ. Do đó, bất kỳ trường hợp cụ thể nào của máy Universal Turing đều có thể tính toán bất kỳ hàm tính toán nào (nghĩa là có thể thực hiện bất kỳ thuật toán nào). Bất kỳ hệ thống nào chia sẻ khả năng này đều được gọi là Turing hoàn thành. Một cách để chứng minh rằng một hệ thống hoàn thành Turing là cho thấy rằng nó có thể mô phỏng một máy Turing phổ dụng. Nhiều hệ thống đã được chứng minh là hoàn thành Turing (ví dụ: hầu hết các ngôn ngữ lập trình, tự động tế bào nhất định và cơ học lượng tử ).
Mạng thần kinh tái phát
Bài viết sau đây cho thấy, đối với bất kỳ chức năng tính toán nào, tồn tại một mạng nơ ron tái phát hữu hạn (RNN) có thể tính toán nó. Hơn nữa, tồn tại các RNN hữu hạn đã hoàn thành Turing và do đó có thể thực hiện bất kỳ thuật toán nào.
Siegelmann và Sontag (1992) . Về sức mạnh tính toán của mạng lưới thần kinh
Họ sử dụng các mạng chứa một số hữu hạn các đơn vị được kết nối thường xuyên, nhận các đầu vào bên ngoài tại mỗi thời điểm. Trạng thái của mỗi đơn vị được tính bằng tổng trọng số của các đầu vào của nó (cộng với độ lệch), chạy qua hàm kích hoạt phi tuyến. Hàm kích hoạt là một hàm tuyến tính bão hòa, là một xấp xỉ tuyến tính gần đúng của một sigmoid. Các trọng số và thành kiến là cố định, do đó không có học tập xảy ra.
Mạng thực hiện ánh xạ từ chuỗi đầu vào nhị phân sang chuỗi đầu ra nhị phân. Có hai đầu vào bên ngoài vào mạng, được cung cấp cho tất cả các đơn vị: 'dòng dữ liệu' và 'dòng xác thực'. Dòng dữ liệu chứa chuỗi đầu vào của số 0 và số 0, sau đó bằng 0 sau khi chuỗi đầu vào kết thúc. Dòng xác nhận cho phép mạng biết khi nào chuỗi đầu vào đang xảy ra. Nó chứa một trong khoảng thời gian của chuỗi đầu vào, sau đó là 0 sau khi kết thúc. Một đơn vị được coi là "đơn vị đầu ra". Nó xuất các số không cho một số độ trễ tùy ý, sau đó là chuỗi đầu ra của các số 0 và số 0, sau đó là 0 sau khi chuỗi đầu ra kết thúc. Một đơn vị khác được coi là "đơn vị xác nhận", cho chúng tôi biết khi nào chuỗi đầu ra đang diễn ra.
Mặc dù các RNN này ánh xạ các chuỗi đầu vào nhị phân thành các chuỗi đầu ra nhị phân, chúng ta có thể quan tâm đến các hàm được xác định trên các đối tượng toán học khác (các loại số, vectơ, hình ảnh, đồ thị, v.v.) khác. Nhưng, đối với bất kỳ chức năng tính toán, các loại khác của các đối tượng có thể được mã hóa như chuỗi nhị phân (ví dụ như nhìn thấy ở đây cho một mô tả về mã hóa các đối tượng khác sử dụng số tự nhiên, có thể lần lượt được biểu diễn ở dạng nhị phân).
Kết quả
Chúng chỉ ra rằng, đối với mọi hàm tính toán, tồn tại một RNN hữu hạn (có dạng được mô tả ở trên) có thể tính toán nó. Họ làm điều này bằng cách cho thấy rằng có thể sử dụng RNN để mô phỏng rõ ràng một máy tự động đẩy xuống với hai ngăn xếp. Đây là một mô hình khác tương đương với máy tính Turing. Bất kỳ chức năng tính toán nào cũng có thể được tính toán bằng máy Turing. Bất kỳ máy Turing nào cũng có thể được mô phỏng bằng máy tự động đẩy xuống với hai ngăn xếp. Bất kỳ máy tự động đẩy xuống nào có hai ngăn xếp đều có thể được mô phỏng bởi RNN. Do đó, bất kỳ hàm tính toán nào cũng có thể được tính bằng RNN. Hơn nữa, vì một số máy Turing là phổ quát, các RNN mô phỏng chúng đã hoàn thành Turing và do đó có thể thực hiện bất kỳ thuật toán nào. Cụ thể, họ cho thấy tồn tại các RNN hoàn chỉnh Turing với 1058 đơn vị hoặc ít hơn.
Hậu quả khác
Một kết quả thú vị của kết quả mô phỏng là một số câu hỏi nhất định về hành vi của RNN là không thể giải được. Điều này có nghĩa là không tồn tại thuật toán có thể trả lời chúng cho các RNN tùy ý (mặc dù chúng có thể trả lời được trong trường hợp RNN cụ thể ). Ví dụ, câu hỏi liệu một đơn vị nhất định có nhận được giá trị 0 hay không là không thể giải được; Nếu một người có thể trả lời câu hỏi này nói chung, có thể giải quyết vấn đề tạm dừng cho các máy Turing, điều không thể giải quyết được.
Khả năng tính toán
Trong bài báo trên, tất cả các tham số và trạng thái mạng là số hữu tỷ. Điều này rất quan trọng vì nó hạn chế sức mạnh của RNN và làm cho các mạng kết quả trở nên thực tế hơn. Lý do là các số hữu tỷ là các số tính toán , có nghĩa là tồn tại một thuật toán để tính toán chúng cho độ chính xác tùy ý. Hầu hết các số thực là không thể tính toán được và do đó không thể truy cập được - ngay cả cỗ máy Turing mạnh nhất cũng không thể đại diện cho chúng, và nhiều người nghi ngờ rằng chúng thậm chí có thể được đại diện trong thế giới vật lý. Khi chúng tôi xử lý 'số thực' trên máy tính kỹ thuật số, chúng tôi sẽ truy cập vào một tập hợp con nhỏ hơn (ví dụ: số dấu phẩy động 64 bit ). Đại diện cho số thực tùy ý sẽ yêu cầu thông tin vô hạn.
Bài báo nói rằng việc cho phép mạng truy cập vào các số thực sẽ giúp tăng sức mạnh tính toán hơn nữa, vượt ra ngoài các máy Turing. Siegelmann đã viết một số bài báo khác khám phá khả năng 'siêu Turing' này. Tuy nhiên, điều quan trọng cần lưu ý rằng đây là những mô hình toán học và kết quả không có nghĩa là một cỗ máy như vậy thực sự có thể tồn tại trong thế giới vật lý. Có nhiều lý do tốt để nghĩ rằng nó không thể, mặc dù đó là một câu hỏi mở.
Tôi nghĩ rằng đây là những gì bạn đang tìm kiếm. Anh chàng này đã chứng minh rằng một mạng nhiều lớp, hoặc thậm chí là một mạng feedforward có thể xấp xỉ bất kỳ chức năng nào, miễn là mạng có đủ các đơn vị ẩn.
Hornik, K. (1991). Khả năng gần đúng của các mạng feedforward đa lớp. Mạng lưới thần kinh, 4 (2), 251-257.