Първа стъпка в IT
Курсове и технологии

Машинно обучение за начинаещи: основните идеи, Python и първите модели

Какво е машинното обучение, по какво се различават обучението с учител и без учител, какви знания трябват, как изглежда първият модел със scikit-learn и откъде да учите безплатно.

От Редакция на Първа стъпка в IT Публикувано: 3 мин. четене
Схема на изкуствена невронна мрежа върху изображение на чип
Снимка: mikemacmarketing · CC BY 2.0, източник

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

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

Четирите вида машинно обучение

Вид Какви данни има Какво прави моделът Пример
С учител (supervised) примери с верен отговор учи се от тях и отговаря за нови случаи цена на жилище, спам или не
Без учител (unsupervised) данни без отговори търси групи и закономерности групиране на клиенти по поведение
С подсилване (reinforcement) среда, награди и наказания развива стратегия за най-голяма награда робот, който се учи да ходи; програма, която играе игра
Генеративен ИИ огромни масиви от текст, изображения и др. създава ново съдържание по зададена заявка чатбот, генериране на изображения

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

  • Регресия предсказва число: цена на имот, време за пътуване.
  • Класификация предсказва категория. При двоичната класификация отговорите са два (дъжд или не), при многокласовата повече (дъжд, град, сняг).

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

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

Изискванията на курса Machine Learning Crash Course на Google са добър ориентир:

  • Python. Функции, речници, списъци, множества, цикли, условия, форматиране на текст. Опитни програмисти без Python обикновено също се справят. Ако започвате от нулата, вижте плана за Python за начинаещи.
  • Математика. Алгебра (променливи, функции, линейни уравнения, логаритми), малко линейна алгебра (матрици и умножение на матрици) и статистика (средна стойност, медиана, стандартно отклонение, хистограми). Производните и градиентите са нужни само за по-напредналите теми.
  • Библиотеки. NumPy и pandas за данни; упражненията се пускат в браузъра в Google Colab, без инсталиране.

Как изглежда първият модел

За класическо машинно обучение в Python обикновено се започва с библиотеката scikit-learn. Сама се описва като библиотека с отворен код за обучение с учител и без учител, с инструменти за подготовка на данните, избор и оценка на модели. Всички алгоритми в нея следват един и същ ред:

  1. Данни. Таблица X с признаци (по ред за всеки пример) и, при обучение с учител, вектор y с верните отговори.
  2. Разделяне. С train_test_split отделяте част от данните, която моделът няма да види при обучението.
  3. Обучение. Избирате модел, например логистична регресия, и викате fit(X, y).
  4. Прогноза и оценка. С predict получавате отговори за отделените данни и ги сравнявате с верните.
  5. Кръстосана проверка. cross_validate повтаря обучението и оценката на няколко части от данните (по подразбиране пет), за да не разчитате на едно случайно разделяне.

scikit-learn препоръчва подготовката на данните и моделът да се събират в един Pipeline. Така се избягва „изтичане“ на информация от тестовите данни в обучението, една от най-честите грешки на начинаещите: моделът изглежда отличен в проверката, а се проваля с нови данни.

Откъде да учите безплатно

  • Machine Learning Crash Course на Google. Анимирани видеа, интерактивни визуализации и упражнения. Модулите вървят от линейна и логистична регресия и класификация през работата с данни и пренагаждането (overfitting) до невронни мрежи, вграждания (embeddings) и въведение в големите езикови модели. Последният модул е за реални системи и справедливост на моделите.
  • Документацията на scikit-learn. Ръководството Getting Started показва целия път от данните до оценката на модела в няколко кратки примера с код.

След въведението

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

Източници и справки

  1. Google for Developers: What is Machine Learning?
  2. Google for Developers: Machine Learning Crash Course
  3. Google for Developers: Machine Learning Crash Course – Prerequisites and prework
  4. scikit-learn: Getting Started

Още по темата

Редакция на Първа стъпка в IT

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

За нас · Как работим · Всички материали

Фактите са по източниците, посочени под материала. Текстът е на Редакцията на Първа стъпка в IT. Редакционна политика · Забелязахте грешка? Пишете ни на kontakt@itstep.bg.