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

Когда компьютеры и другие машины работают разумно, как люди, мы называем это искусственным интеллектом. Но что такое интеллект. Мы считаем людей разумными организмами, потому что они способны принимать решения и совершать действия в соответствии с динамичной средой. Предположим, вы идете в дом своего друга и видите его новую домашнюю собаку. Вы скажете: «Какая милая собачка». Но как вы узнали, что это собака? Это потому, что вы видели собак раньше и знаете, как они выглядят. Предположим, ваш друг купил собаку гаванской породы, а вы еще не видели гаванскую собаку. Тогда как вы определили, что это собака? Ну, это потому, что вы видели другие разновидности собак на протяжении своей жизни и знаете особенности собак. И животное, которое вы видели, имело те же черты, поэтому вы идентифицировали его как собаку. Если вы сможете это сделать, машины смогут таким же образом учиться на предыдущих данных и идентифицировать объекты, делать выводы и так далее. Это машинное обучение.

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

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

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

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

Это все для первой части. Во второй части я объясню, как на самом деле работают алгоритмы обучения с учителем. Следуйте за мной, чтобы получить предстоящие части. Выскажите свои сомнения и предложения в ответе, и они будут рассмотрены в следующих частях. Приятного чтения!!!

Краткое введение в машинное обучение. Часть-1