Какво представляват хипер параметрите?

Хиперпараметрите са параметри, които не се научават директно от данните за обучение по време на процеса на обучение на модел за машинно обучение, а вместо това се задават преди началото на обучението. Те контролират поведението на алгоритъма за обучение и могат да имат значително влияние върху производителността на модела.

Хиперпараметрите често се задават от потребителя или се избират чрез процес на проба и грешка и могат да включват неща като скорост на учене, размер на пакета, сила на регулиране, брой скрити слоеве, брой възли във всеки слой, функции за активиране и много други.

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

Какво е настройка на хипер параметри (оптимизация)?

Настройката на хиперпараметри, известна още като оптимизация на хиперпараметри, е процес на намиране на най-добрия набор от хиперпараметри за модел на машинно обучение, за да се оптимизира неговата ефективност при дадена задача.

Както бе споменато по-горе, хиперпараметрите не се научават директно от данните за обучение, но те контролират поведението на алгоритъма за обучение и могат да имат значително влияние върху производителността на модела. Ето защо е важно да изберете правилните стойности на хиперпараметрите, за да постигнете най-добри резултати.

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

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

Как да оптимизираме хипер параметрите?

Има няколко начина за оптимизиране на хиперпараметри за модел на машинно обучение:

  1. Търсене в решетка: Това включва изпробване на всички възможни комбинации от хиперпараметри в даден диапазон. Въпреки че е скъпо от изчислителна гледна точка за големи хиперпараметрични пространства, гарантирано е да се намери най-добрият набор от хиперпараметри в пространството за търсене.
  2. Произволно търсене: Този метод произволно взема проби от хиперпараметри от пространството за търсене. Изчислително е по-евтино от търсенето в мрежата и често може да постигне подобни резултати.
  3. Байесова оптимизация: Този подход използва вероятностен модел за прогнозиране на ефективността на различни набори от хиперпараметри въз основа на предишни оценки и избира следващия набор от хиперпараметри за оценка въз основа на прогнозите.
  4. Еволюционни алгоритми: Тези алгоритми използват принципите на естествения подбор и генетични алгоритми за оптимизиране на хиперпараметрите. Те работят, като генерират популация от възможни набори от хиперпараметри и след това развиват популацията през множество поколения, като избират най-добрите набори и ги комбинират, за да създадат нови набори.
  5. Оптимизация, базирана на градиент: При този метод се изчислява градиентът на грешката при валидиране по отношение на хиперпараметрите и хиперпараметрите се актуализират в посока на градиента, за да се минимизира грешката.

Търсенето в мрежата и произволното търсене са две от най-често използваните техники за настройка на хиперпараметри в машинното обучение.

Търсене в мрежата

Търсенето в мрежа е техника за настройка на хиперпараметри в машинното обучение, която включва дефиниране на мрежа от стойности на хиперпараметри и след това изчерпателно търсене в тази мрежа, за да се намери оптималният набор от хиперпараметри.

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

След като мрежата е дефинирана, моделът за машинно обучение се обучава и оценява за всеки набор от хиперпараметри в мрежата, като обикновено се използва кръстосано валидиране, за да се гарантира, че оценката е надеждна. Комбинацията от хиперпараметри, която води до най-добрия показател за ефективност (като точност или F1 резултат), след това се избира като оптимален набор от хиперпараметри.

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

Случайно търсене

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

Техниката на произволно търсене работи чрез указване на разпределение за всеки хиперпараметър, който трябва да бъде оптимизиран, като равномерно или нормално разпределение. След това пространството за търсене се дефинира чрез указване на диапазона от стойности, които хиперпараметрите могат да приемат, или като дискретни стойности, или като непрекъснат диапазон.

По време на търсенето фиксиран брой набори от хиперпараметри се вземат на случаен принцип от пространството за търсене и моделът за машинно обучение се обучава и оценява за всеки набор, като се използва показател за ефективност, като точност или F1 резултат. Комбинацията от хиперпараметри, която води до най-добрия показател за производителност, след това се избира като оптимален набор от хиперпараметри.

Едно от предимствата на произволното търсене е, че може да бъде по-ефективно от търсенето в мрежа, когато пространството за търсене е голямо, тъй като не е ограничено от структурата на мрежата. Освен това, произволното търсене може да изследва по-широк диапазон от стойности на хиперпараметър и е по-малко вероятно да остане в локалните оптимуми в сравнение с търсенето в мрежа.

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

"Трудно е да се провалиш, но е по-лошо никога да не си опитвал да успееш."