본문 바로가기
여러가지 관심사들/IT, 컴퓨터, 모바일

머신러닝과 빅데이터 간단하게 알아보기

by MinorityOpinion 2020. 2. 26.
728x90

블로그를 두개를 운영중인데, 하나는 이 잡탕 블로그이고 하나는 공부+저장용으로 만든 블로그가 있습니다. 원래 거기에다가 포스팅을 할려고 했는데, 약간 교양목적으로 글을 오랜만에 써보면 좋겠다 싶어서 이 블로그에다가 포스팅을 하기로 했습니다.

 

교양, 일반 상식으로 머신러닝과 빅데이터의 개념을 알면 좋을거 같습니다. 이제는 이를 무시할 수 없게 되었지요

알파고의 등장과 급속하게 사람들은 머신러닝과 인공지능 빅데이터를 떠들지만 사실 떠드는 사람의 이야기를 가만 들어보면 상당히 추상적이고 공허한 이야기지요 좀더 명확하게 살펴봅시다.

 

일단 기존의 프로그래밍에 대한 간략한 이해가 필요합니다.

 

컴퓨터 프로그램이라고 하면 C,C++이나 요즘 유행하고 있는 파이썬!이 있지요 웹으로 가면 자바스크립트 PHP node.js등등등

 

왜 프로그래밍 이야기부터 하느냐면!

 

 

프로그램을 함수(또는 메소드)에 비유하는 것을 좋아합니다.

 

어떤 입력 값이 있고, 그 입력값으로 어떤 동작을 수행하고 출력을 하지요

프로그래밍은 바로 어떤 동작을 수행할 것인가를 만드는 과정입니다. 이 과정에서 input값을 재정의 하고 암호화하고 여러가지가 있지만 이것들은 집어치우고 일단 가장 기본적으로는 그렇습니다.

 

인풋 - 함수(메소드) - 출력

 

인터넷에 있는거 주워왔는데 설명은 썩 마음에 안드네요

 

자 그러면 머신러닝은 뭔데?

 

머신러닝은 프로그래밍을 몰라도 할 수 있습니다.

 

머신러닝에게 필요한 것은 오직 데이터입니다. 다른 사람이 만들어둔 라이브러리에다가 데이터를 집어 넣으면

끝입니다. 그게 전부에요

 

만약에 나는 개 사진을 구분하고 싶어! 그렇다면 개 사진만 주구장창 집어 넣으시면 개 사진을 구별하는 프로그램이 완성됩니다. 아니면 고양이 사진이나 독수리 사진도 괜찮지요

 

 

여기서 두가지 학습법이 있습니다. 지도 학습 / 비지도 학습

 

지도 학습은 주어지는 데이터값을 엄격하게 통제를 합니다. 사람이 하나하나 자료를 입력을 해야하니 속도면에서는 많이 불리합니다. 하지만 알고리즘의 정확도가 높아 질 수 있습니다.

 

비지도 학습은 알아서 학습하게 합니다. 다만 치와와랑 머핀에 초콜릿 3개 박힌 값이 같이 들어올 수 있습니다. 구분을 못하거든요, 빠른시간에 끝날 수 있지만 오염데이터로 인해서 알고리즘에 오류가 발생할 수 있습니다.

 

물론 어느것이 좋고 나쁜것은 없습니다. 상황에 맞게 적절하게 잘 쓰는게 공학자의 일이지요

 

이때 필연적으로 머신러닝과 손잡고 따라오는 것은 빅데이터 입니다.

 

아무리 훌륭한 알고리즘이 있다 한들, 데이터가 엉망이라면 만들 수가 없습니다.

반대로 대충 엉성한 알고리즘이 있어도, 주어지는 데이터가 완벽하면 괜찮은 알고리즘이 튀어 나올 수 있습니다.

 

빅데이터에서 오는 오해는 '많은' 데이터를 떠올리게 하는데 정확히 말하면 '쓰레기를 포함한 모든 데이터'입니다.

내가 눈을 몇번 깜빡이는지 숨을 몇번 쉬는지는 얼핏보면 필요 없는 자료이지만, 이런 데이터가 모이면 유의미한 의미를 찾을 수가 있지요, 비유를 하자면 쓰레기장에서 쓸만한것을 찾는 과정이 될 수도 있습니다.

 

국내 기업들이 빅데이터 3법을 부르짖던 것도 빅데이터는 데이터가 일단 많아야 합니다. 구글은 동의합니다 한가지로 사용자 휴대폰에 무제한으로 접근을 해서 정보를 모으는데, 국내 기업들에게는 너무나도 가혹하게 개인정보에 엄격하게 대한다는 것지이요

(사실 이렇게 된게 허구한날 개인정보 유출된것도 한몫하는데 아무튼..)

 

사실 이것 말고도 법정소송을 할때 상대방이 나에대한 정보를 가지고 있다면 일단 개인정보보호법 위반으로 걸고넘어져서 법조계에서도 시정요구는 있습니다.

 

다시 머신러닝으로 돌아와봅시다.

 

 

문제는 머신러닝으로 실컷 만들어봄 프로그램은 블랙박스 입니다. 사람이 보았을때는 왜 이런 프로그램이 만들어 졌는지 모릅니다. 사람이 직접 만들지는 않았지만, 이제 사람이 수정도 할 수 없게 되어 버렸지요

 

여기서 우리는 한가지 문제를 맞이하게 됩니다.

 

어느 한분야에 특화된 알고리즘은, 나머지 분야에서는 형편이 없다.

 

예를 들어서 골든리트리버를 구분하는 프로그램을 머신러닝으로 만들었다고 가정합시다.

하지만 이 프로그램은 진돗개를 구분하지 못합니다. 왜냐하면 그렇게 만들어 졌거든요

 

컴퓨터 공학자들의 숙제는 '보편적인 알고리즘'을 찾는 것이라고도 할 수 있습니다. 마치 아인슈타인의 통일장 이론처럼 말입니다.

 

 

빅데이터랑 머신러닝을 간단하게 써볼려고 했는데 횡설수설한거 같네요

정말 1% 간단한 것만 담았는데 일반 상식으로 도움되는 글이었으면 합니다.

728x90