KoSpacing : 한글 자동 띄어쓰기 패키지 공개

띄어쓰기는 형태소 분석 이전에 반드시 수행해야 되는 중요 전처리 과정중에 하나이며, 이 때문에 공개된 형태소 분석기에는 일종의 자동띄어쓰기 모듈이 숨겨져 있는 경우가 많다. 하지만 그런 띄어쓰기 엔진의 성능이 대부분 좋지 않아 허울뿐인 경우가 많다. 필자가 만든 KoNLP 역시 그중에 하나였다. 물론 띄어쓰기는 형태소 분석 이전에만 사용하는게 아니다. 띄어쓰기 모듈은 Speech To Text 혹은 음성인식 모듈에서 […]

계속 읽기

Gluon으로구현해보는 한영기계번역 모형 – 마이크로소프트웨어 기고문

2월 초에 마이크로소프트웨어에 기고한 원고를 공개한다. 소스코드는 이곳에 공개되어 있다.  Gluon을 공부하면서 코드를 구성하고 모델이 동작 가능하게 하는데 주말 퇴근 후 여가시간을 활용해 약 1.5개월이 소요되었다. 그래도 1.5개월만에 이정도 동작 가능하게 한건  딥러닝 덕분이다. 원고를 청탁 받으면 항상 주제를 상향시켜서 진행하는 습관이 있는데, 신경망 기계번역글도 마찬가지였다. 아무 경험 없는 상태에서 시작해서 글을 마칠때까지 믿고 맡겨준 […]

계속 읽기

신경망 한영 번역기 코드 공개

딥러닝으로 구축한 한영 번역기 코드를 공개한다. 대부분 fixed length로 인코더 디코더를 구현하는 seq2seq 예제모형에서 좀더 나아가서 variable length를 인식해 학습이 되게끔 구현했다. 아마도 Gluon으로 해당 코드는 처음이지 않을까 한다. 모든 코드를 Symbol로 구현해 hybridize 모드로 학습이 될 수 있게끔 했고, 기본적으로 teacher forcing 방식으로 학습을 구성했다. 임베딩 학습도 다소 특이하게 한,영 단어를 모두 하나의 임베딩 […]

계속 읽기

딥러닝이 덧셈을 하는 방법, Attention Mechanism으로 살펴보기

필자가 지난번 seq2seq기반 덧셈 모형 빌드(with Gluon)을 Gluon으로 구축했으며, 잘 동작하는 모습을 보여줬다. 해당 코드를 정리하면서 딥러닝이 어떠한 방식으로 덧셈을 하는지 조금더 엿볼 수 있으면 어떨까 하는 생각이 들었다. 이 글을 보기 전에 이전 포스트를 먼저 읽어보길 권한다. 이 포스트에서 보여줄 두가지 부분은 어텐션 매커니즘(attention mechanism) 구현과 시각화 그리고 Gluon 모델의 학습/예측 퍼포먼스 향상을 할 […]

계속 읽기

seq2seq기반 덧셈 모형 빌드(with Gluon)

필자가 Gluon을 시작한 계기는 바로 Keras로 seq2seq기반의 네트워크를 구축하기가 매우 어렵거나 모호해서 였다. 사실 간단한 영한 기계번역기를 Keras로 만들다가 한계에 부딧혀 포기했다. 그 원인은 아래 도표를 보면 알겠지만 학습과 예측의 네트웍 플로우가 다른데 있는데, 이럴 경우 예측 코드는 Keras에서 작성하기가 어려워진다. 사실 어렵다기 보다는 모호한 코드를 짜게 될 가능성이 많다. 그래서 해당 코드를 작성하고 이틀만 […]

계속 읽기

전이학습(transfer learning)으로 모형 재사용하기 (Gluon 기반)

전이학습(traansfer learning)은 꽤 오래된 주제지만 실무에서 활용한만한 가치가 높은 기법중에 하나이다. 특히나 이미지 관련 분류 모형에서는 이 기법은 거의 필수라고 생각하고 일반적인 기술일 것이다. 이 기법은 기존 분류에 대한 성능이 좋은 네트워크와 가중치를 일부 혹은 전부 가져와 상위 레이어를 튜닝하는 방식으로 자신이 원하는 문제를 풀게 모형을 재활용 혹은 전용하는 방법이다. 특히나 학습셋이 부족한 경우 그리고 […]

계속 읽기

Gluon을 이용한 Grad CAM

먼저 이 글을 독자분들이 읽기 전에 배경 지식을 위해 아래 글을 먼저 읽어보길 추천한다. Grad CAM을 이용한 딥러닝 모형 해석 이전 글의 코드를 보면 알다시피 keras의 레이어 API구조로 직관적으로 gradient나 layer 출력을 직관적으로 뽑아보는게 다소 번거롭고 backend API의 도움으로 부분적으로나마 가능하다는 생각을 독자분들도 했을거라 생각한다. 아마도 이런 부분때문에 PyTorch와 같은 imperative 방식의 딥러닝 프레임웍이 인기가 […]

계속 읽기

Grad CAM을 이용한 딥러닝 모형 해석

모형의 해석은 실무적인 관점에서 생각보다 중요한 부분을 차지하고 있다. 가장 먼저 모형이 상식에 맞게 만들어 졌는지 확인하기 위한 용도로 활용 가능한데, 만일 상식에 기반해서 모형이 만들어 졌다면 오랜 기간 모형을 운영하는데 안정성을 유지해줄 가능성이 많다. 또한 모형 스코어에 대한 설명을 현업에서 요구하는 경우가 많은데, 이 경우 현업의 이해와 신뢰를 도모하는데 큰 역할을 해준다. 무엇보다 모형을 […]

계속 읽기

딥러닝 한글 자동띄어쓰기 모형 성능 향상 및 API 업데이트

1차 모형과 띄어쓰기 정확도 성능 차이 테스트 셋 1차 모형 2차 모형 세종 코퍼스 94.8% 97.1% 구어체 코퍼스 93.2% 94.3% 성능 측정방식은 코퍼스 내 문장별로 모든 띄어쓰기를 제거하고 넣었을때 올바르게 띄어쓰기가 되는지 여부를 측정한 것이다. 세종 코퍼스 1만 문장, 구어체 코퍼스 3만 문장으로 테스트 했다. 그리고 모형 학습은 박찬엽씨가 공유해준 뉴스 코퍼스 1억 문장 기반으로 […]

계속 읽기

맥주마시며 만들어본 딥러닝 맥주 추천엔진

퇴근 후 간단한 저녁과 함께 데낄라 한잔을 하고 집에 와서 맥주를 마시다가 4년전에 킵해둔 맥주 리뷰 데이터 생각이 나서 이 데이터 기반으로 10분만에 딥러닝 맥주 추천엔진을 만들어 봤다. 학습하는데 10분이 더 걸렸던 것을 빼놓고는 생각보다 나쁘지 않은 엔진이 구축되었다. 딥러닝 기반의 추천엔진 학습은 사용자 임베딩 매트릭스와 맥주 임베딩 매트릭스의 가중치를 학습하는게 목적이며 이 임베딩 매트릭스 […]

계속 읽기