SkillGridИзучай computer science на практике

Машинное обучение: правила из примеров

Вместо того чтобы писать правила самому, ты показываешь компьютеру примеры и позволяешь найти закономерность — и тут же видишь, сколько это на самом деле стоит.

13 мин · 40 XP

До сих пор всю работу делал ты. В data:1 ты сам выбирал строки, группировал их и решал, что означают числа. Машинное обучение меняет порядок. Ты перестаёшь писать правило и начинаешь показывать примеры, а правило выдаёт программа. Этого правила нигде нет в виде фразы. Оно живёт внутри модели как набор чисел, которые имеют смысл только вместе.

+--------------------------+--------------------------+
| rules written by hand    | rules learned from rows  |
+--------------------------+--------------------------+
| who wrote it: a person   | who wrote it: the data   |
| new case: read the rules | new case: nearest rows   |
| breaks on: exceptions    | breaks on: new territory |
+--------------------------+--------------------------+Два способа получить работающее правило и то, как каждый из них ломается.

Возьми таблицу, которая уже есть у твоей школы. Каждая строка — один ученик, каждый столбец — то, что было известно до экзамена, плюс один столбец, который стал известен только после. Именно из-за последнего столбца таблица и полезна.

practice_table
+-------------+-------------+----------------+
| study_hours | sleep_hours | passed         |
+-------------+-------------+----------------+
| 1           | 5           | no             |
| 2           | 6           | no             |
| 4           | 7           | yes            |
| 6           | 6           | yes            |
| 9           | 8           | yes            |
| 3           | 4           | no             |
+-------------+-------------+----------------+Шесть строк — игрушечная таблица, но форма у неё та же, что у банка с шестью миллионами строк.

Столбцы, которые модели разрешено читать, называются признаками. Столбец, который она должна выдать, называется меткой. В этой таблице study_hours и sleep_hours — признаки, а passed — метка. Для нового ученика модель получает признаки и выдаёт собственную догадку о метке. Эта догадка и есть предсказание, и это единственное, что модель вообще делает: признаки на входе, метка на выходе. Метка — то, без чего обучение вообще невозможно: именно с ней модель сравнивает себя, пока учится.

Иногда столбца с меткой нет вообще. Ответ никто не записал, значит, копировать нечего. Тогда модель может смотреть только на то, как строки соотносятся друг с другом: какие строки настолько похожи, что, скорее всего, относятся к одной группе. Магазин может так поступить со своими чеками, вообще не решая заранее, какими будут группы.

receipts with no label at all

+--------+--------+--------+
| item   | price  | hour   |
+--------+--------+--------+
| coffee | 2.40   | 08:10  |
| bun    | 1.80   | 08:12  |
| soup   | 4.20   | 13:05  |
| salad  | 4.50   | 13:20  |
| cola   | 2.10   | 17:40  |
+--------+--------+--------+

rows that look alike: 1 with 2, 3 with 4
nobody wrote those two groups downНи одного столбца с ответом, только строки, которые случайно оказались рядом.

Теперь то, о чём обычно умалчивают. Модель не понимает предмет. У неё есть форма с несколькими настраиваемыми числами, и обучение — это подкручивание этих чисел, пока форма не пройдёт близко к меткам из обучающей таблицы. Что она сможет выучить, решают всего две вещи: какие признаки ты дал и какую форму выбрал. Если настоящая закономерность не выражается этой формой, никакие данные не спасут, а модель всё равно будет отвечать уверенно.

Training rowsModelPredictionhere are examples with labelsadjust until misses are smallthis whole step is called traininga wrong guess costs a littlenudge the numbers, try againnew case, no label attachedthe label is the one thing training never had

Практика

  1. Магазин хочет предсказывать, сколько покупатель потратит в следующем месяце. Сопоставь каждый столбец его таблицы с ролью, которую даёт модель.

    Подсказки
    • Признак — то, что известно до экзамена; метка — то, что ты хочешь узнать и пока не знаешь.
    • Отдели столбец, который модель обязана выдать, от столбцов, которые ей разрешено читать.
  2. Магазин хочет разбить покупателей на группы по тому, как они покупают, но этих покупателей никто никогда не размечал. Какое описание подходит задаче?

    Подсказки
    • У владельца магазина нет столбца, где сказано, какие покупатели относятся друг к другу.
    • Обучению с учителем нужны ответы, которые можно копировать; без столбца с меткой копировать нечего.
  3. Одноклассник говорит: мы обучили модель, теперь она понимает экзаменационные баллы. Что не так в этой фразе?

    Подсказки
    • Спроси, что модель выдаёт для входа, которого никогда не видела: есть ли этот ответ в данных?
    • Обучение меняет числа внутри модели, а не законы мира, о котором она узнавала.