matlab 신경망 예제

Matlab의 내장 매트릭스 곱셈 함수로 이 데이터를 매트릭스로 저장하여 처리 속도를 크게 높이기로 합니다. (코드는 NumPy 라이브러리를 사용하면 파이썬에서 복제할 수도 있습니다.) Matlab에서 쉽게 읽을 수 있도록 문서를 약간 수정해야 합니다. 명령은 출력을 일반의 경우 “N”으로 나열하거나 변경된 경우 “O”로 나열합니다. 이 두 값을 각각 0과 1로 변경해야 합니다. 이렇게 하려면 워드 프로세서에서 찾기 및 바꾸기 기능을 사용합니다. 이제 는 다음과 같이 보일 것입니다 : 우리는 디버깅 목적으로 비 무작위 시드를 사용, 그것은 쉽게 신경망을 훈련하는 값을 예측할 수 있습니다 : 먼저 우리는 지속적으로 네트워크를 다시 훈련, 설정 된 횟수를 반복하는 for 루프를 만들 것입니다. 이 예제에서는 특정 오류 임계값에 도달하거나 시간이 초과 될 때까지 반복합니다. 디버깅의 용이성을 위해 for 루프에 매우 큰 값을 사용합니다. 피드포워드넷 기능을 사용하여 2계층 피드포워드 네트워크를 만듭니다. 네트워크에는 10개의 뉴런과 출력 계층이 있는 하나의 숨겨진 레이어가 있습니다. 기차 함수를 사용하여 입력을 사용하여 피드포워드 네트워크를 학습합니다.

계층, 학습 데이터 및 학습 옵션으로 정의된 아키텍처를 사용하여 네트워크를 학습합니다. 기본적으로 trainNetwork는 사용 가능한 경우 GPU를 사용합니다(병렬 컴퓨팅 도구 상자 필요™ 및 컴퓨팅 기능이 3.0 이상인 CUDA® 지원 GPU). 그렇지 않으면 CPU를 사용합니다. 또한 교육옵션의 `ExecutionEnvironment` 이름-값 쌍 인수를 사용하여 실행 환경을 지정할 수도 있습니다. 나중에 이러한 정확도 값을 사용하여 신경망 교육이 얼마나 효과적인지 비교할 것입니다. 최대 풀링 레이어 컨볼루션 레이어(활성화 함수 사용)는 피처 맵의 공간 크기를 줄이고 중복 공간 정보를 제거하는 다운 샘플링 작업뒤에 도포됩니다. 다운 샘플링을 사용하면 레이어당 필요한 계산량을 늘리지 않고도 더 깊은 컨볼루션 레이어에서 필터 수를 늘릴 수 있습니다. 다운 샘플링의 한 가지 방법은 maxPooling2dLayer를 사용하여 만드는 최대 풀링을 사용하는 것입니다. 최대 풀링 레이어는 첫 번째 인수poolSize에 의해 지정된 입력의 직사각형 영역의 최대 값을 반환합니다. 이 예제에서 직사각형 영역의 크기는 [2,2]입니다. `Stride` 이름-값 쌍 인수는 입력을 따라 스캔할 때 학습 함수가 걸리는 단계 크기를 지정합니다.

잘돼요! 더 많은 공개적이고 중요한 입력 데이터와 더 큰 교육 데이터 집합을 통해 신경망을 사용하여 특정 질병에 대한 위험을 예측하고 생명을 구할 수 있습니다. 이 프로젝트는 현재 개념 증명으로 사용되지만 실제 응용 프로그램에서 사용할 수 있도록 쉽게 수정할 수 있습니다. 우리의 학습 알고리즘은 백프로그레이션이라는 이미 확립 된 방법을 사용하여 작동합니다. 학습되지 않은 네트워크의 출력은 출력이 있어야 하는 것과 측정됩니다. 이를 비용 함수라고 합니다. 당사의 특정 비용 함수는 매우 간단합니다: 보시다시피, 완전히 훈련된 신경망은 교육 데이터와 함께 공급될 때 오류를 크게 최소화했습니다.