Tại sao tìm kiếm quan trọng trong AI? Những loại thuật toán tìm kiếm được sử dụng trong AI? Làm thế nào để họ cải thiện kết quả của một AI?
Tại sao tìm kiếm quan trọng trong AI? Những loại thuật toán tìm kiếm được sử dụng trong AI? Làm thế nào để họ cải thiện kết quả của một AI?
Câu trả lời:
Tìm kiếm không gian trạng thái là một hoạt động AI phổ biến và có mặt khắp nơi bao gồm tối ưu hóa số (ví dụ: thông qua độ dốc trong không gian tìm kiếm có giá trị thực) như một trường hợp đặc biệt.
Tìm kiếm không gian trạng thái là một sự trừu tượng có thể được tùy chỉnh cho một vấn đề cụ thể thông qua ba thành phần:
Một số đại diện cho các giải pháp ứng cử viên cho vấn đề (ví dụ: hoán vị các thành phố để thể hiện chuyến tham quan Vấn đề nhân viên bán hàng du lịch (TSP), vectơ của các giá trị thực cho các vấn đề về số).
Một thước đo chất lượng giải pháp: tức là một số phương tiện quyết định giải pháp nào trong hai giải pháp là tốt hơn. Điều này thường đạt được (đối với các vấn đề đơn mục tiêu) bằng cách thông qua một số hàm số nguyên hoặc có giá trị thực của một giải pháp (ví dụ: tổng quãng đường di chuyển cho chuyến tham quan TSP).
Một số phương tiện di chuyển trong không gian của các giải pháp có thể, theo cách thông tin heuristurururururururururururur Các dẫn xuất có thể được sử dụng nếu có sẵn, hoặc nếu không (ví dụ cho các vấn đề hộp đen hoặc biểu diễn giải pháp rời rạc), loại phương pháp đột biến hoặc chéo được ưa thích bởi thuật toán di truyền / tính toán tiến hóa có thể được sử dụng.
Một vài chương đầu tiên của "Các yếu tố cần thiết của siêu dữ liệu" có sẵn một cái nhìn tổng quan tuyệt vời và "Cách giải quyết nó - Các phương pháp hiện đại" của Michalewicz và Fogel giải thích chi tiết hơn về cách tối ưu hóa số có thể được xem xét về mặt không gian nhà nước.
Làm thế nào để "tìm kiếm thông qua các kế hoạch có thể" xảy ra? Ý tưởng là chọn cả 3 điều trên cho vấn đề lập kế hoạch và sau đó áp dụng một số siêu dữ liệu (như Mô phỏng luyện kim, Tìm kiếm Tabu, Thuật toán di truyền, v.v.). Rõ ràng, đối với các vấn đề không cần thiết, chỉ một phần nhỏ không gian của "tất cả các kế hoạch có thể" thực sự được khám phá.
CAVEAT: Trên thực tế việc lập kế hoạch (trái ngược với phần lớn các vấn đề khác có thể tìm kiếm trong không gian nhà nước như lập lịch, đóng gói, định tuyến, v.v.) là một trường hợp đặc biệt, đôi khi có thể giải quyết vấn đề lập kế hoạch chỉ bằng cách sử dụng Một tìm kiếm *, thay vì tìm kiếm với một siêu dữ liệu ngẫu nhiên.
Tìm kiếm luôn là một yếu tố quan trọng của AI theo nhiều cách. Đầu tiên, cái mà nhiều người gọi là "tìm kiếm" là sự phản ánh về cách chúng ta gọi là "trí thông minh" thường liên quan đến việc tìm kiếm thứ gì đó: một cõi vật lý, một "không gian trạng thái" của các giải pháp khả thi, một "không gian tri thức" nơi ý tưởng / sự kiện / khái niệm / vv có liên quan như một cấu trúc đồ thị, vv
Tra cứu một số bài báo cũ về cờ vua máy tính và bạn sẽ thấy rằng rất nhiều trong số đó liên quan đến việc tìm kiếm một "không gian trạng thái". Như vậy, các thuật toán tìm kiếm hiệu quả (về độ phức tạp thời gian và / hoặc độ phức tạp không gian) luôn luôn quan trọng để đạt được những tiến bộ ở đó. Và trong khi cờ vua máy tính chỉ là một ví dụ, nguyên tắc này khái quát cho nhiều loại hoạt động giải quyết vấn đề và tìm kiếm mục tiêu khác.
Đây là một tài liệu tham khảo giải thích thêm về một số trong những ý tưởng này.
Cũng lưu ý rằng "tìm kiếm" có liên quan chặt chẽ với ý tưởng "heuristic" theo một cách quan trọng. Nhiều vấn đề tìm kiếm trong thế giới thực quá phức tạp để giải quyết bằng tìm kiếm toàn diện, vì vậy con người (và AI) phải dùng đến phương pháp phỏng đoán để thu hẹp không gian trạng thái đang tìm kiếm. Sử dụng phương pháp phỏng đoán có thể mang lại các thuật toán tìm kiếm cho phép các giải pháp hợp lý trong khung thời gian thực tế, trong đó không có thuật toán đơn giản, xác định nào tồn tại để làm tương tự.
Đối với một số nền tảng khác, bạn có thể muốn đọc lên tìm kiếm A * , đây là thuật toán được sử dụng rộng rãi với nhiều ứng dụng - và không chỉ trong AI.
Một vấn đề quan trọng khác trong đó một cái gì đó bạn có thể gọi là "tìm kiếm" áp dụng trong AI là thông qua việc sử dụng các thuật toán thường được gọi là kỹ thuật "tối ưu hóa". Đây sẽ là những thứ như Hill Leo, Gradient Descent, Mô phỏng luyện kim và có lẽ cả Thuật toán di truyền. Chúng được sử dụng để tối đa hóa hoặc tối thiểu hóa các giá trị của một số chức năng và một trong những cách sử dụng kinh điển trong AI là để đào tạo mạng lưới thần kinh bằng cách truyền ngược, trong đó bạn đang cố gắng giảm thiểu đồng bằng giữa câu trả lời "chính xác" (từ dữ liệu đào tạo ) và câu trả lời được tạo, vì vậy bạn có thể tìm hiểu các trọng số chính xác trong mạng.
Liên quan đến câu hỏi bạn đề cập (trong các bình luận của OP), các tìm kiếm này có liên quan đến tối ưu hóa. Tôi không chắc chắn về nền tảng của bạn, vì vậy hãy để tôi mô tả nó từ đầu, ngắn gọn:
Ghi nhớ đạo hàm? Ý tưởng cơ bản là nói về cách thay đổi chức năng liên quan đến những thay đổi trong đầu vào. Vì vậy, bây giờ, chúng tôi ra khỏi trường trung học và chúng tôi đang xây dựng mạng lưới thần kinh. Chúng tôi đã thực hiện mã hóa cơ bản và muốn xem mô hình của chúng tôi hoạt động như thế nào. Quay lại từ lớp thống kê của chúng tôi, chúng tôi nhớ rằng chúng tôi sử dụng một số đo lỗi nhất định (ví dụ bình phương nhỏ nhất) để xác định hiệu quả của các mô hình từ lớp đó, vì vậy chúng tôi quyết định sử dụng ở đây. Chúng tôi nhận được lỗi này và nó hơi quá lớn so với sở thích của chúng tôi, vì vậy chúng tôi quyết định sử dụng mô hình của chúng tôi và điều chỉnh các trọng số để giảm lỗi đó. Nhưng bằng cách nào?
Đây là nơi 'tìm kiếm' phát huy tác dụng. Đó thực sự là một tìm kiếm cho các trọng lượng tốt nhất để đặt trên các cạnh của mạng của chúng tôi để tối ưu hóa nó. Chúng tôi sử dụng đạo hàm (theo một số cách ưa thích, sử dụng 'stochasitc' (nghĩ lấy mẫu ngẫu nhiên) và các cách khác mà câu hỏi đề cập) để tìm kiếm cách nào là 'xuống' trong không gian chiều cao của trọng số của chúng tôi. Nói cách khác, những gì chúng ta đang tìm kiếm là cực tiểu hoặc cực đại để tối ưu hóa mạng lưới thần kinh của chúng ta và chúng ta 'tìm kiếm' nó bằng cách thực hiện một đạo hàm cho chúng ta biết cách nào để đi, di chuyển một chút theo hướng đó, sau đó thực hiện lại và một lần nữa lặp đi lặp lại để tìm (hy vọng) trọng lượng tốt nhất.
Video này ở đây đi sâu vào tất cả các chi tiết bạn muốn và tôi khuyên bạn nên giới thiệu toàn bộ loạt phim như một phần giới thiệu mạnh mẽ nhưng dễ hiểu đối với các mạng lưới thần kinh: Làm sáng tỏ Mạng lưới thần kinh
Đi và tìm kiếm 'độ dốc gốc' để có được bất kỳ tài liệu liên quan. (Lưu ý, độ dốc ở đây tương đương với hướng xuất phát đa chiều để đi vào và gốc chỉ là tìm kiếm cực tiểu)
Tìm kiếm là quan trọng vì ít nhất hai lý do.
Đầu tiên, tìm kiếm là một trong những khách hàng đầu tiên và chủ yếu của học máy tiên tiến, vì việc tìm kiếm kết quả chính xác cho truy vấn tìm kiếm giúp dự đoán tỷ lệ nhấp cho kết hợp truy vấn - kết quả. Kết quả phù hợp hơn có nghĩa là nhiều nhấp chuột hơn, lưu lượng truy cập nhiều hơn và doanh thu nhiều hơn.
Thứ hai, nhiều vấn đề lập kế hoạch và tối ưu hóa có thể được gọi lại là vấn đề tìm kiếm. Một AI quyết định kế hoạch định tuyến các gói thông qua mạng đang tìm kiếm không gian của các kế hoạch khả thi cho một kế hoạch tốt.
Mục đích của AI là hoàn thành một hoặc một nhiệm vụ khác, nói rằng giải quyết nhiệm vụ một cách thỏa đáng. Nhưng có những kết quả hoàn toàn không có giải pháp và có những kết quả thỏa mãn nhiệm vụ và do đó được chấp nhận là giải pháp. Vì nhìn chung có nhiều kết quả không có giải pháp, nên tập hợp tất cả các giải pháp có thể chỉ là tập hợp con của tất cả các kết quả. Nhưng điều này có nghĩa là nhiệm vụ liên quan đến việc tìm kiếm một bộ giải pháp phù hợp.
Mọi vấn đề có thể được giảm bớt để tìm kiếm. Mọi vấn đề đều có đầu vào trong một phạm vi (tên miền) và đầu ra trong một phạm vi khác (tên miền). Nghĩa là, mọi vấn đề đều có thể được tạo thành một loại bản đồ từ không gian này sang không gian khác, trong đó nguồn là nguồn gốc của vấn đề và đích đến là giải pháp cho vấn đề.
"Brute force" là thuật toán giải quyết mọi vấn đề bằng cách kiểm tra mọi điểm trong tên miền và hỏi: "Đây có phải là giải pháp không?" Mọi thuật toán khác là một nỗ lực để cải thiện lực lượng vũ phu bằng cách không tìm kiếm toàn bộ tên miền của các giải pháp có thể.
Các vấn đề kỹ thuật phần mềm điển hình có thể được giải quyết bằng các thuật toán đi đến giải pháp chính xác rất nhanh (sắp xếp, số học, phân vùng, v.v.). Các vấn đề về AI nói chung là những vấn đề mà thuật toán đa thức mạnh không được biết đến, và do đó, chúng ta phải giải quyết các xấp xỉ. Về cơ bản mọi vấn đề phổ biến mà bộ não con người phải giải quyết đều thuộc loại này.
Hãy xem xét vấn đề di chuyển một cánh tay robot đa khớp để nhặt một vật thể. Động học ngược không có giải pháp duy nhất: có nhiều hơn một cách để di chuyển bàn tay của bạn từ vị trí bắt đầu sang vị trí mục tiêu. Điều này là do mức độ tự do quá mức trong các khớp của bạn. Nếu bạn muốn giảm thiểu sử dụng năng lượng, thì có một giải pháp độc đáo (do sự bất cân xứng của khớp và cơ bắp).
Nhưng nếu có một trở ngại trong con đường của giải pháp năng lượng tối thiểu thì sao? Có nhiều con đường tránh chướng ngại vật, nhưng một lần nữa, nhiều trong số chúng sẽ có chi phí tương tự. Ngay cả khi có một giải pháp năng lượng tối thiểu duy nhất, nó có thể không thực tế nhất để tính toán. Não là cơ quan đắt tiền nhất trong cơ thể, vì vậy không phải lúc nào cũng tốt nhất để tìm ra giải pháp tối ưu. Do đó, heuristic đi vào chơi.
Nhưng trong mọi trường hợp, vấn đề không phải là: "di chuyển bàn tay của bạn" hay "di chuyển cánh tay robot". Vấn đề là: "tìm kiếm không gian của các chuỗi xoay chung mà đạt được mục tiêu tốt nhất." Và mặc dù có một giải pháp dạng đóng cho trường hợp năng lượng tối thiểu đơn giản không có trở ngại, nhưng quá tốn kém để tính toán chính xác khi một tập hợp các phương pháp phỏng đoán giá rẻ sẽ giúp bạn rất gần với một phần nhỏ của nỗ lực tính toán.
Nếu tính toán là miễn phí, thì AI sẽ chỉ là toán học và chúng tôi sẽ luôn tính toán câu trả lời tốt nhất cho mọi câu hỏi bằng logic, tính toán, vật lý, tệ nhất là phương pháp số khi chúng ta không có giải pháp dạng đóng. Trong thực tế, thời gian là tiền bạc, và thời gian và nỗ lực để có được câu trả lời cũng là một phần chi phí tương đương với chất lượng của giải pháp. Vì vậy, đó là một sự đánh đổi kỹ thuật để quyết định cần dành bao nhiêu nỗ lực theo cách nào để có được câu trả lời tốt nhất với giá trị của câu trả lời.
Hay nói cách khác, các vấn đề về AI đều là tìm kiếm không gian của các giải pháp càng nhanh càng tốt để có được câu trả lời là "đủ tốt".
Tôi có vẻ tò mò rằng những vấn đề xa vời như nhận dạng và định lý ngôn ngữ tự nhiên sẽ là vấn đề tìm kiếm. Nhưng các nhà phân tích ngôn ngữ cố gắng xác định ý nghĩa của các câu lệnh thông qua việc gắn thẻ một phần của bài phát biểu. Một cụm từ nhất định có thể được phân tích cú pháp theo nhiều cách khác nhau, mang lại nhiều cách hiểu khác nhau và không gian của cây phân tích là một vấn đề tìm kiếm khác trong việc quyết định cây phân tích nào là ý nghĩa có khả năng nhất của người nói.
Một bằng chứng định lý là đồ thị bắt đầu bằng các tiên đề, tiến hành thông qua các bổ đề, áp dụng các quy tắc của thủ tục cho đến khi định lý được dẫn xuất hoặc bác bỏ (bằng cách chứng minh phủ định của nó). Có nhiều cách để biểu diễn trình tự này, nhưng vào cuối ngày, chúng ta đang nói về một quá trình khám phá không gian bằng chứng trung gian và tìm ra đạo hàm đạt được mục tiêu của bạn. Tất cả mọi thứ là tìm kiếm, cuối cùng.
Ý thức là một cơ chế lựa chọn chú ý tìm kiếm trên các đầu vào nổi bật. Các bản sửa lỗi robot của nhãn cầu cho bạn thấy tận mắt bản chất thuật toán của cơ chế chú ý có ý thức của bộ não, trong khi nó tìm kiếm trong số các đầu vào nổi bật.
Một thuật toán tìm kiếm thông minh có thể giúp giảm kích thước.
Các thuật toán học tập điển hình có thể được nêu là một vấn đề tìm kiếm, trong đó chúng tôi muốn tìm giải pháp tốt nhất có thể, giải quyết thành công một nhiệm vụ cụ thể, trong số tất cả các giải pháp ứng viên có sẵn trong không gian giải pháp.
Nó thường là trường hợp chúng ta không thể tìm thấy cái tốt nhất hoặc quá khó để tìm thấy nó và do đó chúng ta thỏa hiệp với một giải pháp tối ưu.