В этой статье мы обсуждаем 6 банок машинного обучения применительно к модели MP Neuron.

Вступление:

Фундаментальный блок глубокого обучения - искусственный нейрон.

Так выглядит искусственный нейрон. Он принимает набор входных данных (скажем, x1, x2, x3 и т. Д.), эти входные данные будут факторами / функциями, на основе которых мы принимаем решение, и есть некоторые веса, присвоенные каждому из входов. Итак, Искусственный нейрон принимает взвешенную совокупность входных данных (веса всего 1 в случае MP Neuron), применяет некоторую функцию к этому взвешенному совокупному входу и выдает результат.

Модель MP Neuron также известна как линейный пороговый вентиль.

Модель нейрона МП

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

Для модели нейрона MP, входы могут быть только логическими, что означает принадлежность к набору (0, 1). Аналогичным образом модель будет выводить логическое значение. Другими словами, ни входы, ни выход не могут быть каким-то другим действительным числом.

функция разделена на две части: g и f.

g суммирует все входные данные (взвешенная сумма), а затем f принимает в качестве входных данных g.

В этом случае, поскольку мы просто суммируем все входные данные для g и поскольку все входные данные являются логическими, это означает, что мы в основном подсчитываем количество элементов, которые включены ( иметь значение 1) во входном наборе; вот что означает суммирование в этом случае, когда все веса равны единице.

Теперь это значение g мы передаем другой функции f, которая выведет 1 (означает, что нейрон сработает), если сумма входных данных (которая сохраняется в g) больше некоторого порога, и он выдаст 0, если сумма входных данных меньше некоторого порога.

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

Единственный параметр этой модели - b (пороговое значение).

Задача данных MP Neuron

Поскольку данные для модели MP Neuron являются логическими, существуют некоторые ограничения (мы должны видеть те задачи, где данные будут логическими) в некотором смысле относительно задач, которые могут быть выполнены / достигнуты с использованием этой модели. Для начала возьмем задачу прогнозирования LBW с использованием машинного обучения:

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

Могут быть и другие факторы, влияющие на решение LBW, но в данном случае мы рассматриваем только эти три особенности.

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

Возьмем еще один пример, когда данные не являются логическими по умолчанию:

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

Потеря нейронов МП

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

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

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

Мы можем суммировать эти потери по всем точкам данных.

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

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

Таким образом, с учетом квадрата потерь ошибок, в приведенном выше случае значение потерь будет равно 4.

Алгоритм обучения нейронов МП:

Мы хотим найти оптимальное значение b таким образом, чтобы при включении этого значения в модель общие потери были минимальными.

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

Допустим, у нас есть в общей сложности n функций, на которых мы основываем свое решение, так что это означает, что суммирование всех значений (значение функции g) может принимать только значения от 0 до n. Более того, сумма будет только различными значениями, она не будет похожа на 0,1 или 0,2, а будет целым числом от 0 (это будет 0, когда все функции отключены) и n (это будет n, когда все функции включены. ). Таким образом, это означает, что b будет лежать между 0 и n.

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

Суммирование всех характеристик для первой точки данных будет 5, мы проверяем 5 ≥ 0, и, поскольку это правда, мы прогнозируем выход для этой точки данных как 1.

Мы можем продолжить эту процедуру для всех входных данных «m» (точек данных), которые у нас есть, и вычислить прогноз для всех точек данных.

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

Точно так же мы вычисляем потери для порогового значения (значение b) как 2, 3 и так далее до n.

Затем мы можем построить график зависимости порогового значения от значения потерь.

И исходя из графика мы можем получить оптимальное значение порога.

Оценка нейронов МП:

Мы будем использовать пороговое значение как 5 и передавать тестовые данные в модель.

Геометрическая интерпретация нейронов МП:

Допустим, у нас есть две входные функции x1 и x2. Мы можем нанести это на координатную ось, как показано ниже:

Как правило, у нас есть графики x-y, но в ML y обычно используется для обозначения вывода, поэтому мы можем представить две оси как ось x1 и ось x2, где x1 и x2 являются входными данными для модели.

В этом случае уравнение линии будет следующим:

И мы можем посмотреть на это уравнение как

Давайте посмотрим на одну такую ​​строку: x1 + x2 - 2 = 0, где m = -1.

Все точки на этой линии удовлетворяли бы уравнению прямой, например: (-1, 3) лежит на прямой, и мы имеем

  • -1+3-2 = 0 (x1 + x2–2 = 0)

Общий вид линии мы можем записать как:

В приведенном выше случае a = 1, b = 1 и c = -2.

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

Давайте возьмем точку (1, 2), которая находится над линией, подставив это в уравнение прямой, мы получим:

1+2–2 = 1 > 0

Итак, для любой точки над линией ответ на уравнение линии (после вставки точки в уравнение линии) будет положительным. Это означает, что все точки, расположенные над линией, удовлетворяют уравнению:

ax + by + c > 0

Аналогичным образом все точки, лежащие ниже линии, удовлетворяют уравнению:

ax + by + c < 0

Все это было в 2D, давайте рассмотрим случай 3D, где у нас есть 3 входа: x1, x2 и x3. А теперь мы думаем об уравнении прямой / плоскости как

ax1 + bx2 + cx3 + d = 0

Итак, снова выполняется то же условие: все точки на плоскости / прямой удовлетворяют условию плоскости / прямой, все точки, лежащие выше плоскости / прямой, удовлетворяют условию ax1 + bx2 + cx3 + d ›0 и все точки, лежащие ниже линии, удовлетворяют условию ax1 + bx2 + cx3 + d ‹0.

Таким образом, линия в двух измерениях фактически отделяет все точки с одной стороны от точек с другой стороны. Он действует как граница. Точно так же плоскость в 3-х измерениях разделяет все точки в этом 3-х мерном пространстве, которое лежит на одной стороне плоскости и которое лежит на другой стороне плоскости. Он действует как граница. И та же аналогия верна и для более высоких измерений, где если есть n -мерная плоскость, она разделит все точки в этом размерном пространстве на две стороны.

Итак, давайте посмотрим, как все это связано с MP Neuron.

Вышеупомянутая функция MP Neuron, если эта сумма больше или равна «b», то на выходе будет 1, в противном случае - 0.

И указанная выше функция в 2-мерной плоскости будет x1 + x2 - b ≥ 0.

Давайте сначала рассмотрим часть равенства: x1 + x2 - b = 0

Все точки, которые лежат на этой линии, удовлетворяют вышеуказанному равенству, а все точки, которые лежат выше этой линии, удовлетворяют следующему уравнению:

x1 + x2 — b > 0

И все точки, которые лежат ниже этой линии, удовлетворяют x1 + x2 - b ‹0

И это именно то, что делает MP Neuron. Он делит точки на две половины: одна группа точек находится над линией, а другая - под линией. И интересующая нас линия x1 + x2 - b = 0.

В приведенном выше случае у нас есть две функции: время автономной работы и размер экрана, и, поскольку у нас могут быть только логические входы, возможны только 4 комбинации: либо обе функции имеют значение 0, то есть (0, 0), либо у нас есть (0, 1 ) или (1, 0) или (1, 1).

Итак, даже если у нас есть 10 телефонов (точек данных) на изображении выше, если мы построим их график, то все это будет лежать в любой из 4 точек данных ((0, 0), (0,1), (1 , 0), (1, 1)) упомянутые выше.

И теперь, если мы обучим нашу модель этому, модель будет пытаться найти уравнение линии таким образом, чтобы все положительные точки данных (с истинным выходом равным 1) лежали на этой линии или выше, это означает, что все положительные точки удовлетворяют уравнению x1 + x2 - b ≥ 0. А точки (для которых выход был -ve) лежат ниже линии.

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

В этом случае мы хотели бы, чтобы наша линия имела другой наклон вместо -1 (изображение ниже), чтобы эта точка также классифицировалась как + ve, такой гибкости здесь нет.

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

Конечно, в этом случае эта точка (синяя) на изображении выше не может существовать, поскольку у нас могут быть только логические входы. Но этот пример передает мысль о том, почему это очень ограничивающая модель, она не дает нам никакой гибкости с наклоном линии, а точка пересечения оси y также может проходить через фиксированный набор значений в этом случае, b может быть 2, 1 или 0. Все промежуточные значения невозможны. Итак, это очень ограничивающая модель с точки зрения свободы, которую она имеет в отношении своих параметров. Единственный параметр, который мы можем изменить, - это b, и это тоже любое дискретное значение из (0, 1 , 2) или вообще любое значение в наборе 0, 1,…, вплоть до n, где n - количество имеющихся у нас функций.

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

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

В этом случае мы не можем провести линию, разделяющую положительные и отрицательные точки. Таким образом, даже в этом упрощенном примере, где у нас есть только две функции, есть этот сценарий, в котором у нас есть определенные точки как + ve и определенные точки как -ve, и мы не можем найти MP Neuron (или, чтобы сказать, значение b) который может разделить точки данных и дать нам 0 ошибок в обучающих данных.

Итак, все шесть банок MP Neuron выглядят так:

Данные, с которыми мы можем работать, - это логические входы.

Задача, для которой мы можем это сделать, - это двоичная классификация (результат может быть либо 0, либо 1).

Модель пытается найти уравнение линии так, чтобы все положительные точки (истинный результат равнялся 1) лежали на линии или выше, а отрицательные точки (истинный выход равнялся 0) лежали ниже линии.

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

Обучение: мы ищем оптимальное значение b, просматриваем все значения, которые может принимать параметр b (он может принимать значение от 0 до n, где n - количество функций), и видим потери, которые мы получаем для каждого из значений b.

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

Чтобы преодолеть некоторые ограничения модели MP Neuron, мы рассмотрим модель Perceptron.

Ссылки: PadhAI