Mã nguồn Python AI

Cho dù bạn đã chọn dự án Machine Learning nào trong số các dự án trên, hãy cố gắng hết sức để làm cho dự án đó tốt nhất có thể. Chúng tôi đã thực sự cố gắng hết sức để giới thiệu cho bạn các dự án Máy học tốt nhất dành cho người mới bắt đầu đến nâng cao để độc giả của tôi như bạn có thể tiết kiệm thời gian quý báu của họ và không lãng phí thời gian tìm kiếm trên Internet

Mã Python này nhằm minh họa một số thuật toán trong Trí tuệ nhân tạo. nền tảng của các tác nhân tính toán, phiên bản thứ hai. Tất cả mã đều thuộc bản quyền © David Poole và Alan Mackworth 2017 và được cấp phép theo Creative Commons Ghi công-Phi thương mại-Chia sẻ tương tự 4. 0 Giấy phép quốc tế

Chúng tôi đã tuân theo các nguyên tắc sau

  • Mã phải đơn giản và càng gần mã giả càng tốt. Chúng tôi đã chọn khả năng đọc hơn hiệu quả. chúng tôi đã cố gắng giữ độ phức tạp tiệm cận tốt nhất có thể [ngoại trừ một số trường hợp mã hiệu quả hơn là một bài tập], nhưng chưa tối ưu hóa các yếu tố không đổi
  • Mã sẽ hoạt động, nhưng nó không bao gồm tất cả các chức năng có thể. Có những phần còn thiếu có thể được sử dụng như bài tập
  • Chúng tôi sử dụng rộng rãi khả năng hiểu danh sách, bộ và từ điển. Chúng tôi cố gắng không sử dụng các thư viện mà thư viện đó không phù hợp. Đó là loại mã mà một sinh viên có thể viết mà không cần tìm kiếm nhiều trong các thư viện
  • Nó được thiết kế cho Python 3. 8 và hơn thế nữa. [Không phải Python 2]. Bạn cũng có thể sử dụng phiên bản mới nhất
  • Chúng tôi sử dụng một phương pháp đơn giản để truy tìm mã, sử dụng phương pháp display, giống như print nhưng bao gồm mức hiển thị số nguyên. Sau đó, người dùng có thể đặt mức hiển thị tối đa cho đối tượng [hoặc lớp] tương ứng và do đó có quyền kiểm soát số lượng chi tiết được in. Chúng tôi cố gắng không xả mã với quá nhiều câu lệnh truy tìm. Việc sử dụng display được thiết kế để cho phép hiển thị đồ họa trong tương lai của các thuật toán

Đây không phải là mã đánh bóng. Nó có nghĩa là mã đại diện làm việc cùng nhau. Nó có thể sẽ không bao giờ được đánh bóng [hoặc khi nó được đánh bóng thì có lẽ đã đến lúc vứt nó đi và bắt đầu lại], và không nên dựa vào. Chúng tôi không bảo đảm dưới bất kỳ hình thức nào, rõ ràng hay ngụ ý, liên quan đến các chương trình này hoặc tài liệu

Tài liệu mã, aipython. pdf chứa và giải thích tất cả các mã. Toàn bộ cơ sở mã có thể được tải xuống từ aipython. khóa kéo

Lưu ý rằng tài liệu và mã được lấy từ cùng một nguồn và do đó phải nhất quán [thậm chí đến cùng số dòng]

Chúng tôi có một nguyên mẫu beta của AISpace 2, bao gồm tích hợp AIPpython và Jupyter Lab, với các tương tác đồ họa với [hiện tại] các thuật toán tìm kiếm, ràng buộc và lập kế hoạch. Điều này không được tiếp tục phát triển nữa và tiếc là không thể được duy trì

Tệp zip và pdf ở trên có lẽ là thứ bạn muốn. Đối với những người dũng cảm, bạn có thể lấy tất cả các nguồn latex, nhưng nó có thể không được cập nhật trong quá trình phát triển và nó chứa mã không hoạt động trong quá trình phát triển và các nội dung không liên quan. giải_mã. py có thể được sử dụng để trích xuất mã từ các nguồn latex

Sau đây là danh sách tất cả các tệp và có thể đã lỗi thời. Vui lòng tham khảo aipython. pdf và aipython. zip cho các phiên bản mới nhất [và cho mã bao gồm tất cả các phần phụ thuộc]

Python cho trí tuệ nhân tạo

  • pythonDemo. py một số trường hợp khó khăn
  • tiện ích. py một số tiện ích hữu ích để theo dõi, argmax, v.v.
  • trưng bày. py mã đơn giản để hiển thị kết quả trung gian. Điều này được ghi đè trong mã AISpace 2 ở trên để cho phép tương tác

Đại lý và kiểm soát

Tìm kiếm giải pháp

  • vấn đề tìm kiếm. py định nghĩa một vấn đề tìm kiếm theo các nút bắt đầu, một vị từ để kiểm tra xem một nút có phải là mục tiêu hay không, hàm lân cận và hàm heuristic tùy chọn. Đây là giao diện mà các thuật toán tìm kiếm sử dụng. Nó cũng chứa một số biểu đồ ví dụ
  • tìm kiếmChung. py thuật toán tìm kiếm chung thực hiện cả tìm kiếm theo chiều sâu và tìm kiếm A*. Nó không thực hiện cắt xén nhiều đường dẫn hoặc kiểm tra chu kỳ. Dễ dàng sửa đổi để tạo ra các thuật toán tìm kiếm khác. tìm kiếmMPP. py thực hiện A* với việc cắt tỉa nhiều đường dẫn
  • tìm kiếmBranchAndBound. py định nghĩa tìm kiếm tìm kiếm theo nhánh và giới hạn theo chiều sâu. Nó không thực hiện cắt xén nhiều đường dẫn hoặc kiểm tra chu kỳ

Lý luận với các ràng buộc

  • cspProblem. py định nghĩa một vấn đề thỏa mãn ràng buộc [CSP]. cspVí dụ. py định nghĩa một số CSP mẫu
  • cspTìm kiếm. py định nghĩa một trình tìm kiếm CSP tìm kiếm trong không gian của các phép gán từng phần
  • cspTính nhất quán. py sử dụng phân tách miền và tính nhất quán cung tổng quát để giải quyết CSP. Một số sinh viên có thể gặp khó khăn khi viết điều này từ đầu vì họ cần cẩn thận khi tác dụng phụ không sao và khi cần sao chép CSP
  • cspSLS. py sử dụng tìm kiếm cục bộ ngẫu nhiên, đặc biệt là sự kết hợp xác suất của biến có nhiều xung đột nhất, bất kỳ xung đột nào và một biến ngẫu nhiên, để giải quyết các CSP. Nó chỉ duy trì các cấu trúc dữ liệu cần thiết cho thuật toán [e. g. , hàng đợi ưu tiên khi chúng ta cần biến tốt nhất, nhưng không phải khi chúng ta thực hiện bất kỳ xung đột nào]. Mỗi bước nhiều nhất là logarit về số lượng biến [để duy trì hàng đợi ưu tiên], nhưng phụ thuộc vào số lượng hàng xóm. Nó cũng vẽ biểu đồ phân phối thời gian chạy [chỉ dành cho số bước]

Mệnh đề và suy luận

Quy hoạch tất định

  • dảiVấn đề. py xác định các vấn đề lập kế hoạch trong STRIPS
  • dảiForwardPlanner. py định nghĩa một công cụ lập kế hoạch chuyển tiếp có thể sử dụng A* hoặc công cụ tìm kiếm nhánh và giới hạn
  • dảiRegressionPlanner. py định nghĩa một công cụ lập kế hoạch hồi quy có thể sử dụng A* hoặc công cụ tìm kiếm nhánh và giới hạn. Hàm heuristic luôn bằng 0. Một bài tập có thể là thêm một heuristic
  • dảiCSPPlanner. py tạo CSP từ mô tả của bài toán lập kế hoạch, sau đó có thể giải bài toán này bằng bất kỳ bộ giải CSP nào
  • dảiPOP. py thực hiện một công cụ lập kế hoạch đặt hàng một phần có thể sử dụng một trong hai trình tìm kiếm

Học máy có giám sát

Mạng lưới thần kinh và học sâu

  • hocNN. py học mạng lưới thần kinh sâu
  • Bao gồm các mạng feedforward, động lượng, trình tối ưu hóa RMS-Prop và Adam và động lượng. Mã này rất kém hiệu quả so với mã hiện đại nhất; . Việc đặt tên trong mã AIPython phù hợp với Keras

Lý luận với sự không chắc chắn

  • các biến xác suất. py định nghĩa các biến ngẫu nhiên
  • thăm dòMô hình đồ họa. py định nghĩa các mô hình đồ họa và mạng niềm tin là trường hợp đặc biệt
  • probRC. py thực hiện điều kiện đệ quy cho các mô hình đồ họa [và đối với các mạng niềm tin]
  • thăm dòVE. py thực hiện loại bỏ biến cho các mô hình đồ họa
  • nhân tố thăm dò. py định nghĩa các thừa số và các phép toán thừa số, bao gồm nhân các thừa số, tính tổng một biến và quan sát một biến
  • thăm dòStochSim. triển khai py của nhiều thuật toán mô phỏng ngẫu nhiên cho các mạng niềm tin
  • thăm dòHMM. triển khai py của các mô hình Markov ẩn. Nó xác định cả suy luận chính xác để lọc và lọc hạt
  • thăm dòDBN. py định nghĩa các mạng niềm tin động và sử dụng mã loại bỏ biến để lọc

Học với sự không chắc chắn

nhân quả

  • thăm dòDo. py cho phép các truy vấn với "làm" cũng như các quan sát

Lập kế hoạch với sự không chắc chắn

Học tăng cường

Môi trường học tập củng cố

người học

Hệ thống đa tác nhân

Học quan hệ

Bản quyền © David Poole và Alan Mackworth, 2017. Trang web này và mã được phát hành theo giấy phép Creative Commons Ghi công-Phi thương mại-Chia sẻ tương tự

Bạn có thể viết mã AI bằng Python không?

Python thường được sử dụng để phát triển các ứng dụng AI , chẳng hạn như cải thiện tương tác giữa người với máy tính, xác định xu hướng và đưa ra dự đoán. Một cách mà Python được sử dụng để tương tác giữa người với máy tính là thông qua chatbot.

Python nào tốt nhất cho AI?

Bây giờ bạn đã biết tại sao Python là một trong những ngôn ngữ lập trình hàng đầu, sau đây là 10 thư viện python tốt nhất cho machine learning và AI. .
NumPy. NumPy được coi là thư viện Python tốt nhất cho máy học và AI. .
khoa học viễn tưởng. .
theano. .
gấu trúc. .
TenorFlow. .
máy ảnh. .
PyTorch. .
Matplotlib

Python hay Java tốt hơn cho AI?

Python phù hợp hơn với máy học, trí tuệ nhân tạo và khoa học dữ liệu. Các nhà phát triển AI thích Python hơn Java vì tính dễ sử dụng, khả năng truy cập và tính đơn giản của nó. Java có hiệu suất tốt hơn Python nhưng Python yêu cầu ít mã hơn và có thể biên dịch ngay cả khi có lỗi trong mã của bạn.

OpenAI được mã hóa bằng gì?

OpenAI tuyên bố rằng Codex có thể hoạt động trong hơn chục ngôn ngữ lập trình, bao gồm Go, JavaScript, Perl, PHP, Ruby, Shell, Swift và TypeScript, though it is most effective in Python.

Chủ Đề