Цель этой статьи - мои личные образовательные цели, и, надеюсь, она может помочь кому-то еще на этом пути. Большинство определений были взяты из «Руководства по машинному обучению с помощью Scikit-Learn, Keras и TensorFlow» Орельена Жерона и «Глубокого обучения с помощью Python» Франсуа Шолле. Я настоятельно рекомендую вам прочитать эти книги, если вы хотите продолжить карьеру в области ML & DL. Я не владею этим контентом, но я использую его, чтобы помочь мне в моем путешествии по данным. Я буду обновлять эту статью по мере возможности. Если у вас есть какие-либо советы или предложения, я буду более чем рад их получить, поскольку знаю, что путь к данным — это долгий и полезный процесс.

Методы контролируемого обучения:

  • Линейная регрессия

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

  • Логистическая регрессия

Некоторые алгоритмы регрессии можно использовать для классификации (и наоборот). Логистическая регрессия (также называемая Логит-регрессия) обычно используется для оценки вероятности принадлежности экземпляра к определенному классу (например, какова вероятность того, что это электронное письмо является спамом? ). Если оценочная вероятность больше 50 %, то модель предсказывает, что экземпляр принадлежит к этому классу, а в противном случае — нет. Это делает его бинарным классификатором.

  • Дерева решений

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

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

  • Машина опорных векторов

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

  • Обучение ансамблем

Во многих случаях вы обнаружите, что этот обобщенный ответ лучше, чем ответ эксперта. Это называется мудростью толпы. Точно так же, если вы агрегируете прогнозы группы предикторов (таких как классификаторы или регрессоры), вы часто будете получать более точные прогнозы, чем с лучшим индивидуальным предиктором. Группа предикторов называется ансамблем; таким образом, этот метод называется Обучение ансамблем, а алгоритм Обучение ансамблем называется методом ансамбля.

  • Случайные леса

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

  • Уменьшение размерности

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

К счастью, в реальных задачах часто можно значительно сократить количество признаков, превратив неразрешимую проблему в разрешимую.

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

  • Наивный байесовский анализ

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

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

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

  • K ближайших соседей

Алгоритм K ближайших соседей обеспечивает функциональность для неконтролируемых и контролируемых методов обучения на основе соседей. Неконтролируемые ближайшие соседи являются основой многих других методов обучения, в частности многообразного обучения и спектральной кластеризации. Обучение на основе контролируемых соседей бывает двух видов: классификация для данных с дискретными метками и регрессия для данных с непрерывными метками.

Методы обучения без учителя:

  • К-средние

Алгоритм K-средних – это простой алгоритм, способный очень быстро и эффективно кластеризовать неразмеченный набор данных, состоящий из разных групп, часто всего за несколько итераций. Кластеризация – это задача выявления похожих экземпляров и их распределения по кластерам или группам похожих экземпляров.

  • Разложение по единственному значению

Разложение по сингулярным числам (SVD) — один из наиболее часто используемых инструментов общего назначения в числовой линейной алгебре для обработки данных. Он используется в качестве инструмента сокращения данных. SVD — это метод разложения матрицы для сведения матрицы к составной части с целью упрощения некоторых последующих матричных вычислений. Это основа анализа основных компонентов (PCA), упомянутого выше. Чтобы узнать больше о СВД, я настоятельно рекомендую посмотреть Сериал Youtube, созданный доктором Стивеном Брантоном. Доктор Брантон умеет разбивать сложный материал таким образом, чтобы люди, подобные вам и мне, могли его понять.

Глубокое обучение:

  • Искусственные нейронные сети

ИНС – это модель машинного обучения, вдохновленная сетями биологических нейронов в нашем мозгу. Однако, хотя самолеты были вдохновлены птицами, им не нужно махать крыльями. Точно так же ИНС постепенно стали сильно отличаться от своих биологических собратьев. Некоторые исследователи даже утверждают, что нам следует вообще отказаться от биологической аналогии (например, говоря «единицы», а не «нейроны»), чтобы не ограничивать наше творчество биологически правдоподобными системами.

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

  • Сверточные нейронные сети

Сверточные нейронные сети, также известные как консети, – это модель глубокого обучения, почти повсеместно используемая в компьютерных технологиях. приложения для зрения. Мы используем три основных типа слоев для построения архитектуры convnet: сверточный уровень, уровень пула и полносвязный уровень (в точности как в обычных нейронных сетях). Мы объединим эти слои, чтобы сформировать полную архитектуру convnet.

Фундаментальное различие между плотно связанным слоем и сверточным слоем заключается в следующем: плотные слои изучают глобальные шаблоны в своем входном пространстве признаков (например, для цифры MNIST шаблоны, включающие все пиксели), тогда как сверточные слои изучают локальные шаблоны: в случае изображения, закономерности, обнаруженные в небольших 2D-окнах входных данных.

  • Рекуррентные нейронные сети

До сих пор мы фокусировались на нейронных сетях с прямой связью, в которых активация протекает только в одном направлении, от входного слоя к выходному слою. рекуррентная нейронная сеть (RNN) очень похожа на нейронную сеть с прямой связью, за исключением того, что она также имеет связи, указывающие назад. рекуррентная нейронная сеть (RNN) – это алгоритм глубокого обучения, который может обрабатывать текст (понимаемый как последовательности слов или последовательностей символов), временные ряды , и данные о последовательности в целом. рекуррентная нейронная сеть (RNN) обрабатывает последовательности, перебирая элементы последовательности и поддерживая состояние, содержащее информацию относительно того, что было замечено до сих пор. . RNN – это тип нейронной сети с внутренним циклом.

  • Генеративно-состязательные нейронные сети

Генеративно-состязательные сети (GAN) позволяют генерировать довольно реалистичные синтетические изображения, заставляя сгенерированные изображения быть статистически почти неотличимыми от реальных.

GAN состоит из двух нейронных сетей:

  • Генератор

Сеть генератора принимает на вход случайный вектор и декодирует его в синтетическое изображение.

  • Дискриминатор

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

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

Надеюсь, это поможет, и всего наилучшего в вашем путешествии с данными!