09.17.2023
1. 머신러닝이란 무엇인가
머신러닝이란 컴퓨터가 데이터를 통해서 학습을 할 수 있도록 컴퓨터를 프로그래밍하는 학문이다.
그러나 하드코딩하는 프로그램이 아닌 explicitly programming 없이 컴퓨터가 스스로 학습하도록 프로그래밍 한다.
머신러닝은 T, 어떠한 태스크에대한 E, 경험으로부터 배우고 그 태스크에 대한 P, 성능은 경험과 함께 발전한다.
트레이닝에 필요한 데이터들을 트레이닝 셋이라 부르고, 각각의 트레이닝 example들은 트레이닝 인스턴스라고 부른다.
특정 성능 기준치는 정확도이다.
1-1. 스팸필터 예제
만약 스팸필터를 하드코딩하려면 스팸의 특징 및 패턴을 분류하고 그에 따른 알고리즘을 만들어야함.
성능이 좋지 않으면, 좋을 때까지 알고리즘을 새로 생각해내어야 함
유지보수가 매우 어려움
그러나 머신러닝을 이용하면 사람이 하는 스팸 특징 및 패턴 분류/알고리즘 생성 과정을 머신러닝의 트레이닝 과정으로 대체할 수 있음.
하드코딩 없이 유지보수도 더 쉽게 할 수 있음.
예시로, 'For U'가 스팸의 키워드라면, '4 U' 가 들어왔을때, 사람이 만든 코드는 케이스를 추가해주어야 한다.
그러나 머신러닝을 이용하면 유저들의 신고가 많이 들어온 점을 이용해 '4 U'도 스팸 키워드에 추가해서 필터링을 해준다.
2. 왜 머신러닝을 이용하는가
기존에 많이 쓰던 접근법을 이용하기에 너무 복잡하거나, 알려진 알고리즘이 없는 경우 사용하기 가능하다.
또한 머신러닝이 어떤 것을 학습했는지를 보여 역으로 인간이 데이터들의 패턴을 배울 수 있다. 이것을 데이터마이닝이라고 부른다.
2-1. 음성 인식 예제
음성 인식의 경우 프로그래밍이 불가능한 것은 아니지만 몇천개나 되는 단어들을 일일히 코딩할 수 없다.
심지어 언어, 억양, 노이즈레벨까지 신경을 쓰려면 거의 불가능하다.
이런 경우가 ML이 이용될 수 있는 예제이다.
최대한 다양한 억양, 단어, 언어를 쓴 예시가 많을수록 성능은 뛰어나진다
결론적으로 룰이 너무 길거나 많음 / 문제가 너무 복잡 / 변화하는 환경에 적응해야함 / 큰 규모에 대해 인사이트가 필요 할 때 머신러닝을 선택할 수 있다.
3. 머신러닝 적용 사례
이미지 분석, 뉴스 자동 분류, 챗봇 생성, 신용 카드 위조 방지, 복잡한 고차원 데이터셋 표현, 게임 지능 봇 생성
4. 머신러닝 시스템의 종류
4-1. Human Supervision에 따라
가지고 있는 트레이닝 데이터셋에 솔루션이 있는가 없는가에 따라 나뉜다.
있으면 Supervised, 없으면 Unsupervised
솔루션이 있는 경우는 레이블링이 가능한 경우이다.
4-1-1. Supervised Learning
태스크가 분류 또는 리그레션일 경우 사용
분류: 이산적인 결과를 예측. 가격이 싸다 안싸다, 사람이 많다 안많다 등
리그레션: 실제 숫자값을 예측. 가격이 얼마일 것이다, 사람이 몇 명 올 것이다 등
4-1-2. Unsupervised Learning
Ground Truth / Truth and Answer이 없는 경우, feature 정보가 없는 경우, 차원축소나 이상 감지가 필요한 경우 사용
보통 클러스터링이라 부른다.
시각화 알고리즘이 예표적인 예시이다
4-1-3. Semisupervised Learning
데이터를 레이블링하는건 노동력/비용/시간이 많이 들 기 때문에 부분적으로 레이블링이 된 데이터를 사용하는 기법
4-1-3. Reinforcement Learning
매우 어려운 방법에 속한다.
환경을 관찰하고, 행동을 선택 후 이행하며, 맞는 행동이라 판단 됐을 때 reward를 받으며 학습하는 기법
4-2. Learn incrementally에 따라
4-2-1. Batch Learning
점진적으로 학습을 하는 게 아닌 사용가능한 모든 데이터셋을 사용해서 한 번에 트레이닝 함
오프러닝: 배치모델로 학습을 하고 나면 모델 런칭을 하는데, 런칭 이후 러닝을 더이상 하지 않는 것
유연성이 없다는 단점이 있고, 데이터의 크기가 메모리의 크기보다 크면 사용이 불가능함
4-2-2. Onine Learning
온라인 러닝은 미니패치를 만들어서 데이터를 순차적으로 넣으며 학습시키는 방식이다.
각각의 학습 스텝은 빠르고 싸며 유연성에서 큰 장점을 보인다.
노이즈가 심하는 등 나쁜 데이터가 성능에 크게 영향을 미칠 수 있음.
학습이 진행되는 동안 퍼포먼스를 확인할 수 있는 메쥬어를 통해 모니터링하고, 퍼포먼스가 떨어질 때마다 학브을 멈춘뒤 이전 배치로 돌아간다.
4-3. Comparing new data points or detecting patterns
어떻게 generalization하느냐에 따라 Instance-Based / Model-Based로 나눠진다
4-3-1. Instance-Based
트레이닝 example들만을 가지고 새로운 데이터에 대한 예측을 진행한다.
하나의 criteria가 하나의 모델을 결정하지 않고, 많은 criteria들이 하나의 ML 모델을 구분할 수도 있음
기존에 들어온데이터와 학습데이터 상의 거리를 비교하여 데이터를 분류한다
4-3-2. Instance-Based
새로운 데이터를 트레이닝 데이터와 비교하는 것이 아닌 모델 assumtion, 가정을 한 후 일반화 하는 기법
'CS > ML' 카테고리의 다른 글
[ML] 요점정리 (1) | 2023.10.25 |
---|---|
[ML] 5주차 - SVM (1) | 2023.10.23 |
[ML] 4주차 - 트레이닝 모델 (1) | 2023.10.22 |
[ML] 머신러닝 3주차 - Classification (2) | 2023.10.08 |
[ML] 머신러닝 2주차 복습 정리 (1) | 2023.10.01 |