За математиката и машинното обучение

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

В каква степен трябва да владеем математиката за да се занимаваме с машинно обучение?

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

Безспорно машинното обучение като една перспективна днес област за кариерно развитие привлича софтуерни разработчици, анализатори на данни от бизнеса, инженери и изследователи – трудно е да се намери сфера, в която приложението му да не носи полза.

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

Какво трябва да знаем преди да направим решителната крачка?

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

  • програмиране и алгоритми
  • бази данни и извличане на знания от тях (Data Mining)
  • множество раздели на математиката

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

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

Значи все пак трябва да сме математици?

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

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

  • каква е същността на задачата?
  • кои методи се използват за решението на този тип задачи?
  • какво изчисляват отделните методи и какви ограничения имат?
  • как да подготвим данните?
  • кои фактори оказват влияние върху точността на резултатите?
  • какви са насоките за подобрение на точността на модела?

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

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

Искате да научите повече за машинното обучение?

Включете се в курса по машинно обучение и анализ на данни с Python.

Научете повече

Автор: Дикран Хачикян