Các thư viện lập trình
Sau đây là những thư viện lập trình Machine Learning mã nguồn mở tốt nhất hiện nay. Tôi không nghĩ rằng tất cả đều thích hợp để sử dụng trong các hệ thống thực tế, nhưng chúng là cơ sở lý tưởng để bạn học tập, tìm hiểu và tạo nguyên mẫu (prototyping).
Hãy bắt đầu với 1 thư viện trong 1 ngôn ngữ mà bạn biết rõ, sau đó chuyển sang các thư viện khác mạnh hơn. Nếu là một lập trình viên giỏi, thì bạn có thể dễ dàng chuyển từ ngôn ngữ này sang ngôn ngữ khác. Tất cả đều có cùng một logic, chỉ khác nhau về cú pháp và APIs.
- R Project for Statistical Computing: Đây là môi trường và ngôn ngữ kịch bản tương tự như lisp. Tất cả các số liệu thống kê sẽ được cung cấp qua ngôn ngữ R, bao gồm cả vẽ đồ thị. Ở mục Machine Learning trên CRAN (các package về Machine Learning của bên thứ ba) có phần code được viết bởi các chuyên gia trong lĩnh vực này. Nếu muốn tạo nguyên mẫu (prototype) thì bạn nhất định phải học R
- WEKA: Đây là một Data Mining workbench cung cấp APIs, một số dòng lệnh và giao diện đồ họa cho toàn bộ vòng đời khai thác dữ liệu (data mining). Bạn có thể chuẩn bị dữ liệu, tìm hiểu trực quan, phân loại, hồi quy và các mô hình phân nhóm và nhiều thuật toán được cung cấp qua các plugin của bên thứ ba. Không liên quan đến WEKA, Mahout là một framework Java rất tốt cho Machine Learning trên cơ sở hạ tầng Hadoop. Nếu mới bắt đầu với lĩnh vực big data và machine learning, thì hãy gắn bó với WEKA và học nó từng phần một.
- Scikit Learn: Machine Learning trong Python được xây dựng dựa trên NumPy và Scipy. Thư viện này rất phù hợp với các lập trình viên Python hoặc Ruby. Nó rất dễ sử dụng, mạnh mẽ và đi kèm với tài liệu hướng dẫn tuyệt vời. Orange sẽ là một lựa chọn tốt nếu bạn muốn thử nghiệm điều gì đó mới mẻ.
- Octave: Nếu đã quen thuộc với Matlab hoặc là 1 lập trình viên NumPy đang tìm kiếm 1 cái gì đó khác biệt, thì hãy thử Octave. Octave là môi trường hỗ trợ tính toán số, tương tự như Matlab, có thể viết các chương trình giải quyết dễ dàng vấn đề tuyến tính và phi tuyến tính. Các bạn đã có nền tảng về kỹ thuật thì nên bắt đầu với Octave.
- BigML: Bạn không muốn viết code. Bạn có thể sử dụng các công cụ như WEKA mà hoàn toàn không cần lập trình chút nào cả hoặc sử dụng các dịch vụ như BigML cung cấp các interface machine learning trên web, nơi mà giúp bạn khám phá tất cả các mô hình xây dựng trong trình duyệt.
Chọn lấy 1 nền tảng và dùng nó để thực hành trong quá trình học về machine learning. Đừng chỉ đọc lý thuyết suông, hãy bắt tay vào làm.
Các khóa học bằng video
- Stanford Machine Learning: gồm các bài giảng của Andrew Ng thuộc trường đại học Stanford trên Coursera. Sau khi ghi danh, bạn có thể xem tất cả các bài giảng bất cứ lúc nào và nhận được những kiến thức thực tế như trong khóa học Stanford CS229. Khóa học này có cả bài tập về nhà và bài kiểm tra tập trung vào đại số tuyến tính và cách sử dụng Octave.
- Caltech Learning from Data: được giảng dạy bởi Yaser Abu-Mostafa. Mọi bài giảng và tài liệu của khóa học đã có sẵn trên trang web CalTech. Tương tự như Stanford, tùy theo tốc độ mà bạn muốn, bạn có thể học và hoàn thành các bài tập được giao. Caltech Learning from Data gồm các chủ đề đi sâu về chi tiết và tập trung nhiều ở mảng toán học. Với các bạn mới bắt đầu, bài tập về nhà sẽ là thách thức không nhỏ.
- Machine Learning Category on VideoLectures.Net: Hãy tìm những video được nhiều người xem và được đánh giá cao nhất vì có rất nhiều nội dung ở đây.
- “Getting In Shape For The Sport Of Data Science” – Talk by Jeremy Howard: Bài trao đổi rất có giá trị 1 nhóm users group R.
Một số tài liệu khác
- The Discipline of Machine Learning: Đây là một sách trắng (sách trắng là bản báo cáo hoặc bản hướng dẫn của cơ quan có thẩm quyền với mục đích giúp người đọc hiểu về 1 vấn đề, giải quyết 1 vấn đề hoặc ra 1 quyết định) định nghĩa các nguyên tắc của Machine Learning được chấm bút bởi tác giả Tom Mitchell. Đây là một phần trong tài liệu mà Mitchell sử dụng để thuyết phục hiệu trưởng của trường ĐH CMU thành lập khoa Machine Learning độc lập (xem cuộc phỏng vấn ngắn với Tom Mitchell tại đây).
- A Few Useful Things to Know about Machine Learning: Tài liệu tuyệt vời đề cập đến các thuật toán cụ thể và thúc đẩy 1 số vấn đề quan trọng như khả năng khái quát lựa chọn tính năng (feature selection generalizability) và tính đơn giản của mô hình. Đây đều là những kiến thức quan trọng với những bạn mới bắt đầu.
Sách về Machine Learning cho người mới bắt đầu
- Programming Collective Intelligence: Building Smart Web 2.0 Applications: Quyển sách được viết cho đối tượng lập trình viên. Nó nhẹ về mặt lý thuyết, nặng về ví dụ lập trình cũng như những giải pháp và vấn đề thực tiễn trên web.
- Machine Learning for Hackers: Tôi khuyên bạn nên đọc cuốn sách này sau khi đọc cuốn Programming Collective Intelligence (ở trên). Machine Learning for Hackers cung cấp các ví dụ thực tế, nhưng thiên về phân tích dữ liệu và sử dụng R. Tôi thực sự thích cuốn sách này!
- Machine Learning: An Algorithmic Perspective: Cuốn sách này giống như một phiên bản nâng cao của cuốn Programming Collective Intelligence (ở trên), nhắm đến các đối tượng lập trình viên bắt đầu nghiên cứu Machine Learning. Sách cũng bao gồm toán học và các ví dụ viết bằng Python. Bạn nên đọc cuốn sách này sau khi đọc cuốn Programming Collective Intelligence.
- Data Mining: Practical Machine Learning Tools and Techniques, Third Edition: Tôi đã bắt đầu bằng cuốn sách này với phiên bản đầu tiên xuất bản vào năm 2000. Lúc đó tôi là 1 lập trình viên Java nên cuốn sách này kết hợp với thư viện WEKA trở thành 1 môi trường hoàn hảo để tôi thử nghiệm, thực thi các thuật toán của mình.
- Machine Learning: Một cuốn sách cũ gồm các công thức và rất nhiều tài liệu tham khảo. Nội dung của sác rõ ràng và dễ dàng tiếp cận thông qua các thuật toán.
Tất nhiên ngoài kia cũng có rất nhiều cuốn sách tuyệt vời khác về Machine Learning, nhưng tôi nghĩ những tài liệu trên đây mới thực sự phù hợp với những bạn mới tìm hiểu về lĩnh vực này.
via Techmaster