FEB 0.1.2

$ sudo park . sh·2021년 1월 22일
0

FEB

목록 보기
13/13

순환신경망(Recurrent Neural Network, RNN)

  • 순환 신경망은 시퀀스형 모델이다
  • 많은 데이터 → 확률적으로 예측 → 주어진 문제에 대한 답은 확률적으로 A 일 것이다

시퀀스(Sequence)란?

  • 데이터에 순서(번호)를 붙여 나열한 것
  • 특정 위치(~번째)의 데이터를 가리킬 수 있다

위키독스

  • 토큰

RNN을 이용한 언어 생성시 데이터 전처리

언어 모델(Language Model)

n-1개의 단어 시퀀스 가 주어졌을 때, n번째 단어 으로 무엇이 올지를 예측하는 확률 모델

n-1까지의 시퀀스 → y_train

n → y_train

토큰화(Tokenize)

문장을 일정한 기준으로 분류하여 자료구조에 담는것

  • 정규표현식(Regex) 을 통한 전처리

소스 문장(Source Sentence)

  • 입력이 되는 문장

    타겟 문장(Target Sentence)

  • 정답역할의 출력문장

tf.keras.preprocessing.text.Tokenizer

→벡터화 패키지

  • 정제된 데이터를 토큰화 → 단어사전 생성 → 문자열 데이터를 숫자열 데이터로 변환(텐서 Tensor)하는 일련의 과정

텐서 Tensor 란?

  • 텐서란 매우 수학적인 개념으로 데이터의 배열
  • 텐서의 Rank는 간단히 말해서 몇 차원 배열인가를 의미
  • 스칼라 → 벡터 → 메트릭스 → 텐서
  • 텐서는 곧 배열의 집합이다

tf.data.Dataset.from_tensor_slices()

  • tf.data.Dataset 를 활용한 데이터입력 파이프라인 생성
  • 매우 유용하니 사용법을 잘 숙지하자

버퍼사이즈?

배치사이즈?

데이터셋 생성과정

1.정규표현식을 이용한 corpus 생성
2.tf.keras.preprocessing.text.Tokenizer를 이용해 corpus를 텐서로 변환
3.tf.data.Dataset.from_tensor_slices()를 이용해 corpus 텐서를 tf.data.Dataset객체로 변환

shuffle()

batch()


학습모델 만들기

Subclassing 방식이란?

Embedding → RNN1 → RNN2 →Liner(Dense)

tf.test.is_gpu_available()

→ 학습속도가 느릴때 gpu 사용 여부 체크

generate_text

  • 작문 함수
  • 시작 문장 입력 → 모델이 작문 진행

glob

  • 파일을 불러오기 용이한 모듈

preprocess_sentence()

  • 문장 정제 함수

지나치게 긴 문장은 다른 데이터들이 과도한 Padding을 갖게 하므로
→ 토큰화 했을 때 토큰의 개수가 15개를 넘어가는 문장을 학습데이터에서 제외하기

train_test_split()

  • 학습데이터와 테스트데이터를 분리할때 쓰는 함수
  • sklearn 모듈
profile
Searching for the Master Algorithm

0개의 댓글