Học máy là gì? [đóng cửa]


93
  • Học máy là gì?
  • máy học làm gì?
  • Khi chúng ta nói rằng máy học, nó có sửa đổi mã của chính nó hay nó sửa đổi lịch sử (cơ sở dữ liệu) sẽ chứa trải nghiệm mã cho tập hợp đầu vào nhất định?

Câu trả lời:


146

Máy học là gì?

Về cơ bản, nó là một phương pháp dạy máy tính thực hiện và cải thiện các dự đoán hoặc hành vi dựa trên một số dữ liệu. "Dữ liệu" này là gì? Chà, điều đó hoàn toàn phụ thuộc vào vấn đề. Nó có thể là các bài đọc từ cảm biến của robot khi nó học cách đi bộ hoặc kết quả đầu ra chính xác của một chương trình cho một số đầu vào nhất định.

Một cách khác để nghĩ về học máy là "nhận dạng mẫu" - hành động dạy một chương trình phản ứng lại hoặc nhận ra các mẫu.

Mã máy học làm gì?

Phụ thuộc vào loại máy học mà bạn đang nói đến. Học máy là một lĩnh vực rộng lớn , với hàng trăm thuật toán khác nhau để giải quyết vô số vấn đề khác nhau - hãy xem Wikipedia để biết thêm thông tin; cụ thể, hãy xem trong Các loại thuật toán .

Khi chúng ta nói rằng máy học, nó sẽ sửa đổi mã của chính nó hay nó sửa đổi lịch sử (Cơ sở dữ liệu) sẽ chứa trải nghiệm mã cho một tập hợp đầu vào nhất định?

Một lần nữa, nó phụ thuộc .

Một ví dụ về mã thực sự được sửa đổi là Lập trình di truyền , trong đó về cơ bản bạn phát triển một chương trình để hoàn thành một nhiệm vụ (tất nhiên, chương trình không tự sửa đổi - nhưng nó sửa đổi một chương trình máy tính khác).

Mặt khác, mạng lưới thần kinh tự động sửa đổi các tham số của chúng để đáp ứng với các kích thích đã chuẩn bị và phản ứng dự kiến. Điều này cho phép chúng tạo ra nhiều hành vi (về mặt lý thuyết, chúng có thể tạo ra bất kỳ hành vi nào vì chúng có thể xấp xỉ bất kỳ hàm nào với độ chính xác tùy ý, cho đủ thời gian).


Tôi nên lưu ý rằng việc bạn sử dụng thuật ngữ "cơ sở dữ liệu" ngụ ý rằng các thuật toán học máy hoạt động bằng cách "ghi nhớ" thông tin, sự kiện hoặc trải nghiệm. Điều này không nhất thiết (hoặc thậm chí thường xuyên!).

Mạng nơron, mà tôi đã đề cập, chỉ giữ "trạng thái" gần đúng hiện tại, được cập nhật khi quá trình học diễn ra. Thay vì ghi nhớ những gì đã xảy ra và cách phản ứng với nó, mạng thần kinh xây dựng một loại "mô hình" về "thế giới" của chúng. Mô hình cho họ biết cách phản ứng với các đầu vào nhất định, ngay cả khi các đầu vào là thứ mà nó chưa từng thấy trước đây.

Khả năng cuối cùng này - khả năng phản ứng với các đầu vào chưa từng thấy trước đây - là một trong những nguyên lý cốt lõi của nhiều thuật toán học máy. Hãy tưởng tượng bạn đang cố gắng dạy một người lái xe máy tính điều hướng trên đường cao tốc khi giao thông. Sử dụng phép ẩn dụ "cơ sở dữ liệu" của bạn, bạn sẽ phải dạy máy tính chính xác phải làm gì trong hàng triệu tình huống có thể xảy ra. Một thuật toán học máy hiệu quả sẽ (hy vọng!) Có thể tìm hiểu những điểm tương đồng giữa các trạng thái khác nhau và phản ứng với chúng một cách tương tự.

Sự tương đồng giữa các trạng thái có thể là bất cứ điều gì - ngay cả những thứ mà chúng ta có thể nghĩ là "trần tục" thực sự có thể kích hoạt máy tính! Ví dụ, giả sử rằng trình điều khiển máy tính học được rằng khi một chiếc xe phía trước giảm tốc độ, nó phải giảm tốc độ. Đối với con người, việc thay thế ô tô bằng mô tô không thay đổi được gì - chúng tôi nhận ra rằng mô tô cũng là một phương tiện. Đối với một thuật toán học máy, điều này thực sự có thể khó một cách đáng ngạc nhiên! Một cơ sở dữ liệu sẽ phải lưu trữ thông tin riêng biệt về trường hợp ô tô ở phía trước và vị trí xe máy ở phía trước. Mặt khác, một thuật toán học máy sẽ "học" từ ví dụ ô tô và có thể tự động tổng quát hóa thành ví dụ xe máy.


3
Những lời giải thích của bạn thực sự rất đáng và đáng trân trọng. Bạn có thể vui lòng giải thích sâu về ví dụ của trình điều khiển "Máy tính" (liên quan đến tuyên bố của bạn- "tìm hiểu những điểm tương đồng giữa các trạng thái khác nhau") không?
Kushal Waikar

3
Ví dụ xuất sắc. Tôi đánh giá cao nỗ lực của bạn để giải thích. Cảm ơn rất nhiều!
Kushal Waikar

1
Tại sao 'KNN' hoặc 'K có nghĩa là' nằm trong Học máy. Bạn có thể giải thích được không. Cảm ơn bạn
Sunku Vamsi Tharun Kumar

23

Học máy là một lĩnh vực khoa học máy tính, lý thuyết xác suất và lý thuyết tối ưu hóa cho phép giải quyết các nhiệm vụ phức tạp mà cách tiếp cận thủ tục / logic sẽ không khả thi hoặc không khả thi.

Có một số danh mục học máy khác nhau, bao gồm (nhưng không giới hạn ở):

  • Học tập có giám sát
  • Học tăng cường

Học tập có giám sát
Trong học tập có giám sát, bạn có một số chức năng thực sự phức tạp (ánh xạ) từ đầu vào đến đầu ra, bạn có rất nhiều ví dụ về các cặp đầu vào / đầu ra, nhưng bạn không biết chức năng phức tạp đó là gì. Thuật toán học có giám sát giúp nó có thể, với một tập dữ liệu lớn gồm các cặp đầu vào / đầu ra, để dự đoán giá trị đầu ra cho một số giá trị đầu vào mới mà bạn có thể chưa thấy trước đây. Phương pháp cơ bản là bạn chia nhỏ tập dữ liệu thành tập huấn luyện và tập kiểm tra. Bạn có một số mô hình có chức năng lỗi liên quan mà bạn cố gắng giảm thiểu trong tập huấn luyện và sau đó bạn đảm bảo rằng giải pháp của mình hoạt động trên tập thử nghiệm. Khi bạn đã lặp lại điều này với các thuật toán và / hoặc tham số học máy khác nhau cho đến khi mô hình hoạt động tốt trên bộ thử nghiệm, thì bạn có thể thử sử dụng kết quả trên các đầu vào mới. Lưu ý rằng trong trường hợp này, chương trình không thay đổi, chỉ thay đổi mô hình (dữ liệu). Mặc dù về mặt lý thuyết, người ta có thể tạo ra một chương trình khác, nhưng điều đó không được thực hiện trong thực tế, theo như tôi biết. Một ví dụ về học tập có giám sát sẽ là hệ thống nhận dạng chữ số được sử dụng bởi bưu điện, nơi nó ánh xạ các pixel tới các nhãn trong tập hợp 0 ​​... 9, sử dụng một tập hợp lớn các hình ảnh gồm các chữ số được dán nhãn bằng tay như là số 0 ... 9.

Học tăng cường
Trong học tập củng cố, chương trình chịu trách nhiệm đưa ra quyết định và định kỳ nó sẽ nhận được một số loại giải thưởng / tiện ích cho các hành động của nó. Tuy nhiên, không giống như trong trường hợp học tập có giám sát, kết quả không phải là ngay lập tức; thuật toán có thể quy định một chuỗi hành động lớn và chỉ nhận được phản hồi ở cuối. Trong học tập củng cố, mục tiêu là xây dựng một mô hình tốt sao cho thuật toán sẽ tạo ra chuỗi các quyết định dẫn đến tiện ích / phần thưởng dài hạn cao nhất. Một ví dụ điển hình về việc học tăng cường là dạy cho rô bốt cách điều hướng bằng cách đưa ra hình phạt tiêu cực bất cứ khi nào cảm biến va chạm của nó phát hiện ra rằng nó đã va vào một vật thể. Nếu được mã hóa chính xác, rô bốt cuối cùng có thể tương quan dữ liệu cảm biến công cụ tìm phạm vi của nó với dữ liệu cảm biến cản và hướng gửi đến các bánh xe,

Thông tin khác
Nếu bạn muốn tìm hiểu thêm, tôi thực sự khuyên bạn nên đọc Nhận dạng mẫu và Học máy của Christopher M. Bishop hoặc tham gia một khóa học về máy học. Bạn cũng có thể quan tâm đến việc đọc miễn phí các ghi chú bài giảng từ CIS 520: Máy học tại Penn .


2
Bạn đã đề cập "... cách tiếp cận hợp lý / thủ tục sẽ không khả thi hoặc không khả thi." Bạn có thể vui lòng giải thích điều này với các ví dụ? Cảm ơn bạn.
LionHeart

@LionHeart, một ví dụ điển hình là nhận dạng ký tự. Bạn có thể thử mã hóa một thuật toán có thể nhận ra nhiều đường cong, đường thẳng và các đặc điểm khác của các ký tự khác nhau, nhưng khi nói đến nó, đó là một nhiệm vụ rất khó khăn và ML giải quyết nó khá đơn giản.
Michael Aaron Safyan

12

Học máy là một phương pháp luận để tạo mô hình dựa trên dữ liệu mẫu và sử dụng mô hình đó để đưa ra dự đoán hoặc chiến lược. Nó thuộc về trí tuệ nhân tạo.


11
  • Học máy là một ngành khoa học liên quan đến việc thiết kế và phát triển các thuật toán cho phép máy tính phát triển các hành vi dựa trên dữ liệu thực nghiệm, chẳng hạn như từ dữ liệu cảm biến hoặc cơ sở dữ liệu. Đọc thêm trên Wikipedia

  • máy học ghi lại "dữ kiện" hoặc ước tính trong một số loại lưu trữ và với các thuật toán sẽ tính toán các xác suất khác nhau.

  • Bản thân mã sẽ không bị sửa đổi khi máy học, chỉ có cơ sở dữ liệu về những gì "nó biết".


Học máy không yêu cầu cơ sở dữ liệu. Nó cũng không phải lúc nào cũng ghi lại "sự thật". Một số điều chỉ là phỏng đoán. Một số điều là gần đúng. Không phải mọi thứ mà máy học được đều có thể được coi là sự thật.
Kevin Crowell

2
Bạn vẫn đang giới hạn câu trả lời của mình cho một khu vực học máy cụ thể. Dữ kiện hoặc ước tính không phải lúc nào cũng được ghi lại. Mọi thứ có thể được trải nghiệm, phản ứng và quên đi. "Lưu trữ" không phải là yếu tố chính của học máy. Nó có thể được sử dụng, nhưng không phải là một điều cần thiết.
Kevin Crowell

4
nếu chương trình học máy lưu trữ dữ liệu mà nó đã học, thì sẽ không có lý do gì để có chương trình ... chúng tôi sẽ chỉ truy vấn chính dữ liệu đó. Hầu hết các chương trình ML chỉ tạo một mô hình dữ liệu vì một tập dữ liệu có thể khá lớn (vài GB) và chúng tôi muốn chương trình có sức mạnh dự đoán đối với các tập dữ liệu không nhìn thấy. Hầu như không có lý do gì để một chương trình ML lưu trữ dữ liệu.
Kiril

11

Học máy chỉ đơn giản là một thuật ngữ chung để xác định nhiều thuật toán học tập khác nhau tạo ra một phương pháp học gần như từ các ví dụ (không gắn nhãn / có nhãn). Độ chính xác / sai số thực tế hoàn toàn được xác định bởi chất lượng dữ liệu đào tạo / kiểm tra mà bạn cung cấp cho thuật toán học tập của mình. Điều này có thể được đo bằng tốc độ hội tụ. Lý do bạn cung cấp ví dụ là vì bạn muốn thuật toán học tập mà bạn chọn có thể thông qua hướng dẫn thực hiện tổng quát hóa. Các thuật toán có thể được phân loại thành hai lĩnh vực chính là kỹ thuật học có giám sát (phân loại) và học không giám sát (phân cụm). Điều cực kỳ quan trọng là bạn phải đưa ra quyết định sáng suốt về cách bạn dự định tách tập dữ liệu đào tạo và kiểm tra cũng như chất lượng mà bạn cung cấp cho thuật toán học tập của mình. Khi bạn cung cấp các tập dữ liệu, bạn cũng muốn lưu ý những điều như quá phù hợp và duy trì cảm giác thiên vị lành mạnh trong các ví dụ của bạn. Sau đó, thuật toán về cơ bản học viết để viết trên cơ sở tổng quát hóa mà nó đạt được từ dữ liệu bạn đã cung cấp cho nó cả để đào tạo và sau đó để thử nghiệm trong quá trình bạn cố gắng để thuật toán học tập của mình tạo ra các ví dụ mới trên cơ sở đào tạo mục tiêu của bạn. Trong phân cụm, có rất ít hướng dẫn về thông tin mà thuật toán về cơ bản cố gắng tạo ra thông qua các phép đo các mẫu giữa dữ liệu để xây dựng các tập hợp các cụm liên quan, ví dụ như kmeans / hàng xóm gần nhất. Sau đó, thuật toán về cơ bản học viết để viết trên cơ sở tổng quát hóa mà nó đạt được từ dữ liệu bạn đã cung cấp cho nó cả để đào tạo và sau đó để thử nghiệm trong quá trình bạn cố gắng để thuật toán học tập của mình tạo ra các ví dụ mới trên cơ sở đào tạo mục tiêu của bạn. Trong phân cụm, có rất ít hướng dẫn về thông tin mà thuật toán về cơ bản cố gắng tạo ra thông qua các phép đo các mẫu giữa dữ liệu để xây dựng các tập hợp các cụm liên quan, ví dụ như kmeans / hàng xóm gần nhất. Sau đó, thuật toán về cơ bản học viết để viết trên cơ sở tổng quát hóa mà nó đạt được từ dữ liệu bạn đã cung cấp cho nó cả để đào tạo và sau đó để thử nghiệm trong quá trình bạn cố gắng để thuật toán học tập của mình tạo ra các ví dụ mới trên cơ sở đào tạo mục tiêu của bạn. Trong phân cụm, có rất ít hướng dẫn về thông tin mà thuật toán về cơ bản cố gắng tạo ra thông qua các phép đo các mẫu giữa dữ liệu để xây dựng các tập hợp các cụm liên quan, ví dụ như kmeans / hàng xóm gần nhất.

một số sách hay: Giới thiệu về ML (Nilsson / Stanford), Quy trình Gaussian cho ML, Giới thiệu về ML (Alpaydin), Giải thuật suy luận và học tập lý thuyết thông tin (sách rất hữu ích), Học máy (Mitchell), Nhận dạng khuôn mẫu và Học máy (tiêu chuẩn Cuốn sách khóa học ML tại Edinburgh và các trường Đại học khác nhau nhưng tương đối nặng về toán học), Khai thác dữ liệu và Học máy thực tế với Weka (học qua lý thuyết bằng weka và thực hành bằng Java)

Học củng cố Có một cuốn sách trực tuyến miễn phí mà bạn có thể đọc: http://www.cs.ualberta.ca/~sutton/book/ebook/the-book.html

IR, IE, Recommenders và Khai thác Văn bản / Dữ liệu / Web nói chung sử dụng rất nhiều nguyên tắc Học máy. Bạn thậm chí có thể áp dụng Kỹ thuật tối ưu hóa toàn cầu / Metaheuristic tại đây để tự động hóa hơn nữa quy trình học tập của mình. ví dụ: áp dụng một kỹ thuật tiến hóa như GA (thuật toán di truyền) để tối ưu hóa cách tiếp cận dựa trên mạng thần kinh của bạn (có thể sử dụng một số thuật toán học tập). Bạn có thể tiếp cận nó hoàn toàn dưới dạng phương pháp học máy theo xác suất, ví dụ học bayesian. Hầu hết các thuật toán này đều có sử dụng thống kê rất nặng. Các khái niệm về hội tụ và tổng quát hóa là quan trọng đối với nhiều thuật toán học tập này.


8

Học máy là nghiên cứu trong khoa học máy tính về việc tạo ra các thuật toán có thể phân loại thông tin mà chúng chưa từng thấy trước đây, bằng cách học các mẫu từ đào tạo về thông tin tương tự. Có đủ loại "người học" theo nghĩa này. Mạng nơ-ron, mạng Bayes, cây quyết định, thuật toán phân cụm k, mô hình markov ẩn và máy vectơ hỗ trợ là những ví dụ.

Dựa trên người học, mỗi người học theo những cách khác nhau. Một số người học tạo ra các khuôn khổ mà con người có thể hiểu được (ví dụ như cây quyết định), và một số người thường không thể hiểu được (ví dụ như mạng nơ-ron).

Tất cả người học về cơ bản đều theo hướng dữ liệu, nghĩa là họ lưu trạng thái của mình dưới dạng dữ liệu để được sử dụng lại sau này. Họ không tự sửa đổi như vậy, ít nhất là nói chung.


8

Tôi nghĩ rằng một trong những định nghĩa thú vị nhất về học máy mà tôi đã đọc là từ cuốn sách này của Tom Mitchell. Dễ nhớ và trực quan.

Một chương trình máy tính được cho là học hỏi từ trải nghiệm E đối với một số loại nhiệm vụ T và thước đo hiệu suất P, nếu hiệu suất của nó ở các nhiệm vụ trong T, được đo bằng P, cải thiện theo trải nghiệm E


21
Tôi luôn ghét cách định nghĩa này được lặp đi lặp lại, thậm chí được dạy, mặc dù việc sử dụng các ký hiệu không cần thiết. Đơn giản hơn, tốt hơn: Một chương trình máy tính được cho là học hỏi kinh nghiệm đối với một số loại nhiệm vụ nếu hiệu suất của nó trong các tác vụ này, đối với một số biện pháp hiệu suất, được cải thiện theo kinh nghiệm. Bây giờ chúng ta hãy đơn giản hóa một số chi tiết. A computer program is said to learn in the context of performing a task if its performance with respect to some measure improves with experience.
Ninjakannon

1
Tôi đã làm Machine Learning được khoảng một năm và thậm chí hôm nay tôi phải đọc nó vài lần để hiểu chính xác nghĩa của nó. Tôi tự hỏi tôi xấu hay đó là định nghĩa.
Maxim Dsouza

7
  • Được trích xuất từ ​​Wikipedia một cách đáng xấu hổ: Máy học là một ngành khoa học liên quan đến việc thiết kế và phát triển các thuật toán cho phép máy tính phát triển các hành vi dựa trên dữ liệu thực nghiệm, chẳng hạn như từ dữ liệu cảm biến hoặc cơ sở dữ liệu.

  • Rất đơn giản, mã máy học hoàn thành một nhiệm vụ máy học. Đó có thể là một số thứ, từ việc diễn giải dữ liệu cảm biến đến thuật toán di truyền.

  • Tôi sẽ nói rằng nó phụ thuộc. Không, việc sửa đổi mã không phải là bình thường, nhưng không nằm ngoài khả năng. Tôi cũng sẽ không nói rằng học máy luôn sửa đổi lịch sử. Đôi khi chúng ta không có lịch sử để xây dựng. Đôi khi chúng ta chỉ muốn phản ứng với môi trường, nhưng không thực sự học hỏi từ những kinh nghiệm trong quá khứ của chúng ta.

Về cơ bản, học máy là một ngành học rất rộng mở chứa nhiều phương pháp và thuật toán khiến bạn không thể có 1 câu trả lời cho câu hỏi thứ 3 của mình.


6

Máy học là một thuật ngữ được lấy từ thế giới thực của một người và được áp dụng trên một thứ không thể thực sự học được - một cỗ máy.

Để thêm vào các câu trả lời khác - máy học sẽ không (thường) thay đổi mã, nhưng nó có thể thay đổi đường dẫn thực thi và quyết định dựa trên dữ liệu trước đó hoặc dữ liệu mới được thu thập và do đó có hiệu ứng "học".

có nhiều cách để "dạy" một chiếc máy - bạn đưa ra trọng số cho nhiều tham số của một thuật toán, và sau đó để máy giải quyết nó cho nhiều trường hợp, mỗi lần bạn cho cô ấy phản hồi về câu trả lời và máy sẽ điều chỉnh trọng số theo Câu trả lời của máy gần như thế nào với câu trả lời của bạn hoặc theo số điểm mà bạn đã cho câu trả lời đó hoặc theo một số thuật toán kiểm tra kết quả.

Đây là một cách học và còn nhiều cách khác ...

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.