더북(TheBook)

신경망 모델 학습

R의 nnet 패키지는 신경망 모델 작성을 위한 함수다. nnet 패키지에서 신경망의 파라미터는 엔트로피entropy 또는 SSESum of Squared Error를 고려해 최적화된다. 출력 결과는 소프트맥스softmax를 사용해 확률과 같은 형태로 변환할 수 있다. 과적합을 막기 위한 방법으로 가중치 감소weight decay를 제공한다.

표 10-7 신경망

nnet::nnet : 신경망 모델을 생성한다.

nnet::nnet(
  formula,  # 모델 포뮬러
  data,     # 포뮬러를 적용할 데이터
  weights,  # 데이터에 대한 가중치
  ...
)
nnet::nnet(
  x, y,     # 데이터
  weights,  # 데이터에 대한 가중치
  size,     # 은닉층 노드의 수
  Wts,      # 초기 가중치 값. 생략할 경우 임의의 값이 가중치로 할당된다.
  mask,     # 최적화할 파라미터. 기본값은 모든 파라미터의 최적화다.
  # TRUE면 활성 함수로 y=ax+b 같은 유형의 선형 출력(linear output)이 사용된다.
  # FALSE면 로지스틱 함수(즉, 시그모이드 함수)가 활성 함수로 사용된다.
  linout=FALSE,
  # 모델 학습 시 모델의 출력과 원하는 값을 비교할 때 사용할 함수. TRUE면 엔트로피,
  # FALSE SSE가 사용된다.
  entropy=FALSE,
  # 출력에서 소프트맥스 사용 여부
  softmax=FALSE,
  # 가중치의 최대 개수로 기본값은 1000. 모델이 복잡해 가중치의 수가 많다면 이 값을 증가시켜야 한다.
  MaxNWts = 1000
)

반환 값은 nnet 객체다.

nnet::predict.nnet : nnet을 사용한 예측을 수행한다.

nnet::predict.nnet(
  object,   # nnet 객체
  newdata,  # 예측을 수행할 데이터
  # 예측 결과의 유형. raw는 신경망이 반환하는 행렬. class는 예측된 분류
  type=c("raw", "class")
)

반환 값은 예측 결과다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.