C# 으로 Machine Learning ML.net - 1

2018. 6. 19. 11:21개발관련기록/Machine Learning For AI

반응형

본인은 C#으로 AI 및 Machine Learning을 시도하고자 하고

한번 지대로 AI가 뭔지 실제 응용 프로그램을 만들고 TEST 해 보는 작업을 해보고자 한다.

자 그럼 시작해 보자.

(혹, 이런일을 하게된 계기가 궁금하다면 이 부분을 클릭하시기를 바랍니다)


C#으로 Machine Learning 에 대해 가장 쉽게 접근할 수 있는 방법은?


그렇다. 소스를 직접 돌려 보는 것이다.

모든 개발자들이 대부분 그러하듯 

'누군가가 만들어 놓은것이 있을지도 모른다' 라는 막연한 생각을 가지고 구글링을 하는데

희한하다.

Microsoft 홈페이지가 바로 뜬다. 사실 Stack overflow라던가 Github, sourceforge 으로 연결이 될 줄 알았다.

일단 아래 부분으로 들어가보자.



들어가자 마자 ML.net이라는게 보이는데.

각설하고 간단하게 설명하면 이런거다.

MS : "자 이제 부터 우리는 AI 관련된 모든 소스 하고 모든 예제는 Github으로 할께. 공짜고 Open Source야. 알지? Github 우리가 인수한거? ㅋㅋ Python 처럼 다양한 AI 관련 API를 만들어 주길 바랄께. 우리도 이제 Open Mind로 갈꺼야. 더 이상 폐쇄적인 구조로 일 안할께."

놀랍게도 MS의 이런 반응은 대단한거다. 알다시피 MS는 Open Source로 태세전환은 예전부터 주목된 변화이긴 했지만 어지간히 Python, Java 와 같은 놈들이 걸리적 거리긴 했나 보다.


일단 ML.net Github를 깔고 직접 설치 하고 빌드를 했다.


자.. 이제 Github이랑 연동도 했으니 직접 Bulid를 해서 예제 소스를 한번 만져보자.

무슨일이 벌어질까..

Sample Source를 살펴 보니 C#으로 만든 Project가 맞다.

일단 놀랍다....


Project중 하나를 열어 봤다.

BinaryClassification_SentimentAnalysis

감정 분석?!? 


소스가 어떻게 생겨 먹은건지 간단하게 Review 하고 그 결과를 한번 보도록 하자.


소스를 하나하나 설명하기 전에 구조를 먼저 설명하면 다음과 같다.

txt 문서중 sentiment-imde-train.txt 파일이 존재 한다.

이 파일은 기계학습을 위한 1000개의 문장을 담고 있고 그 문장이 긍정이면 뒤에 값을 1을 부정이면 0이란 값을 적어 놓았다.

예를 들면 아래와 같은 문장의 형식을 약 1000개 정도의 row로 가지고 있다.

I really liked that.  1

A truly, truly bad film.  0

자.. 이렇게 학습 시킨 내용으로 내가 주는 문장이 긍정적인 문장인지 부정적인 문장인지를 분석하는 AI 인것이다.

내가 TEST 해 볼 문장은 다음과 같다.

"Contoso's 11 is a wonderful experience"

"The acting in this movie is very bad"

"Joe versus the Volcano Coffee Company is a great film."


결과를 Build 해서 돌려 보자.


결과가 놀랍다.

문장이 긍정적 문장인지 부정적 문장인지 맞췄다.

그러면 이러한 기능으로 무엇을 할수 있는지 Idea를 간략하게 생각해 보면

기업의 긍정적 뉴스의 수와 부정적 뉴스의 수를 데이터 베이스로 담아 놓고 그 값에 의해서 주가지표가 어떻게 될지 예측하는 시스템이 가능할 것이고, 창작물을 만다는 사람이라면 뎃글의 긍정과 부정의 내용을 %로 집계도 가능하다는 이야기가 된다. 이걸 전문적으로 분석하는 사람이 아니라 AI가 해 준다면?!? ㅎㅎㅎ


자 이제 이 소스를 분석하는 Posting도 계시 해 볼 예정이다.

Java? Python? 물론 다 강점이 있겠지만 사실 종이에 글을 쓰기 위해 붓이건, 연필이건, 볼펜이건 기능상으로 차이가 있을 뿐이지 궁극적인 목표(종이위에 글은 쓴다) 는 변하지 않으므로 C#으로 뭘 해도 동작하기만 하면 되는것 아닌가?

혹 지금 나처럼 Machie Learning에 빠져볼 사람이 있다면 도전해 보자.

C#은 내가 봤을떄 가능성이 무궁무진한 언어라 장담한다.


이제 분석 Posting을 작성할 예정인데..

아마도 많은 시간이 소요되지 않을까 한다.

한글로도 바꿔서 TEST 해보고 싶기도 하고...ㅎㅎㅎ

할것 많다~


반응형

'개발관련기록 > Machine Learning For AI' 카테고리의 다른 글

C# 으로 Machine Learning Prologue  (0) 2018.06.19