7/5 Today I Learned -1

boks·2024년 7월 5일
post-thumbnail

📖 학습한 내용

  • RNN

📖 핵심내용

📌 RNN

  • Recurrent Neural Networks

  • 시퀀스 데이터 모델링에 적합
    - 텍스트 : 단어들의 시퀀스

    • 비디오 : 이미지들의 시퀀스
  • 텍스트 데이터 분석에 효율적
    - 단어들의 문맥적 의미 추출에 용이

    • 단어들 간의 관계정보 추출에 용이
    • 어떤 단어들이 어떤 순서로 언제 사용되었는지에 대한 정보 추출용이
  • 상태보존(히든스테이트벡터)
    상태를 보존한다. 시간에 따른 상태를 업데이트하며 이전 정보를 참조한다.

  • 문장의 길이가 다양하다. -> 가변 길이의 시퀀스 처리가 필요하다 -> 한번에 처리하는 토큰 개수를 정한다. -> 좌우에서 정보손실이일어난다 -> 패딩으로 적당히 손실방지

  • 임베딩 - 벡터로 표현하는 것(벡터라이제이션)
    임베딩벡터 - 단어의 의미와 관계를 반영한 수치 표현

  • 감성분석
    빈도도 고려대상이다. 하지만 단순히 출현 빈도TF를 고려하는 것보다 단어들 간의 관계 정보 어떠한 관계를 가지고 출현했는지가 더 효율적
    좋지 않지 않지는 긍정이지만 부정만나와서, 빈도만 가진 모델은 부정으로 나누기에 효율적이지 않다.
    예시) 영화가 재밌다고 말할 수 없지 않다. -> 긍정이지만, 부정표현 출현 빈도가 많음.

  • 임베딩 벡터 - 저차원 벡터
    원핫인코딩 방식의 벡터표현에 비하면, 코퍼스마다 하나의 차원이되던 것과 비교하면 매우 적은 차원이다.
    가가 차원이 어떤 것을 의미하는지는 직관적으로 알 수 없다. 다만, 벡터간의 상대적 위치를 고려하여 최적의 클러스트링 할 수 있는 것들이다..
  • 동작 원리
    각각의 Time step 마다 새로운 단어가 들어간다.
    이전의 Time step에서의 출력된 값이 이번 Time step에서의 단어와 같이 NN에 구조를 이룬다.

  • hT-1
    RNN 층이 출력하는 (입력된) 텍스트 데이터에 대한 최종 값
    이 값이 다음 계층으로 전달된다. 이전에 입력된 단어들의 정보를 포함하게된다.
    예측할 단어를 ht라고 하기 때문에 시퀀스의 가장 마지막 단어는 ht-1이라고 표현한다.

  • 행렬 벡터 표현

    -> 가중치는 하나의 시퀀스에서 변하지 않는다. 매 time step 마다 동일한 값이다.
    -> 하나의 time step에서 나오는 값의 차원은 변하지 않는다.

Vectorization(벡터화)

  • 전체 단어의 수를 코퍼스라고한다.

  • 벡터는 크기와 방향을 가짐 (방향은 원점으로부터의 방향)

  • 원핫인코딩으로 된것을 단어의 임베딩벡터라고 하지 않는다.

  • 벡터의 각 원소값
    frequency 로는 제대로된 값알기 어렵다. 따라서 문서당 나온 단어 횟수와 단어가 나온 문서의 수를 곱한 값을 고려한다.
    -> TF-IDF

  • 빈도 단어 의미
    TF-IDF (inverse document frequency) : TF-IDF가 높을수록 해당 단어는 다른 문서에서는 적게 사용, 해당 문서에서 많이 사용 됨, 해당 단어가 해당 문서의 uniqueness를 더 많이 표현

    IDF (inverse document frequency): 다른 문서에서 얼마나 사용되지 않았는지를 의미
    TF : 문서에 단어가 나온 빈도수

  • 벡터화 - 원핫인코딩
    각 단어를 하나의 인덱스가 1이고 나머지는 0인 벡터로 표현
    -> 단어 임베딩은 아니다.

📖 흥미로운 점 / 새로 알게된 점

  • CNN 에서 Classification 영역을 fc(fully connectied layer) 또는 Dense layer 라고 한다.

  • 이미지는 이미 수치화 되어있기 때문에, 벡터라이제이션을 할 필요없다.

📖 어려운 부분

📖 이후 학습 계획

  • LSTM
profile
설계엔지니어의 변신

0개의 댓글