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

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

Данните като основа на AI. Видове данни

Четирите вида данни — числа, текст, изображения, звук — и как всяко от тях се превръща в числа в паметта на компютъра. Защо без данни няма машинно обучение.

Без данни няма изкуствен интелект

Досега правилата ги пишехте вие: съветникът от урок 7 знае какво да съветва, защото вие сте му го казали. От този урок нататък посоката се обръща — системата ще открива правилата сама, като разглежда примери. В урок 2 нарекохме това „подход, основан на данни“.

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

Данни

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

Четирите вида данни

ВидПримерКак се записваКолко място заема
Числавъзраст 17, температура 36.6цяло число (int) или дробно (float/double)4 или 8 байта на число
Текст„Здравей“, адрес, коментаркод за всеки символ (Unicode)1–4 байта на символ
Изображениеснимка, сканиран документматрица от пиксели; всеки пиксел е число (или три числа за цвят)милиони байтове преди компресия
Звукзапис на глас, песенотчети на амплитудата 44 100 пъти в секундаоколо 10 МБ за минута преди компресия

Видеото не е пети вид — то е редица от изображения (25–60 в секунда) плюс звук. Затова е и най-„тежкото“ нещо, което телефонът ви съхранява.

Числа: int и float

Числата са най-лесният случай — те вече са числа. Единственият въпрос е колко памет да заделим и дали искаме дробна част. Това познавате от C#:

int vazrast = 17;          // 32 бита: от −2 147 483 648 до 2 147 483 647
double temperatura = 36.6; // 64 бита: дробно число с ограничена точност
bool zakusva = true;       // да/не — 1 бит смисъл, 1 байт на практика

Целите числа се пазят точно. Дробните — приблизително: компютърът работи в двоична система, а числа като 0.1 в нея са безкрайни дроби и се отрязват.

Текст: код за всеки символ

Компютърът не знае какво е буква. За всеки символ има уговорен номер — таблица, наречена Unicode. Латинските букви имат номера от старата таблица ASCII (A = 65, a = 97), кирилицата е по-нататък (А = 1040, а = 1072).

СимволКодСимволКод
A (латинско)65А (кирилица)1040
a (латинско)97а (кирилица)1072
0 (цифра)48Д1044
интервал32д1076

Думата „Да“ в паметта е 1044 1072. Когато пишете string ime = "Да"; в C#, зад кулисите стои точно тази редица. Буквите на кирилица са подредени по азбучен ред, така че Б = 1041, В = 1042 и т.н.

При записване във файл най-често се ползва кодирането UTF-8: латинските букви заемат 1 байт, кирилските — 2. Съобщение от 100 букви на кирилица е около 200 байта. Нищожно малко в сравнение с една снимка.

Изображение: матрица от пиксели

6×6 пиксела00609030008020022012004018025525019030301602402451702006015016070000304010036 числаМатрица 6×6 — точно това „вижда“ компютърът.
Всеки пиксел е едно число от 0 (черно) до 255 (бяло). Снимката е таблица от такива числа.

Черно-бяла снимка е матрица — таблица с редове и колони, — в която всяка клетка е яркостта на един пиксел. Цветната снимка има по три числа на пиксел: колко червено, колко зелено и колко синьо (RGB). Чисто червено е (255, 0, 0), бяло е (255, 255, 255), черно — (0, 0, 0).

Снимка 1920×1080 пиксела има 2 073 600 пиксела, по 3 байта всеки — над 6 милиона байта. Файлът от телефона е много по-малък, защото форматите JPEG и PNG компресират данните: съседните пиксели обикновено са почти еднакви и това се използва.

Звук: отчети на амплитудата

Звукът е трептене на въздуха. Микрофонът го превръща в напрежение, а компютърът измерва това напрежение през равни интервали — десетки хиляди пъти в секунда. Всяко измерване е едно число, наречено отчет (sample).

отчети: 0, 18, 32, 38, 30, 14, −6, −24, −34, −36, −26, −10, 8, 26, …Мери се 44 100 пъти в секунда. Една секунда звук = 44 100 числа.
Гладката вълна става редица от числа. Колкото по-често мерим, толкова по-точно я възстановяваме.

Стандартът за музика е 44 100 отчета в секунда, по 2 байта всеки, в два канала (ляв и десен). Една минута е около 10 милиона байта. Форматът MP3 свива това десетина пъти, като изхвърля честоти, които ухото и без това не чува.

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

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

  • Изкуственият интелект, основан на данни, се учи от примери — затова първо трябва да разберем как се записват примерите.
  • Четири вида данни: числа, текст, изображения, звук. Видеото е изображения плюс звук.
  • Числата са int (точни, цели) или float/double (дробни, приблизителни).
  • Текстът е редица от кодове на символи по таблицата Unicode; еднакви на вид символи могат да имат различни кодове.
  • Изображението е матрица от пиксели; всеки пиксел е едно число (яркост) или три (RGB).
  • Звукът е редица от отчети на амплитудата — 44 100 числа за всяка секунда.