8 비트 마이크로 컨트롤러에서 신경망을 실행하고 훈련 할 수 있습니까?


11

최근에 제한된 환경 의 신경망 (특히 저렴한 8 비트 마이크로 컨트롤러의 신경망 구현 )과 IoT 장치에 대한 응용 프로그램 (예 : 센서 입력을 기반으로 물건을 예측하기위한 회귀) 에 대해 읽었습니다 .

이는 처리 시간이 중요하지 않고 처리 할 데이터가 상대적으로 드문 간단한 응용 프로그램에 이상적입니다. 그러나 추가 연구에 따르면 자원이 제한된 환경에서 신경망을 훈련시키는 것은 좋지 않은 생각입니다 ( 마이크로 컨트롤러에서 신경망을 실행할 수 있습니까?에 대한 답변 참조 ).

이것이 내가 연결 한 Cotton, Wilamowski 및 Dündar의 접근 방식에도 여전히 적용됩니까? IoT 네트워크의보다 강력한 장치에서 낮은 리소스 사용을 위해 설계된 네트워크를 훈련시켜야합니까?

상황에 따라 열 설정을 전송하는 센서가있는 경우 해당 시간 및 시간 등을 기준으로 원하는 보일러 설정을 예측하기 위해 논문에 설명 된 신경망을 고려하고 있습니다. 훈련은 신경망의 네트워크를 변경하는 데 유용합니다 사용자가 제공 한 더 많은 데이터를 기반으로 출력합니다. 이 Quora 질문 은 비슷한 시나리오를 잘 설명하고 신경망의 구현 세부 사항을 설명하지만 내 질문은 액추에이터 자체에서 네트워크를 실행할 수 있는지 여부에 더 중점을 둡니다.


Curios, 각 센서 / 액추에이터 노드 또는 일부 (반) 중앙화 된 "두뇌"에서 신경망을 운영하려고합니까 (물론 8 비트 제한이 반드시 적용되는 것은 아님)?
Ghanima

@Ghanima 가능한 경우 제한된 제약 조건으로 작동하는지 확실하지 않지만 추가 노드를 절약하기 위해 액추에이터 노드에서 수행하고 싶습니다.
Aurora0001

@ Aurora0001 여기에있는 특정 컨트롤러는 NN 교육에 적합하지 않을 수 있지만, 내장 된 컴퓨터 비전 세계에서이를 수행하기위한 공동 노력이 있습니다. 그러한 작업에 적합한 아키텍처를 갖춘 마이크로 컨트롤러를 찾으려면 컴퓨터 비전 산업을 위해 이러한 종류의 하드웨어를 개발하는 회사를 찾으십시오. 나는 그것의 일부가 목적에 맞게 용도 변경 될 수 있다고 확신한다. 시작하기에 좋은 장소
grldsndrs

@grldsndrs 환상적인, 참조 주셔서 감사합니다. 충분하다고 생각되면 추가 답변으로 자유롭게 게시하십시오. (나는 확실히 그것에
만족할

1
8 비트 프로세서는 더 넓은 워드 프로세서가 더 느리게 (작업에 따라) 수행 할 수있는 모든 작업을 수행 할 수 있습니다. 그러나 8 비트 프로세서는 기본 주소 공간이 제한적인 경향이 있으므로 매우 큰 메모리를 관리하기 위해 간접적 수단을 사용해야하며, 마이크로 컨트롤러의 경우 비교적 적은 양의 온칩 메모리가 제공되는 경향이 있습니다. 최저 비용 이외의 비용 차이는 점점 줄어들고 있습니다. MCU 비용의 주요 원인은 ALU 폭이 아닌 메모리입니다.
Chris Stratton 2012 년

답변:


9

첫 번째 논문 에 따르면 달리기는 문제가되지 않습니다. 그것이 목적이었습니다. 최대 무게에는 제한이 있습니다 :

현재이 마이크로 컨트롤러에 내장 된 아키텍처에 대한 제한은 필요한 무게의 수에 의해서만 제한됩니다. 신경망은 현재 256 개의 가중치로 제한됩니다. 그러나 대부분의 임베디드 응용 프로그램의 경우이 256 무게는 시스템을 제한하지 않아야합니다.


훈련에 관해서는, 내가 설명한 구현을 이해하는 한 PIC 컨트롤러는 외부 소스로부터 파라미터를 수신합니다.

신경망 순방향 계산은 각 뉴런이 일련의 중첩 루프에서 개별적으로 계산되도록 작성됩니다. 각 루프의 계산 횟수와 각 노드의 값은 모두 메모리의 간단한 배열에 저장됩니다.

[...]

이 어레이에는 네트워크의 아키텍처와 가중치가 포함됩니다. 현재 시연을 위해 이러한 어레이는 칩이 프로그래밍 될 때 사전로드되지만 최종 버전에서는 필요하지 않습니다. 마이크로 컨트롤러는 원격 위치에서 무게 및 지형 데이터를 수신하는 온보드 RS232 직렬 포트를 사용하는 간단한 부트 로더를 포함하도록 쉽게 수정할 수 있습니다. 이것은 칩이 현장에있는 동안 무게 또는 전체 네트워크가 수정 될 수있게한다.

나는 훈련이 외부에서도 수행된다고 생각합니다.

이 백서는 또한 PIC의 메모리에 사전 프로그램 된 값을 결정하는 데 사용 된 신경망 트레이너에 대한 참조도 제공합니다.

이제는 네트워크 아키텍처와 이들에 사용할 알고리즘을 설명하는 첫 번째 것을 살펴 보았습니다. 그러나 여기에 사용 된 신경망 트레이너 소프트웨어는 MATLAB에서 구현됩니다.

현재 완전히 연결된 네트워크를 훈련시킬 수있는 신경망 훈련 소프트웨어는 거의 없습니다. 따라서 MATLAB에서 그래픽 사용자 인터페이스가있는 패키지가 개발되었습니다. 이 소프트웨어를 사용하면 초기 가중치, 교육 매개 변수, 데이터 세트 및 여러 강력한 알고리즘을 선택할 수있을뿐만 아니라 매우 복잡한 아키텍처에 쉽게 들어갈 수 있습니다.

완전히 연결된 네트워크는 계층 별 아키텍처보다 동일한 작업에 대해 가중치가 낮습니다. 따라서 마이크로 컨트롤러에 더 적합합니다.

나는 신경망 전문가가 아니며 상당히 복잡해서 틀릴 수 있지만,이 논문을 바탕으로 Cotton, Wilamowski 및 Dündar의 접근에는 훈련을 수행하기 위해 더 강력한 외부 플랫폼이 필요하다고 말합니다.


마이크로 컨트롤러에 신경 네트워크를 실행 정보, ST 마이크로 일렉트로닉스는 툴킷 발표 STM32를위한 최적화 된 코드로 변환 신경 회로망 : STM32Cube.AI를 변환에 사전 교육을받은 자신의 STM32 마이크로 컨트롤러의 가장 인기있는 도서관에서 신경망.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.