Mạng lưới thần kinh có thể được sử dụng để đưa ra các thuật toán?


9

Sau những thành công mới hơn và mới hơn của mạng lưới thần kinh khi chơi các trò chơi cờ bàn, người ta cảm thấy rằng mục tiêu tiếp theo chúng ta đặt ra có thể hữu ích hơn là đánh bại con người trong Starcraft. Chính xác hơn, tôi tự hỏi liệu

Mạng lưới thần kinh có thể được đào tạo để giải quyết các vấn đề thuật toán cổ điển?

Ở đây tôi có nghĩa là ví dụ mạng sẽ nhận được một đồ thị đầu vào với các cạnh có trọng số, và hai đỉnh st chỉ định, và chúng tôi hỏi nó để tìm một ngắn nhất s t con đường càng nhanh càng tốt. Sau đó, tôi đoán mạng lưới thần kinh sẽ khám phá và tự đào tạo để sử dụng Dijkstra hoặc một cái gì đó tương tự.Gstst

TC0TC0NPTC0

Tất nhiên, trích xuất thuật toán là một câu hỏi hoàn toàn khác. Tôi nghi ngờ các chuyên gia biết làm thế nào để làm điều đó, nhưng thảo luận về nó không phải là chủ đề của câu hỏi này.

Đã thêm hai ngày sau: Sau khi xem câu trả lời, hãy để tôi chỉ định rằng nếu bạn trả lời theo cách phủ định, thì tôi muốn biết

Tại sao chơi cờ dễ hơn Dijkstra hay Graphisomorphism?


Bình luận không dành cho thảo luận mở rộng; cuộc trò chuyện này đã được chuyển sang trò chuyện .
Lev Reyzin

Câu trả lời:


2

Theo blog này của Reza Zadeh , việc đào tạo một mạng lưới thần kinh để tạo ra đầu ra chính xác ngay cả đối với chỉ hai phần ba các ví dụ đào tạo là khó tính toán:

Thật vậy, vào năm 1988 J. Stephen Judd cho thấy vấn đề sau đây là NP-hard:

Với một mạng nơ ron chung và một tập hợp các ví dụ đào tạo, liệu có tồn tại một tập các trọng số cạnh cho mạng để mạng tạo ra đầu ra chính xác cho tất cả các ví dụ đào tạo không?

Judd cũng chỉ ra rằng vấn đề vẫn là NP-hard ngay cả khi nó chỉ yêu cầu một mạng tạo ra đầu ra chính xác cho chỉ hai phần ba các ví dụ đào tạo, ngụ ý rằng ngay cả việc đào tạo một mạng lưới thần kinh thực sự rất khó khăn trong trường hợp xấu nhất. Vào năm 1993, Blum và Rivest làm cho tin tức trở nên tồi tệ hơn: ngay cả một mạng đơn giản chỉ có hai lớp và ba nút là NP-khó đào tạo!


1
Tôi thực sự không thấy làm thế nào điều này trả lời câu hỏi của tôi.
domotorp

Trước khi bạn chỉnh sửa bài đăng, câu hỏi đầu tiên của bạn là về đào tạo NN. Vì bạn đã thêm thẻ CC, câu trả lời của tôi cho thấy thật khó để đào tạo NN bất kể vấn đề về Thuật toán của bạn là ở P hay NPC
Mohammad Al-Turkistany

Tôi xin lỗi nếu tôi mơ hồ.
domotorp

0

Đây không phải là một câu trả lời đầy đủ và tôi không có nhiều kinh nghiệm trong mạng lưới thần kinh, nhưng có lẽ hữu ích.

NN về cơ bản được đưa ra một đầu vào và tạo ra một phản ứng. Sau đó, họ được đào tạo thông qua thực hành để tạo ra các phản hồi tương tự trên các đầu vào "tương tự" trong miền, ví dụ, cùng nhãn với hình ảnh của cùng một con vật hoặc xếp hạng cao cho các vị trí cờ "tốt" trong đó tốt có nghĩa là cơ hội chiến thắng cao.

Vì vậy, như tôi đã nhận xét, mạng lưới thần kinh là một mô hình tính toán không đồng nhất, hoạt động theo một cách hoàn toàn khác so với các thuật toán từng bước chạy trên Turing Machines. Thay vào đó, hãy nghĩ về chúng như các mạch "mềm" sử dụng toán học liên tục thay vì Boolean và có thể được điều chỉnh hoặc đào tạo và được phép sai.

Tại sao chơi cờ dễ hơn Dijkstra hay Graphisomorphism?

Một phần, đó là sự khác biệt giữa việc yêu cầu ai đó trả lời một câu hỏi với khả năng tốt nhất của họ, và yêu cầu họ trả lời đúng cùng với một bằng chứng rằng nó đúng. Một phần, đó là sự khác biệt giữa giải quyết vấn đề kích thước cố định và giải quyết đồng thời vấn đề cho tất cả các kích cỡ đầu vào có thể.

Mỗi lần Dijkstra được chạy trên một thể hiện, có thể có kích thước bất kỳ, nó ngầm chứng minh rằng đầu ra của nó là một câu trả lời đúng và không có câu trả lời nào khác. Trong cờ vua và nhận dạng hình ảnh, người ta đưa ra câu trả lời tốt nhất có thể và lỗi được chấp nhận. Hơn nữa, người ta chỉ đào tạo các mạng để giải quyết các vấn đề có kích thước này tại một thời điểm. Tôi không nghĩ rằng chúng ta đã biết cách khái quát hóa một giải pháp mạng thần kinh như vậy, ví dụ, các trường hợp vấn đề có kích thước và hình dạng hoàn toàn khác nhau.

Tôi không nghĩ rằng chúng ta nên cho rằng mạng lưới thần kinh không thể giải quyết các con đường ngắn nhất hoặc các vấn đề thuật toán tương tự, nhưng chúng giải quyết các vấn đề theo một cách khác về cơ bản so với thuật toán từng bước luôn luôn đúng.

Quay trở lại sự giống nhau giữa mạng lưới thần kinh và mạch, lưu ý rằng các mạch đã được nghiên cứu trong nhiều thập kỷ, nhưng đánh giá bằng cách không có câu trả lời cho (5) câu hỏi trước đây của tôi , chúng ta hầu như không biết gì về cách xây dựng các mạch chính xác hoàn toàn cho một mạch nhất định vấn đề ngoại trừ thông qua việc chuyển đổi một thuật toán thống nhất (Turing Machine) thành một mạch.


Tôi không nghĩ có một câu trả lời sẽ tạo ra sự khác biệt - hai người chơi có thể chơi Dijkstra bằng cách cạnh tranh những người có thể tìm thấy một con đường ngắn hơn. Khả năng mở rộng có thể là một vấn đề nghiêm trọng hơn - bạn có nghĩ rằng NN có thể học cách chơi NIM không?
domotorp

@domotorp, tôi nghĩ rằng có một sự khác biệt lớn về mặt khái niệm và thực tế giữa các thuật toán chính xác và các heuristic không chính xác nhưng gần đúng. Bạn đã không hỏi tại sao cờ vua khó hơn những con đường ngắn nhất gần đúng, bạn hỏi tại sao cờ vua khó hơn Dijkstra, điều này có thể đúng 100% thời gian trên tất cả các kích cỡ đầu vào. Re: nim, không có ý tưởng; bạn cần một kiến ​​trúc NN chấp nhận đầu vào lớn tùy ý để bắt đầu với ...
usul

0

Tôi không phải là một chuyên gia bằng mọi cách, nhưng tôi không hiểu tại sao chưa.

Mạng lưới thần kinh về cơ bản thực hiện tối ưu hóa theo một số "mô hình chi phí / lợi ích" thường được biết đến trước đó. Ngoài ra, không gian tìm kiếm được xác định rõ ràng, với các di chuyển hợp lệ và không hợp lệ được biết đến và "các biến thể" dễ xác định. Ngay cả đối với AlphaZero và AlphaGo, các hàm chi phí có thể dựa trên tỷ lệ thắng và phân phối tỷ lệ thắng cho tất cả các chuyển động có thể sau khi thực hiện di chuyển, hoặc một số phương pháp phỏng đoán cho điều đó.

Để tạo ra các thuật toán, về cơ bản, bạn đang yêu cầu chương trình tìm hiểu cách xuất ra một chuỗi chính xác (với hàm mã hóa và chi phí ngầm đã biết) tương ứng với một chương trình "thực thi thuật toán". Tuy nhiên, có thể có vô số thuật toán mà bạn thực hiện một chương trình. Vì vậy, có lẽ bạn sẽ muốn xác định các số liệu "thể dục" chính xác.

Tuy nhiên, ngay cả đối với một số chương trình nhất định, số liệu "thể dục" có thể hơi khó xác định. Thời gian? Sử dụng không gian? Định lượng "tác dụng phụ?" Tối ưu, bạn sẽ tạo ra "chương trình ngắn nhất" chỉ thực hiện những gì bạn muốn.

Tôi cho rằng nếu bạn tìm thấy các số liệu thể dục và thuật toán điều chỉnh chính xác, bạn sẽ có thể làm điều này.


-3

"Mạng lưới thần kinh" biến đổi một vectơ từ không gian một chiều sang không gian chiều khác. vì vậy chúng không có gì khác hơn là các hàm xấp xỉ hàm phi tuyến tính cao. thậm chí các mạng thần kinh sử dụng các thuật toán gần đúng để giảm thiểu tổn thất của chúng. tuy nhiên, việc đào tạo các mạng lưới thần kinh để đưa ra các thuật toán mới là điều không cần thiết. tomas mikolov đã thực hiện một số công việc trong lĩnh vực này với mạng lưới thần kinh tái phát tăng cường ngăn xếp, và tôi cũng đã nghe nói về "máy turing thần kinh" cho miền này. tuy nhiên việc tìm ra các chiến lược tối ưu là nguyên nhân cơ bản của việc nghiên cứu học tập củng cố có liên quan đến câu hỏi của bạn. nhưng sử dụng các mạng thần kinh để đưa ra các thuật toán mới là không thể, ít nhất là trong tương lai gần.


Tôi nghĩ rằng một chiến lược tối ưu cho một trò chơi phù hợp cũng giống như một thuật toán tối ưu cho vấn đề tương ứng.
domotorp

@domotorp "chiến lược" thiên về thuật toán hơn là thuật toán
riemann77

-6

Tôi là một kỹ sư tự động hóa QA vì vậy không yêu cầu chuyên môn về các mạng thần kinh, nhưng, về mặt tự nhiên, vâng, NN có thể tự tạo ra các thuật toán. Bản thân con người là NN ở một mức độ nào đó và chúng ta tạo ra các thuật toán, do đó, lý do là các hệ thống NN nhân tạo mà chúng ta tạo ra có thể tự tạo ra các thuật toán.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.