Машинне навчання

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

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

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

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

Огляд[ред.ред. код]

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

Типи задач і завдань[ред.ред. код]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Відношення до статистики[ред.ред. код]

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

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

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

Теорія[ред.ред. код]

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

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

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

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

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

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

Підходи[ред.ред. код]

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

Навчання дерев рішень[ред.ред. код]

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

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

Навчання асоціативних правил[ред.ред. код]

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

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

Штучні нейронні мережі[ред.ред. код]

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

Глибинне навчання[ред.ред. код]

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

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

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

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

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

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

Детальніші відомості з цієї теми Ви можете знайти в статті Навчання розріджених словників[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], який імітує процес природного добору, і використовує такі методи як мутація[en] та схрещування для породження нового генотипу в надії знайти добрі розв'язки заданої задачі. В машинному навчанні генетичні алгоритми знаходили деякі застосування в 1980-х та 1990-х роках.[25][26] І навпаки, методики машинного навчання використовувалися для покращення продуктивності генетичних та еволюційних алгоритмів.[27]

Застосування[ред.ред. код]

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

2006 року компанія інтернет-телебачення Netflix провела перші змагання Netflix Prize[en], щоби знайти програму для кращого передбачення вподобань користувачів, і покращити точність її наявного алгоритму рекомендації кінематографічних фільмів щонайменше на 10%. Об'єднана команда дослідників з AT&T Labs[en]-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] Таким чином, відповідальне збирання даних[en] є критичною частиною машинного навчання. Додаткову інформацію див. у машинній етиці[en].

Програмне забезпечення[ред.ред. код]

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

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

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

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

Журнали[ред.ред. код]

Конференції[ред.ред. код]

Див. також[ред.ред. код]

Примітки[ред.ред. код]

  1. а б http://www.britannica.com/EBchecked/topic/1116194/machine-learning (англ.)  Це третинне джерело перевикористовує інформацію з інших джерел, не називаючи їх.
  2. Phil Simon (March 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[en] 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. Процитовано 2016-03-29.  (англ.)
  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[en] 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». Optimization for Machine Learning. MIT Press. p. 404.  (англ.)
  14. а б MI Jordan (2014-09-10). statistics and machine learning. reddit. Процитовано 2014-10-01.  (англ.)
  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. 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[en] 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 та ін. (2011). Evolutionary Computation Meets Machine Learning: A Survey. Computational Intelligence Magazine 6 (4) (IEEE). с. 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. Процитовано 11 серпня 2016 р..  (англ.)

Література[ред.ред. код]

Посилання[ред.ред. код]