관리 메뉴

개발이야기

[Machine Learning 이론] 머신러닝개론 -1 본문

Machine Learning /Machine Learning 이론

[Machine Learning 이론] 머신러닝개론 -1

안성주지몬 2018. 12. 23. 00:00

머신러닝 : 인공지능의 패턴인식과 계산학습 이론에서 발전한 컴퓨터과학의 한 분야다. 머신러닝은 데이터로부터 학습하고, 예측할 수 있는 알고리즘을 연구한다. 이러한 알고리즘은 정적으로 주어진 프로그램이 아닌 입력된 데이터로부터 모델을 만들어 예측이나 결정을 내린다. (출처 : 위키피디아)

일반적으로 컴퓨터에서 어떤 일을 하게 되면 Input을 집어 넣으면 program이 Output을 출력하게 된다. 하지만 머신러닝은 Input과 Output을 먼저 주어주고 머신러닝에 의해 스스로 프로그램을 작성하게 된다.

머신러닝은 데이터에 기반을 두기 때문에 계산 통계와 많은 연관이 있다. 데이터로부터 무엇을 학습한다는 것은 머신러닝 관점에서 보면, 주어진 데이터를 이용해 확률을 계산하고 특정 데이터를 줬을 때 이미 과거의 데이터를 이용해 계산된 확률로 결과치를 만들기 때문이다. 머신러닝에서 데이터는 굉장히 중요합니다. 아무리 좋은 머신러닝 알고리즘이라 하더라도 제공되는 데이터의 양이 적절하지 않거나 품질이 떨어진다면 결코 좋은 결과를 기대할 수 없는 것이죠. 그래서 그 유명한 'Garbage In, Garbage Out'이라는 말이 나오게 된 것입니다. 즉 안좋은 데이터를 넣으면 안좋은 결과가 나온다는 것이죠.

데이터가 머신러닝 결과물에 막대한 영향을 미치기 때문에 머신러닝에서는 데이터를 탐색하고 정리하는 데이터 마이닝이 중요하빈다. 데이터 마이닝을 통해 입력 데이터로 사용할 적합합 입력변수를 선택하고, 이 입력변수에 빠진 데이터를 보충하거나 이상치를 제거하고, 적절한 양의 데이터를 선택하는 과정이 사실상 머신러닝에서 제일 중요한 과정이어서 그 중요성은 아무리 강조해도 지나치지 않다. 

다음은 머신러닝의 장단점입니다.
장점 
- 학습을 위한 지식 표현이 필요없다. -> 무슨 뜻인지 정확히 모르겠으나 많은 지식적인 부분을 프로그래밍 안에 이미 내재 되어 있으므로 우리가 직접적으로 알아야할 지식이 많지는 않다는 뜻인듯 ? 하지만 머신러닝 넘나 어려움 ㅠㅠ
- 충분한 데이터와 적합한 알고리즘을 사용한다면 사람이 만든 모델보다 좋은 결과를 보여줄 수 있다. -> 역시 머신러닝은 데이터 질의 싸움인 것인가 ! 
- 고도의 수학적 지식이나 프로그래밍 능력을 요구하지 않는다. 기본적인 지식과 능력으로도 충분히 머신러닝을 이용할 수 있다. -> 그렇다 나는 기본적인 지식과 능력이 아직 없다 ! 
- 자동화가 가능하다. 프로그램으로 머신러닝을 학습시키고 최적의 파라미터를 찾아 그 결과에 대한 평가 등을 자동화하여 진행할 수 있다. -> 그러쿤요
- 저렴하고 유연하다. 데이터를 제외한 나머지 과정은 자동화가 가능하므로 저렴하게 실행할 수 있다. -> 데이터가 가장 중요하다면서요 ㅠㅠ. 그리고 좀 빠르게 돌릴려면 GPU도 필요한데.... (한숨)
- 프로그램을 이용해 자신이 원하는 대로 사용할 수 있다. -> 이것은 목표 !

그렇다면 단점은 ? 
- 데이터 준비에 많은 노력이 든다. 지도학습의 경우 모든 개별 데이터가 결과치를 만들어 주어야 한다. -> 그 놈의 데이터 !!
- 오류 발생이 쉽다. 일반적으로 정확도가 높은 모델을 만들기 어렵다. 
- 생성된 모델이 블랙박스(Black Box)이기 때문에 이를 해석하기가 어렵다. 정확도를 높이려면 모델을 수정하거나 개선할 수 있어야 하는데, 대부분의 머신러닝 알고리즘은 학습결과로 생성된 모델을 이해하기 어렵고 모델 자체를 개선할 수 없다.
- 과적합 문제가 종종 발생한다. -> 과적합은 오히려 낮은 성능결과를 보여줄 수 있다.

*위 내용들은 모두 '머신러닝을 이용한 알고리즘 트레이딩 시스템 개발(안명호, 류명호 지음, 한빛미디어 출판)' 을 공부하며 정리하는 내용들입니다.   


Comments