Мнения о том, понимаем ли мы причины успешности/обучаемости глубоких нейронных сетей, расходятся. В конечном итоге, всё заканчивается спором о термине "понимаем" -- там широкий диапазон между
( Read more... )
А есть подход, который нормально делит память среди нейронов \ слоёв (так чтобы минимизировать обращения к чужой памяти с каждого процессора)? Ведь вам-то без разницы где узкое место в ALU или MMU.
На современных процессорах они настолько близки, что на простой Core на 1м процессоре можно упереться в DDR-4 если постараться (без использования SSE в вообще SIMD-инструкций).
Ещё один перспективный вариант компресии - http://sites.skoltech.ru/app/data/uploads/sites/34/2015/07/tensorNet_nips2015_arXiv.pdf Матрица полносвязного слоя заменяется на тензорный поезд (авторы tensor train действительно имели в виду поезд), матричные операции заменяются на операции над тензорным разложением, позволяя не только получать низкоранговый результат на выходе, но и все промежуточные вычисления тоже требуют мало памяти (при сопоставимом времени). В результате можем иметь компрессию полносвязного слоя по памяти в 10'000 при незначительном падении качества.
> понимаем ли мы причины успешности/обучаемости глубоких нейронных сетей
Имхо: Работу сверточной сети можно рассмотреть как работу алгоритма monte-carlo tree search, ограниченного рамками топологии сети. Вся теоретика вокруг этого алгоритма применима и к сверточным сетям. (Не путать: Иногда сверточные сети работают в паре с монте-карло, но тут я говорю именно о монте-карло внутри сверточной сети)
Comments 39
На современных процессорах они настолько близки, что на простой Core на 1м процессоре можно упереться в DDR-4 если постараться (без использования SSE в вообще SIMD-инструкций).
Reply
Reply
Reply
Матрица полносвязного слоя заменяется на тензорный поезд (авторы tensor train действительно имели в виду поезд), матричные операции заменяются на операции над тензорным разложением, позволяя не только получать низкоранговый результат на выходе, но и все промежуточные вычисления тоже требуют мало памяти (при сопоставимом времени).
В результате можем иметь компрессию полносвязного слоя по памяти в 10'000 при незначительном падении качества.
Reply
Имхо: Работу сверточной сети можно рассмотреть как работу алгоритма monte-carlo tree search, ограниченного рамками топологии сети. Вся теоретика вокруг этого алгоритма применима и к сверточным сетям.
(Не путать: Иногда сверточные сети работают в паре с монте-карло, но тут я говорю именно о монте-карло внутри сверточной сети)
Reply
Leave a comment