Совершенно новый проект в лаборатории «Chimie de la Matiere Condensee» (LCMCP) находящейся в Париже, направлен на создание высокопроизводительных научных вычислений, находя новые способы выжать максимальную производительность из оборудования потребительского класса «Геймер». Данная идея эквивалентна $ 400.000, а пользовательские установки имеющие высокую вычислительную производительность обошлись в $ 40.000, сообщает «Word-IT».
Кластер, известный как «HPU4Science» уже запущен и работает, а команда взялась за решение трудных научных проблем путём разработки новых вычислительных методов, которые используют «HPUS-гибридные» процессоры и «GPU». Текущий кластер имеет группу из шести настольных компьютеров на базе «Intel i7» и «Core 2 Quad» процессоров, а также имеет графические процессоры, которые варьируются от моделей «GTX 280» до «GTX 590».
В двух предыдущих статьях, мы уделяли внимание аппаратному и программному обеспечению используемому в кластере. В данном обзоре «HPU4Science» мы обсудим конкретные приложения, работающие на кластере «HPU4Science», скорость выполнения, оптимизацию методов с использованием «Python» и «Cython» и алгоритмом нейронной сети, используемой в системе.
Электронный парамагнитный резонанс изображения
Чтобы понять, алгоритмы, используемые в кластере «HPU4SCience», мы сначала должны понять его основное применение. «LCMCP» в электронном парамагнитном резонансе (ЭПР) имеет неразрушающий метод, который предоставляет информацию об организации электронов в материале. ЭПР использует переменное магнитное поле для исследования электронной структуры материалов и получает информацию о местной окружающей среде носителей заряда (электронов и дырок). Благодаря ему мы можем увидеть внутреннюю структуру материала и некоторых типов структурных дефектов. На «LCMCP», ЭПР изображения в основном используются для изучения углеродистого вещества в метеоритах и наземных образцах горных пород с целью изучения происхождения жизни на Земле.
Получение ЭПР изображения требует несколько этапов обработки. Во-первых, спектры ЭПР принимаются с нескольких различных углах и позиций через образец, а уже потом исследователи ищут определённый тип электронных дефектов. Данные, полученные на этом этапе представляют собой сочетание плотности электронного дефекта вдоль каждого измерения направления и известного фонового сигнала (математически, слияние двух сигналов называется свёртка).
Из-за сложностей ЭПР, фоновый сигнал не может быть просто вычитаем из спектра, он должен выполнять операцию путём обращения интегрального уравнения (другими словами, математический комплекс). Как правило, учёные используют так называемый метод Фурье для выполнения таких типов инверсий, но эти методы требуют тяжёлых ручных настроек, которые делают результаты весьма субъективными. Кластер «HPU4Science» использует машинное обучение через нейронные сетевые алгоритмы для выполнения более систематических, но менее субъективных деконволюций. Другими словами, компьютеры помогают принимать человеку решение на высшем уровне. (Вы еще с нами? Отлично, идём дальше.)
После деконволюции, данные представляют собой набор одномерных распределений плотности, которые описывают конкретные электронные дефекты в материале. Для получения реальных изображений, точки данных объединяются в двух или трёхмерные карты посредством процесса, называемого обратным проецированием, основанным на преобразовании деталей радона, которые мы затронем в следующей статье.
Итог: «HPU4Science» кластер предназначен для работы при наборе данных и математических операций задействованных в два этапа ЭПР изображений: деконволюции и обратного проецирования. Данный кластер использует нейронные сети и алгоритмы распараллеливания. Вот примерная работа кластера.
Деконволюции и нейронные сетевые алгоритмы
Как отмечалось выше, не существует простого, аналитического способа выполнения операций двух сигналов, используемых в ЭПР изображениях. Есть много различных методов решения, но все они требуют ручную регулировку параметров, которые влияют на результат, что приводит к весьма субъективным результатам. Учёные, таким образом сталкивается с серьёзной проблемой: как мы выберем параметры без простого регулирования параметров для достижения результатов, которые мы бы хотели увидеть?
Для решения проблемы деконволюции, нам нужно решение, которое поможет принимать во внимание специфику образцов (метеоритов, земных пород, стекла и др.), основы физики ЭПР и свёртки сигналов, а также конкретные примеры с известными решениями. Важно отметить, что проблемы должны решаться таким образом, который не зависит от субъективного анализа исследователя.
Чтобы справиться со всеми этими различными правилами, команда «HPU4Science» выбрала нейронные сети / машинное обучение модели, поскольку она может поддерживать большой набор правил для текущей проблемы и делать сложные вычисления после обучения (изменения соединения соответствующих параметров на примере нашего набора данных). Нейронные сети концептуально близки к тому, что мы находим в живых организмах и их структурах по образцу биологических систем.
Искусственные нейронные сети
Искусственные нейронные сети (ИНС), основаны на нашем понимании биологического мозга. В реальных организмах, это нейроны клеток, которые выступают в качестве основной единицы обработки мозгом. Они образуют тесно взаимосвязанные сетки и общаются через переходы, которые называются «синапсы». Один нейрон получает сигналы (вход) от множества других нейронов и он впоследствии он решит генерировать или нет электрический импульс (выход) на основе поступающих сигналов. Входящие сигналы могут увеличить или уменьшить вероятность того, что каждый вход будет одинаковым.
В общем, обучение происходит тогда, когда отдельные нейроны реагируют на внешние раздражители путём изменения относительного веса, отнесённых к присвоенным к ним входам. Таким образом, полномочия по принятию решений головного мозга в значительной степени охватывает связь между различными нейронами и возможностью настройки нейронов на ответ раздражителей.
С вычислительной точки, мы можем имитировать этот вид процесса с помощью линейной алгебры. Информация поступает в систему в качестве вектора (один столбец чисел), где каждый элемент этого вектора «нейрон». Соединения между нейронами (синапсы) представлены матрицей и называется матрицей преобразования, которая изменяет элементы исходного вектора. Также имеется вес различных соединений отдельных элементов матрицы. Когда нейронная сеть обрабатывает данные, она просто берёт наибольшую матрицу и умножает её с входным вектором. Ключом всей проблеме является выяснение того, какие элементы матрицы должны быть преобразованы.
Существуют три вида синапсов в нейронной системе сети. Входные синапсы принимают исходные данные и изменяют их, таким образом это может быть вычислено по системе. Они являются биологически аналогичны клеткам в сетчатке или ушной перепонки, которые переводят физические стимулы в электрические импульсы.
Скрытые синапсы принимают входные и обработают их. Они аналогичны мозгу (в частности, мозга) в биологических системах.
Наконец, выход синапсов принимает обработанные данные из скрытых синапсов и изменяет их, так что это является полезным для конечного пользователя. По существу они являются системой доставки во внешнем мире. В биологии, синапсы подключены к мышечной ткани и создают физическую реакцию.
Для обучения искусственной нейронной сети, данные (так называемый тренировочный набор) подаётся на вход и выход, то по сравнению с известными, правильный ответ (так называемые целевые значения). Разница между выходным и целевым значением, это использование и изменение матрицы с преобразованием для достижения ответа ближе к общему множеству. Это повторяется множество раз, до получения оптимального ответа и с дополнительным набором известных данных (называется набор тестов).
Как только алгоритм обеспечивает адекватный ответ на соответствующий набор теста, он готов для работы с реальными данными. Для кластера «HPU4Science», обучение и тестирование наборов строятся с двух модельных данных и специально изготовленных образцов с известными распределениями дефекта.
Традиционные ИНС используют длинные тренинги с алгоритмом, который обновляет матрицы (синапсов) итеративно. Этот процесс занимает чрезвычайно много времени. Кроме того, чем более сложная задача, тем требуется большее количество синапсов, необходимых для её решения, а значит и количество операций (а значит, время), необходимых для подготовки системы.
Команда «HPU4Science» разработала новый подход, который сочетает в себе резервуар и генетические алгоритмы (если ни одно из этих слов для Вас не имеет никакого смысла, не волнуйтесь, мы вернёмся к ним в ближайшее время).
Вычислительный резервуар
В вычислительном резервуаре скрытые синапсы (так называемый «резервуаром», и биологически аналогично мозга) в нейронной сети распределены случайным образом. Строгие правила регулируют общую связность сети, так что она имитирует человеческий мозг и обеспечивает рациональный выход, но вес и подключения каждого отдельного синапса рандомизированы.
Поток данных для этой системы идентичен описанному выше: входные данные выдерживаются набором ручного кодирования синапсов ввода, данные обрабатывают рандомизированные синапсы в резервуаре, а результат выводится через выходной синапс, который обусловливает данные для пользователя.
Разница заключается в обучении. Резервуарным способом получить результат намного быстрее, чем традиционной нейронной сетью, поскольку последний набор синапсов на выходной слой, изменяется в процессе обучения. Это существенно снижает вычислительные затраты, средства и время, а также это намного легче распараллелить. На рисунке ниже показан резервуар, вход (свёртывание спектра) и выход (развёртывание спектра) сигналов.
Очевидно, что результаты вычислений с использованием резервуарного способом зависят от структуры и случайных значений, присвоенные синапсом. Как Вы вероятно подозреваете, эти значения не всегда генерируют наилучшие из возможных решений этой проблемы. Потому что мы тренируемся только на выходном слое синапсов, мы ищем наилучший ответ, который может быть достигнут с резервуаром, который мы только что сгенерировали.
Но вполне возможно настроить систему для ещё более высокой производительности. Как объясняет исследователь Ян Ле Дю (Yann Le Du): «Перед нами стоит глобальная проблема минимизации: обучение резервуара на основе нейронной сети, только находит локальный минимум в функции ошибки (разница между известным решением и решением порождённых алгоритмов),т. е.это конфигурация, которая сводит к минимуму ошибки для конкретного резервуара. Тем не менее, мы действительно хотим найти глобальный минимум функции ошибки, что является лучшим из возможных решений в целом. Таким образом, мы добавили в генетический алгоритм учебный процесс, который изменяет резервуар синапсов».
Генетические алгоритмы и система
Таким образом, мы хотим иметь лучшие резервуары нейронных сетей. Нейронные сети вдохновляют биологические процессы, поэтому кажется естественным остаться в пределах искусственного парадигма жизни с целью оптимизации таких сетей. Мы используем модели генетических процессов, которые помогают нам быстро изучить множество возможных резервуаров и определить оптимизированные версии.
Генетический алгоритм использует кластер «HPU4Science», который является частицей системы связанной с алгоритмом эволюции дифференциала.«Система» это большая коллекция резервуаров, каждый из которых имеет различный набор начальных классов. Каждый резервуар имеет индивидуальную подготовку, путём обучения выходных синапсов, чтобы минимизировать ошибки.
На рисунке ниже показан процесс: резервуар сконфигурирован случайным образом из «пространства» возможных решений. Там каждый элемент находит локальную минимальную ошибку при помощи обучение выхода синапсов. Минимальная ошибка находится с помощью так называемого алгоритма градиентного спуска: система вычисляет местную производную функцию ошибки и обновляет матрицу выходной синапса, чтобы следовать функции ошибки по пути максимального снижения. Таким образом каждый элемент в системе принадлежит к своему локальному минимуму.
Подготовка процесса выходного синапса была создана для работы в несколько потоков, за счёт объединения нескольких наборов в одну группу и вычислительной ошибки для всех подготовок множества в одном наборе. Большие наборы требует больше параллельных процессов для вычисления. Таким образом, чем больше обучающей выборки, тем больше выигрыш от использования «GPU». Это связано с тем, что ГПУ имеет много ядер, которые идеально подходят для обработки большого количества действий одновременно.
Тем не менее, «GPU» ограничены тем, что вся матрица должна поместиться на «GPU» памяти, так что она не имеет доступа к данным из оперативной памяти или жёсткого диска во время выполнения расчётов. Обязательства с учётом всех расчётных данных в памяти «GPU» чрезвычайно трудно удовлетворить, даже имея такие карты, как «GTX 580» и «GTX 590 GPU», которые имеют по 1.5GB и 3GB оперативной памяти, соответственно. Это может показаться не очень сложным, но вычисления, необходимые для ЭПР изображения быстро израсходуют всю ОЗУ.
С ЭПР, количество элементов в матрице резервуара и число примеров в обучающем множестве с количеством точек данных в спектре создаютЭПР-квадрат! К примеру набор из тысячи данных (не очень много), вместе с несколькими тысячами точек, которые подлежат реконструкции, дают Вам матрицу с 1012 записями. Но есть способы, которые уменьшают этот объём памяти. Матрица преобразования в резервуаре очень легка (она имеет много нулей), в результате чего мы можем вычислить различные точки данных отдельно, поэтому команде «HPU4Science» удалось уменьшить объем памяти, что делает её идеально управляемой на «GPU».
После каждого резервуара матрица нашла свой локальный минимум (то есть матрица выходного синапса), мы использовали и создали единый оптимизированный резервуар через генетический алгоритм. В принципе, отдельные значения резервуара матрицы (его «гены») смешиваются с матрицей различных резервуаров, производя новый резервуар. Если новый резервуар производит меньше ошибок на тестовом наборе, то данные остаются и хранятся в этом резервуаре.
На рисунке ниже представлен общий процесс. Данные (символизируется птицей) подаются на нейронные резервуары (символ мозга), что характеризуется матрицей ценностей (символ цветной сетки). Резервуар для поиска локального минимума ошибки, оптимизирует выход матрицы синапса, а затем смешивает его с тремя случайными резервуарами. Данные подаются в новый резервуар, который в свою очередь, оптимизируется и процесс продолжается, пока система не найдёт лучшее решение.
Распараллеливание: опираясь на GPU
Как отмечалось ранее, «HPU4Science» кластер представляет собой набор независимых машин пользователя, подключённых к центральной машине владельца. Во время процесса оптимизации, важно, чтобы каждый пользователь являлся вычислительно независимыми. Идея не в объединении силы всех работников для решения одной проблемы, потому что для этого потребуется командование и управление одним процессом, который, если даст сбой, то остановит всю систему. Вместо этого, все работники должны быть в состоянии обработать всю проблему и прийти к предлагаемому решению.
Конечно, результаты должны быть сохранены и мастер сохраняет результаты и сравнивает их, даже если каждый работник вычислительно независимым. На самом деле, каждый «HPU» является автономным: мы считаем, что наши фундаментальные вычислительные единицы должны обрабатываться в несколько потоков процессором.
Идея в том, что на машине с процессором «i7» мы можем иметь до восьми вычислительных блоков, причем каждый вычислительный блок состоит из одного потока и одного «GPU». Именно поэтому мы нацелены на использование недавно выпущенного«GTX-590», который мы только что установили на пятом рабочем компьютере (с использованием новейшего «Linux» драйвера «270,40» выпущенного для последнего CUDA 4,0 RC2).
Каждый вычислительный блок работает с тремя пунктами: система, дифференциальная эволюция и вычислительный резервуар. Таким образом мы можем минимизировать взаимодействие между владельцем и работником, просто обеспечить обучение, тестирование наборов и определить подключённый резервуар. Это означает, что владелец даёт работнику решить проблему и структурные генетические ограничения (число генов и кабельный резервуар выхода).
Так как параметр пространства, в котором мы пытаемся найти ошибки минимума так невообразимо велик, то мы должны иметь массив,супер-массив. В этой конфигурации, мастер собирает результаты из массива на каждого работника и управляет своими собственными массивами выискивая лучшие решение. Это облегчает проблему: каждый массив распространяется на многие «HPUS» для уменьшения фактического времени обработки.
Тем не менее, распараллеливания не является простой задачей. Есть две части: разработка новых резервуаров с использованием эволюционных дифференциалов и подготовка отдельного резервуара. В обоих случаях мы используем основное свойство вычислительного «GPU»: все темы, запускаются на «CUDA» основных вычислений одно и то же, то есть вычисляют ту же функцию и часть данных, которые индексируют его адрес.
Давайте проиллюстрируем эту сумму двух векторов. Соответствующее ядро, встроенное в «Python», благодаря «PyCUDA», выглядит следующим образом:
for i in range(numberOfElements): w[i] = u[i] + v[i] __global__ void sumVectors(float *u, float *v, float *w) { int i = threadIdx.x; w[i] = u[i] + v[i]; }
Распараллеливание, которое мы используем просто предполагает выделения части каждой матрицы для эксплуатации и обработки каждого из них одновременно с помощью простого «GPU» ядра. Это делается с помощью нашего собственного ядра для эволюции массива и обучения нейронного резервуара. Это простое распараллеливание, также основывает специализированное вычисление матрицы библиотеки «CUBLAS» (библиотеки «BLAS» портирована на «CUDA»), которая добавляет тонкие процедуры оптимизации на графических процессорах «NVIDIA». Использование «CUBLAS» функции в сочетании с процедурами простой линейной алгебры — распараллеливания, производят производительность до «1TFLOPS».
Когда всё машинное обучение / процесс генетического алгоритма закончен, то результат будет оптимизирован в резервуар, который точно реконструирует пространственное распределение определённого типа электронных дефектов в образцах аналогичного состава. Для каждого нового типа образца, нового набора обучения и набора тестов должны быть разработаны и новые оптимизированные резервуары. Однако, как только резервуар установлен, его можно использовать неоднократно на подобных образцах.
Непонятные вычисления
Использование машинного обучения, в нашем понимании это то, как алгоритм успешно вычисляет решение. Люди в основном использовали компьютеры в качестве «транспортного средства» для выполнения своего собственного мышления на новых территориях, но компьютеры также могут научить нас решать проблемы без всякого ограничения на нахождение решения, которое, в последствии, люди могут оценить в полной мере.
Вместо того, чтобы использовать компьютер по заранее установленным правилам, которые применяются в частности к проблеме, мы строим алгоритм, который настраивает свои правила, обрабатывая известные примеры (обучающая выборка). Эта парадигма имеет такой смысл: у нас есть заранее установленная когнитивная структура, которая работает и учится, экспериментируя с внешним миром. Мы не можем понять все аспекты, как она работает, но в конце концов, она работает.
Вот и весь смысл вычислительных резервуаров: заранее установленная структура, случайные сети, а также примеры, которые изменяют некоторые параметры. Уже существующие когнитивные структуры, случайные сети, разработаны на основе генетического алгоритма связанные с алгоритмом системных частиц.
Возможно, чтобы чему-то научиться и в последствии добиться успеха, не обязательно сразу понимать, как именно система решает проблему. Это именно то, что команда «Watson» доказала в «IBM» и их успех является сильным стимулом для команды «HPU4Science». Хотя алгоритмы, описанные здесь были разработаны для решения проблем, связанных с ЭПР изображениями, они одинаково хорошо подходят для решения многих других сложных вопросов. В краткосрочной перспективе, команда «HPU4Science» позволит оптимизировать производительность системы для ЭПР, а также они планируют расширить изучение алгоритмов и вычислительное время на кластере для других научных проблем.
Авторы работы — группа «HPU4Science», которая опирается на несколько различных источников: мы благодарим «CNRS»,» CNES» и особенно «ANRENUSIM-ORIGIN2009–2012». Большое спасибо также«Chimie-ParisTech»за размещения кластера, а также лаборатории «LCMCP» за разрешение…! Особая благодарность Didier Gourier и Laurent Binet. Группа «HPU4Science» примет участие на «Europython 2011» и конференции «Euroscipy 2011».
Читайте также: Новости Новороссии.