분류 전체보기
-
● BERT 파인튜닝 2편에서 구글에서 제공하는 공식 BERT코드로 대량의 위키디피아 코퍼스로 사전훈련하여 생성한 모델을, 이번 포스팅에서는 전이학습시켜 다른 nlp task에 적용하는 파인튜닝 실습을 진행해 보려고 합니다. 저번시간에 생성한 vocab.txt파일과 사전학습한 모델 ckpt를 그대로 사용하여도 되고, 미리 생성한 위키디피아 큰 코퍼스로 학습시킨 모델 데이터를 첨부하니 그것을 이용하여도 됩니다. 파인튜닝에 필요한 다른 필요한 코드 파일은 이전 포스팅에서 사전에 첨부한 파일을 그대로 사용합니다. run_squad.py, run_classifier.py, run_multi_classifier.py 등 2020/03/26 - [SW개발/AI Development] - [BERT] BERT에 대해..
[BERT] BERT에 대해 쉽게 알아보기4 - BERT 파인튜닝● BERT 파인튜닝 2편에서 구글에서 제공하는 공식 BERT코드로 대량의 위키디피아 코퍼스로 사전훈련하여 생성한 모델을, 이번 포스팅에서는 전이학습시켜 다른 nlp task에 적용하는 파인튜닝 실습을 진행해 보려고 합니다. 저번시간에 생성한 vocab.txt파일과 사전학습한 모델 ckpt를 그대로 사용하여도 되고, 미리 생성한 위키디피아 큰 코퍼스로 학습시킨 모델 데이터를 첨부하니 그것을 이용하여도 됩니다. 파인튜닝에 필요한 다른 필요한 코드 파일은 이전 포스팅에서 사전에 첨부한 파일을 그대로 사용합니다. run_squad.py, run_classifier.py, run_multi_classifier.py 등 2020/03/26 - [SW개발/AI Development] - [BERT] BERT에 대해..
2020.03.30 -
● 텐서플로우 허브의 BERT layer를 이용한 캐글 분류문제 예제 지난번 포스팅에서 사전학습한 BERT 모델을 다른 NLP task 문제에 전이학습시켜 예제에 적용하는 포스팅을 이번 포스팅에서 작성하려고 하였는데요. 그 이전에 텐서플로우 허브, 허깅페이스 등을 이용해서 multilingual BERT 레이어를 실제로 예제에 어떻게 적용하는지 알아보는 포스팅을 먼저 쓰도록 하겠습니다. ● 텐서플로우 허브(TensorFlow Hub) 텐서플로우 허브는 일반화된 문제들에 대해서 모델의 재사용성을 극대화 하기 위해 구글에서 새로 공개한 API입니다. 텐서플로우 1.7.0 버전 이상에서 사용할 수 있고, pip install을 통해 설치해주어야 합니다. 텐서플로우를 이용하면 지금 사용하려는 사전 훈련된 버트 ..
[BERT] BERT에 대해 쉽게 알아보기3 - tf-hub BERT layer를 이용한 캐글 분류문제● 텐서플로우 허브의 BERT layer를 이용한 캐글 분류문제 예제 지난번 포스팅에서 사전학습한 BERT 모델을 다른 NLP task 문제에 전이학습시켜 예제에 적용하는 포스팅을 이번 포스팅에서 작성하려고 하였는데요. 그 이전에 텐서플로우 허브, 허깅페이스 등을 이용해서 multilingual BERT 레이어를 실제로 예제에 어떻게 적용하는지 알아보는 포스팅을 먼저 쓰도록 하겠습니다. ● 텐서플로우 허브(TensorFlow Hub) 텐서플로우 허브는 일반화된 문제들에 대해서 모델의 재사용성을 극대화 하기 위해 구글에서 새로 공개한 API입니다. 텐서플로우 1.7.0 버전 이상에서 사용할 수 있고, pip install을 통해 설치해주어야 합니다. 텐서플로우를 이용하면 지금 사용하려는 사전 훈련된 버트 ..
2020.03.27 -
** 이전 포스팅 코랩 노트북을 따라하시다가 오류가 난다는 분이 많아서, 코드를 쭉 수정하였습니다. ● BERT모델로 대량의 코퍼스 사전훈련 시키기 구글이 만든 사전훈련 모델 'BERT'로 대량의 코퍼스를 가지고 사전훈련을 시키는 방법을 포스팅 하도록 하겠습니다. 그리고 이 다음 포스팅에서는 사전훈련된 모델로 NLP모델 Task에 전이학습 시키는 방법을 포스팅 할 예정입니다. BERT는 위키디피아 같은 대량의 코퍼스를 사용해서 사전훈련을 시키고 언어의 기본적인 패턴을 이해한 워드임베딩을 추출해냅니다. 이렇게 사전훈련을 통해 생성된 임베딩으로 새로운 문제에 적용하는 전이학습(transfer learning)을 수행하여 적은데이터로 기존 ML, DL모델에 적용하여 빠르게 학습이 가능합니다. BERT가 무엇인..
[BERT] BERT에 대해 쉽게 알아보기2 - colab으로 BERT Pretraining(수정)** 이전 포스팅 코랩 노트북을 따라하시다가 오류가 난다는 분이 많아서, 코드를 쭉 수정하였습니다. ● BERT모델로 대량의 코퍼스 사전훈련 시키기 구글이 만든 사전훈련 모델 'BERT'로 대량의 코퍼스를 가지고 사전훈련을 시키는 방법을 포스팅 하도록 하겠습니다. 그리고 이 다음 포스팅에서는 사전훈련된 모델로 NLP모델 Task에 전이학습 시키는 방법을 포스팅 할 예정입니다. BERT는 위키디피아 같은 대량의 코퍼스를 사용해서 사전훈련을 시키고 언어의 기본적인 패턴을 이해한 워드임베딩을 추출해냅니다. 이렇게 사전훈련을 통해 생성된 임베딩으로 새로운 문제에 적용하는 전이학습(transfer learning)을 수행하여 적은데이터로 기존 ML, DL모델에 적용하여 빠르게 학습이 가능합니다. BERT가 무엇인..
2020.03.26 -
● Numpy에서 많이 사용하는 주요 기능 벡터 산술연산 다차원 배열 ndarray 표준 수학 함수 선형대수, 난수 생성, 푸리에 변환 ○ 배열 생성 함수 함수 내용 np.array 입력된 데이터를 ndarray로 변환. dtype을 명시하면 자료형을 설정할 수 있다 np.asarray 입력 데이터를 ndarray로 변환하나 이미 ndarray일 경우에는 새로 메모리에 ndarray가 생성되지는 않는다 np.arange range 함수와 유사하나 ndarray를 반환, 자료형 기본 float64 np.ones 전달인자로 전달한 dtype과 모양(행,렬)으로 배열을 생성하고 모든 내용을 1로 초기화하여 ndarray를 반환 np.zeros ones와 같으나 초기값이 0이다 np.empty ones와 zer..
[Numpy] 딥러닝을 위한 Numpy3 - 함수 정리● Numpy에서 많이 사용하는 주요 기능 벡터 산술연산 다차원 배열 ndarray 표준 수학 함수 선형대수, 난수 생성, 푸리에 변환 ○ 배열 생성 함수 함수 내용 np.array 입력된 데이터를 ndarray로 변환. dtype을 명시하면 자료형을 설정할 수 있다 np.asarray 입력 데이터를 ndarray로 변환하나 이미 ndarray일 경우에는 새로 메모리에 ndarray가 생성되지는 않는다 np.arange range 함수와 유사하나 ndarray를 반환, 자료형 기본 float64 np.ones 전달인자로 전달한 dtype과 모양(행,렬)으로 배열을 생성하고 모든 내용을 1로 초기화하여 ndarray를 반환 np.zeros ones와 같으나 초기값이 0이다 np.empty ones와 zer..
2020.03.16 -
앞선 포스팅에서 2020/03/05 - [SW개발/Framework Library] - [파이썬패키지] 딥러닝을 위한 Numpy 공부1 - Numpy기초 [파이썬패키지] 딥러닝을 위한 Numpy 공부1 - Numpy기초 ● Numpy란 넘파이(Numpy)는 C로 구현된 고성능의 수치계산을 위해 제작된 파이썬 라이브러리로, 'Numerical Python'의 줄임말입니다. 넘파이는 벡터, 행렬 연산에 있어 많은 기능들을 제공하고 pandas와 matplot.. ebbnflow.tistory.com Numpy의 큰 장점은 벡터 연산이 가능하다는 것이라고 했는데요. 행렬의 연산이 수학에서 말하는 벡터의 내적이 아닌, 같은 위치의 요소들끼리 합, 곱 등의 연산이 가능하다는 것이었습니다. 이것을 'Element-..
[Numpy] 딥러닝을 위한 Numpy2 - 행렬의 연산앞선 포스팅에서 2020/03/05 - [SW개발/Framework Library] - [파이썬패키지] 딥러닝을 위한 Numpy 공부1 - Numpy기초 [파이썬패키지] 딥러닝을 위한 Numpy 공부1 - Numpy기초 ● Numpy란 넘파이(Numpy)는 C로 구현된 고성능의 수치계산을 위해 제작된 파이썬 라이브러리로, 'Numerical Python'의 줄임말입니다. 넘파이는 벡터, 행렬 연산에 있어 많은 기능들을 제공하고 pandas와 matplot.. ebbnflow.tistory.com Numpy의 큰 장점은 벡터 연산이 가능하다는 것이라고 했는데요. 행렬의 연산이 수학에서 말하는 벡터의 내적이 아닌, 같은 위치의 요소들끼리 합, 곱 등의 연산이 가능하다는 것이었습니다. 이것을 'Element-..
2020.03.10 -
● Numpy란 넘파이(Numpy)는 C로 구현된 고성능의 수치계산을 위해 제작된 파이썬 라이브러리로, 'Numerical Python'의 줄임말입니다. 넘파이는 벡터, 행렬 연산에 있어 많은 기능들을 제공하고 pandas와 matplotlib의 기반으로 사용되기 때문에 데이터분석, 머신러닝에 기초적인 라이브러리 입니다. 머신러닝 프로그래밍을 할 때, 양질의 데이터를 어떻게 얻을 것인가, 얻은 데이터를 어떻게 전처리 해야하는가에 대한 고민을 많이 하게되는데요. 후자의 문제는 넘파이에 익숙해지면 편해질 것이라 생각되어 Numpy공부를 제대로 해보기로 결정했습니다! 넘파이에 익숙해지면 데이터의 전처리가 훨씬 빨라지고 ML 모델을 구현할 때도 더 좋은 성능을 내는 모델을 구현할 수 있을 것이라 생각했기 때문입..
[Numpy] 딥러닝을 위한 Numpy1 - Numpy기초● Numpy란 넘파이(Numpy)는 C로 구현된 고성능의 수치계산을 위해 제작된 파이썬 라이브러리로, 'Numerical Python'의 줄임말입니다. 넘파이는 벡터, 행렬 연산에 있어 많은 기능들을 제공하고 pandas와 matplotlib의 기반으로 사용되기 때문에 데이터분석, 머신러닝에 기초적인 라이브러리 입니다. 머신러닝 프로그래밍을 할 때, 양질의 데이터를 어떻게 얻을 것인가, 얻은 데이터를 어떻게 전처리 해야하는가에 대한 고민을 많이 하게되는데요. 후자의 문제는 넘파이에 익숙해지면 편해질 것이라 생각되어 Numpy공부를 제대로 해보기로 결정했습니다! 넘파이에 익숙해지면 데이터의 전처리가 훨씬 빨라지고 ML 모델을 구현할 때도 더 좋은 성능을 내는 모델을 구현할 수 있을 것이라 생각했기 때문입..
2020.03.05 -
● Embedding Methods NLP task를 수행하기 전, 단어를 벡터로 만드는 임베딩 작업을 케라스를 이용해서 하는 방법은 크게 두 가지가 있습니다. 케라스의 내장 함수인 Embedding()을 사용하기 Pre-trained word embedding 가져와서 Embedding Layer에 주입하기 1. Keras Embedding Layer 예제 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 from tensorflow.keras.preprocessing.text import Tokenizer from tensorflow.keras.prepr..
[Keras] Embedding Layer에 word2vec 주입하기● Embedding Methods NLP task를 수행하기 전, 단어를 벡터로 만드는 임베딩 작업을 케라스를 이용해서 하는 방법은 크게 두 가지가 있습니다. 케라스의 내장 함수인 Embedding()을 사용하기 Pre-trained word embedding 가져와서 Embedding Layer에 주입하기 1. Keras Embedding Layer 예제 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 from tensorflow.keras.preprocessing.text import Tokenizer from tensorflow.keras.prepr..
2020.02.21 -
● Word2Vec 언어 모델링을 할 때, 언어(텍스트)를 신호 공간에 매핑(숫자로)하는 부분은 필수적입니다. 이러한 전처리를 단어 임베딩(Word Embedding)이라고 하는데 자연어 처리의 가장 기초적인 단계이며 현재까지 여러 방식이 제안되어 왔습니다. 이러한 임베딩 방식에서 가장 기초적인 방법은 '원 핫 인코딩(One-hot Encoding)'인데, ['강아지', '고양이', '동물', '멍멍이', '반려견']이라는 단어집합이 있을 때, 강아지 -> 1, 멍멍이 ->4 이런식으로 단어를 숫자에 그냥 무작정 매핑하는 방식입니다. 이렇게 만들어진 원핫벡터는 단어간 의미도와 유사도 등을 전혀 반영하지 못하게 됩니다. 언어끼리의 유사도나 의미를 반영한 벡터로 언어 모델을 구성하였을 때가 텍스트 분류나 N..
[Gensim] 자연어 처리3 - Gensim의 Word2Vec으로 토픽모델링● Word2Vec 언어 모델링을 할 때, 언어(텍스트)를 신호 공간에 매핑(숫자로)하는 부분은 필수적입니다. 이러한 전처리를 단어 임베딩(Word Embedding)이라고 하는데 자연어 처리의 가장 기초적인 단계이며 현재까지 여러 방식이 제안되어 왔습니다. 이러한 임베딩 방식에서 가장 기초적인 방법은 '원 핫 인코딩(One-hot Encoding)'인데, ['강아지', '고양이', '동물', '멍멍이', '반려견']이라는 단어집합이 있을 때, 강아지 -> 1, 멍멍이 ->4 이런식으로 단어를 숫자에 그냥 무작정 매핑하는 방식입니다. 이렇게 만들어진 원핫벡터는 단어간 의미도와 유사도 등을 전혀 반영하지 못하게 됩니다. 언어끼리의 유사도나 의미를 반영한 벡터로 언어 모델을 구성하였을 때가 텍스트 분류나 N..
2020.02.17