아래 내용은 '케라스 창시자에게 배우는 딥러닝' 서적의 내용을 정리한 내용임
머신러닝 4가지 분류
지도학습
비지도학습
- ex) 차원 축소, 군집 등
- 지도학습 풀기전 데이터셋 이해를 위해 필수로 거침
자기지도학습
- 사람이 만든 레이블 사용하지 않고, 학습과정에 사람이 개입하지 않는 지도학습,
- ex) 오토인코더
강화학습
- 환경에 대한 정보를 받아 보상을 최대화 하는 행동을 선택하도록 학습
머신러닝 모델의 평가
훈련 / 검증 / 테스트 데이터 세트
- 정보누설 방지
- 모델은 간접적으로라도 테스트 세트에 대한 정보 얻으면 안됨
검증방법
- 단순 홀드아웃 검증
- K-겹 교차검증
- 셔플링을 사용한 반복 k-겹 교차검증
유념사항
- 대표성 있는 데이터: 레이블 분포 등을 확인하여, 셔플 등을 진행
- 시간의 방향: 과거로부터 미래를 예측할 경우 무작위로 섞어서는 안된다
- 데이터 중복: 훈련세트와 검증세트에 데이터가 중복되지 않았는지 주의
데이터 전처리, 특성공학, 특성학습
신경망을 위한 데이터 전처리
벡터화
- 신경망에서 모든 입력/출력 값은 부동소수 데이터로 이루어진 텐서
값 정규화
- 특성들의 범위가 제각각이면 독립적으로 정규화 등의 방식 수행해야 함
- 가중치의 초깃값보다 훨씬 큰 자릿수의 정수나, 균일하지 않은 데이터는 신경망에 위험함
- 작은 값을 취한다 (일반적으로 0~1 사이로)
- 균일해야한다 (모든 특성이 대체로 비슷한 범위를 가진다)
누락 값 처리
- 누락된 값에 대해서 (신경망에서 0이 사전에 정의된 의미 값이 아니라면) 0으로 입력해도 괜찮음
- (네트워크가 0이 누락된 데이터라는걸 학습하게 되면 0에 대해 무시하기 시작함)
- 단, 테스트데이터에서 누락된 값이 포함될 가능성이 있다?
=> 만약 네트워크가 누락값 없는 데이터에서 학습되었다면, 네트워크는 누락된 값 무시하는 법 모름
=> 따라서, 누락된 값이 있는 훈련 샘플을 고의적으로 만들어서 이를 훈련시켜줘야 한다
특성공학(Feature Engineering)
모델이 수월하게 작업할 수 있는 어떤 방식으로 데이터가 표현될 필요 있음
- 딥러닝 이전에는 특성 공학이 아주 중요했음 (특히 전통적인 얕은 학습 방법의 알고리즘들은)
- 하지만 최근 딥러닝은 특성공학 불필요하다. 왜냐하면 신경망이 자동으로 유용한 특성 추출하기 때문.
- 그러나 딥러닝에도 특성공학이 필요함
- 적은 자원을 이용해 문제를 풀어낼 수 있기에
- 더 적은 데이터로 문제를 풀어낼 수 있기에 (특히 샘플의 수가 적을때)
과대적합과 과소적합
머신러닝은 최적화와 일반화 사이의 줄다리기
- 과대적합: 전체 데이터가 아닌 훈련데이터에 특화된 패턴을 학습하게 됨
모델이, 모델과 관련성이 없고 좋지 못한 패턴을 훈련데이터에서 학습하지 못하도록 하려면...
- 더많은 데이터를 모은다
- 모델이 수용할 수 있는 정보 양을 조절하거나, 저장할 수 있는 정보의 양에 제약을 가한다 (규제
네트워크 크기 축소
- 알맞은 층의 수나, 각 층의 유닛 수를 조절 (단 마법같은 공식은 없다. 많이 해보는 수 밖에)
가중치 규제
- 간단한 모델이 복잡한 모델보다 덜 과대적합될 가능성이 높다
L1 규제 / L2 규제 / L1 + L2 규제 등 수행
(cf. 페널티항은 훈련할 때만 추가된다)
드롭아웃 추가
- 신경망을 위한 규제 기법 중에 가장 효과적이고 널리적으로 사용됨
- 무작위로 층의 일부 츨력 특성을 제외시킴 (0으로 만듬)
- 테스트 단계에서는 어떤 유닛도 드롭아웃되지 않음, 대신 출력층 출력을 드롭아웃 비율에 비례하여 줄여줌
(혹은 학습단계에서 스케일을 높여주고, 테스트 단계에서는 함수 출력 그대로 사용하는 방식을 사용함)
'IT > Data & AI' 카테고리의 다른 글
데이터 :: 경사하강법의 종류와 개념(배치, 확률적, 미니배치) - BGD, SGD, MSGD (0) | 2021.02.04 |
---|---|
데이터 :: [케라스 및 딥러닝] 머신러닝의 기본요소-2 (0) | 2020.08.28 |
데이터 :: [캐글 Kaggle] Competitions 카테고리 타입 (0) | 2020.08.04 |
데이터 :: Reducible error 과 Irreducible error (0) | 2020.01.22 |