Градыентны спуск і стахастычны градыентны спуск (SGD) - гэта алгарытмы аптымізацыі, якія выкарыстоўваюцца для мінімізацыі функцыі, што звычайна звязана з мінімізацыяй памылкі ў мадэлі.
Асноўныя адрозненні паміж імі наступныя:
Градыентны спуск (GD)
-
Пры стандартным градыентным спуску алгарытм вылічае градыент функцыі кошту з выкарыстаннем усяго навучальнага набору даных.
-
Ён абнаўляе параметры мадэлі, робячы крокі, прапарцыйныя адмоўнаму градыенту ўсяго набору даных.
-
Гэты метад гарантуе мінімальную канвергенцыю (улічваючы пэўныя ўмовы, такія як выпукласць і адпаведная хуткасць навучання), але можа быць дарагім з пункту гледжання вылічэнняў для вялікіх набораў даных.
Стахастычны градыентны спуск (SGD)
-
Пры выпадковым градыентным спуску алгарытм абнаўляе параметры мадэлі, выкарыстоўваючы градыент функцыі выдаткаў для кожнага асобнага навучальнага прыкладу.
-
Ён робіць частыя абнаўленні на аснове адзіночных або невялікіх партый навучальных прыкладаў, што робіць яго значна хутчэйшым, чым градыентны спуск для вялікіх набораў даных.
-
Аднак з-за шумных абнаўленняў SGD мае больш ваганняў і не абавязкова збліжаецца да абсалютнага мінімуму; яна збліжаецца да вобласці, блізкай да мінімальнай, вагаючыся вакол яе.
Калі выкарыстоўваць адзін над іншым:
-
Градыентны спуск (GD): падыходзіць, калі набор дадзеных адносна невялікі і можа змясціцца ў памяці. Калі функцыя выдаткаў гладкая і добра сябе паводзіць, GD можа эфектыўна сыходзіцца да мінімуму.
-
Стахастычны градыентны спуск (SGD): пераважней, калі працуеце з вялікімі наборамі даных, калі вылічэнне градыентаў для ўсяго набору даных становіцца дарагім з пункту гледжання вылічэнняў. Гэта таксама карысна ў сцэнарыях, калі функцыя кошту мае шмат лакальных мінімумаў, паколькі шум SGD пры абнаўленнях можа дапамагчы пазбегнуць неглыбокіх лакальных мінімумаў. Акрамя таго, SGD звычайна выкарыстоўваецца ў навучанні нейронавых сетак дзякуючы іх велізарным наборам даных і шматмерным прасторам параметраў.
Больш за тое, на практыцы часта выкарыстоўваюцца такія варыянты, як міні-пакетны градыентны спуск, які ўраўнаважвае перавагі як GD, так і SGD, улічваючы падмноства даных для кожнага абнаўлення. Выбар паміж гэтымі алгарытмамі часта залежыць ад вылічальных рэсурсаў, памеру набору даных і характарыстык канкрэтнай задачы.