Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Правильно ли я понимаю алгоритм машинного обучения Forward-Forward предложенный в 2022 году?

Zeleniy Kustik Ученик (114), закрыт 1 месяц назад
Алгоритм Forward Forward это алгоритм обучения нейронных сетей. Его главное отличие от более популярного алгоритма back propagation, состоит в том что в алгоритме Forward Forward нет обратного распространения ошибки, так же обучение идёт для каждого слоя по отдельности. Тоесть у нас есть плохие данные и хорошие данные суть алгоритма состоит в том чтобы при хороших данных выходной сигнал на выходе слоя при хороших данных был больше чем при плохих данных. Для начала нам нужно выбрать произвольное число например 2 это будет число которое будет «желаемым» выходным сигналом если точнее то: у нас есть 2 выхода (обучение идёт на хороших данных) выходной сигнал на 1 нейроне равен 1, на 2 нейроне 3. Мы возвадим в квадрат сигнал на 1 нейроне и получаем 1, тоже самое делаем с сигналом на 2 нейроне и получаем 9. После чего мы складываем эти 2 числа и получаем 10. Это скажем так будет баллом слоя, 10 — 2 получаем 8 это будет ошибкой слоя. После чего веса в этом слое изменяется. Для того чтобы веса нейронов не были слишком большими их надо нормализовать например: было 4000 и 2000, стало 1 и 0.5. После чего повторяем тоже самое на следующем слое. Повторяем пока не пройдёмся по всем хорошим данным. После обучения на хороших данных идёт обучение на плохих. Только в этот раз ошибка будет высчитываеться так: все выходные значения возводим в квадрат, после чего складывает их, затем отнимаем от 0, получившеесе число мы считаем за ошибку слоя. После идёт корректировка весов на основе ошибки. Повторять обучение на плохих данных до тех пор пока они не закончатся. Также можно играться с соотношением хороших и плохих данных, количеством проходов на слой и т.д Так-же вот как я вижу обучение с учителем или подкреплением на основе этого алгоритма. Мы просто берём наши входные значения, а затем то что мы хотим получить на выходе. После чего высчитываем разницу между тем что мы хотим на выходе и тем что выдаёт нам нейросеть, тем самым получив ошибку нейросети при этих данных, после чего мы введём некое пороговое значение например если ошибка меньше 0 то данные хорошие, если больше или равно 0 то данные плохие. Через какой-то определённое количество обучения мы рано или поздно вернёмся к этим данным и заного решаем к какому типу данных его отнести исходя из выходных значений. Также можно на основе ошибки пытаться регулировать скорость обучения или желаемый сигнал слоя
Лучший ответ
Остальные ответы
Сиреневая фея Высший разум (11243976) 1 месяц назад
Джеффри Хинтон, пионер Deep Learning, на конференции NeurIPS 2022 предложил новый алгоритм обучения нейронных сетей — Forward‑Forward — как альтернативу методу обратного распространения ошибки. FF более гибок и использует меньше памяти, чем backpropagation в архитектурах с множеством скрытых слоев, а его основная отличительная черта в том, что он основывается на современном понимании устройства человеческого мозга.

Всё это "вокруг, да около"...
Никто не знает КОДА, но скоро узнают...
Похожие вопросы