Причината да напиша тази статия е един често задаван въпрос, когато стане дума за машинно обучение и анализ на данни:
В каква степен трябва да владеем математиката за да се занимаваме с машинно обучение?
Степента на овладяване на дадена област е относително понятие и ако сте решили да се потопите в дълбините на науката за данни, то в следващите редове ще получите точният и, надявам се, oбнадеждаващ отговор.
Безспорно машинното обучение като една перспективна днес област за кариерно развитие привлича софтуерни разработчици, анализатори на данни от бизнеса, инженери и изследователи – трудно е да се намери сфера, в която приложението му да не носи полза.
Компаниите също приемат с отворени обятия идеята да имат умните алгоритми за класификация, прогнозиране и много други в своите приложения или като инструмент за подпомагане на процеса на взимане на решения. Съвременните технологии правят машинното обучение достъпно дори за съвсем скромни компании, стига те да събират данни, а както е известно – те събират.
Какво трябва да знаем преди да направим решителната крачка?
Машинното обучение съчетава в себе си знания от много области на науката и технологиите и лично аз намирам това за най-интересната му част. Мислете си за машинното обучение като за понятие, което обединява три основни области:
- програмиране и алгоритми
- бази данни и извличане на знания от тях (Data Mining)
- множество раздели на математиката
Разликите при отделните специалисти е в съотношението на трите и в средствата, които използват за решаване на задачите. Естествено е при програмистите да има превес частта програмиране с множеството библиотеки, класове и функции. За всички други, които са далеч от програмирането, има доста добри приложения, които позволяват визуално да се организират отделните стъпки в анализа, без това да намалява качеството на крайния резултат.
Общото за специалистите е това, че в основата на машинното обучение лежат алгоритми и методи разработени много преди появата на компютърните методи за обработка на данни и анализ-просто компютрите улесняват използването им в практиката (и не само). Това прави връзката между математиката и машинното обучение съвсем естествена и знанията за алгоритмите и методите са важни на всяка от стъпките в процеса на анализ.
Значи все пак трябва да сме математици?
Един професор от Института по приложна математика почти на всяка лекция ни казваше, че ние сме инженери, а не математици и доказателствата на теоремите няма да ни бъдат много полезни- за нас е по-добре е да разберем как можем да ги използваме в практиката, а не да ги доказваме.
С пълна сила това се отнася и за бъдещите специалисти по машинно обучение. Не е необходимо да сте завършили математика и да можете да доказвате теореми, но трябва да знаете същността на отделните методи, техните характеристики и особености. Част от въпросите, на които трябва да имате ясен отговор са от типа на:
- каква е същността на задачата?
- кои методи се използват за решението на този тип задачи?
- какво изчисляват отделните методи и какви ограничения имат?
- как да подготвим данните?
- кои фактори оказват влияние върху точността на резултатите?
- какви са насоките за подобрение на точността на модела?
Трябва да имате предвид, че при повечето случаи решението на задачите в машинното обучение не е еднозначно, не е точен набор от стъпки, които да следваме подобно на рецепта, а се налага тестване с различни подходи и методи, сравнение на резултати, мисловен анализ и това прави работата на специалистите в тази област интересна и творческа.
Търсейки отговорите на тези и много други въпроси, вие постепенно ще натрупвате необходимите ви знания от областта на математиката до степен достатъчна да бъдете добри специалисти в машинното обучение без да е необходимо обезателно да сте математици.
Искате да научите повече за машинното обучение?
Включете се в курса по машинно обучение и анализ на данни с Python.
Автор: Дикран Хачикян