머신 러닝(machine learning)
- 머신 러닝(Machine Learning)은 컴퓨터 시스템이 데이터에서 학습하고 패턴을 찾아내어 예측이나 의사 결정을 내리는 인공지능 분야 중 하나
- 데이터를 사용해 모델을 학습시키고, 이를 통해 새로운 데이터를 예측하거나 분류하는 것. 이러한 모델은 데이터에서 자동으로 패턴을 인식하고 이를 바탕으로 예측하거나 분류를 수행
-1959년 아서 사무엘(Arthur Samuel)이 처음 용어 사용
머신 러닝과 학습 데이터
- 학습 데이터
- 머신 러닝 모델이 학습하는 데 사용되는 데이터 셋
- 충분히 다양하고 대표적인 데이터를 사용하여야 하며, 데이터의 양과 질에 따라 모델의 정확도와 일반화 성능이 크게 달라질 수 있다.
(-3.1, 4.5) -> 2차원 특징벡터
규칙 : a가 음수이면 불량
만약, 다른 데이터셋 추가된다면 규칙이 바뀔 수도 있다.
-> 머신 러닝에서는 사용되는 학습 데이터가 전체 데이터를 대표하지 못하면 학습을 통해 얻은 결과는 편향될 수밖에 없기에, 적절한 학습 데이터 확보가 중요하다.
-> 데이터에 내재되어 있는 패턴이나 규칙이 학습되지 않을 수 있다.
기존 알고리즘과 학습 알고리즘
기존 알고리즘 | 학습 알고리즘 |
-문제에 대한 규칙을 수작업으로 프로그래밍하여 해결하는 방법 | -데이터를 통해 스스로 학습하는 알고리즘 -입력 데이터와 이에 대응하는 출력 데이터 쌍을 학습하고, 이를 기반으로 새로운 입력 데이터에 대한 출력을 예측 -기존 알고리즘보다 일반화 성능이 높고, 새로운 문제에 대한 대처 능력이 우수 -새로운 데이터를 학습할 때마다 모델의 성능이 개선 |
데이터 분석가 필요 프로그래머가 규칙을 코딩 |
-대량의 학습 데이터 필요, 데이터 전처리와 모델 선택 등에 대한 추가적인 노력과 전문 지식이 필요 "프로그래머가 인공지능의 학습 알고리즘 원리를 안다면 쉽게 현장에 적용" -학습 데이터의 품질과 양, 학습 알고리즘의 선택 등에 따라 모델의 성능이 크게 달라질 수 있다. |
ex) “a와 b 모두가 양수인 경우만 정상, 그렇지 않은 경우는 불량” a = input(“a의 값 ?”) b = input(“b의 값 ?”) if a > 0 and b > 0 : print(“정상”) else: print(“불량”) |
학습 데이터와 특징 벡터
-특징들이 많을수록 학습 성능이 좋아지진 않는다. (어떠한 특징들은 학습에 방해가 된다.)
- selection : 문제에 적합한 특징들을 선별
- extraction : 기존 특징들을 조합 및 변형하여 새로운 특징을 추출
*딥러닝 기술 - 이미지를 학습 데이터로 주면 필요한 특징 선별 및 추출 과정도 학습을 통해 이뤄진다.
테스팅과 교차검증
1. 학습이 제대로 이루어졌는지 평가 방법
데이터 - 학습용(순수학습용, 검증용(validation)), 테스트용 존재
하이퍼패러미터 : 학습 알고리즘 자체의 패러미터
- 테스트 셋은 단 한 번의 최종 성능 평가용으로만 사용하고, 학습 데이터 셋을 이요해 교차검증(cross validation) 실시
2. 교차 검증(cross validation)
->
과적합(overfitting)과 과소적합(underfitting)
과적합: 학습 데이터에 내재된 패턴의 복잡도보다 더 복잡한 모델 사용 or 학습 데이터가 전체 데이터를 대표하지 못해 발생
과소 적합: 데이터에 내재된 패턴을 제대로 학습 못하는 현상 발생 - 학습에 사용된 모델이 더 단순한 경우 or 특징이 좋지 않을때
머신 러닝 방법 분류
지도학습
학습 시 입력필드의 값, 출력필드의 값을 모두 제시하고 학습시키는 방법(출력필드 : 타겟이라고도 함)
ex) x좌표 값과 y좌표 값을 이용해 그 분면 판단
1. 분류(classification)
: 데이터 그룹(class)을 미리 정해 놓고, 그룹의 정해지지 않은 입력 데이터가 어떤 그룹(class)에 속하는지를 판별하는 방법
- 학습 데이터는 입력 필드의 값과 그에 대응되는 클래스로 구성
- 학습 데이터를 이용하여 학습을 하면 분류 모델이 만들어 지고, 이 모델을 이용하여 새로운 입력에 대한 클래스를 판별
- 학습된 모델에 학습에 사용 한 입력 값을 주면 보통 그 결과가 좋을 수밖에 없음. (분류 성능 판단 시, 학습에 사용되지 않고 그 클래스를 알고 있는 데이터들을 사용하여 평가)
2. 회귀 분석(regression)
: 입력 값들과 그에 대한 출력 값을 주어서 학습. 차이점은 출력 값이 몇 개의 값으로 한정이 되지 않다는 것-
-학습된 모델에 미지의 입력 값을 주면 제시된 클래스 중 하나를 결과로 출력 (앞 예에서 1, 2, 3, 4 중 하나의 값)
-이 이외의 값도 출력. 학습에 사용된 입력 값을 주면 학습 시 주어진 출력이 그대로 나오는 것이 아니라 그에 근접한 값이 출력
- 다양한 지도학습 알고리즘 존재
비지도학습
2. 차원 축소
- 일반적으로는 더 많은 특징들을 사용하면 더 좋은 성능을 얻을 수 있을 것 같지만,
특징 선별이 안 좋은 경우, 특징들 간의 간섭으로 인해 더 성능이 안 좋아질 수 있음.
- 특징의 개수가 많아지면 학습 속도도 많이 느려짐.
- 특징 축소 알고리즘은 학습 속도를 높이는 목적 외에 데이터를 시각화할 목적으로도 유용함.
- 주성분 분석, LLE, t-SNE등 존재
->PCA (가장 대표적인 차원 축소 알고리즘)
강화(reinforcement) 학습
- chat GPT에도 활용됨.
- 바둑처럼 주어진 목표가 있고 그 목표를 이루기 위해 반복적인 행동을 해야 하는 문제에 적합 (행위를 결정 시, 현 상태만 고려하고 이전 상태 고려 X)
'수업' 카테고리의 다른 글
인공지능 - 1. 인공지능 소개 (0) | 2023.04.11 |
---|---|
컴퓨터그래픽스 - Bunny Model 코드 (0) | 2023.04.11 |
컴퓨터그래픽스 - 좌표계 변환 vs 물체 변환 (0) | 2023.04.10 |
웹프로그래밍 - 자바스크립트 javascript 함수 (0) | 2023.04.06 |
컴퓨터그래픽스 - Bunny Model 회전 코드 (0) | 2023.04.05 |