7/8 Today I Learned -1

boks·2024년 7월 8일
post-thumbnail

📖 학습한 내용

  • AutoEncoder
  • RNN
  • LSTM

📖 핵심내용

📌 AutoEncoder

압축했다가 다시 복원한다.
인코더와 디코더로 이뤄져있다.
벡터에서의 차원은 구성하고 있는 요소수가 적다는 뜻
인코더는 주요 특성이 남아있게 저차원의 잠재공간(latent space, code)로 압축 (CNN에서는 activation map)

사이즈는 줄이고 특성은 남는게 목적

비지도 학습이 가능하다. 왜냐하면 복원된 값이 얼마나 입력값과 비슷한지 측정할 수 있기 때문이다. self-supervisored learning

  • code

    적정한 트레이트오프 지점을 찾는 것이 좋다

    입력과 복원된 입력데이터(출력)의 차이를 최소화한다 -> 역전파 및 파라미터업데이트. 비용함수는 MSE

  • 이상치 탐지
    정상 관측치만을 이용해서 학습

  • 추천 시스템
    동일한 인풋과 아웃풋의 크기가 있어야한다.
    히든레이어는 크기가 같을 필요가 없다.

  • 결론
    오토인코더는 노드를 줄였다가 복원하는 과정에서 노이즈를 최소화하고 주성분은 최대한 반영하는 방식이고, Pretrain, 노이즈제거, 비지도학습 feature 학습등 많은 분야에 이용된다

📌 RNN

  • Time step (시간단계)
    입력 순서 정보
  • Dense layer
    나온 정보를 NN에 넣어서 정답을 판별하는 층이다

  • 텍스트
    FNN의 밀집 벡터보다 차원이 적다. 원핫인코딩 방식의 스펄스한 피처는 차원이 매우 늘어나기 때문이다.

  • RNN층의 노드수
    해결할 문제가 얼만큼 복잡한지에 따라서 달라진다.
    파라미터가 충분히 학습되기 위해서는 데이터량도 충분해야한다. 이것은 데이터가 많을수록 심해진다. 데이터가 적을때는 학습량이 많으면 오버피팅 문제가 더 심해진다.

📌 LSTM

  • RNN의 장기 의존성문제를 해결하기위해 LSTM을 사용한다.

    시퀀스의 길이가 길어질수록 심해진다.

GRU는 LSTM보다 성능이 떨어진다. 리소스가 부족할때 가끔 쓰인다.

  • 게이트
    오래전 단어의 정보의 효율적 사용

  • 기억셀(memory cell)
    오래전 단어의 내용을 보다 잘 기억
    히든스테이트의 원소수와 같다.

  • 최종적으로 출력되는 것은 히든스테이트이다.
    ct는 연산에서만 사용된다.

  • RNN과 LSTM비교

    입력1, 입력2, 출력1 은 RNN과 같다.
    LSTM만 Ct를 가진다.

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

RNN - return_sequences=True

  • 모든 타임스텝의 출력 정보를 반영하는 것

  • 출력의 형태
    false일때 출력형태는 (batch_size, units)
    true 일때는 (batch_size, T, units)

  • mean
    모든 배치의 각 타임스텝별로 서로 더하고 평균을 내서, 최종 히든스테이트를 반환하는 것.
    시퀀스의 전반적인 요약 정보가 필요할 때 유용하며, 간단한 분류나 회귀 문제에 적합하다.
    정보의 세부 사항은 손실될 수 있지만, 모델의 복잡성을 줄인다.

  • concat
    모든 배치의 모든 타임 스텝의 히든스테이트를 1차원으로 붙여서 반환
    시퀀스의 각 타임 스텝의 정보가 중요할 때 유용하며, 더 깊은 RNN이나 CNN에 입력할 때 사용한다.
    많은 정보를 보존하지만, 그만큼 모델의 복잡성이 증가한다.

📖 이후 학습 계획

  • 평가지표, 결과 시각화, 모델 해석 도구, 적용
profile
설계엔지니어의 변신

0개의 댓글