산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial Internet of Things >> 임베디드

간단한 퍼셉트론 신경망 예제를 사용하여 데이터를 분류하는 방법

이 문서는 퍼셉트론 신경망의 기본 기능을 보여주고 교육의 목적을 설명합니다.

이 기사는 Perceptron 신경망에 대한 시리즈의 일부입니다.

처음부터 시작하거나 앞으로 나아가고 싶다면 여기에서 다른 기사를 확인할 수 있습니다.

<올>
  • 신경망을 사용하여 분류를 수행하는 방법:퍼셉트론이란?
  • 간단한 퍼셉트론 신경망을 사용하여 데이터를 분류하는 방법
  • 기본 퍼셉트론 신경망 훈련 방법
  • 단순 신경망 훈련 이해
  • 신경망 훈련 이론 소개
  • 신경망의 학습률 이해
  • 다층 퍼셉트론을 사용한 고급 기계 학습
  • 시그모이드 활성화 함수:다층 퍼셉트론 신경망에서의 활성화
  • 다층 퍼셉트론 신경망 훈련 방법
  • 다층 퍼셉트론에 대한 훈련 공식 및 역전파 이해
  • Python 구현을 위한 신경망 아키텍처
  • Python에서 다층 퍼셉트론 신경망을 만드는 방법
  • 신경망을 사용한 신호 처리:신경망 설계 검증
  • 신경망용 데이터 세트 훈련:Python 신경망 훈련 및 검증 방법
  • 단층 퍼셉트론이란 무엇입니까?

    이전 기사에서 우리는 신경망이 레이어로 배열된 상호 연결된 노드로 구성되는 것을 보았습니다. 입력 계층의 노드는 데이터를 분배하고 다른 계층의 노드는 합산을 수행한 후 활성화 함수를 적용합니다. 이러한 노드 간의 연결에는 가중치가 적용됩니다. 즉, 각 연결은 전송된 데이터에 스칼라 값을 곱합니다.


    이 구성을 단일 레이어 퍼셉트론이라고 합니다. 예, 알고 있습니다. 두 개의 레이어(입력 및 출력)가 있지만 계산 노드가 포함된 레이어는 하나만 있습니다.

    퍼셉트론으로 분류

    이 기사에서는 다음 신경망을 사용하여 Perceptron 기능을 살펴보겠습니다.


    보시다시피 입력 차원은 3입니다. 우리는 이 퍼셉트론을 3차원 공간에서 문제를 해결하기 위한 도구로 생각할 수 있습니다. 예를 들어 다음과 같은 문제를 제안해 보자. 3차원 공간의 한 점이 x축 아래에 있으면 유효하지 않은 데이텀에 해당한다. 점이 x축 위 또는 위에 있으면 추가 분석을 위해 유지해야 하는 유효한 데이텀에 해당합니다. 데이터를 분류하려면 이 중립 네트워크가 필요하며, 출력 값 1은 유효한 데이터를 나타내고 값 0은 잘못된 데이터를 나타냅니다.

    먼저 3차원 좌표를 입력 벡터에 매핑해야 합니다. 이 예에서는 0을 입력합니다. x 구성 요소, input1 는 y 구성 요소이고 2를 입력합니다. 는 z 성분입니다. 다음으로 가중치를 결정해야 합니다. 이 예제는 네트워크를 훈련할 필요가 없을 정도로 간단합니다. 필요한 가중치를 간단히 생각하고 할당할 수 있습니다.

    이제 출력 노드의 활성화 함수를 다음과 같이 표현되는 단위 단계로 지정하기만 하면 됩니다.

    \[f(x)=\begin{케이스}0 &x <0\\1 &x \geq 0\end{케이스}\]

    퍼셉트론은 다음과 같이 작동합니다. 이후 w1 =0 및 w2 =0인 경우 y 및 z 구성요소는 출력 노드에서 생성된 합계에 기여하지 않습니다. 합계에 영향을 미치는 유일한 입력 데이터는 x 구성 요소이며 w0 때문에 수정되지 않은 상태로 출력 노드에 전달됩니다. =1. 3차원 공간의 점이 x축 아래에 있으면 출력 노드의 합은 음수가 되고 활성화 함수는 이 음수 값을 output0으로 변환합니다. =0. 3차원 공간의 점이 x축 위 또는 위에 있으면 합은 0보다 크거나 같으며 활성화 함수는 이것을 output0으로 변환합니다. =1.

    퍼셉트론으로 문제 해결

    이전 섹션에서 저는 Perceptron을 문제 해결 도구로 설명했습니다. 하지만 Perceptron이 많은 문제를 해결하지 못했다는 사실을 눈치채셨을 수도 있습니다. 저는 문제를 해결하고 필요한 가중치를 할당하여 퍼셉트론에 솔루션을 제공했습니다.

    이 시점에서 우리는 중요한 신경망 개념에 도달했습니다. 입력 데이터와 원하는 출력 값 간의 관계가 매우 간단하기 때문에 유효/무효 분류 문제를 빠르게 해결할 수 있었습니다. 그러나 많은 실제 상황에서 인간이 입력 데이터와 출력 값 사이의 수학적 관계를 공식화하는 것은 극히 어려울 것입니다. 입력 데이터를 수집하고 해당 출력 값을 기록하거나 생성할 수 있지만 입력에서 출력으로 가는 수학적 경로가 없습니다.

    유용한 예는 필기 인식입니다. 손으로 쓴 문자의 이미지가 있고 그 이미지를 "a", "b", "c" 등으로 분류하여 손글씨를 일반 컴퓨터 텍스트로 변환할 수 있다고 가정해 보겠습니다. 쓰고 읽는 방법을 아는 사람은 입력 이미지를 생성한 다음 각 이미지에 올바른 범주를 할당할 수 있습니다. 따라서 입력 데이터와 해당 출력 데이터를 수집하는 것은 어렵지 않습니다. 반면에 입력-출력 쌍을 보고 입력 이미지를 출력 범주로 올바르게 변환하는 수학적 표현이나 알고리즘을 공식화하는 것은 매우 어려울 것입니다.

    따라서 필기 인식 및 기타 많은 신호 처리 작업은 정교한 도구의 도움 없이는 인간이 해결할 수 없는 수학적 문제를 제시합니다. 신경망은 생각하고 분석하고 혁신할 수 없다는 사실에도 불구하고 인간이 할 수 없는 일, 즉 잠재적으로 엄청난 양의 수치 데이터와 관련된 계산을 빠르고 반복적으로 수행할 수 있기 때문에 이러한 어려운 문제를 해결할 수 있습니다. .

    네트워크 교육

    신경망이 입력에서 출력까지 수학적 경로를 생성하도록 하는 프로세스를 훈련이라고 합니다. 입력 값과 해당 출력 값으로 구성된 네트워크 훈련 데이터를 제공하고 이러한 값에 고정된 수학적 절차를 적용합니다. 이 절차의 목표는 네트워크가 이전에 본 적이 없는 입력 데이터로도 올바른 출력 값을 계산할 수 있도록 네트워크의 가중치를 점진적으로 수정하는 것입니다. 본질적으로 훈련 데이터에서 패턴을 찾고 이러한 패턴을 새 데이터에 적용하여 유용한 출력을 생성할 가중치를 생성하는 것입니다.

    다음 다이어그램은 위에서 논의한 유효/무효 분류기를 보여주지만 가중치는 다릅니다. 이것은 1000개의 데이터 포인트로 퍼셉트론을 훈련하여 생성한 가중치입니다. 보시다시피 교육 과정을 통해 Perceptron은 내가 인간 스타일의 비판적 사고를 통해 식별한 수학적 관계를 자동으로 근사화할 수 있었습니다.


    다음 기사에서…

    이 퍼셉트론을 훈련한 결과를 보여줬지만 어떻게 이런 결과를 얻었는지에 대해서는 아무 말도 하지 않았습니다. 다음 기사에서는 단일 레이어 Perceptron 신경망을 구현하는 짧은 Python 프로그램에 대해 설명하고 교육 절차도 설명하겠습니다.


    임베디드

    1. 몰리브덴은 어떻게 사용합니까?
    2. 클라우드 기술을 보호하는 방법은 무엇입니까?
    3. Azure DevOps를 효과적으로 사용하는 방법은 무엇입니까?
    4. 네트워크 프로토콜
    5. 네트워크 생태계가 농장의 미래를 바꾸는 방법
    6. C 라이브러리의 realloc() 함수:어떻게 사용합니까? 구문 및 예
    7. C 라이브러리의 free() 함수:어떻게 사용합니까? 예제로 배우기
    8. 제조업체가 더 나은 고객 경험을 위해 분석을 사용하는 방법
    9. 데이터 복구:NIST의 신경망 모델은 조밀한 이미지에서 작은 개체를 찾습니다.
    10. 커터 그라인더 사용 방법