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

신경망 훈련 데이터 세트:Python 신경망 훈련 및 검증 방법

이 기사에서는 Excel에서 생성한 샘플을 사용하여 다층 퍼셉트론을 훈련시킨 다음 네트워크가 유효성 검사 샘플을 사용하여 수행하는 방식을 볼 것입니다. .

Python 신경망을 개발하려는 경우 올바른 위치에 있습니다. Excel을 사용하여 네트워크에 대한 교육 데이터를 개발하는 방법에 대한 이 기사의 논의를 자세히 살펴보기 전에 배경 정보에 대해 아래 시리즈의 나머지 부분을 확인하는 것이 좋습니다.

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

    실제 시나리오에서 훈련 샘플은 신경망이 이 모든 정보를 일관된 입출력 관계로 일반화하는 데 도움이 되는 "솔루션"과 결합된 일종의 측정 데이터로 구성됩니다.

    예를 들어, 신경망이 색상, 모양 및 밀도를 기반으로 토마토의 섭식 품질을 예측하기를 원한다고 가정해 보겠습니다. 색상, 모양 및 밀도가 전반적인 맛과 얼마나 정확히 관련되는지는 모르지만 할 수 있습니다. 색상, 모양 및 밀도를 측정하면 합니다. 미뢰가 있다. 따라서 수천 개의 토마토를 수집하고 관련 물리적 특성을 기록하고 각 토마토(가장 좋은 부분)를 맛본 다음 이 모든 정보를 테이블에 입력하기만 하면 됩니다.

    각 행은 내가 하나의 훈련 샘플이라고 부르는 것이며 4개의 열이 있습니다. 이 중 3개(색상, 모양 및 밀도)는 입력 열이고 네 번째는 목표 출력입니다.


    훈련하는 동안 신경망은 세 개의 입력 값과 출력 값 사이의 관계(일관된 관계가 존재하는 경우)를 찾습니다.

    훈련 데이터 정량화

    모든 것은 숫자 형식으로 처리되어야 함을 명심하십시오. "plum-shaped" 문자열을 신경망에 대한 입력으로 사용할 수 없으며 "군침이 도는" 문자열은 출력 값으로 작동하지 않습니다. 측정 및 분류를 수량화해야 합니다.

    모양의 경우 각 토마토에 -1에서 +1 사이의 값을 할당할 수 있습니다. 여기서 -1은 완전한 구형을 나타내고 +1은 매우 길쭉한 것을 나타냅니다. 먹는 품질의 경우 각 토마토를 "먹을 수 없음"에서 "맛있게 먹을 수 있음"에 이르는 5점 척도로 평가한 다음 원-핫 인코딩을 사용하여 평가를 5개 요소 출력 벡터에 매핑할 수 있습니다.

    다음 다이어그램은 이러한 유형의 인코딩이 신경망 출력 분류에 사용되는 방식을 보여줍니다.


    원-핫 출력 방식을 사용하면 로지스틱-시그모이드 활성화와 호환되는 방식으로 이진이 아닌 분류를 수량화할 수 있습니다. 로지스틱 함수의 출력은 출력 값이 최소 또는 최대에 매우 가까운 입력 값의 무한 범위에 비해 곡선의 전환 영역이 좁기 때문에 본질적으로 이진법입니다.

    따라서 이 네트워크를 단일 출력 노드로 구성한 다음 출력 값이 0, 1, 2, 3 또는 4(0, 0.2, 0.4, 0.6 또는 0.8)인 훈련 샘플을 제공하고 싶지 않습니다. 0 대 1 범위에 머물고 싶다면); 출력 노드의 로지스틱 활성화 함수는 최소 및 최대 등급을 강력하게 선호합니다.

    신경망은 모든 토마토가 먹을 수 없거나 맛있다고 결론짓는 것이 얼마나 터무니없는 일인지 이해하지 못합니다.

    훈련 데이터 세트 생성

    12부에서 논의한 Python 신경망은 Excel 파일에서 훈련 샘플을 가져옵니다. 이 예에서 사용할 교육 데이터는 다음과 같이 구성됩니다.

    현재 Perceptron 코드는 하나의 출력 노드로 제한되어 있으므로 우리가 할 수 있는 일은 참/거짓 유형의 분류를 수행하는 것뿐입니다. 입력 값은 다음 Excel 공식을 사용하여 생성된 –5와 +5 사이의 임의의 숫자입니다.

    =RANDBETWEEN(-10, 10)/2

    스크린샷과 같이 출력은 다음과 같이 계산됩니다.

    =IF(AND(A2>0, B2>0, C2<0), 1, 0)

    따라서 출력은 input_0이 0보다 크고, input_1이 0보다 크며, input_2가 0보다 작은 경우에만 참입니다. 그렇지 않으면 거짓입니다.

    이것은 Perceptron이 훈련 데이터에서 추출해야 하는 수학적 입력-출력 관계입니다. 원하는 만큼 샘플을 생성할 수 있습니다. 이와 같은 간단한 문제의 경우 샘플 5000개와 Epoch 1개로 매우 높은 분류 정확도를 달성할 수 있습니다.

    네트워크 교육

    입력 차원을 3으로 설정해야 합니다(I_dim =3, 내 변수 이름을 사용하는 경우). 네 개의 숨겨진 노드(H_dim =4), 학습률 0.1(LR =0.1).

    training_data =pandas.read_excel(...) 찾기 명세서를 입력하고 스프레드시트의 이름을 삽입하십시오. (엑셀에 접근할 수 없는 경우 Pandas 라이브러리도 ODS 파일을 읽을 수 있습니다.) 그런 다음 실행 버튼을 클릭하면 됩니다. 2.5GHz Windows 노트북에서 5,000개의 샘플을 사용하여 교육하는 데 몇 초밖에 걸리지 않습니다.

    파트 12에 포함된 완전한 "MLP_v1.py" 프로그램을 사용하는 경우 유효성 검사(다음 섹션 참조)는 교육이 완료된 직후 시작되므로 네트워크를 교육하기 전에 유효성 검사 데이터를 준비해야 합니다. .

    네트워크 검증

    네트워크의 성능을 검증하기 위해 두 번째 스프레드시트를 만들고 정확히 동일한 공식을 사용하여 입력 및 출력 값을 생성한 다음 훈련 데이터를 가져오는 것과 같은 방식으로 이 검증 데이터를 가져옵니다.

    다음 코드 발췌는 기본 유효성 검사를 수행하는 방법을 보여줍니다.


    표준 피드포워드 절차를 사용하여 출력 노드의 활성화 후 신호를 계산한 다음 if/else 문을 사용하여 활성화 후 값을 참/거짓 분류 값으로 변환하는 임계값을 적용합니다.

    분류 정확도는 분류 값을 현재 검증 샘플의 목표 값과 비교하여 올바른 분류 수를 세고 검증 샘플 개수로 나누어 계산합니다.

    np.random.seed(1) 명령어가 주석 처리되면 가중치는 프로그램을 실행할 때마다 다른 임의의 값으로 초기화되며 결과적으로 분류 정확도가 한 실행에서 다음 실행으로 변경됩니다. 위에 지정된 매개변수, 5000개의 훈련 샘플 및 1000개의 검증 샘플을 사용하여 15개의 개별 실행을 수행했습니다.

    가장 낮은 분류 정확도는 88.5%, 최고는 98.1%, 평균은 94.4%였습니다.

    결론

    우리는 신경망 훈련 데이터와 관련된 몇 가지 중요한 이론적 정보를 다루었고 파이썬 언어 다층 퍼셉트론으로 초기 훈련 및 검증 실험을 했습니다. 신경망에 대한 AAC 시리즈를 즐기시기 바랍니다. 첫 번째 기사 이후로 많은 진전이 있었고 아직 논의해야 할 것이 훨씬 더 많습니다!


    산업용 로봇

    1. Python에서 현재 날짜와 시간을 얻는 방법은 무엇입니까?
    2. 스파이킹 신경망용 뉴로모픽 AI 칩 데뷔
    3. VHDL 시뮬레이터 및 편집기를 무료로 설치하는 방법
    4. 신경망 교육의 국소 최소값 이해
    5. 은닉층 신경망의 정확도를 높이는 방법
    6. 신경망에는 몇 개의 은닉 계층과 은닉 노드가 필요합니까?
    7. 5G의 상위 5가지 문제 및 과제
    8. 무선 센서 네트워크를 공급하고 관리하는 방법
    9. 당신과 나를 위한 BECKER의 진공 펌프 교육
    10. 로봇 용접 교육 시간을 줄이는 방법