Các thuật toán tuyệt vời, học máy và không có đại số tuyến tính


30

Tôi dạy một khóa học thuật toán nâng cao và muốn bao gồm một số chủ đề liên quan đến học máy sẽ được các học sinh của tôi quan tâm. Kết quả là, tôi muốn nghe ý kiến ​​của mọi người về kết quả thuật toán thú vị nhất / lớn nhất hiện nay trong học máy. Hạn chế khó khăn tiềm tàng là các sinh viên sẽ không có bất kỳ kiến ​​thức cụ thể nào trước đây về đại số tuyến tính hoặc các chủ đề chính khác trong học máy.

Điều này thực sự là để kích thích họ về chủ đề này và cho họ biết rằng ML là một lĩnh vực nghiên cứu thú vị tiềm năng cho các chuyên gia thuật toán.

EDIT: Đây là khóa học đại học năm cuối (vì chúng tôi không có khóa học sau đại học ở Anh). Họ sẽ thực hiện ít nhất một khóa học thuật toán cơ bản trước đó và có lẽ đã hoàn thành tốt trong đó để chọn khóa học tiếp theo nâng cao. Các giáo trình hiện tại của khóa học nâng cao có các chủ đề như băm hoàn hảo, bộ lọc Bloom, cây van Emde Boas, chương trình tuyến tính, khoảng. Các thuật toán cho các bài toán NP-hard, v.v. Tôi không có ý định dành nhiều hơn một bài giảng cho ML nhưng nếu một cái gì đó thực sự phù hợp với cả khóa học thuật toán và ML thì tất nhiên nó cũng có thể được đưa vào.


1
Xin hãy làm rõ hai điều: 1) Đây là khóa học đại học hay khóa học sau đại học? Những khóa học liên quan (nếu có) họ đã vượt qua? 2) Bạn muốn dành bao nhiêu thời gian cho ML?
MS Dousti

3
hmmm Tôi nghĩ đại số tuyến tính là một khóa học bắt buộc và quan trọng, ít nhất là trong lĩnh vực máy học. và tôi nghĩ mô hình tuyến tính là một giới thiệu rất tốt cho các thuật toán học máy. bạn có thể nghĩ về các thuật toán mức cơ bản khác như thuật toán hồi quy lân cận K hoặc gần nhất. điều này có thể giúp bạn en.wikipedia.org/wiki/List_of_machine_learning_alerskyms
Deyaa

1
Có lẽ một số ý tưởng từ cách Hal Daume dạy Machine Learning - nlpers.blogspot.com/2010/04/how-i-teach-machine-learning.html
Yaroslav Bulatov

3
Raphael thân mến, Avrim Blum thường kết thúc lớp học thuật toán cấp cao của mình bằng máy học và một vài chủ đề liên quan; một lần lặp gần đây là tại liên kết sau cs.cmu.edu/~avrim/451f09/index.html và bạn có thể lấy thêm thông tin từ trang web của anh ấy. Có cả TA'd và tham gia lớp học này, tôi có thể nói rằng nó (và tài liệu kết luận của nó) được các sinh viên đón nhận rất nồng nhiệt.
matus

Câu trả lời:


29

Bạn có thể bao gồm tăng cường . Nó rất thông minh, dễ thực hiện, được sử dụng rộng rãi trong thực tế và không đòi hỏi nhiều kiến ​​thức tiên quyết để hiểu.


5
Tôi đã trình bày một số phần của cuộc khảo sát của Arora et al. ( cs.princeton.edu/~arora/pub/MWsurvey.pdf ) trong lớp lý thuyết grad một vài năm trước. Mọi người dường như thích nó và tôi nghĩ rằng bạn gần như không cần nền tảng để hiểu tài liệu này.
Danu

9

Nếu bạn chỉ muốn kích thích sự thèm ăn của họ trong một bài giảng, có lẽ sẽ thú vị nhất khi trình bày một ứng dụng mạnh mẽ. Ví dụ, máy vectơ hỗ trợ và các thuật toán học máy khác, được sử dụng trong hóa học hóa học để khám phá thuốc.

Vấn đề học tập về cơ bản là: đưa ra một hành vi mà chúng ta muốn một hóa chất thể hiện, đưa ra một cấu trúc thể hiện hành vi đó bằng cách suy ra nó từ cơ sở dữ liệu của các cấu trúc đã biết thể hiện các hành vi tương tự (hoặc không giống nhau). Vấn đề học tập có thêm một nếp nhăn: loại thuốc mới cần phải "xa cách" trong cấu trúc toàn cầu so với các loại thuốc đã biết trước đây, để tìm ra một bất động sản bằng sáng chế.

Một nguồn là Phương pháp phân cụm và Công dụng của chúng trong Hóa học tính toán .


1
Cảm ơn đã tham khảo. Tôi đã nghĩ về việc dạy các SVM như là một ứng dụng tối ưu hóa lồi. Điều đó sẽ liên quan đến phần thuật toán với phần ML độc đáo.
Raphael

2
Làm thế nào để bạn bao gồm các SVM mà không có đại số tuyến tính?
Lev Reyzin

Tôi đã hy vọng dạy cho họ những điều kiện tiên quyết tối thiểu cho nó trong khóa học của tôi. Có lẽ điều đó quá lạc quan :-)
Raphael

Vẫn còn những ví dụ quan trọng trong đó máy vectơ hỗ trợ là sự lựa chọn tốt nhất? Tôi nhận thấy rằng trên các cuộc thi kaggle, chẳng hạn, chúng không bao giờ là phần chính của một mục thắng. Ít nhất không phải bất kỳ điều gì tôi đã thấy gần đây. (Tất nhiên là tôi sẽ được sửa chữa.)
Lembik

7

K-Means và KNN rất mạnh và không yêu cầu bất kỳ Đại số tuyến tính nào ngoại trừ việc tính toán khoảng cách của các điểm.


K-Means nói riêng là một thuật toán rất mạnh. Nó cực kỳ hiệu quả mặc dù chưa chứng minh được giới hạn về hiệu suất chức năng mục tiêu của nó, đến mức độ ma quái đến nỗi nó gần giống như độ phức tạp đa thức hiệu quả của thuật toán Simplex (mặc dù độ phức tạp theo cấp số nhân thực sự). Phiên bản trực tuyến của nó cũng hữu ích trong các ứng dụng dữ liệu quy mô lớn.
Elliot JJ

5

Phần thứ hai của "Mạng nơ-ron và học máy" của Christopher Bishop (tại MSR) là về các thuật toán trong ML. Sách giáo khoa của Đức cha thường được sử dụng cho sách giáo khoa sau đại học (và sau này là đại học) và được viết rất tốt.


4

Thuật toán này sử dụng các vết cắt tối thiểu của đồ thị để phân loại số lượng lớn các mẫu không nhãn chỉ sử dụng một lượng nhỏ các mẫu được dán nhãn.

Sinh viên của nó thân thiện. Tôi đã giải thích điều này với một vài sinh viên được chọn ngẫu nhiên và họ hiểu nó.

Tham chiếu: Blum, A., & Chawla, S. (2001). Học hỏi từ dữ liệu được dán nhãn và không nhãn bằng cách sử dụng biểu đồ.

Tự quảng cáo Trực quan hóa thuật toán trên youtube .



1

Các thuật toán học tăng cường (đặc biệt là Q-Learning và SARSA) khá đơn giản để hiểu và rất mạnh để giải quyết một số vấn đề học tập. Họ không yêu cầu bất kỳ kiến ​​thức nâng cao nào về đại số tuyến tính, ngoại trừ bằng chứng hội tụ và tốc độ hội tụ.

Bạn có thể sử dụng khảo sát nổi tiếng của Littman và al.: Http://www.cs.cmu.edu/afs/cs/project/jair/pub/volume4/kaelbling96a-html/rl-survey.html


1

Bạn có thể bao gồm một số thuật toán cổ điển hoặc có trực giác tốt.

Ví dụ, C4.5 và GIỎI, là các thuật toán cây quyết định cổ điển.

Bạn cũng có thể bao gồm một số phương pháp tập hợp (ví dụ: AdaBoost (Tăng tốc), Đóng bao), có hiệu suất rất tốt trong các ứng dụng trong thế giới thực.

Hơn nữa, học sâu cũng là một chủ đề tốt, bởi vì nó rất nóng.



0

Các vịnh bản địa và mạng Bayes, thuật toán cây quyết định khá dễ hình dung hơn là bắt đầu với một mạng trung tính hoặc svm


0

Lập trình di truyền là thực sự mát mẻ. Nó sử dụng nguồn cảm hứng từ sinh học, và có thể được áp dụng cho một số lượng lớn các vấn đề (ví dụ, vấn đề n-nữ hoàng và TSP).

Nó không đòi hỏi kỹ năng toán học sâu sắc.

EDIT: Nó chỉ yêu cầu một cách để ước tính một giải pháp tiềm năng tốt như thế nào. Ví dụ, nó có thể được sử dụng để đoán quy tắc đằng sau một loạt các số, tìm cực tiểu / cực đại cho các vấn đề đa biến và tìm kiếm các không gian tham số lớn. Nó phù hợp khi bạn không quan tâm đến giải pháp tối ưu, nhưng khi một giải pháp đủ tốt sẽ làm. Tôi tin rằng điều này đã được sử dụng để tìm ra các chiến lược tốt cho các trò chơi (xây dựng đơn hàng trong Starcraft 2 và chơi tối ưu trong Mario).


Có bất kỳ vấn đề quan trọng mà nó là phương pháp tốt nhất? Tôi có nghĩa là nó chắc chắn không phải cho TSP chẳng hạn.
Lembik
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.