Machine Learning은 뭐죠?

Machine Learning은 뭐죠?

Machine Learning이 뭔지 알고 시작해야죠


1) Arthur Samuel은 Machine Learning은 컴퓨터에게 프로그램되지도 안고 배울 수 있는 능력을 주는 분야라고 하네요

2) Tom Mitchel은 Machine Learning은 경험(E)으로부터 계산(P)해서 어떤 일(T)에 대해 배우는 컴퓨터 프로그램이라고 하기도합니다.

  즉, 컴퓨터가 스스로 데이터를 처리하는 일련의 과정인 것입니다. machine learning은 데이터가 방대해진 요즘 가장 각광받기도하고 가장 많이 쓰이는 컴퓨터 과학이기도 합니다. 그래서 예시들도 모두 우리와 밀접해 있어요.
  하루 10억건이나되는 구글의 검색은 누가 랭크를 올리고 내릴까요? 배워먹은 컴퓨터입니다. 수천개의 언론사로 부터 같은 주제의 내용을 묶어 보여주는 것도 컴퓨터가 합니다. 그 외 스팸메일을 막기도하고 사용자에 맞는광고도 보여주고 많은걸 컴퓨터가 알아서하는거죠.

 데이터 홍수를 지나서 쓰나미처럼 몰려오는 지금 이러한 자동 데이터 처리는 필요가 아닌 필수가 되어버린 시대입니다.






1) Arthur Samuel. Machine Learning:Field of study that gives computers the ability to learn without being explicitly programmed.

2) Tom Mitchel. Well-posed Learning Problem: A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experience E.

(위에서 말한 아서와 탐이말한 원본인것같은데 내나름대로 의역했으니 이 원본을 보시고 이해하는 것이 나을지 모르겠네요.)
Supervised learning And Unsupervised learning

Supervised learning And Unsupervised learning


기계학습에는 크게 두 가지 방법으로 나눌 수 있어요. 첫 번째로 supervised이에요.
이 방법은 데이터와 그 데이터가 의미하는 결과 값을 미리 학습시킴으로써 그 외의 데이터들이 어떤 결과 값을 가질 것인지 판단하게 하는 거에요. 그러므로 이 방법은 올바른 결과를 가지고 있는 데이터들을 사용해야 하겠죠?. 예를 들면 교사가 남아서 썩은 음식물, 어디에다도 쓰지못하는 핵폐기물, 모니터가 안 나오는 노트북이란 데이터에 쓰레기라는 결과 값으로 데이터를 입력해주었네요. 그러면 학생은 ‘곽진산’ 을 보고 당연히 이건 쓰레기라는 결과 값을 내놓겠죠. 결국 사전데이터에 입각한 결론을 내는 알고리즘들이 이 방법이라고 할 수 있습니다.

이렇게 사전데이터를 주고 결과값을 받을 땐 continuous한 것과 discrete한 것이 있죠? 예를 들면 내가 어떤 집을하나 장만할려고 해서 그 집을 어느정도 가격에 사야되는건가? 할때는 그 결과값이 1276003656원일수도있고 23412.23원이 될 수 있죠? 그에 비해 이 집을 사야될지 말아야될지를 구분하는 것은 discrete 결과이죠. 이렇게 RegressionClassification을 구분할 수 있겠네요.

두번째는 Unsupervised는 supervised랑 비교되는 몇 가지 특징이있죠. 우선 사전데이터, 그에 따른 결과가 필요없어요. clustering을 생각해보죠. clustering은 데이터들의 속성 값을 계산해서 인접한 데이터끼리 묶어내는 것으로 사전데이터가 필요없죠. 어떤 속성을 측정해서 인접성을 찾아낼 것인가가 중요한 것이죠. 예를 들면 눈,코,입이란 공통적인 속성을 가진 데이터끼리 비교해 이쁘고 착한친구와 못생긴 나쁜 괴물을 구분짓는 것입니다.
OpenCV 시작과 설정.

OpenCV 시작과 설정.


OpenCV 설치.

기본적인 Machine Learning을 배우려고 OpenCV에 손을 댔네요. Computer Vision을 처리하는 라이브러리들이 빼곡하게 차있고, 물론 Open Source이므로 소스까지 공개되어있어 이쪽 분야에선 아주 널리널리 사용하고 있어요.
OpenGL은 그래픽을 표현하는 쪽이라면 OpenCV는 그래픽을 가공처리하는데 필요합니다.

OpenCV는 C++,java ,python등으로 사용할수 있나봐요. 물론 python에 대한 유혹을 뿌리치지 못했지만 교수님이 C++이나 Java를 원하시는 것같아 C++로 하기로했습니다. 오랜만에 VS를 켜봅니다.

이런 라이브러리 사용할땐 역시 컴파일문제가 일어날 수밖에 없죠. 저도 간만에 컴파일언어를 써보는지라 삽질좀 하면서 설정을 마쳤네요.
cmake를 사용해서 작업환경에 맞게 빌드한 다음 사용할 lib 폴더, dll폴더의 경로를 설정만 해주면 됩니다.

cmake로 컴파일하는방법
http://blog.naver.com/PostView.nhn?blogId=lithium81&logNo=80123195965

visual studio directory 및 dll 링크 방법.
http://gyeongju.tistory.com/19

블로그 고르고 설정하기까지.

블로그 고르기

블로그를 운영하는데 있어서 가장 눈에 띄고 또 가장 처음 필요한건 템플릿 변경이라고생각해요. 우선 나부터 들어오고 싶어야 뭘 올리든 말든하겠죠. 그래서 뭐 다들 같고 뻣뻣한 형식의 블로그들보다 디자인들을 수시로 바꾸고 고치고 할 수 있는 이 블로거가 저한텐 짱인거같에요.

보니깐 블로그도 종류별로 나눠져있더라고요? 뭐 설치형, 가입형으로 나누기도 하고 목적에 따라서 단문형 장문형도 나누기도 해놨더라고요.

네이버, 이글루스, 싸이월드, 티스토리 뭐 사람들마다 각자 선호하는 것 필요하는것 모두 달라서 무엇이 좋다고 말은 못해요. 하지만, 전 꽉막힌 네이버나 이글루스, 싸이월드는 싫고 티스토리 할려고 했더니 무슨 초대장?이 필요하데, 난 누구 생일잔치도 초대못받아서 서러운데 블로그하나 하려는데도 초대받아야하다니... 여튼 다따져봐도 블로거가 나한텐 딱.

이정도로 유연한데 호스팅할 필요도 없고~

템플릿 고르기

누가 인생은 선택의 연속이라 했던가? 쟁쟁한 블로그 제공자들 중에 하나 고르고 나니깐 또 이 템플릿이라 불리는 블로그 껍데기를 고를 차례네요. 그래서 여기서도 내가 필요한거 몇개 적어놓고 가장 적합한거 눈에 보이면 바로 골르고 뒤도 안돌아볼거임. 껍데기는 나중에 바꾸는데 문제 없으니깐! 그래서 거지인 나에게 무료이고, 심플하고, 글이 많이~ 있어도 분류하거나 찾아보는데 어렵지 않을 정도의 카테고리나이징이 조건이에요. 그래서 고른게 이 붉고 모던하게 각진 스타일, 마치 윈도우8의 시작화면 같은느낌을 골랐네요. 몇 가지 아쉬운건 카테고리를 트리 구조형식을 원하는데, 나중에 코드를 수정하던가 아예 바꾸던가 해야되겠죠?


저위에 백업/복원 눌러서 xml파일 업로드하면 알아서 내가 원하는데로 해주더라고요. 편리해요. 아 무료템플릿은 구글링하면 꽤나와요. 키워드는 무료 블로그 템플릿 하니깐  
btemplates.com/‎ 

여기 나오더라고요 블로거에 맞는 템플릿이 제공되서 미리보기해서 고르기만 하면되네요. 이 사람들은 이거 기부해서 잘먹고 잘사는지 궁금하네요. 저 정도로 기부할 재능만 있어도 좋겠다ㅏㅏㅏㅏㅏ.

간단한 블로그 시작기 끝.
블로그를 다시한번 시작!

블로그를 다시한번 시작!

블로그 시작!


저번에 블로그를 시작했는데 몇 개월 안가서 접었네요. 뚜렷한 목적도 없었고 공유의 흥미도 없어서 그랬어요. 이번에는 목적! 내 학습들을 기록하고 나중에도 찾아볼 수 있게 정리해 놓고 뭐 그거를 가져다 써주는 사람은 땡큐라고 생각해요. 모든 글은 한글로 올릴 거고 쉽게 쉽게 쓸려고 노력할 거에요. 지금 하고 있는 것 중에 몇 가지가 이미 진행된게 있어서 중간부터 시작하는 것도 있을 거에요. 그런 것들은 우선 어쩔 수 없고 지금부터 진행되는 건 모두 적어 놓을게요.

우선 첫번째, Node.js를 하던 참이었어요. 나름 아이디어도 생기고 자바스크립트라는 매력적인 언어를 기반으로해서 작성할 수도 있고 지금 상태는 쉬운 예제들을 갓 끝낸 상태에요.

그리고 두번째, opencv 이건 지금 처음 건들여 보는 거에요. 교수님의 과제로 이걸지금 건드려봐야되요. 책의 목차를 보니 중요한 영상처리에 중요한 알고리즘 혹은 기계러닝 라이브러리를 제공해주고 있어요. 아 기대되네요~ 오랜만에 C를 만져봐야될 거같아 한숨 나오지만.....씨는 진짜 씨x에 씨인거 같에요.

아 그리고 이번엔 블로그 좀 오래해볼려고 여기 템플릿도 바꾸고 해봤어요. 좋은 템플릿이 무료로 많이 배포되네요. 그런 재능을 가지고 있고 또 공유를 하는 사람들... 부럽네요.