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

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

person Kushal Waikar    schedule 12.04.2010    source источник
comment
github.com/niektuytel/Machine_Learning/tree/main   -  person niek tuytel    schedule 06.07.2021


Ответы (9)


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

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

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

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

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

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

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

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

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


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

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

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

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

person Daniel G    schedule 12.04.2010
comment
Ваши объяснения действительно очень ценны и ценны. Не могли бы вы подробно рассказать о примере драйвера компьютера (относительно вашего утверждения - узнать сходство между разными состояниями)? - person Kushal Waikar; 13.04.2010
comment
Отличный пример. Я ценю ваши усилия по объяснению. Благодаря тонну ! - person Kushal Waikar; 16.04.2010
comment
Почему «KNN» или «K означает» относится к машинному обучению. Объясните пожалуйста. Спасибо - person Sunku Vamsi Tharun Kumar; 14.11.2019

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

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

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

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

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

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

person Michael Aaron Safyan    schedule 12.04.2010
comment
Вы упомянули ... логический/процедурный подход был бы невозможен или неосуществим. Не могли бы вы пояснить это на примерах? Спасибо. - person LionHeart; 09.06.2011
comment
@LionHeart, хороший пример — распознавание символов. Вы можете попробовать написать алгоритм, который может распознавать различные кривые, линии и другие особенности различных символов, но когда дело доходит до этого, это очень сложная задача, и ML решает ее довольно просто. - person Michael Aaron Safyan; 12.06.2011

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

person zs2020    schedule 12.04.2010

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

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

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

person Espo    schedule 12.04.2010
comment
Машинное обучение не требует базы данных. Он также не всегда фиксирует факты. Некоторые вещи являются предположениями. Некоторые вещи являются приблизительными. Не все, чему учится машина, можно считать фактом. - person Kevin Crowell; 12.04.2010
comment
Вы по-прежнему ограничиваете свой ответ определенной областью машинного обучения. Факты или приближения не всегда фиксируются. Вещи можно пережить, отреагировать и забыть. Хранилище не является основным продуктом машинного обучения. Его можно использовать, но это не является необходимостью. - person Kevin Crowell; 12.04.2010
comment
если бы программа машинного обучения сохраняла полученные данные, тогда не было бы смысла иметь программу... мы бы просто запрашивали сами данные. Большинство программ машинного обучения создают только модель данных, поскольку набор данных может быть довольно большим (несколько ГБ), и мы хотим, чтобы программа обладала способностью прогнозировать невидимые наборы данных. У программы машинного обучения почти нет причин хранить данные. - person Kiril; 12.04.2010

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

несколько хороших книг: Introduction to ML (Nilsson/Stanford), Gaussian Process for ML, Introduction to ML (Alpaydin), Inference 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 (генетический алгоритм), для оптимизации вашего подхода на основе нейронной сети (который может использовать некоторый алгоритм обучения). Вы можете подойти к этому исключительно в форме вероятностного подхода к машинному обучению, например байесовского обучения. Большинство этих алгоритмов очень интенсивно используют статистику. Понятия конвергенции и обобщения важны для многих из этих алгоритмов обучения.

person meme    schedule 30.05.2011

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

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

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

person Shaggy Frog    schedule 12.04.2010

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

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

person vikram360    schedule 11.09.2011
comment
Я всегда ненавидел то, как это определение повторяется, даже если его учат, несмотря на ненужное использование символов. Проще, лучше: говорят, что компьютерная программа учится на опыте в отношении некоторого класса задач, если ее производительность в этих задачах по некоторому показателю производительности улучшается с опытом. Теперь давайте еще немного упростим. 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. - person Ninjakannon; 25.10.2013
comment
Я занимаюсь машинным обучением уже около года, и даже сегодня мне приходится читать его несколько раз, чтобы понять, что именно это означает. Интересно, я плохой или это определение? - person Maxim Dsouza; 05.09.2018

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

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

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

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

person Kevin Crowell    schedule 12.04.2010

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

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

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

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

person Dani    schedule 12.04.2010