Phát triển mạng lưới thần kinh nhân tạo để giải quyết các vấn đề NP


10

Gần đây tôi đã đọc một mục blog thực sự thú vị từ Google Research Blog nói về mạng lưới thần kinh. Về cơ bản họ sử dụng mạng lưới thần kinh này để giải quyết các vấn đề khác nhau như nhận dạng hình ảnh. Họ sử dụng các thuật toán di truyền để "tiến hóa" trọng lượng của sợi trục.

Vì vậy, về cơ bản ý tưởng của tôi là như sau. Nếu tôi phải viết một chương trình nhận ra những con số tôi sẽ không biết bắt đầu như thế nào (tôi có thể có một ý tưởng mơ hồ nhưng quan điểm của tôi là: Nó không tầm thường, cũng không dễ dàng.) Nhưng bằng cách sử dụng mạng lưới thần kinh thì tôi không phải làm thế. Bằng cách tạo bối cảnh phù hợp để mạng lưới thần kinh phát triển, mạng lưới thần kinh của tôi sẽ "tìm ra thuật toán chính xác". Dưới đây tôi đã trích dẫn một phần thực sự thú vị của bài viết nơi họ giải thích làm thế nào mỗi lớp có vai trò khác nhau trong quá trình nhận dạng hình ảnh.

Một trong những thách thức của mạng lưới thần kinh là hiểu chính xác những gì diễn ra ở mỗi lớp. Chúng tôi biết rằng sau khi đào tạo, mỗi lớp sẽ dần dần trích xuất các tính năng cấp cao hơn và cao hơn của hình ảnh, cho đến khi lớp cuối cùng về cơ bản đưa ra quyết định về những gì hình ảnh hiển thị. Ví dụ, lớp đầu tiên có thể tìm kiếm các cạnh hoặc góc. Các lớp trung gian diễn giải các tính năng cơ bản để tìm kiếm các hình dạng hoặc thành phần tổng thể, như cánh cửa hoặc chiếc lá. Một vài lớp cuối cùng tập hợp chúng thành những diễn giải hoàn chỉnh, các nơ-ron này kích hoạt để đáp ứng với những thứ rất phức tạp như toàn bộ tòa nhà hoặc cây cối.

Vì vậy, về cơ bản câu hỏi của tôi là như sau: Chúng ta không thể sử dụng thuật toán di truyền + mạng lưới thần kinh để giải quyết mọi vấn đề NP? Chúng tôi chỉ tạo ra bối cảnh tiến hóa đúng đắn và để "tự nhiên" tìm ra giải pháp.

Inceptionism: Đi sâu hơn vào Mạng lưới thần kinh

EDIT: Tôi biết chúng ta có thể sử dụng Brute-Force hoặc tìm một giải pháp không hiệu quả trong nhiều trường hợp. Đó là lý do tại sao tôi cố gắng để làm nổi bật Evolving mạng thần kinh nhân tạo. Như tôi đã nói trong một bình luận: Cho đủ thời gian và tỷ lệ đột biến thích hợp, chúng ta có thể tìm ra giải pháp tối ưu (Hoặc ít nhất đó là những gì tôi nghĩ).

Ý tưởng


1
Chúng tôi không phải. Chúng ta chỉ đơn giản là có thể sử dụng vũ lực. Mục tiêu của bạn, chính xác là gì?
Pål GD

2
Tôi không phải là chuyên gia về mạng lưới thần kinh nên tôi không biết liệu họ có thể được đào tạo để giải quyết vấn đề NP một cách chính xác hay không. Nhưng tôi không nghĩ rằng bạn đang hỏi đúng câu hỏi. Đến với một thuật toán giải quyết vấn đề có trong NP thường không khó, chỉ cần kiểm tra mọi giải pháp có thể. Tuy nhiên, việc tìm ra một thuật toán giải quyết vấn đề NP-hard trong thời gian đa thức là một câu chuyện khác và sự tồn tại của nó rất khó xảy ra. Vì các mạng thần kinh có thể được mô phỏng bằng máy thử nghiệm, chúng vẫn cần thời gian siêu đa thức trừ khi P = NP và sẽ không giúp ích nhiều.
Dennis Kraft

vâng, mạng lưới thần kinh đã được sử dụng để chống lại các vấn đề hoàn chỉnh của NP, ví dụ như Nhân viên bán hàng du lịch và nhiều người khác và có nghiên cứu / tài liệu về subj. chúng có thể có một số tính chất hữu ích nhưng chúng không thoát khỏi những hạn chế về thời gian của lý thuyết phức tạp như DK chỉ ra.
vzn

Quan điểm của tôi là: Sử dụng tỷ lệ đột biến phù hợp và đủ thời gian chúng ta có thể (ít nhất là về mặt lý thuyết) để tìm ra giải pháp tối ưu. (Hoặc ít nhất là tối đa cục bộ) Hình ảnh: Khái niệm
NMO

2
Các thuật toán di truyền (và phần còn lại của rất nhiều kỹ thuật "AI") về cơ bản là ngẫu nhiên "thử một mẫu không gian giải pháp" với một số thông minh (heuristic) được đưa vào để làm cho nó không hoàn toàn ngẫu nhiên. Không, không tốt hơn "thử tất cả các giải pháp có thể", hầu hết thời gian tồi tệ hơn nhiều (vì không có gì đảm bảo không kiểm tra lại trường hợp bị loại bỏ tương tự). Chắc chắn, họ tìm thấy giải pháp "đàng hoàng". Nhưng chúng tôi muốn tìm thứ tốt nhất .
vonbrand

Câu trả lời:


21

Không. Hướng này có thể không hữu ích, vì hai lý do:

  1. Hầu hết các nhà khoa học máy tính tin rằng P NP. Giả sử NP P , điều này có nghĩa là không tồn tại bất kỳ thuật toán đa thức thời gian nào để giải quyết bất kỳ vấn đề hoàn thành NP nào . Nếu bạn muốn mạng nơ-ron của mình giải quyết vấn đề trong một khoảng thời gian hợp lý, thì nó không thể quá lớn, và do đó, mạng nơ-ron sẽ tự nó là một thuật toán đa thức. Theo sau, nếu P NP, các mạng thần kinh không thể giải quyết hiệu quả bất kỳ vấn đề hoàn thành NP nào.

  2. Mạng lưới thần kinh không phải là "ma thuật". Họ là một cách cố gắng để tìm thấy các mẫu. Đối với một số vấn đề trong đó có các mẫu đủ mạnh được tìm thấy và các mẫu có thể được học từ một số ví dụ hợp lý, chúng có thể có hiệu quả. Nhưng chúng không phải là hạt bụi thần tiên. Chỉ vì bạn có thể thiết lập một mạng lưới thần kinh không có nghĩa là việc truyền ngược sẽ nhất thiết phải tìm ra một cách tốt để giải quyết vấn đề của bạn. Có thể là không có mẫu nào được tìm thấy, các mẫu chỉ có thể được phát hiện với số lượng ví dụ không khả thi hoặc mẫu đó tồn tại nhưng quy trình đào tạo mạng thần kinh không thể tìm thấy chúng.

Mạng lưới thần kinh chỉ là một hình thức học máy khác. Chúng ta có thể đưa ra những nhận xét tương tự về các SVM hoặc các khu rừng ngẫu nhiên hoặc hồi quy tuyến tính bất kỳ hình thức học máy nào khác. Mạng lưới thần kinh không phải là một loại đạn bạc ma thuật giải quyết tất cả các vấn đề về máy học. Chúng có hiệu quả như các phương pháp học máy khác, hoặc đối với một số loại vấn đề, có thể hiệu quả hơn một chút, nhưng chúng không phải là phép thuật.

Đôi khi tôi tình cờ gặp những người chỉ nghe một chút về mạng lưới thần kinh và họ bỏ đi khi nghĩ rằng mạng lưới thần kinh là câu trả lời cho mọi thứ - có thể vì họ nghe nói rằng "bộ não của bạn cũng sử dụng mạng lưới thần kinh", hoặc họ thấy một số ứng dụng tuyệt vời (nhận dạng giọng nói hoặc một cái gì đó). Nhưng đừng để bị lừa. Đừng tin vào sự cường điệu. Mạng thần kinh là một kỹ thuật hữu ích, nhưng chúng sẽ không cho phép máy tính giải quyết các vấn đề hoàn thành NP hoặc đánh bại bài kiểm tra Turing, lấy đi tất cả công việc của chúng ta và thay thế con người bằng máy tính. Không phải bất cứ lúc nào sớm, dù sao. Đó chỉ là khoa học viễn tưởng.


1
Câu trả lời thực sự tốt. Thuật toán di truyền + Mạng lưới thần kinh có vẻ rất mạnh mẽ nhưng có lẽ nó không đủ để giải quyết mọi vấn đề np. Tôi tưởng tượng rời khỏi mạng lưới thần kinh + thuật toán di truyền trong tự nhiên tìm kiếm giải pháp p này. Giống như trinh sát nhỏ haha.
NMO

1
Cũng có thể đáng lưu ý rằng các mạng thần kinh thường cung cấp một số xác suất tìm thấy câu trả lời chính xác, không phải là một sự đảm bảo. Khi bạn thư giãn các yêu cầu vấn đề của mình để cho phép các giải pháp tối ưu phụ, thường có các giải pháp thực tế cho các vấn đề hoàn thành NP, mặc dù tính hấp dẫn của chúng trong trường hợp xấu nhất.
Dan Bryant

9

Có vẻ như các câu trả lời khác trong khi thông tin / hữu ích không thực sự hiểu chính xác câu hỏi của bạn và đang đọc quá nhiều vào nó. Bạn đã không hỏi liệu mạng nơ ron có tốt hơn các phương pháp khác không, bạn chỉ hỏi liệu chúng có thể được áp dụng cho các vấn đề hoàn chỉnh của NP không. Câu trả lời là có, với một số thành công và điều này đã được biết đến trong nhiều thập kỷ và có rất nhiều nghiên cứu về điều này, và nó vẫn tiếp tục. Điều này phải làm với sự linh hoạt của máy học. Lưu ý rằng ngay cả khi họ không tìm thấy giải pháp chính xác hoặc tối ưu, các giải pháp họ có thể có các thuộc tính mong muốn khác. một số giấy tờ ví dụ:


4

Mạng lưới thần kinh không thực sự giải quyết các vấn đề NP-đầy đủ. Những gì họ làm là giải quyết các vấn đề gần với các vấn đề hoàn chỉnh của NP.

Một tính năng lớn của mạng lưới thần kinh là chúng không bắt buộc phải tìm câu trả lời "đúng" mỗi lần. Họ được phép "sai." Ví dụ: bạn có thể đang giải quyết vấn đề đóng gói và đi đến giải pháp giảm 1% so với giải pháp lý tưởng và hoàn toàn hài lòng với câu trả lời đó.

Nếu bạn loại bỏ yêu cầu phải đúng 100% mỗi lần, các phương pháp giải quyết vấn đề khác hoạt động rất tốt. Ví dụ: nhiều thuật toán lập kế hoạch tuyến đường (a la Google Maps) phải hoàn thành NP, nhưng việc tìm một thuật toán tìm đường đi trong vòng 1% trong 99% thời gian tối ưu là khá đơn giản. Đó là cố gắng xác định kết quả trong 0,1% trường hợp cuối cùng khiến các nỗ lực hoàn thành NP trở nên quá đắt đỏ.

Khi điều đó xảy ra, khi chúng ta cố gắng sử dụng các phương trình hoàn thành NP trong cuộc sống thực, chúng ta thường không cần câu trả lời thực tế . Chúng ta thường rất thoải mái với câu trả lời "gần gũi", mặc dù chúng ta thường không có từ ngữ để giải thích số liệu "đóng" mà chúng ta đang sử dụng. Đây là những tình huống trong đó một mạng lưới thần kinh có thể trả lời câu hỏi thực tế bạn muốn hỏi, thay vì phải thực sự giải quyết vấn đề NP-Complete mà bạn yêu cầu thay thế.


1

Mạng nơ-ron được biết là có khả năng xấp xỉ chức năng phổ quát , nhưng điều này đòi hỏi phải đào tạo họ về vấn đề (tối ưu hóa), đây là vấn đề hoàn chỉnh NP , đó là lý do tại sao bạn được đào tạo tiến hóa và SGD với truyền bá và v.v.

Vì vậy, trong khi họ không có khả năng giải quyết các vấn đề hoàn chỉnh NP, họ có thể được đào tạo để tính gần đúng mức độ chính xác tùy ý một chức năng mô hình hóa vấn đề. Ngoài ra, ngay cả khi bạn tình cờ giải quyết vấn đề hoàn thành NP một cách tối ưu bằng cách sử dụng mạng thần kinh, bạn vẫn không có cách nào để chứng minh rằng giải pháp mà nó tìm thấy thực sự là tối ưu toàn cầu mà không bắt buộc giải pháp (điều này tất nhiên không khả thi đối với hầu hết mọi thực tế trường hợp sử dụng của mạng lưới thần kinh).

Hình dung của bạn là chính xác theo nghĩa là các thuật toán tiến hóa (xem cách thuật toán gọn gàng ngăn chặn một loài duy nhất chiếm lấy quần thể với cấu trúc hiệu suất cao ban đầu bằng cách sử dụng thể dục chung) ít thích hợp hơn SGD và các kỹ thuật học máy khác bị mắc kẹt trong tối ưu cục bộ nhưng họ không cung cấp bằng chứng nào cho thấy giải pháp họ tìm thấy trên thực tế là giải pháp tối ưu toàn cầu.


Bạn có thể thêm một số tài liệu tham khảo cho câu trả lời của bạn? Ngoài ra, hãy cố gắng cải thiện định dạng (ví dụ: sử dụng NP, SGD, backpropagation, v.v. và có thể thêm một số ngắt dòng).
Yuval Filmus

Được rồi, một số chỉnh sửa cho tôi biết nếu tôi nên đi sâu hơn bất cứ nơi nào
nickw

Tôi nghĩ bạn nên cung cấp một số bằng chứng cho tuyên bố của mình rằng "các thuật toán tiến hóa ... kém thông minh hơn SGD và các kỹ thuật học máy khác bị mắc kẹt trong các tối ưu cục bộ". Tôi không nghĩ điều đó đúng, đặc biệt đối với nhiệm vụ đặc biệt là đào tạo mạng lưới thần kinh.
DW

Câu trả lời này có một số nhầm lẫn về định nghĩa của tính đầy đủ NP. Trái với những gì bạn yêu cầu, nếu chúng tôi giải quyết vấn đề hoàn thành NP, chúng tôi có thể kiểm tra xem chúng tôi có giải pháp chính xác hay không. Có một sự khác biệt giữa vấn đề tìm kiếm hoàn chỉnh NP và vấn đề tối ưu hóa NP-hard; đối với cái trước, chúng ta thực sự có thể kiểm tra một cách hiệu quả xem giải pháp có đúng không, nhưng đối với cái sau chúng ta có thể không thể.
DW

Tôi đã đủ điều kiện rằng chúng tôi không thể xác minh đó là giải pháp tối ưu mà không bắt buộc giải pháp tối ưu thực sự trước tiên, điều này có đúng không? Tôi đã đưa ra lời biện minh cho lý do của mình rằng sự tiến hóa thần kinh ít có khả năng bị mắc kẹt trong các tối ưu cục bộ với liên kết được tham chiếu đến thuật toán gọn gàng và tập thể dục chung, tôi nghĩ rằng độ dốc của độ nhạy cảm bị mắc kẹt trong tối ưu cục bộ là khá rõ ràng và trong khi điều chỉnh siêu tham số khuôn khổ có thể giúp giảm bớt điều này tôi sẽ không tin rằng như một ác cảm sgd sở hữu để bị mắc kẹt.
nickw
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.