Този сайт използва бисквитки (cookies). Ако желаете можете да научите повече тук. Разбрах

Новини Технологии

Могат ли да се валидират моделите за машинно обучение?

от , 21 март 2018 0 10367 прочитания,

Как се валидира машинното обучение? Моделите за машинно обучение могат да намерят приложение в различни области от живота, но при всеки случай те трябва да бъдат валидирани. Този процес не бива да бъде подценояван, тъй като в редица ситуации от машинното обучение може да зависи човешки живот. Не съществува обаче еднозначен отговор как точно се валидира подобен модел, но задължително този процес обхваща няколко различни аспекта: какви са особеностите на данните, как те са генерирани и по какъв начин те са били събрани.  Защо валидирането е трудно?  Има редица особености, които затрудняват процеса на валидиране. В крайна сметка целта е да се покаже, че даден модел пресъздава добре (или поне достатъчно добре)  реалността. А това се случва, когато моделът се обучава чрез набор от данни. Ако те бъдат променени – дори като се замени една добра информация с различна добра информация – то моделът  няма да е същият. Още повече, ако тази промяна се случи по време на самото обучение, то моделът най-вероятно отново ще бъде различен.  С други думи от едни и същи данни могат да се получат огромен брой различни модели, като всички те ще бъдат правилни (поне по отношение на използваната информация). Дали обаче те ще покажат същите резултати, когато се тестват с данни, невключени в първоначалния набор за обучение?   Прекомерно нагаждане (Overfitting) Например, при планирането на експеримент (design of experiments – DoE) е важно всички променливи, за които не се провеждат тестове, да се подберат на случаен принцип. В противен случай експериментите могат да покажат грешни изненадващи корелации – такива, които ще изчезнат при по-разширен набор от данни.  Същото може да се случи и при машинното обучение. Ако обучавате система за разпознаване на пешеходци, то цвета на косата не би следвало да има значение – т.е. този критерий не трябва да е част от модела. Но ако всички примерни в модели са с кестенява коса, то този критерий може да бъде заложен и да доведе до грешна корелация.  Проблемът е, че това трудно може да се тества. Ако има грешно съотношение, то няма как да бъде идентифицирано. Освен в случаите, при които в тестовите данни има много хора с руси коси, а моделът не ги разпознава като пешеходци. Решението е – същото като това при DoE – на произволен принцип да се подберат хора с различен цвят коса (и всичко подобни характеристики, които са без значение). Но какво се случва, ако дадена характеристика се приема, че няма значение, но тя всъщност е има? Тогава дори чрез произволен подбор тази корелация ще се прояви в модела. Например, ако всички цветове  коса са включени, но се окаже, че резултатите са в полза на кестенявите хора? В такъв случай моделът ще е подобен на онзи, в който имаше само данни с брюнети – с изключение на това, че този път корелацията няма да е грешна.  Крайни величини (Edge Cases) При проучвателния анализ на данни (exploratory data analysis – EDA) се говори за частни случаи, при които множество променливи се пресичат в отдалечена точка от пространството, в което са данните. При машинното обучение по подобен начин се използва терминът „крайни величини“. В случая различното е, че става дума само за една променлива.  Тук предизвикателството е тя да бъде намерена. В примера с цвета на косата, къде е? Променливите данни могат да се синтезират за целите на обучението, но така се рискува дефект от синтеза да бъде вложен в модела. Разглеждане на крайния модел  Един очевиден въпрос, който влияе на предишните две точки, е фактът, че генерираните модели не могат да бъдат разчетени или разбрани от човек. Те се състоят от матрици или са в друга абстрактна форма. Не може да се види къде има нагаждане, къде са крайните величини и дали правилно са инкорпорирани в модела. Всъщност това е модел от и за машини, не от и за хора.  Какво трябва да се направи? Имайки предвид, че моделите за машинно обучение не могат наистина да бъдат тествани, съществуват два начина за справяне със ситуацията – да се отчете неопределеността или да се намали.  В първия случай се предполага, че този модел като правило не може да се тества до нивата за покриване на даден стандарт. Тогава е добър вариант да се вгради кръстосана проверка и да се следи за необичайни резултати, които моделът за машинно обучение може да генерира. При такава ситуация моделът не е доказан, а са направени промени за справяне с възможните грешки.  Същевременно обаче може да се подобри представянето на модела, като се подбират внимателно данните за обучението и се следи провеждането на тестовете. Тогава обаче трябва да се направи разликата между два типа грешни: грешки при обучението и грешки при тестването.  Грешките при обучението се определят от това, че същите данни, използвани при обучението, се пускат през модела. То тогава всички резултати би трябвало да се окажат правилни. Проблемът е, че всички обучителни системи са софтуер и не са перфектни. Така че е възможно да се обучи машината с една информация и все пак моделът да се провали при в някой от случаите. Така че при този вид грешка става дума за тестване качеството на обучението.  Грешките при резултатите са вследствие на обучаване с един набор от данни и тестване с напълно различна информация. Не може да се очаква да се тестват възможностите за работа на даден модел с данни, които той никога не е виждал. Ако има 100 набора данни (обикновено те са доста повече от това), трябва да се изберат 70 за обучението и да се запазят останалите 30 за тестовете.  Звучи просто, но как точно се извършва това разделяне? Какво ще се случи, ако при произволно разделяне в крайна сметка в набора от данни за обучение се окажат всички хора с кестеняви коси, а в този за тестове са всички с руси коси. В този модел ще наблюдава прекомерно нагаждане (overfit) към цвета на косата – това е лошата новина. Добрата новина в  случая е, че тестовият набор ще засече проблема, но все пак моделът ще е грешен.   Друг вариант е да се направят няколтко произволни разделяния на данните и среден резултат. Но така все пак мога да се получат нежелани дефекти. 20 от данните могат всеки път да се оказват в набора за обучение и никога в това за тестване. Тези 20 данни ще имат по-голямо влияние върху модела в сравнение с другата информация – подобно на онези, които винаги могат да се окажат в набора за тестване.  Решението за това се нарича  кръстосано валидиране, при която данните се разделят на групи. Обикновено броят е пе. При такъв случай има пет подгрупи от данни и се създават пет модела. За всеки създаден модел, се използват четири от подгрупите за обучение и след това с останалата една група се извършва тестването. Този процес се повтаря пет пъти, като всеки път се разменя наборът от данни, с който е било тестването. По този начин всяка един набор от данни се използва при тестовете веднъж и при обучението четири пъти. Така се избягват повторенията и проблемите, свързани с случайното разделяне.  Като цяло това са стъпките, които могат да се следват, за да се създаде най-добрият възможен модел. Но в края на краищата това не е валидиране на модела – а валидиране на методологията за обучение и тестване. По отношение на безопасността разбира се ще бъде взето решение дали моделът отговаря на условията на база на това как е създаден и какви са резултатите от тестовите грешки. Все пак няма начин подобен модел да се докаже като правилен по разбиранията за валидиране при проучвателния анализ на данни.

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

Защо валидирането е трудно?

Има редица особености, които затрудняват процеса на валидиране. В крайна сметка целта е да се покаже, че даден модел пресъздава добре (или поне достатъчно добре) реалността. А това се случва, когато моделът се обучава чрез набор от данни. Ако те бъдат променени – дори като се замени една добра информация с различна добра информация – то моделът няма да е същият. Ако тази промяна се случи по време на самото обучение, то моделът най-вероятно отново ще бъде различен.

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

Прекомерно нагаждане (Overfitting)

Например, при планирането на експерименти (design of experiments – DoE) е важно всички променливи, за които не се провеждат тестове, да се подберат на случаен принцип. В противен случай експериментите могат да покажат грешни изненадващи корелации – такива, които ще изчезнат при по-разширен набор от данни.

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

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

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

Крайни величини (Edge Cases)

При проучвателния анализ на данни (exploratory data analysis – EDA) се говори за частни случаи, при които множество променливи се пресичат в отдалечена точка от пространството, в което са данните. При машинното обучение по подобен начин се използва терминъткрайни величини“. В случая различното е, че става дума само за една променлива. Тук предизвикателството е тя да бъде намерена.  

Как се валидира машинното обучение?

Разглеждане на завършения модел

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

Какво трябва да се направи?

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

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

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

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

Как се валидира машинното обучение?

Грешките при резултатите са вследствие на обучаване с един набор от данни и тестване с напълно различна информация. Не може да се очаква да се тестват възможностите за работа на даден модел с данни, които той никога не е виждал. Ако има 100 набора данни (обикновено те са доста повече от това), трябва да се изберат 70 за обучението и да се запазят останалите 30 за тестовете.

Звучи просто, но как точно се извършва това разделяне? Какво ще се случи, ако при произволно разделяне в крайна сметка в набора от данни за обучение се окажат всички хора с кестеняви коси, а в този за тестове са всички с руси коси. В този модел ще наблюдава прекомерно нагаждане  към цвета на косата – това е лошата новина. Добрата новина в случая е, че тестовият набор ще засече проблема, но все пак моделът ще е грешен.

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

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

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

КОМЕНТАРИ ОТ  

Полезни страници
    За нас | Аудитория | Реклама | Контакти | Общи условия | Декларация за поверителност | Политика за бисквитки |
    Действителни собственици на настоящото издание са Иво Георгиев Прокопиев и Теодор Иванов Захов