Защо оптимизация в машинното обучение?

Как моделите наистина се учат — от обикновено градиентно спускане до Adam

Машинното обучение изглежда като предсказване, класификация, генериране, препоръчване. Зад кулисите обаче е един и същ, повтарящ се математически акт: изберете числа, измерете колко лоши са те, после променете числата, за да намалите тази „лошота“. Това е оптимизацията.

Числата са параметрите на модела, обикновено събрани в един огромен вектор θ. Оценката за лошота е загубата, записвана като L(θ). Обучението означава търсене в пространството на параметрите на настройка, при която тази загуба е малка. Съкращението по-долу казва точно това: argmin връща печелившия вход (θ, при което загубата е най-малка), а не печелившата стойност, а звездичката при θ⋆ го отбелязва като точно тази най-добра настройка.

Табло за напояване на оранжерия може да има хиляди малки зони за пръскачки. Всяка настройка променя колко здрави стават растенията, но вие виждате крайната оценка на реколтата едва след като водата е потекла. Невронната мрежа прилича на това: параметрите са настройките на пръскачките, загубата е оценката на реколтата, която искате да подобрите, а оптимизацията е правилото за едновременна промяна на много настройки.

Къде се използва това в MLЕто защо оптимизацията стои в самия център на машинното обучение. Обратното разпространение (backpropagation) изчислява ∇L. SGD, моментумът (momentum), RMSProp и Adam решават как да го използват. Разписанията (schedules) управляват размера на стъпката, а регуляризацията преоформя целевата функция. Щом обучението означава минимизиране на L(θ), главният въпрос става прост: как трябва да се движат…
▶ Защо оптимизация в машинното обучение?
← Концентрационни неравенства (накратко)Скоростта на обучение →