Обновить

Обучение скрытых слоёв S–A–R перцептрона без вычисления градиентов. Часть 2

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели4K
Всего голосов 2: ↑1 и ↓10
Комментарии22

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

при 30к нейронах лучший результат прогнозирования 177 ошибок (98,23%).

Выше головы не прыгнешь, это было понятно ещё с первой статьи. При этом оверхед потребления нейронов.

Да, очень хороший результат, аналогичный MLP + backprop

30к нейронов - хороший для MNIST? Вот щас прям самодельный MLP

784 x 48: Relu
48 x 128: Relu
128 x 10: Linear


бэкпропом (SGD + импульс) обучился до 98,14% на тестовой (10к) выборке (на обучающей 60к - 100%) за 350 эпох и 280 сек в один поток на CPU

исходники выложи, тогда посмотрим (люблю я эти преувеличения, и когда сравнивают хрен с редькой), выложишь перепроверю. И даже если так, это хороший результат. Адекватно, думать надо. Хотя уверен, что что-то недоговариваете. Просто было тут много фейкометов, которые на проверку оказались несостоятельными.

https://github.com/dimonz80/go_neuro запилил на гошечке. правда без моментума но тоже обучается норм

ну не, на это у меня нет времени ... Си, С#, Питон на крайняк ... ну или к новому году доберусь ))

Ой всё! Go - это такой С со сборщиком мусора. MPL из ссылки на Github - это второе что я сделал на Го после Хэлло волрда. Запустить это проще простого: качаем Го, распаковываем в папочку, прописываем в $PATH и в папке с проектом делаем go run .

чтобы понимали в каких пределах у нас расхождения, у меня есть реализация бэкпропа на питоне (дал, кто-то из форумчан, который тоже вдохновился спорить:) ) , на вашей архитектуре 784-48-128-10 он дает порядка 96% точности после 370 итераций. Но это не аргмакс, а то, что выше в статье E_hard

97,5 % по аргмаксу типичный результат бэкпропа
97,5 % по аргмаксу типичный результат бэкпропа

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

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

Да я не спорю, карта могла так лечь, что выдало более 98%. Меня больше стриггерили 30к нейронов) Хотя после 95% каждый следующий процент дается кратным увеличением числа нейронов. 95% запросто получаем и с одним скрытым слоем из 32 нейронов за несколько эпох.

Во-первых, 30к это вырвано из контекста, там же видно, что 10к - 20к -30к - разница не большая. Во-вторых, нейрон перцептрона и нейрон бэкпропа это две большие разницы. Их смело можно рассматривать как 1 к 1000 (по вычислительной нагрузке).

Для меня что 30к что 10к звучит устрашающе, если речь об учебно-спортивной выборке типа NMIST)

Их смело можно рассматривать как 1 к 1000

Ну учитывая что ф-ия активации пороговая, в этом есть логика. Для MLP сложные функции активации типа синуса или вейвлета могут давать сопоставимый с Relu или сигмойдой результат при меньшем кол-ве нейронов (или ваще недостижимый) для некоторых задач.

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

да понимаю я, сам игрался монте-карлами и прочими эмитациями отжига) это здорово что кто-не не в мэйнстриме пытается что-то делать. Для любителей нестандартного есть еще машина Цетлина.

что же Вы тогда не реализовали перцептрон?

Машина Цетлина интереснее

Поправь меня, если я не прав - Машина Цетлина это тот же перцептрон Розенблатта, на пороговых элементах, но только со стахостическим обучением, если не путаю, Розенблатт это называл S-управляемой системой, что потом использовал Хопфилд .. т.е. по сути ничего нового

Не) Похоже только тем что в некоторой степени тоже пороговые (на самом деле однобитные) элементы и обучение стохастическое. Там вход приводится к бинарной (битовой) форме, а решение ищется в виде дизъюнктивной нормальной формы от входа. В процессе обучения используется автомат Ценлина - по сути счетчик с порогом срабатывания. Ссылка на архиворг https://arxiv.org/pdf/1804.01508 . Преимущества по сравнению с персептронами - типа интерпертируемость (т.к. ДНФ от входов - сомнительно при большом кол-ве входов и литералов), очень быстрый инференс и простота для аппартной реализации, т.к. при инференсе используется только простые битовые операции.

Эту тему пиарят какие-то чуваки из Норверии и вроде на FPGA и ASIC чего-то пытаются делать. И даже книжку пишут https://tsetlinmachine.org/. Интересно, кароче, хотя бы не булщит про LLM

К вопросу о переобучении перцептрона, как видим он не переобучается
К вопросу о переобучении перцептрона, как видим он не переобучается
Еще один пример отсутствия переобучения
Еще один пример отсутствия переобучения

Мы просто обсуждаем в другом месте, а тут удобно делать выгружать графики. Все кому интересно могу пригласить сюда https://dxdy.ru/topic161852.html

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации