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

사이즈는 줄이고 특성은 남는게 목적
비지도 학습이 가능하다. 왜냐하면 복원된 값이 얼마나 입력값과 비슷한지 측정할 수 있기 때문이다. self-supervisored learning
code

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

입력과 복원된 입력데이터(출력)의 차이를 최소화한다 -> 역전파 및 파라미터업데이트. 비용함수는 MSE
이상치 탐지
정상 관측치만을 이용해서 학습
추천 시스템
동일한 인풋과 아웃풋의 크기가 있어야한다.
히든레이어는 크기가 같을 필요가 없다.
결론
오토인코더는 노드를 줄였다가 복원하는 과정에서 노이즈를 최소화하고 주성분은 최대한 반영하는 방식이고, Pretrain, 노이즈제거, 비지도학습 feature 학습등 많은 분야에 이용된다

Dense layer
나온 정보를 NN에 넣어서 정답을 판별하는 층이다
텍스트
FNN의 밀집 벡터보다 차원이 적다. 원핫인코딩 방식의 스펄스한 피처는 차원이 매우 늘어나기 때문이다.
RNN층의 노드수
해결할 문제가 얼만큼 복잡한지에 따라서 달라진다.
파라미터가 충분히 학습되기 위해서는 데이터량도 충분해야한다. 이것은 데이터가 많을수록 심해진다. 데이터가 적을때는 학습량이 많으면 오버피팅 문제가 더 심해진다.

GRU는 LSTM보다 성능이 떨어진다. 리소스가 부족할때 가끔 쓰인다.
게이트
오래전 단어의 정보의 효율적 사용
기억셀(memory cell)
오래전 단어의 내용을 보다 잘 기억
히든스테이트의 원소수와 같다.
최종적으로 출력되는 것은 히든스테이트이다.
ct는 연산에서만 사용된다.
RNN과 LSTM비교

입력1, 입력2, 출력1 은 RNN과 같다.
LSTM만 Ct를 가진다.
모든 타임스텝의 출력 정보를 반영하는 것
출력의 형태
false일때 출력형태는 (batch_size, units)
true 일때는 (batch_size, T, units)
mean
모든 배치의 각 타임스텝별로 서로 더하고 평균을 내서, 최종 히든스테이트를 반환하는 것.
시퀀스의 전반적인 요약 정보가 필요할 때 유용하며, 간단한 분류나 회귀 문제에 적합하다.
정보의 세부 사항은 손실될 수 있지만, 모델의 복잡성을 줄인다.
concat
모든 배치의 모든 타임 스텝의 히든스테이트를 1차원으로 붙여서 반환
시퀀스의 각 타임 스텝의 정보가 중요할 때 유용하며, 더 깊은 RNN이나 CNN에 입력할 때 사용한다.
많은 정보를 보존하지만, 그만큼 모델의 복잡성이 증가한다.