기계학습에서 자주 사용되는 로지스틱 회귀는 독립 변수의 선형 결합을 이용하여 사건의 발생 가능성을 예측하는 통계 기법입니다.

회귀에 사용되는 선형 회귀(Linear Regression)와 비슷하게, 종속 변수와 독립 변수간의 관계를 구체적인 함수로 나타낸다는 점이 특징입니다. 그러나 로지스틱 회귀는 종속 변수가 범주형 변수를 대상으로 하는 분류 모델입니다.

 

로지스틱 회귀는 기본적으로, 선형 회귀와 비슷한 개념으로, 각 독립변수 x와 각 독립변수의 가중치 w와 절편 b로 이루어지는 함수식으로 나타내어집니다.

 

y =w[0] × x[0] + w[1] × x[1]++ w[p] × x[p] + b >0

 

 

로지스틱 회귀가 다른 회귀 분석 모델과 구분되는 가장 큰 특징은 결과 값이 0과 1이라는 것 입니다. 결과 값이 [-\infty, +\infty] 인 선형 회귀의 식을 [0,1]의 범위가 되도록 오즈(odds)를 로짓 변환 하여 얻어집니다

 

 

로지스틱 회귀 또한 이진 분류를 지원하는 이항형 로지스틱 회귀와 2개 이상의 카테고리를 분류하는 다항형 로지스틱 회귀로 나뉩니다.

분류 모델에서 자주 사용되는 k-최근접 이웃 이웃 알고리즘에 대해서 알아보겠습니다. (회귀 모델로도 사용되지만 분류 모델로 자주 쓰인다)
KNN 알고리즘은 가장 간단한 기계학습 알고리즘으로, 입력으로 주어진 데이터와 가장 가까운 데이터를 바탕으로 분류를 진행하는 것 입니다.
KNN 모델에서 model의 fit과정은 훈련 데이터를 단순하게 저장하는 것이 모델의 훈련의 전부입니다.
새로운 데이터를 예측할 때에는 알고리즘이 훈련 데이터 셋에서 가장 가까운 데이터 포인트 - 최근접 이웃을 찾습니다.
KNN 모델을 구축할 때 가장 큰 파라미터는 이웃의 개수 k와 거리 계수입니다.

 

이웃의 개수 K

이웃의 개수 k는 참고할 이웃의 개수를 정하는 것으로, k가 늘어날수록 decision boundary가 부드러워집니다.

 

최적의 이웃의 수 k를 정하는 것은, 데이터에 의존적인 작업입니다. (데이터마다 최적의 k값이 각각 다르다.) k값이 커질수록 잡음의 영향이 줄어들지만 decision boundary가 부드러워져 경계가 불분명해지게 됩니다. 좋은 k는 발견적 기법으로 선택됩니다. 
이진 분류 문제에서는 k가 홀수인 것이 바람직합니다.

 

거리 척도

거리 척도는 가까운 이웃을 찾을 때 사용되는데, 흔하게 유클리드 거리척도를 사용하지만, 필요에 따라 다른 거리 척도를 사용할 수 있습니다.

 

지도 학습에는 대표적으로 분류와 회귀 방법이 있습니다.

분류는 쉽게 말하면, 범주형 변수를 예측하는 것 입니다. 날씨에서 맑음, 흐림, 비를 예측하거나, 질병이 있음(1) 없음(0)을 예측하는 것, 숫자 판별(MNIST) 와 같은 사례들이 이에 속합니다.

분류 모델에는 0과1 2가지의 클래스로 분류되는 이진분류모델과 3가지 이상의 클래스로 분류되는 다항분류모델로 나뉩니다.

 

회귀는 쉽게 말해서, 연속형 변수를 예측하는 것이라 할 수 있습니다. 연속적인 숫자나 실수를 예측하는 것입니다. 날씨에서 기온을 예측하거나, 주식 가격 변동 예측을 하거나, 부동산 가격을 예측(보스턴 데이터셋) 등이 이에 속합니다.

https://ppss.kr/archives/195794?fbclid=IwAR247PGEjVN_3RN5CJZA7txxzlrZ2BR9LU-yo37o5ks-q_cOeR4359-MzMo

 

실시간 통·번역 인공지능이 나와도 언어 공부를 해야 할까?

「구글 번역 최고 담당자의 예상 밖 답변 "번역기가 인간을 완전 대체하는 시점은 오지 않을 수도"」, 조선비즈 구글 번역 최고 담당자인 마이클 슈스터가 자동 번역기가 좋아지더라도 특정 문화를 이해하기 위해 특정 언어를 익히는 것은 여전히 중요하다고 했다고 한다. 그리고 완벽한 번역기는 나오지 않을 수도 있다고도 얘기했다 한다. 슈스터의 말뜻을 조선비즈에서 어느 정도 제대로 이해하고 글로 잘 옮겼는지 나는 잘 모르겠다. 게다가 슈스터가 평소에 어떻게 얘기했

ppss.kr

구글 번역의 최고 담당자는 예상 외로 번역기가 인간을 완벽하게 대체할 수는 없다고 답변하였고 한다. 또한 자동 번역기가 좋아지더라도 특정 문화를 이해하기 위해 특정 언어를 익히는 것은 여전히 중요하다고 했다.

 

현재도 구글 번역, 파파고 번역, 이제 조금만 있으면 출시한다는 카카오 번역까지... 번역기가 정말 많아지는 세상이고, 번역의 질 또한 점점 올라가고 있다. 딥러닝 기술을 사용하여 더 인간다운 번역과, 음성 인식 및 이미지 프로세싱을 통하여 음성, 사진 또한 실시간으로 번역되는 기술이 점차 나타나고 있다. 그러나 필자 또한 마이클 슈스터처럼 번역기가 인간을 완전히 대체할 수는 없다고 생각하는 바이다.

 

언어는 인간의 문화의 정수라고도 할 수 있다. 가장 쉬운 예로, 문학 작품의 경우이다. 특히 시와 같은 문학에서는 번역으로는 표현할 수 없는 부분들이 꼭 존재하기 마련이다. 시적 허용이나, 언어유희 같은 경우이다. 그 언어의 고유한 특성에서만 나타나는 부분들이 정말 많다는 것이다. 가령 윤동주 시인의 '서시' 를 번역기에 넣고 번역한다면 그 뉘앙스가 우리에게 동일하게 전해 질까?

 

 

그러나 인간의 귀차니즘은 배움의 욕구를 초월한다고 한다. 아무리 문화를 이해하고 자시고... 편한 것을 찾는 사람들은 그냥 좋은 번역기가 나오면 번역기를 사용할 지도 모른다. 그러나 이런 상황 속에서도 언어를 배우거나 언어를 연구하는 부분이 절대로 도태되어서는 안된다는 것이다. 

 

그러나 아직 영어는 별로 ...

'IT > AI' 카테고리의 다른 글

[ML] 로지스틱 회귀  (0) 2020.06.04
[ML] k-Nearest Neighbors  (0) 2020.06.03
[ML] 분류와 회귀  (0) 2020.06.03
딥러닝 기반 형태소 분석기 khaiii  (0) 2019.05.22
FLOW MACHINES : AI ASSISTED MUSIC  (0) 2019.04.15

딥러닝 기반 형태소 분석기 khaiii

형태소 분석기 라는 키워드로 구글 검색을 하다가 카카오에서 개발한 딥러닝 기반의 형태소 분석기인 khaiii를 알게 되어 소개하고자 포스팅하게 되었습니다.

khaiii는 Kakao Hangul Analzer III 의 약자 입니다. 전작인 dha1, dha2를 계승하여 만들어졌다고 볼 수 있지만 dha 시리즈와 달리 데이터 기반으로 동작하여, 딥러닝 알고리즘을 사용합니다.

자연어 처리에 있어서 형태소 분석은 가장 기초적인 절차라 합니다. 구문과 의미 분석에 있어서 가장 먼저 형태소 분석이 이루어져야만 합니다. khaiii는 딥러닝 기술 중 하나인 CNN 기술로 음절 기반으로 형태소를 분석합니다. 국립국어원의 세종 코퍼스 데이터를 기반으로 자체 구축한 데이터를 추가하여 85만 문장, 1천만 어절의 코퍼스를 학습하였다고 합니다. C++ 기반으로 디코더가 구현되어 있어 GPU가 없이도 비교적 빠르게 동작하며, Python 바인딩을 제공하여 파이썬으로 편리하게 사용할 수 있습니다.

카카오에서 개발한 khaiii는 Github에 오픈소스로 공개되어 있습니다. 한국어 연구 및 챗봇, 자연어 처리 응용기술의 개발 등 많은 분야에 적용될 수 있을 것으로 보입니다.

https://github.com/kakao/khaiii

1. 데이터 기반

khaiii는 데이터 기반의 기계학습 알고리즘을 사용하여 형태소를 분석합니다. 국립국어원의 세종 코퍼스 데이터를 기반으로 하여 학습하였습니다.

2. 알고리즘

CNN 알고리즘을 사용하였습니다. 자연어 처리에 있어서 형태소 분석은 중요한 전처리 과정이므로 속도가 중요하다고 생각하여 LSTM, RNN 등의 알고리즘은 고려 대상에서 제외하였다고 합니다. 즉, 비교적 빠른 시간 내에 분석이 이루어진다는 것을 의미합니다.

 


khaiii는 파이썬 스크립트를 통하여 빌드 됩니다. CMake 빌드 툴을 사용하여 파이썬 내에서 빌드되게 됩니다. 다만, 아쉬운 점은 MS Windows를 지원 하지 않아서, Linux 나 MacOS에서만 기능한다는 점입니다. 빌드된 khaiii는 파이썬 바인딩을 통하여 파이썬 인터프리터 내에서 사용할 수 있습니다.

자세한 설치 방법은 아래 링크에서 확인하여 주세요.

https://github.com/kakao/khaiii/blob/master/doc/setup.md

사견

카카오에서는 이 khaiii 외에도 많은 딥러닝 오픈소스 프로젝트를 공개하였습니다. 아직은 인공지능에 대한 공부가 부족하여 이해하기 힘든 부분도 있지만... 좀 더 배우고 공부하여 나중에 본다면 이해될 것이라 믿습니다...

 

 

/// 참고자료

http://tech.kakao.com/2018/12/13/khaiii/

https://github.com/kakao/khaiii/

Flow Machine은 최첨단 기계 학습 및 신호 처리 기술을 기반으로 한 새로운 기술을 개발하여 새로운 음악을 창조하는 데 계속 도전하고 있습니다.


Flow Machine은 Flow Machine Professinal이라는 AI지원 음악 작곡 시스템을 주요 부분으로 가지고 있습니다. 제작자는 다양한 음악 데이터를 분석하여 만든 다양한 음악 규칙에 따라서 자신이 원하는 다양한 스타일에 멜로디를 작곡할 수 있습니다. 제작자는 Flow Machine 을 조작하여 멜로디, 코드 및 베이스를 생성해 내고 이것에서 영감을 받은 아티스트는 자신의 아이디어를 첨가하여 새로운 음악을 만들어 냅니다. 

Flow Machine은 음악을 처음부터 끝까지 만드는 것이 아니라 아티스트에게 영감을 주고 창의력을 향상시키는 도구의 역할을 합니다. 

Flow Machine은 멜로디와 코드 진행을 갖는 복수의 Sheet을 학습하고 멜로디의 전이 확률, 코드 전환 확률 등을 모델링하여. 새로운 멜로디와 코드 진행을 얻는 것이 특징입니다.

 

여기에서 Flow Machine을 활용한 음악을 들어보실 수 있습니다.

https://www.youtube.com/watch?v=LSHZ_b05W7o

 

 

흥미로운점은 AI는 인간의 창조성을 위협하려는 것, 경쟁자가 아니라 인간의 창의성을 돕는 도구, 협업자의 역할을 해준다는 것 입니다. AI의 무궁무진한 발전이 인간을 위협하기보다는 인간에게 많은 도움을 가져올 것으로 보입니다.

 

 

## 참고자료

https://www.flow-machines.com/

https://av.watch.impress.co.jp/docs/series/dal/1178759.html

+ Recent posts