심도 있는 학습이 다분류를 실현하다

1496 단어
R 언어의 심도 있는 학습 구조를 이용하여 다분류를 실현하다.이 블로그를 쓰는 의의는 여러 가지 분류 문제를 이 글의 코드로 실현할 수 있다는 데 있다
library(keras)

# generate dummy data
x_train % 
  round() %>%
  matrix(nrow = 1000, ncol = 1) %>% 
  to_categorical(num_classes = 10)

x_test  % 
  round() %>%
  matrix(nrow = 100, ncol = 1) %>% 
  to_categorical(num_classes = 10)

# create model
model % 
  layer_dense(units = 64, activation = 'relu', input_shape = c(20)) %>% 
  layer_dropout(rate = 0.5) %>% 
  layer_dense(units = 64, activation = 'relu') %>% 
  layer_dropout(rate = 0.5) %>% 
  layer_dense(units = 10, activation = 'softmax') %>% 
  compile(
    loss = 'categorical_crossentropy',
    optimizer = optimizer_sgd(lr = 0.01, decay = 1e-6, momentum = 0.9, nesterov = TRUE),
    metrics = c('accuracy')     
  )

# train
model %>% fit(x_train, y_train, epochs = 20, batch_size = 128)

# evaluate
score % evaluate(x_test, y_test, batch_size = 128)

p % predict_classes(x_test)


여기에는 몇 가지 설명이 있습니다.
  • R 언어 딥러닝 프레임워크에서 2차원 데이터 구조는 모두 행렬을 사용한다.
  • 이산 변수를 다시 인코딩해야 한다
  • 본고의 데이터는 모두 무작위로 생성된 것이다
  • 딥러닝 구축의 핵심은 다음과 같습니다.
  • 네트워크 구조를 정의하고 얼마나 많은 입력이 있는지, 노드가 몇 개인지, 몇 층이 있는지, 어떤 활성 함수를 사용하는지 서로 다른 데이터에 대해 서로 다른 답이 있다. 현재 기계 학습에 사용되는 분야의 이미지, 오디오, 대응하는 것은 3차원 데이터, 4차원 데이터이고 서로 다른 데이터 유형이 네트워크에 대한 정의가 다르다.
  • 모델을 컴파일하고 모델의 구조를 정의한 후에 구해 파라미터를 구해야 한다. 이는 손실 함수를 정의하고 가장 최적화된 방법을 정의하며 평가 기준을 정의하는 것을 포함한다.
  • 훈련모형
  • 좋은 웹페이지 즐겨찾기