2019. 9. 29. 23:26 ㆍ개발 이야기/머신러닝(딥러닝)
음성인식을 공부하면서
잘 풀리지 않는 문제 때문에 기초로 돌아가서
뭔가 처음부터 공부를 해야겠다고 생각이 들었다.
그래서 회사에 있는 머신러닝 관련 책들을 모두 내 자리로 가져와서
읽어보고 있다.
항상 그렇듯 기초가 가장 중요하기 때문에 머신러닝에 대해 정리를 해야겠다고 생각이 들었다.
그토록 뜨거운 관심을 가지고 있는 인기의 머신러닝은 무엇인가?
머신러닝의 개요를 보면
머신러닝이란 인공지능 연구 과제 중의 하나로,
인간의 뇌가 자연스럽게 수행하는 "학습"이라는 능력을 컴퓨터로 구현하는 방법
이라고 한다.
강의에서는 머신러닝은
개발자가 추측하기 어려운 로직을 컴퓨터 학습을 통해 구현 해주는 것 이라고 표현을 했다.
즉 우리가 챗봇을 만든다면
수 많은 분기문으로 어떤 대답이 왔을때는 이렇게 대답하고
어떤 대답이 왔을때는 저렇게 대답해라!
이렇게 IF문을 난사했다면
머신 러닝을 통해서 이런 소스코드를 짜준다. 로직을 구현해준다
이렇게 된다는 것이다.
자, 내가 이해한게 맞다면
머신러닝은 어떤 로직을 학습을 통해 구현해준다.
사람이 생각해 낼 수 있는 로직 외에도 다양한 로직을 구현할 수도 있을 것 같다.
머신러닝은 수 많은 데이터를 분석해서 어떤 데이터들의 규칙을 기반으로 분류(Classification)를 하거나,
예측을 할 수 도 있다!
머신러닝은 문자인식, 음성인식, 게임, 로봇 등 정말 쓰이지 않는 곳이 없다.
내가 찾아본 바로도 정말 엄청나게 다양한 분야에 사용되고 있음에도 틀림이 없고
정말 정말, 매력적인 분야임에 틀림이 없다.
(공부할 때마다 가슴이 뜨거워 진다)
머신러닝은 어떻게 특징과 규칙을 찾아 낼까?
머신러닝에서는 벡터를 사용하는데
우리가 물리시간에 배웠던 그 벡터가 맞다.
공간에서 크기와 방향을 가진 것.
데이터가 가진 특징들을 벡터로 만든다. 이를 "특징 추출"이라고 한다.
이런 특징을 추출하는 것은 개발자가 결정을 해야하는 것이다.
음성인식에서는 MFCC가 이와 같은 것이다.
Mel Frequency Cepstral Coefficient (MFCC)
쉽게 말하면 음성파일을 20ms로 잘라서 음성데이터가 갖는 특징과
글자를 맵핑하는 것
이런 특징을 추출하는 것이 머신러닝의 포인트이다!
무엇보다 정확한 머신러닝 결과를 얻기 위해서는
세밀한 분류가 필요한 것으로 판단된다.
음성인식에 있어서 이와 같은 경험이 있기 때문에
조만간 테스트가 완료되면 이 데이터 분류가 어떤 영향을 미치는지에 대한 글을
음성인식과 엮어서 올려보겠다.
'개발 이야기 > 머신러닝(딥러닝)' 카테고리의 다른 글
#6 음성인식 노이즈 제거2 (0) | 2019.10.11 |
---|---|
#Back to basic 제로스(zeroth) 프로젝트 스크립트 분석 및 인식률 고도화 방안 (2) | 2019.10.07 |
#5 음성인식 노이즈 제거 (15) | 2019.09.20 |
#4 음성인식 KALDI 툴을 이용한 한국어 음성인식(zeroth project) (69) | 2019.08.18 |
#3 음성인식 KALDI 툴 설치 (12) | 2019.08.18 |