nnet 예제

지난 6월호 R저널에서는 `뉴라넷` 패키지가 소개되었습니다. 나는 최근에 `nnet`패키지를 통해 신경망을 활용하는 데 익숙했지만 (간단히 말해서 데이터 마이닝에 대한 내 게시물 참조) 실제로 네트워크 노드와 연결을 플롯 할 수 있기 때문에 신경망 패키지가 더 유용하다고 생각합니다. (nnet으로이 작업을 수행 할 수 있지만 방법을 알지 못합니다.) 뉴라넷 패키지는 주로 다층 퍼셉런 아키텍처를 위해 작성되었으며, 다른 아키텍처에 관심이 있는 경우 제한이 있을 수 있습니다. 민감도 분석 기능은 이제 RSNNS 패키지를 사용하여 생성된 신경망에 대해 작동합니다. 유일한 변화는 RSNNS를 사용하여 감도 분석을 사용하는 데 필요한 새로운 인수였습니다. exp.in 인수는 입력 모델(mod.in 인수)을 만드는 데 사용된 설명 변수의 필수 행렬 또는 데이터 프레임입니다. RSNNS 모델 개체에서이 정보를 추출하려고 했지만 nnet 패키지의 신경망 개체의 경우와 달리 가능하지 않다고 생각합니다. 또한 신경망 패키지와 함께 사용할 함수를 수정하려고 했지만 신경망 개체에 대한 예측 방법이 없기 때문에 실패했습니다. 전술한 바와 같이, 신규 입력 데이터를 사용하여 모델을 평가하기 위해서는 민감도 분석에 예측 방법이 필요하다. 이 함수의 또 다른 유용한 기능은 원래 nnet 개체에서 연결 가중치를 얻는 기능입니다. 명백하게, 가중치는 원래 함수의 속성이지만 멋지게 배열되지 않습니다.

wts.only 인수를 사용하여 plot.nnet 함수를 사용하여 가중치 값을 직접 얻을 수 있습니다. 우리가 살펴 볼 plot.nnet 함수의 마지막 기능은 all.in 및 all.out 인수입니다. 이러한 인수를 사용하여 관심 있는 특정 변수에 대한 연결을 플롯할 수 있습니다. 예를 들어, sepal 너비 (`Sepal W.`) 및 버지니아 sp. (`v`)에 대해서만 관련이있는 가중치를 검사하려면 어떻게해야합니까? 훈련 기능의 결과로 neuralNetoworkModel <- nnet (…) 울림, 붕괴 및 최대에 대해 설정된 매개 변수에 따라 작업의 반복 및 근사치 단계가 있습니다. 0이 아닌 대상이 가능한 클래스를 의미하는 softmax의 변형입니다. 따라서 softmax의 행(0, 1, 1)은 클래스 2와 3각각의 예를 하나 의미하지만, 검열의 경우 클래스가 2 또는 3으로만 알려져 있는 하나의 예제를 의미합니다. 왼쪽의 이미지는 신경망 모델의 표준 그림이며 오른쪽 이미지는 신경해석 다이어그램(기본 플롯)과 동일한 모델입니다. 검정색 선은 양수 가중치이고 회색 선은 음수 가중치입니다. 선 두께는 다른 모든 무게에 비해 무게의 크기에 비례합니다.

8개의 무작위 변수는 각각 첫 번째 레이어(X1-X8로 레이블이 지정됨)에 표시되고 응답 변수는 맨 오른쪽 레이어(`y`로 레이블이 지정됨)에 표시됩니다. 숨겨진 레이어는 nnet 함수의 크기 인수를 사용하여 지정된 H1에서 H10까지 레이블이 지정됩니다. B1 및 B2는 회귀 모델의 절편 항과 유사하게 노드에 상수 값을 적용하는 바이어스 레이어입니다. R에는 신경망 모델(신경망, nnet, RSNNS)을 만들기 위한 몇 가지 패키지가 있습니다. 나는 브라이언 리플리에 의해 만들어진 nnet 패키지와 광범위하게 일했다. 이 패키지의 기능을 사용하면 가장 일반적인 유형의 신경망 모델( 즉, 피드 포워드 다층 지각론)을 개발하고 검증할 수 있습니다.