Udemy 강의 'Machine Learning, Data science and Deep Learning with python' 내용 정리
RNN
- Time-series 데이터
- 미래의 행동을 과거로부터 예측
- web log, sensor log, 주식 거래 ...
- 자율 주행 자동차 → 과거의 운행에서부터 예측
- 임의의 길이를 갖고 있는 데이터
- 기계 해석
- 이미지 캡션 ...
- 기계에서 생성된 음악
Recurrent Neuron (회귀 뉴런)
- 과거의 output을 현재의 input과 함께 뉴런에 넣는다 → 과거의 데이터가 현재의 데이터에 영향을 준다
- 과거의 뉴런의 결과(output)가 다음 (현재)시간에 영향을 줌 → "Memory Cell"
Layer of Recurrent Neurons
- 한 레이어의 여러 노드의 결과 값을 합친 것이 다음 time-series 데이터에서 영향을 줌
RNN Topologies
- sequence to sequence
- 과거의 주식데이터를 통해 앞으로의 주식 데이터 예측
- sequence to vector
- Vector to sequence
- Encoder → Decoder
RNN training
- 역전파를 시간을 통해서 진행
- 모든 time steps가 빠르게 더해짐
- 연전파에 제한을 걸어서 time step의 수를 줄일 수 있음
- 과거의 상태들이 현재의 상태에 연관이 없어질 수 있음
- 문장 구조를 학습시킬때 문제 → 앞서 언급된 용어가 더 이상 효력이 없을 수 있음
- LSTM Cell
- Long Short Term Memory Cell
- 짧은 구간과 긴 구간의 상태를 유지함
- GPU Cell
- Gated Recurrent Unit
- 단순화된 LSTM Cell, 성능이 괜찮음
- 매우 민감함 → 자원에 매우 의존적, 잘못 선별된 데이터가 악영향이 매우 큼
Transfer Learning
전이학습
- 이미 training 된 모델을 이용하여 원하는 행위(?)를 하기 위해 새로운 학습 진행
- Model Zoos
- 블랙 박스와 같음 → 내부 구조를 파악할 수 없음
예시
Keras의 ResNet50을 불러와서 predict 수행
from tensorflow.keras.applications.resnet50 import ResNet50
from tensorflow.keras.preprocessing import image
from tensorflow.keras.applications.resnet50 import preprocess_input, decode_predictions
import numpy as np
img_path = 'fighterjet.jpg'
img = image.load_img(img_path, target_size=(224, 224))
x = image.img_to_array(img)
x = np.expand_dims(x, axis=0)
x = preprocess_input(x)
model = ResNet50(weights='imagenet')
preds = model.predict(x)
pre-trained 모델을 매우 쉽게 사용할 수 있음을 확인할 수 있음
Deep learning Regularization with Dropout and Early Stopping
Regularization (정규화)
- 데이터의 과적합을 막아줌
- training을 위한 데이터의 정확도는 좋지만, unseen 데이터에 대해서는 정확도가 좋지 않음
- 과적합된 모델은 학습데이터의 패턴을 외워버리는 것 → 실제 생활에서 사용하기 어려움 → test랑 evalutation 데이터 셋에서 낮은 정확도를 보임
⇒ 정규화를 통해서 과적합을 막는다
Simplify model
- fewer neurons, fewer layer
Dropout
- 한 epoch 마다 랜덤하게 특정 뉴런들을 버림 → 특정 뉴런이 특정 지점에서 과적합되는 것을 막을 수 있음
Early Stopping
- epoch마다 정확도를 모니터링 함 특정 epoch에서 부터 더 이상 정확도 개선이 없는 경우
(정확도는 높아지지만 validation 정확도는 개선 X) ⇒ 과적합 될 가능성이 높음 ⇒ Early Stop