Как сократить время обучения нейронной сети вдвое с минимальными усилиями
Квантование с первого взгляда
Существует много подходов для снижения накладных расходов на обучение нейронной сети, но одним из наиболее многообещающих методов является низкоточное/квантованное обучение. Подход прост — просто уменьшите количество битов, используемых для представления активаций и градиентов в сети во время обучения. Затем эти низкоточные представления, как показано на рисунке выше, ускоряют общие операции в прямом и обратном проходе сети, что приводит к улучшению времени обучения и энергоэффективности.
Хотя идея низкоточного обучения проста, эффективно реализовать эту идею сложнее из-за нескольких проблем, с которыми можно столкнуться:
- Чувствительность представлений градиента к более низкой точности
- Численная нестабильность в модулях пакетной нормализации
- Установка слишком низкого уровня точности для достижения хорошей производительности
Несмотря на эти проблемы, недавние исследования показали, что обучение нейронной сети удивительно устойчиво к использованию низкоточной активации и представлений градиента, что позволяет получить значительную экономию средств на самом базовом битовом уровне обучения нейронной сети. Однако, помимо простого использования представлений с низкой точностью, существующие подходы также исследуют динамическую адаптацию к точности сети во время обучения (например, циклическую точность или точность, зависящую от ввода), что приводит к еще большему повышению эффективности обучения.
В этом обзоре я расскажу о существующих подходах к квантовому обучению, их контексте и о том, как правильно решать проблемы, подобные упомянутым выше, которые могут возникнуть. Рассматривая эти темы, я попытаюсь выделить аспекты квантованного обучения, наиболее полезные для практиков, и показать, как можно использовать такие методы для значительного сокращения времени обучения нейронной сети с минимальными усилиями.
Исходная информация
Здесь я предоставлю всю справочную информацию, необходимую для полного понимания квантового обучения нейронных сетей. Во-первых, я кратко опишу различные представления с плавающей запятой, которые можно использовать при квантованном обучении. Затем я объясню общий подход к квантованию в нейронных сетях, который можно модифицировать для формирования различных вариантов квантованного обучения с различными свойствами.
Представления с плавающей запятой
Хотя полный обзор представлений с плавающей запятой выходит за рамки этого обзора, базовое понимание того, как числа представлены в компьютере, важно для понимания методов обучения с низкой точностью. Многочисленные углубленные обсуждения этой темы можно найти в Интернете.
Чтобы понять квантованное обучение, мы должны сначала понять, как числа с плавающей запятой представлены в пакетах глубокого обучения, таких как PyTorch, поскольку это представление будет использоваться для обучения нейронной сети. Такие пакеты используют 32-битные представления с плавающей запятой, как показано на рисунке ниже.
Поскольку компьютерные представления являются двоичными, они представляют собой приближение фактического числа с полной точностью с некоторой (надеюсь, небольшой) ошибкой. Такая ошибка контролируется точностью представления, где увеличение (уменьшение) количества битов в представлении обеспечивает более (менее) точное приближение. Например, числа с плавающей запятой также могут быть представлены 64-битными или 16-битными (т. е. «двойными» или «половинными» представлениями) для обеспечения различных уровней точности.
Проще говоря, изменение точности представления с плавающей запятой аналогично разрешению использования большего или меньшего количества десятичных знаков при представлении числа. Например, пытаясь представить число пи, можно утверждать, что пи равно 3,14, хотя 3,14159265 является более точным представлением.
Преимущество низкой точности
Учитывая, что числа с плавающей запятой могут быть представлены с разным уровнем точности, можно задаться вопросом, почему представления с более низкой точностью полезны. Разве мы не хотели бы всегда использовать наиболее точное представление? Ну, это зависит от того, какая у нас цель…
Рассмотрим, например, приложение для научных вычислений. Часто в таких сценариях точность имеет решающее значение — небольшие ошибки в численной точности могут существенно повлиять на результаты. Таким образом, числа должны быть представлены с максимально возможным уровнем точности в этих случаях (например, 64-битные двойные представления).
В приложениях для нейронных сетей можно использовать менее точные представления (например, 16-битные [9]) без заметного ухудшения производительности. Кроме того, общие операции обучения нейронной сети (например, векторное/матричное умножение и сложение) выполняются намного быстрее при менее точном вводе, что обеспечивает значительные преимущества в эффективности. Эта основная идея является сутью квантового обучения — в идеале мы хотим найти такие способы снижения точности, чтобы:
- Ухудшения производительности сети не наблюдается
- Снижаются затраты на обучение (например, время, энергия, вычисления, задержка)
Методы повышения эффективности нейронной сети
Хотя низкоточное обучение является популярным методом улучшения обучения нейронных сетей и энергоэффективности, существует множество альтернативных методологий. Например, было предложено множество подходов для уменьшения размера нейронной сети путем обрезки (заинтересованные читатели могут ознакомиться с моим предыдущим обзором этой темы), разделения веса, аппроксимации низкого ранга или даже квантования веса [10, 11, 12] .
Хотя такие подходы способны значительно сократить количество параметров в нейронной сети, многие ранние работы по повышению эффективности нейронной сети были сосредоточены на оценке / выводе сети, что имеет ограниченное влияние, учитывая, что итерации обучения требуют примерно в три раза больше вычислений по сравнению с оценкой сети. /inference (т. е. за счет вычисления градиента в дополнение к прямому проходу). Однако более поздние работы стали сосредотачиваться на квантовании сетевых параметров и промежуточных активациях на этапе обучения, что привело к более значительной экономии затрат и энергии [9, 13].
Глобальный взгляд на квантование
На этом этапе мы должны понимать, что квантованное обучение использует низкоточные представления с плавающей запятой, чтобы уменьшить накладные расходы на обучение. Однако не сразу понятно, где/как такое квантование применяется в нейронной сети. Чтобы сделать это более понятным, я схематически проиллюстрировал компоненты прямого и обратного прохода для одного слоя нейронной сети на рисунке выше. Тем, кто не знаком с обратным распространением, рекомендую дополнить эту иллюстрацию одним из многочисленных качественных описаний в сети.
Как видно, есть два основных компонента прямого/обратного прохода, к которым можно применить квантование — активация и градиент. А именно, активация может быть сохранена с использованием представления с низкой точностью, чтобы сделать прямой проход менее затратным, в то время как градиент слоя может быть квантован, чтобы сделать вычисление весового градиента и распространение градиента на предшествующий слой менее дорогостоящим. Как видно, обратный проход требует двух отдельных операций на каждом уровне — в два раза больше вычислений по сравнению с прямым проходом — что показывает, почему выполнение квантования во время обучения (в отличие от логического вывода, которое выполняет только прямое распространение) так выгодно.
Следует отметить, что при прямом и обратном проходе могут применяться разные уровни квантования (например, 4-битный прямой проход и 6-битный обратный проход). Уровень квантования при обратном проходе обычно менее агрессивен по сравнению с прямым проходом, поскольку градиенты обычно более чувствительны к квантованию.
Статические и динамические схемы квантования
Подходы к квантовому обучению нейронных сетей можно условно разделить на две категории — статические и динамические схемы. В ранних работах по квантованию применялся статический подход, при котором один и тот же объем квантования выполнялся на протяжении всего процесса обучения — для сетевых градиентов и активаций использовалось фиксированное количество битов, которое не менялось во время обучения. Такие подходы довольно популярны благодаря поддержке современных инструментов глубокого обучения смешанной точности, таких как Apex, которые могут легко ускорить обучение сети с минимальными изменениями кода.
Несмотря на популярность статических подходов, в более поздних работах изучалось динамическое обучение с низкой точностью, которое меняет точность сети в зависимости от траектории обучения (т. е. точность, используемая для активаций/градиентов, изменяется по мере обучения). Эти методы обычно применяются поверх схемы статического квантования, так что уровень точности динамически изменяется между нижней и верхней границей точности. Эта верхняя граница соответствует точности, используемой статическим методом [2, 3]. Таким образом, экономия средств достигается за счет снижения точности за пределы статического уровня на определенных этапах обучения сети.
Публикации
Теперь, когда у нас есть общее представление о квантованном обучении и соответствующем опыте, я рассмотрю несколько полезных статей по этой теме. Я начну с высокопроизводительного метода статического квантования, который значительно снизил точность, с которой можно эффективно обучать нейронные сети. Затем я расскажу о двух недавно предложенных методах динамического квантования. Первый предлагает уникальный подход, который (i) динамически адаптирует квантование по траектории обучения и (ii) обучает дополнительную нейронную сеть адаптации точности в зависимости от ввода. Другой эмпирически анализирует различные циклические динамические схемы для адаптации точности нейронной сети во время обучения и дает многочисленные практические идеи о квантованном обучении.
Масштабируемые методы для 8-битного обучения нейронных сетей [1]
Основная идея.Предыдущая работа, в которой предпринимались попытки квантования во время обучения за пределами 16-битной точности, приводила к значительному снижению производительности сети. В рамках этой работы авторы исследуют модификации процедуры квантования и общей сетевой архитектуры, которые позволяют осуществлять 8-битное квантование сетевых градиентов, активаций и весов. Удивительно, но они пришли к статической низкоточной процедуре обучения, называемой SBM, которая достигает этой цели, доказывая, что обучение нейронной сети более устойчиво к квантованию, чем считалось ранее.
Производная процедура обучения выполняет все операции, за исключением обновления параметров и вычисления весовых градиентов, с использованием 8-битной точности. Чтобы обеспечить обучение с такой низкой точностью, необходимо решить наиболее чувствительные компоненты обучения нейронной сети — пакетную нормализацию и обратное распространение. В частности, авторы снижают чувствительность таких компонентов к квантованию за счет:
- Разработка удобного для квантования варианта пакетной нормализации под названием Range Batch Normalization, менее подверженного численной нестабильности.
- Использование Бифуркации градиента для сохранения двух копий сетевых градиентов на каждом уровне, чтобы весовые градиенты, чувствительные к использованию более низкой точности, можно было вычислить с более высокой 16-битной точностью.
Показано, что вместе такие модификации позволяют исследовать значительно более низкие точности в рамках квантованного обучения, обеспечивая значительную экономию затрат на обучение нейронной сети, задержки и использования энергии.
Методология. Как упоминалось выше, авторы определяют, что при выполнении низкоточного обучения операции пакетной нормализации и обратного распространения являются наиболее проблемными компонентами процесса и архитектуры обучения нейронной сети. Чтобы понять причину этого, мы должны рассмотреть каждый из этих компонентов в отдельности.
Пакетная нормализация — сформулирована выше, более подробное описание см. здесь — преобразует каждый компонент в пределах некоторого ввода с помощью:
- Вычитание среднего значения компонентов
- Деление на стандартное отклонение компонентов
Для вычисления этого стандартного отклонения требуется сумма квадратов, что может привести к численной нестабильности и арифметическим переполнениям при работе с большими значениями с более низкой точностью. Чтобы избежать такой нестабильности, авторы предлагают нормализацию пакета диапазона, показанную на рисунке выше, которая вместо этого нормализуется по диапазону входного распределения (масштабированному константой, зависящей от размера). Эта величина более устойчива к квантованию — из-за того, что не включает суммы больших чисел, которые вызывают числовую нестабильность, — и доказуемо аппроксимирует стандартное отклонение при допущении о гауссовских данных (подробнее см. Раздел 3 в [1]).
Процесс обратного распространения, выполняемый на одном сетевом уровне, изображен в разделе справочной информации. Как видно, на каждом слое выполняются две операции:
- Вычисление градиента предыдущего слоя
- Вычисление градиента веса
Первый шаг этой процедуры повторяется последовательно для каждого уровня в сети, что делает его узким местом для завершения обратного распространения. Таким образом, эту процедуру необходимо ускорить (т. е. использовать операции с меньшей точностью) для повышения эффективности. Напротив, весовые градиенты вычисляются отдельно для каждого слоя и не имеют последовательной зависимости, а это означает, что этот шаг может выполняться с большей точностью (и параллельно) без ухудшения производительности сети.
Имея это в виду, авторы вводят процедуру бифуркации градиента, которая поддерживает отдельные копии градиента слоя как в 8, так и в 16 битах. Затем можно вычислить градиенты слоев, используя представление с более низкой точностью, чтобы ускорить последовательные вычисления, а градиенты веса можно вычислить отдельно с более высокой точностью. Этот более информированный подход к квантованному обратному распространению, изображенный на рисунке ниже, имеет решающее значение для обеспечения обучения с более низкой точностью.
Выводы.
- Стандартную пакетную нормализацию можно заменить пакетной нормализацией диапазона без заметных различий в производительности даже в крупномасштабных экспериментах на ImageNet.
- Показано, что нормализация партии диапазона поддерживает более высокие уровни производительности по сравнению с нормализацией партии ванили, когда принимается более низкая точность.
- Сочетание пакетной нормализации диапазона с предложенным подходом для квантованного обратного распространения позволяет проводить обучение с удивительно низкой точностью без ухудшения производительности сети.
FracTrain: частичное сжатие битов, экономия как во времени, так и в пространстве для эффективного обучения DNN [2]
Основная идея.В предыдущих работах по квантовому обучению обычно применялся статический подход, который использует фиксированную точность на протяжении всего процесса обучения [1, 4, 5]. Выходя за рамки статических методов, FracTrain исследует динамическую адаптацию точности во время тренировки. В частности, предлагаемый подход адаптирует точность по двум направлениям:
- Временно, применяя разные уровни точности на разных этапах тренировочного процесса.
- Пространственно, научившись адаптировать уровень точности, используемый в каждом слое/блоке сети, в зависимости от свойств входных данных.
Такие временные и пространственные стратегии для динамической адаптации точности называются прогрессивным дробным квантованием (PFQ) и динамическим дробным квантованием (DFQ) соответственно. Чтобы свести к минимуму затраты на обучение, эти стратегии применяются в тандеме, формируя политику FracTrain.
На практике FracTrain применяется поверх схем статического квантования, что означает, что самый высокий уровень точности, используемый во время обучения, соответствует базовому уровню статической точности. Таким образом, используя FracTrain, можно резко сократить затраты на обучение, энергию и задержки, возникающие во время обучения. Кроме того, результирующие модели работают сравнимо с моделями, полученными с помощью базовых показателей статической точности — заметного влияния на производительность сети не наблюдается.
Методология.Как указано выше, методология FracTrain состоит из двух компонентов — PFQ и DFQ, которые применяются в тандеме на протяжении всего процесса обучения. Эти методы применяются поверх статической методологии обучения с низкой точностью. Таким образом, самая высокая точность, используемая во время обучения, соответствует этой статической базовой линии, а FracTrain дополнительно снижает точность за пределами этой точки.
Идея PFQ проста — использовать более низкую точность на ранних этапах обучения и постепенно повышать точность по мере продвижения обучения. Такой подход основан на том факте, что функции, изученные на ранней стадии обучения сети, устойчивы к шуму (например, от квантования) и более высокой скорости обучения [6, 7, 8]. Чтобы применить PFQ на практике, необходимо выбрать низкую начальную точность (например, 4-битную прямую и 6-битную обратную точность). Затем эта точность увеличивается, когда потери в сети не улучшаются в течение нескольких эпох, в конечном итоге достигая точности статической базовой линии во время более поздней части обучения.
К сожалению, DFQ не так прост, как PFQ. Чтобы изменить точность в зависимости от ввода во всей сети, авторы используют отдельную обученную рекуррентную нейронную сеть для каждого слоя/блока, которая:
- Принимает тот же вход, что и сама сеть
- Предсказывает правильный уровень точности, который будет использоваться
Эта дополнительная сеть, изображенная на рисунке выше, может быть облегчена и обучена путем включения члена регуляризации в целевую функцию сети, которая отражает стоимость обучения, позволяя достичь компромисса между производительностью сети и эффективностью обучения.
Выводы.
- При совместном применении PFQ и DFQ (или FracTrain) обеспечивают значительное снижение стоимости обучения сети, энергопотребления и задержки по сравнению со статическими, низкоточными методологиями обучения, сохраняя при этом одинаковые уровни производительности. Такие результаты получаются в крупномасштабных экспериментах с современными свёрточными нейронными сетями (например, различные ResNets и MobileNetV2) и архитектурами-трансформерами.
- Установлено, что при применении по отдельности как PFQ, так и DFQ повышают эффективность обучения по сравнению со статическим обучением с низкой точностью. Интересно, что DFQ оказался особенно эффективным при очень низких уровнях точности, где он поддерживает впечатляющие уровни точности, несмотря на значительное ухудшение производительности методологий статического базового уровня.
CPT: эффективное обучение глубокой нейронной сети с помощью циклической точности [3]
Основная идея. Стратегия циклического точного обучения (CPT), предложенная в [3], в чем-то похожа на FracTrain, дополнительно исследует возможности временного квантования в процессе обучения. В частности, используется циклический график для изменения точности сети между минимальным и максимальным значением на протяжении всего процесса обучения. Интересно, что авторы обнаружили, что циклическое изменение точности в процессе обучения может привести к значительной экономии вычислительных ресурсов по сравнению с процедурами статического квантования и даже во многих случаях улучшить обобщение сети.
Чтобы мотивировать использование графиков циклической точности, авторы проводят сравнение между точностью сети и скоростью обучения. А именно, использование более низкой точности во время обучения создает шум, который помогает сети «исследовать» ландшафт потерь, аналогично использованию большого значения скорости обучения. Напротив, более высокие уровни точности позволяют модели сходиться к окончательному решению, аналогично использованию низкой скорости обучения.
Авторы обнаруживают, что эта связь между скоростью обучения и точностью эмпирически достоверна, демонстрируя, что изменение этих двух гиперпараметров оказывает одинаковое влияние на обучение нейронной сети. Методология CPT основана на этой аналогии, поскольку она циклически изменяет точность в соответствии с косинусным графиком — тем же графиком гиперпараметров, который часто используется для установки скорости обучения на практике. Фактически, использование таких циклических графиков для скорости обучения настолько распространено, что оно специально реализовано в PyTorch.
Методология.Методология CPT довольно проста. Во-первых, нужно выбрать минимальную и максимальную точность для использования во время обучения. Затем уровень точности изменяется между этим минимальным и максимальным уровнем в соответствии с циклическим косинусным графиком на протяжении всего процесса обучения, как показано на рисунке выше. Подобно FracTrain, такая процедура применяется поверх статической методологии обучения с низкой точностью, что означает, что самый высокий уровень точности, используемый в циклическом графике, соответствует базовому уровню статической точности.
Хотя максимальная точность, используемая во время обучения, может быть взята из любой статической базовой методологии с низкой точностью, необходимо также определить нижнюю границу точности, используемую CPT. Чтобы сделать это эмпирически, авторы предлагают простой Тест диапазона точности, который работает следующим образом:
- Начиная с минимально возможной точности (например, 2 бита)
Постепенно повышая точность и контролируя точность обучения
- Установка нижней границы точности в качестве первой точности, которая позволяет повысить точность обучения сверх предварительно установленного порога.
Этот тест дальности точности может быть выполнен в первом цикле CPT — его не нужно выполнять отдельно от самого процесса обучения сети. Затем в будущих циклах просто используется нижняя граница точности, определенная на основе проверки диапазона, выполненной в первом цикле. При выполнении теста диапазона точности теряется всего несколько итераций обучения, что делает его недорогой и эффективной методологией для определения идеального диапазона точности для использования в CPT.
Выводы.
- Установлено, что уровни точности влияют на процесс обучения нейронной сети так же, как и скорость обучения. Использование низкой точности является псевдозаменой высокой скорости обучения и наоборот, что мотивирует использование циклических графиков для точности, которые имитируют те, которые используются для скорости обучения.
- Обнаружено, что использование динамических графиков для повышения точности во время обучения помогает в обобщении сети. Сети, обученные с использованием CPT, как правило, обобщают лучше, чем сети, обученные со статическими базовыми линиями с низкой точностью.
- CPT значительно снижает вычислительные затраты, потребление энергии и задержку обучения нейронной сети по сравнению со статическими базовыми уровнями точности, при этом обеспечивая соответствие или улучшение их производительности даже в крупномасштабных экспериментах.
- Более компактные сети (например, MobileNetV2 по сравнению с ResNet) оказались менее устойчивыми к более низким уровням квантования, а это означает, что нижний предел точности, используемый в CPT, должен быть немного повышен.
Что мы можем использовать на практике?
Несмотря на впечатляющие результаты, достигнутые с помощью схем динамического квантования, такие подходы не могут быть использованы на практике на современном оборудовании. В частности, текущие графические процессоры NVIDIA поддерживают только обучение смешанной точности с половинной точностью (например, 16-битный формат). Тем не менее, это снижение точности все еще может привести к ускорению до 3 раз с точки зрения времени обучения модели для многих распространенных рабочих процессов глубокого обучения. Кроме того, современные языки/пакеты программного обеспечения (например, PyTorch, TensorFlow, Julia и т. д.) начинают создавать поддержку произвольной арифметики с низкой точностью благодаря преимуществам, продемонстрированным исследованиями в области квантового обучения.
Хотя более сложные методы квантования не поддерживаются современным оборудованием, использование половинной точности очень полезно для специалистов по глубокому обучению, поскольку оно может значительно сократить время обучения модели без заметного снижения производительности. Кроме того, обучение с половинной точностью абстрагируется такими инструментами, как Apex, что позволяет практикующим специалистам значительно сократить время обучения без существенных изменений в реализации. Смотрите здесь для примера.
Учитывая, что многие подходы к квантованию, описанные в этом обзоре, еще не поддерживаются современным оборудованием, можно задаться вопросом, откуда мы знаем, что такие методы на самом деле приносят пользу эффективности обучения. Существует множество показателей и подходов для количественной оценки этого преимущества, например:
- Вычисление эффективного количества FLOPS, использованного во время обучения, как описано в [4] (также называемом MAC [2] или GBitOPs [3]).
- Внедрение низкоточного обучения на FPGA и измерение фактических показателей производительности (например, энергопотребление, задержка и т. д.)
- Использование симулятора для измерения показателей производительности (например, BitFusion [14])
Используя эти методы, существующая работа по квантовому обучению может доказать, что предлагаемые подходы обеспечивают значительное преимущество в эффективности обучения, несмотря на ограниченную поддержку в текущем оборудовании.
Выводы
Основные выводы из этого обзора можно сформулировать следующим образом:
- Обучение нейронной сети устойчиво к использованию низкоточных представлений для сетевых активаций и градиентов.
- Использование низкой точности во время обучения может привести к значительному сокращению времени обучения, энергоэффективности и вычислительных затрат.
Такие выводы носят весьма фундаментальный характер. Кроме того, даже более сложные подходы к управлению точностью нейронной сети просто берут эти фундаментальные выводы и расширяют их для создания более умных/сложных методологий, еще более снижающих точность. Таким образом, квантовое обучение представляет собой простой для понимания подход с невероятным потенциалом и широким практическим воздействием.
При изучении обучения с низкой точностью возникло несколько фундаментальных концепций глубокого обучения:
- Прямое/обратное распространение (и где может происходить квантование)
- Пакетная нормализация (и ее чувствительность к численной нестабильности)
- Расписания гиперпараметров (например, циклическая скорость обучения/точность)
- Чувствительность градиентов к шуму (например, из-за более низкой точности)
Каждая из этих концепций часто встречается в литературе по глубокому обучению, и их важно понять любому специалисту по глубокому обучению, который хочет получить более развернутую точку зрения. Большинство этих идей легко понять. Тем не менее, тем, кто хочет узнать больше о деталях сложности квантования градиентов, я рекомендую прочитать разделы с 4 по 6.1 в [1].
Заключение
Большое спасибо за чтение этой статьи — я очень ценю вашу поддержку и интерес к моему контенту. Если вам понравилось, подпишитесь на мою рассылку Deep (Learning) Focus, где я каждые две недели контекстуализирую, объясняю и исследую одну актуальную тему в исследованиях глубокого обучения. Не стесняйтесь следовать за мной на среднем или исследовать остальную часть моего веб-сайта, на котором есть ссылки на мои социальные сети и другой контент. Если у вас есть какие-либо рекомендации / отзывы, свяжитесь со мной напрямую или оставьте комментарий к этому сообщению!
Библиография
[1] Баннер, Рон и др. «Масштабируемые методы для 8-битного обучения нейронных сетей». Достижения в области нейронных систем обработки информации 31 (2018 г.).
[2] Фу, Юнган и др. «Fractrain: частичное сжатие битов как во времени, так и в пространстве для эффективного обучения dnn». Достижения в системах обработки нейронной информации 33 (2020): 12127–12139.
[3] Фу, Юнган и др. «CPT: эффективное обучение глубокой нейронной сети с помощью циклической точности». препринт arXiv arXiv:2101.09868 (2021 г.).
[4] Чжоу, Шучан и др. «Dorefa-net: обучение сверточных нейронных сетей с низкой разрядностью с низкими градиентами разрядности». препринт arXiv arXiv:1606.06160 (2016 г.).
[5] Ян, Юкуань и др. «Обучение высокопроизводительных и крупномасштабных глубоких нейронных сетей с использованием полных 8-битных целых чисел». Нейронные сети 125 (2020): 70–82.
[6] Рахаман, Назим и др. «О спектральном смещении нейронных сетей». Международная конференция по машинному обучению. ПМЛР, 2019.
[7] Акилле, Алессандро, Маттео Ровере и Стефано Соатто. «Критические периоды обучения в глубоких сетях». Международная конференция по обучающим представлениям. 2018.
[8] Ли, Юаньчжи, Колин Вэй и Тэньюй Ма. «К объяснению эффекта регуляризации начальной высокой скорости обучения при обучении нейронных сетей». Достижения в области нейронных систем обработки информации 32 (2019).
[9] Дас, Дипанкар и др. «Обучение сверточных нейронных сетей смешанной точности с использованием целочисленных операций». препринт arXiv arXiv:1802.00930 (2018 г.).
[10] Чен, Венлинь и др. «Сжатие нейронных сетей с помощью трюка с хешированием». Международная конференция по машинному обучению. ПМЛР, 2015.
[11] Джадерберг, Макс, Андреа Ведальди и Эндрю Зиссерман. «Ускорение сверточных нейронных сетей с расширением низкого ранга». препринт arXiv arXiv:1405.3866 (2014 г.).
[12] Ульрих, Карен, Эдвард Мидс и Макс Веллинг. «Мягкое распределение веса для сжатия нейронной сети». препринт arXiv arXiv:1702.04008 (2017 г.).
[13] Гупта, Суйог и др. «Глубокое обучение с ограниченной числовой точностью». Международная конференция по машинному обучению. ПМЛР, 2015.
[14] Шарма, Хардик и др. «Слияние битов: динамически компонуемая архитектура на уровне битов для ускорения глубокой нейронной сети». 45-й ежегодный международный симпозиум по компьютерной архитектуре (ISCA) ACM/IEEE 2018. ИИЭР, 2018.