산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Equipment >> 산업용 로봇

Python 구현을 위한 신경망 아키텍처

이 기사에서는 신경망 훈련 및 분류 실험에 사용할 퍼셉트론 구성에 대해 설명하고 관련 주제도 살펴보겠습니다. 바이어스 노드의.

회로에 관한 모든 것 신경망 기술 기사 시리즈에 오신 것을 환영합니다. 지금까지의 시리즈(아래에 링크됨)에서 우리는 신경망을 둘러싼 이론을 꽤 많이 다루었습니다.

<올>
  • 신경망을 사용하여 분류를 수행하는 방법:퍼셉트론이란?
  • 간단한 퍼셉트론 신경망을 사용하여 데이터를 분류하는 방법
  • 기본 퍼셉트론 신경망 훈련 방법
  • 단순 신경망 훈련 이해
  • 신경망 훈련 이론 소개
  • 신경망의 학습률 이해
  • 다층 퍼셉트론을 사용한 고급 기계 학습
  • 시그모이드 활성화 함수:다층 퍼셉트론 신경망에서의 활성화
  • 다층 퍼셉트론 신경망 훈련 방법
  • 다층 퍼셉트론에 대한 훈련 공식 및 역전파 이해
  • Python 구현을 위한 신경망 아키텍처
  • Python에서 다층 퍼셉트론 신경망을 만드는 방법
  • 신경망을 사용한 신호 처리:신경망 설계 검증
  • 신경망용 데이터 세트 훈련:Python 신경망 훈련 및 검증 방법
  • 이제 이 이론적 지식을 기능적인 퍼셉트론 분류 시스템으로 변환할 준비가 되었습니다.

    먼저 고급 프로그래밍 언어로 구현할 네트워크의 일반적인 특성을 소개하고 싶습니다. 저는 Python을 사용하고 있지만 코드는 C와 같은 다른 언어로 쉽게 번역할 수 있는 방식으로 작성됩니다. 다음 기사에서는 Python 코드에 대한 자세한 설명을 제공하고 그 후에는 다양한 교육 방법을 살펴보겠습니다. 이 네트워크를 사용하고 평가합니다.

    Python 신경망 아키텍처

    소프트웨어는 다음 다이어그램에 표시된 퍼셉트론에 해당합니다.


    다음은 네트워크의 기본 특성입니다.

    <울>
  • 입력 노드의 수는 가변적입니다. 이는 입력 차원이 분류하려는 샘플의 차원과 일치해야 하기 때문에 유연성이 상당한 네트워크를 원하는 경우 필수적입니다.
  • 이 코드는 다중 은닉 레이어를 지원하지 않습니다. 이 시점에서는 필요하지 않습니다. 하나의 숨겨진 레이어로 매우 강력한 분류를 수행할 수 있습니다.
  • 하나의 히든 레이어 내의 노드 수는 가변적입니다. 최적의 숨겨진 노드 수를 찾는 데는 시행착오가 필요하지만 합리적인 시작점을 선택하는 데 도움이 될 수 있는 지침이 있습니다. 다음 기사에서 은닉층 차원 문제를 살펴보겠습니다.
  • 출력 노드의 수는 현재 1개로 고정되어 있습니다. 이 제한은 초기 프로그램을 좀 더 단순하게 만들고 가변 출력 차원을 개선된 버전에 통합할 수 있습니다.
  • 숨겨진 노드와 출력 노드 모두에 대한 활성화 함수는 표준 로지스틱 시그모이드 관계가 됩니다.
  • \[f(x)=\frac{1}{1+e^{-x}}\]

    바이어스 노드란 무엇입니까? (일명 편향은 퍼셉트론이라면 좋습니다)

    네트워크 아키텍처에 대해 논의하는 동안 신경망은 종종 편향 노드(또는 "노드" 없이 그냥 "편향"이라고 부를 수 있음)라는 것을 통합한다는 점을 지적해야 합니다. 바이어스 노드와 관련된 수치는 설계자가 선택한 상수입니다. 예:

    바이어스 노드는 입력 레이어나 은닉 레이어 또는 둘 다에 통합될 수 있습니다. 가중치는 다른 가중치와 같으며 동일한 역전파 절차를 사용하여 업데이트됩니다.

    편향 노드의 사용은 입력 노드 또는 은닉 노드의 수를 쉽게 변경할 수 있는 신경망 코드를 작성하는 중요한 이유입니다. 심지어 하나의 특정 분류 작업, 가변 입력 및 은닉 계층 차원에만 관심이 있더라도 편향 노드를 사용하여 편리하게 실험할 수 있습니다.

    10부에서 노드의 사전 활성화 신호는 내적을 수행하여 계산된다고 지적했습니다. 즉, 두 배열(또는 원하는 경우 벡터)의 해당 요소를 곱한 다음 모든 개별 곱을 더합니다. 첫 번째 배열은 이전 계층의 활성화 후 값을 보유하고 두 번째 배열은 이전 계층을 현재 계층에 연결하는 가중치를 보유합니다. 따라서 선행 레이어 사후 활성화 배열을 x로 표시하고 가중치 벡터를 w로 표시하면 사전 활성화 값은 다음과 같이 계산됩니다.

    \[S_{preA} =w \cdot x =sum(w_1x_1 + w_2x_2 + \cdots + w_nx_n)\]

    이것이 바이어스 노드와 도대체 무슨 관련이 있는지 궁금할 것입니다. 음, 편향(b로 표시)은 이 절차를 다음과 같이 수정합니다.

    \[S_{preA} =( w \cdot x)+b =sum(w_1x_1 + w_2x_2 + \cdots + w_nx_n)+b\]

    바이어스는 활성화 함수에 의해 처리되는 신호를 이동하여 네트워크를 보다 유연하고 견고하게 만들 수 있습니다. 편향 값을 나타내는 문자 b의 사용은 직선에 대한 표준 방정식의 "y 절편"을 연상시킵니다. y =mx + b . 그리고 이것은 우연의 일치가 아닙니다. 편향은 실제로 y절편과 같으며 가중치 배열이 기울기와 같다는 것을 눈치채셨을 수도 있습니다.

    \[S_{preA} =( w \cdot x)+b\]

    \[y =mx + b\]

    가중치, 편향 및 활성화

    훈련 중 노드의 활성화 함수에 전달되는 수치를 생각해보면 가중치는 입력 데이터의 기울기를 높이거나 낮추고 바이어스는 입력 데이터를 수직으로 이동시킵니다. 그러나 이것이 노드의 출력에 어떤 영향을 줍니까? 활성화를 위해 표준 물류 함수를 사용한다고 가정해 보겠습니다.

    fA에서 전환 (x) =0 ~ fA (x) =1은 x =0의 입력 값을 중심으로 합니다. 따라서 바이어스를 사용하여 사전 활성화 신호를 늘리거나 줄임으로써 전환 발생에 영향을 미치고 활성화 기능을 왼쪽 또는 오른쪽으로 이동할 수 있습니다. . 반면 가중치는 입력 값이 x =0을 얼마나 "빠르게" 통과하는지를 결정하며, 이는 활성화 함수의 전환 기울기에 영향을 줍니다.

    결론

    우리는 바이어스 노드와 소프트웨어에서 구현할 첫 번째 신경망의 두드러진 특성에 대해 논의했습니다. 이제 실제 코드를 볼 준비가 되었으며 이것이 바로 다음 기사에서 할 일입니다.


    산업용 로봇

    1. 클라우드 세계를 위한 5가지 네트워크 측정항목
    2. AWS 클라우드의 네트워크 아키텍처 소개
    3. 루프용 파이썬
    4. IoT 설계자를 위한 NB-IoT 아키텍처 분석
    5. Z-Wave 대안을 찾고 계십니까?
    6. CEVA:심층 신경망 워크로드용 2세대 AI 프로세서
    7. 무인 자동차의 핵심은 네트워크 인프라
    8. 파이썬 - 네트워크 프로그래밍
    9. 중소기업을 위한 5가지 기본 네트워크 보안 팁
    10. 설명자:5G가 IoT에 매우 중요한 이유는 무엇입니까?