Статья Автор: Деникина Н.В., Деникин А.В.

Зачем обучать на данных

А зачем вообще нужны нейросети, если программы и так можно писать?


Две задачи

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

Вторая: сказать, за сколько минут курьер довезёт заказ. Опытный диспетчер отвечает почти точно, но не может объяснить как. Правила у него в голове нет, а ответ есть.

Вот граница.

Если правило известно - программируем.
А если правило неизвестно - что тогда может сделать компьютер?


Что такое обучение на данных

Обучение на данных - когда правило не пишут вручную, а показывают программе много примеров вида «вход и верный ответ», и она подбирает правило, ошибающееся на них реже всего.

Нужны три вещи: много примеров с известными ответами, существующая связь между входом и ответом, и допустимость ошибок. Если получим точность в 97 случаях из 100 будем считать, что это успех.

Нет примеров - нет обучения.


Что вообще умеет такая программа

Мы придумали двести заказов и посчитали время по правилу: 3 минуты на километр, 1.5 на светофор, минус полминуты за свободного курьера, плюс 8 минут на сборку. Программе показали только сами заказы и время. Правило она не видела.

  веса смещение
правило, по которому считали мы 3   1.5   −0.5 8
что нашла программа сама 3.0   1.48   −0.49 7.97

Она восстановила правило, глядя только на заказы. А заказ на 4 километра с двумя светофорами и шестью свободными курьерами рядом получил прогноз ровно 20 минут — это число ты посчитаешь вручную в паре 3.

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


Всё занятие будем решать одну задачу: по трём числам про заказ предсказать, за сколько минут его довезут. 

Печать