Машинното обучение е клон на изкуствения интелект (AI) и компютърните науки, който се фокусира върху използването на данни и алгоритми за имитиране на начина, по който хората учат, като постепенно подобрява своята точност. Машинното обучение може да бъде контролирано, неконтролирано или подсилено. Можете да научите повече за машинното обучение и неговите видове тук: https://medium.com/@sankalpshrivastava2017/machine-learning-aa362e256999

В тази статия ще научим за компонентите на рамката за машинно обучение. Всеки алгоритъм за машинно обучение може да бъде изразен чрез тези компоненти. Тези компоненти са данни за обучение, модел, функция за загуба, процедура за оптимизация и критерии за оценка. Нека да ги прегледаме един по един.

Компоненти на машинното обучение:

Данни

Модел

Функция загуба

Процедура за оптимизация

Критерии за оценяване

Данни за обучение

Най-важното нещо за всяка работа с машинно обучение са данните. Данните са горивото на всеки модел на машинно обучение. Липсата на данни означава липса на ML. Данните за обучение (D) се състоят от функции и етикети. Характеристиките са набор от числа или входни точки от данни, където етикетите са изходът на модела. Етикетите могат да бъдат цифрови или категорични в зависимост от данните и проблема, който решавате.

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

В контролирана задача в данните присъстват както функции, така и етикети, докато етикетите на неконтролирана задача не са.

Обикновено данните за характеристиките се представят с X,а етикетите се представят с y.

Да предположим, че има n проби (Примери) и m характеристики, присъстващи във вашите данни за обучение, тогава всяка проба ще изглежда така:

Xᵢ = [функция1, характеристика2, характеристика3, ……………….функцияₘ]

С прости думи, Data(D)е набор от n тренировъчни проби, които могат да бъдат представени като:

Дата = (характеристики , етикети)

D = {(xᵢ , yᵢ )}

За обучение на модел наборът от данни за обучение може да бъде разделен на две части, Данни за обучение,иДанни за тестване.

Данните за обучение просто се използват за обучение на модели.

Тестовите данни се използват за оценка на производителността на модела.

Данните за обучение могат да бъдат допълнително разпределени в данни за валидиране, които са полезни за целите на кръстосаното валидиране, нека ги запазим за още един ден.

Предварителна обработка на данни

Докато работите с данни от реалния живот, ще трябва да извършите много предварителна обработка и почистване на данни, преди да ги поставите в модел за машинно обучение. Характеристиките на данните могат да съдържат стойности Nan(Empty/Null). Данните могат да бъдат в различни мащаби. Данните могат да се състоят от категориални характеристики, които не могат да бъдат въведени в модел за машинно обучение, трябва да ги трансформираме в числени стойности, преди действително да монтираме модел с тях. Нека проучим малко тази част за предварителна обработка.

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

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

Категоричните или дискретни характеристики трябва да се преобразуват в числа, преди да влязат в модел. Можете да го направите, като използвате One-Hot-Encoding, Embeddings или Hashing.

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

Модел

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

Моделът предоставя математическа форма на картографиране между вход и изход.

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

Нека илюстрираме това с пример за линеен модел. Пример за прост линеен модел ще изглежда така:

yᵢ = w_₀ + w_₁ * feat_₁ + w_₂ * feat_₂ + ..…..+ w_ₘ * feat_ₘ

Тук yᵢ е изходният етикет, който се генерира от характеристиките със съответните тегла на коефициента. Всички тегла заедно образуват едно цяло, наречено вектор на теглото. Нашата цел тук е да намерим идеалната стойност на теглата, която, когато се използва в модела, създава резултат, който е много близък до действителния резултат за всички тренировъчни точки или проби. Ние оценяваме такъв вектор на тегло чрез обучение на модела. За обучение на модела се нуждаем от нашия следващ компонент от ml алгоритми, който е функцията за загуба. Нека го разгледаме.

Функция загуба

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

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

С прости думи, функцията за загуба осигурява разликата между действителните етикети и предвидените етикети. Предсказаният етикет зависи от модела, параметризиран от тегловния вектор w и следователно функцията на загубата е функция на тегловния вектор. Всеки път, когато векторът на теглото се промени, получаваме нов екземпляр на модела, което води до различни прогнози и следователно причинява промяна в загубата. Някои примери за функции на загуба са средна квадратна грешка, средна абсолютна грешка, загуба на шарнир, ентропия на двоичен клас и много други. Тук първите два примера са за функция за загуба на регресионен проблем, другите два са за класификация.

Във всеки ML модел предвидените етикети ще бъдат най-близки до действителните етикети, когато функцията за загуба ще предостави минималната стойност. Така че трябва да намерим вектор на теглото, който ще доведе до минимална загуба. Следващият въпрос естествено възниква за това как да се намери такъв вектор на теглото. За това използваме нашия следващ компонент от алгоритмите за машинно обучение, който е процедурата за оптимизиране.

Процедура за оптимизация

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

нека J(W) е функцията на загубите по отношение на тегловния вектор. Производната формула ще изглежда така:

Горното уравнение е просто, но изчислително скъпо. Често използваме по-ефективен начин за оптимизация, който е градиентно спускане.

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

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

Съществуват по-ефективни от изчислителна гледна точка варианти на градиентно спускане, като Mini Batch градиентно спускане и стохастично градиентно спускане. При минипартидно градиентно спускане, вместо да вземем целия набор от данни, ние вземаме част от него за изчисление на градиента. При стохастично градиентно спускане ние вземаме една проба наведнъж за изчисляване на градиента. Това са изчислително по-ефективни начини от пълното партидно градиентно спускане. Можете да прочетете повече за тях.

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

Оценка

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

В оценката нека започнем с концепцията за прекомерно и недостатъчно оборудване.

Прекомерно и недостатъчно оборудване

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

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

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

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

Сега имаме нужда от начин да разберем как нашият модел се справя с различни набори от данни (обучение или тест). Има много показатели за оценка за това. Тези показатели са различни за задачи за регресия и задачи за класификация.

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

За задачи за класификация използваме показатели като прецизност, припомняне, F-1 резултат и много други.

Преди да научим за тези показатели, трябва да знаем какво е матрица на объркване. Матрица на объркването улавя объркването на нашия модел при избора между двата класа. Изглежда така:

Да вземем пример, при който етикетите са 1 или 0. Сега моделът трябва да предвиди къде етикетът е 1 или 0 на дадена извадка. В този сценарий:

Истински положителни резултати са онези примери, при които както действителният, така и
предвиденият етикет са 1, което е желаният резултат. Техният
брой се записва в TP.

Истинските негативи са онези примери, при които както действителният, така и
предвиденият етикет са 0, което отново е желаният резултат. И
техният брой се записва в TN.

Фалшиви положителни резултати са тези примери, при които действителният етикет е 0, а
се предвижда да бъде 1 от текущия модел. Те се записват в FP.

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

Сега, когато знаем какво е матрица на объркване, нека отново да поговорим за нашите матрици за оценка.

Прецизност

Прецизността е просто съотношението на правилно прогнозираните положителни резултати към общите
прогнозирани положителни резултати. Може да се запише така:

Припомням си

Припомнянето е съотношението на правилно предвидените положителни резултати към общите
действителни положителни резултати. Може да се запише така:

F1- Резултат

F1- Резултатът е просто хармоничната средна стойност на прецизност и припомняне.

Това са някои общи показатели за оценка на задачи за класификация. Можете да прочетете за повече от тях като AUC-PR и AUC-ROC.

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

Това бяха компонентите на всеки ML алгоритъм. Те бяха:

Данни: - Гориво за всеки Ml модел. Трябва да е чисто.

Модел:-Моделът картографира входните характеристики към изходните етикети.

Функция на загубата:- Използва се при оптимизиране като мярка за разликата между ______________ действителните и предвидените етикети.

Процедура за оптимизиране:- Оптимизирайте модела, като настроите векторите на теглото, за да ________________________намерите етикетите, които са най-близки до действителните.

Оценка:- Оценете ефективността на модела с различни ____________метрики за оценка.

Имайки предвид тези компоненти, е много лесно да разберете и научите всеки ML алгоритъм.

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

Благодарим ви, че прочетохте.