Прочее образование

Как устроено обучение без учителя нейронных сетей?

Поиск в гугле ничего особо не дал - единственное что я понял, что если нейросеть более-менее правильно действует, то ее веса подкрепляются. Но как? Вот например у нас есть сеть, многослойный перцептрон (персептрон), 1 слой - 1 нейрон, 2 слой - 3 нейрона, 3 слой - 1 нейрон. Если на входе 1 (это задача просто ДЛЯ ПРИМЕРА) то на выходе должно быть 1, а если на входе 0, то и на выходе должно быть 0, но она это не знает (и я этого не знаю). Ок. Теперь зададим значениям весов случайные значения. Ок. Подадим на вход 1. На выходе 0.12. И что дальше? В случае с методом обратного распространения ошибки все просто - вычисляем ошибку для каждого нейрона, и корректируем веса методом градиентного спуска. Но для этого нужно знать правильный ответ! А что если мы его не знаем? Что если действия нейросети просто приводят к определенному результату - положительному или отрицательному? Как действовать в таких случаях? Как корректировать веса?
Забавно было бы провести между ними эволюционный отбор.
Создайте множество сетей со случайными весами. Из них отбирайте те, результаты которых вас устраивают больше, чем у остальных.
Дальше копируйте их с некоторыми случайными отклонениями в весах, и среди нового поколения проделайте то же самое.
ТО
Тата Озерова-Кузьмина
91 013
Лучший ответ
Светлана Шкулёва Спасибо, попробую
Автокодировщики.
В автокодировщиках вы на выходе должны получить то же самое, что и на входе. На выходе автокодировцика столько же нейронов, сколько на выходе.

Допустим, у вас есть датасет с рукописными цифрами. Но этот датасет не размечен, то есть заранее неизвестно, какая картинка какой цифре соответствует. Когда вы подаете на вход автокодировщика, например, рукописную цифру 7, то вы обучаете его так, чтобы на выходе получился тот же самый сигнал, какой был и на входе. Обучение идет методом обратного распространения ошибки. И точно также со всеми изображениями цифры 7, а также с изображениями других цифр. Если после окончания такого обучения предъявить на вход автокодировщика какую-нибудь рукописную цифру, то он распознает её как цифру, а если предъявить изображение, например, слона, то автокодировщик не распознает это изображение, как изображение цифры. Таким образом, вы получаете бинарный классификатор.

Именно в помощью автокодировщиков создают бинарные классификаторы, для распознавания бездефектной поверхности (например, металла в прокате или в фольге) и поверхности с дефектами. Обучить распознавать все дефекты, порой просто невозможно, так как дефекты никогда не повторяются (их форма, размеры, очертания, частота в кадре, сочетание с другими дефектами, наложение дефектов друг на друга, их образка, угол поворота, высота, глубина и т. д.). Получается гигантское количество классов, большинство из которых, возможно, никогда уже не встретятся. Поэтому с помощью автокодировщика учат нейросеть распознавать только бездефектную поверхность. В результате получается бинарный классификатор, который дает ответ, есть дефект на участке поверхности, которая попала в кадр, или там нет дефекта.
Стас Минонен
Стас Минонен
9 288
Тата Озерова-Кузьмина А как быть, если сесть встроена в персонажа. На вход подается информация о его окружении, а на выходе сеть должна решить, какую команду дать персонажу?
Как тогда обучать сеть, чтобы персонаж вел себя определенным образом в определенной ситуации?
Елена А Бред, похожий на пьяный
Кластеризация. Ищет линии разделения, гиперплоскость
Только часто хуже, чем с учителем и им надо задавать число кластеров

Пример, как разделить группу людей, на высоких и маленьких, толстых и тонких, умных и глупых - почти никак
Если бы гистограмма у группы имела бы где то провал, минимум, то просто, а так единственно где плотность наибольшая, там и делить, а на 3, 4 и больше тут проблема полная