Как обучаются нейросети?

МЕНЮ


Искусственный интеллект
Поиск
Регистрация на сайте
Помощь проекту

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


Давайте представим, что у нас есть данные о 10 тысячах, проживающих в одном районе, включая информацию о их зарплате. Нам необходимо предсказать вероятность того, что они закажут такси. Для этого нам понадобится файл с настоящими вероятностями: как эти люди на самом деле заказывали такси.

Начнем с того, что построим нейросеть, которая может существовать (в реальной жизни таких вообще нет, но для наглядности мы это изобразим).

На входе у нас данные о зарплате, на выходе — вероятность вызова такси этим человеком:

Вход и выходы между собой соединены линией, которая является формулой. Эта формула нужна нейросети для того, чтобы обработать зарплату и сделать предсказание.

Подставим рандомную формулу

Формула должна быть такой, чтобы она давала более-менее правильное предсказание:

Пока что мы не знаем — правильная наша формула или нет. Нам нужно, чтобы нейросеть посчитала хотя бы что-то по той формуле, которую мы подставили. В результате получаем вероятность, равную 10%.

Получается, что человек с зарплатой 50 тысяч может заказать такси с вероятность 10%. Посмотрев в наш файл с достоверными вероятностями, мы увидим, что на самом деле эта вероятность — 20%.

Теперь наша задача -сделать так, чтобы нейросеть давала более точные предсказания. Для этого используем механизм «обратного распространения». говорим нейросети: «Исправляйся!», формула корректируется.

Наверняка вы такое уже видели, когда не могли справиться с ДЗ по алгебре, заглядывали в ответы, а потом под них подгоняли решение.

Теперь нейросеть может делает еще одно предсказание по новой формуле, и оно совпадает с правильными данными.

Готово, мы обучили нейросеть на одной точке данных. У нас есть одна формула, одна переменная с данными и одна с предсказанием (в жизни все не совсем так просто, но для общего понимания этого достаточно).

А теперь представьте, что мы знаем не только зарплату этих людей, а еще и расстояние от их дома до метро и количество проживающих с ними кошек.

Обозначим расстояние как D, а число кошек как C. Соединим эти данные с предсказанием и опять подставим рандомную формулу.

Получается, для какого-то человека, чья зарплата — 70 тысяч, который живет в 40 минутах от метро с 2 кошками, вероятность вызвать такси равна 75%. Теперь опять попробуем подогнать предсказание под правильный ответ.

Так сделаем с остальными данными, предсказывая, сверяя с правильным ответом и подгоняя формулы.

Спустя 10 тысяч кругов нейронная сеть начала предсказывать вероятности с точностью 96%.

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

Выходному узлу сложно выдавать вероятности одному.

Чтобы нейросеть была точнее, нужно добавить скрытый слой — промежуточные точки для вычисления более сложных вещей.

На данном этапе нас не интересует, что находится в этом промежуточном слое и связями между нейронами. Достаточно знать, что, если у нас есть 10 тысяч точек данных и нейронные связи, мы можем обучить нейросеть чему угодно.

Поэтому мы подставляем случайные формулы (это носит название «инициализация»), заставляем нейросеть выдавать нам предсказания и пересчитывать их, когда они неверны.

С каждым подсчетом какие-то нейронные связи становятся сильнее, какие-то слабее, а предсказание более верными.


Источник: m.vk.com

Комментарии: