Що таке машинне навчання? [зачинено]


93
  • Що таке машинне навчання ?
  • Що робить код машинного навчання ?
  • Коли ми говоримо , що машина дізнається, це змінити код сам по собі або він змінює історію (бази даних) , яка буде містити досвід коду для даного набору входів?

Відповіді:


146

Що таке машинне навчання?

По суті, це метод навчання комп’ютерів робити та вдосконалювати прогнози чи поведінку на основі деяких даних. Що це за "дані"? Ну, це повністю залежить від проблеми. Це можуть бути показання з датчиків робота, коли він вчиться ходити, або правильний вихід програми для певного введення.

Інший спосіб думати про машинне навчання полягає в тому, що це «розпізнавання зразків» - акт навчання програмі реагувати на зразки або розпізнавати їх.

Що робить код машинного навчання?

Залежить від типу машинного навчання, про який ви говорите. Машинне навчання - це величезна сфера з сотнями різних алгоритмів для вирішення безлічі різних проблем - див. Вікіпедію для отримання додаткової інформації; зокрема, перегляньте розділ Типи алгоритмів .

Коли ми кажемо, що машина навчається, чи модифікує вона сам код чи модифікує історію (база даних), яка буде містити досвід роботи коду для заданого набору входів?

Ще раз, це залежить .

Одним із прикладів фактично модифікованого коду є Генетичне програмування , де ви по суті розробляєте програму для виконання завдання (звичайно, програма не модифікує себе - але змінює іншу комп'ютерну програму).

З іншого боку, нейронні мережі автоматично змінюють свої параметри у відповідь на підготовлені подразники та очікувану реакцію. Це дозволяє їм виробляти багато видів поведінки (теоретично вони можуть виробляти будь-яку поведінку, оскільки можуть апроксимувати будь-яку функцію з довільною точністю, даючи достатньо часу).


Слід зазначити, що використання вами терміна „база даних” передбачає, що алгоритми машинного навчання працюють, „запам’ятовуючи” інформацію, події чи досвід. Це не обов'язково (а то й часто!).

Нейронні мережі, про які я вже згадував, зберігають лише поточний "стан" наближення, який оновлюється в міру того, як відбувається навчання. Замість того, щоб згадувати, що сталося, і як на це реагувати, нейронні мережі будують своєрідну "модель" свого "світу". Модель говорить їм, як реагувати на певні входи, навіть якщо входи - це те, чого вона ніколи раніше не бачила.

Ця остання здатність - здатність реагувати на введення, яких ніколи раніше не бачили - є одним із основних принципів багатьох алгоритмів машинного навчання. Уявіть, що ви намагаєтесь навчити водія комп'ютера орієнтуватися на шосе в дорожньому русі. Використовуючи свою метафору "бази даних", вам доведеться навчити комп'ютер, що саме робити в мільйонах можливих ситуацій. Ефективний алгоритм машинного навчання (сподіваємось!) Зміг би вивчити подібність між різними станами і реагувати на них однаково.

Подібність між державами може бути будь-якою - навіть те, що ми можемо сприймати як "буденне", справді може зіпсувати комп'ютер! Наприклад, припустимо, що драйвер комп’ютера дізнався, що коли автомобіль перед ним пригальмував, він повинен був зменшити швидкість до. Для людини заміна автомобіля на мотоцикл нічого не змінює - ми визнаємо, що мотоцикл - це теж транспортний засіб. Для алгоритму машинного навчання це насправді може бути напрочуд важко! База даних повинна зберігати інформацію окремо про випадок, коли попереду автомобіль, а спереду мотоцикл. Алгоритм машинного навчання, навпаки, "навчиться" на прикладі автомобіля і зможе автоматично узагальнити на приклад мотоцикла.


3
Ваші пояснення дійсно дуже варті та помітні. Чи можете ви, детально, детально розробити приклад драйвера "Комп’ютер" (стосовно Вашого твердження - "дізнатися подібність між різними станами")?
Kushal Waikar

3
Прекрасний приклад. Я вдячний вашим зусиллям для пояснень. Дякую тонна!
Kushal Waikar

1
Чому "KNN" або "K означає" підпадає під машинне навчання. Ви можете пояснити, будь ласка. Дякую
Sunku Vamsi Tharun Kumar

23

Машинне навчання - це область інформатики, теорії ймовірностей та теорії оптимізації, яка дозволяє вирішувати складні завдання, для яких логічний / процедурний підхід був би неможливим або здійсненним.

Існує кілька різних категорій машинного навчання, включаючи (але не обмежуючись цим):

  • Навчання під контролем
  • Підкріплення навчання

Навчання під наглядом
У контрольованому навчанні у вас є якась справді складна функція (відображення) від входів до виходів, у вас є безліч прикладів пар вводу / виводу, але ви не знаєте, що це за складна функція. Керований алгоритм навчання дає можливість, враховуючи великий набір даних вхідних / вихідних пар, передбачити вихідне значення для деяких нових вхідних значень, яких ви, можливо, не бачили раніше. Основний метод полягає в тому, що ви розбиваєте набір даних на навчальний набір та набір тестів. У вас є модель із пов’язаною функцією помилок, яку ви намагаєтеся звести до мінімуму протягом навчального набору, а потім переконайтесь, що ваше рішення працює на тестовому наборі. Після того, як ви повторите це з різними алгоритмами та / або параметрами машинного навчання, поки модель не виконає достатньо високі показники на наборі тестів, ви можете спробувати використати результат на нових входах. Зверніть увагу, що в цьому випадку програма не змінюється, змінюється лише модель (дані). Хоча теоретично можна було б вивести іншу програму, але на практиці це не робиться, наскільки мені відомо. Прикладом контрольованого навчання може бути система розпізнавання цифр, яка використовується поштовим відділенням, де вона відображає пікселі до міток у наборі 0 ... 9, використовуючи великий набір зображень цифр, позначених вручну як значень 0 ... 9.

Підкріплення навчання
При навчанні підкріплення програма відповідає за прийняття рішень і періодично отримує якусь нагороду / корисність за свої дії. Однак, на відміну від випадку з контрольованим навчанням, результати не є негайними; алгоритм міг прописати велику послідовність дій і отримати відгук лише в самому кінці. При навчанні підкріплення мета полягає у створенні хорошої моделі, яка дозволить алгоритму генерувати послідовність рішень, що призводять до найвищої довгострокової корисності / винагороди. Хорошим прикладом навчання підкріплення є навчання робота, як орієнтуватися, даючи негативне покарання всякий раз, коли його датчик удару виявляє, що він наткнувся на предмет. При правильному кодуванні робот може врешті-решт співвіднести дані датчика дальномера з даними датчика бампера та напрямками, які надсилає на колеса,

Більше інформації
Якщо вам цікаво дізнатись більше, настійно рекомендую прочитати Розпізнавання зразків та машинне навчання Крістофера М. Бішопа або пройти курс машинного навчання. Можливо, вам також буде цікаво безкоштовно прочитати конспекти лекцій із СНД 520: Машинне навчання в Пенсільванії .


2
Ви згадали "... логічний / процедурний підхід був би неможливим або здійсненним". Не могли б ви, можливо, обговорити це на прикладах? Дякую.
LionHeart

@LionHeart, хорошим прикладом є розпізнавання символів. Ви можете спробувати кодувати алгоритм, який може розпізнавати різні криві, лінії та інші особливості різних символів, але коли справа доходить до цього, це дуже складне завдання, і ML вирішує це досить просто.
Michael Aaron Safyan

12

Машинне навчання - це методологія створення моделі на основі даних вибірки та використання моделі для прогнозування або стратегії. Він належить до штучного інтелекту.


11
  • Машинне навчання - це наукова дисципліна, яка займається розробкою та розробкою алгоритмів, що дозволяють комп’ютерам розвивати поведінку на основі емпіричних даних, наприклад, з даних датчиків або баз даних. Детальніше читайте у Вікіпедії

  • Код машинного навчання записує "факти" або наближення в якесь сховище, а за допомогою алгоритмів обчислює різні ймовірності.

  • Код сам по собі не буде змінений , коли машина дізнається, тільки база даних про те, що «він знає».


Для машинного навчання не потрібна база даних. Він також не завжди фіксує "факти". Деякі речі - це здогадки. Деякі речі є наближеннями. Не все, про що дізнається машина, можна вважати фактом.
Кевін Кровелл,

2
Ви все ще обмежуєте свою відповідь конкретним регіоном машинного навчання. Факти або наближення не завжди реєструються. Речі можна пережити, реагувати на них і забувати. "Зберігання" не є основним елементом машинного навчання. Його можна використовувати, але це не є необхідністю.
Кевін Кровелл,

4
якби програма машинного навчання зберігала вивчені дані, то не було б сенсу мати програму ... ми б просто запитували самі дані. Більшість програм ML створюють лише модель даних, оскільки набір даних може бути досить великим (кілька Гб), і ми хочемо, щоб програма мала прогнозуючу силу над невидимими наборами даних. Причин для програми ML для зберігання даних майже немає.
Кирило

11

Машинне навчання - це просто загальний термін, що визначає різноманітні алгоритми навчання, які створюють квазінавчання на прикладах (без маркування / маркування). Фактична точність / помилка повністю визначається якістю навчальних / тестових даних, які ви надаєте своєму алгоритму навчання. Це можна виміряти за допомогою коефіцієнта конвергенції. Причиною того, що ви подаєте приклади, є те, що ви хочете, щоб вибраний вами алгоритм навчання міг інформативно за допомогою вказівок зробити узагальнення. Алгоритми можна класифікувати за двома основними напрямками - методи контролю навчання (класифікація) та техніки навчання без контролю (кластеризація). Надзвичайно важливо, щоб ви прийняли обґрунтоване рішення щодо того, як ви плануєте відокремлювати свої навчальні та тестові набори даних, а також якість, яку ви надаєте своєму алгоритму навчання. Надаючи набори даних, ви також хочете бути в курсі таких речей, як надмірна відповідність і підтримка відчуття здорової упередженості у своїх прикладах. Потім алгоритм в основному навчається писати до писав на основі узагальнення, якого він досягає на основі даних, які ви йому надали як для навчання, так і для тестування в процесі ви намагаєтесь отримати ваш алгоритм навчання для створення нових прикладів на основі вашого цільового навчання. У кластеризації дуже мало інформативних вказівок, які в основному алгоритм намагається створити шляхом вимірювання шаблонів між даними для побудови пов'язаних наборів кластерів, наприклад, kmeans / найбільш близький сусід. Потім алгоритм в основному навчається писати-писав на основі узагальнення, якого він досягає на основі даних, які ви йому надали як для навчання, так і для тестування в процесі ви намагаєтесь отримати ваш алгоритм навчання для створення нових прикладів на основі вашого цільового навчання. У кластеризації дуже мало інформативних вказівок, які в основному алгоритм намагається створити шляхом вимірювання шаблонів між даними для побудови пов'язаних наборів кластерів, наприклад, kmeans / найбільш близький сусід. Потім алгоритм в основному навчається писати-писав на основі узагальнення, якого він досягає на основі даних, які ви йому надали як для навчання, так і для тестування в процесі ви намагаєтесь отримати ваш алгоритм навчання для створення нових прикладів на основі вашого цільового навчання. У кластеризації дуже мало інформативних вказівок, які в основному алгоритм намагається створити шляхом вимірювання шаблонів між даними для побудови пов'язаних наборів кластерів, наприклад, kmeans / найбільш близький сусід.

кілька хороших книг: Вступ до ML (Нілссон / Стенфорд), Гаусів процес ML, Вступ до ML (Alpaydin), Теорія інформації Висновок та Алгоритми навчання (дуже корисна книга), Машинне навчання (Мітчелл), Розпізнавання шаблонів та Машинне навчання (стандарт Підручник з ML в Единбурзі та різних Unis, але порівняно важке читання з математикою), видобуток даних та практичне машинне навчання з Weka (робота через теорію з використанням weka та практика на Java)

Arinforcement Learning - безкоштовна книга в Інтернеті, яку ви можете прочитати: http://www.cs.ualberta.ca/~sutton/book/ebook/the-book.html

IR, IE, рекомендатори та видобуток тексту / даних / веб-ресурсів загалом використовують багато принципів машинного навчання. Ви навіть можете застосувати тут метаевристичні / глобальні методи оптимізації для подальшої автоматизації ваших навчальних процесів. наприклад, застосувати еволюційний прийом, такий як GA (генетичний алгоритм), щоб оптимізувати підхід, заснований на нейронних мережах (який може використовувати певний алгоритм навчання). Ви можете підійти до нього суто у формі імовірнісного підходу до машинного навчання, наприклад, баєсівське навчання. У більшості цих алгоритмів дуже активно використовується статистика. Поняття збіжності та узагальнення важливі для багатьох із цих алгоритмів навчання.


8

Машинне навчання - це вивчення в обчислювальній науці створення алгоритмів, які здатні класифікувати інформацію, яку вони раніше не бачили, шляхом вивчення шаблонів з навчання на подібній інформації. У цьому сенсі існують всілякі види "учнів". Нейронні мережі, байєсівські мережі, дерева рішень, алгоритми k-кластеризації, приховані моделі Маркова та векторні машини підтримки - це приклади.

На основі того, хто навчається, кожен навчається по-різному. Деякі люди, які навчаються, створюють зрозумілі для людини рамки (наприклад, дерева рішень), а деякі, як правило, неможливо зрозуміти (наприклад, нейронні мережі).

Усі, хто навчається, по суті керуються даними, тобто вони зберігають свій стан як дані, які згодом будуть використані повторно. Вони не самомодифікуються як такі, принаймні загалом.


8

Я думаю, одне з найкрутіших визначень машинного навчання, яке я прочитав, - це з цієї книги Тома Мітчелла. Легкий для запам’ятовування та інтуїтивно зрозумілий.

Про комп’ютерну програму кажуть, що вона вчиться на досвіді Е щодо певного класу завдань Т і мірило ефективності Р, якщо її ефективність у завданнях у Т, виміряна Р, покращується із досвідом Е


21
Я завжди ненавидів, як це визначення повторюють, навіть навчають, незважаючи на непотрібне використання символів. Простіше, краще: Комп’ютерна програма, як кажуть, вчиться на досвіді щодо певного класу завдань, якщо її ефективність у цих завданнях щодо певної міри продуктивності покращується із досвідом. А тепер давайте спростимо ще. 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
Я займаюся машинним навчанням вже близько року, і навіть сьогодні мені доводиться його читати кілька разів, щоб зрозуміти, що це саме означає. Цікаво, я поганий чи це визначення.
Максим Дзоуза

7
  • Безсоромно вирвано з Вікіпедії: машинне навчання - це наукова дисципліна, яка займається розробкою та розробкою алгоритмів, що дозволяють комп’ютерам розвивати поведінку на основі емпіричних даних, таких як дані датчиків або баз даних.

  • Досить просто, код машинного навчання виконує завдання машинного навчання. Це може бути багато речей, від інтерпретації даних датчиків до генетичного алгоритму.

  • Я б сказав, що це залежить. Ні, модифікація коду не є нормальною, але не виходить за рамки можливостей. Я б також не сказав, що машинне навчання завжди змінює історію. Іноді у нас немає історії, яку можна будувати. Інколи ми просто хочемо реагувати на навколишнє середовище, але насправді не вчитися на своєму минулому досвіді.

В основному, машинне навчання - це дуже широко відкрита дисципліна, яка містить безліч методів та алгоритмів, які унеможливлюють наявність 1 відповіді на ваше третє запитання.


6

Машинне навчання - це термін, який взято з реального світу людини і застосовано до чогось, що насправді не може навчитися - машини.

Додамо до інших відповідей - машинне навчання (як правило) не змінить код, але це може змінити його шлях виконання та рішення на основі попередніх даних або нових зібраних даних, а отже, і ефекту "навчання".

існує багато способів "навчити" машину - ви надаєте ваги багатьом параметрам алгоритму, а потім автомат вирішує це для багатьох випадків, кожен раз, коли ви даєте їй зворотний зв'язок про відповідь, і машина регулює ваги відповідно до наскільки машинна відповідь була наближена до вашої відповіді, або за оцінкою, яку ви дали їй, або за деяким алгоритмом тестування результатів.

Це один із способів навчання, і їх набагато більше ...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.