Машинне навчання: відмінності між версіями

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
[неперевірена версія][перевірена версія]
Вилучено вміст Додано вміст
→‎Алгоритми: зв'язність
замінено перекладом en:Machine learning: https://en.wikipedia.org/w/index.php?title=Machine_learning&oldid=731164157
Рядок 1: Рядок 1:
{{Не плутати2|журналом {{нп|Machine Learning (журнал)|Machine Learning||Machine Learning (journal)}}}}
{{Вікіфікувати|дата=квітень 2015}}

{{Машинне навчання}}
{{Машинне навчання}}
'''Маши́нне навча́ння''' — узагальнена назва методів штучної генерації знань з досвіду. [[Штучна система]] навчається на [[приклад]]ах і після закінчення фази [[навчання]] може узагальнювати. Тобто [[система]] не просто вивчає наведені приклади, а розпізнає певні закономірності в даних для навчання.


'''Машинне навчання''' ({{lang-en|machine learning}})&nbsp;— це підгалузь [[Інформатика|інформатики]]<ref name=Britannica>http://www.britannica.com/EBchecked/topic/1116194/machine-learning {{ref-en}} {{третинне}}</ref> (зокрема, {{нп|М'які обчислення|м'яких обчислень||Soft computing}}), яка еволюціювала з дослідження [[розпізнавання образів]] та {{нп|Теорія обчислювального навчання|теорії обчислювального навчання||Computational learning theory}} в галузі [[Штучний інтелект|штучного інтелекту]].<ref name=Britannica /> 1959 року [[Артур Семюель]] визначив машинне навчання як «Галузь досліджень, яка дає комп'ютерам здатність навчатися без того, щоби їх явно програмували».<ref name="arthur_samuel_machine_learning_def">{{cite book | title=Too Big to Ignore: The Business Case for Big Data | publisher=Wiley | author=Phil Simon | date=March 18, 2013 | pages=89 | isbn=978-1-118-63817-0 | url=https://books.google.com/books?id=Dn-Gdoh66sgC&pg=PA89#v=onepage&q&f=false}} {{ref-en}}</ref> Машинне навчання досліджує вивчення та побудову [[алгоритм]]ів, які можуть [[Навчання|навчатися]] з [[Дані|даних]], і передбачувати їх.<ref>{{cite journal |title=Glossary of terms |author1=Ron Kohavi |author2=Foster Provost |journal={{нп|Machine Learning (журнал)|Machine Learning||Machine Learning (journal)}} |volume=30 |pages=271–274 |year=1998 |url=http://ai.stanford.edu/~ronnyk/glossary.html}} {{ref-en}}</ref> Такі алгоритми діють шляхом побудови [[Математична модель|моделі]] зі зразкового ''{{нп|Тренувальний набір|тренувального набору||Training set}}'' вхідних спостережень, щоби здійснювати керовані даними прогнози або ухвалювати рішення, виражені як виходи,<ref name="bishop" />{{rp|2}} замість того, щоби суворо слідувати статичним програмним інструкціям.
Серед багатьох програмних продуктів машинне навчання використосовують: [[системи автоматичного діагностування]], розпізнавання шахрайства з [[кредитна картка|кредитними картками]], [[аналіз]] [[ринок цінних паперів|ринку цінних паперів]], [[класифікація]] ланцюжків [[ДНК]], [[розпізнавання мовлення]] та [[розпізнавання текстів|тексту]], [[автономні системи]].


Машинне навчання тісно пов'язане (і часто перетинається) з {{нп|Обчислювальна статистика|обчислювальною статистикою||Computational statistics}}, дисципліною, яка також фокусується на прогнозуванні шляхом застосування комп'ютерів. Воно має тісні зв'язки з [[Математична оптимізація|математичною оптимізацією]], яка забезпечує цю галузь методами, теорією та прикладними областями. Машинне навчання застосовують в ряді обчислювальних задач, в яких розробка та програмування явних [[алгоритм]]ів є нездійсненними. Приклади таких застосувань включають {{нп|відфільтровування спаму|||Spam filter}}, [[оптичне розпізнавання символів]] (ОРС),<ref name=Wernick-Signal-Proc-July-2010>Wernick, Yang, Brankov, Yourganov and Strother, Machine Learning in Medical Imaging, ''{{нп|IEEE Signal Processing Society|IEEE Signal Processing Magazine}}'', vol. 27, no. 4, July 2010, pp. 25-38 {{ref-en}}</ref> {{нп|навчання ранжуванню|пошукові системи||Learning to rank}} та [[комп'ютерний зір]]. Машинне навчання іноді з'єднують з [[Добування даних|добуванням даних]],<ref>{{cite conference |last=Mannila |first=Heikki |title=Data mining: machine learning, statistics, and databases |conference=Int'l Conf. Scientific and Statistical Database Management |publisher=IEEE Computer Society |year=1996}} {{ref-en}}</ref> де друга підгалузь фокусується більше на дослідницькому аналізі даних, і є відомою як [[навчання без учителя]].<ref name="bishop">Machine learning and pattern recognition "can be viewed as two facets of the same field."</ref>{{rp|vii}}<ref>{{cite journal |last=Friedman |first=Jerome H. |authorlink=Джером Гарольд Фрідман |title=Data Mining and Statistics: What's the connection? |journal=Computing Science and Statistics |volume=29 |issue=1 |year=1998 |pages=3–9}} {{ref-en}}</ref>
== Методологія ==
Машинне навчання — розділ штучного інтелекту, має за основу побудову та дослідження систем, які можуть самостійно навчатись з даних. Наприклад, система машинного навчання може бути натренована на електронних повідомленнях для розрізняння спам і не спам-повідомлення. Після навчання вона може бути використана для класифікації нових повідомлень електронної пошти на спам та не-спам папки.


В межах галузі аналізу даних машинне навчання є методом, який використовується для винаходження складних моделей та алгоритмів, які слугують прогнозуванню&nbsp;— в комерційному застосуванні це відоме як {{нп|передбачувальна аналітика|||Predictive analytics}}. Ці аналітичні моделі дозволяють дослідникам, {{нп|Науковці з даних|науковцям з даних||Data scientists}}, інженерам та аналітикам «виробляти надійні, повторювані рішення та результати» та розкривати «приховані розуміння» шляхом навчання з історичних співвідношень та тенденцій в даних.<ref>{{Cite web|url=http://www.sas.com/it_it/insights/analytics/machine-learning.html|title=Machine Learning: What it is and why it matters|website=www.sas.com|accessdate=2016-03-29}} {{ref-en}}</ref>
В основі машинного навчання розглядаються уявлення та узагальнення. Представлення даних і функцій оцінки цих даних є частиною всіх систем машинного навчання, наприклад, у наведеному вище прикладі повідомлення по електронній пошті, ми можемо уявити лист як набір англійських слів, просто відмовившись від порядку слів. Узагальнення є властивістю, яку система буде застосовувати добре на невидимих ​​екземпляри даних; умови, за яких це може бути гарантовано є ключовим об'єктом вивчення в полі обчислювальної теорії навчання. Існує широкий спектр завдань машинного навчання та успішних застосувань. Оптичне розпізнавання символів, в яких друковані символи розпізнаються автоматично, ґрунтуючись на попередніх прикладах, є класичним прикладом техніки машинного навчання. У 1959 році Артур Самуїл визначив машинне навчання як "Поле дослідження, яке дає комп'ютерам можливість навчатися, не будучи явно запрограмованим".


== Алгоритми ==
== Огляд ==
Практичне використання відбувається, переважно, за допомогою [[алгоритм]]ів. Різноманітні алгоритми машинного навчання можна грубо поділити за такою схемою:
* [[Навчання з учителем]] ({{lang-en|Supervised learning}}): алгоритм вивчає функцію на основі наданих пар вхідних та вихідних даних. При цьому, в процесі навчання, «вчитель» вказує вірні вихідні дані для кожного значення вхідних даних. Одним з розділів навчання з вчителем є [[машинна класифікація]]. Такі алгоритми застосовуються для [[розпізнавання текстів]].
* [[Навчання без учителя]] ({{lang-en|Unsupervised learning}})
* [[Навчання з підкріпленням]] ({{lang-en|Reinforcement Learning}}): алгоритм навчається за допомогою тактики нагороди та покарання для максимізації вигоди для агентів (систем до яких належить компонента, що навчається)


{{нп|Том Мітчелл|||Tom M. Mitchell}} запровадив широко цитоване формальніше визначення: «Кажуть, що комп'ютерна програма вчиться з досвіду ''E'' по відношенню до якогось класу задач ''T'' та міри продуктивності ''P'', якщо її продуктивність у задачах з ''T'', вимірювана за допомогою ''P'', покращується з досвідом ''E''.»<ref>Mitchell, T. (1997). ''Machine Learning'', McGraw Hill. ISBN 0-07-042807-7, p.2. {{ref-en}}</ref> Це визначення є видатним тому, що воно визначає машинне навчання через фундаментально {{нп|Операційне визначення|операційні||Operational definition}}, а не когнітивні, терміни, слідуючи таким чином пропозиції [[Алан Тюрінг|Алана Тюрінга]] в його праці «{{нп|Обчислювальні машини та розум|||Computing Machinery and Intelligence}}», щоби питання «Чи можуть машини думати?» замінити питанням «Чи можуть машини робити те, що можемо робити ми (як істоти, які думають)?».<ref>{{Citation |chapterurl=http://eprints.ecs.soton.ac.uk/12954/ |first=Stevan |last=Harnad |year=2008 |chapter=The Annotation Game: On Turing (1950) on Computing, Machinery, and Intelligence |editor1-last=Epstein |editor1-first=Robert |editor2-last=Peters |editor2-first=Grace |title=The Turing Test Sourcebook: Philosophical and Methodological Issues in the Quest for the Thinking Computer |location= |publisher=Kluwer |isbn= }} {{ref-en}}</ref>
Узагальнення в цьому контексті є здатність алгоритму для виконання точно на нових, невідомих прикладах після тренування на навчальному наборі даних. Основна мета учня узагальнювати свій досвід.


=== Типи задач і завдань ===
== Машинне навчання, знання відкриття в базах даних (KDD) і інтелектуального аналізу даних ==
{{Якір|Типи алгоритмів}}
Два терміни часто плутають, оскільки вони не рідко використовують ті ж методи і перекриття. Вони можуть бути умовно визначені наступним чином:
Машинне навчання фокусується на прогноз, заснований на відомих властивостях, витягнутих з навчальних даних.
Інтелектуальний аналіз даних (який є кроком виявлення знань у базах даних) фокусується на відкриття (раніше) невідомих властивостей даних.


Задачі машинного навчання, як правило, поділяють на три широкі категорії, в залежності від природи «сигналу», якого навчається система, або «зворотного зв'язку», доступного системі, яка навчається. Цими категоріями є:<ref name="aima">{{cite AIMA|edition=2}}</ref>
Ці дві області перекриваються у багатьох відношеннях: інтелектуальний аналіз даних використовує безліч методів машинного навчання, але часто з дещо іншою метою. З іншого боку, машинне навчання також використовує методи інтелектуального аналізу такі як "неконтрольоване навчання" або як попередній крок оброблення для покращення точності навчальної системи. Велика частина плутанини між цими двома дослідницькими спільнотами (які часто мають окремі конференції та окремі журнали) відбувається з основних припущень, з якими вони працюють: в машинному навчанні, виконання, як правило, оцінюється по відношенню до здатності відтворювати відомі знання, в той час як в KDD ключовим завданням є виявлення раніше невідомого знання. Необізнаний (неконтрольований) метод, який обчислюється по відношенню до відомих знань, буде легко перевершений керованими методами. В той час в типових KDD завданнях, керовані методи не можуть бути використані через відсутність підготовки даних.


* [[Навчання з учителем]] (кероване навчання, {{lang-en|supervised learning}}): Комп'ютерові представляють приклади входів та їхніх бажаних виходів, задані «вчителем», і метою є навчання загального правила, яке {{нп|Відображення (математика)|відображає||Map (mathematics)}} входи на виходи.
== Взаємодія з людиною ==
* [[Навчання без учителя]] (спонтанне навчання, {{lang-en|unsupervised learning}}): Алгоритмові навчання не дається міток, залишаючи його самому знаходити структуру в своєму вході. Навчання без учителя може бути метою саме по собі (виявлення прихованих закономірностей у даних), або засобом досягнення мети ([[навчання ознак]]).
Деякі системи машинного навчання намагаються усунути необхідність в людській інтуїції при аналізуванні даних, а інші обирають спільний підхід між людиною і машиною. Людська інтуїція не може бути повністю виключена, так як конструктору системи необхідно вказати, як дані повинні бути представлені і які механізми будуть використовуватися для пошуку [[Ознака (машинне навчання)|характеристик]] даних.
* [[Навчання з підкріпленням]] ({{lang-en|reinforcement learning}}): Комп'ютерна програма взаємодіє з динамічним середовищем, у якому вона повинна виконувати певну мету (таку як {{нп|Автономне авто|водіння автівки||Autonomous car}}), без учителя, який явно казав би їй, чи підійшла вона близько до мети. Іншим прикладом є навчання грі через гру із суперником.<ref name="bishop" />{{rp|3}}


Між керованим та спонтанним навчанням є [[напівавтоматичне навчання]] ({{lang-en|semi-supervised learning}}), в якому вчитель дає неповний тренувальний сигнал: тренувальний набір, в якому відсутні деякі (часто численні) цільові виходи. Окремим випадком цього принципу є {{нп|Трансдукція (машинне навчання)|трансдукція||Transduction (machine learning)}} ({{lang-en|transduction}}), коли під час навчання відомий повний набір випадків задачі, крім частини цілей, яких бракує.
== Типи алгоритмів ==

* [[Навчання з учителем|Контрольоване навчання]]
[[Файл:Svm max sep hyperplane with margin.png|thumb|[[Метод опорних векторів]] є класифікатором, який поділяє свій вхідний простір на дві області, розділені {{нп|Лінійний класифікатор|лінійною межею||Linear classifier}}. Тут він навчається розрізнювати чорні та білі круги.]]
* [[Навчання без учителя|Неконтрольоване навчання]]

* [[Навчання з підкріпленням]]
Серед інших задач машинного навчання {{нп|Мета-навчання (інформатика)|навчання навчатися||Meta learning (computer science)}} навчається свого власного {{нп|Індуктивне упередження|індуктивного упередження||Inductive bias}} на основі попереднього досвіду. {{нп|Еволюційна робототехніка|Еволюційне навчання||Developmental robotics}} ({{lang-en|developmental learning}}), розроблене для {{нп|навчання роботів|||Robot learning}}, породжує свої власні послідовності навчальних ситуацій (також звані навчальним планом, {{lang-en|curriculum}}), щоби накопичувально отримувати репертуари нових навичок шляхом автономного само-дослідження та соціальної взаємодії з вчителями-людьми, і застосування провідних механізмів, таких як активне навчання, дозрівання, рухова синергія та імітація.

Інша класифікація завдань машинного навчання виникає при розгляді бажаного ''виходу'' системи з машинним навчанням:<ref name="bishop" />{{rp|3}}

* У [[Статистична класифікація|класифікації]] ({{lang-en|classification}}) входи поділяються на два або більше класів, і система-учень мусить породити модель, яка відносить небачені входи до одного або більше ({{нп|багатоміткова класифікація|||Multi-label classification}}) з цих класів. Це, як правило, намагаються розв'язувати керованим чином. Прикладом класифікації є фільтри спаму, в яких входами є повідомлення електронної пошти (або чогось іншого), а класами є «спам» та «не спам».
* У [[Регресійний аналіз|регресії]] ({{lang-en|regression}}), також керованій задачі, виходи є безперервними, а не дискретними.
* У [[Кластерування|кластеруванні]] ({{lang-en|clustering}}) набір входів повинно бути поділено на групи. На відміну від класифікації, групи не відомі заздалегідь, що зазвичай робить це завданням для спонтанного навчання.
* [[Оцінка густини]] знаходить [[Розподіл імовірностей|розподіл]] входів у деякому просторі.
* {{нп|Зниження розмірності|||Dimensionality reduction}} спрощує входи шляхом відображення їх на простір меншої розмірності. Пов'язаною задачею є {{нп|тематичне моделювання|||Topic modeling}}, в якому програмі надається перелік документів [[Природна мова|людською мовою]], і дається завдання з'ясувати, які документи охоплюють подібні теми.

== Історія та відношення до інших областей ==
{{Докладніше1|{{нп|Хронологія розвитку машинного навчання|||Timeline of machine learning}}}}

Як наукове прагнення, машинне навчання виросло з розшуків штучного інтелекту. Вже ранніми днями ШІ як академічної дисципліни деякі дослідники зацікавилися тим, щоби машини вчилися з даних. Вони намагалися наблизитися до розв'язання цієї задачі різними символьними методами, а також тим, що згодом було названо «[[Штучна нейронна мережа|нейронними мережами]]»; це були здебільшого [[перцептрон]]и та [[ADALINE|інші моделі]], які згодом виявилися повторними винаходами {{нп|Узагальнена лінійна модель|узагальнених лінійних моделей||Generalized linear model}} статистики. Застосовувалося також і [[Теорія ймовірностей|ймовірнісне]] міркування, особливо в автоматизованій медичній діагностиці.<ref name="aima" />{{rp|488}}

Проте зростання акценту на {{нп|GOFAI|логічному, основаному на знаннях підході||GOFAI}} викликало розрив між ШІ та машинним навчанням. Ймовірнісні системи страждали на теоретичні та практичні проблеми збирання та представлення даних.<ref name="aima" />{{rp|488}} Близько 1980 року прийшли [[експертні системи]], щоби домінувати над ШІ, а статистика була в немилості.<ref name="changing">{{Cite journal | last1 = Langley | first1 = Pat| title = The changing science of machine learning | doi = 10.1007/s10994-011-5242-y | journal = {{нп|Machine Learning (журнал)|Machine Learning||Machine Learning (journal)}}| volume = 82 | issue = 3 | pages = 275–279 | year = 2011 | pmid = | pmc = }} {{ref-en}}</ref> Робота над навчанням на основі символів/знань дійсно продовжувалася в межах ШІ, ведучи до {{нп|Індуктивне логічне програмування|індуктивного логічного програмування||Inductive logic programming}}, але більш статистична лінія досліджень була тепер поза межами області справжнього ШІ, в [[Розпізнавання образів|розпізнаванні образів]] та [[Інформаційний пошук|інформаційному пошуку]].<ref name="aima" />{{rp|708–710; 755}} Приблизно в цей же час ШІ та інформатикою було облишено дослідження нейронних мереж. Цю лінію також було продовжено за межами області ШІ/інформатики, як «{{нп|конективізм|||Connectionism}}», дослідниками з інших дисциплін, включно з [[Джон Хопфілд|Хопфілдом]], {{нп|Девід Румельхарт|Румельхартом||David Rumelhart}} та {{нп|Джефрі Хінтон|Хінтоном||Geoffrey Hinton}}. Їхній головний успіх прийшов у середині 1980-х років із повторним винайденням [[Зворотне поширення|зворотного поширення]].<ref name="aima" />{{rp|25}}

Машинне навчання, реорганізоване як окрема область, почало бурхливо розвиватися в 1990-х роках. Ця область змінила свої цілі з досягання штучного інтелекту на розв'язання розв'язних задач практичного характеру. Вона змістила фокус із символьних підходів, успадкованих нею від ШІ, в бік методів та моделей, позичених зі статистики та [[Теорія ймовірності|теорії ймовірності]].<ref name="changing" /> Вона також виграла від збільшуваної доступності оцифрованої інформації та можливості розповсюджувати її через [[Інтернет]].

Машинне навчання та добування даних часто використовують одні й ті ж методи, і значно перекриваються. Їх можна грубо розрізнити наступним чином:

* Машинне навчання фокусується на передбаченні на основі ''відомих'' властивостей, вивчених з тренувальних даних.
* [[Добування даних]] фокусується на [[Відкриття (спостереження)|відкритті]] ''невідомих'' (раніше) властивостей даних. Воно є кроком аналізу з [[виявлення знань]] у базах даних.

Ці дві області перекриваються у багатьох відношеннях: добування даних використовує багато методів машинного навчання, але часто з дещо іншою метою. З іншого боку, машинне навчання також застосовує методи добування даних як «навчання без учителя», або як крок попередньої обробки для покращення точності механізму навчання. Велика частина плутанини між цими двома дослідницькими спільнотами (які часто мають окремі конференції та окремі журнали, з {{нп|ECML PKDD}} як основним винятком) виходить з основних припущень, з якими вони працюють: у машинному навчанні продуктивність зазвичай оцінюється по відношенню до здатності ''відтворювати відоме'' знання, тоді як у виявленні знань та добуванні даних ({{lang-en|Knowledge Discovery and Data Mining, KDD}}) ключовою задачею є виявлення ''не відомого'' раніше знання. При оцінці по відношенню до відомих знань неінформований (некерований) метод легко програватиме керованим методам, тоді як у типовій задачі ''KDD'' керовані методи застосовуватися не можуть в силу відсутності тренувальних даних.

Машинне навчання також має тісні зв'язки з оптимізацією: багато задач навчання формулюються як мінімізація деякої {{нп|Функція втрат|функції втрат||Loss function}} на тренувальному наборі прикладів. Функції втрат виражають розбіжність між передбаченнями тренованої моделі та дійсними зразками задачі (наприклад, у класифікації потрібно призначати мітки зразкам, і моделі тренуються правильно передбачати попередньо призначені мітки набору прикладів). Різниця між цими двома областями виникає з мети узагальнення: в той час як алгоритми оптимізації можуть мінімізувати втрати на тренувальному наборі, машинне навчення зосереджене на мінімізації втрат на небачених зразках.<ref>{{cite encyclopedia |last1=Le Roux |first1=Nicolas |first2=Yoshua |last2=Bengio |first3=Andrew |last3=Fitzgibbon |title=Improving First and Second-Order Methods by Modeling Uncertainty |encyclopedia=Optimization for Machine Learning |year=2012 |page=404 |editor-last1=Sra |editor-first1=Suvrit |editor-first2=Sebastian |editor-last2=Nowozin |editor-first3=Stephen J. |editor-last3=Wright |publisher=MIT Press}} {{ref-en}}</ref>

=== Відношення до статистики ===

Машинне навчання та [[статистика]] є тісно пов'язаними областями. Згідно {{нп|Майкл І. Джордан|Майкла І. Джордана||Michael I. Jordan}}, ідеї машинного навчання, від методологічних принципів до теоретичних інструментів, мали довгу передісторію в статистиці.<ref name="mi jordan ama">{{cite web|url=http://www.reddit.com/r/MachineLearning/comments/2fxi6v/ama_michael_i_jordan/ckelmtt?context=3 |title=statistics and machine learning|publisher=reddit|date=2014-09-10|accessdate=2014-10-01|language=|author=MI Jordan}} {{ref-en}}</ref> Він також запропонував термін «{{нп|наука про дані|||Data science}}» для позначення загальної області.<ref name="mi jordan ama" />

{{нп|Лео Брейман|||Leo Breiman}} виділив дві парадигми статистичного моделювання: модель даних, та алгоритмічну модель,<ref>{{cite web|url=http://projecteuclid.org/download/pdf_1/euclid.ss/1009213726|title=Breiman : Statistical Modeling: The Two Cultures (with comments and a rejoinder by the author)|author=Cornell University Library|publisher=|accessdate=8 серпня 2015 р.}} {{ref-en}}</ref> де «алгоритмічна модель» означає більш-менш алгоритми машинного навчання, такі як [[випадковий ліс]].

Деякі фахівці зі статистики запозичили методи з машинного навчання, ведучи до об'єднаної області, яку вони називають ''статистичним навчанням'' ({{lang-en|statistical learning}}).<ref name="islr">{{cite book |author1=Gareth James |author2=Daniela Witten |author3=Trevor Hastie |author4=Robert Tibshirani |title=An Introduction to Statistical Learning |publisher=Springer |year=2013 |url=http://www-bcf.usc.edu/~gareth/ISL/ |page=vii}} {{ref-en}}</ref>

== Теорія ==
{{Докладніше1|{{нп|Теорія обчислювального навчання|||Computational learning theory}}}}

Основна мета системи, яка навчається,&nbsp;— це робити узагальнення зі свого досвіду.<ref name="bishop2006">{{citation|first= C. M. |last= Bishop |authorlink=Крістофер Бішоп |year=2006 |title=Pattern Recognition and Machine Learning |publisher=Springer |isbn=0-387-31073-8}} {{ref-en}}</ref><ref>{{нп|Меріар Морі|Mehryar Mohri||Mehryar Mohri}}, Afshin Rostamizadeh, Ameet Talwalkar (2012) ''Foundations of Machine Learning'', [[MIT Press]] ISBN 978-0-262-01825-8. {{ref-en}}</ref> Узагальнення в цьому контексті є здатністю машини, яка вчиться, працювати точно на нових, не бачених прикладах/задачах після отримання досвіду навчального набору даних. Тренувальні приклади походять з якогось загалом невідомого розподілу ймовірності (який вважається представницьким для простору випадків), і система, яка вчиться, має будувати загальну модель цього простору, яка дозволяє їй виробляти достатньо точні передбачення в нових випадках.

Обчислювальний аналіз алгоритмів машинного навчання та їхньої продуктивності є галуззю [[Теоретична інформатика|теоретичної інформатики]], відомої як {{нп|теорія обчислювального навчання|||Computational learning theory}} ({{lang-en|computational learning theory}}). Оскільки тренувальні набори є скінченними, а майбутнє є непевним, теорія навчання зазвичай не дає гарантій продуктивності алгоритмів. Натомість доволі поширеними є ймовірнісні рамки продуктивності. Одним зі шляхів кількісної оцінки [[Похибки та залишки|похибки]] узагальнення є {{нп|компроміс зсуву та дисперсії|||bias–variance decomposition}}.

Те, наскільки добре модель, натренована наявними прикладами, передбачує виходи для невідомих випадків, називається узагальненням. Щоб узагальнення було найкращим, складність його гіпотези повинна відповідати складності функції, яка лежить в основі даних. Якщо гіпотеза є менш складною за цю функцію, то ми недовчилися. Тоді ми підвищуємо складність, і похибка тренування знижується. Але якщо наша гіпотеза є занадто складною, то ми {{нп|Перенавчання|перевчилися||Overfitting}}. Після цього ми повинні знайти гіпотезу, яка має мінімальну похибку тренування.<ref>Ethem Alpaydin. "[https://books.google.com.tr/books?id=NP5bBAAAQBAJ&printsec=frontcover&dq=ethem+alpaydin&hl=tr&sa=X&redir_esc=y#v=onepage&q=ethem%20alpaydin&f=false Introduction to Machine Learning]" The MIT Press, 2010. {{ref-en}}</ref>

На додачу до рамок продуктивності, теоретики обчислювального навчання досліджують часову складність та здійсненність навчання. В теорії обчислювального навчання обчислення вважається здійсненним, якщо його може бути виконано за {{нп|Поліноміальна часова складність|поліноміальний час||Time complexity#Polynomial time}}. Є два види результатів {{нп|Часова складність|часової складності||Time complexity}}. Позитивні результати показують, що певного класу функцій може бути навчено за поліноміальний час. Негативні результати показують, що певних класів не може бути навчено за поліноміальний час.

Існує багато схожостей між теорією машинного навчання та [[Статистичне виведення|статистичним виведенням]], хоча вони використовують відмінні терміні.


== Підходи ==
== Підходи ==
{{Докладніше1|{{нп|Перелік алгоритмів машинного навчання|||List of machine learning algorithms}}}}

=== Навчання дерев рішень ===
{{Докладніше1|{{нп|Навчання дерев рішень|||Decision tree learning}}}}

Навчання дерев рішень ({{lang-en|decision tree learning}}) використовує як {{нп|Передбачувальне моделювання|передбачувальну модель||Predictive modelling}} [[Дерево ухвалення рішень|дерево рішень]], яке відображує спостереження про предмет на висновки про цільове значення предмету.

=== Навчання асоціативних правил ===
{{Докладніше1|{{нп|Навчання асоціативних правил|||Association rule learning}}}}

Навчання асоціативних правил ({{lang-en|association rule learning}}) є методом виявлення цікавих зв'язків між величинами у великих базах даних.

=== Штучні нейронні мережі ===
=== Штучні нейронні мережі ===
{{Main|Штучна нейронна мережа}}
Алгоритм навчання штучних нейронних мереж, зазвичай називається "нейронні мережі" (НМ), є алгоритм навчання, який опирається на структурні і функціональні аспекти біологічних нейронних мереж. Обчислення структуровані в термінах взаємозалежних груп штучних нейронів, обробки інформації з використанням звязкового підходу до обчислення. Сучасні нейронні мережі є інструментами нелінійного статистичного моделювання. Вони зазвичай використовуються для моделювання складних відносин між входами і виходами, щоб знайти закономірності в даних, або для захоплення статистичної структури в невідоме спільний розподіл ймовірностей між спостережуваними змінними.


Алгоритм навчання [[Штучна нейронна мережа|штучної нейронної мережі]] (ШНМ, {{lang-en|artificial neural network, ANN}}), зазвичай званої «нейронною мережею» (НМ), є алгоритмом навчання, натхненим структурою та функційними аспектами {{нп|Біологічна нейронна мережа|біологічних нейронних мереж||Biological neural network}}. Обчислення структуруються в термінах взаємозв'язаних груп [[Штучний нейрон|штучних нейронів]], які обробляють інформацію із застосуванням {{нп|Конективізм|конективістського||Connectionism}} підходу до обчислень. Сучасні нейронні мережі є {{нп|Нелінійна система|нелінійними||Nonlinear system}} [[Статистика|статистичними]] інструментами [[моделювання даних]]. Їх зазвичай застосовують для моделювання складних взаємозв'язків між входами та виходами, для [[Розпізнавання образів|пошуку закономірностей]] в даних, або для виявлення статистичної структури в невідомому [[Спільний розподіл імовірності|спільному розподілі ймовірності]] спостережуваних величин.
=== Генетичне програмування ===
Генетичне програмування є еволюційним алгоритмом на основі методології біологічної еволюції, щоб знайти комп'ютерні програми, які виконують певні користувацькі завдання. Це спеціалізація генетичних алгоритмів, де кожен являє собою комп'ютерну програму. Це техніка машинного навчання для оптимізації населення комп'ютерних програм з фітнес-ландшафту визначається здатністю програми для виконання певних обчислювальних задач.


=== Глибинне навчання ===
=== Кластеризація ===
{{Main|Глибинне навчання}}
Кластерний аналіз є асоціація набору спостережень у підмножини (так звані кластери), так що спостереження в межах одного кластеру аналогічні на думку деяких заздалегідь визначених критеріїв або критеріїв, в той час спостереження взяті з різних кластерів різні. Різні методи кластеризації роблять різні припущення про структуру даних, часто визначається деяка подібність метрики і оцінювання, наприклад, внутрішні компактності (подібність між членами одного й того ж кластеру) і поділу між різними кластерами. Інші методи засновані на оцінках щільності та графіках підключення. Кластеризація є методом неконтрольованого навчання і поширений метод для статистичного аналізу даних.

Падіння цін на апаратне забезпечення та розвиток [[Графічний процесор|графічних процесорів]] для особистого використання протягом останніх кількох років зробили свій внесок у розвиток поняття [[Глибинне навчання|глибинного навчання]] ({{lang-en|Deep Learning}}), яке складається з кількох прихованих шарів штучної нейронної мережі. Цей підхід намагається моделювати спосіб, яким людський мозок обробляє світло та звук для зору та слуху. Деякими з успішних застосувань глибинного навчання є [[комп'ютерний зір]] та [[розпізнавання мовлення]].<ref>Honglak Lee, Roger Grosse, Rajesh Ranganath, Andrew Y. Ng. "[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.149.802&rep=rep1&type=pdf Convolutional Deep Belief Networks for Scalable Unsupervised Learning of Hierarchical Representations]" Proceedings of the 26th Annual International Conference on Machine Learning, 2009. {{ref-en}}</ref>

=== Індуктивне логічне програмування ===
{{Докладніше1|{{нп|Індуктивне логічне програмування|||Inductive logic programming}}}}

Індуктивне логічне програмування (ІЛП, {{lang-en|Inductive logic programming, ILP}}) є підходом до навчання правил із застосуванням [[Логічне програмування|логічного програмування]] як універсального представлення вхідних прикладів, [[Зворотне поширення|зворотного поширення]], та гіпотез. Маючи кодування відомого основного знання та набір прикладів, представлені як логічна база даних фактів, система ІЛП виводитиме гіпотетичну логічну програму, яка [[Умовивід|має наслідками]] всі позитивні й жодні з негативних прикладів. Пов'язаною областю є {{нп|індуктивне програмування|||Inductive programming}}, яке для представлення гіпотез розглядає будь-які види мов програмування (а не лише логічне програмування), такі як [[Функційне програмування|функційні програми]].

=== Метод опорних векторів ===
{{Main|Метод опорних векторів}}

Метод опорних векторів ({{lang-en|support vector machines, SVMs}}) є набором пов'язаних методів [[навчання з учителем]], які використовуються для [[Статистична класифікація|класифікації]] та [[Регресійний аналіз|регресії]]. Маючи набір тренувальних прикладів, кожен з яких помічено як належний до однієї з двох категорій, алгоритм тренування методу опорних векторів будує модель, яка передбачує, чи новий приклад потрапляє до однієї категорії, чи до іншої.

=== Кластерування ===
{{Main|Кластерний аналіз}}

Кластерний аналіз ({{lang-en|cluster analysis}}) є розподілом набору спостережень на підмножини (які називають ''кластерами''), так, що спостереження в межах одного й того ж кластеру є подібними відповідно до деякого наперед встановленого критерію або критеріїв, в той час як спостереження, взяті з різних кластерів, є несхожими. Різні методики кластерування роблять різні припущення про структуру даних, часто визначені деякими ''мірами подібності'', і оцінювані, наприклад, ''внутрішньою компактністю'' (подібністю членів одного й того ж кластеру) та ''відокремленістю'' між різними кластерами. Інші методи ґрунтуються на ''оцінюваній густині'' та ''зв'язності графа''.
Кластерування є методом [[навчання без учителя]], і поширеною методикою [[Статистика|статистичного]] [[Аналіз даних|аналізу даних]].

=== Баєсові мережі ===
{{Main|Баєсова мережа}}

Баєсова мережа, мережа переконань, або спрямована ациклічна графічна модель ({{lang-en|bayesian network, belief network, directed acyclic graphical model}})&nbsp;— це [[Графічна модель|ймовірнісна графічна модель]], яка представляє набір [[Випадкова величина|випадкових величин]] та їхніх {{нп|Умовна незалежність|умовних незалежностей||Conditional independence}} через [[орієнтований ациклічний граф]]. Наприклад, баєсова мережа може представляти ймовірнісні взаємозв'язки між хворобами та симптомами. Маючи в розпорядженні симптоми, таку мережу можна використовувати для обчислення ймовірностей наявності різних хвороб. Існують ефективні алгоритми для виконання [[Умовивід|виведення]] та навчання.

=== Навчання з підкріпленням ===
{{Main|Навчання з підкріпленням}}

Навчання з підкріпленням ({{lang-en|reinforcement learning}}) переймається тим, як ''агент'' повинен вчиняти ''дії'' в ''середовищі'' таким чином, щоби максимізувати деяке уявлення про довготермінову ''винагороду''. Алгоритми навчання з підкріпленням намагаються знайти ''політику'', яка відображує ''стани'' світу на дії, які агент повинен вчиняти в цих станах. Навчання з підкріпленням відрізняється від [[навчання з учителем]] тим, що пари правильних входів/виходів йому ніколи не представляються, і не зовсім оптимальні дії ніколи явно не виправляються.

=== Навчання представлень ===
{{Main|Навчання представлень}}

Декотрі алгоритми навчання, головно алгоритми [[навчання без учителя]], мають на меті виявлення кращих представлень входів, наданих протягом тренування. Класичні приклади включають [[метод головних компонент]] та [[кластерний аналіз]]. Алгоритми навчання представлень ({{lang-en|representation learning}}) часто намагаються зберегти інформацію в своїх входах, але перетворити її таким чином, щоби зробити її зручною, часто як крок попередньої обробки перед виконанням класифікації або передбачень, уможливлюючи відбудову входів, які йдуть з невідомого розподілу, що породжує дані, й у той же час не будучи обов'язково точними для конфігурацій, які є малоймовірними за того розподілу.

Алгоритми {{нп|навчання многовидів|||Manifold learning}} намагаються робити це за обмеження, щоби навчені представлення мали низьку розмірність. Алгоритми {{нп|Розріджене кодування|розрідженого кодування||Sparse coding}} намагаються робити це за обмеження, щоби навчені представлення були розрідженими (мали багато нулів). Алгоритми {{нп|навчання полілінійного підпростору|||Multilinear subspace learning}} мають на меті навчання представлень низької розмірності безпосередньо з [[тензор]]них представлень багатовимірних даних без перетворення їх на (багатовимірні) вектори.<ref>{{cite journal |first1=Haiping |last1=Lu |first2=K.N. |last2=Plataniotis |first3=A.N. |last3=Venetsanopoulos |url=http://www.dsp.utoronto.ca/~haiping/Publication/SurveyMSL_PR2011.pdf |title=A Survey of Multilinear Subspace Learning for Tensor Data |journal=Pattern Recognition |volume=44 |number=7 |pages=1540–1551 |year=2011 |doi=10.1016/j.patcog.2011.01.004}} {{ref-en}}</ref> Алгоритми [[Глибинне навчання|глибинного навчання]] знаходять кілька рівнів представлення, або ієрархію ознак, в якій високорівневі, абстрактніші ознаки визначаються в термінах ознак нижчого рівня (або породжують їх). Було висловлено думку, що розумна машина&nbsp;— це така, яка навчається представлення, що розплутує чинники, які лежать в основі варіацій, що описують спостережувані дані.<ref>{{cite book
| title = Learning Deep Architectures for AI
| author = Yoshua Bengio
| publisher = Now Publishers Inc.
| year = 2009
| isbn = 978-1-60198-294-0
| pages = 1–3
| url = https://books.google.com/books?id=cq5ewg7FniMC&pg=PA3
}} {{ref-en}}</ref>

=== Навчання подібностей та мір ===
{{Докладніше1|{{нп|Навчання подібностей|||Similarity learning}}}}

У цій задачі машині, яка навчається, надають пари прикладів, які розглядаються як подібні, і пари менш подібних об'єктів. Їй потрібно навчитися функції подібності (або функції міри відстані), яка може передбачувати, чи є нові об'єкти подібними. Це іноді використовується в [[Рекомендаційна система|рекомендаційних системах]].

=== Навчання розріджених словників ===
{{Докладніше1|{{нп|Навчання розріджених словників|||Sparse dictionary learning}}}}

В цьому методі дані представляються лінійною комбінацією {{нп|Базисна функція|базисних функцій||Basis function}}, і передбачається, що коефіцієнти є розрідженими. Нехай ''x'' є ''d''-вимірними даними, а ''D'' є матрицею ''d'' на ''n'', кожен стовпчик якої представляє базисну функцію. ''r'' є коефіцієнтом для представлення ''x'' за допомогою ''D''. З математичної точки зору, навчання розрідженого словника ({{lang-en|sparse dictionary learning}}) означає розв'язання <math>x \approx D r</math>, де ''r'' є розрідженим. Взагалі кажучи, передбачається, що ''n'' є більшим за ''d'', щоби дати свободу для розрідженого представлення.

Навчання словника разом із розрідженим представленням є {{нп|Строга NP-складність|строго NP-складним||Strongly NP-hard)}}, і є також складним і для наближеного розв'язання.<ref>A. M. Tillmann, "[http://dx.doi.org/10.1109/LSP.2014.2345761 On the Computational Intractability of Exact and Approximate Dictionary Learning]",
IEEE Signal Processing Letters 22(1), 2015: 45–49. {{ref-en}}</ref> Популярним евристичним методом навчання розріджених словників є {{нп|K-СРМ|''K''-СРМ||K-SVD}}.

Навчання розріджених словників застосовувалося в кількох контекстах. У класифікації задачею є визначення, до яких класів належать раніше не бачені дані. Припустімо, що словник для кожного з класів вже було побудовано. Тоді нові дані асоціюються з таким класом, у словникові якого вони розріджено представлені найкраще. Навчання розріджених словників застосовувалося також у [[Знешумлювання зображень|знешумлюванні зображень]]. Ключова ідея полягає в тому, що чистий клаптик зображення може бути розріджено представлено словником зображення, а шум — ні.<ref>Aharon, M, M Elad, and A Bruckstein. 2006. "K-SVD: An Algorithm for Designing Overcomplete Dictionaries for Sparse Representation." Signal Processing, IEEE Transactions on 54 (11): 4311-4322 {{ref-en}}</ref>

=== Генетичні алгоритми ===
{{Main|Генетичний алгоритм}}

Генетичний алгоритм (ГА, {{lang-en|genetic algorithm, GA}})&nbsp;— це [[Евристичний алгоритм|евристичний]] {{нп|алгоритм пошуку|||Search algorithm}}, який імітує процес [[Природний добір|природного добору]], і використовує такі методи як {{нп|Мутація (генетичний алгоритм)|мутація||Mutation (genetic algorithm)}} та [[Схрещування (генетичний алгоритм)|схрещування]] для породження нового [[Хромосома (генетичний алгоритм)|генотипу]] в надії знайти добрі розв'язки заданої задачі. В машинному навчанні генетичні алгоритми знаходили деякі застосування в 1980-х та 1990-х роках.<ref>{{cite journal |last1=Goldberg |first1=David E. |first2=John H. |last2=Holland |title=Genetic algorithms and machine learning |journal={{нп|Machine Learning (журнал)|Machine Learning||Machine Learning (journal)}} |volume=3 |issue=2 |year=1988 |pages=95–99 |doi=10.1007/bf00113892}} {{ref-en}}</ref><ref>{{cite book |title=Machine Learning, Neural and Statistical Classification |first1=D. |last1=Michie |first2=D. J. |last2=Spiegelhalter |first3=C. C. |last3=Taylor |year=1994 |publisher=Ellis Horwood}} {{ref-en}}</ref> І навпаки, методики машинного навчання використовувалися для покращення продуктивності генетичних та [[Еволюційний алгоритм|еволюційних алгоритмів]].<ref>{{cite journal |last1=Zhang |first1=Jun |last2=Zhan |first2=Zhi-hui |last3=Lin |first3=Ying |last4=Chen |first4=Ni |last5=Gong |first5=Yue-jiao |last6=Zhong |first6=Jing-hui |last7=Chung |first7=Henry S.H. |last8=Li |first8=Yun |last9=Shi |first9=Yu-hui |title=Evolutionary Computation Meets Machine Learning: A Survey |journal=Computational Intelligence Magazine |publisher=IEEE |year=2011 |volume=6 |issue=4 |pages=68–75 |url=http://ieeexplore.ieee.org/iel5/10207/6052357/06052374.pdf?arnumber=6052374 |doi=10.1109/mci.2011.942584}} {{ref-en}}</ref>

== Застосування ==

До застосувань машинного навчання входять:

{{refbegin|3}}
* {{нп|Адаптивний веб-сайт|Адаптивні веб-сайти||Adaptive website}}
* Аналіз [[Ринок цінних паперів|ринку цінних паперів]]
* {{нп|Аналіз тональності тексту|Аналіз тональності текстів||Sentiment analysis}} (або добування поглядів)
* [[Біоінформатика]]
* Виявлення {{нп|Інтернет-шахрайство|інтернет-шахрайств||Internet fraud}}
* Виявлення [[Кардінг|шахрайств із кредитними картками]]
* {{нп|Стратегічна гра|Гра в ігри||Strategy game}}
* {{нп|Добування послідовностей|||Sequence mining}}
* {{нп|Емоційні обчислення|||Affective computing}}
* [[Інформаційний пошук]]
* [[Інтернет-реклама]]
* Класифікація [[Послідовність ДНК|послідовностей ДНК]]
* [[Комп'ютерний зір]], включно з {{нп|Розпізнавання об'єктів|розпізнаванням об'єктів||Object recognition}}
* {{нп|Контроль утомного пошкодження|||Structural health monitoring}}
* [[Маркетинг]]
* {{нп|Машинне чуття|||Machine perception}}
* {{нп|Діагностика (штучний інтелект)|Медична діагностика||Diagnosis (artificial intelligence)}}
* [[Нейрокомп'ютерний інтерфейс|Нейрокомп'ютерні інтерфейси]]
* [[Обробка природної мови]]
* {{нп|Обчислювальна анатомія|||Computational anatomy}}
* [[Оптимізація (математика)|Оптимізація]] та [[метаевристика]]
* {{нп|Пересування роботів|||Robot locomotion}}
* [[Пошукова система|Пошукові системи]]
* [[Програмна інженерія]]
* [[Рекомендаційна система|Рекомендаційні системи]]
* [[Розпізнавання мовлення]] та [[Розпізнавання рукописного введення|рукописного введення]]
* {{нп|Синтаксичне розпізнавання образів|||Syntactic pattern recognition}}
* [[Хемоінформатика]]
* [[Економіка]]
{{refend}}

2006 року компанія інтернет-телебачення [[Netflix]] провела перші змагання {{нп|Netflix Prize}}, щоби знайти програму для кращого передбачення вподобань користувачів, і покращити точність її наявного алгоритму рекомендації кінематографічних фільмів щонайменше на 10%. Об'єднана команда дослідників з {{нп|AT&T Labs}}-Research у співпраці з командами Big Chaos та Pragmatic Theory побудувала {{нп|Ансамблеве усереднення (машинне навчання)|ансамблеву модель||Ensemble averaging (machine learning)}}, яка 2009 року виграла головний приз сумою 1 мільйон доларів.<ref>[http://www2.research.att.com/~volinsky/netflix/ "BelKor Home Page"] research.att.com {{ref-en}}</ref> Незабаром після призначення призу Netflix зрозуміли, що рейтинги користувачів були не найкращими показниками їхніх моделей перегляду («всі рекомендації»), і вони змінили свій рекомендаційний рушій відповідно.<ref>{{cite web|url=http://techblog.netflix.com/2012/04/netflix-recommendations-beyond-5-stars.html|title=The Netflix Tech Blog: Netflix Recommendations: Beyond the 5 stars (Part 1)|publisher=|accessdate=8 серпня 2015 р.}} {{ref-en}}</ref>

2010 року газета The Wall Street Journal написала про застосування компанією з керування капіталом {{нп|Rebellion Research}} машинного навчання для прогнозування рухів в економіці. Ця стаття описує прогнозування компанією Rebellion Research фінансової кризи та економічного відновлення.<ref>{{cite web|url=http://online.wsj.com/news/articles/SB10001424052748703834604575365310813948080|title='Artificial Intelligence' Gains Fans Among Investors - WSJ|author=Scott Patterson|date=13 July 2010|work=WSJ|accessdate=8 серпня 2015 р.}} {{ref-en}}</ref>

2014 року було повідомлено про застосування алгоритму машинного навчання в історії мистецтв для дослідження витонченого мистецтва живопису, і що воно могло виявити доти нерозпізнані впливи між митцями.<ref>[https://medium.com/the-physics-arxiv-blog/when-a-machine-learning-algorithm-studied-fine-art-paintings-it-saw-things-art-historians-had-never-b8e4e7bf7d3e When A Machine Learning Algorithm Studied Fine Art Paintings, It Saw Things Art Historians Had Never Noticed], ''The Physics at [[ArXiv]] blog'' {{ref-en}}</ref>

== Етика ==

Машинне навчання ставить безліч етичних питань. Системи, треновані на наборах даних, зібраних з упередженнями, можуть проявляти ці упередження при використанні, оцифровуючи таким чином культурні забобони, такі як інституційний расизм або класизм.<ref>{{Cite web|url=http://www.nickbostrom.com/ethics/artificial-intelligence.pdf|title=The Ethics of Artificial Intelligence|last=Bostrom|first=Nick|date=2011|website=|publisher=|accessdate=11 серпня 2016 р.}} {{ref-en}}</ref> Таким чином, відповідальне {{Не перекладено|збирання даних|||Data collection}} є критичною частиною машинного навчання. Додаткову інформацію див. у {{нп|Машинна етика|машинній етиці||Machine ethics}}.

== Програмне забезпечення ==

До {{нп|Програмний пакет|програмних пакетів||Software suite}}, які містять ряд алгоритмів машинного навчання, належать наступні:

=== Вільне та відкрите програмне забезпечення ===
{{Div col||15em}}
* {{нп|Caffe (програмне забезпечення)|Caffe||Caffe (software)}}
* {{нп|dlib}}
* {{нп|ELKI}}
* {{нп|Encog}}
* [[GNU Octave]]
* {{нп|H2O (аналітичний інструмент)|H2O||H2o (Analytics tool)}}
* {{нп|Apache Mahout|Mahout||Apache Mahout}}
* {{нп|Mallet (програмний проект)|||Mallet (software project)}}
* {{нп|mlpy}}
* {{нп|MLPACK (бібліотека C++)|MLPACK||MLPACK (C++ library)}}
* {{нп|Massive Online Analysis|MOA (Massive Online Analysis)}}
* {{нп|ND4J}} з {{нп|Deeplearning4j}}
* {{нп|NuPIC|||Numenta#The NuPIC Open Source Project}}
* {{нп|OpenAI}}
* [[OpenCV]]
* {{нп|OpenNN}}
* {{нп|Orange (програмне забезпечення)|Orange||Orange (software)}}
* [[R (мова програмування)|R]]
* {{нп|scikit-learn}}
* {{нп|scikit-image}}
* {{нп|Shogun (інструментарій)|Shogun||Shogun (toolbox)}}
* {{нп|TensorFlow}}
* {{нп|Torch (машинне навчання)|Torch||Torch (machine learning)}}
* [[Apache Spark|Spark]]
* {{нп|Yooreeka}}
* [[Weka]]
{{Div col end}}

=== Власницьке програмне забезпечення з вільними або відкритими редакціями ===
{{Div col||15em}}
* {{нп|KNIME}}
* {{нп|RapidMiner}}
{{Div col end}}

=== Власницьке програмне забезпечення ===
{{Div col||15em}}
* {{нп|Amazon Machine Learning}}
* {{нп|Angoss}} KnowledgeSTUDIO
* {{нп|Ayasdi}}
* {{нп|Databricks}}
* {{нп|Google APIs|Google Prediction API}}
* {{нп|HPE HavenOnDemand}}
* {{нп|SPSS Modeler|IBM SPSS Modeler}}
* [[KXEN|KXEN Modeler]]
* {{нп|LIONsolver}}
* [[Mathematica]]
* [[MATLAB]]
* {{нп|Azure machine learning studio|Microsoft Azure Machine Learning}}
* {{нп|Neural Designer}}
* {{нп|NeuroSolutions}}
* {{нп|Oracle Data Mining}}
* {{нп|RCASE}}
* {{нп|SAS (програмне забезпечення)|SAS Enterprise Miner||SAS (software)#Components}}
* {{нп|Splunk}}
* [[STATISTICA]] Data Miner
{{Div col end}}

== Журнали ==
* «[[Journal of Machine Learning Research]]»
* {{нп|Machine Learning (журнал)|«Machine Learning»||Machine Learning (journal)}}
* {{нп|Neural Computation (журнал)|«Neural Computation»||Neural Computation (journal)}}

== Конференції ==
* {{нп|Conference on Neural Information Processing Systems}}
* {{нп|International Conference on Machine Learning}}
* {{нп|International Conference on Learning Representations}}


== Див. також ==
== Див. також ==
<!-- {{Портал|Штучний інтелект|Машинне навчання}} -->
* [[Інтелектуальна інформаційна система]]
{{columns-list|2|
* {{нп|Автоматичне міркування|||Automatic reasoning}}
* [[Адаптивне керування]]
* {{нп|Баєсові структурні часові ряди|||Bayesian structural time series}}
* {{нп|Важливі публікації в машинному навчанні|||List of important publications in computer science#Machine learning}}
* [[Великі дані]]
* {{нп|Екзистенційний ризик від штучного розуму|||Existential risk from advanced artificial intelligence}}
* {{нп|Етика штучного інтелекту|||Ethics of artificial intelligence}}
* {{нп|Кешована модель мови|||Cache language model}}
* [[Когнітивна наука]]
* {{нп|М'які обчислення|||Soft computing}}
* {{нп|Навчання на основі пояснень|||Explanation-based learning}}
* {{нп|Навчання подібностей|||Similarity learning}}
* {{нп|Наука про дані|||Data science}}
* [[Обчислювальна нейронаука]]
* {{нп|Обчислювальний інтелект|||Computational intelligence}}
* {{нп|Перелік наборів даних для досліджень машинного навчання|||List of datasets for machine learning research}}
* {{нп|Перелік понять машинного навчання|||List of machine learning algorithms}}
* {{нп|Піково-пластинний вибір величин|||Spike-and-slab variable selection}}
* [[Психологічне моделювання]]
* {{нп|Словник штучного інтелекту|||Glossary of artificial intelligence}}
* {{нп|Суперницьке машинне навчання|||Adversarial machine learning}}
}}

== Примітки ==
{{Примітки|2}}

== Література ==
{{Refbegin|2}}
* {{нп|Тревор Гасті|Trevor Hastie||Trevor Hastie}}, {{нп|Роберт Тібширані|Robert Tibshirani||Robert Tibshirani}} and {{нп|Джером Гарольд Фрідман|Jerome H. Friedman||Jerome H. Friedman}} (2001). ''[http://www-stat.stanford.edu/~tibs/ElemStatLearn/ The Elements of Statistical Learning]'', Springer. ISBN 0-387-95284-5. {{ref-en}}
* {{нп|Педро Домінгуш|Pedro Domingos||Pedro Domingos}} (September 2015), {{нп|The Master Algorithm}}, Basic Books, ISBN 978-0-465-06570-7 {{ref-en}}
* {{нп|Меріар Морі|Mehryar Mohri||Mehryar Mohri}}, Afshin Rostamizadeh, Ameet Talwalkar (2012). ''[http://www.cs.nyu.edu/~mohri/mlbook/ Foundations of Machine Learning]'', The MIT Press. ISBN 978-0-262-01825-8. {{ref-en}}
* Ian H. Witten and Eibe Frank (2011). ''Data Mining: Practical machine learning tools and techniques'' Morgan Kaufmann, 664pp., ISBN 978-0-12-374856-0. {{ref-en}}
* {{нп|Девід Джон Кемерон Макай|David J. C. MacKay||David J. C. MacKay}}. ''[http://www.inference.phy.cam.ac.uk/mackay/itila/book.html Information Theory, Inference, and Learning Algorithms]'' Cambridge: Cambridge University Press, 2003. ISBN 0-521-64298-1 {{ref-en}}
* {{нп|Річард Дуда|Richard O. Duda||Richard O. Duda}}, {{нп|Пітер Гарт|Peter E. Hart||Peter E. Hart}}, David G. Stork (2001) ''Pattern classification'' (2nd edition), Wiley, New York, ISBN 0-471-05669-3. {{ref-en}}
* {{нп|Крістофер Бішоп|Christopher Bishop||Christopher Bishop}} (1995). ''Neural Networks for Pattern Recognition'', Oxford University Press. ISBN 0-19-853864-2. {{ref-en}}
* {{нп|Володимир Наумович Вапник|Vladimir Vapnik||Vladimir Vapnik}} (1998). ''Statistical Learning Theory''. Wiley-Interscience, ISBN 0-471-03003-1. {{ref-en}}
* {{нп|Рей Соломонов|Ray Solomonoff||Ray Solomonoff}}, ''An Inductive Inference Machine'', IRE Convention Record, Section on Information Theory, Part 2, pp., 56-62, 1957. {{ref-en}}
* {{нп|Рей Соломонов|Ray Solomonoff||Ray Solomonoff}}, "[http://world.std.com/~rjs/indinf56.pdf An Inductive Inference Machine]" A privately circulated report from the 1956 {{нп|Дартмутський семінар|Dartmouth Summer Research Conference on AI||Dartmouth Conferences}}. {{ref-en}}
{{Refend}}

== Посилання ==
* [http://machinelearning.org/ Міжнародна спільнота машинного навчання] ({{lang-en|International Machine Learning Society}}) {{ref-en}}
* Популярний онлайн-курс від {{нп|Ендрю Ин|Ендрю Ина||Andrew Ng}} на [https://www.coursera.org/course/ml Coursera]. Використовує [[GNU Octave]]. Цей курс є безкоштовною версією справжнього курсу [[Стенфордський університет|Стенфордського університету]], який читає Ендрю Ин, лекції якого також [https://see.stanford.edu/Course/CS229 доступні безкоштовно]. {{ref-en}}
* [http://mloss.org/ mloss]&nbsp;— академічна база даних відкритого програмного забезпечення для машинного навчання. {{ref-en}}


== Джерела ==
* [[:de:Maschinelles Lernen]]


{{Штучний інтелект}}
{{Штучний інтелект}}


[[Категорія:Штучний інтелект]]
[[Категорія:Машинне навчання|*]]
[[Категорія:Машинне навчання|*]]
[[Категорія:Прикладна математика]]
[[Категорія:Навчання]]
[[Категорія:Теоретична інформатика]]
[[Категорія:Кібернетика]]

Версія за 15:24, 23 липня 2016

Машинне навчання (англ. machine learning) — це підгалузь інформатики[1] (зокрема, м'яких обчислень[en]), яка еволюціювала з дослідження розпізнавання образів та теорії обчислювального навчання[en] в галузі штучного інтелекту.[1] 1959 року Артур Семюель визначив машинне навчання як «Галузь досліджень, яка дає комп'ютерам здатність навчатися без того, щоби їх явно програмували».[2] Машинне навчання досліджує вивчення та побудову алгоритмів, які можуть навчатися з даних, і передбачувати їх.[3] Такі алгоритми діють шляхом побудови моделі зі зразкового тренувального набору вхідних спостережень, щоби здійснювати керовані даними прогнози або ухвалювати рішення, виражені як виходи,[4]:2 замість того, щоби суворо слідувати статичним програмним інструкціям.

Машинне навчання тісно пов'язане (і часто перетинається) з обчислювальною статистикою[en], дисципліною, яка також фокусується на прогнозуванні шляхом застосування комп'ютерів. Воно має тісні зв'язки з математичною оптимізацією, яка забезпечує цю галузь методами, теорією та прикладними областями. Машинне навчання застосовують в ряді обчислювальних задач, в яких розробка та програмування явних алгоритмів є нездійсненними. Приклади таких застосувань включають відфільтровування спаму[en], оптичне розпізнавання символів (ОРС),[5] пошукові системи та комп'ютерний зір. Машинне навчання іноді з'єднують з добуванням даних,[6] де друга підгалузь фокусується більше на дослідницькому аналізі даних, і є відомою як навчання без учителя.[4]:vii[7]

В межах галузі аналізу даних машинне навчання є методом, який використовується для винаходження складних моделей та алгоритмів, які слугують прогнозуванню — в комерційному застосуванні це відоме як передбачувальна аналітика[en]. Ці аналітичні моделі дозволяють дослідникам, науковцям з даних, інженерам та аналітикам «виробляти надійні, повторювані рішення та результати» та розкривати «приховані розуміння» шляхом навчання з історичних співвідношень та тенденцій в даних.[8]

Огляд

Том Мітчелл запровадив широко цитоване формальніше визначення: «Кажуть, що комп'ютерна програма вчиться з досвіду E по відношенню до якогось класу задач T та міри продуктивності P, якщо її продуктивність у задачах з T, вимірювана за допомогою P, покращується з досвідом E[9] Це визначення є видатним тому, що воно визначає машинне навчання через фундаментально операційні, а не когнітивні, терміни, слідуючи таким чином пропозиції Алана Тюрінга в його праці «Обчислювальні машини та розум[en]», щоби питання «Чи можуть машини думати?» замінити питанням «Чи можуть машини робити те, що можемо робити ми (як істоти, які думають)?».[10]

Типи задач і завдань

Задачі машинного навчання, як правило, поділяють на три широкі категорії, в залежності від природи «сигналу», якого навчається система, або «зворотного зв'язку», доступного системі, яка навчається. Цими категоріями є:[11]

  • Навчання з учителем (кероване навчання, англ. supervised learning): Комп'ютерові представляють приклади входів та їхніх бажаних виходів, задані «вчителем», і метою є навчання загального правила, яке відображає[en] входи на виходи.
  • Навчання без учителя (спонтанне навчання, англ. unsupervised learning): Алгоритмові навчання не дається міток, залишаючи його самому знаходити структуру в своєму вході. Навчання без учителя може бути метою саме по собі (виявлення прихованих закономірностей у даних), або засобом досягнення мети (навчання ознак).
  • Навчання з підкріпленням (англ. reinforcement learning): Комп'ютерна програма взаємодіє з динамічним середовищем, у якому вона повинна виконувати певну мету (таку як водіння автівки), без учителя, який явно казав би їй, чи підійшла вона близько до мети. Іншим прикладом є навчання грі через гру із суперником.[4]:3

Між керованим та спонтанним навчанням є напівавтоматичне навчання (англ. semi-supervised learning), в якому вчитель дає неповний тренувальний сигнал: тренувальний набір, в якому відсутні деякі (часто численні) цільові виходи. Окремим випадком цього принципу є трансдукція[en] (англ. transduction), коли під час навчання відомий повний набір випадків задачі, крім частини цілей, яких бракує.

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

Серед інших задач машинного навчання навчання навчатися[en] навчається свого власного індуктивного упередження[en] на основі попереднього досвіду. Еволюційне навчання[en] (англ. developmental learning), розроблене для навчання роботів, породжує свої власні послідовності навчальних ситуацій (також звані навчальним планом, англ. curriculum), щоби накопичувально отримувати репертуари нових навичок шляхом автономного само-дослідження та соціальної взаємодії з вчителями-людьми, і застосування провідних механізмів, таких як активне навчання, дозрівання, рухова синергія та імітація.

Інша класифікація завдань машинного навчання виникає при розгляді бажаного виходу системи з машинним навчанням:[4]:3

  • У класифікації (англ. classification) входи поділяються на два або більше класів, і система-учень мусить породити модель, яка відносить небачені входи до одного або більше (багатоміткова класифікація[en]) з цих класів. Це, як правило, намагаються розв'язувати керованим чином. Прикладом класифікації є фільтри спаму, в яких входами є повідомлення електронної пошти (або чогось іншого), а класами є «спам» та «не спам».
  • У регресії (англ. regression), також керованій задачі, виходи є безперервними, а не дискретними.
  • У кластеруванні (англ. clustering) набір входів повинно бути поділено на групи. На відміну від класифікації, групи не відомі заздалегідь, що зазвичай робить це завданням для спонтанного навчання.
  • Оцінка густини знаходить розподіл входів у деякому просторі.
  • Зниження розмірності спрощує входи шляхом відображення їх на простір меншої розмірності. Пов'язаною задачею є тематичне моделювання, в якому програмі надається перелік документів людською мовою, і дається завдання з'ясувати, які документи охоплюють подібні теми.

Історія та відношення до інших областей

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

Як наукове прагнення, машинне навчання виросло з розшуків штучного інтелекту. Вже ранніми днями ШІ як академічної дисципліни деякі дослідники зацікавилися тим, щоби машини вчилися з даних. Вони намагалися наблизитися до розв'язання цієї задачі різними символьними методами, а також тим, що згодом було названо «нейронними мережами»; це були здебільшого перцептрони та інші моделі, які згодом виявилися повторними винаходами узагальнених лінійних моделей[en] статистики. Застосовувалося також і ймовірнісне міркування, особливо в автоматизованій медичній діагностиці.[11]:488

Проте зростання акценту на логічному, основаному на знаннях підході[en] викликало розрив між ШІ та машинним навчанням. Ймовірнісні системи страждали на теоретичні та практичні проблеми збирання та представлення даних.[11]:488 Близько 1980 року прийшли експертні системи, щоби домінувати над ШІ, а статистика була в немилості.[12] Робота над навчанням на основі символів/знань дійсно продовжувалася в межах ШІ, ведучи до індуктивного логічного програмування[en], але більш статистична лінія досліджень була тепер поза межами області справжнього ШІ, в розпізнаванні образів та інформаційному пошуку.[11]:708–710; 755 Приблизно в цей же час ШІ та інформатикою було облишено дослідження нейронних мереж. Цю лінію також було продовжено за межами області ШІ/інформатики, як «конективізм», дослідниками з інших дисциплін, включно з Хопфілдом, Румельхартом[en] та Хінтоном. Їхній головний успіх прийшов у середині 1980-х років із повторним винайденням зворотного поширення.[11]:25

Машинне навчання, реорганізоване як окрема область, почало бурхливо розвиватися в 1990-х роках. Ця область змінила свої цілі з досягання штучного інтелекту на розв'язання розв'язних задач практичного характеру. Вона змістила фокус із символьних підходів, успадкованих нею від ШІ, в бік методів та моделей, позичених зі статистики та теорії ймовірності.[12] Вона також виграла від збільшуваної доступності оцифрованої інформації та можливості розповсюджувати її через Інтернет.

Машинне навчання та добування даних часто використовують одні й ті ж методи, і значно перекриваються. Їх можна грубо розрізнити наступним чином:

  • Машинне навчання фокусується на передбаченні на основі відомих властивостей, вивчених з тренувальних даних.
  • Добування даних фокусується на відкритті невідомих (раніше) властивостей даних. Воно є кроком аналізу з виявлення знань у базах даних.

Ці дві області перекриваються у багатьох відношеннях: добування даних використовує багато методів машинного навчання, але часто з дещо іншою метою. З іншого боку, машинне навчання також застосовує методи добування даних як «навчання без учителя», або як крок попередньої обробки для покращення точності механізму навчання. Велика частина плутанини між цими двома дослідницькими спільнотами (які часто мають окремі конференції та окремі журнали, з ECML PKDD[en] як основним винятком) виходить з основних припущень, з якими вони працюють: у машинному навчанні продуктивність зазвичай оцінюється по відношенню до здатності відтворювати відоме знання, тоді як у виявленні знань та добуванні даних (англ. Knowledge Discovery and Data Mining, KDD) ключовою задачею є виявлення не відомого раніше знання. При оцінці по відношенню до відомих знань неінформований (некерований) метод легко програватиме керованим методам, тоді як у типовій задачі KDD керовані методи застосовуватися не можуть в силу відсутності тренувальних даних.

Машинне навчання також має тісні зв'язки з оптимізацією: багато задач навчання формулюються як мінімізація деякої функції втрат на тренувальному наборі прикладів. Функції втрат виражають розбіжність між передбаченнями тренованої моделі та дійсними зразками задачі (наприклад, у класифікації потрібно призначати мітки зразкам, і моделі тренуються правильно передбачати попередньо призначені мітки набору прикладів). Різниця між цими двома областями виникає з мети узагальнення: в той час як алгоритми оптимізації можуть мінімізувати втрати на тренувальному наборі, машинне навчення зосереджене на мінімізації втрат на небачених зразках.[13]

Відношення до статистики

Машинне навчання та статистика є тісно пов'язаними областями. Згідно Майкла І. Джордана[en], ідеї машинного навчання, від методологічних принципів до теоретичних інструментів, мали довгу передісторію в статистиці.[14] Він також запропонував термін «наука про дані» для позначення загальної області.[14]

Лео Брейман[en] виділив дві парадигми статистичного моделювання: модель даних, та алгоритмічну модель,[15] де «алгоритмічна модель» означає більш-менш алгоритми машинного навчання, такі як випадковий ліс.

Деякі фахівці зі статистики запозичили методи з машинного навчання, ведучи до об'єднаної області, яку вони називають статистичним навчанням (англ. statistical learning).[16]

Теорія

Детальніші відомості з цієї теми ви можете знайти в статті Теорія обчислювального навчання[en].

Основна мета системи, яка навчається, — це робити узагальнення зі свого досвіду.[17][18] Узагальнення в цьому контексті є здатністю машини, яка вчиться, працювати точно на нових, не бачених прикладах/задачах після отримання досвіду навчального набору даних. Тренувальні приклади походять з якогось загалом невідомого розподілу ймовірності (який вважається представницьким для простору випадків), і система, яка вчиться, має будувати загальну модель цього простору, яка дозволяє їй виробляти достатньо точні передбачення в нових випадках.

Обчислювальний аналіз алгоритмів машинного навчання та їхньої продуктивності є галуззю теоретичної інформатики, відомої як теорія обчислювального навчання[en] (англ. computational learning theory). Оскільки тренувальні набори є скінченними, а майбутнє є непевним, теорія навчання зазвичай не дає гарантій продуктивності алгоритмів. Натомість доволі поширеними є ймовірнісні рамки продуктивності. Одним зі шляхів кількісної оцінки похибки узагальнення є компроміс зсуву та дисперсії.

Те, наскільки добре модель, натренована наявними прикладами, передбачує виходи для невідомих випадків, називається узагальненням. Щоб узагальнення було найкращим, складність його гіпотези повинна відповідати складності функції, яка лежить в основі даних. Якщо гіпотеза є менш складною за цю функцію, то ми недовчилися. Тоді ми підвищуємо складність, і похибка тренування знижується. Але якщо наша гіпотеза є занадто складною, то ми перевчилися. Після цього ми повинні знайти гіпотезу, яка має мінімальну похибку тренування.[19]

На додачу до рамок продуктивності, теоретики обчислювального навчання досліджують часову складність та здійсненність навчання. В теорії обчислювального навчання обчислення вважається здійсненним, якщо його може бути виконано за поліноміальний час[en]. Є два види результатів часової складності. Позитивні результати показують, що певного класу функцій може бути навчено за поліноміальний час. Негативні результати показують, що певних класів не може бути навчено за поліноміальний час.

Існує багато схожостей між теорією машинного навчання та статистичним виведенням, хоча вони використовують відмінні терміні.

Підходи

Детальніші відомості з цієї теми ви можете знайти в статті Перелік алгоритмів машинного навчання[en].

Навчання дерев рішень

Детальніші відомості з цієї теми ви можете знайти в статті Навчання дерев рішень.

Навчання дерев рішень (англ. decision tree learning) використовує як передбачувальну модель дерево рішень, яке відображує спостереження про предмет на висновки про цільове значення предмету.

Навчання асоціативних правил

Детальніші відомості з цієї теми ви можете знайти в статті Навчання асоціативних правил.

Навчання асоціативних правил (англ. association rule learning) є методом виявлення цікавих зв'язків між величинами у великих базах даних.

Штучні нейронні мережі

Алгоритм навчання штучної нейронної мережі (ШНМ, англ. artificial neural network, ANN), зазвичай званої «нейронною мережею» (НМ), є алгоритмом навчання, натхненим структурою та функційними аспектами біологічних нейронних мереж. Обчислення структуруються в термінах взаємозв'язаних груп штучних нейронів, які обробляють інформацію із застосуванням конективістського підходу до обчислень. Сучасні нейронні мережі є нелінійними статистичними інструментами моделювання даних. Їх зазвичай застосовують для моделювання складних взаємозв'язків між входами та виходами, для пошуку закономірностей в даних, або для виявлення статистичної структури в невідомому спільному розподілі ймовірності спостережуваних величин.

Глибинне навчання

Докладніше: Глибинне навчання

Падіння цін на апаратне забезпечення та розвиток графічних процесорів для особистого використання протягом останніх кількох років зробили свій внесок у розвиток поняття глибинного навчання (англ. Deep Learning), яке складається з кількох прихованих шарів штучної нейронної мережі. Цей підхід намагається моделювати спосіб, яким людський мозок обробляє світло та звук для зору та слуху. Деякими з успішних застосувань глибинного навчання є комп'ютерний зір та розпізнавання мовлення.[20]

Індуктивне логічне програмування

Детальніші відомості з цієї теми ви можете знайти в статті Індуктивне логічне програмування[en].

Індуктивне логічне програмування (ІЛП, англ. Inductive logic programming, ILP) є підходом до навчання правил із застосуванням логічного програмування як універсального представлення вхідних прикладів, зворотного поширення, та гіпотез. Маючи кодування відомого основного знання та набір прикладів, представлені як логічна база даних фактів, система ІЛП виводитиме гіпотетичну логічну програму, яка має наслідками всі позитивні й жодні з негативних прикладів. Пов'язаною областю є індуктивне програмування[en], яке для представлення гіпотез розглядає будь-які види мов програмування (а не лише логічне програмування), такі як функційні програми.

Метод опорних векторів

Метод опорних векторів (англ. support vector machines, SVMs) є набором пов'язаних методів навчання з учителем, які використовуються для класифікації та регресії. Маючи набір тренувальних прикладів, кожен з яких помічено як належний до однієї з двох категорій, алгоритм тренування методу опорних векторів будує модель, яка передбачує, чи новий приклад потрапляє до однієї категорії, чи до іншої.

Кластерування

Докладніше: Кластерний аналіз

Кластерний аналіз (англ. cluster analysis) є розподілом набору спостережень на підмножини (які називають кластерами), так, що спостереження в межах одного й того ж кластеру є подібними відповідно до деякого наперед встановленого критерію або критеріїв, в той час як спостереження, взяті з різних кластерів, є несхожими. Різні методики кластерування роблять різні припущення про структуру даних, часто визначені деякими мірами подібності, і оцінювані, наприклад, внутрішньою компактністю (подібністю членів одного й того ж кластеру) та відокремленістю між різними кластерами. Інші методи ґрунтуються на оцінюваній густині та зв'язності графа. Кластерування є методом навчання без учителя, і поширеною методикою статистичного аналізу даних.

Баєсові мережі

Докладніше: Баєсова мережа

Баєсова мережа, мережа переконань, або спрямована ациклічна графічна модель (англ. bayesian network, belief network, directed acyclic graphical model) — це ймовірнісна графічна модель, яка представляє набір випадкових величин та їхніх умовних незалежностей[en] через орієнтований ациклічний граф. Наприклад, баєсова мережа може представляти ймовірнісні взаємозв'язки між хворобами та симптомами. Маючи в розпорядженні симптоми, таку мережу можна використовувати для обчислення ймовірностей наявності різних хвороб. Існують ефективні алгоритми для виконання виведення та навчання.

Навчання з підкріпленням

Навчання з підкріпленням (англ. reinforcement learning) переймається тим, як агент повинен вчиняти дії в середовищі таким чином, щоби максимізувати деяке уявлення про довготермінову винагороду. Алгоритми навчання з підкріпленням намагаються знайти політику, яка відображує стани світу на дії, які агент повинен вчиняти в цих станах. Навчання з підкріпленням відрізняється від навчання з учителем тим, що пари правильних входів/виходів йому ніколи не представляються, і не зовсім оптимальні дії ніколи явно не виправляються.

Навчання представлень

Декотрі алгоритми навчання, головно алгоритми навчання без учителя, мають на меті виявлення кращих представлень входів, наданих протягом тренування. Класичні приклади включають метод головних компонент та кластерний аналіз. Алгоритми навчання представлень (англ. representation learning) часто намагаються зберегти інформацію в своїх входах, але перетворити її таким чином, щоби зробити її зручною, часто як крок попередньої обробки перед виконанням класифікації або передбачень, уможливлюючи відбудову входів, які йдуть з невідомого розподілу, що породжує дані, й у той же час не будучи обов'язково точними для конфігурацій, які є малоймовірними за того розподілу.

Алгоритми навчання многовидів[en] намагаються робити це за обмеження, щоби навчені представлення мали низьку розмірність. Алгоритми розрідженого кодування намагаються робити це за обмеження, щоби навчені представлення були розрідженими (мали багато нулів). Алгоритми навчання полілінійного підпростору[en] мають на меті навчання представлень низької розмірності безпосередньо з тензорних представлень багатовимірних даних без перетворення їх на (багатовимірні) вектори.[21] Алгоритми глибинного навчання знаходять кілька рівнів представлення, або ієрархію ознак, в якій високорівневі, абстрактніші ознаки визначаються в термінах ознак нижчого рівня (або породжують їх). Було висловлено думку, що розумна машина — це така, яка навчається представлення, що розплутує чинники, які лежать в основі варіацій, що описують спостережувані дані.[22]

Навчання подібностей та мір

Детальніші відомості з цієї теми ви можете знайти в статті Навчання подібностей[en].

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

Навчання розріджених словників

Детальніші відомості з цієї теми ви можете знайти в статті Навчання розріджених словників[en].

В цьому методі дані представляються лінійною комбінацією базисних функцій, і передбачається, що коефіцієнти є розрідженими. Нехай x є d-вимірними даними, а D є матрицею d на n, кожен стовпчик якої представляє базисну функцію. r є коефіцієнтом для представлення x за допомогою D. З математичної точки зору, навчання розрідженого словника (англ. sparse dictionary learning) означає розв'язання , де r є розрідженим. Взагалі кажучи, передбачається, що n є більшим за d, щоби дати свободу для розрідженого представлення.

Навчання словника разом із розрідженим представленням є строго NP-складним[en], і є також складним і для наближеного розв'язання.[23] Популярним евристичним методом навчання розріджених словників є K-СРМ[en].

Навчання розріджених словників застосовувалося в кількох контекстах. У класифікації задачею є визначення, до яких класів належать раніше не бачені дані. Припустімо, що словник для кожного з класів вже було побудовано. Тоді нові дані асоціюються з таким класом, у словникові якого вони розріджено представлені найкраще. Навчання розріджених словників застосовувалося також у знешумлюванні зображень. Ключова ідея полягає в тому, що чистий клаптик зображення може бути розріджено представлено словником зображення, а шум — ні.[24]

Генетичні алгоритми

Генетичний алгоритм (ГА, англ. genetic algorithm, GA) — це евристичний алгоритм пошуку, який імітує процес природного добору, і використовує такі методи як мутація[en] та схрещування для породження нового генотипу в надії знайти добрі розв'язки заданої задачі. В машинному навчанні генетичні алгоритми знаходили деякі застосування в 1980-х та 1990-х роках.[25][26] І навпаки, методики машинного навчання використовувалися для покращення продуктивності генетичних та еволюційних алгоритмів.[27]

Застосування

До застосувань машинного навчання входять:

2006 року компанія інтернет-телебачення Netflix провела перші змагання Netflix Prize[en], щоби знайти програму для кращого передбачення вподобань користувачів, і покращити точність її наявного алгоритму рекомендації кінематографічних фільмів щонайменше на 10%. Об'єднана команда дослідників з AT&T Labs-Research у співпраці з командами Big Chaos та Pragmatic Theory побудувала ансамблеву модель[en], яка 2009 року виграла головний приз сумою 1 мільйон доларів.[28] Незабаром після призначення призу Netflix зрозуміли, що рейтинги користувачів були не найкращими показниками їхніх моделей перегляду («всі рекомендації»), і вони змінили свій рекомендаційний рушій відповідно.[29]

2010 року газета The Wall Street Journal написала про застосування компанією з керування капіталом Rebellion Research[en] машинного навчання для прогнозування рухів в економіці. Ця стаття описує прогнозування компанією Rebellion Research фінансової кризи та економічного відновлення.[30]

2014 року було повідомлено про застосування алгоритму машинного навчання в історії мистецтв для дослідження витонченого мистецтва живопису, і що воно могло виявити доти нерозпізнані впливи між митцями.[31]

Етика

Машинне навчання ставить безліч етичних питань. Системи, треновані на наборах даних, зібраних з упередженнями, можуть проявляти ці упередження при використанні, оцифровуючи таким чином культурні забобони, такі як інституційний расизм або класизм.[32] Таким чином, відповідальне збирання даних є критичною частиною машинного навчання. Додаткову інформацію див. у машинній етиці.

Програмне забезпечення

До програмних пакетів, які містять ряд алгоритмів машинного навчання, належать наступні:

Вільне та відкрите програмне забезпечення

Власницьке програмне забезпечення з вільними або відкритими редакціями

Власницьке програмне забезпечення

Журнали

Конференції

Див. також

Примітки

  1. а б http://www.britannica.com/EBchecked/topic/1116194/machine-learning (англ.)  Це третинне джерело перевикористовує інформацію з інших джерел, не називаючи їх.
  2. Phil Simon (18 березня 2013). Too Big to Ignore: The Business Case for Big Data. Wiley. с. 89. ISBN 978-1-118-63817-0. (англ.)
  3. Ron Kohavi; Foster Provost (1998). Glossary of terms. Machine Learning. 30: 271—274. (англ.)
  4. а б в г Machine learning and pattern recognition "can be viewed as two facets of the same field."
  5. Wernick, Yang, Brankov, Yourganov and Strother, Machine Learning in Medical Imaging, IEEE Signal Processing Magazine[en], vol. 27, no. 4, July 2010, pp. 25-38 (англ.)
  6. Mannila, Heikki (1996). Data mining: machine learning, statistics, and databases. Int'l Conf. Scientific and Statistical Database Management. IEEE Computer Society. (англ.)
  7. Friedman, Jerome H. (1998). Data Mining and Statistics: What's the connection?. Computing Science and Statistics. 29 (1): 3—9. (англ.)
  8. Machine Learning: What it is and why it matters. www.sas.com. Процитовано 29 березня 2016. (англ.)
  9. Mitchell, T. (1997). Machine Learning, McGraw Hill. ISBN 0-07-042807-7, p.2. (англ.)
  10. Harnad, Stevan (2008), The Annotation Game: On Turing (1950) on Computing, Machinery, and Intelligence, у Epstein, Robert; Peters, Grace (ред.), The Turing Test Sourcebook: Philosophical and Methodological Issues in the Quest for the Thinking Computer, Kluwer (англ.)
  11. а б в г д Russell, Stuart; Norvig, Peter (2003) [1995]. Artificial Intelligence: A Modern Approach (вид. 2nd). Prentice Hall. ISBN 978-0137903955. (англ.)
  12. а б Langley, Pat (2011). The changing science of machine learning. Machine Learning. 82 (3): 275—279. doi:10.1007/s10994-011-5242-y. (англ.)
  13. Le Roux, Nicolas; Bengio, Yoshua; Fitzgibbon, Andrew (2012). Improving First and Second-Order Methods by Modeling Uncertainty. У Sra, Suvrit; Nowozin, Sebastian; Wright, Stephen J. (ред.). Optimization for Machine Learning. MIT Press. с. 404. (англ.)
  14. а б MI Jordan (10 вересня 2014). statistics and machine learning. reddit. Процитовано 1 жовтня 2014. (англ.)
  15. Cornell University Library. Breiman  : Statistical Modeling: The Two Cultures (with comments and a rejoinder by the author). Процитовано 8 серпня 2015 р.. (англ.)
  16. Gareth James; Daniela Witten; Trevor Hastie; Robert Tibshirani (2013). An Introduction to Statistical Learning. Springer. с. vii. (англ.)
  17. Bishop, C. M. (2006), Pattern Recognition and Machine Learning, Springer, ISBN 0-387-31073-8 (англ.)
  18. Mehryar Mohri[en], Afshin Rostamizadeh, Ameet Talwalkar (2012) Foundations of Machine Learning, MIT Press ISBN 978-0-262-01825-8. (англ.)
  19. Ethem Alpaydin. "Introduction to Machine Learning" The MIT Press, 2010. (англ.)
  20. Honglak Lee, Roger Grosse, Rajesh Ranganath, Andrew Y. Ng. "Convolutional Deep Belief Networks for Scalable Unsupervised Learning of Hierarchical Representations" Proceedings of the 26th Annual International Conference on Machine Learning, 2009. (англ.)
  21. Lu, Haiping; Plataniotis, K.N.; Venetsanopoulos, A.N. (2011). A Survey of Multilinear Subspace Learning for Tensor Data (PDF). Pattern Recognition. 44 (7): 1540—1551. doi:10.1016/j.patcog.2011.01.004. (англ.)
  22. Yoshua Bengio (2009). Learning Deep Architectures for AI. Now Publishers Inc. с. 1—3. ISBN 978-1-60198-294-0. (англ.)
  23. A. M. Tillmann, "On the Computational Intractability of Exact and Approximate Dictionary Learning", IEEE Signal Processing Letters 22(1), 2015: 45–49. (англ.)
  24. Aharon, M, M Elad, and A Bruckstein. 2006. "K-SVD: An Algorithm for Designing Overcomplete Dictionaries for Sparse Representation." Signal Processing, IEEE Transactions on 54 (11): 4311-4322 (англ.)
  25. Goldberg, David E.; Holland, John H. (1988). Genetic algorithms and machine learning. Machine Learning. 3 (2): 95—99. doi:10.1007/bf00113892. (англ.)
  26. Michie, D.; Spiegelhalter, D. J.; Taylor, C. C. (1994). Machine Learning, Neural and Statistical Classification. Ellis Horwood. (англ.)
  27. Zhang, Jun; Zhan, Zhi-hui; Lin, Ying; Chen, Ni; Gong, Yue-jiao; Zhong, Jing-hui; Chung, Henry S.H.; Li, Yun; Shi, Yu-hui (2011). Evolutionary Computation Meets Machine Learning: A Survey (PDF). Computational Intelligence Magazine. IEEE. 6 (4): 68—75. doi:10.1109/mci.2011.942584. (англ.)
  28. "BelKor Home Page" research.att.com (англ.)
  29. The Netflix Tech Blog: Netflix Recommendations: Beyond the 5 stars (Part 1). Процитовано 8 серпня 2015 р.. (англ.)
  30. Scott Patterson (13 July 2010). 'Artificial Intelligence' Gains Fans Among Investors - WSJ. WSJ. Процитовано 8 серпня 2015 р.. (англ.)
  31. When A Machine Learning Algorithm Studied Fine Art Paintings, It Saw Things Art Historians Had Never Noticed, The Physics at ArXiv blog (англ.)
  32. Bostrom, Nick (2011). The Ethics of Artificial Intelligence (PDF). Процитовано 11 серпня 2016 р.. (англ.)

Література

Посилання