Отказ от ответственности

Это моя попытка расширить свои знания об искусственном интеллекте, еженедельно делясь тем, что я узнаю, используя различные онлайн-ресурсы. Я всегда буду размещать соответствующие ссылки, которые я использую, чтобы перенаправить вас к людям, которые знают об ML/AI гораздо больше, чем я сейчас. В случае, если вы хотите, чтобы я что-то уточнил или я что-то неправильно истолковал и допустил ошибку в объяснении, пожалуйста, оставьте комментарий! Это только поможет мне улучшить качество контента, доступного людям в этой публикации.

Ресурсные материалы

Отличным ресурсом для начала знакомства с машинным обучением является курс Эндрю Нг, доступный как на Coursera, так и на YouTube. Хотя у меня уже есть некоторый опыт работы с курсом Ng Coursera, поскольку я начал смотреть видео на YouTube, лично я предпочитаю видео на YouTube, поскольку мне нравится работа, которую Ng выполняет с корректурами, и взаимодействие между учеником и учителем в ходе курса.

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

Создание лучшей гипотезы

Давайте вспомним нашу формулу гипотезы:

  • THETA0 = точка пересечения кривой регрессии с точкой пересечения по оси y
  • THETA1 = наклон кривой регрессии

Но это работает только для одной функции «x».

Давайте используем тот же пример со стулом, что и в предыдущей статье:

Хотя нас волнует цена дерева, используемого в стуле, могут быть и другие особенности, такие как:

  • Высота стула
  • Стоимость обивки для стула

Следуя нашей теории линейной зависимости между гипотезой и признаками,

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

Вот как теперь выглядит таблица и формула:

x0 в этой формуле просто = 1, но мы включили его для удобства.

Вы, наверное, заметили, что теперь мы можем переписать эту формулу так, чтобы она была

  • n = количество функций

Определение машинного обучения:

Область исследования, которая дает машинам возможность учиться без явного программирования

Так как же нам гарантировать, что гипотеза становится все ближе к истинному значению?

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

Теперь возникает вопрос, что мы можем изменить/постоянно обновлять в нашей формуле гипотезы?

Мы не можем изменить значения x, так как это значения входных данных объекта и, следовательно, константы, поэтому значения THETA — это значения, которые мы будем обновлять с течением времени.

Функция стоимости

Здесь важно ввести еще одно понятие — функцию стоимости.

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

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

Вот как выглядит наша формула для этого:

В этом сценарии:

  • minTHETA = просто показать, что цель состоит в том, чтобы минимизировать тета
  • m = количество примеров в обучающем наборе
  • h(x^j) = гипотеза для j^го обучающего примера
  • y^j = истинная цена для j^го обучающего примера

Итак, что происходит в этой формуле?

Внутренняя скобка просто пытается измерить расстояние каждой гипотезы от ее истинной цены.

Квадрат гарантирует, что все значения положительны.

Мы складываем его, чтобы найти функцию общих затрат.

1/2 предназначена для упрощения математики (позже вы увидите, что она пригодится), и нам не нужно вдаваться в нее прямо сейчас.

Давайте создадим новую переменную хранения для представления этой формулы. Я назову его J(THETA).

Вот как теперь выглядит формула:

Итак, J(THETA) — это наше уравнение для функции стоимости. Как мы интегрируем это с остальной частью нашей формулы ТЭТА?

Давайте сначала разберемся, что мы пытаемся здесь сделать:

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

Мы можем начать с того, что перепишем (4), чтобы изобразить эту цель:

На данный момент мы будем обновлять наши веса с помощью процесса, известного как градиентный спуск.

Я думаю, что Эндрю Нг довольно хорошо объясняет эту идею градиентного спуска.

Вот схема, которую нужно иметь в виду:

Итак, допустим, вы работали с гипотезой, эквивалентной 1 функциям.

Это даст вам:

Таким образом, приведенная выше диаграмма дает вам трехмерную карту того, как функция стоимости изменяется в зависимости от различных значений для THETA1 и THETA2 для заданного набора входных данных.

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

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

Интегрируя (6) с (9), получаем:

Используя частичное дифференцирование, мы получаем, что:

В частности, для наших значений THETA это уравнение будет выглядеть следующим образом:

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

Повторение {

от j = 0 до m {

}

}

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

Спасибо, что нашли время прочитать это! Если у вас есть какие-либо сомнения/вопросы, не стесняйтесь оставлять их в комментариях. В следующей статье я покажу вам, как обновить все значения THETA без использования итеративного алгоритма, такого как градиентный спуск.

Соответствующие ссылки:

Курс Эндрю Нг на Coursera: https://www.coursera.org/learn/machine-learning

Видео Эндрю Нг на YouTube: https://www.youtube.com/watch?v=UzxYlbK2c7E&list=PLA89DCFA6ADACE599

Курс машинного обучения Udacity+Georgia Tech: https://classroom.udacity.com/courses/ud262