발표자: 이활석(NAVER)
발표일: 2017.11.
최근 딥러닝 연구는 지도학습에서 비지도학습으로 급격히 무게 중심이 옮겨 지고 있습니다. 본 과정에서는 비지도학습의 가장 대표적인 방법인 오토인코더의 모든 것에 대해서 살펴보고자 합니다. 차원 축소관점에서 가장 많이 사용되는Autoencoder와 (AE) 그 변형 들인 Denoising AE, Contractive AE에 대해서 공부할 것이며, 데이터 생성 관점에서 최근 각광 받는 Variational AE와 (VAE) 그 변형 들인 Conditional VAE, Adversarial AE에 대해서 공부할 것입니다. 또한, 오토인코더의 다양한 활용 예시를 살펴봄으로써 현업과의 접점을 찾아보도록 노력할 것입니다.
1. Revisit Deep Neural Networks
2. Manifold Learning
3. Autoencoders
4. Variational Autoencoders
5. Applications
발표자: 이활석(NAVER)
발표일: 2017.11.
최근 딥러닝 연구는 지도학습에서 비지도학습으로 급격히 무게 중심이 옮겨 지고 있습니다. 본 과정에서는 비지도학습의 가장 대표적인 방법인 오토인코더의 모든 것에 대해서 살펴보고자 합니다. 차원 축소관점에서 가장 많이 사용되는Autoencoder와 (AE) 그 변형 들인 Denoising AE, Contractive AE에 대해서 공부할 것이며, 데이터 생성 관점에서 최근 각광 받는 Variational AE와 (VAE) 그 변형 들인 Conditional VAE, Adversarial AE에 대해서 공부할 것입니다. 또한, 오토인코더의 다양한 활용 예시를 살펴봄으로써 현업과의 접점을 찾아보도록 노력할 것입니다.
1. Revisit Deep Neural Networks
2. Manifold Learning
3. Autoencoders
4. Variational Autoencoders
5. Applications
발표 영상: https://www.youtube.com/watch?v=Se62pRpk9A0
PDF로 받아서 보시면 더 깨끗하게 보실 수 있습니다.
지난 6개월 간 Diffusion model로 MVP를 만들면서 했던 최적화에 대한 고민과 MLops 경험을 공유합니다. 어제 DEVIEW에서 발표한 내용을 좀 더 이해하기 쉽게 수정했고, Diffusion model에 익숙치 않은 분들을 위해 전반부에 간략한 소개와 발전 과정을 정리했습니다.
최근에 Generative AI로 멋진 제품을 만들고자 하는 분들이 많아진 것 같습니다. 모두가 같은 기술에 접근할 수 있는 상황인 만큼 어떻게 다른 가치를 세상에 설득할 것인가 고민을 더 하게 되네요.
저희가 해왔던 시행 착오가 누군가에겐 도움이 되길 바랍니다!
https://symbiote-ai.com/
책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017Taehoon Kim
발표 영상 : https://youtu.be/klnfWhPGPRs
코드 : https://github.com/carpedm20/multi-speaker-tacotron-tensorflow
음성 합성 데모 : http://carpedm20.github.io/tacotron
발표 소개 : https://deview.kr/2017/schedule/182
딥러닝을 활용한 음성 합성 기술을 소개하고 개발 경험과 그 과정에서 얻었던 팁을 공유하고자 합니다.
Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation
http://arxiv.org/abs/1609.08144
を読んでみたので、簡単にまとめました。間違い等は是非ご指摘ください。
Coursera Machine Learning by Andrew NG 강의를 들으면서, 궁금했던 내용을 중심으로 정리.
내가 궁금했던건, 데이터를 분류하는 Decision boundary를 만들때...
- 왜 가중치(W)와 decision boundary가 직교해야 하는지?
- margin은 어떻게 계산하는지?
- margin은 어떻게 최대화 할 수 있는지?
- 실제로 margin을 최대화 하는 과정의 수식은 어떤지?
- 비선형 decision boundary를 찾기 위해서 어떻게 kernel을 이용하는지?...
http://blog.naver.com/freepsw/221032379891
AI/Machine Learning의 한 분야인 Natural Language Processing (NLP)에 대해서 발표를 할 예정입니다. NLP는 한국어로 “자연어 처리”로서 Computer Vision 및 Image Processing에서 “언어적 문맥” 이해와 “그 처리”는 상당히 중요한 역할을 차지합니다. Image/Video를 Language화하여 처리하는 다양한 알고리즘이 존재하며 CVPR/ICCV의 학회에서도 핫한 분야 중 하나입니다. 대표적인 분야는 Image/Video Captioning, Description 및 Visual Q&A 등이 있습니다.
그 중에서도 핵심 Background가 되는 Word2Vec에 대해서 소개하고자 합니다. Word2Vec은 언어처리 뿐만 아니라 Generative Model과도 연관성이 높다는 것이 특징이며. NLP의 모든 분야에서의 핵심 이론으로 보시면 되겠습니다.
발표 영상: https://www.youtube.com/watch?v=Se62pRpk9A0
PDF로 받아서 보시면 더 깨끗하게 보실 수 있습니다.
지난 6개월 간 Diffusion model로 MVP를 만들면서 했던 최적화에 대한 고민과 MLops 경험을 공유합니다. 어제 DEVIEW에서 발표한 내용을 좀 더 이해하기 쉽게 수정했고, Diffusion model에 익숙치 않은 분들을 위해 전반부에 간략한 소개와 발전 과정을 정리했습니다.
최근에 Generative AI로 멋진 제품을 만들고자 하는 분들이 많아진 것 같습니다. 모두가 같은 기술에 접근할 수 있는 상황인 만큼 어떻게 다른 가치를 세상에 설득할 것인가 고민을 더 하게 되네요.
저희가 해왔던 시행 착오가 누군가에겐 도움이 되길 바랍니다!
https://symbiote-ai.com/
책 읽어주는 딥러닝: 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017Taehoon Kim
발표 영상 : https://youtu.be/klnfWhPGPRs
코드 : https://github.com/carpedm20/multi-speaker-tacotron-tensorflow
음성 합성 데모 : http://carpedm20.github.io/tacotron
발표 소개 : https://deview.kr/2017/schedule/182
딥러닝을 활용한 음성 합성 기술을 소개하고 개발 경험과 그 과정에서 얻었던 팁을 공유하고자 합니다.
Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation
http://arxiv.org/abs/1609.08144
を読んでみたので、簡単にまとめました。間違い等は是非ご指摘ください。
Coursera Machine Learning by Andrew NG 강의를 들으면서, 궁금했던 내용을 중심으로 정리.
내가 궁금했던건, 데이터를 분류하는 Decision boundary를 만들때...
- 왜 가중치(W)와 decision boundary가 직교해야 하는지?
- margin은 어떻게 계산하는지?
- margin은 어떻게 최대화 할 수 있는지?
- 실제로 margin을 최대화 하는 과정의 수식은 어떤지?
- 비선형 decision boundary를 찾기 위해서 어떻게 kernel을 이용하는지?...
http://blog.naver.com/freepsw/221032379891
AI/Machine Learning의 한 분야인 Natural Language Processing (NLP)에 대해서 발표를 할 예정입니다. NLP는 한국어로 “자연어 처리”로서 Computer Vision 및 Image Processing에서 “언어적 문맥” 이해와 “그 처리”는 상당히 중요한 역할을 차지합니다. Image/Video를 Language화하여 처리하는 다양한 알고리즘이 존재하며 CVPR/ICCV의 학회에서도 핫한 분야 중 하나입니다. 대표적인 분야는 Image/Video Captioning, Description 및 Visual Q&A 등이 있습니다.
그 중에서도 핵심 Background가 되는 Word2Vec에 대해서 소개하고자 합니다. Word2Vec은 언어처리 뿐만 아니라 Generative Model과도 연관성이 높다는 것이 특징이며. NLP의 모든 분야에서의 핵심 이론으로 보시면 되겠습니다.
(Papers Review)CNN for sentence classificationMYEONGGYU LEE
review date: 2017/10/10 (by Meyong-Gyu.LEE @Soongsil Univ.)
Korean review of 'Convolutional Neural Networks for Sentence Classification'(EMNLP2014) and 'A Syllable-based Technique for Word Embeddings of Korean Words'(HCLT 2017)
* mecab-ko, mecab-ko-dic 환경에서 사용자 사전 추가 과정을 정리
* 사용자 사전 추가 과정에서 LEFT-ID, RIGHT-ID 검색 문제 해결 과정 정리
1. mecab-ko-dic
2. 사용자 사전 반영 과정
3. 사용자 사전 반영 중 발생 문제 정리
4. 최종 사전 반영 과정
파이썬을 활용한 금융 분석 Ch 9. Input Output Operation
1. 기본 파이썬 입출력
1-1. pickle 패키지를 통한 입출력
1-2. CSV 파일로의 입출력
1-3. SQLite3 DB로의 입출력
1-4. numpy 패키지에서의 입출력
2. pandas 패키지를 사용한 입출력
2-1. 포맷에 따른 pandas 입출력 함수
3. PyTables를 사용한 입출력
3-1. HDF5 데이터 모델
Sequence labeling problem을 해결하는 모델 중 초기 모델인 Hidden markov model에 대해 정리한다. HMM을 설명하기 위한 기본 개념에서 벗어나지 않도록 작성한 자료이다.
- Markov chain
- Markov assumption
- Hidden markov model
- HMM training: forward-backward algorithm
- HMM likelihood computation
- HMM decoding: viterbi algorithm
4. 자연어 처리 과정
형태소 분석
Morpheme analysis
구문 분석
Syntax analysis
의미 분석
semantic analysis
화용 분석
Pragmatic analysis
형태소 단위의 분절 및
POS 태그 부착
구문 태그 부착
문장구조 파악
단어 의미 중의성 해소
의미역 인식
정보 추출
(대명사가 가리키는 의미부터...)
5. 의미 분석
• 단어, 구, 문장 등의 단위의 의미를 인식하는 과정
구문 분석에 비해 해당 단계에서
진행해야 할 작업이 모호한 편인 것 같다.
의미를 인식하는 모든 처리가
해당 단계에 들어간다고 할 수 있을 것 같다.
6. 단어 의미 중의성 해소
문맥을 확인하여
등장한 동형이의어의
의미를 찾는 과정
Word Sense Disambiguation (WSD)
7. 단어 정리
• 동형이의어: 같은 형태를 가지지만 뜻이 다른 단어
• 의미(=센스): 동형이의어가 가지는 의미
• 동형어 번호: 사전에서 동형이의어가 가지는 의미를 구분하기 위해 부착하는 번호
(사전마다 다른 체계를 가진다)
• 예시: 단어 '생태'
자연어 분석에서 진행되어야 할 어깨번호 부착네이버 국어사전의 검색결과
표준국어대사전 상의 동형이의어
'생태'의 1번 의미
2번 의미
문서의 자연어 처리 후 동형이의어 '생태'의
어깨번호가 부착된 결과
9. 단어 의미 중의성 해소 모델
• 정한조(2015) 논문을 토대로 구현
• 생략하거나 달라진 방식
• 논문) 명사만 대상으로 진행 → 변경) 체언, 용언, 수식언, 어근
• 사전의 예문은 사용하지 않음
• 표준국어대사전과 세종 형태의미 말뭉치를 사용
• 표준국어대사전 상의 동음이의어로 한정 (말뭉치와 표준국어대사전 사이의 다른 점을 표준국어대사전 기준으로 변경 및 생략)
• Ramped window가 적용된 벡터 공간 모델과 나이브 베이즈 분류기를 통해 단어 의미 중의성을 해결
• 정한조와 박병화, “사전과 말뭉치를 이용한 한국어 단어 중의성 해소,” 한국 지능정보시스템학회논문지, 2015.
(일반, 고유, 의존 명사)
(동사, 형용사)
(관형사, 일반 부사, 접속 부사)
말뭉치 상에는 동음이의어인데
표준국어대사전에는 아닌 경우
또는 그 반대의 경우 등등
10. 세종 형태의미 말뭉치
• 문장 별로 형태소 분석과 형태소 단위의 어깨번호를
부착한 말뭉치
• 표준국어대사전을 기준으로 어깨번호 부착
• 내용어(↔기능어) 중심으로 부착: 세종 품사 기준으로, 일반명사,
의존명사, 동사, 형용사, 관형사, 일반부사 내에서 부착 진행
• 부착 방법: 표제어 전후 5어절을 확인하여 어깨번호 부착
• 특수한 어깨번호(누락시켜야 할 예외상황)
• 00, 88: 사전에 등재되지 않은 어휘
• 99: 형태분석 말뭉치의 분석 오류
• x<번호>: 사전과 말뭉치의 품사 분류 비일치
• 국립국어원, “21세기 세종계획 국어 기초자료 구축, 2004 결과보고서.” 2004.
세종 형태의미 말뭉치 예시
<형태소>__<어깨번호>/<품사>
11. 벡터 공간 모델
Vector Space Model or Term Space Model
• 간단한 Vector Space Model 설명, https://yumere.tistory.com/85
Vocabulary
Document
벡터의 원소
학습 과정에서 등장한 모든 단어,
단어마다 고유의 인덱스를 가지게 된다
학습 과정에서 등장한 모든
문서, 단어와 마찬가지로
고유의 인덱스를 가지게 된다
학습을 통해 생성된 값으로,
값을 산출하는 방법은
Boolean Model, TF-IDF 등이 있다
단어 벡터 각각의 문서는 단어 벡터로
변환되며, 문서 간 비교 또는
쿼리와 비교를 통해 유사도를
산출하게 된다
12. 벡터 공간 모델 (WSD 문제에서)
Vector Space Model for WSD
Vocabulary
벡터의 원소
동형이의어를 포함한 학습 대상인 모든 형태소
Ramped window의 합으로
벡터값을 산출한다.
센스 벡터
동형이의 형태소
(형태소 + 어깨번호)
13. Ramped Window
형태소 남미 풍 의 강렬 하 ᆫ 원색 끼리 의 조화 , 수채화 같이 안온 하 ᆫ 배색 등
어깨번호 02 07 05
품사 NNP XSN JKG XR XSA ETM NNG XSN JKG NNG SP NNG MAG NNG XSA ETM NNG NNB
Score 3 4 5 - 5 4 3 2 1
동형이의 형태소
학습 대상 아님 (학습 대상 품사가 아님)
학습 대상 형태소
• Ramped window는 Co-occurence 타겟 단어를 기준으로 가까울 수록 높은 점수를 부여하는 방법
• 동형이의 형태소를 기준으로 5점부터 멀어질 때마다 순차적으로 4점, 3점, …, 1점까지 부여
• 센스 벡터에 누적
14. 나이브 베이즈 분류기
Naïve bayes Classifier
• 베이즈 정리를 기초
• 독립성 가정
• 강한 가정이 들어가지만 실증적으로 높은 효과를 보임
(베이즈 정리)
(독립성 가정)
(베이지안 확률 용어로 작성)
클래스 k
발생한 사건 x
사건이 발생한 상황에서는
상수값이 된다
• 나이브 베이즈 분류, https://ko.wikipedia.org/wiki/나이브_베이즈_분류
15. 나이브 베이즈 분류기 (WSD 문제에서)
Naïve bayes Classifier for WSD
학습시킨 Vector Space로 구한
Cosine Similarity로 대체
16. 나이브 베이즈 분류기 (WSD 문제에서, 예시)
• 발견한 동음이의어: 조화
• 센스 가짓수: 7가지
• 주변 단어
Distance Weight 부여 결과
• 남미 : 3
• 강렬 : 4
• 원색, 02 : 5
• 수채화 : 5
• 같이 : 4
• 안온 : 3
• 배색 : 2
• 색, 03 : 1
조화, 01
조화, 02
조화, 03
조화, 04
조화, 05
조화, 06
조화, 07
남미 강렬 원색
02
배색 색
03
수 많은 다른 형태소도 존재
…
[ 3 4 5 … 2 1 ]쿼리 벡터
벡터 공간
모델에서
동음이의어의
센스 벡터들을
검색
주변 단어의
Distance
Weight를 통해
쿼리 벡터를 생성
쿼리와 동음이의어의 센스
벡터들로 Cosine
Similarity 산출
조건부 확률
0.
0.
0.
0.023
0.
0.
0.009
사전 확률
0.001
0.
0.
0.057
0.007
0.
0.934
사후 확률
(과 비례하는 값)
0.
0.
0.
0.001
0.
0.
0.009
동음이의어의
등장빈도로
산출
17. 모델 평가
• 10-fold CV
• Precision과 Recall
• Precision만 사용
• Recall은 항상 100%, 표준국어대사전을 기준으로 동음이의어는 항상 평가를 하기 때문
Precision =
올바르게 예측한 중의어의 수
전체 중의어의 수
Recall =
예측한 중의어의 수
전체 중의어의 수
단어 의미 중의성 해소에서의 Precision과 Recall 계산식
18. 모델 평가 결과
• Precision: 평균 93.1%
• 논문의 Precision 96.04%
• 대상 품사를 명사로 한정
• 표준국어대사전의 예문까지 모두 활용했을 때의 Precision
• 순서대로 처리했을 때 마스킹 처리가 전혀 없었음
체언 용언 수식언 어근
• 튜플의 형식: (정확하게 판단한 동음이의어, 동음이의어 등장횟수, Precision)
21. 한계
• 학습 시 성능과 실제 사용 시 성능에 차이가 발생
• 세종 말뭉치의 원문과 실제 사용하는 원문의 어휘가 다름
• 유사도를 구하지 못하고 사전 확률이 결과로 이어지는 빈도가 너무 높음
• 운영이 적용하기 위한 난이도가 높음
• 세종 형태의미 말뭉치 수준으로 도메인 말뭉치를 구축하는 것이 힘듦
• 기존 사전 확률의 비율을 고려하여 일정량 이상의 말뭉치 구성을 해야 효과를 볼 수 있음
23. Context2Vec
• Melamud, Oren, Jacob Goldberger, and Ido Dagan. "context2vec: Learning generic
context embedding with bidirectional lstm." Proceedings of The 20th SIGNLL
Conference on Computational Natural Language Learning. 2016.
• Word2Vec CBOW 모델과 동일한 개념
• 컨텍스트 임베딩 결과와 단어의 임베딩 결과가 유사하도록 학습
• Word2Vec CBOW 모델의 Average of Word Embeddings(AWE) 방법을
Bi-LSTM + MLP로 변형 (더 적극적인 학습)
• (Word2Vec) 윈도우 → (Context2Vec) 문장 전체, Bi-LSTM
• (Word2Vec) 임베딩 평균 값 → (Context2Vec) 다층 퍼셉트론, MLP
24. 컨텍스트 임베딩
• 단어 수준 임베딩: 개별 단어를 임베딩(Word2Vec, Glove)
• 문장 수준 임베딩: 문장 전체를 임베딩(Doc2Vec)하거나 하는 과정이 포함(ELMo)되어 있음
• 컨텍스트 임베딩
• 문장 전체 또는 문장보다 좁은 범위의 단어 시퀀스를 임베딩
• 타겟 단어(Target word)를 기준으로 문장을 임베딩
• 같은 문장이더라도 기준 단어가 다르면 다른 임베딩 결과를 반환
35. Context2Vec
타겟 단어
타겟 단어의
왼쪽 단어 시퀀스
정방향 (좌 → 우) 입력
타겟 단어의
오른쪽 단어 시퀀스
역방향 (우 → 좌) 입력
양쪽 시퀀스의
마지막 은닉 상태를
연결 및 MLP에 입력
36. Context2Vec
타겟 단어
타겟 단어의
왼쪽 단어 시퀀스
정방향 (좌 → 우) 입력
타겟 단어의
오른쪽 단어 시퀀스
역방향 (우 → 좌) 입력
양쪽 시퀀스의
마지막 은닉 상태를
연결 및 MLP에 입력
타겟 단어의
임베딩
37. Context2Vec
타겟 단어
타겟 단어의
왼쪽 단어 시퀀스
정방향 (좌 → 우) 입력
타겟 단어의
오른쪽 단어 시퀀스
역방향 (우 → 좌) 입력
양쪽 시퀀스의
마지막 은닉 상태를
연결 및 MLP에 입력
타겟 단어의
임베딩
목적 함수를 통해
양 임베딩이
유사해지도록 학습
38. Context2Vec 활용
• 문장 완성 (Sentence completion)
• 단어 의미 중의성 해소 (Word sense disambiguation)
40. Context2Vec 기반 단어 의미 중의성 해소
• Context2Vec: 타겟 단어의 컨텍스트를 벡터화
• Context2Vec 기반 단어 의미 중의성 해소
• 학습
• 말뭉치에 동형이의어가 등장하면, (표제어, 동형어 번호, 컨텍스트 벡터)를 저장
• 예측
• 동형이의어 등장 시 문장을 컨텍스트 벡터로 변환
• 말뭉치를 통해 학습한 표제어의 컨텍스트 벡터 중 가장 유사한 벡터의 동형어 번호를 반환
41. Context2Vec 기반 단어 의미 중의성 해소, 학습
1. 말뭉치의
동형이의어 검색
3. (표제어, 동형어 번호,
컨텍스트 벡터)
집합 저장
(수성, 08)
(수성, 05)
(수성, 04)
…
…
Context2Vec 모델 통과
2. 컨텍스트
벡터 추출
42. Context2Vec 기반 단어 의미 중의성 해소, 예측
1. 원문의
동형이의어
검사
3. 학습 시 추출한 컨텍스트
벡터 집합과 비교
(Cosine similarity)
(수성, 08)
(수성, 05)
(수성, 04)
…
…
…
코스피, 한·미 정책
기대·우려 교차 속
1700선 수성 실패
…
0.7, 동형어 번호 08번 부착
0.1
-0.3
2. 컨텍스트
벡터 추출
Context2Vec
모델 통과
동일한 표제어의
컨텍스트 벡터만
필터링
43. Context2Vec 학습
• 학습 데이터
• 뉴스 20만 문서
• 위키피디아 46만여 문서 (동음이의어 문서 제거)
• 세종 형태의미 말뭉치 79만여 문장의 95%
• 총 815만여 문장
• 학습 파라미터 (논문, 학습)
• 컨텍스트 단어 임베딩 차원: 300, 150
• 타겟 단어 임베딩 차원: 600, 300
• LSTM 은닉층 차원: 600, 300
• MLP 입력층/은닉층 차원: 1200, 600
• Epoch 10회 이내로 진행
• 학습 모델은 논문 대비 1/2 크기로 줄임
• 사용하기에 학습 모델의 크기가 너무 컸음
• 사용 시 속도 면에서도 연산량이 너무 큼
단어 의미 중의성 해소 모델의
테스트 데이터 분리를 위해
44. 단어 의미 중의성 해소 모델 학습
• 학습 및 테스트 데이터
• 세종 형태의미 말뭉치 79만여 문장을 95%, 5%로 분리
• 학습 및 평가 방법
• 학습 데이터에서 등장한 동형이의어의 문장을 컨텍스트 벡터로 저장
• 평가 데이터에서 등장한 동형이의어의 문장을 컨텍스트 벡터로 추출하여 학습 컨텍스트 벡터와
Cosine similarity 수행 후 가장 큰 컨텍스트 벡터의 동형어 번호 부착
Context2Vec 학습 시와
동일한 문장 집합
45. 모델 평가 결과
• Precision: 97.91% > 93.1% (기존)
• 딥 러닝 모델의 적용으로
Precision의 증가에 더해
Sparcity 문제를 해결할 수 있었음
• Sparcity 문제가 Context2Vec에서
해결되기 때문에, 단순한 말뭉치로
더 많은 Vocabulary를 쉽게
확보할 수 있음
46. 단어 의미 중의성 해소 말뭉치 작성
컨텍스트 벡터를 생성하기 위해 원문과 동형이의어 표제어, 동형어 번호를 작성하는 것으로 비교적 간단하게 말뭉치를 확
장할 수 있음 (형태소 분석에서 표제어와 일치하는 토큰이 만들어져야 한다는 조건이 필요)
서비스를 위해 추가한
동형어 번호
개체명 태그와 유사한
역할을 함
(LO: 지역, OR: 단체,
ST: 종목)
47. 서비스 적용 목표 - 종목 뉴스 필터링
• 종목 뉴스 추출은 1차적으로 검색 엔진의 키워드 매칭을 통해 진행
• 하지만 중의성을 가지는 종목명의 경우 필터링이 필요
• 필터링이 잘 되지 않았을 시에 서비스 퀄리티에 심각한 영향을 미치게 됨