какое максимальное количество нейронов содержат современные сети ии

Тесты специализаций конкурса Лидеры России 2021

Тесты специализаций впервые были использованы на конкурсе Лидеры России в 2019 году. Это были дополнительные треки отбора, идущие параллельно с основным отбором. Участникам разрешалось участвовать в обоих. В новом четвертом сезоне конкурса Лидеры России отбор проводится только по трекам специализаций. В этой статье мы рассмотрим какие тесты специализаций были в конкурсе Лидеры России в 2019 году и какие, как ожидается, будут в 2021.

Лидеры России в 2019 году проводили отбор по 3 дополнительным трекам:

В 2021 году треки специализации Лидеры России включают 8 направлений:

Традиционно наибольшее внимание привлекают направления «Бизнес и промышленность» и «Государственное управление». Мы провели опрос среди подписчиков нашей группы в VK о том, в каких треках они участвуют. В опросе приняло участие 68 человек.

какое максимальное количество нейронов содержат современные сети ии

Почти половина из них идет по треку Бизнес и четверть – по Госуправлению. Конечно, наша выборка очень маленькая, но мы считаем, что распределение участников примерно таким и будет.

Тесты специализаций Лидеры России 2019

Трек Финансы и Технологии

В этом направлении отбора в 2019 году участвовало 15 тыс управленцев, из них было выбрано 198 полуфиналистов и 30 победителей. Тесты трека Финансы и Технологии являлись проверкой знаний о современных компьютерных технологиях и их применении в бизнесе. Вопросы были о:

какое максимальное количество нейронов содержат современные сети ии

Мы всю свою профессиональную жизнь работаем на стыке финансов и IT, но даже для нас большинство вопросов были сложными.

На HRLider.ru мы разработали блок тестов на компьютерную грамотность и безопасность, которые вы сможете найти в разделе Тесты на эрудицию для конкурса Лидеры России. Мы рекомендуем их пройти, если вы участвуете в конкурсе 2021 года по трекам «Бизнес и Промышленность» и «Информационные технологии». Прохождение этих тестов не заполнит пробелы в знаниях, но даст общее представление о специфике тестов этих специализаций.

Трек Наука

В прошлом сезоне на участие в треке Наука подали заявку 22 тыс. участников и лишь 214 человек были допущены до полуфиналов.

какое максимальное количество нейронов содержат современные сети ии

На прохождение тестов специализации Наука давалось 2 суток, он состоял из 40 вопросов, на решение каждого было выделено по 50 секунд. В тестах этого трека были вопросы:

какое максимальное количество нейронов содержат современные сети ии

В 2021 году финалисты трека Наука получат возможность повышения квалификации в ведущих вузах и научных организаций. Победители трека получат наставников из числа членов Совета при Президенте РФ по науке и образованию, руководителей крупнейших вузов и научных организаций, глав корпораций и ведущих российских ученых, а также стажировки и вакансии в профильных министерствах, ведущих вузах, научных организациях и крупных корпорациях.
Кроме того, победителей ждет членство в Координационном совете по делам молодежи в научной и образовательной сферах Совета при Президенте РФ по науке и образованию.

Трек Здравоохранение

Отбор участников по треку Здравоохранение уже проводился в 2019 году и состав тестов уже известен. Тесты этого трека были составлены на основе профильных тестов для профессиональной квалификации работников сферы медицинского обслуживания Огрздрав (Организации здравоохранения). Также большое внимание уделялось нормативным актам, профессиональной этике и отчетности, применяемой в медицинской практике в России.

какое максимальное количество нейронов содержат современные сети ии

Бесплатные примеры таких тестов можно без труда найти на многих сайтах. Они могут включать такие вопросы как:

Для подготовки к профильным тестам трека Здравоохранение мы рекомендуем найти и прочитать тесты Огрздрав – ресурсов с подобными тестами много.

Тесты специализаций Лидеры России 2021

Основные факты о тестах всех треков конкурса Лидеры России 2021:

Конкурс Лидеры россии 2021: итоги первого этапа

Прежде, чем мы обсудим тесты по трекам, пару слов и результатах первого дистанционного этапа отбора Лидеры России 2021-2022. Всего на конкурс в этом году зарегистрировалось около 180 тысяч человек. После тестов на интеллект и теста управленческого потенциала было отобрано 12499 человек, которые допущены к тестам специализаций.

После тестов специализаций будет отобрано 4 тысячи участников, которые будете допущены к очным полуфиналам и финалам. Для участников идущих по трекам «Бизнес и промышленность» и «Госуправление» будут полуфиналы по федеральным округам, все остальные треки — сразу финалы треков. По результатам этих полуфиналов и финалов будет отобрано 300(+-10) суперфиналистов, и далее из них 100(+-5) победителей.

Тесты трека Бизнес и промышленность

О чем будут тесты по треку «Бизнес и промышленность»? По нашим ожиданиям они будут про:

Особое внимание стоит уделить вопросам по отраслям наставников (банки, производство полимеров, атомная промышленность, ж/д, авиа, нефтехимическая, газовая).
про динамику промышленного производства.

В прошлых сезонах вопросы очных этапов были построены на базе реальных кейсов от наставников и компаний- партнеров. Это Сбербанк, Сибур, Росатом и др. Следовательно, в этом году мы анализируем и готовимся по списку компаний наставников этого трека:

Что рекомендуем посмотреть:
интервью с топ менеджерами компаний
Например, Сибур https://www.youtube.com/watch?v=Q7kMUHkR_x0 и Росатом https://www.youtube.com/watch?v=nN-RraYbCKU) Смотрим с актуальностью 2018 года, потому что можно проследить как компания развивается и над какими вызовами работает.

информацию, пресс-релизы, прогнозы рынка, новости на сайте компаний
Например, Банк Дом.РФ https://domrfbank.ru/about/
Раздел Пресс-релизы https://www.boeing.ru/ содержит много материала про отрасль и текущие проблемы.

публикуемую финансовую отчетность за 2020 год из открытых источников. Смотрим раздел Пояснительной информации с описанием финансовых результатов, ищем основные стратегические инициативы, описание проблем, которые привели к текущему финансовому положению.

вспоминаем контакты знакомых в отраслях наставников и просим поделиться информацией о проблемах и трендах в отрасли.

Тесты трека Государственное управление

Какие будут тесты специализаций по треку «Государственное управление»? Мы ожидаем, что частично эти тесты будут повторять тесты конкурса Лидеры России.Политика и касаться следующих тем:

Все эти тесты вы можете найти на нашем сайте в разделе тестов на эрудицию конкурса Лидеры России. Кроме того, рекомендуем пройти следующие БЕСПЛАТНЫЕ курсы:
Обществознание https://www.lektorium.tv/socialscience
и Политология https://www.lektorium.tv/subject/2813

Цель трека «Государственное управление» — выявить наиболее перспективных руководителей новой формации для системы государственного управления России.

какое максимальное количество нейронов содержат современные сети ии

Что касается тестов треков Наука и Здравоохранение то все, что мы знаем, мы описали выше. Мы рекомендуем искать примеры тестов по специализациям Лидеры Росси – они есть в интернете в бесплатном доступе.

Тесты трека Информационные технологии по нашим ожиданиям будут максимально похожи на тесты трека Финансы и технологии прошлого сезона. Это были довольно сложные тесты на специфические знания, которые мы описали выше.

Тесты трека Международное направление и Направление для студентов по словам организаторов будут большей частью касаться общих знаний о России — ее истории, географии, культуры, экономики, конституции и других общеизвестных аспектов. Ко всем этим тестам вы сможете полноценно подготовиться на HRLider в разбеде Тесты на общую эрудицию конкурса Лидеры России.

По трекам Культура у нас пока нет информации. Будем добавлять ее по мере поступления.

Демо-тест треков конкурса Лидеры России

17 июня открылись демонстрационные версии специализированных тестов треков:

🔹 Бизнес и промышленность: предлагается решить 6 заданий. На выполнение отводится ограниченное время. Таймер появится в правом верхнем углу и будет обозначен красным цветом. На работу с демонстрационной версией теста потребуется около 5 минут.

🔹 Государственное управление. Состоит из двух частей: Тест знаний по вопросам государственного управления и Опросник управленческой готовности. В первой предлагается решить 5 заданий. На прохождение отводится ограниченное время: на каждый вопрос — 45 или 60 секунд. Во второй — 5 заданий, которые не ограничены по времени.

🔹Здравоохранение: предлагается решить 5 заданий. На выполнение каждого отводится 45 секунд. Таймер появится в правом верхнем углу и будет обозначен красным цветом.

🔹Наука: предлагается решить 2 задания. Время выполнения каждого ограничено 40 секундами. Таймер появится в правом верхнем углу и будет обозначен красным цветом.

🔹Информационные технологии: предлагается решить 5 заданий. На выполнение заданий отводится ограниченное время. Таймер появится в правом верхнем углу и будет обозначен красным цветом. На работу с демонстрационной версией теста потребуется около 5 минут.

В целом можно сказать, что тесты специализаций конкурса Лидеры России – это тесты на специфические знания, требуемые для успешной работы в данной отрасли. Если вы являетесь состоявшимся профессионалом своего дела, то, скорее всего, вы без проблем пройдете тесты специализаций Лидеры России, но мы рекомендуем готовиться. Готовьтесь вместе с HRLider и побеждайте!

Читайте наши другие статьи о конкурсе Лидеры России:

Источник

Нейронные сети в картинках: от одного нейрона до глубоких архитектур

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

В статье мы пойдём по другому пути. Начнём с самой простой конфигурации — одного нейрона с одним входом и одним выходом, без активации. Далее будем маленькими итерациями усложнять конфигурацию сети и попробуем выжать из каждой из них разумный максимум. Это позволит подёргать сети за ниточки и наработать практическую интуицию в построении архитектур нейросетей, которая на практике оказывается очень ценным активом.

Иллюстративный материал

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

Фреймворк

Для демонстрации конфигураций и результатов предлагаю взять популярный фреймворк Keras, написанный на Python. Хотя вы можете использовать любой другой инструмент для работы с нейросетями — чаще всего различия будут только в наименованиях.

Самая простая нейросеть

Самой простой из возможных конфигураций нейросетей является один нейрон с одним входом и одним выходом без активации (или можно сказать с линейной активацией f(x) = x):

какое максимальное количество нейронов содержат современные сети ии

N.B. Как видите, на вход сети подаются два значения — x и единица. Последняя необходима для того, чтобы ввести смещение b. Во всех популярных фреймворках входная единица уже неявно присутствует и не задаётся пользователем отдельно. Поэтому здесь и далее будем считать, что на вход подаётся одно значение.

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

Как видите, наша простейшая сеть справилась с задачей приближения линейной функции линейной же функцией на ура. Попробуем теперь усложнить задачу, взяв более сложную функцию:

Опять же, результат вполне достойный. Давайте посмотрим на веса нашей модели после обучения:

Первое число — это вес w, второе — смещение b. Чтобы убедиться в этом, давайте нарисуем прямую f(x) = w * x + b:

Усложняем пример

Хорошо, с приближением прямой всё ясно. Но это и классическая линейная регрессия неплохо делала. Как же захватить нейросетью нелинейность аппроксимируемой функции?

Давайте попробуем накидать побольше нейронов, скажем пять штук. Т.к. на выходе ожидается одно значение, придётся добавить ещё один слой к сети, который просто будет суммировать все выходные значения с каждого из пяти нейронов:

какое максимальное количество нейронов содержат современные сети ии

И… ничего не вышло. Всё та же прямая, хотя матрица весов немного разрослась. Всё дело в том, что архитектура нашей сети сводится к линейной комбинации линейных функций:

f(x) = w1′ * (w1 * x + b1) +… + w5′ (w5 * x + b5) + b

Т.е. опять же является линейной функцией. Чтобы сделать поведение нашей сети более интересным, добавим нейронам внутреннего слоя функцию активации ReLU (выпрямитель, f(x) = max(0, x)), которая позволяет сети ломать прямую на сегменты:

Максимальное количество сегментов совпадает с количеством нейронов на внутреннем слое. Добавив больше нейронов можно получить более точное приближение:

Дайте больше точности!

Уже лучше, но огрехи видны на глаз — на изгибах, где исходная функция наименее похожа на прямую линию, приближение отстаёт.

В качестве стратегии оптимизации мы взяли довольно популярный метод — SGD (стохастический градиентный спуск). На практике часто используется его улучшенная версия с инерцией (SGDm, m — momentum). Это позволяет более плавно поворачивать на резких изгибах и приближение становится лучше на глаз:

Усложняем дальше

Синус — довольно удачная функция для оптимизации. Главным образом потому, что у него нет широких плато — т.е. областей, где функция изменяется очень медленно. К тому же сама функция изменяется довольно равномерно. Чтобы проверить нашу конфигурацию на прочность, возьмём функцию посложнее:

Увы и ах, здесь мы уже упираемся в потолок нашей архитектуры.

Дайте больше нелинейности!

Давайте попробуем заменить служивший нам в предыдущих примерах верой и правдой ReLU (выпрямитель) на более нелинейный гиперболический тангенс:

Инициализация весов — это важно!

Приближение стало лучше на сгибах, но часть функции наша сеть не увидела. Давайте попробуем поиграться с ещё одним параметром — начальным распределением весов. Используем популярное на практике значение ‘glorot_normal’ (по имени исследователя Xavier Glorot, в некоторых фреймворках называется XAVIER):

Уже лучше. Но использование ‘he_normal’ (по имени исследователя Kaiming He) даёт ещё более приятный результат:

Как это работает?

Давайте сделаем небольшую паузу и разберёмся, каким образом работает наша текущая конфигурация. Сеть представляет из себя линейную комбинацию гиперболических тангенсов:

f(x) = w1′ * tanh(w1 * x + b1) +… + w5′ * tanh(w5 * x + b5) + b

На иллюстрации хорошо видно, что каждый гиперболический тангенс захватил небольшую зону ответственности и работает над приближением функции в своём небольшом диапазоне. За пределами своей области тангенс сваливается в ноль или единицу и просто даёт смещение по оси ординат.

За границей области обучения

Давайте посмотрим, что происходит за границей области обучения сети, в нашем случае это [-3, 3]:

Как и было понятно из предыдущих примеров, за границами области обучения все гиперболические тангенсы превращаются в константы (строго говоря близкие к нулю или единице значения). Нейронная сеть не способна видеть за пределами области обучения: в зависимости от выбранных активаторов она будет очень грубо оценивать значение оптимизируемой функции. Об этом стоит помнить при конструировании признаков и входных данный для нейросети.

Идём в глубину

До сих пор наша конфигурация не являлась примером глубокой нейронной сети, т.к. в ней был всего один внутренний слой. Добавим ещё один:

Можете сами убедиться, что сеть лучше отработала проблемные участки в центре и около нижней границы по оси абсцисс:

N.B. Слепое добавление слоёв не даёт автоматического улучшения, что называется из коробки. Для большинства практических применений двух внутренних слоёв вполне достаточно, при этом вам не придётся разбираться со спецэффектами слишком глубоких сетей, как например проблема исчезающего градиента. Если вы всё-таки решили идти в глубину, будьте готовы много экспериментировать с обучением сети.

Количество нейронов на внутренних слоях

Просто поставим небольшой эксперимент:

Начиная с определённого момента добавление нейронов на внутренние слои не даёт выигрыша в оптимизации. Неплохое практическое правило — брать среднее между количеством входов и выходов сети.

Источник

Как выглядят глубокие нейронные сети и почему они требуют так много памяти

какое максимальное количество нейронов содержат современные сети ии

Сегодня граф – один из самых приемлемых способов описать модели, созданные в системе машинного обучения. Эти вычислительные графики составлены из вершин-нейронов, соединенных ребрами-синапсами, которые описывают связи между вершинами.

В отличие скалярного центрального или векторного графического процессора, IPU – новый тип процессоров, спроектированный для машинного обучения, позволяет строить такие графы. Компьютер, который предназначен для управления графами – идеальная машина для вычислительных моделей графов, созданных в рамках машинного обучения.

Один из самых простых способов, чтобы описать процесс работы машинного интеллекта – это визуализировать его. Команда разработчиков компании Graphcore создала коллекцию таких изображений, отображаемых на IPU. В основу легло программное обеспечение Poplar, которое визуализирует работу искусственного интеллекта. Исследователи из этой компании также выяснили, почему глубокие сети требуют так много памяти, и какие пути решения проблемы существуют.

Poplar включает в себя графический компилятор, который был создан с нуля для перевода стандартных операций, используемых в рамках машинного обучения в высокооптимизированный код приложений для IPU. Он позволяет собрать эти графы воедино по тому же принципу, как собираются POPNN. Библиотека содержит набор различных типов вершин для обобщенных примитивов.

Графы – это парадигма, на которой основывается все программное обеспечение. В Poplar графы позволяют определить процесс вычисления, где вершины выполняют операции, а ребра описывают связь между ними. Например, если вы хотите сложить вместе два числа, вы можете определить вершину с двумя входами (числа, которые вы хотели бы сложить), некоторые вычисления (функция сложения двух чисел) и выход (результат).

какое максимальное количество нейронов содержат современные сети ии

Обычно операции с вершинами гораздо сложнее, чем в описанном выше примере. Зачастую они определяются небольшими программами, называемыми коделетами (кодовыми именами). Графическая абстракция привлекательна, поскольку не делает предположений о структуре вычислений и разбивает вычисления на компоненты, которые процессор IPU может использовать для работы.

Poplar применяет эту простую абстракцию для построения очень больших графов, которые представлены в виде изображения. Программная генерация графика означает, что мы можем адаптировать его к конкретным вычислениям, необходимым для обеспечения наиболее эффективного использования ресурсов IPU.

Компилятор переводит стандартные операции, используемые в машинных системах обучения, в высокооптимизированный код приложения для IPU. Компилятор графов создает промежуточное изображение вычислительного графа, которое разворачивается на одном или нескольких устройствах IPU. Компилятор может отображать этот вычислительный граф, поэтому приложение, написанное на уровне структуры нейронной сети, отображает изображение вычислительного графа, который выполняется на IPU.

какое максимальное количество нейронов содержат современные сети ии
Граф полного цикла обучения AlexNet в прямом и обратном направлении

Графический компилятор Poplar превратил описание AlexNet в вычислительный граф из 18,7 миллиона вершин и 115,8 миллиона ребер. Четко видимая кластеризация – результат прочной связи между процессами в каждом слое сети с более легкой связью между уровнями.

Другой пример – простая сеть с полной связью, прошедшая обучение на MNIST – простом наборе данных для компьютерного зрения, своего рода «Hello, world» в машинном обучении. Простая сеть для изучения этого набора данных помогает понять графы, которыми управляют приложения Poplar. Интегрируя библиотеки графов с такими средами, как TensorFlow, компания представляет один из простых путей для использования IPU в приложениях машинного обучения.

какое максимальное количество нейронов содержат современные сети ии

После того, как с помощью компилятора построился граф, его нужно выполнить. Это возможно с помощью движка Graph Engine. На примере ResNet-50 демонстрируется его работа.

какое максимальное количество нейронов содержат современные сети ии
Граф ResNet-50

Архитектура ResNet-50 позволяет создавать глубокие сети из повторяющихся разделов. Процессору остается только единожды определить эти разделы и повторно вызывать их. Например, кластер уровня conv4 выполняется шесть раз, но только один раз наносится на граф. Изображение также демонстрирует разнообразие форм сверточных слоев, поскольку каждый из них имеет граф, построенный в соответствии с естественной формой вычисления.

Движок создает и управляет исполнением модели машинного обучения, используя граф, созданный компилятором. После развертывания Graph Engine контролирует и реагирует на IPU или устройства, используемые приложениями.

Изображение ResNet-50 демонстрирует всю модель. На этом уровне сложно выделить связи между отдельными вершинами, поэтому стоит посмотреть на увеличенные изображения. Ниже приведены несколько примеров секций внутри слоев нейросети.

какое максимальное количество нейронов содержат современные сети ии

какое максимальное количество нейронов содержат современные сети ии

какое максимальное количество нейронов содержат современные сети ии

Почему глубоким сетям нужно так много памяти?

Большие объемы занимаемой памяти – одна из самых больших проблем глубинных нейронных сетей. Исследователи пытаются бороться с ограниченной пропускной способностью DRAM-устройств, которые должны быть использованы современными системами для хранения огромного количества весов и активаций в глубинной нейронной сети.

Архитектуры были разработаны с использованием процессорных микросхем, предназначенных для последовательной обработки и оптимизации DRAM для высокоплотной памяти. Интерфейс между двумя этими устройствами является узким местом, которое вводит ограничения пропускной способности и добавляет значительные накладные расходы в потреблении энергии.

Хотя мы еще не имеем полного представления о человеческом мозге и о том, как он работает, в целом понятно, что нет большого отдельного хранилища памяти. Считается, что функция долговременной и кратковременной памяти в человеческом мозге встроена в структуру нейронов+синапсов. Даже простые организмы вроде червей с нейронной структурой мозга, состоящей из чуть более 300 нейронов, обладают в какой-то степени функцией памяти.

Построение памяти в обычных процессорах – это один из способов обойти проблему узких мест памяти, открыв огромную пропускную способность при гораздо меньшем энергопотреблении. Тем не менее, память на кристалле – дорогая штука, которая не рассчитана на действительно большие объемы памяти, которые подключены к центральным и графическим процессорам, в настоящее время используемым для подготовки и развертывания глубинных нейронных сетей.

Поэтому полезно посмотреть на то, как память сегодня используется в центральных процессорах и системах глубокого обучения на графических ускорителях, и спросить себя: почему для них необходимы такие большие устройства хранения памяти, когда головной мозг человека отлично работает без них?

Нейронным сетям нужна память для того, чтобы хранить входные данные, весовые параметры и функции активации, как вход распространяется через сеть. В обучении активация на входе должна сохраняться до тех пор, пока ее нельзя будет использовать, чтобы вычислить погрешности градиентов на выходе.

Например, 50-слойная сеть ResNet имеет около 26 миллионов весовых параметров и вычисляет 16 миллионов активаций в прямом направлении. Если вы используете 32-битное число с плавающей запятой для хранения каждого веса и активации, то для этого потребуется около 168Мб пространства. Используя более низкое значение точности для хранения этих весов и активаций, мы могли бы вдвое или даже вчетверо снизить это требование для хранения.

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

В графических процессорах ширина синапса составляет 1024 бит, так что они используют 32-битные данные с плавающей запятой, поэтому часто разбивают их на параллельно работающие mini-batch из 32 образцов для создания векторов данных по 1024 бит. Этот подход к организации векторного параллелизма увеличивает число активаций в 32 раза и потребность в локальном хранилище емкостью более 2 ГБ.

Графические процессоры и другие машины, предназначенные для матричной алгебры, также подвержены нагрузке на память со стороны весов или активаций нейронной сети. Графические процессоры не могут эффективно выполнять небольшие свертки, используемые в глубоких нейронных сетях. Поэтому преобразование, называемое «понижением», используется для преобразования этих сверток в матрично-матричные умножения (GEMM), с которыми графические ускорители могут эффективно справляться.

Дополнительная память также требуется для хранения входных данных, временных значений и инструкций программы. Измерение использования памяти при обучении ResNet-50 на высокопроизводительном графическом процессоре показало, что ей требуется более 7,5 ГБ локальной DRAM.

Возможно, кто-то решит, что более низкая точность вычислений может сократить необходимый объем памяти, но это не так. При переключении значений данных до половинной точности для весов и активаций вы заполните только половину векторной ширины SIMD, потратив половину имеющихся вычислительных ресурсов. Чтобы компенсировать это, когда вы переключаетесь с полной точности до половины точности на графическом процессоре, тогда придется удвоить размер mini-batch, чтобы вызвать достаточный параллелизм данных для использования всех доступных вычислений. Таким образом, переход на более низкую точность весов и активаций на графическом процессоре все еще требует более 7,5ГБ динамической памяти со свободным доступом.

С таким большим количеством данных, которые нужно хранить, уместить все это в графическом процессоре просто невозможно. На каждом слое сверточной нейронной сети необходимо сохранить состояние внешней DRAM, загрузить следующий слой сети и затем загрузить данные в систему. В результате, уже ограниченный пропускной способностью задержкой памяти интерфейс внешней памяти страдает от дополнительного бремени постоянной перезагрузки весов, а также сохранения и извлечения функций активации. Это значительно замедляет время обучения и значительно увеличивает потребление энергии.

Существует несколько путей решения этой проблемы. Во-первых, такие операции, как функции активации, могут выполняться “на местах”, позволяя перезаписывать входные данные непосредственно на выходе. Таким образом, существующую память можно будет использовать повторно. Во-вторых, возможность для повторного использования памяти можно получить, проанализировав зависимость данных между операциями в сети и распределением той же памяти для операций, которые не используют ее в этот момент.

Второй подход особенно эффективен, когда вся нейронная сеть может быть проанализированна на этапе компиляции, чтобы создать фиксированную выделенную память, так как издержки на управление памятью сокращаются почти до нуля. Выяснилось, что комбинация этих методов позволяет сократить использование памяти нейронной сетью в два-три раза.
Третий значительный подход был недавно обнаружен командой Baidu Deep Speech. Они применили различные методы экономии памяти, чтобы получить 16-кратное сокращение потребления памяти функциями активации, что позволило им обучать сети со 100 слоями. Ранее при том же объеме памяти они могли обучать сети с девятью слоями.

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

Нейронные сети и модели знаний в других методах машинного обучения можно рассматривать как математические графы. В этих графах сосредоточено огромное количество параллелизма. Параллельный процессор, предназначенный для использования параллелизма в графах, не полагается на mini-batch и может значительно уменьшить объем требуемого локального хранилища.

Современные результаты исследований показали, что все эти методы могут значительно улучшить производительность нейронных сетей. Современные графические и центральные процессоры имеют очень ограниченную встроенную память, всего несколько мегабайт в совокупности. Новые архитектуры процессоров, специально разработанные для машинного обучения, обеспечивают баланс между памятью и вычислениями на чипе, обеспечивая существенное повышение производительности и эффективности по сравнению с современными центральными процессорами и графическими ускорителями.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *