|
|
На: Сверточная нейронная сеть Михайло
Добавлено: 10 дек 18 11:36
Изменено: 10 дек 18 11:40
|
http://neuropro.ru/memo312.shtmlУ вас там написано, что на вычисление экспоненты для тангенсоиды уходит до половины времени в сети размером 5-25-50-10. Извините, но у вас заблуждение: так как экспонента в такой сети вычисляется всего 10 раз на символ, независимо от того, прямое вычисление или прямое вычисление + обратное распространение. Экспонента медленнее умножения примерно в 10 раз (по всей видимости ряд Тейлора экспоненты включает порядка 10 членов). А умножений там даже в одном сверточном слое по 10000 минимум, например, для первого сверточного слоя 5х24х24х5х5 = 72000 умножений только в одном прямом вычислении. Если я правильно понял вашу архитектуру. Да и вообще какая разница, какая там архитектура - везде умножений гораздо больше экспонент. Так что с оптимизацией у вас туго, либо данные производительности устарели жутко с 2009 года. 600 млн. экспонент вычисляются за 10 секунд. Чего тут оптимизировать-то?
|
|
|
|
На: Сверточная нейронная сеть Михайло
+1
Добавлено: 17 дек 18 16:11
Изменено: 17 дек 18 16:11
|
Михайло, а вам не кажется что методика свёртывания какая то лукавая?
Все свёрнутые участки опять же выстраиваются в одну линию опять же с потерей топологии изображения.
И ещё.
А вы не пробовали забинарить входные изображения так, что бы все эти полутона от 1 до ХХ свести к единице? Как бы почестнаку.
|
|
|
|
На: Сверточная нейронная сеть Михайло
Добавлено: 18 дек 18 8:32
|
Автор: Михайло У вас там написано, что на вычисление экспоненты для тангенсоиды уходит до половины времени в сети размером 5-25-50-10. Извините, но у вас заблуждение: так как экспонента в такой сети вычисляется всего 10 раз на символ |
|
Миш, ты хочешь рассказать мне о существовавшей в начеле 2009г моде на использование РеЛУшек в свёрточных нейросетках, да? В общем, tanh'и там стояли у всех нейронов - а не только у выходных, как ты подумал. Автор: Михайло А умножений там даже в одном сверточном слое по 10000 минимум, например, для первого сверточного слоя 5х24х24х5х5 = 72000 умножений только в одном прямом вычислении. Если я правильно понял вашу архитектуру. |
|
Неправильно. И не надо глядеть на общее число чего-то - надо на соотношения глядеть. Там при одной вх.карте - у свёрточного нейрона в первом св.слое всего 25 весов (при рецептивном окне 5*5), т.е. будет 25 умножений на каждое последующее вычисление tanh. На втором св.слое - 5*25=125 умножений на каждое последующее вычисление tanh. И надо учесть, что процессорная операция деления (в tanh'e) - она по времени как несколько операций умножения (т.е. тормознее их). И вызов любой функции - это как минимум 2 процессорные команды (call+ret) накладных расходов.
|
|
|
|
На: Сверточная нейронная сеть Михайло
Добавлено: 19 дек 18 11:17
|
Автор: Victor G. Tsaregorodtsev
Миш, ты хочешь рассказать мне о существовавшей в начеле 2009г моде на использование РеЛУшек в свёрточных нейросетках, да?
|
|
Ааа. Точно! Надо сделать апдейт статьи, добавить пометку. А то каждый может спутать. P.s. Деление-то при вычислении в FPU почти равнозначно умножению.
|
|
|
|
На: Сверточная нейронная сеть Михайло
Добавлено: 19 дек 18 11:26
Изменено: 19 дек 18 11:28
|
Автор: mss
Михайло, а вам не кажется что методика свёртывания какая то лукавая?
Все свёрнутые участки опять же выстраиваются в одну линию опять же с потерей топологии изображения. |
|
Полносвязная сеть, хоть и плоская, но засчет обучения весов в итоге обнаруживает 2d-зависимости и становится как бы двумерной. У нее другой косяк - она жестко привязывается к координатам пикселя и при смещении изображения сильно снижается качество работы. При наличии сверточных слоев этот недостаток немного нивелируется. Именно это является причиной лучшего качества распознавания у сверточных нейронок. Автор: mss
А вы не пробовали забинарить входные изображения так, что бы все эти полутона от 1 до ХХ свести к единице? Как бы почестнаку. |
|
В смысле "по чесноку"? Что не так?
|
|
|
|
На: Сверточная нейронная сеть Михайло
Добавлено: 19 дек 18 12:24
Изменено: 19 дек 18 17:34
|
Я заметил что сетки работают лучше если данные разнообразнее. Т.е. чем больше разница на входе тем чётче классификация на выходе. Наверно из за этого полиномиальные веса дают лучше результат чем линейные - они увеличивают разницу. А? Царегородцев?
Ну от по чеснаку это когда сетке на вход подают только 0 и 1. Таким образом можно оценить 2дшные способности сетки честнее.
Скажем так. Полиномиальные сумматоры сравняются с линейными иии вот така им цена в случае 0,1.
На счёт же двумеризации свёрточных сетей - а вот попробуйте вместо квадрата 5×5 использовать короткие отрезки длинною в 5 пикселей разбросанных хаотично по двумерной плоскости входа. Ну вообще хаотично и с пересечениями и под разными углами.
Может кто и пробовал. Я не в курсе.
|
|
|
|
На: Сверточная нейронная сеть Михайло
Добавлено: 19 дек 18 18:53
Изменено: 19 дек 18 18:55
|
Автор: mss
Я заметил что сетки работают лучше если данные разнообразнее. |
|
Обычная проблема застревания в локальном экстремуме при многопараметрической оптимизации. Метод стохастического градиента, который в бэкпропагейшн, он предполагает перемешивание обучающих примеров для улучшения своей работы. Люди ещё сильнее застревают в локальных экстремумах, так как никаких целеннаправленных перемешиваний (шаффлингов) и встряхиваний (дропаутов и дропконнектов) природа не предусмотрела, только если искусственно: предметы уроков в школе перемежаются, например... Надеюсь вам примеры локальных экстремумов у людей не нужно приводить, взрослый уже, понимаете...
|
|
|
|
На: Сверточная нейронная сеть Михайло
Добавлено: 19 дек 18 19:06
Изменено: 19 дек 18 19:09
|
Автор: mss
На счёт же двумеризации свёрточных сетей - а вот попробуйте вместо квадрата 5×5 использовать короткие отрезки длинною в 5 пикселей разбросанных хаотично по двумерной плоскости входа. Ну вообще хаотично и с пересечениями и под разными углами.
Может кто и пробовал. Я не в курсе. |
|
Вряд ли пробовали. Тут придется косинус угла считать, а тогда мы вернемся к старой проблеме эффективности алгоритма. Ну это ладно, можно вычисления по таблице делать. Проблема в другом: вы видите проблему в двумеризации, а её нет даже в MLP. Есть проблема абсолютизации положения изображения (в сверточных сетях частично нивелировано). Самое главное, ваша идея не проходит из-за отсутствия дифференцируемости решающей функции, необходимосй для эффективного бэкпропагейшн. Не перебором же хаотические отрезки в 5 пикселей вращать/двигать. Вообще у сверточных сетей я вижу лишь одну проблему - они уделяют одинаковое внимание (процессорное время) каждому пикселю изображения, хотя допустим на краю может быть они не особо важны (но бывает и наоборот).
|
|
|
|
На: Сверточная нейронная сеть Михайло
Добавлено: 20 дек 18 8:17
|
На нет и суда нет. Прийдётся самому проверять. В свободное время. По ночам...
Обязательно задам эту 15-и минутную задачку на следующем интервью на предмет оценки алгоритмических способностей программиста:
Как рассчитать массив координат отрезка длинною в 5 клеток в поле 28х28 так, что бы он распологался в случайном месте и имел случайное направление раз; в 3 шага два; и при том не использовать ни синусов ни косинусов ни вращений, но только операции инкремента, декремента и рандомную функцию три.
|
|
|
| |
| |
|
На: Сверточная нейронная сеть Михайло
Добавлено: 24 дек 18 8:49
|
Цитата: Автор: mss Хреновая имплиментация. Работает медленно. И не дотягивает до Царегородцевских/Михайловских 98% - токма 77% (15 мин обучения). При прочих почти равных. СНСа нету. И вообще ничего нету кроме стандартного MLP. Автор: Данила Зайцев О чем речь, конкретезируйте плиз. Могу предположить что MLP и MNIST, тогда 77% совсем хреновенько, даже для одной эпохи. Почти 98% можно получить и без свёрток градиентным бустингом, без предобработки дынных. |
|
Речь идет о FANN имплементации NN. И о MNIST данных - всё так Данила. На чём гоняли? Не на джаве случайненько? Михайло. Мы тут наследим в тему? Кстати. Не желаете ли заопенсоурсить ваши труды? Канет ведь в лету. Как у Царегородцева. Сгниёт на старом пне. Вы ведь не обременены никакими подписками или контрактами? А так - как мин реклама и увековечивание в инете при жизни!Я бы мог прикрутить Java интерфейс к вашей DLLке. И не надо мне шить дело и тд. Ну хреново Steffen Nissen сделал хреново. И то народ попользовал. Хотя с другой стороны - нафиг эти сетки нужны? Их ещё правильно прикрутить надо. А тут швах полный - перепостиваю с другой ветки.
|
|
|
| |
|
На: Сверточная нейронная сеть Михайло
Добавлено: 25 дек 18 9:47
Изменено: 25 дек 18 9:56
|
Нее, у меня тут есть, кто может заинтересоваться разработкой распознавания звуков и лиц. Но для этого надо продолжать писать код, гонять датасеты...
При этом у меня больше спортивный интерес, саморазвитие и все такое, чем миллионы. ))
|
|
|
| |
|