본문 바로가기

AI

(25)
TransCoder, 비지도학습 기반 프로그래밍 언어 번역기 TransCoder(Unsupervised Translation of Programming Languages) Link : https://arxiv.org/pdf/2006.03511.pdf github: https://github.com/facebookresearch/TransCoder 참고 : https://www.facebook.com/monthly.nlp/posts/258096098955595/ 5월 Facebook AI Research에서 Transcoder Transcoder라는 별칭의 코드 번역기가를 공개했다. 비지도 학습 기반 번역 기법을 프로그래밍 언어 간 변환에 적용한 연구이다. 아래 그림은 TransCoder 예시이다. 본 글에서는 Transcoder에 대해 다룬다. Abstract 1..
한국어 자연어처리 1편_서브워드 구축(Subword Tokenizer, Mecab, huggingface VS SentencePiece) 실습 코드(jupyter notebook) : github.com/keep-steady/NLP_for_korean.git 자연어처리를 오랫동안 하다 보니 나만의 한글 데이터셋에 Bert, Transformer 등 새로운 모델의 입력을 만들어야 할 일이 많다. 하지만 길고 긴 Pretraining을 수행 전 subword vocab을 만드는 건 정말 중요하다. 아무리 Pretraining을 잘 수행했어도 subword의 품질이 최종 성능에 많은 영향을 미친다. 특히 vocab은 중간에 바꿀 수 없어서 몇 달간 학습한 Pretraining 결과도 쓸모없어지는 수가 있다. 필자 이전 구글의 sentencepiece를 쭉 이용해와서 새롭고 빠른 tokenizer가 나왔다 해도 별 생각이없었다. 얼마나 빠르길래?..
서브워드 분절하기(sentencepiece, bpe, sub-word, bpe-droupout) 자연어처리를 오랫동안 하다보니 나만의 한글 데이터셋에 Bert, Transformer 등 새로운 모델의 입력을 만들어야 할 일이 많다. 한국어 자연어처리를 하는사람들이라면 매번 데이터셋에 맞는 sub-word 모델을 학습하고 vocab 사전을 만들어야한다 본 글에서는 내 데이터를 서브워드 분절하는 방법을 다루고자 한다 서브워드를 만드는 알고리즘은 사실 너무 많다. 1) 구글의 sentencepiece 2) opennmt 3) rust로 짜여 속도가 빠른 huggingface의 tokenizers 4) bpe 기법을 고안한 rsennrich의 코드 본 글에서는 구글의 sentencepiece 사용법을 다루고 다음글에서 huggingface의 tokenizers와 비교해 보려 한다 자연어 처리 시 모든 단어..
OCR 정리 OCR은 사진에서 텍스트위 위치를 찾고, 찾은 텍스트위치에서 글자를 추출하는 알고리즘이다 현실에서 굉장히 쓸 일이 많다 그래서 아래 2단계로 진행이 된다 1) 'Text Localization' : 사진에서 텍스트 위치를 찾음 2) 'Text Segmentation&Recognition' : Localization으로 찾은 부분에서 background와 글자를 segmentation 하고 글자를 인식한다 OCR 데이터셋 - ICDAR 2015 - https://rrc.cvc.uab.es/files/Robust_Reading_2015_v02.pdf Training dataset : 이미지 1000개 & 라벨 1000개 - 라벨 : (x1, y1), (x2, y2), (x3, y3), (x4, y4) Tes..
(이미지 분류 고급) 2_EfficientNet을 이용한 대선후보 분류 Hands-On AI에서 이미지 공부할 때 MNIST만 돌려보는 건 지겹지 않은가?? 이미지 분류 고급과정에선 아래와 같이 이미지 분류의 A to Z를 Hands-on 과정으로 다룬다. 1. 이미지 자동 크롤링 2. EfficientNet을 이용한 이미지 분류 3. GradCAM을 이용한 XAI(Explainable AI) 4. 적대적 공격(Adversarial attack)으로 내 모델 공격하기 2022 대선후보 데이터셋 구축: 이전글 참고 https://keep-steady.tistory.com/29 그중 두 번째, EfficientNet을 이요한 이미지 분류 - 목적: 최신 이미지 분류 모델 학습 - 순서 1) 데이터 준비 - dataset - dataloader 2) EfficientNet 모델 준비 3) 학습 ..
1) 이미지 분류 따라해보기 : 네이버 데이터 크롤링! 20초면 끝 -50개까지만 가능 이미지 분류를 위해 샘플데이터를 만들어 보자 MNIST만 맨날 하는 건 지겹지 않은가?? 이번엔 아래와 같이 이미지 분류의 A to Z를 연재하려 한다 1. 이미지 크롤링 2. EfficientNet을 이용한 이미지 분류 3. GradCAM을 통한 XAI 그중 첫 번째, 이미지 크롤링! 아주 쉽다. 본래 아래 url의 구글 이미지 다운로드(!pip install google_images_download)를 사용하면 더 쉬웠지만 구글이 업데이트 과정에 이를 막아놨다. https://pypi.org/project/google_images_download/ google_images_download Python Script to download hundreds of images from 'Google Image..
이번주 로또번호는? 로또번호 데이터 분석 가끔 지인들과 로또가 되면 뭐하지?라는 말을 하곤 한다. 사실 모두들 로또가 되면 뭐하고 뭐하고 뭐해야지~ 하는 생각을 해봤을 거다ㅎㅎ 블로그들을 보다 아이디어를 얻어 재미 삼아 역대 로또번호들을 분석해봤다. 아래 url을 통해 시작했고 유사한 분석을 하신 분이 있다, 밑에 reference에 남기겠다. 코드는 깃헙에서 확인할 수 있다. https://github.com/keep-steady/bigdata_analysis/tree/master 1) 파이썬을 이용해 나눔 로또 API로 역대 로또번호들을 몽땅 가져온다 2) 이를 pandas를 이용하여 분석한다!! 1. 선언 우선 각종 library들을 import 한다. label은 로또를 긁어왔을 시 설명이다. from urllib.request impo..
BERT를 파해쳐 보자!! BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 최근 BERT 라는 이름의 모델이 많은 자연어처리 분야에서 지금껏 state-of-the-art 였던 기존 앙상블 모델을 가볍게 누르며 1위를 차지했다. 특정 분야에 국한된 기술이 아니라 모든 자연어 응용 분야에서 좋은 성능을 내는 범용 모델인 Language model이 탄생하였다. 범용 모델 구조와 대량의 범용 학습 데이터를 사용하여 다양한 task에 flexibility를 높였지만, 많은 자원이 필요하다. 본 글은 BERT에 대한 설명과, 이를 bio, science, finance 등 다른 도메인에 접목시킨 연구들에 대해 다룬다. 1. 서론 BERT는 B..