ОТКЛОНЕНИЕ ОТ ОТВЕТСТВЕННОСТИ. Этот пост слишком насыщен математикой и не для слабонервных.

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

Теперь, как специалист по информатике, моя работа состоит в том, чтобы «обучить» машину, чтобы она могла получать любые входные данные для x (количество часов, потраченных на изучение), и чтобы она могла взбивать и выводить точный прогноз для y. (последняя оценка).

Линейная регрессия — это основное имя в области статистики и машинного обучения, которое часто используется из-за его безупречного охвата во всех областях и проблемах.

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

Но возникает вопрос — как нам реализовать алгоритм, который предполагает «обучение» машины на наборе входных данных? Как мы можем на самом деле оценить специфику наиболее подходящей линии с помощью искусственного интеллекта?

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

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

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

Если вам интересно, буква «h» в названии функции означает «гипотеза», исторический ярлык, прикрепленный к ней, который только что приклеился к ней.

Итак, если мы затем углубимся во все назначение функции h(x), мы увидим, что она действует как заполнитель для линейного уравнения в форме y = mx + c.

Однако вместо того, чтобы быть в форме y = mx + c, функция h(x) принимает следующую форму:

Итак, на этом рисунке 1.1 мы замечаем, что вместо h(x) уравнение определяется через hθ от x. Здесь θ ноль и θ один просто называются «параметрами», поскольку они будут постоянно изменяться по мере выполнения программы.

Немного терминологии

Итак, мы только что увидели определение h(x) и столкнулись с этими довольно неоднозначными параметрами (θ ноль и θ единица). По сути, эти значения являются переменными, которые действуют как заполнители для линейного уравнения. Так, например, если мы установим θ ноль равным 1, а θ один равным 4, мы можем оценить h(x) как 1 + 4x.

Другая ключевая переменная, связанная с этой ситуацией, — m. Переменная «m» просто относится к размеру тренировочного набора. Итак, если бы у нас был тренировочный набор с 4 баллами, m было бы просто 4. Легко, правда?

Теперь, когда мы подготовили основу для линейной регрессии в отношении терминологии и основ, я думаю, мы готовы перейти к функции стоимости — сердцу и душе линейной регрессии.

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

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

Но теперь перед нами встает вопрос — как можно количественно измерить точность нашей функции гипотезы? Как мы определяем, что подпадает под «точную» или «близкую» гипотезу, а что нет. И здесь в игру вступает функция стоимости.

Чтобы проиллюстрировать основные сложности функции стоимости, давайте представим простой набор данных с тремя точками — (1, 1), (2, 2) и (3, 3). Если бы мы изобразили эти данные в виде диаграммы рассеивания, это выглядело бы так:

Теперь вопрос в том, исходя из нашей текущей гипотезы, h(x) = 1 + 4x, как мы можем измерить, насколько она «близка» к реальному графику данных.

Сначала попробуем с одной точкой. Если мы подставим значение x = 1 в гипотезу, это даст результат h(x) = 1 + 4(1), который оценивается как 5. На фактическом графике значение y равно 1, поэтому, чтобы выяснить, как далеко друг от друга, это вопрос простого вычитания. 5–1 = 4, насколько они «близки».

Так что у нас это. Чтобы определить, насколько «близка» гипотеза к фактическому обучающему набору, первым шагом является оценка h(x) и вычитание из него y. Таким образом, в более общем плане «близость» гипотезы к реальной обучающей выборке для одной точки может быть определена как h(x)-y.

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

Сразу же в голову должна прийти математическая операция — функция Sigma. Невероятно полезная и важная функция математики в ИИ, нам просто нужно поместить наши h(x)-y в сигму, итерируя от 1 до m.

Если вы внимательно посмотрите, то заметите, что я использовал обозначения, которые раньше не использовал. Я называю значения в гипотезе как

Все это означает, что если я использую i-е значение x. Так что это значит? По сути, сигма инициализирует переменную i равной 1. И пока эта переменная i не достигнет значения m, она будет продолжать увеличиваться на 1. Итак, если бы m было, скажем, 4, тогда я бы начал с 1, до 2, до 3 и, наконец, до 4.

Для любого программиста, читающего, вы довольно быстро заметите, что это имеет очень сильное совпадение с вычислительными принципами циклов for. Итак, если я пытаюсь найти i-е значение x в данных, все это означает, что мой набор данных

{ (2, 5), (8, 6), (4, 3) }, это будет выглядеть так:

  1. i = 1. Получите первое значение x, равное 2. Определите h(2) и вычтите из него первое значение y (5).
  2. i = 2. Получите второе значение x, равное 8. Определите h(8) и вычтите из него второе значение y (6).

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

— Получить i-е значение x. Определите h(x(i)) и вычтите i-е значение y.

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

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

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

Уф, это одно уродливо выглядящее уравнение. Но, если вы уделите этому должное внимание, вы поймете, что в сущности это довольно просто. Внутри Sigma просто смотрит на оценку разницы между гипотезой h(x) и «правильными» данными из обучающей выборки y.

Мы почти у цели, так что держись! Теперь, следующим пунктом в меню, мы должны заняться некоторой дифференциацией. К счастью, это еще не все, но, поскольку мы собираемся иметь дело с исчислением позже в этой серии, просто помните, что для завершения функции стоимости вы оборачиваете ее вокруг 1 на 2m. Большинство из вас не до конца поймут, почему это там, но это просто то, что вы должны помнить, что были там.

Итак, теперь мы получили окончательное значение изнурительной, душераздирающей функции стоимости. Подобно тому, как h(x) является сокращением от слова «гипотеза», существует математическое сокращение для функции стоимости —

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

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

Если вам удалось дойти до конца этого поста в целости и сохранности, поздравляем!

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

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

Увидимся в следующий раз!