인공지능 vs 머신러닝 vs 딥러닝
- 인공지능(Artificial Intelligence) : 컴퓨터가 인간과 같이 생각할 수 있도록 만드는 기법을 연구하는 학문
- 머신러닝(Machine Learning) : 데이터에 기반한 학습을 통해 인공지능을 구현하는 기법들을 지칭합니다.
- 딥러닝(Deep Learning) : 머신러닝 기법 중 하나인 인공신경망(Artificial Neural Networks) 기법, 은닉층(Hidden Layer)을 깊게 쌓은 구조를 이용해 학습하는 기법
머신러닝의 정의
머신러닝은 명시적인 프로그래밍 없이 컴퓨터가 학습하는 능력을 갖추게 하는 연구 분야다.
- 아서 새뮤얼(Arthur Samuel) -
어떤 작업 T(Task)에 대한 컴퓨터 프로그램의 성능을 P(Performance Measure)로 측정했을 때 경험 E(Experience)로 인해 성능이 향상됐다면, 이 컴퓨터 프로그램은 작업 T와 성능 측정 P에 대해 경험 E로 학습한 것이다.
기초 용어
- 훈련 세트(Training set) : 시스템 학습하는데 사용하는 샘플
- 훈련 사례(Training Sample) : 각 훈련 데이터 (행)
- 속성(Attribute) : 예측 변수(predictor variable)
- 특성(Feature) : 속성과 각 속성에 따른 값이 포함됨 (열)
- 데이터 마이닝 : 머신러닝 기술을 적용해서 대용량의 데이터를 분석하여 기존 보이지 않던 패턴 발견
왜 사용 하는가?
- 규칙이 많거나 전문성이 강할 수록 복잡해지고 유지 보수하기가 힘들어진다.
- 한 분야에 대해서만 적용이 가능하여 확장성이 적다.
- 이러한 문제들을 해결할 수 있다.
머신러닝이 강한 분야
- 기존 솔루션으로는 많은 수동 조정과 규칙이 필요한 문제
- 기존 방법으로는 해결할 수 없는 복잡한 문제
- 지속적인 변화가 있는 유동적인 환경
머신러닝 시스템의 종류
- 사람의 감독하에 따른 분류
- 지도 학습 : 훈련 데이터에 레이블(클래스)라는 정답이 포함, 분류(이산) 회귀(연속)
- 비지도 학습 : 훈련 데이터에 레이블이 존재하지 않습니다.
- 준지도 학습 : 일부만 레이블이 존재
- 강화 학습 : 결과에 따른 보상(Reward)과 벌(penalty)이 존재 합니다. 스스로 전략을 학습
- 실시간으로 점진적인 학습에 따른 분류
- 온라인 학습:
- 데이터를 순차적으로 미니배치라 부르는 작은 묶음 단위로 주입하여 시스템을 훈련시킵니다.
- 빠른 변화에 스스로 적응해야하며, 컴퓨터 자원이 제한된 경우에 주로 사용
- 잘못된 데이터가 주입되면 시스템 성능 감소, 실시간에서 사용 시 오류 발생
- 학습률(Learning Rate) : 변화하는 데이터에 얼마나 빠르게 적응하는 지 설정하는 파라미터
- 높게하면 시스템이 빠르게 적응, 예전 데이터 금방 잊어버린다.
- 낮게하면 더 느리게 학습, 새로운 데이터의 잡음이나 대표성 없는 데이터 포인터에 덜 민감
- 배치 학습:
- 가용한 데이터 모두 사용하여 훈련
- 시간과 자원을 많이 소모하여 오프라인에서 사용
- 오프라인 학습 -> 적용
- 데이터 양이 아주 많으면 배치 학습 알고리즘 사용이 힘들다.
- 온라인 학습:
- 기존 데이터 포인트와 새 데이터 포인트의 비교 & 데이터 셋의 패턴 발견 후 예측
- 사례 기반 학습 : 유사도를 기반으로 공통된 데이터를 찾아내서 결과 출력
- 모델 기반 학습 : 모델을 만들어 예측에 사용
- 모델 선택 -> 선형 모델에 대한 식 -> 모델 파라미터로 값 예측
머신러닝의 중요 과제
- 충분하지 않은 양의 훈련 데이터
- 데이터의 양이 많아야 합니다. 많을 수록 더 정확도가 좋다.
- 대표성 없는 훈련 데이터
- 일반화가 잘되려면 훈련 데이터가 얼마나 일반화를 원하는 데이터를 잘 대표할 수 있는지가 중요합니다.
- 샘플링 잡음(Sampling noise) : 샘플의 양이 작을 때 생김, 특이점이 많아 일관적이지 않다.
- 샘플링 편향(Sampling bias) : 샘플의 양이 많아도 표본 추출을 잘못하면 대표성이 없다.
- 낮은 품질의 데이터
- 훈련 데이터에 에러 이상치, 잡음으로 가득하다면 머신러닝 시스템이 내장된 패턴을 찾기 어렵다.
- 따라서 데이터 정재가 필수
- 잘못된 특성
- 잘못된 특성이 들어갔을 때
- 특성 공학(Feature Engineering) : 훈련에 사용할 좋은 특성
- 특성 선택(Feature Selection) : 가지고 있는 특성 중에서 훈련에 가장 유용한 특성을 선택
- 특성 추출(Feature Extraction) : 특성을 결합하여 더 유용한 특성을 만든다.
- 새로운 특성 생성
- 과대적합
- 과대적합 : 모델 훈련에만 잘맞고 일반성 떨어짐
- 훈련 데이터에 있는 잡음의 양에 비해 모델이 너무 복잡할 때 생김
- 파라미터 수가 적은 모델 선택 : 직선에 가까운 선형
- 특성 수 줄임
- 훈련 데이터를 더 많이 모은다.
- 이상치 제거
- 규제(Reqularization) : 과대적합을 줄이기 위해 모델에 제약
- 하이퍼파라미터 : 학습하는 동안 적용할 규제의 양, 따라서 학습 알고리즘으로부터 영향을 받지 않는다.
- 사전에 미리 지정
- 훈련 시 상수로 고정
- 매우 큰 값 (기울기 0) : 거의 평편한 모델
- 과소적합
- 모델이 너무 단순하여 구조 학습 실패
- 훈련 샘플에서조차 부정확함
- 모델 파라미터가 더 많은 강력한 모델 선택
- 더 좋은 특성 제공
- 모델의 제약 줄인다.
테스트와 검증
- 일반화 오차 : 새로움 샘플에 대한 오류 비율
- 추정값 : 테스트 세트에서 모델을 평가하여 오차에 대한 값을 얻음
- 모델 평가 : 테스트 세트 활용
- 훈련세트(80%), 테스트세트(20%) 분리
- 선정된 모델들을 훈련 세트로 훈련시키고 테스트 세트로 테스트 하여 모델 선정
- 과대적합을 피하기 위한 하이퍼파라미터 튜닝
- 이때 최적화된 하이퍼파리미터 찾게되면 오히려 테스트 세트에 최적화된 모델을 만들게 되어 새로운 데이터에서 높은 성능이 안나온다. 이를 위해 홀드아웃 검증 사용
- 홀드아웃 검증(Holdout Validation) : 일반화 오차를 테스트 세트에서 여러번 측정 시 모델과 하이퍼파라미터가 테스트 세트에 최적화 되는 문제를 해결하기 위한 방법
- 훈련세트의 일부를 떼어내어 여러 후보 모델을 평가하고 가장 좋은 하나 선택
- 검증 세트(Validation set) : 새로운 홀드아웃 세트
- (전체 훈련 - 검증 세트)를 다양한 하이퍼파라미터 값을 가진 모델 훈련 -> 검증세트에서 가장 높은 성능을 내는 모델 선택 -> 최종 모델 테스트 세트에서 평가하여 일반화 오차 추정
- 단점:
- 검증 세트 너무 작으면 정확한 평가 되지 않는다.
- 검증 세트 너무 많으면 훈련 세트보다 작아진다.
- 교차 검증 : 작은 검증 세트를 여러개 사용해 반복적인 검증 수행
- 검증 세트마다 데이터 훈련한 모델 평가
- 정확도 높지만, 훈련 시간이 검증 세트의 개수에 비례해 증가
- 데이터 불일치
- 데이터가 웹에서 다운하는등 불일치하는 경우도 있다. 결과값은 정확도가 낮게 나오는 것이므로 어떤 이유인지 확인 하기 힘들다.
- 따라서 훈련 개발 세트를 따로 분리한다.
- 훈련 세트에서 훈련 -> 훈련 개발 세트에서 모델을 평가 -> 잘 작동하면 과적합이 아니다. -> 만약 검증 세트에서 나쁜 성능이 나오면 이 문제는 데이터 불일치에서 온다.
'인공지능' 카테고리의 다른 글
딥러닝 - 다중 퍼셉트론 (0) | 2022.03.21 |
---|---|
딥러닝 - 로지스틱 & 소프트맥스 & 크로스 엔트로피 (0) | 2022.03.15 |
딥러닝 - 다항 회귀 (0) | 2022.03.15 |
딥러닝 - 머신러닝 기본 프로세스 (0) | 2022.03.14 |
딥러닝 기초 (0) | 2022.03.13 |