Програмите, които вече познавате
В Модул 1 пишете програми на C#. Във всяка от тях компютърът прави точно това, което сте му казали: проверява условие, върти цикъл, пресмята. Ако програмата сгреши, грешката е ваша — някъде има грешно правило. Такава програма е точен алгоритъм: крайна последователност от стъпки, които водят до резултат.
Сега опитайте да напишете по същия начин програма, която разпознава дали на снимка има котка. Какво е условието? „Ако има уши…“ — но кои пиксели са уши? Никой програмист на света не може да напише тези правила. И все пак телефонът ви ги решава за миг. Явно има и втори начин да се направи програма.
Изкуствен интелект (ИИ, AI)
Област от информатиката, която изгражда системи, изпълняващи задачи, за които досега е трябвал човек — разпознаване на образи и реч, разбиране на език, вземане на решения, планиране.
Определението говори за задачата, а не за „мислене“. В този курс ще питаме едно: справя ли се системата със задачата и как е измерено това.
Точен алгоритъм срещу обучен модел
Ако трябва да разпознаете спам, при първия начин сядате и измисляте условията: if (текстът съдържа „спечели“) …. Правилата ги пише човек. Това е програма с точен алгоритъм — както всичко, което сте писали досега.
При втория начин показвате на програмата хиляда съобщения, всяко обозначено от човек като „спам“ или „нормално“, и програмата сама намира закономерността. Никой не е написал условието — то е извлечено от данните. Резултатът се нарича обучен модел, а процесът — машинно обучение.
| Точен алгоритъм | Обучен модел | |
|---|---|---|
| Кой измисля правилата | Програмистът | Алгоритъм за обучение, от примери |
| Какво е нужно | Човек, който знае как се решава задачата | Много примери с верен отговор |
| Какво има вътре | Условия, цикли — четим код | Милиони числа (параметри) |
| Верен ли е винаги | Да, ако правилата са верни | Не — греши в някакъв процент от случаите |
| Когато светът се промени | Пренаписваме правилата | Дообучаваме с нови данни |
| Силно при | Сортиране, ДДС, шах-дебюти, счетоводство | Образи, реч, език, препоръки |
Входове, изход и къде е „умът“
Погледнете двете вериги. И двете получават вход (текст, снимка, числа) и дават изход (етикет „спам“, име на цифра, подредени числа). Отвън изглеждат еднакво. Разликата е в кутията по средата.
Сравнете две програми за една и съща задача — разпознаване на ръкописна цифра върху малка мрежа от пиксели:
// Точен алгоритъм: човек е измислил правилата
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.
- Машинно обучение — подмножество, при което системата намира закономерности в данни, вместо да получава правила.
- Дълбоко обучение — машинно обучение с многослойни невронни мрежи. Тук са чатботовете, разпознаването на реч и на лица.
Кога кое
Нито един от двата начина не е „по-добрият“. Инженерът избира според задачата, а често комбинира двата.
| Задача | Подход | Защо |
|---|---|---|
| Сортиране на списък с числа | Точен алгоритъм | Правилото е ясно и винаги вярно; грешка е недопустима |
| Изчисляване на ДДС по фактура | Точен алгоритъм | Ставката е записана в закон — няма какво да се учи |
| Разпознаване на котка на снимка | Обучен модел | Никой не може да напише правилата за пиксели |
| Спам филтър | И двата | Прости правила за очевидното + модел за останалото |
| Превод от български на японски | Обучен модел | Езикът има твърде много изключения за ръчни правила |
Какво трябва да запомниш
- Изкуственият интелект се определя чрез задачата: система, която върши работа, за която досега е трябвал човек.
- При точния алгоритъм правилата ги пише програмистът; при обучения модел се извличат от примери с верен отговор.
- И двете имат вход и изход. „Умът“ е или в кода, или в параметрите — числа, нагласени при обучението.
- Точният алгоритъм е верен винаги (ако правилата са верни); моделът греши в някакъв процент и това трябва да се измери.
- Изкуствен интелект ⊃ машинно обучение ⊃ дълбоко обучение.
- Изборът между двата подхода зависи от задачата; често се комбинират.