Онлайн час в Google Meet
Лого на 91. НЕГ „Проф. Константин Гълъбов“

11. клас · Избираем модул · Урок 1

Какво е изкуствен интелект

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

Програмите, които вече познавате

В Модул 1 пишете програми на C#. Във всяка от тях компютърът прави точно това, което сте му казали: проверява условие, върти цикъл, пресмята. Ако програмата сгреши, грешката е ваша — някъде има грешно правило. Такава програма е точен алгоритъм: крайна последователност от стъпки, които водят до резултат.

Сега опитайте да напишете по същия начин програма, която разпознава дали на снимка има котка. Какво е условието? „Ако има уши…“ — но кои пиксели са уши? Никой програмист на света не може да напише тези правила. И все пак телефонът ви ги решава за миг. Явно има и втори начин да се направи програма.

Изкуствен интелект (ИИ, AI)

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

Определението говори за задачата, а не за „мислене“. В този курс ще питаме едно: справя ли се системата със задачата и как е измерено това.

Точен алгоритъм срещу обучен модел

Ако трябва да разпознаете спам, при първия начин сядате и измисляте условията: if (текстът съдържа „спечели“) …. Правилата ги пише човек. Това е програма с точен алгоритъм — както всичко, което сте писали досега.

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

Точен алгоритъмОбучен модел
Кой измисля правилатаПрограмистътАлгоритъм за обучение, от примери
Какво е нужноЧовек, който знае как се решава задачатаМного примери с верен отговор
Какво има вътреУсловия, цикли — четим кодМилиони числа (параметри)
Верен ли е винагиДа, ако правилата са верниНе — греши в някакъв процент от случаите
Когато светът се промениПренаписваме правилатаДообучаваме с нови данни
Силно приСортиране, ДДС, шах-дебюти, счетоводствоОбрази, реч, език, препоръки

Входове, изход и къде е „умът“

Погледнете двете вериги. И двете получават вход (текст, снимка, числа) и дават изход (етикет „спам“, име на цифра, подредени числа). Отвън изглеждат еднакво. Разликата е в кутията по средата.

Точен алгоритъмвходправилаif … else …for … while …изходпрограмистътпише правилатаОбучен моделвходпараметри0.31 −1.7 …милиони числаизходпримери с верен отговор(данни)обучениеИ двете имат вход и изход. Разликата е откъде идва това, което е между тях.
Вляво „умът“ е в кода, който човек е написал. Вдясно е в параметрите, които обучението е нагласило по примерите.

Сравнете две програми за една и съща задача — разпознаване на ръкописна цифра върху малка мрежа от пиксели:

// Точен алгоритъм: човек е измислил правилата
static int Cifra(bool[,] pikseli)
{
    if (SamoEdnaVertikalnaCherta(pikseli)) return 1;
    if (ImaZatvorenKragOtgore(pikseli) && ImaOpashkaNadolu(pikseli)) return 9;
    // ... още десетки правила, и пак ще има цифри, които не хващат
    return -1;
}

// Обучен модел: правилата са в числата, а не в кода
static int Cifra(double[] pikseli, double[] parametri)
{
    // една и съща формула за всички цифри;
    // parametri са нагласени по 60 000 примера
    return NayVeroyatnaCifra(pikseli, parametri);
}

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

Как се подреждат понятията

Три термина, които медиите ползват като синоними, всъщност са вложени един в друг:

Изкуствен интелектМашинно обучениеДълбоко обучениеезикови модели,разпознаване на образи
Всяко дълбоко обучение е машинно обучение; всяко машинно обучение е изкуствен интелект. Обратното не е вярно.
  • Изкуствен интелект — най-широкото понятие. Включва и програма, изцяло построена от написани на ръка правила — такива ще правите в уроци 5–9.
  • Машинно обучение — подмножество, при което системата намира закономерности в данни, вместо да получава правила.
  • Дълбоко обучение — машинно обучение с многослойни невронни мрежи. Тук са чатботовете, разпознаването на реч и на лица.

Кога кое

Нито един от двата начина не е „по-добрият“. Инженерът избира според задачата, а често комбинира двата.

ЗадачаПодходЗащо
Сортиране на списък с числаТочен алгоритъмПравилото е ясно и винаги вярно; грешка е недопустима
Изчисляване на ДДС по фактураТочен алгоритъмСтавката е записана в закон — няма какво да се учи
Разпознаване на котка на снимкаОбучен моделНикой не може да напише правилата за пиксели
Спам филтърИ дватаПрости правила за очевидното + модел за останалото
Превод от български на японскиОбучен моделЕзикът има твърде много изключения за ръчни правила

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

  • Изкуственият интелект се определя чрез задачата: система, която върши работа, за която досега е трябвал човек.
  • При точния алгоритъм правилата ги пише програмистът; при обучения модел се извличат от примери с верен отговор.
  • И двете имат вход и изход. „Умът“ е или в кода, или в параметрите — числа, нагласени при обучението.
  • Точният алгоритъм е верен винаги (ако правилата са верни); моделът греши в някакъв процент и това трябва да се измери.
  • Изкуствен интелект ⊃ машинно обучение ⊃ дълбоко обучение.
  • Изборът между двата подхода зависи от задачата; често се комбинират.