SLAM 포스팅을 계속 이어갈 생각이었지만 의도치 않게 머신러닝, 특히 추론과정에 대한 기회가 왔기 때문에 잠시 SLAM 포스팅을 접고 새로운 포스팅을 시작한다. 인공지능, 그리고 머신러닝이라는 용어는 컴쟁이 뿐만 아니라 모두가 들어본 기억이 있을텐데 필자도 딱 그 정도이다. 기본적인 개념과 틀은 있지만 디테일과 이 기술이 어디까지 왔는지, 주요 이슈는 모르는 상태다. 최대한 빠르게 진행을 해봐야할 것 같다.
What is Machine Learning?
A computer program is said to learn from experience E
with respect to some class of tasks T and performance measure P,
if its performance at tasks in T, as measured byP, improves with experience E. - T. Michell
뭔가 멋있게 적혀있지만 짧게 task T를 달성하기 위해 경험 E를 통해 성능 P를 향상시킨다면 이것은 머신러닝이다.
어떤 문제를 인공지능을 통해 해결하려고 한다면 이 3가지 요소를 잘 파악하고, 설계하란 뜻이다.
Task는 기본적으로 크게 3가지라고 한다.
- classification
- regression
- clustering
우리가 결국 머신러닝을 통해 원하는 것은 컴퓨터가 어떤일을 인간 대신 수행했을 때 인간과 비슷하게, 혹은 보다 더 잘 하길 바라는 것이다.
그러기 위해선 컴퓨터가 학습을 잘 했는지 판단 할 수 있는 metric이 필요하고, 이 metric을 통해 학습을 진행시켜야 할 것이다.
MNIST를 다시 예로 들어보자. 필기체 숫자 4가 주어졌을 때 컴퓨터가 4라고 인식한다면 정답이지만 만약 9라고 인식했다면 에러가 발생한 것이다.
따라서 입력값 x에 대해 도출한 결과 y에 대해 정답/오답을 판별 할 수 있고, 이 정확도를 쉽게 구할 수 있다.
이와 다르게 regression의 경우 실제 데이터에 fit이 맞는 함수를 추출하는 과정이다. 이때 실제 데이터가 이쁘게 100% 어떤 함수 f와 일치하면
좋겠지만 데이터에 노이즈나 오차가 있을 수 있고, 완벽하게 함수로 표현되기 어려울 수도 있다. 따라서 실제 데이터와 함수값이 얼마나 가까운지를
측정해 이를 metric으로 사용하는 것이다.
Experience는 간단하게 데이터라고 받아들이면 된다. 학습하기 위해선(지도학습의 경우) 입력(x)-결과(y) 세트가 있어야 그에 대해 평가할 수 있는 것이 당연하다.
이정도까지가 머신러닝의 정의라고 볼 수 있다. 다음 포스팅에서는 머신러닝이 어떻게 학습되고 추론되는지 알아 볼 수 있으면 좋겠다.




댓글 없음:
댓글 쓰기