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

Предлагаются два определения машинного обучения. Артур Сэмюэл описал это как «область исследования, которая дает компьютерам возможность учиться без явного программирования». Это старое, неофициальное определение.

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

Пример: игра в шашки.

E = опыт игры во многие игры в шашки

T = задача игры в шашки.

P = вероятность того, что программа выиграет следующую игру.

В целом, любую проблему машинного обучения можно отнести к одной из двух широких классификаций:

· Контролируемое обучение

· Обучение без учителя.

Контролируемое обучение

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

Проблемы контролируемого обучения делятся на проблемы «регрессии» и «классификации». В задаче регрессии мы пытаемся предсказать результаты в рамках непрерывного вывода, что означает, что мы пытаемся сопоставить входные переменные с некоторой непрерывной функцией. Вместо этого в задаче классификации мы пытаемся предсказать результаты в виде дискретного вывода. Другими словами, мы пытаемся сопоставить входные переменные с дискретными категориями. Вот описание Math is Fun on Continuous and Discrete Data.

Пример:

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

Неконтролируемое обучение

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

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

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

Пример:

Кластеризация: возьмите коллекцию из 1000 эссе, написанных об экономике США, и найдите способ автоматически сгруппировать эти эссе в небольшое количество, которые так или иначе похожи или связаны разными переменными, такими как частота слов, длина предложения, количество страниц и т. д. на.

ML: линейная регрессия с одной переменной

Представление модели

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

Линейная регрессия с одной переменной также известна как «одномерная линейная регрессия».

Одномерная линейная регрессия используется, когда вы хотите предсказать одно выходное значение y по одному входному значению x. Здесь мы проводим обучение с учителем, а это значит, что у нас уже есть представление о том, какими должны быть причина и следствие ввода/вывода.

Функция гипотезы

Наша функция гипотезы имеет общий вид:

Импорт соответствующих библиотек

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

Чтение и построение данных

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

Аналитический способ линейной регрессии

Здесь мы получаем

Theta0 = -4.2115040054240875
Theta1 = 1.21354725
Analytical cost = 9.8012

Создайте график регрессии

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

А теперь аналогия с терминами машинного обучения:

Размер шагов в любом направлении = скорость обучения (альфа)

Гаджет сообщает вам рост = функция стоимости

Направление ваших шагов = Градиенты

Выглядит просто, но как это представить математически. Вот математика :

Стоимость:

Градиентный спуск для линейной регрессии:

Где m = количество наблюдений

Теперь мы вычислим нашу функцию стоимости и градиентный спуск, но перед вычислением обоих мы должны добавить еще одно измерение к нашим данным, чтобы учесть термин перехвата. Мы также инициализируем начальные параметры тета до 0 и обучение, альфа до 0,02 и количество итераций = 1500.

Расчет стоимости и поиск оптимальных параметров с помощью градиентного спуска

ваши оптимальные параметры будут

Теперь у нас есть оптимизированное значение theta . Используйте это значение в приведенной выше функции стоимости.

This should give you a cost value of 3.460 which is much better than
Analytical cost 9.801.

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