본문 바로가기

분류 전체보기72

Keras로 구현하는 DCGAN GAN의 기본 개념GAN은 크게 Generator와 Discriminator, 두 가지 주요 모듈로 구성됩니다.Generator(생성기)는 학습된 가중치에 따라 목표하는 개체를 생성하고,Discriminator(판별기)는 입력받은 개체가 가짜인지 진짜인지를 판별합니다.이 두 모듈은 서로 대립(Adversarial) 관계에 있습니다. Generator가 가짜 개체를 생성하면 Discriminator는 이것이 진짜인지 아닌지 판별하면서 학습을 해나가기 때문이죠.GAN을 수식으로 정리하면 위와 같습니다. D는 Discriminator, G는 Generator로, 아주 단순히 그림으로 표현하면 아래와 같이 표현할 수 있습니다. Discriminator는 x 데이터에 대해 사전에 학습되고, Generator가 r.. 2019. 5. 26.
What is AI and an Agent? What is AI? According to Luger and Stubblefield, the AI is "The branch of computer science that is concerned with the automation of intelligent behavior". But AI cannot be simply defined. There are largely four views of AI. 1. Thinking humanly If we listen any music, we will feel diverse things as excitement, sadness and joy. Then how we know feeling of a music? It is very difficult to answer ab.. 2019. 4. 18.
다중 감성(multi-class sentiment) 분류 모델 개발일지 - 2 2019-03-17-multi-sent-2 지난 주에 자모에 대해 Fasttext를 이용하여 Embedding 하는것을 고려했었다. 그러나 Labeling에 대한 문제 해결이 우선이었기 때문에 이 방법에 대한 고려는 뒤로 미루기로 했다.데이터 라벨링일단 데이터는 Tweet 데이터를 사용하기로 결정했었다. 찬찬히 tweet들을 살펴본 결과 하나의 아이디어가 생각났다. 저번에 tweet에 어떠한 이모티콘이 있으면 그 감정으로 Labeling하는 논문이 있었는데 한국 tweet은 이모티콘을 많이 쓰지 않아 적용하기 어려울 것이라 생각했었다. 그러나 이모티콘으로 검색이 된다면 해당 이모티콘을 사용한 tweet을 많이 뽑아낼 수 있다는 생각을 했다. 어떻게 보면 당연한 이야긴데 깊게 생각하지 못 했던 것 같다. .. 2019. 3. 17.
DSP를 이용한 음성 인식 (speech recognition) 구현 1편 : 음성 데이터 분석 2019-03-12-speech-classification 이 포스팅은 Kaggle Speech representation and data exploration kernel의 데이터 분석 부분을 참고하였다.My kaggle study repository : https://github.com/go1217jo/kaggle_study 항상 학습 모델을 만들기 전에 데이터에 대한 분석이 반드시 이루어져야 한다.Sampling임의로 'yes' 라고 말하는 음성 파일 하나를 선택하여 분석해보자. 먼저, wav 파일을 샘플링해야 한다.xxxxxxxxxxfrom scipy.io import wavfile​train_audio_path = 'data/train/audio/'filename = 'yes/0a7c2a8d_n.. 2019. 3. 12.
다중 감성(multi-class sentiment) 분류 모델 개발일지 - 1 2019-03-08-multi-sent-1 목차개발 목표진행 상황추후 계획 및 아이디어 개발 목표주로 감정 분석(sentiment analysis)은 긍부정 형식으로 양극(polar)의 형태로 분류를 하는 경우가 대부분이다. 하지만 감정을 긍정과 부정만으로 나누기에는 한계점이 많다. 예를 들면, 슬픈 영화에 대한 댓글 중 "너무 슬퍼 ㅠㅠ", "영화 보는 내내 자꾸 눈물이 흘렀어요 ㅠㅠ" 와 같은 댓글이 있다고 하자. 이 댓글들은 당연히 부정으로 분류될 것이다. 그러나 슬픈 영화인 것을 감안하면 슬프다는 의미는 곧 칭찬이며 이 영화에 대해 긍정적인 평가를 하고 있다는 것을 알 수 있다. 그렇기 때문에 특정 한글 텍스트에 대해 여러 가지 감정으로 분류하고, 추가적으로 분류된 감정에 맞는 이모지(Emoji).. 2019. 3. 9.
[python] 네이트판 웹 크롤러를 만들어보자! 2019-02-13-web_crawler 자연어 처리를 공부하던 중 문득 인터넷 상의 글들을 긁어모아서 학습해보면 재밌겠다 싶어서 웹 크롤링을 공부했다. 최근 게시물의 경향은 이미지 위주의 글이기 때문에 글 위주의 게시물이 있는 곳이 없을까 생각하다가 네이트판을 떠올렸다.간단한 웹 크롤링은 requests 모듈과 bs4의 BeautifulSoup 모듈만 있으면 가능하다.pip 모듈을 이용해 라이브러리를 설치해주자.pip install requestspip install bs4 웹 크롤링을 하기에 앞서 크롤링을 하고자 하는 웹 페이지의 구조를 분석해야 한다. 크롤링하려는 네이트판 랭킹 페이지 주소는 다음과 같다.https://pann.nate.com/Talk/Ranking?rankingType=total분.. 2019. 2. 13.
[Python] 5분만에 음성 인식 구현하기 2019-02-04-speech_recognition 이 글은 David Amos님의 The Ultimate Guide To Speech Recognition With Python 글을 참고하였습니다. 여러 음성인식 API를 사용하여 파이썬에서의 음성 인식을 손쉽게 할 수 있게 하는 SpeechRecognition 패키지를 소개하고자 합니다. python3에서의 설치는 pip를 이용해서 간단히 설치할 수 있습니다.pip install SpeechRecognitionpython2에서의 설치는 약간의 추가적인 단계가 필요하니 python2는 여기를 참고하세요. 위 명령어를 통해 설치를 했으면, 다음 코드를 실행해서 잘 설치되었는지 확인해보세요.import speech_recognition as srsr.__.. 2019. 2. 5.
[keras, NLP] Seq2Seq로 번역 모델 구현하기 2019-02-02-seq2seq_translation seq2seq 모델로 번역 모델을 만들어보자. 1. 데이터 전처리seq2seq 모델을 번역 모델로 학습하기 위해서는 세 가지 종류의 데이터가 필요하다.인코더의 입력으로써 넣을 원 언어의 텍스트 데이터디코더의 입력으로써 넣을 타겟 언어의 텍스트 데이터Teacher forcing을 위한 타겟 언어의 텍스트 데이터학습에는 영어 텍스와 이에 대해 프랑스어로 변역된 텍스트의 모임인 코퍼스 데이터를 사용할 것이다. Data download http://www.manythings.org/anki/fra-eng.zip 이 데이터는 각 줄에 하나의 (영어, 프랑스어) 텍스트 쌍이 있고 이는 Tab으로 구분된다. 이를 다음과 같이 source 텍스트와 target 텍.. 2019. 2. 2.
python 로딩(애니메이션) 쉽게 구현하기 pip를 이용해서 패키지를 설치하거나 케라스를 이용하여 모델을 학습시킬 때, 다음과 같이 콘솔에서 애니메이션처럼 로딩 화면을 출력하는 것을 볼 수 있다. tqdm 모듈을 이용하면 깔끔하지만 본인 입맛에 맞게 출력해주고자 한다면, print 함수의 end 인수의 기본 값인 개행을 다른 값으로 변경해주면 된다. 그런 다음 \r을 이용해서 커서를 맨 앞으로 보낼 수 있다는 점을 이용해 출력해주면 끝이다. for cur, doc in enumerate(docs): if cur % 200 == 10: print("\rcomplete %.2f" % ((float(cur)/total) * 100), end="") 반복문의 진행정도를 알고 싶은거라면 그냥 tqdm을 사용하자. 그렇지 않고 수식의 계산 결과도 같이 보여.. 2019. 1. 23.
[NLP] 자연어 처리를 위한 필수 개념 정리: Language model, Representation 2018-01-20-nlp-1 Language Model(언어 모델)[정의] 단어 시퀀스에 대한 확률 분포로, 시퀀스1 내 단어 토큰들에 대한 확률을 할당하는 모델이다. m개의 단어가 주어질 때, m개의 단어 시퀀스가 나타날 확률은 다음과 같다.예를 들어, 시퀀스 내 단어들이 "Today is monday" 라는 문장을 이루게 되는 확률을 구해보자. "Today" 가 선택될 확률은 P("Today")다. 그 다음 "is" 가 올 확률은 P("Today")·P("is") 라고 생각할 수 있다. 하지만 글은 순서가 동일해야 똑같은 의미를 지니는 시퀀스 데이터다. 따라서 다음과 같이 표현되어야 한다.이러한 확률 분포는 학습 데이터의 성격에 따라 매번 다르게 계산될 것이다. 왜냐하면 학습 데이터의 성격이 다르면.. 2019. 1. 21.