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

Давайте возьмем общий простой пример в ML (машинное обучение) только с двумя переменными x и одной переменной y.

+----+----+----+
| X1 | X2 | Y  |
+----+----+----+
|  0 |  2 |  6 |
|  1 |  3 | 10 |
|  4 |  2 | 10 |
|  2 |  4 | 14 |
+----+----+----+

Здесь X1, X2 — входные переменные, а Y — выходная переменная. В реальном мире могут быть тысячи входных переменных для работы. Каждая строка называется экземпляром, а каждый входной столбец называется функцией (или измерением). Теперь, что будут представлять эти входные переменные? Что ж, эти (входные переменные) могут быть продуктами компании CocaCola, проданными через 500 брендов напитков в более чем 200 странах, а переменная Y может быть общим объемом продаж.

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

Это похоже на изображение Авраама Линкольна. Как мы видим, столбцов и строк больше, чем в нашем крошечном наборе данных.

В любом случае, давайте продолжим с нашим крошечным набором данных для примера. Этот набор данных можно понимать немного по-другому. Если (0,2)=6, (1,3)=10 и (2,4)=14, то чему равно (4,5) = ? . Мы видели такие вопросы в переадресации WhatsApp, верно?

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

First Term + 3 * (Second Term) = Answer. 

Это уже известный нам формат y=mx+c.

Теперь попробуйте узнать решение для изображения, показанного выше (Авраам Линкольн). Это сложно!! Нам нужны решения Machines to Learning для таких сложных проблем, поэтому это называется Machine Learning.

Машины ничему не учатся сами по себе; мы должны написать алгоритмы, чтобы заставить их учиться. Давайте попробуем написать алгоритм для нашего крошечного набора данных. Нам нужно определить идеальное « в уравнении (y=mx+c), которое соответствует всем экземплярам данных.

Не заблуждайтесь, в крошечном примере, приведенном выше, простое линейное уравнение (y=mx+c) решит проблему, но решение не всегда должно быть линейным. Он также может быть полиномиальным (y=ax²+bx+c или y=ax³+ bx²+cx+d)

  y    m   x   c  
 ---- --- --- --- 
   6   ?   2   0  
  10   ?   3   1  
  10   ?   2   4

Давайте возьмем первый экземпляр данных ( 6 = (2,0)) и попробуем идентифицировать «m».

+---+-------+---+--------------------+
| m | m*x+c | y | difference(y-mx+c) |
+---+-------+---+--------------------+
| 1 |     2 | 6 |                  4 |
| 5 |    10 | 6 |                 -4 |
+---+-------+---+--------------------+

Мы случайным образом выбираем число m = 1, и значение (m * x + c) становится равным 2, но фактическое значение, которое вы хотите получить, равно 6. Таким образом, мы не можем использовать m = 1. Чтобы продолжить, мы должны выбрать другое значение m. Теперь, должны ли мы выбрать другое случайное число или мы должны принять подсказку из нашего открытия?

Мы видим, что существует разница +4 между фактическим значением и значением, которое мы получили (прогнозируемое значение). Это дает нам подсказку, что нам нужно взять значение m>1, а не M‹1, потому что если мы возьмем значение m‹1, то разница будет увеличиваться в положительном направлении. Теперь давайте выберем значение m = 5, тогда разница между фактическим значением и прогнозируемым значением составит -4. Мы получаем еще один намек на то, что значение m должно быть меньше 5, потому что если мы возьмем значение m > 5 (m = 6), то разница (-6) продолжит увеличиваться в отрицательном направлении. См. числовую шкалу ниже,

   -6 | -4 | -2 | 0 | +2 | +4 | +6 
 <----|----|----|---|----|----|----> 
        ^                  ^      
        |                  |  

Наша цель — найти такое значение m, при котором разность (y-mx+c) становится равной нулю. Эта разница называется функцией ошибки.

У нас есть внешние границы «m», поэтому мы можем продолжать проверять значение между 1 и 5.

+-----+------+---+--------------------+
|  m  | mx+c | y | Difference(y-mx+c) |
+-----+------+---+--------------------+
|   1 |    2 | 6 |                  4 |
| 1.5 |    3 | 6 |                  3 |
|   2 |    4 | 6 |                  2 |
| 2.5 |    5 | 6 |                  1 |
|   3 |    6 | 6 |                  0 |
| 3.5 |    7 | 6 |                 -1 |
|   4 |    8 | 6 |                 -2 |
| 4.5 |    9 | 6 |                 -3 |
|   5 |   10 | 6 |                 -4 |
+-----+------+---+--------------------+

Таким образом, идеальное значение m равно 3, потому что разница (Функция ошибки) равна нулю. Теперь мы предсказали значение ‘m’ для нашего первого экземпляра ((0,2) =6). Нам нужно повторить упражнение для других случаев, чтобы с уверенностью сказать, что значение m равно 3 для всех уравнений.

+----+----+---------+-----------+---------------------+
| x1 | x2 | y(mx+c) | y(actual) | difference(y-mx+c)  |
+----+----+---------+-----------+---------------------+
|  0 |  2 |       6 |         6 |                   0 |
|  1 |  3 |      10 |        10 |                   0 |
|  4 |  2 |      10 |        10 |                   0 |
|  2 |  4 |      14 |        14 |                   0 |
+----+----+---------+-----------+---------------------+

Похоже, что m=3 подходит для всех экземпляров данных. Опять же, в нашем крошечном наборе данных значение m таково, что разность (y-mx+c) всегда равна нулю, но в реальных наборах данных вы можете не найти значение 'm ' с нулевой разницей. В таких случаях мы пытаемся найти такое значение m, чтобы разница была близка к нулю для всех случаев. Это называется Функция минимизации ошибок.

Подводя итог, можно сказать, что любая проблема машинного обучения будет иметь форму набора данных с входными переменными (X) и выходными переменными (Y), и ваша первая задача — найти связь между ними. Эта связь называется функцией. Для разработки функции необходимо определить зависимость между переменными (линейная/нелинейная), а затем доработать функцию ошибки. Затем вы можете обучить свой алгоритм, минимизируя функцию ошибок.