Меня немного смущает различие между терминами «машинное обучение» и «глубокое обучение». Я прогуглил это и прочитал много статей, но это все еще не очень ясно для меня.
Известное определение машинного обучения Тома Митчелла:
Компьютерная программа называется извлечь из опыта Е относительно некоторого класса задач T и измерения производительности P , если его производительность на задачах в Т , как измерено P , улучшается с опытом E .
Если я возьму задачу классификации изображений классификации собак и кошек в качестве моего такта T , из этого определения я понимаю, что если бы я дал алгоритму ML набор изображений собак и кошек (опыт E ), алгоритм ML мог бы научиться различать новое изображение как собаку или кошку (при условии, что показатель эффективности P четко определен).
Затем приходит глубокое обучение. Я понимаю, что глубокое обучение является частью машинного обучения и что приведенное выше определение справедливо. Производительность при задаче Т улучшается с опытом Е . Все хорошо до сих пор.
В этом блоге говорится, что есть разница между машинным обучением и глубоким обучением. Различие, по словам Адиля, состоит в том, что в (традиционном) машинном обучении функции должны быть созданы вручную, тогда как в глубоком обучении функции изучаются. Следующие цифры поясняют его утверждение.
Меня смущает тот факт, что в (традиционном) машинном обучении функции должны быть изготовлены вручную. Из приведенного выше определения Тома Митчелла, я думаю , что эти функции будут извлечь из опыта Е и производительности P . Чему иначе можно научиться в машинном обучении?
В Deep Learning я понимаю, что из опыта вы узнаете, какие функции и как они связаны друг с другом для повышения производительности. Могу ли я заключить, что функции машинного обучения должны быть созданы вручную, и что является изучением комбинации функций? Или я что-то упускаю?
источник
Ответы:
В дополнение к тому, что сказал Химаншу Рай, «глубокое обучение» - это подполе, которое включает в себя использование нейронных сетей. Эти нейронные сети пытаются изучить базовое распределение, изменяя веса между слоями. Теперь рассмотрим случай распознавания изображений с использованием глубокого обучения: модель нейронной сети разделена между слоями, эти слои связаны между собой ссылками, называемыми весами, и когда начинается процесс обучения, эти слои корректируют веса таким образом, что каждый слой пытается обнаружить какую-либо особенность и помогите следующему слою в его обработке. Ключевой момент, на который следует обратить внимание, заключается в том, что мы явно не просим слой учиться обнаруживать края, или глаза, нос или лица. Модель учится делать это сама. В отличие от классических моделей машинного обучения.
источник
Как область исследований, Глубокое обучение - это просто подотдел машинного обучения, поскольку машинное обучение - это подотчет искусственного интеллекта.
1) Обучение без присмотра
Концептуально, первое основное различие между « традиционным » (или « поверхностным ») машинным обучением и глубоким обучением - это неконтролируемое функциональное обучение.
Как вы уже знаете, успешное обучение « традиционной » модели машинного обучения (например, SVM, XGBoost ...) возможно только после соответствующей предварительной обработки и разумного извлечения функций для выбора значимой информации из данных. То есть хорошие векторы признаков содержат признаки, характерные для точек данных с разными метками и согласованные для точек данных с одной меткой. Таким образом, Feature Engineering - это процесс выбора функций вручную специалистами. Это очень важный, но утомительный процесс!
Необучаемое изучение функций - это процесс, при котором модель сама выбирает функции автоматически в процессе обучения. Топология нейронной сети, организованная в слоях, соединенных друг с другом, обладает замечательным свойством отображения низкоуровневого представления данных в высокоуровневое представление. Таким образом, посредством обучения сеть может « решить », какая часть данных имеет значение, а какая - нет. Это особенно интересно в компьютерном зрении или обработке естественного языка, где довольно сложно вручную выбрать или разработать надежные функции.
(фото предоставлено Тони Белтрамелли)
В качестве примера, давайте предположим, что мы хотим классифицировать изображения кошек. Используя глубокую нейронную сеть, мы можем подавать необработанные значения пикселей, которые будут отображаться на набор весов первым слоем, затем эти веса будут сопоставляться с другими весами вторым слоем, пока последний слой не позволит некоторым весам быть сопоставлены с числами, представляющими вашу проблему. (например: в этом случае вероятность изображения, содержащего кошку)
Несмотря на то, что Deep Neural Networks может выполнять изучение функций без присмотра, это не мешает вам самостоятельно разрабатывать функции проектирования, чтобы лучше представлять свою проблему. Необучаемое изучение функций, извлечение функций и разработка функций не являются взаимоисключающими!
Источники:
2) Линейная отделимость
Глубокие нейронные сети могут решать некоторые нелинейно разделимые задачи, изгибая пространство объектов так, что объекты становятся линейно разделимыми. Еще раз, это возможно благодаря топологии сети, организованной в слоях, отображающих входные данные в новые представления данных.
(Фото предоставлено: Кристофер Олах)
Источники: http://colah.github.io/posts/2014-03-NN-Manifolds-Topology/
3) Статистическая инвариантность
Наконец, глубокие нейронные сети превосходят традиционные алгоритмы машинного обучения в некоторых областях, потому что некоторые архитектуры демонстрируют статистическую инвариантность (например: пространственная статистическая инвариантность с сверточными нейронными сетями и временная статистическая инвариантность с рекуррентными нейронными сетями)
Проверьте это видео Udacity для получения дополнительной информации: https://www.youtube.com/watch?v=5PH2Vot-tD4
источник
Вдохновленный Эйнштейном: «Если вы не можете объяснить это шестилетнему ребенку, вы сами этого не понимаете».
Все вышеприведенные ответы очень хорошо объяснены, но если вы ищете легкую для запоминания абстрактную разницу, вот лучший из известных мне:
Источник. Конечно, это еще не все, но для начинающих это может быть слишком запутанным.
источник
Хорошо, подумай об этом так. В алгоритмах машинного обучения, таких как линейная регрессия или случайный лес, вы задаете алгоритмам набор функций и цель, а затем пытаетесь минимизировать функцию стоимости, поэтому нет, она не изучает никаких новых функций, она просто изучает веса. Теперь, когда вы переходите к глубокому обучению, у вас есть, по крайней мере, один (почти всегда больше) скрытый слой с заданным количеством единиц, о которых идет речь. Таким образом, алгоритм глубокого обучения не просто изучает наборы весов, в этом процессе он также изучает значения для скрытых единиц, которые являются сложными высокоуровневыми характеристиками тривиальных данных, которые вы дали. Следовательно, во время практики ванильного машинного обучения большой опыт заключается в вашей способности разрабатывать функции, потому что алгоритм не изучает их самостоятельно. Я надеюсь, что ответил на ваш вопрос.
источник