모쿠 버전 3.3 새로운 것을 가져온다 뉴럴 네트워크 악기에 Moku:Pro 사용자가 빠르고 유연한 신호 분석, 노이즈 제거, 센서 컨디셔닝, 폐쇄 루프 피드백 등을 위해 인공 신경망을 구현할 수 있도록 합니다. 신경망의 기본 사항에 익숙하지 않거나 연구 및 개발 목표에 어떻게 도움이 될 수 있는지 알고 싶다면 계속 읽어 실제 응용 프로그램과 튜토리얼을 살펴보세요.
첫째, 이러한 시스템에 대해 "인공 신경망"(ANN)이라는 용어가 더 정확한 용어라는 점에 유의하는 것이 중요합니다. 왜냐하면 이러한 시스템은 생물학적 뉴런이 아니라 소프트웨어 기반이기 때문입니다. 이러한 설명을 염두에 두고 ANN을 지칭하기 위해 "신경망"이라는 용어를 사용할 것입니다. 이 소개에서는 합성곱, 순환 및 변압기 아키텍처와 같은 복잡한 설정이 아닌 완전히 연결된 신경망만 고려합니다.
신경망은 서로 연결된 노드, 즉 뉴런들이 층으로 배열된 시스템입니다. 첫 번째 층은 외부 데이터를 입력으로 받습니다. 이후 각 뉴런은 이전 층의 입력에 대한 가중 합을 계산하고, 편향이라는 값을 더합니다. 이 값은 활성화 함수를 통과하는데, 이 함수는 비선형성을 도입하여 신경망이 복잡한 패턴을 학습할 수 있도록 합니다. 마지막 층은 신경망의 출력을 생성하며, 그 사이의 모든 층은 은닉층이라고 합니다. 신경망은 학습을 통해 가중치와 편향을 조정하여 시간이 지남에 따라 정확도를 향상시킵니다.
수학적으로 입력 레이어를 다음과 같이 상상해 보세요. 1. 네 ✕ XNUMX 매트릭스 N 는 입력층의 노드 수이고 행렬의 각 요소는 활성화 값에 해당합니다(그림 1 참조).

그림 1: 입력 계층, 은닉 계층, 출력 계층을 보여주는 신경망 아키텍처.
다음은 숨겨진 레이어입니다. 숨겨진 레이어와 그 안의 노드 수는 모델의 복잡성과 사용 가능한 계산 능력에 따라 달라집니다. 숨겨진 레이어의 활성화는 이전 레이어의 활성화를 조합하여 계산되며, 각 노드는 입력 레이어 값에 다른 가중치와 편향을 적용합니다. 이는 그림 2에서 선형 대수 용어로 표시됩니다.
그림 2: 은닉층의 활성화는 이전 층의 활성화를 조합하여 계산됩니다.
입력 레이어가 1. 네 ✕ XNUMX 행렬 (\(n_1\), \(n_2\)), 다음 활성화는 이것을 곱하여 얻습니다. 엠✕엔 매트릭스 M 은닉층의 노드 수입니다. 행렬의 각 요소는 가중치이며, \(w_{mn}\)으로 표현됩니다., 그 의미 MN 각 레이어에 대한 매개변수가 필요합니다. 결과는 다음과 같습니다. 엠✕1 행렬은 바이어스 값(\(b_1\))에 의해 오프셋됩니다., \(b_2\)…). 새로운 활성화를 계산한 후, "활성화 함수"를 통해 전달됩니다. 활성화 함수는 클리핑 및 정규화와 같은 비선형 동작을 제공할 수 있으므로 네트워크가 단순히 일련의 행렬 곱셈일 경우보다 훨씬 더 강력해집니다.
각 활성화 함수는 고유한 속성을 가지고 있으며, "올바른" 선택은 응용 분야에 따라 크게 달라집니다. 일반적인 옵션으로는 ReLU(Rectified Linear Unit)가 있는데, 이는 계산 효율이 높지만 음수 값을 잘라내기 때문에 특정 학습 시나리오에서는 어려움을 겪을 수 있습니다. Tanh 함수나 시그모이드 함수와 같은 다른 함수들은 분류에 유용한 부드럽고 유계적인 출력을 생성하지만, 큰 입력 값에서는 곡선이 평평해지는 등 심층 신경망의 학습을 약화시킬 수 있습니다. 마지막으로, 선형 함수는 회귀 문제에 적합하지만, 복잡한 비선형 패턴을 모델링하는 신경망의 성능을 제한합니다. 각 계층은 서로 다른 활성화 함수를 사용할 수 있으며, 선택은 특정 응용 분야 요구 사항과 신경망 아키텍처에 따라 달라집니다.
여러 개의 숨겨진 계층을 거친 후, 데이터는 마침내 출력 계층에 도착합니다. 출력 노드에서 활성화 값은 관심 있는 일부 매개변수에 해당합니다. 예를 들어, 오실로스코프에서 수집한 시계열 데이터가 입력에 입력되고 네트워크의 목표가 신호를 사인파, 사각파, 톱니파 또는 DC 신호로 분류하는 것이라고 가정합니다. 출력 계층에서 각 노드는 이러한 옵션 중 하나에 해당하며, 가장 높은 값의 활성화는 신호의 형태에 대한 네트워크의 최상의 추측을 나타냅니다. 한 활성화가 1에 가깝고 다른 활성화가 0에 가까우면 네트워크 추측의 신뢰도가 높습니다. 활성화 값이 비슷한 경우 답에 대한 신뢰도가 낮음을 나타냅니다.
신경망은 어떻게 작동하나요?
은닉층의 가중치와 편향을 조정하지 않으면 신경망은 복잡한 난수 생성기에 불과합니다. 모델의 정확도를 개선하려면 사용자가 입력 데이터 세트와 예상 답변이 모두 알려진 학습 데이터를 제공해야 합니다. 그런 다음 모델은 학습 세트에 대한 자체 답변을 계산하여 실제 값과 비교할 수 있습니다. 비용 함수라고 하는 계산된 차이는 모델의 성능에 대한 정량적 평가를 제공합니다.
이 모델은 학습을 통해 이 비용 함수를 줄이는 것을 목표로 합니다. 예를 들어, 평균 제곱 오차(MSE)는 예측값과 실제값의 차이 제곱의 평균을 구합니다. 옵티마이저는 이 비용 함수를 효율적으로 최소화하는 데 사용되는 방법입니다. 케라스와 같은 파이썬 머신러닝 패키지는 적절한 비용 함수와 옵티마이저를 선택하는 데 도움을 줍니다.
주어진 데이터 세트에 대한 비용 함수를 계산한 후, 숨겨진 레이어의 가중치와 편향은 비용 함수를 최소화하는 목표로 다양한 미적분 연산을 통해 조정될 수 있습니다. 이는 벡터 미적분학의 경사 하강 개념과 유사하며 문헌에서 추가로 탐구할 수 있습니다[1]. 역전파라고 하는 이 프로세스, 비용 함수를 통해 얻은 정보를 계층을 따라 거꾸로 계산하여 인간의 입력 없이도 모델이 학습하거나 자체적으로 조정되도록 합니다.
학습 데이터는 종종 신경망을 여러 번 거칩니다. 모델에 제공되는 이 데이터의 각 인스턴스는 에포크라고 합니다. 일반적으로 일부 학습 데이터는 검증을 위해 예약됩니다. 검증에서 학습된 네트워크는 이 예약된 데이터 세트의 출력과 알려진 올바른 출력과 비교되는 예측을 추론하는 데 사용됩니다. 이는 비용 함수 값만보다 모델의 성능에 대한 더 정확한 그림을 제공하는데, 이는 모델이 새롭고 참신한 입력에 대한 결과를 얼마나 잘 일반화할 수 있는지를 나타내기 때문입니다.
신경망에는 어떤 유형이 있나요?
신경망은 비슷한 원리로 작동하지만, 응용 프로그램에 따라 다양한 형태를 취할 수 있습니다. 몇 가지 일반적인 신경망 예는 다음과 같습니다.
- 피드포워드 신경망(FNN): 이는 위의 예에서 논의한 것과 같은 표준 형식입니다. FNN에서 데이터는 이전 입력에 대한 피드백이나 메모리 없이 네트워크를 통해 전달됩니다. 전형적인 예는 이미지로, 각 픽셀은 신경망에 대한 입력이고 출력은 해당 이미지의 분류입니다.
- 합성 신경망(CNN): 이것은 FNN의 하위 유형으로, 필터를 사용하여 이미지의 특징을 감지하는 데 일반적으로 사용됩니다. 일반적으로 이미지의 크기가 큰 경우 이러한 필터는 입력 이미지의 차원을 훨씬 적은 수의 가중치로 줄이는 역할을 합니다. 그러면 숨겨진 계층의 각 뉴런이 전체 입력에서 동일한 특징을 스캔할 수 있으므로 CNN이 이미지 변환에 강해집니다.
- 순환 신경망(RNN): 피드포워드 네트워크와 달리 RNN은 은닉 계층에서 피드백을 사용합니다. 피드백 메커니즘은 시스템에 메모리를 제공하므로 주어진 계층의 출력은 이전 입력에 따라 달라질 수 있습니다. 이는 RNN을 시계열, 음성 및 오디오 데이터와 같은 순차적 데이터 세트에 대한 탁월한 선택으로 만듭니다.
- 오토인코더: 오토인코더는 신경망의 특수한 구성으로, 일반적으로 FNN 또는 CNN이며, 주어진 데이터를 축소된 차원 공간으로 인코딩한 다음 인코딩된 데이터에서 이를 재구성하거나 디코딩합니다. 개념적으로 이는 통계 및 생물정보학에 유용한 주성분 분석(PCA)과 매우 유사합니다.
신경망은 신호 처리에 어떻게 사용되나요?
신경망은 대규모 언어 모델 구동, 이미지 해독 및 번역과 같은 용도로 인기가 있지만 신호 처리에도 매우 유용합니다. 머신 러닝이 측정 설정을 개선할 수 있는 몇 가지 예는 다음과 같습니다.
- 제어 시스템: 일부 시스템에서는 특정 제어 상태를 달성하는 데 필요한 입력을 미리 알기 어렵거나, 달리 말하면 플랜트 모델을 반전하기 어렵습니다. 이러한 경우 파형 생성기 또는 함수 생성기가 플랜트를 프로브하는 동안 오실로스코프가 결과 상태를 모니터링합니다. 그런 다음 신경망은 현재 상태와 필요한 제어 간의 차이에서 역 매핑을 학습합니다. PID 컨트롤러와 함께 사용하면 PID 매개변수의 자체 튜닝이 가능해질 수 있습니다[2].
- 센서 컨디셔닝: 신경망은 센서 데이터를 가져와 위상 왜곡이나 케이블 지연, 광검출기의 빔 정렬 오류와 같은 체계적 오류를 보상할 수 있습니다. 이 접근 방식을 사용하면 실험의 다음 단계로 전달되기 전에 데이터를 수정할 수 있습니다.
- 신호 노이즈 제거: 이 기술은 신경망을 자동 인코더로 사용하여 신호의 주요 특징을 추출한 다음 이러한 특징을 기반으로 재구성합니다. 무작위 노이즈는 주요 특징이 아니므로 재구성된 신호는 노이즈가 없어야 하며, 기본적으로 신경망을 노이즈 필터로 사용해야 합니다(그림 3 참조).
- 신호 분류: 신경망은 시간 시리즈와 같은 입력 신호를 알려진 템플릿 또는 템플릿 시리즈와 비교할 수 있습니다. 이를 통해 사용자는 신호 클래스를 빠르게 분류하고, 데이터 세트의 이상치 또는 오류를 식별하고, 무작위 이벤트를 감지하거나 IQ 사분위 진폭을 기반으로 양자 상태를 식별할 수 있습니다[3].
그림 3: 신경망을 통과한 후 재구성되고 잡음이 제거된 신호.
FPGA 기반 신경망의 이점은 무엇입니까?
신경망은 일반적으로 CPU 및/또는 GPU의 조합으로 구축되고 실행됩니다. 이 접근 방식은 놀라운 컴퓨팅 파워를 제공하지만 리소스 집약적이기도 합니다. 대규모 AI 모델은 에너지를 많이 소모하며 이전에 언급한 유형의 신호 처리 애플리케이션에는 종종 과도합니다.
FPGA는 고성능 컴퓨터만큼 본질적으로 강력하지는 않습니다. 그러나 유연성 덕분에 소규모 신경망 구현에 강력한 후보로 자리매김했습니다. FPGA의 병렬 처리 능력은 네트워크를 통한 정보의 순방향 및 역방향 전파와 관련된 선형 대수 및 기타 복잡한 수학 연산에 도움이 됩니다. 대규모 신경망은 FPGA의 피드포워드 패스에 더 많은 사이클을 필요로 하는 경우가 많은데, 이는 단일 사이클 처리가 FPGA의 공간 용량과 관련 메모리에 의해 제한되기 때문입니다.
FPGA 기반 신경망은 실험 상황에 이상적입니다. 실시간 데이터를 처리하는 속도가 호스트 PC와 통신하지 않고도 빠른 제어와 의사 결정을 가능하게 하기 때문입니다. FPGA는 또한 재구성 가능하므로 사용자는 신경망을 자신의 필요에 맞게 빠르게 구성할 수 있습니다. 마지막으로, FPGA에 구현된 신경망은 소형이기 때문에 리소스와 에너지 소비를 줄이는 데 도움이 될 수 있습니다[4][5].
Moku 신경망이란 무엇인가요?
빠르고 유연한 FPGA 기반 테스트 및 측정 장비의 재구성 가능한 제품군 외에도 Moku:Pro 이제 Moku를 제공합니다 뉴럴 네트워크. FPGA의 다양성과 빠른 처리 속도의 이점을 활용하여 신경망은 Moku와 같은 다른 계측기와 함께 사용할 수 있습니다. 파형 발생기, PID 컨트롤러글렌데일 오실로스코프 신호 분석, 잡음 제거, 센서 컨디셔닝, 폐쇄 루프 피드백과 같은 응용 분야에서 사용됩니다.
당신이 사용할 수 Python Moku Neural Network를 사용하여 자신의 신경망을 개발하고 훈련하고 Moku:Pro에 업로드합니다. 다중 장비 모드. 이를 통해 최대 100개의 입력 채널 또는 시계열 데이터 채널 XNUMX개를 분석하고, 최대 XNUMX개의 출력을 통해 실험 데이터를 실시간으로 처리할 수 있습니다. 모두 Moku:Pro에서 가능합니다. Moku 신경망은 각각 최대 XNUMX개의 뉴런으로 구성된 최대 XNUMX개의 고밀도 레이어와 애플리케이션에 따라 XNUMX개의 다른 활성화 함수를 제공합니다.
FPGA 기반 Moku 신경망이 귀하의 연구에 어떤 이점을 제공하는지 알아보고 싶다면 이것을 확인하세요. 단계별 튜토리얼. 이 가이드는 Python 설치, Moku Neural Network 구축 및 교육, 구현을 포함한 모든 기본 사항을 안내합니다. 이미 신경망의 기본 개념에 익숙하다면 고급의 즉시 사용 가능한 예제를 찾을 수 있습니다. 여기에서 확인하세요..
비디오 튜토리얼을 선호하시나요? 주문형 웨비나를 시청하세요. 빠르고 유연한 신호 분석, 폐쇄 루프 피드백 등을 위한 FPGA 기반 신경망을 구현하는 방법을 학습합니다.
인용
[1] K. Clark, 수업 강의, 주제: “신경망 그래디언트 컴퓨팅,” CS224n, 스탠포드 대학교, 미국, 2019. https://web.stanford.edu/class/cs224n/readings/gradient-notes.pdf
[2] J. Wang, M. Li, W. Jiang, Y. Huang 및 R. Lin, “모션 제어 시스템을 위한 FPGA 기반 신경망 PID 컨트롤러 설계.” 센서, 권. 22, 아니. 3, p. 889년 2022월 XNUMX호. https://doi.org/10.3390/s22030889
[3] NR 보라 외., “ML 기반 FPGA 기반 실시간 양자 상태 판별을 통한 중간 회로 측정 가능”, arXiv:2406.18807 [quant-ph], 2024년 XNUMX월.
https://arxiv.org/abs/2406.18807
[4] A. El Bouazzaoui, A. Hadjoudja, O. Mouhib, "FPGA의 실시간 적응 신경망: 동적 분류기 선택을 통한 적응성 향상", arXiv:2311.09516v2 [cs.AR], 2023년 XNUMX월.
https://arxiv.org/html/2311.09516v2
[5] C. Wang 및 Z. Luo, “FPGA 기반 신경망의 최적 설계 검토” 응용과학, 제12권, 제3호, 10771쪽, 2022년 XNUMX월. https://doi.org/10.3390/app122110771

