목록deep learning (39)
꿈 많은 사람의 이야기
포스팅 개요 이번 포스팅은 딥러닝(Deep Learning)을 활용해 추천 시스템(Recommender system)을 구현하는 포스팅입니다. 그 중 개인화 된 추천 시스템(personalized recommendation system)을 한 번 만들어보겠습니다. 파이썬(Python)을 활용했으며 라이브러리는 케라스(Keras)를 사용했습니다. 고급진 기술보다 기초적인 수준에 가까운 글이니 참고 부탁드리겠습니다. 이번 추천 시스템의 목적은 뉴스 추천 시스템입니다. ==참고 사항== 본 글에 나오는 Dataset은 제가 임의로 만든 Dataset입니다. 그래서 현실적인 면에서 조금 동떨어질 수 있습니다. 부디 참고 부탁드리며 Insight만 얻어 가시길 바랍니다. 또한, 본 포스팅 글은 지난 번에 작성한 ..
포스팅 개요 이번 포스팅은 데이터와 머신러닝 모델(Machine Learning model)의 버전을 관리할 수 있는 Data Version Control(DVC)에 대해 작성합니다. Machine Learning 프로젝트(혹은 Deep Learning)을 하다보면 ML 모델의 버전 관리, 데이터 버전 관리에 대해서 생각을 하게 되는데요. 그것을 지원해주는 것이 Data Version Control(DVC) 입니다. 저도 회사 선배님께 DVC 키워드를 얼마전 듣게 되었고 바로 간단하게 학습을 해보았습니다. 이번 포스팅에서 사용하려는 DVC는 https://dvc.org/ 입니다. 이 DVC는 open source이고 github에도 자료가 있습니다.참고한 자료는 아래와 같습니다. https://dvc.o..
포스팅 개요 머신러닝(machine learning)과 딥러닝(deep learning)에서 사용되는 앙상블 중 스태킹 앙상블(stacking ensemble) 2번째 포스팅입니다. 지난 포스팅에서는 스태킹 앙상블의 기본적인 방법과 배경 지식을 소개했습니다. https://lsjsj92.tistory.com/558 머신러닝 스태킹 앙상블(stacking ensemble) 이란? - 스태킹 앙상블 기본편(stacking ensemble basic) 포스팅 개요 머신러닝과 딥러닝에서 자주 사용하는 알고리즘이 있습니다. 특히, 머신러닝쪽에서 많이 사용하는데 그것은 앙상블(ensemble)이라는 방법입니다. 앙상블(ensemble)은 크게 보팅(voting), 배깅(bagging.. lsjsj92.tistory..
포스팅 개요 이번 포스팅은 머신러닝과 딥러닝에서 많이 사용하는 데이터 이상치 탐지(outlier detection)에 대해서 작성합니다. 또한, 지난 포스팅인 캐글의 신용카드 사기 탐지 대회 데이터셋(kaggle credit card fraud detection data)을 이용하며 신용카드 사기 탐지 3편입니다. 참조한 자료는 kaggle의 커널(https://www.kaggle.com/janiobachmann/credit-fraud-dealing-with-imbalanced-datasets) 입니다. 그 외의 참조 자료는 구글링 자료입니다. 코드는 아래 github에 존재합니다. https://github.com/lsjsj92/machine_learning_basic lsjsj92/machine_le..
최근 머신러닝 기초반 스터디를 진행하면서 느끼는 점이 있습니다. 또한, 이메일로 질문 받는 것중 적지 않는 질문이기도 합니다. 그 질문은 아래와 같습니다. 왜 머신러닝(machine learning), 딥러닝(deep learning)에서는 데이터를 나누나요? 도대체 X, y는 뭐고 feature는 뭐죠? X_train, X_test, y_train, y_test는 뭐죠? 정말 원초적인 질문이지만, 당연히 궁금해 할 질문입니다. data science가 이제 인기를 끌면서 많은 분들이 Python을 배우시고 Python을 활용한 데이터 분석과 머신러닝, 딥러닝을 하고 있습니다. 하지만, 너무 급하게 너무 빠르게 배우느라 기본적인 것들을 놓치는 것 같습니다. 그래서 이러한 질문이 계속 오기 때문에 머신러닝..
딥러닝이 핫한 지금 영상처리 분야뿐 아니라 자연어 처리 분야도 엄청 핫합니다. 특히 일반적인 문서 분류(text classification)를 넘어서 이제 번역기나 문장 생성, 텍스트 생성에도 포커스가 맞춰지고 있죠 이번 포스팅은 seq2seq에 대해서 자세히 알아보려고 합니다. 제 블로그에 seq2seq 내용을 다루긴 했지만 이론적인 내용이 부실했었습니다. 그래서 최근 제가 모두의 연구소에서 자연어처리 기초반(NLP)을 운영하면서 진행했던 발표 자료를 가지고 다시 정리해보려고 합니다. 기계 번역의 역사부터 현재까지 어떻게 진행되는지 전반적인 내용을 보려고 합니다. 그리고 이 자료는 허훈님의 자료를 조금 참고해서 만들었었습니다. 그럼 시작하죠! 먼저 기계 번역의 역사입니다. 기계 번역의 역사는 사실 좀 ..
이번에도 딥러닝으로 자연어 처리 하는 파트 입니다. deep learning Natural Language Processing(NLP) kaggle에서 spooky-author 데이터가 있는데요. 글이 있으면 저자가 누군지 예측하는 그런 데이터입니다!아마 캐글 자연어 처리 대회중 toxic, quora 이후 유명한 데이터가 아닌가 싶습니다시작하죠! 역시 필요한 라이브러리를 먼저 불러옵니다keras를 사용해서 딥러닝 모델을 구축하기에 keras library를 불러옵니다그리고 사이킷런(scikit-learn)의 LabelEncoder도 사용합니다카테고리 데이터를 라벨화 시켜주기 위해서요! 간단하게 EDA를 먼저 진행합니다.카테고리 value_counts() 값은 거의 비슷합니다완전 unbalanced하지는..
이전에 캐글(kaggle) nlp인 toxic 데이터를 가지고 필사를 했습니다https://lsjsj92.tistory.com/448 이번에도 마찬가지로 toxic 데이터를 가지고 캐글 커널을 필사합니다.기존에 했던 것과 같습니다. 하지만 어텐션 메커니즘이 추가된 코드이고 glove 데이터를 이용해서 모델 weight를 제공해줍니다.특히 glove 데이터를 추가해서 word embedding을 하는 방법은 정말 많이 사용해서 이번 기회에 정리하고자 합니다. 언제나 그렇듯이 필요한 라이브러리르 불러옵니다keras를 사용했고 모델과 전처리에 필요한 Tokenizer 및 LSTM, Embedding, Dropout 등을 가지고 옵니다그리고 이번 모델에서는 Attention을 class로 만들어서 사용하기 때문..
자연어 처리에서 공부를 하다보면 어텐션 메커니즘에 대해서 많이 듣게 됩니다아무래도 구글에서 발표한 attention is all you need의 transformer에서도self-attention(셀프 어텐션)을 사용하고기존의 LSTM(RNN)과 seq2seq 문제를 극복하기 위해서 많이 사용되기 때문에 계속 듣게 됩니다 어텐션(attention)에 대해서 공부를 하려면 먼저 저 메커니즘에 대해서 알아야겠죠그래서 이번 포스팅은 어텐션 메커니즘(attention machanism)에 대해서 정리합니다. 어텐션은 영상 처리쪽에서도 많이 사용됩니다.아마 CS231n 강의 같은 것을 보셨으면 아래 사진을 보셨을 겁니다. 대충 느낌 오시죠? 이것은 인간의 시각적 집중(visual attention) 현상을 구현..
어제 텐서플로와 머신러닝으로 시작하는 자연어 처리 책을 보면서 sequence-to-sequence 모델을 공부했습니다.챗봇을 만들 때 사용하던 모델이었는데 과연 케라스(keras)에서는 어떻게 사용되는지 궁금해서 공부를 했고지금 정리를 하려고 합니다. 이 자료는 케라스 코리아 운영자이신 김태영님의 블로그를 많이 참고했습니다!https://tykimos.github.io/2018/09/14/ten-minute_introduction_to_sequence-to-sequence_learning_in_Keras/ 기계번역(NMT, Neural Machine Translation)에서 많이 쓰이는 seq2seq 모델은 작성된 소스 문장들(source sentences)을 인코더(Encoder)를 이용해서 생각 ..