Что такое машинное обучение? [закрыто]


92
  • Что такое машинное обучение ?
  • Что делает код машинного обучения ?
  • Когда мы говорим , что машина узнает, это изменить код сам по себе или он изменяет историю (базы данных) , которая будет содержать опыт кода для данного набора входов?

Ответы:


147

Что такое машинное обучение?

По сути, это метод обучения компьютеров делать и улучшать прогнозы или поведение на основе некоторых данных. Что это за «данные»? Что ж, это полностью зависит от проблемы. Это могут быть показания датчиков робота, когда он учится ходить, или правильный вывод программы для определенных входных данных.

Другой способ думать о машинном обучении - это «распознавание образов» - процесс обучения программе реагировать на или распознавать закономерности.

Что делает код машинного обучения?

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

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

Опять же, это зависит от обстоятельств .

Одним из примеров фактически изменяемого кода является генетическое программирование , при котором вы, по сути, развиваете программу для выполнения задачи (конечно, программа не модифицируется сама, но модифицирует другую компьютерную программу).

Нейронные сети , с другой стороны, автоматически изменяют свои параметры в ответ на подготовленные стимулы и ожидаемый ответ. Это позволяет им создавать множество вариантов поведения (теоретически они могут вызывать любое поведение, поскольку они могут аппроксимировать любую функцию с произвольной точностью при наличии достаточного времени).


Следует отметить, что использование вами термина «база данных» подразумевает, что алгоритмы машинного обучения работают путем «запоминания» информации, событий или опыта. Это не обязательно (или даже часто!).

Нейронные сети, о которых я уже упоминал, сохраняют только текущее «состояние» приближения, которое обновляется по мере обучения. Вместо того, чтобы помнить, что произошло и как на это реагировать, нейронные сети строят своего рода «модель» своего «мира». Модель говорит им, как реагировать на определенные входные данные, даже если входные данные - это то, чего она никогда раньше не видела.

Эта последняя способность - способность реагировать на вводимые данные, которых раньше никогда не было, - является одним из основных принципов многих алгоритмов машинного обучения. Представьте, что вы пытаетесь научить водителя компьютера ориентироваться в условиях дорожного движения. Используя вашу метафору «базы данных», вам придется научить компьютер, что делать в миллионах возможных ситуаций. Эффективный алгоритм машинного обучения (надеюсь!) Сможет выявить сходства между разными состояниями и одинаково на них реагировать.

Сходства между состояниями могут быть любыми - даже вещи, которые мы можем считать «обыденными», могут действительно сбить с толку компьютер! Например, предположим, что водитель компьютера узнал, что, когда автомобиль перед ним замедляет скорость, он должен замедлиться до. Для человека замена автомобиля мотоциклом ничего не меняет - мы признаем, что мотоцикл - это также и транспортное средство. Для алгоритма машинного обучения это может быть на удивление сложно! База данных должна отдельно хранить информацию о том случае, когда впереди идет автомобиль, а впереди - мотоцикл. Алгоритм машинного обучения, с другой стороны, будет «учиться» на примере автомобиля и иметь возможность автоматически обобщать на примере мотоцикла.


3
Ваши объяснения действительно очень ценны и ценны. Не могли бы вы подробно разобрать пример драйвера "Компьютер" (в отношении вашего утверждения - "изучите сходство между разными состояниями")?
Кушал Вайкар

3
Отличный пример. Я ценю ваши усилия по объяснению. Благодаря тонну !
Кушал Вайкар

1
Почему «KNN» или «K означает» относится к машинному обучению. Вы можете объяснить, пожалуйста. Спасибо
Сунку Вамси Тарун Кумар

23

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

Существует несколько различных категорий машинного обучения, включая (но не ограничиваясь ими):

  • Контролируемое обучение
  • Обучение с подкреплением

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

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

Дополнительная информация
Если вы хотите узнать больше, я настоятельно рекомендую вам прочитать книгу Кристофера М. Бишопа «Распознавание образов и машинное обучение» или пройти курс машинного обучения. Возможно, вам также будет интересно бесплатно прочитать конспекты лекций из CIS 520: Machine Learning at Penn .


2
Вы упомянули «... логический / процедурный подход невозможен или неосуществим». Не могли бы вы пояснить это на примерах? Спасибо.
LionHeart 09

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

12

Машинное обучение - это методология создания модели на основе выборочных данных и использования модели для прогнозирования или стратегии. Он принадлежит искусственному интеллекту.


11
  • Машинное обучение - это научная дисциплина, которая занимается проектированием и разработкой алгоритмов, которые позволяют компьютерам развивать поведение на основе эмпирических данных, например данных датчиков или баз данных. Подробнее читайте в Википедии

  • Код машинного обучения записывает «факты» или приближения в какое-то хранилище и с помощью алгоритмов вычисляет различные вероятности.

  • Код сам по себе не будет изменен , когда машина узнает, только база данных о том, что «он знает».


Машинное обучение не требует базы данных. Также не всегда фиксируются «факты». Некоторые вещи являются домыслами. Некоторые вещи являются приблизительными. Не все, чему учится машина, можно считать фактом.
Кевин Кроуэлл,

2
Вы по-прежнему ограничиваете свой ответ определенной областью машинного обучения. Факты или приближения не всегда записываются. Вещи можно пережить, отреагировать на них и забыть. «Хранилище» не является основным элементом машинного обучения. Его можно использовать, но это не обязательно.
Кевин Кроуэлл,

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

11

Машинное обучение - это просто общий термин для определения множества алгоритмов обучения, которые производят квазиобучение на основе примеров (без метки / метки). Фактическая точность / ошибка полностью определяется качеством данных обучения / тестирования, которые вы предоставляете своему алгоритму обучения. Это можно измерить с помощью скорости сходимости. Причина, по которой вы приводите примеры, заключается в том, что вы хотите, чтобы выбранный вами алгоритм обучения был в состоянии информативно под руководством делать обобщения. Алгоритмы можно разделить на две основные области: методы обучения с учителем (классификация) и обучения без учителя (кластеризация). Чрезвычайно важно, чтобы вы приняли обоснованное решение о том, как вы планируете разделить наборы данных для обучения и тестирования, а также о качестве, которое вы обеспечиваете своему алгоритму обучения. Предоставляя наборы данных, вы также хотите знать о таких вещах, как чрезмерная подгонка и поддержание чувства здоровой предвзятости в ваших примерах. Затем алгоритм в основном учится писать для написания на основе обобщения, которое он получает из данных, которые вы ему предоставили как для обучения, так и для последующего тестирования, в процессе которого вы пытаетесь заставить свой алгоритм обучения создавать новые примеры на основе вашего целевого обучения. При кластеризации очень мало информативных указаний, которые алгоритм в основном пытается создать с помощью измерений шаблонов между данными для построения связанных наборов кластеров, например, kmeans / наиболее близкий сосед. Затем алгоритм в основном учится писать для написания на основе обобщения, которое он получает из данных, которые вы ему предоставили как для обучения, так и для последующего тестирования, в процессе которого вы пытаетесь заставить свой алгоритм обучения создавать новые примеры на основе вашего целевого обучения. При кластеризации очень мало информативных указаний, которые алгоритм в основном пытается создать с помощью измерений шаблонов между данными для построения связанных наборов кластеров, например, kmeans / наиболее близкий сосед. Затем алгоритм в основном учится писать для написания на основе обобщения, которое он получает из данных, которые вы ему предоставили как для обучения, так и для последующего тестирования, в процессе которого вы пытаетесь заставить свой алгоритм обучения создавать новые примеры на основе вашего целевого обучения. При кластеризации очень мало информативных указаний, которые алгоритм в основном пытается создать с помощью измерений шаблонов между данными для построения связанных наборов кластеров, например, kmeans / наиболее близкий сосед.

несколько хороших книг: Introduction to ML (Nilsson / Stanford), Gaussian Process for ML, Introduction to ML (Alpaydin), Information Theory Inference and Learning Algorithms (очень полезная книга), Machine Learning (Mitchell), Pattern Recognition and Machine Learning (стандарт) Учебник по машинному обучению в Эдинбурге и различных университетах, но относительно много читается с математикой), Интеллектуальный анализ данных и практическое машинное обучение с помощью Weka (проработайте теорию с использованием weka и практику на Java)

Обучение с подкреплением есть бесплатная онлайн-книга, которую вы можете прочитать: http://www.cs.ualberta.ca/~sutton/book/ebook/the-book.html

IR, IE, Recommenders и Text / Data / Web Mining в целом используют много принципов машинного обучения. Здесь вы даже можете применить методы метаэвристической / глобальной оптимизации для дальнейшей автоматизации процессов обучения. например, применить эволюционный метод, такой как GA (генетический алгоритм), для оптимизации подхода на основе нейронной сети (который может использовать некоторый алгоритм обучения). Вы можете подойти к этому чисто в форме вероятностного подхода к машинному обучению, например, байесовского обучения. Большинство этих алгоритмов очень интенсивно используют статистику. Концепции конвергенции и обобщения важны для многих из этих алгоритмов обучения.


8

Машинное обучение - это исследование в области вычислительной техники, направленное на создание алгоритмов, способных классифицировать информацию, которую они раньше не видели, путем изучения шаблонов на основе обучения на аналогичной информации. В этом смысле есть самые разные «ученики». Примерами являются нейронные сети, байесовские сети, деревья решений, алгоритмы k-кластеризации, скрытые модели Маркова и машины опорных векторов.

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

Все учащиеся, по сути, управляются данными, то есть они сохраняют свое состояние как данные для повторного использования позже. Они не самомодифицируются как таковые, по крайней мере, в целом.


8

Я думаю, что одно из самых крутых определений машинного обучения, которое я читал, взято из книги Тома Митчелла. Легко запоминается и интуитивно понятен.

Считается, что компьютерная программа учится на опыте E в отношении некоторого класса задач T и показателя производительности P, если ее производительность при выполнении задач в T, измеренная с помощью P, улучшается с опытом E


21
Я всегда ненавидел, как это определение повторяется, даже когда его учат, несмотря на ненужное использование символов. Проще, лучше: считается, что компьютерная программа учится на собственном опыте в отношении некоторого класса задач, если ее производительность в этих задачах в отношении некоторого показателя производительности улучшается с опытом. Теперь давайте еще немного упростим. A computer program is said to learn in the context of performing a task if its performance with respect to some measure improves with experience.
Ninjakannon

1
Я занимаюсь машинным обучением около года, и даже сегодня мне приходится читать его несколько раз, чтобы понять, что именно оно означает. Интересно, я плохой или это определение.
Максим Дсуза 05

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

  • Проще говоря, код машинного обучения выполняет задачу машинного обучения. Это может быть множество вещей, от интерпретации данных датчиков до генетического алгоритма.

  • Я бы сказал, это зависит от обстоятельств. Нет, изменение кода - это ненормально, но это не выходит за рамки возможного. Я бы также не сказал, что машинное обучение всегда изменяет историю. Иногда у нас нет истории, на которой можно строить. Иногда мы просто хотим реагировать на окружающую среду, но не извлекаем уроки из прошлого опыта.

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


6

Машинное обучение - это термин, который взят из реального мира человека и применяется к чему-то, чему на самом деле нельзя научиться, - к машине.

Чтобы добавить к другим ответам, машинное обучение (обычно) не изменяет код, но может изменить его путь выполнения и решение на основе предыдущих данных или новых собранных данных и, следовательно, эффект «обучения».

есть много способов «научить» машину - вы присваиваете веса многим параметрам алгоритма, а затем заставляете машину решать их для многих случаев, каждый раз, когда вы даете ей обратную связь об ответе, и машина регулирует веса в соответствии с насколько близок был ответ машины к вашему ответу, или в соответствии с оценкой, которую вы дали ответ, или в соответствии с некоторым алгоритмом тестирования результатов.

Это один из способов обучения, и есть еще много других ...

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.