=Paper=
{{Paper
|id=Vol-2064/paper10
|storemode=property
|title=
К задаче анализа тела человека
(To the problem of analysis of the human body)
|pdfUrl=https://ceur-ws.org/Vol-2064/paper10.pdf
|volume=Vol-2064
|authors=Elena Emelyanova,Luc-Donald Dalie,Vladimir Petrov,Ekaterina Popova,Andrej Savin,Aleksej Hohlov
}}
==
К задаче анализа тела человека
(To the problem of analysis of the human body)
==
УДК 004.021 Емельянова Е.Ю., Далие Л.Д., Петров В.А., Попова Е.В., Савин А.С., Хохлов А.А. Российский университет дружбы народов, г. Москва, Россия К ЗАДАЧЕ АНАЛИЗА ТЕЛА ЧЕЛОВЕКА* Аннотация Исследования тела человека in vivo являются актуальной научной областью на сегодняшний день, так как решение многих медицинских задач связано с определением состава тела человека. К таким задачам относятся оценка физического развития человека, адаптация к факторам среды обитания, к условиям профессиональной и спортивной деятельности. Одним из методов анализа состава тела является метод биоимпедансного анализа. Сегодня он используется для помощи в диагностировании различных заболеваний в таких областях, как трансплантология, кардиология и кардиохирургия, стоматология и реаниматология. Авторами предложен новый подход к анализу данных, полученных при помощи методик биоимпедансного анализа. Ключевые слова Биоимпеданс; bia. Emelianova E.U., Dalie L.D., Petrov V.A., Popova E.V., Savin A.S., Hohlov A.A. Peoples’ Friendship University of Russia, Moscow, Russia TO THE PROBLEM OF ANALYSIS OF THE HUMAN BODY Abstract Studies of the human body in vivo are an actual scientific field for today, since the solution of many medical problems is related to the determination of the composition of the human body. These tasks include assessment of the physical development of man, adaptation to environmental factors, to the conditions of professional and sports activities. One of the methods for analyzing the composition of the body is the method of bioimpedance analysis. Today it is used to help diagnose various diseases in such areas as transplantology, cardiology and cardiosurgery, dentistry and resuscitation. The authors proposed a new approach to the analysis of data obtained using bioimpedance analysis techniques. Keywords Bioimpedance, bia. Актуальная проблематика Анализ импеданса тела (БИА) представляет собой один из методов классификации состава тела и классификации значений ткани тела. Метод БИА использует ток небольшой частоты, приложенный к телу пациента. В соответствии с этим измеряется напряжение и электрические свойства тела используются для оценки состава тела. Этот метод очень популярен, поскольку он неинвазивный, быстрый, портативный и недорогой. Суть метода заключается в том, что через тело пациента пропускают высокочастотный 1 кГц до 1 МГц слабый ток, используя два или более подключений электродов, а затем измеряют амплитуду тока после прохождения через тело человека. Схем подключения электродов несколько [3] и, чем больше электродов подключают к телу человека, тем точнее рассчитывается результат. Самая простая схема – это цепь «нога – нога», когда пациенту достаточно встать на «умные» весы. Более сложные схемы подразумевают собой подключение электродов к рукам и ногам человека, а также к туловищу. Для расчетов в таком случае используется стационарное точное оборудование. * Труды II Международной научной конференции «Конвергентные когнитивно- информационные технологии» (Convergent’2017), Москва, 24-26 ноября, 2017 Proceedings of the II International scientific conference "Convergent cognitive information technologies" (Convergent’2017), Moscow, Russia, November 24-26, 2017 88 После получения серий измерений амплитуд на различных частотах, при помощи метода эквивалентных электрических схем [2] определяют электрических импеданс цепи, который является комплексной величиной. Исходя из импеданса и антропометрических исходных данных: возраст, пол, расовая и этническая принадлежность, линейные и весовые параметры тела (длина, масса, объем тела), на основании имеющихся статистических данных делается вывод о составе тела человека (соотношение мышечной ткани, жировой ткани, костной ткани, воды и других составляющих) и другие выводы (в зависимости от условий и целей исследования). Конкретный набор характеристик зависит от поставленной задачи и имеющегося оборудования. Биоимпедансные исследования, несмотря на свою распространенность, популярность и практичность, имею несколько проблем. Во-первых, для того чтобы получить точные измерения, требуется стационарное дорогостоящее оборудование, что сильно сужает применимость методики и делает ее не массовой (на данный момент стоимость одного исследования составляет 3-5 тысяч рублей, также надо учесть время, затраченное на дорогу). Приборы, предназначенные для домашнего использования («умные» весы и различные их вариации) не обеспечивают хоть сколько-нибудь достаточную точность для формирования выводов, отличных от довольно приблизительной оценки состава тела человека. Во-вторых, как писалось выше, так или иначе результаты исследования сравниваются (пусть и по многим параметрам) со статистическими данными, что исключает из рассмотрения индивидуальные характеристики конкретного человека. Уже две обозначенные выше проблемы делают невозможным массовое («домашнее») применение методики с использованием всех ее возможностей (более или менее точное определение состава тела человека, отслеживание динамики, что актуально для людей, занимающихся спортом и использующих различные диеты, раннее предупреждение возможных заболеваний и патологий). Таким образом, существует задача адаптации методики к виду, когда для ее полноценного применения не будет требоваться дорогостоящее стационарное оборудование, но при этом достигаемая точность определения заданных критериев будет достаточной. Оборудование На сегодняшний день большое распространение получают различные устройства, которые работают под управлением различных микроконтроллеров. Хорошо известны микроконтроллеры с архитектурой ARM [13], существует большое количество DIY и промышленных приборов, которые созданы на этой базе. Также надо отметить, что подавляющее большинство мобильных устройств (смартфоны, планшеты) также сегодня работают на аппаратной базе, построенной вокруг ARM процессоров. Это и всем известные смартфоны Apple iPhone, Samsung и большинство других. ARM процессоры отличает низкое энергопотребление, простота и в то же время хорошая вычислительная мощность. Поэтому первое предположение, которое делают авторы данной работы заключается в том, что на базе ARM процессора можно строить устройства, которые, обладая низкой стоимостью, низким энергопотреблением (и, как следствие, высокой автономностью) позволят строить портативные анализаторы результатов измерений, при этом имеющие вычислительную способность к обслуживанию необходимых алгоритмов. Та часть прибора, которая позволяет генерировать ток высокой частоты нужных характеристик, представляет собой устройство из множества представленных на рынке радиоаппаратуры и не представляет сложностей по интеграции. Алгоритмы В кругах финансовых и экономических аналитиков хорошо известен алгоритм анализа временных рядов SSA (Singular Spectrum Analysis), иначе называемый «метод Гусеница» [5,6]. Он используется для того, чтобы разложить временной ряд (например, курс определенной акции) на составляющие (тренды) и изучать вклад каждой составляющей в общий тренд, а также делать большое количество других различных выводов об исходных данных. Алгоритм стандартного метода SSA хорошо известен и изучен, поэтому опишем его вкратце. Из исходного одномерного временного ряда строится траекторная матрица, размерность которой определяется важным параметром, зависящим от условий конкретной задачи – длина гусеницы (иногда встречается название «лаг» гусеницы или «окно» гусеницы). Выбор окна гусеницы является важным этапом решения задач методом SSA. Небольшая длина гусеницы позволяет учесть меньше информации о ряде, большая длина гусеницы требует больших вычислительных ресурсов. Столбцами траекторной матрицы являются скользящие отрезки длиной, равной длине гусеницы. После некоторых преобразований, опционально включающих в себя процедуры нормирования и центрирования, строится 89 квадратная матрица, содержащая в себе информацию об исходном временном ряде. Далее производится сингулярное разложение этой матрицы на сумму элементарных матриц, каждая из которых задается набором из собственного числа и двух сингулярных векторов — собственного и факторного. Таким образом, исходный временной ряд разлагается на интерпретируемы аддитивные составляющие. В зависимости от условий задачи производится отбор главных компонент, по которым при помощи процедуры ганкелизации восстанавливается временной ряд. В последнее время данный алгоритм стали применять не только для анализа временных рядов с экономическими данными, но также и в других сферах и областях, например: - обработка получаемых с различного оборудования наборов измерений - классификация объектов (например, адаптация алгоритма под названием EigenFace для распознавания объектов на изображениях) - экспресс-анализ данных для помощи в принятии решений (в совершенно различных областях экономики и науки). Авторами предлагается использовать алгоритм SSA следующим образом. Результаты измерений амплитуды прошедшего через тело человека тока записываются в виде временных рядов, и далее анализируются с помощью SSA (и его модификации для многомерных временных рядов – MSSA). Вычисляются собственные значения и собственные векторы траекторной матрицы и производится непосредственно анализ функции, представленной собственными значениями. Исходя из предположения, что при должно выборе параметров SSA (окно Гусеницы), траекторная матрица содержит в себе вполне исчерпывающую информацию об исходном временном ряде, анализ спектра матрицы позволит делать различные выводы о причинах поведения исходного временного ряда – то есть об искомых для исследователя параметрах. Оптимизация SSA для ARM процессоров Таким образом, встает задача оптимизировать алгоритм SSA таким образом, чтобы он мог выполняться на портативных устройствах с ARM процессорами. Те или иные части алгоритма (например, нормирование или центрирование) могут отсутствовать, но его неотъемлемой частью является решение задачи нахождения собственных значений и собственных векторов для матрицы, полученной из траекторной. Известно, что эта задача является достаточно сложной, особенно для случая кратных собственных значений и необходимо со всей ответственностью подходить к выбору метода диагонализации матрицы. Одним из наиболее точных и устойчивых методов для нахождения собственных значений и собственных векторов матриц является метод вращений Якоби [12], поэтому он используется авторами при вычислительной реализации алгоритма SSA. Однако, в то же время, метод Якоби достаточно ресурсоемкий, что в некоторой степени ограничивает его использование на мобильных устройствах: не всегда удается провести анализ ряда с необходимой длиной окна гусеницы, что, в свою очередь, не позволяет точно выбирать диапазоны частот фильтрации данных и другие параметры анализа. Помимо этого, для некоторых наборов исходных данных, алгоритм Якоби не обеспечивает сходимость за приемлемое число итераций, поэтому в работе используется устойчивая модификация алгоритма, разработанная коллективом кафедры прикладной информатики и теории вероятностей РУДН для эффективного решения задач компьютерного дизайна многослойных оптических покрытий нанометровых размеров [10]. Авторами проводится работа по оптимизации алгоритма SSA для эффективной работы на ARM процессорах, в том числе изучены и учтены рекомендации производителей процессоров для обеспечения эффективной работы с регистрами [11]. Также подобран наиболее эффективный набор флагов компиляции программы, что позволило значительно увеличить производительность метода (до 30%). Ниже представлены некоторые конкретные шаги ускорения выполнения работы алгоритма. Во-первых, в случае если в коде программы используются циклы, особенно вложенные, то необходимо явно дать процессору команду на векторизацию. Делается это таким образом. Если известно (как это часто бывает), что в цикле производится работа с массивами дины, кратной четырем, то при написании кода для ARM процессора конструкцию вида: 1 for (i = 0; i < n; i ++) 2 { 3 // … 4 } необходимо заменить на 1 for (i = 0; i < ((n / 4) * 4); i ++) 2 { 3 // … 90 4 } Описанная выше конструкция укажет компилятору, что необходимо применять векторизацию, и это существенно уменьшает время выполнения операций с массивами внутри цикла. Если в алгоритме часто производится работа с небольшими циклами, то можно дать явную команду компилятору для «разворачивания» данных циклов. Для этого можно воспользоваться следующей конструкцией: 1 #pragma unroll(n) Особенно это полезно для вложенных циклов (отметим, что в используемой реализации алгоритма Якоби уровень вложенности достигает пяти). Развернув внутренний цикл в набор последовательно выполняемых команд, компилятор применяет векторизацию к «развернутым» из цикла данным, что также может дать ощутимый прирост в производительности. Сравнительные результаты времени работы для оптимизированного и неоптимизированного алгоритмов представлены на рисунке 1. Рисунок 1. Сравнение оптимизированного и неоптимизированного алгоритмов диагонализации матрицы методом вращений Якоби Далее было проведено сравнение скорости работы оптимизированного и неоптимизированного алгоритмов диагонализации методом вращений Якоби в зависимости от количества итераций метода и размерности матрицы, получаемой из траекторной. Заметим, что количество итераций задается изначально и является одним из условий остановки метода – если необходимая точность не достигается за заданное количество итераций, вычисления прекращаются. На рисунке 2 представлена разница времени работы оптимизированного и неоптимизированного алгоритмов. Помимо алгоритма Якоби, в методе SSA неоднократно производится суммирование элементов массивов различной длины (в частности, при преобразовании траекторной матрицы и при выполнении ганкелизации), что также нельзя оставлять без внимания. Благодаря применению оптимизации работы с регистрами процессора, производительность процедур, выполняющих данные операции, удалось увеличить до двух раз, что также положительно сказалось на скорости работы алгоритма SSA. В частности, для ускорения суммирования массивов большой длины можно использовать SIMD (Single instruction, Multiple data), а также векторные регистры. В ARM процессорах SIMD расширение реализовано в виде дополнительного набора инструкций и называется ARM NEON. Рассмотрим пример, в котором происходит суммирование элементов массива длины n. Стоит отметить, что значение переменной n должно быть кратно четырем. 91 Рисунок 2. Разница времени работы оптимизированного и неоптимизированного алгоритмов в зависимости от количества итераций и размерности матрицы 1 double sum = 0; 2 for (i = 0; i < n; i += 1) 3 { 4 sum += someArray[i]; 5 } Данный программный код можно переписать в ином виде: 1 double sum1 = 0; 2 double sum2 = 0; 3 double sum3 = 0; 4 double sum4 = 0; 5 for (i = 0; i < n; i += 4) 6 { 7 sum1 += someArray [i]; 8 sum2 += someArray [i+1]; 9 sum3 += someArray [i+2]; 10 sum4 += someArray [i+3]; 11 } 12 sum1 += sum2; 13 sum3 += sum4; 14 sum1 += sum3; В реализованном примере переменные, суммируемые внутри цикла, будут складываться в векторный регистр, содержащий в себе 4 32-битных значения. Далее временные регистры выполняют операции суммирования, используя SIMD инструкции, что дает ощутимый прирост в производительности. Также с помощью векторных регистров, оптимизируются операции умножения. Таким образом нетрудно заметить, что с помощью технологии NEON в разы ускоряются операции сложения и умножения, что влечет за собой существенное уменьшение времени работы выполнения вычислительных алгоритмов. Сравнительные результаты времени работы представлены на рисунке 3. 92 Рисунок 3. Сравнение времени работы оптимизированного и неоптимизированного алгоритмов при выполнении операций суммирований больших массивов Представленные результаты показывают, что оптимизация вычислительных алгоритмов позволила достичь заметного прироста производительности при работе на устройствах с ARM процессорами, что позволит использовать этот алгоритм в дальнейшей работе. Выводы В данной работы сделаны предпосылки и поставлена задача для разработки аппаратно-программного комплекса, который позволит проводить исследования тела человека в домашних условиях. Литература 1. Савин А.С., Хохлов А.А. «Оптимизация алгоритма SSA для ARM процессоров мобильных устройств» //Интернет -журнал «Науковедение» в.2, март – апрель 2014 2. Мартиросов Э. Г., Николаев Д. В., Руднев С. Г. «Тeхнологии и методы определения состава тела человека» – М.: Наука, 2006. – 248 с. 3. Николаев Д. В. и др. «Биоимпедансный анализ состава тела человека» – М.: Наука, 2009. – 392 с. 4. Зуев А. Л. и др. «Эквивалентные электрические модели биологических объектов» //Российский журнал биомеханики. 2012. №1 С.110-1201. 5. Данилов Д. Л., Жиглявский А. А. Главные компоненты временных рядов: метод "Гусеница". Под редакцией Санкт - Петербургский университет, 1997. 6. Golyandina N., Nekrutkin V., Zhigljavsky A. Analysis of Time Series Structure: SSA and Related Techniques, CHAPMAN & HALL/CRC , 2001. 7. Knaster S., Malik W., Dalrymple M. Learn Objective-C on the Mac For OS X and iOS 2nd Edition. Apress, 2012. ISBN: 978-1-4302- 4188-1. 8. Golyandina N., Zhigljavsky A. Singular Spectrum Analysis for Time Series, Springer, 2013. 9. Уилкинсон Дж. Х., Райнш С. Справочник алгоритмов на языке Алгол. Линейная алгебра. М.: Машиностроение, 1976. 390 с. 10. Хохлов А. А. Устойчивый метод восстановления тензора диэлектрической проницаемости по спектрофотометрическим данным. Письма в ЭЧАЯ. 2011, Т.8 №5 (168). С. 828-832. 11. ARM NEON support in the ARM compiler. September 2008. http://www.arm.com/files/pdf/neon_support_in_the_arm_compiler.pdf 12. Ильин В.А., Позняк Э.Г. Линейная алгебра: Учеб. Для вузов — 4-е изд. — М. Наука. Физматлит, 1999 — 296 с. 13. Trevor Martin. The insider’s guide to the STM 32 ARM Based Microcontroller //Hitex (UK) Ltd., 21/04/2008 References 1. Savin A.S., Hohlov A.A. «Optimizacija algoritma SSA dlja ARM processorov mobil'nyh ustrojstv» //Internet-zhurnal «Naukovedenie» v.2, mart – aprel' 2014 2. Martirosov Je. G., Nikolaev D. V., Rudnev S. G. «Tehnologii i metody opredelenija sostava tela cheloveka» – M.: Nauka, 2006. – 248 s. 3. Nikolaev D. V. i dr. «Bioimpedansnyj analiz sostava tela cheloveka» – M.: Nauka, 2009. – 392 s. 4. Zuev A. L. i dr. «Jekvivalentnye jelektricheskie modeli biologicheskih ob#ektov» //Rossijskij zhurnal biomehaniki. 2012. №1 S.110- 1201. 5. Danilov D. L., Zhigljavskij A. A. Glavnye komponenty vremennyh rjadov: metod "Gusenica". Pod redakciej Sankt-Peterburgskij universitet, 1997. 93 6. Golyandina N., Nekrutkin V., Zhigljavsky A. Analysis of Time Series Structure: SSA and Related Techniques, CHAPMAN & HALL/CRC, 2001. 7. Knaster S., Malik W., Dalrymple M. Learn Objective-C on the Mac For OS X and iOS 2nd Edition. Apress, 2012. ISBN: 978-1-4302- 4188-1. 8. Golyandina N., Zhigljavsky A. Singular Spectrum Analysis for Time Series, Springer, 2013. 9. Uilkinson Dzh. H., Rajnsh S. Spravochnik algoritmov na jazyke Algol. Linejnaja algebra. M.: Mashinostroenie, 1976. 390 s. 10. Hohlov A. A. Ustojchivyj metod vosstanovlenija tenzora dijelektricheskoj pronicaemosti po spektrofotometricheskim dannym. Pis'ma v JeChAJa. 2011, T.8 №5 (168). S. 828-832. 11. ARM NEON support in the ARM compiler. September 2008. http://www.arm.com/files/pdf/neon_support_in_the_arm_compiler.pdf 12. Il'in V.A., Poznjak Je.G. Linejnaja algebra: Ucheb. Dlja vuzov — 4-e izd. — M. Nauka. Fizmatlit, 1999 — 296 s. 13. Trevor Martin. The insider’s guide to the STM 32 ARM Based Microcontroller //Hitex (UK) Ltd., 21/04/2008 Об авторах: Емельянова Елена Юрьевна, магистрант, кафедра прикладная информатика и теория вероятностей, Российский университет дружбы народов, eeu057@gmail.com Дилие Люк Дональд, аспирант кафедры прикладной информатики и теории вероятностей, Российский университет дружбы народов, Кот-д’Ивуар, lucdalie@mail.ru Петров Владимир Александрович, ассистент кафедры информационных технологий, Российский университет дружбы народов, vpetrov@mahuru.ru Попова Екатерина Владимировна, магистрант, кафедра прикладная информатика и теория вероятностей, Российский университет дружбы народов, evlap_0852@mail.ru Савин Андрей Сергеевич, программист, ООО «Махуру», assavin90@gmail.com Хохлов Алексей Анатольевич, кандидат физико-математических наук, доцент кафедры прикладной информатики и теории вероятностей, Российский университет дружбы народов, khokhlov_aa@pfur.ru Note on the authors: Emelyanova Elena Yu., MA student, Department of Applied Informatics and Probability Theory, Peoples’ Friendship University of Russia, eeu057@gmail.com Dalie Luc-Donald, PhD student, Department of Applied Informatics and Probability Theory, Peoples’ Friendship University of Russia, Côte d'Ivoire, lucdalie@mail.ru Petrov Vladimir A., Assistant of Department of Information Technologies, Peoples’ Friendship University of Russia, vpetrov@mahuru.ru Popova Ekaterina V., MA student, Department of Applied Informatics and Probability Theory, Peoples’ Friendship University of Russia, evlap_0852@mail.ru Savin Andrej S., programmer, "Mahuru" LLC, assavin90@gmail.com Hohlov Aleksej A., Associate Professor of the Department of Applied Informatics and Probability Theory, Candidate of Physical and Mathematical Sciences, Peoples’ Friendship University of Russia, khokhlov_aa@pfur.ru 94