가장 대표적인 기계학습 알고리즘인 딥러닝 방법은 여러 응용 분야에서 활용성이 입증돼 디지털신호처리에 널리 사용되고 있다. 그러나 많은 학습데이터를 사용해 학습하는 과정에서 많은 메모리와 학습시간이 필요하기 때문에 CPU 성능과 메모리 용량이 제한된 IoT 디바이스에 딥러닝 기술을 적용하기는 어렵다. 특히 메모리 용량이 2K~8K 로 극히 적은 아두이노 기반의 디바이스를 사용한다면 알고리즘 구현에 많은 한계가 발생한다. 본 논문에서는 정확성과 효율성이 입증돼 여러 분야에서 활용되고 있는 ELM 알고리즘을 아두이노에서 최적화하는 방법을 제안하고, 실험을 통해 메모리 용량이 2KB인 아두이노 UNO와 메모리 용량이 8KB인 아두이노 MEGA에서 각각 15차원, 42차원의 다중 클래스 학습이 가능함을 보였다. 실험을 입증하기 위해 가우시안 혼합 모델링을 사용해 생성한 데이터셋과 범용적으로 사용하는 UCI 데이터셋을 사용해 제안한 알고리즘의 효율성을 입증하였다.
가장 대표적인 기계학습 알고리즘인 딥러닝 방법은 여러 응용 분야에서 활용성이 입증돼 디지털신호처리에 널리 사용되고 있다. 그러나 많은 학습데이터를 사용해 학습하는 과정에서 많은 메모리와 학습시간이 필요하기 때문에 CPU 성능과 메모리 용량이 제한된 IoT 디바이스에 딥러닝 기술을 적용하기는 어렵다. 특히 메모리 용량이 2K~8K 로 극히 적은 아두이노 기반의 디바이스를 사용한다면 알고리즘 구현에 많은 한계가 발생한다. 본 논문에서는 정확성과 효율성이 입증돼 여러 분야에서 활용되고 있는 ELM 알고리즘을 아두이노에서 최적화하는 방법을 제안하고, 실험을 통해 메모리 용량이 2KB인 아두이노 UNO와 메모리 용량이 8KB인 아두이노 MEGA에서 각각 15차원, 42차원의 다중 클래스 학습이 가능함을 보였다. 실험을 입증하기 위해 가우시안 혼합 모델링을 사용해 생성한 데이터셋과 범용적으로 사용하는 UCI 데이터셋을 사용해 제안한 알고리즘의 효율성을 입증하였다.
Deep learning method, which is one of the most famous machine learning algorithms, has proven its applicability in various applications and is widely used in digital signal processing. However, it is difficult to apply deep learning technology to IoT devices with limited CPU performance and memory c...
Deep learning method, which is one of the most famous machine learning algorithms, has proven its applicability in various applications and is widely used in digital signal processing. However, it is difficult to apply deep learning technology to IoT devices with limited CPU performance and memory capacity, because a large number of training samples requires a lot of memory and computation time. In particular, if the Arduino with a very small memory capacity of 2K to 8K, is used, there are many limitations in implementing the algorithm. In this paper, we propose a method to optimize the ELM algorithm, which is proved to be accurate and efficient in various fields, on Arduino board. Experiments have shown that multi-class learning is possible up to 15-dimensional data on Arduino UNO with memory capacity of 2KB and possible up to 42-dimensional data on Arduino MEGA with memory capacity of 8KB. To evaluate the experiment, we proved the effectiveness of the proposed algorithm using the data sets generated using gaussian mixture modeling and the public UCI data sets.
Deep learning method, which is one of the most famous machine learning algorithms, has proven its applicability in various applications and is widely used in digital signal processing. However, it is difficult to apply deep learning technology to IoT devices with limited CPU performance and memory capacity, because a large number of training samples requires a lot of memory and computation time. In particular, if the Arduino with a very small memory capacity of 2K to 8K, is used, there are many limitations in implementing the algorithm. In this paper, we propose a method to optimize the ELM algorithm, which is proved to be accurate and efficient in various fields, on Arduino board. Experiments have shown that multi-class learning is possible up to 15-dimensional data on Arduino UNO with memory capacity of 2KB and possible up to 42-dimensional data on Arduino MEGA with memory capacity of 8KB. To evaluate the experiment, we proved the effectiveness of the proposed algorithm using the data sets generated using gaussian mixture modeling and the public UCI data sets.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
W,b를 저장하기 위해 필요한 메모리 공간은 데이터 차원크기와 은닉층의 노드수에 의해 결정되기 때문에 학습 데이터 수와는 독립적이다. 본 논문에서는 W,b를 FLASH 메모리에 저장해 동적 계산에 필요한 SRAM 공간을 최대한 확보하고자 한다.
본 논문에서는 정확성과 효율성이 입증돼 분류, 회귀, 군집화 관련 분야에서 널리 활용되고 있는 ELM(Extreme Learning Machine) [4][5][6][7][8][9][10] 알고리즘을 아두이노 UNO와 아두이노 MEGA에서 구현하고 다차원의 많은 학습데이터를 처리할 수 있도록 다양한 최적화 방법을 제안하고자 한다.
본 논문에서는 정확성과 효율성이 입증돼 여러 분야에서 활용되고 있는 ELM 알고리즘을 메모리 제약이 심한 아두이노 UNO와 아두이노 MEGA에서 학습할 있는 방법을 제안하였다. 학습데이터 전체를 메모리에 저장하지 않고, 순차적 방식으로 행렬 계산을 할 수 있는 알고리즘을 통해 학습데이터 수에 상관없이 ELM 학습이 가능하도록 했다.
결국 기계학습을 아두이노에서 수행하기 위해 사용 메모리에 따라 다양한 최적화 방법이 필요하다. 본 논문에서는 정확성와 효율성이 입증돼 여러 분야에서 활용되고 있는 ELM 알고리즘을 아두이노에서 최적화하는 방법을 제안하고자 한다.
본 논문에서는 학습데이터 수 n 이 커서 H행렬 크기가 아두이노 SRAM 보다 큰 경우 그림 2처럼 H행렬을 직접 계산에 사용하지 않고, 학습데이터를 순차적으로 계산할 수 있는 행렬 최적화 알고리즘을 제안하고자 한다.
제안 방법
VΣ- 1에서 행렬곱 연산을 피하고자 V= V/ Σ에 대해서 먼저 계산하고, U도 별도의 전치행렬을 계산하지 않고 , V 와 U를 직접 계산함으로서 SVD 계산 이후 역행렬 계산 시 임시 메모리 생성을 최소화 하였다.
데이터셋이 크기 때문에 아두이노 MEGA에서만 학습시간을 측정하였다. 기존 ELM과 최적화된 ELM을 비교하였다.
다음 실험은 제안한 ELM 알고리즘의 전체 학습 시간을 측정하였다. 아두이노 UNO와 아두이노 MEGA에서 각각 측정하였고, 특징 차원의 수는 5,10,15,20,30,40개까지 늘려가고, 학습데이터 수는 10개에서 500개까지 늘려가며 제안하는 알고리즘이 특징 차원과 학습데이터 수에 따라 어떤 영향을 받지는 측정해 표 7에 정리하였다.
또한 Shuttle의 학습데이터수가 43500개인데 아두이노의 int 범위가 –32,768 to 32,767이다. 따라서 unsinged int로 이용해 43500번 루프를 돌면서 SD카드에서 하나씩 데이터를 읽도록 했다. 실험 결과를 표 9에 표시하였다.
본 논문에서는 VΣ- 1U T 계산을 효율적으로 하기 위해 두 가지 방법을 사용했다.
ELM 알고리즘에서 메모리 복잡도와 계산 복잡도 관점에서 가장 큰 영향을 끼치는 부분은 역행렬 계산이다. 본 논문에서는 여인수 전개 알고리즘, SVD 기반 알고리즘, 가우스-조단 소거법 기반 알고리즘에 대한 성능을 비교하였다.
특징 차원과 클래스 수에 따라 학습시간이 어떻게 영향 받는지 분석하기 위해 특징 수는 20, 30, 35, 40개로 늘려갔고, 클래스 수는 3개에서 36개까지 다양하게 변경해 가면 서 학습 시간을 측정하였다. 아두이노 MEGA라 하더라도 메모리가 충분하지 않기 때문에 고차원으로 갈수록 클래스 수를 줄여서 최대로 가능한 클래스수를 측정하였다. 샘플 수는 100개로 고정하였다.
다음 실험은 제안한 ELM 알고리즘의 전체 학습 시간을 측정하였다. 아두이노 UNO와 아두이노 MEGA에서 각각 측정하였고, 특징 차원의 수는 5,10,15,20,30,40개까지 늘려가고, 학습데이터 수는 10개에서 500개까지 늘려가며 제안하는 알고리즘이 특징 차원과 학습데이터 수에 따라 어떤 영향을 받지는 측정해 표 7에 정리하였다.
제안하는 방법의 우수성을 검증하기 위해 아두이노 UNO(2KB SRAM)와 아두이노 MEGA(8KB SRAM) 두 개의 보드에서 알고리즘을 구현하고, 수행시간을 측정하였다. 측정은 아두이노에서 기본적으로 제공하는 mills()함수를 사용해 밀리초(millisecond)로 측정하였다.
첫 번째 실험으로 은닉층의 출력을 계산하는 시간을 측정하였다. GMM 데이터셋을 사용해 특징 차원은 10 ~ 30까지 변경하고, 샘플의 수는 10개 ~ 190까지 늘려가면서 계산 시간을 측정하여 표 3에 정리하였다.
제안하는 방법의 우수성을 검증하기 위해 아두이노 UNO(2KB SRAM)와 아두이노 MEGA(8KB SRAM) 두 개의 보드에서 알고리즘을 구현하고, 수행시간을 측정하였다. 측정은 아두이노에서 기본적으로 제공하는 mills()함수를 사용해 밀리초(millisecond)로 측정하였다. 최적화 과정에서 근사화 기법을 사용하지 않기 때문에 기본 ELM 알고리즘과 동일하기 때문에 정확도 측정에 관한 실험은 진행하지 않았다.
특징 차원과 클래스 수에 따라 학습시간이 어떻게 영향 받는지 분석하기 위해 특징 수는 20, 30, 35, 40개로 늘려갔고, 클래스 수는 3개에서 36개까지 다양하게 변경해 가면 서 학습 시간을 측정하였다. 아두이노 MEGA라 하더라도 메모리가 충분하지 않기 때문에 고차원으로 갈수록 클래스 수를 줄여서 최대로 가능한 클래스수를 측정하였다.
학습 데이터셋이 4만개 이상인 데이터셋도 있기 때문에 실험에서는 SD카드에 학습데이터를 저장하고, 이때 SD카드 모듈에 따라 읽는 속도가 다를 수 있기 때문에 이 시간을 제외하고 전체 학습 시간을 측정하였다. 또한 Shuttle의 학습데이터수가 43500개인데 아두이노의 int 범위가 –32,768 to 32,767이다.
본 논문에서는 정확성과 효율성이 입증돼 여러 분야에서 활용되고 있는 ELM 알고리즘을 메모리 제약이 심한 아두이노 UNO와 아두이노 MEGA에서 학습할 있는 방법을 제안하였다. 학습데이터 전체를 메모리에 저장하지 않고, 순차적 방식으로 행렬 계산을 할 수 있는 알고리즘을 통해 학습데이터 수에 상관없이 ELM 학습이 가능하도록 했다. 실험을 통해 메모리 용량이 2KB인 아두이노 UNO와 메모리 용량이 8KB인 아두이노 MEGA에서 각각 15차원, 43차원의 다중 클래스 학습이 가능함을 보였다.
대상 데이터
UCI 범용 데이터셋의 경우 제안하는 방법이 회귀(Regression) 문제가 아닌 분류(Classification) 문제만 다루기 때문에 분류 데이터셋 만 사용했고, 이 중 특징 차원의 수가 60 이하의 셋만 사용하였다. 표 2에 사용된 데이터셋의 이름(DB),학습샘플 수(#train), 특징 차원 수(#feature), 클래스 수(#classes)를 표시하였다.
행렬로부터 직접적으로 역행렬을 구하는 방법으로 중첩 반복문으로 알고리즘 구현이 가능해 SVD 알고리즘에 비해 적은 코드로 역행렬 계산이 가능하다. 본 논문에서는 아두이노용으로 공개되어 있는 역행렬 라이브러리[13]를 사용하였다. SVD와 마찬가지로 반복적인 메모리 해당/해지 과정이 없기 때문에 메모리 파편화 문제도 발생하지 않는다.
아두이노 MEGA라 하더라도 메모리가 충분하지 않기 때문에 고차원으로 갈수록 클래스 수를 줄여서 최대로 가능한 클래스수를 측정하였다. 샘플 수는 100개로 고정하였다. 표 8은 실험결과를 보여준다.
실험에서 사용하는 데이터 셋은 GMM(Gaussian Mixture Model)을 사용해 가상적으로 생성한 데이터셋과 ELM성능을 테스트하기 위해서 사용했던 UCI 범용 데이터셋 [15]을 사용하였다. 제안하는 알고리즘의 성능 분석을 위해 가상의 GMM 데이터셋을 사용하는 방법이 타당한 이유는 학습 데이터 크기, 학습데이터 수, 클래스 수를 자유롭게 변터 특징 차원 크기, 학습데이터 수, 클래스 수를 자유롭게 변경해가며 각각의 인자 변이에 대해 수행 속도 어느 정도 영향을 받는지 명확하게 분석할 수 있기 때문이다.
이론/모형
아두이노는 메모리가 작아 주로 마이크로 컨트롤러로 사용되고, 라즈베리파이는 복잡한 신호처리가 가능하다. 보조 메모리로 라즈베리파이는 대용량 범용 SD카드를 아두이노는 EEPROM을 사용한다. 메모리 아키텍쳐 구조는 고려하지 않더라도 실시간으로 읽기/쓰기 가능한 메모리가 아두이노 2~8KB, 라즈베리파이는 1GB라는 매우 큰 차이가 있다.
행렬은 정방형 행렬로 여러 가지 방법으로 역행렬 계산이 가능하다. 행렬 크기가 2,3,4일 경우 역행렬 공식이 존재하며 5보다 클 경우는 여인수 전개(cofactor expansion)[11], 특이값 분해(SVD, Singular Value Decomposition)[12], 가우스-조던 소거법(Gauss Jordan Elimination)[13]을 사용해 계산가능하다. 메모리가 충분한 PC 급 디바이스에서는 어떤 방법을 사용해도 된다.
성능/효과
실험 결과를 보면 최적화되지 않은 ELM은 학습 차원과 학습데이터 수가 작은 Banana, Iris, Glass 셋에 대해서만 학습이 가능했고, 대부분의 데이터셋에서 학습이 불가능했다. 반면 제안하는 알고리즘은 16/26/13333(#feature, #classes, #train) 크기의 Letter 데이터셋에 대해서 대략 165초, 9/7/43500(#feature,#classes, #train)크기의 Shuttle 데이터셋에 대해서 대략 152초로 학습이 가능했다.
실험 결과를 보면 최적화되지 않은 ELM은 학습 차원과 학습데이터 수가 작은 Banana, Iris, Glass 셋에 대해서만 학습이 가능했고, 대부분의 데이터셋에서 학습이 불가능했다. 반면 제안하는 알고리즘은 16/26/13333(#feature, #classes, #train) 크기의 Letter 데이터셋에 대해서 대략 165초, 9/7/43500(#feature,#classes, #train)크기의 Shuttle 데이터셋에 대해서 대략 152초로 학습이 가능했다.
학습데이터 전체를 메모리에 저장하지 않고, 순차적 방식으로 행렬 계산을 할 수 있는 알고리즘을 통해 학습데이터 수에 상관없이 ELM 학습이 가능하도록 했다. 실험을 통해 메모리 용량이 2KB인 아두이노 UNO와 메모리 용량이 8KB인 아두이노 MEGA에서 각각 15차원, 43차원의 다중 클래스 학습이 가능함을 보였다.
아두이노 UNO에서는 최대 15차원의 특징을 갖는 데이터에 대해 학습이 가능했고, 아두이노 MEGA에서는 최대 42차원의 특징을 갖는 데이터를 학습이 가능했다. 5/100(#feature/#train)에서 5/200(#feature/#train)으로 학습데이터수가 2배 증가하면 학습시간은 104ms 에서 206ms으로 대략 2배정도 증가한다.
표 3과 표 5를 종합해 보면 아두이노 UNO에서는 15차원의 데이터를 아두이노 MEGA에서는 42차원 데이터에 대해 ELM 알고리즘 계산이 가능하다는 결론을 얻을 수 있다. 그리고 최대 계산 가능한 크기에서 역행렬 계산은 1.
질의응답
핵심어
질문
논문에서 추출한 답변
최근의 센서디바이스는 어떤 특징을 가지고 있는가?
최근의 센서디바이스는 센싱 기능만 하지 않고, 마이크로프로세서를 포함해 파라미터 설정 최적화, 출력 보정등 지능적인 프로세싱 기능을 포함하고 있다. 센서들도 실시간 데이터를 처리하고 해석할 수 있는 기능이 필요하기 때문이다.
온보드 디바이스에 딥러닝 방법을 적용하기 어려운 이유는 무엇인가?
가장 대표적인 기계학습 알고리즘인 딥러닝 방법은 최근 여러 응용 분야에서 활용성이 입증돼 널리 사용되고 있다. 그러나 많은 학습데이터를 사용해 학습하는 과정에서 많은 메모리와 학습시간이 필요하기 때문에 CPU 성능과 메모리 용량이 충분하지 않은 온보드 디바이스에 딥러닝 기술을 적용하기는 어렵다. 예를 들어 메모리 용량이 2~8KB 인 아두이노 기반의 디바이스를 사용한다면 알고리즘 구현에 많은 한계가 발생한다.
가상현실 콘텐츠와 결합되는 하드웨어에는 무엇이 있는가?
특히 인공지능 기술의 급격할 발전과 맞물려 스마트 콘텐츠에 대한 연구가 기술 개발 뿐만 아니라 인프라 구축 및 지원을 포함한 플랫폼 관점에서도 조명되고 있다. 특히 가상현실 콘텐츠는 소프트웨어뿐 만 아니라 사용자 경험을 극대화하기 위해서 모션 컨트롤러, 글러브 컨트롤러, 링 컨트롤러 등 다양한 하드웨어와 결합되고 있다[1][2][3].
참고문헌 (15)
Faure, Bouyer, Mercier, Robitaille, McFadyen, Fortin Cote, Cardou, Gosselin, Bonenfant, Laurendeau, "Development of a virtual-reality system with large-scale haptic interface and accessible motion capture for rehabilitation", 2017 International Conference on Virtual Rehabilitation (ICVR), Pages: 1 - 2.
Sukun Li, Avery Leider, Meikang Qiu, Keke Gai, Meiqin Liu, "Brain-Based Computer Interfaces in Virtual Reality", 2017 IEEE 4th International Conference on Cyber Security and Cloud Computing (CSCloud), Pages: 300 - 305.
S.-h. Kim and D.-H. Shin, "Effects of whole body movements in using virtual reality headsets on visually induced motion sickness", Journal of Digital Contents Society, Vol. 18, No. 2, pp. 283-291, Apr. 2017.
Adnan O. M, Abuassba, Dezheng Zhang, Xiong Luo, Ahmad Shaheryar, Hazrat Ali, "Improving Classification Performance through an Advanced Ensemble Based Heterogeneous Extreme Learning Machines", Comp. Int. and Neurosc. 2017: 3405463:1-3405463:11 (2017).
G. Huang, S. Song, and K. You, "Trends in extreme learning machines: a review", Neural Networks, vol. 61, pp. 32.
Z. Bai, G.-B. Huang, D. Wang, H. Wang, M.B. Westover, "Sparse extreme learning machine for classification", IEEE Transactions on Cybernetics (2014).
G. Huang, S. Song, J. Gupta, C. Wu, "Semi-supervised and unsupervised extreme learning machines", IEEE Transactions on Cybernetics (2014).
F. Cao, B. Liu, D.S. Park, "Image classification based on effective extreme learning machine", Neurocomputing, 102 (2013), pp. 90-97.
J. Neter, M. H. Kutner, C. J. Nachtsheim, and W. Wasserman, "Applied Linear Regression Models", 3rd ed. Chicago, IL: Irwin, 1996.
G.-B. Huang, H. Zhou, X. Ding, and R. Zhang, "Extreme learning machine for regression and multiclass classification", IEEE Trans. Syst. Man Cybern. Part B: Cybernetics, 42:513-529, 2012.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.