Интуиция машинного обучения для инженеров-программистов

«Прорыв в машинном обучении стоил бы десяти Microsoft»
(Билл Гейтс, председатель Microsoft)

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

В этом посте я объясню концепцию машинного обучения простым и интуитивно понятным способом.

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

def doSomething(input):
  # do some operation on input
  return output

Здесь операции или правила определяются программистом. Это может быть вычисление квадрата числа, добавление символа к строке или вычисление радиуса Земли 😜. Машинное обучение просто переворачивает эту концепцию с ног на голову.

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

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