ML 유형

  * 지도학습: 분류, 회기 (예측), 이미지 분할, 음성인식, 언어 번역

  * 비지도학습: 데이터에 label이 없어 Clustering (그룹화) 및 차원축소 등의 방법으로 Data를 이해함.

  * 강화학습: opentutorials.org/course/4548/28949

 

강화학습 Reinforcement Learning - 생활코딩

 

opentutorials.org

 

Model Evaluation

1) 데이터 셋을 학습 데이터셋 (learning) / 검증 데이터셋 (hyper-param 튜닝) / 테스트 데이터셋 (성능 측정)으로 나눔

2) ML의 변수

  - 가중치: optimizer에 의해 변경 or 역전파 과정 튜닝

  - Hyper-param: 아키텍쳐의 형태 (Layer 수, Learning rate), 구성, 동작 방식을 결정하는 변수로 주로 수동으로 변경해야 함

3) Overfitting / Underfitting: 학습 데이터셋에서는 잘 작동하지만, 검증과 테스트셋에서는 잘 작동안하는 경우 일반화 능력이 떨어지므로 overfitting이고, 그 반대의 경우는 underfittng. 이런 문제를 해결하기 위해 Holdout dataset, k-fold 검증, 반복 k-fold 검증 방법을 사용함. 예를 들어 k-fold 검증은 test dataset을 여러개로 나누고 1개를 검즈으로 번갈아가며 사용한 뒤에 평균값으로 판단하는 방법임. 추가적으로 상황에 따라 데이터 혼합 방법을 사용하기도 함. 

* 데이터 혼합 시 유의해야할 점!!

  - 데이터 표현력: 한쪽에 치중되지 않게 임의의 순서로 섞거나 층화 추도법(stratified sampling) 사용

  - 시간 민감도: 순서 정보가 있다면 도메인 지식을 기반으로 기준 설정해주어야 함

  - 데이터 중복: 일반화가 잘 안될수도 있음

 

Data Preprocessing & Feature Engineering

1) Data Preprocessing

  - Vectorization: Data를 Pytorch Tensor 형태로 변환

  - Normalization: Data 특성을 평균을 0, 표준편차 1로 만들어 정규화하여 더 빠른 학습과 성능 효과가 있을 수 있음. MinMaxScaler 함수를 사용하여 정규화를 할 수 있음

  - Missing value: 도메인 별로 해결방법이 다름 (숫자 대체, 예측 등)

2) Feature Engineering : 도메인 지식 base로 model에 전달할 새로운 변수 및 feature를 만들어 내는 것. 데이터가 부족하다면 feature engineering 이 도움이 될 수 있음.

 

Overfitting & Underfitting 대처법

1) Overfitting: 학습 데이터셋을 완전 암기한 상태로 noise까지 학습해버려서 오히려 새 Data 및 검증 데이터셋에 성능이 안나오는 현상, 단순한 model로 만들어서 해결함

 - 더 많은 데이터 확보: 특정 패턴보단 일반 패턴을 학습할 수 있는 데이터를 확보하고, 더 구할수 없을 땐 데이터 도메인 이해 하에 Data Augmentation (회전, 자름 등)을 이용할 수도 있음

 - 네트워크 크기 줄이기 (선형 Layer수, 가중치수)

 - 가중치 규제 적용: Network가 가중차기 큰 값을 갖지 않도록 regularization을 통해 가중치가 큰 값을 가지면 불이익을 줌. L1 규제(절댓값 weight 계수 총합) 또는 L2 규제 (weight 계수 제곱합)을 cost(Data 오차 합)에 추가함

torch.optim.Adam(params, lr=0.001, weight_decay=1e-5)

- Dropout: model의 중간 layer에 적용되어 일정 비율의 출력을 0으로 설정 (nn.dropout(x, train=True))

2) Underfitting: 학습이 제대로 되지 않는 현상으로 학습 Data를 늘리거나, layer 및 가중치 수를 늘려보도록 한다. (이 경우 가중치 규제는 사용하지 말 것!!)

 

'Programming > Deep Learning' 카테고리의 다른 글

7. Recurrent Neural Networks (RNN) & LSTM  (0) 2022.04.08
6. Convolution Neural Network (CNN)  (0) 2021.02.04
5. 머신러닝 Workflow  (0) 2021.02.01
3. 신경망 구조  (0) 2021.01.19
2. 신경망 구성 요소  (0) 2021.01.13

+ Recent posts