본문 바로가기

HARU HOMME/직장인의 알쓸직잡

머신러닝은 무엇인가? 평범한 직장인이 이해한 머신러닝!

이전 포스팅에서 AI - 머신러닝 - 딥러닝의 관계에 대해서 알아보기로 했었죠.

그 뒤로 저도 이곳저곳과 책을 통해서 여러 가지를 공부하고 있습니다.

알면 알수록 어려운 부분이 많은 것아요.

그래도 기념 개념부터 하나씩 차근차근 알아가 본다면 언젠가는 정복할 수 있지 않을까요?

 

저는 완전한 문과 성향을 가진 문과 출신의 직장인이라서

이렇게 기계 이야기나 수학 이야기는 너무나 어렵습니다.

그래서 더더욱 알아보려 하지도 않았죠.

하지만 요즈음의 트렌드이고, 직장인으로 그리고 현대 사회를 살아가는 사람으로서,

알아야 하는 것이라고 생각해서 어렵지만 하나하나 알아보려고 합니다.

 

그러니 혹시 제가 공부하고 알아가는 것들 중에서 잘못된 정보들이 있으면 바로바로 캐치업 해서

알려주시면 감사하겠습니다.

 

지난번 포스팅에서 AI - 머신러닝 - 딥러닝의 관계도를 제가 다시 그려봤었죠.

제가 그린 다이어그램

위 이미지처럼 위 관계를 기억하면서 오늘은 머신러닝이 무엇인지부터 알아볼까 합니다.

정말 기본적인 내용일 수 있으니 참고 삼아 봐주시면 좋을 것 같아요.

출처 : PIXABAY 사이트

머신러닝이란?

출처 : PIXABAY 사이트

 - 인공지능 연구의 한 분야로, 인간이 학습을 하는 것과 같이 학습기능을 컴퓨터에서 기계가 실현하고자 하는 기술 및 기법이라고 합니다.

 

 -  인간이 학습을 하듯이 컴퓨터에 우리가 직접 데이터를 입력시키고 그 데이터로 학습을 시키는 방식인데요.

    AI는 정확한 결과를 예측할 수 있도록 제공된 학습 데이터를 다양한 알고리즘을 통하여 스스로 학습을 하게 하는 것이라고 설명할 수 있습니다.

   머신러닝은 정해진 명령보다는 데이터를 기반으로 하여 예측이나 결정을 이끌어 내기 위해 특정한 모델을 구축하는 방식으로 모델을 구축해 내는데요.

  이로 인해서 입력하지 않는 정보에 대해서도 판단이나 결정을 할 수 있게 되는 것이라고 할 수 있습니다.

 

머신러닝은 언제부터?

   

 - 머신 러닝이라는 단어는 1959년 아서 사무엘의 논문에서 최초로 정의되었는데요.

   " 명시적으로 프로그램을 작성하지 않고 컴퓨터에 학습할 수 있는 능력을 부여하기 위한 연구분야"라고 정의했다고

      합니다.

   그 이후에 톰 미첼은" 컴퓨터 프로그램이 어떤 작업 T와 평가척도 P에 대해서 경험 E로부터 학습하는 것은 P에 의해 평가되는 작업 T에 있어서의 성능이 경험 E에 의해 개선되는 경우를 말한다"라고 더욱 형식적으로 정의를 내렸다고 합니다.

이처럼 머신러닝은 명시적인 알고리즘을 설계하기 어렵거나 프로그래밍하기 어려운 작업들을 해결하기 위해서 사용된다고 하는데요.

머신러닝 알고리즘은 우선 데이터가 생성한 잠재적인 메커니즘의 특징을 파악한 후에 복잡한 관계를 정량화한 후 이 식별된 패턴을 사용하여 새로운 데이터에 대한 예측을 한다는 것입니다.

여기서 보면 데이터, 즉 데이터의 메커니즘을 확인하고 예측하는 것이 머신러닝의 핵심이 아닐까 생각을 해보게 되었습니다.

그래서 머신러닝은 데이터로부터 유용한 규칙, 지식표현 혹은 판단 기준을 추천한다는 점에서 데이터 마이닝이나 통계 , 수학적 최적화 문제와도 관련이 깊다고 하는데요.

데이터를 통해서 일정한 패턴을 찾아내고 이를 통해 예측할 수 있도록 기계를 학습시킨다.

이렇게 정의하면 더 쉽게 정의되지 않을까 하는 생각을 해보게 되었습니다.

 

 

머신러닝 알고리즘의 데이터 입력방식의 3가지.

 

 1. 감독(Supervised) 학습 : 입력과 입력한 값에 대응하는 미리 알려진 출력(사람이 제공)을 매핑하는 함수를 학습하는 과정

 

 2. 비감독(Unsupervised) 학습 : 출력 없이 입력만으로 모델을 구축하여 학습하는 과정, 일반적으로 데이터 마이닝의 대부분의 기법이 해당함.

 

 3. 강화(Reinforcement) 학습 : 학습자가 행동을 선택하여 행동으로 환경에 영향을 미치고 이에 대한 피드백으로부터 보상 치를 얻어 학습 알고리즘의 가이드로 사용하는 것이라고 합니다.

 

이렇게 데이터를 입력하게 되면,  머신러닝의 기법 및 모델들로 나오는 것이 트리 구조 형태를 예측 모델로 사용하는 의사결정 나무(Decision Tree), 생물의 신경 네트워크 구조와 기능을 모방하는 인공 신경망(Neural Network), 생물의 진화 알고리즘에 기반한 유전자 프로그래밍(Genetic Programming), 관측된 예를 군집이라는 부분집합으로 분배해 주는 군집화(Clustering), 무작위로 추출된 난수를 통해 함숫값을 확률로 계산해 내는 몬테카를로 방법(Monter Carlo Method) 등이 있다고 합니다.

 

이 정도로 보면 머신러닝은 사람 / 즉 인간에 의해서 데이터를 입력받고 그 입력받은 데이터의 일정한 패턴을 지속적으로 학습한 후에 머신러닝의 기법/모델을 활용하여 예측치 혹은 결괏값을 나타내 주는 학습의 형태가 아닐까 생각해 보게 되었습니다.

 

이러한 머신러닝은 컴퓨터 과학뿐만 아니라 우리의 생활 전반에 활용되고 있다고 하는데요.

컴퓨터 시각 즉 문자나 물체, 얼굴을 인식하는 기법, 그리고 음성인식(요즈음 저도 지니를 잘 쓰고 있습니다.) 그리고 정보검색 및 검색 엔진(스팸 필터) 같은 곳에서 많이 사용되고 있고,

각 기업에서 RPA라는 이름으로 단순 반복 업무와 같은 일들은 기계가 학습한 후 대신해 주는 디지털화가 이루어지고 있는데 많이 쓰이고 있는 것 같습니다.

앞으로 우리가 스마트 팩토리 및 스마트워크 환경을 구축하는 데 있어서 이 머신러닝은 더 널리 활용되고 깊이 있게 연구가 되지 않을까 생각을 하는데요.

2016년 우리의 기억에 남아있는 알파고 기억하시나요? 바둑기사인 이세돌과 인공지능의 알파고가 대적했던 그 사건!

이 알파고도 머신러닝을 적용한 인공지능의 예시라고 할 수 있다고 합니다.

알파고는 머신러닝 중에서 강화 학습을 통하여 인간이 범접할 수 없는 속도로 바둑을 학습하여 놀라운 바둑 실력을 갖게 되었다고 하는데요.

 

여기서 저는 알파고 같은 기계는 인간보다 학습시간을 단축시키거나 많은 양의 정보 데이터를 처리할 능력은 있지만 그렇다고 장점만 있을까?라는 생각을 해보게 되었는데요.

저도 교육학을 전공했던 사람으로 생각해 본다면 인간만이 할 수 있는 학습, 그리고 지식의 함양 등을 기계가 대신할 수 있을까 라는 생각을 해보게 되었습니다.

그 한 예로 창의성이라는 부분인데요. 아무리 기계가 예측을 할 수 있다 하지만 창의적이고 기발한 아이디어를 만들어내고 생각하는 것도 머신러닝이 할 수 있을까 라는 생각을 해보게 되었습니다.

단순한 반복적 패턴만 할 수 있는 게 아닌가?라는 생각을요.

제가 아직 딥러닝까지 공부를 하지 못해서 그 답을 찾지는 못하였지만,

딥러닝까지 공부한 이후 이 AI-머신러닝 - 딥러닝과의 한계점들도 한번 공부해 보면 좋을 것 같다는 생각을 해보게 되었습니다.

 

그럼 다음에는 딥러닝에 대해서 포스팅해 보도록 할게요~.