[ComputerSystem] RNN

Zoe·2022년 5월 18일
0

ComputerSystem

목록 보기
2/5

RNN


✅ 시계열 데이터의 특성

  • 시계열 : 기상청, 심장박동, 뇌파, 뇌전도, 심전도, 검색기록
  • 벡터의 벡터 : 2012년도(키, 몸무게, bmi지수), 2014년도(키, 몸무게, bmi지수), 2016년도(키, 몸무게, bmi지수), 2018년도(키, 몸무게, bmi지수), 2020년도(키, 몸무게, bmi지수)
  • 그 안이 다시 벡터로 표현될 수 있음

✅ 미래 예측을 위한 데이터 준비

  • 텍스트, 음성
  • 데이터 전처리
  • 정형데이터 전처리 : 널값, 정규화, 임밸런스 데이터 맞추기
  • 시계열은 전처리가 조금 복잡
  • 상추 판매량 예측 : 안 팔리면 버려짐. 내일이면 상추 얼마 팔릴지 예상해서 그 만큼만 가져오면 됨. 전처리가 조금 달라. 윈도우라는 새로운 개념이 있음. 한달 치를 다 보고 내일 거를 예측할까? 아님 3일치를 보고 내일 거를 예측할까?
  • window 사이즈를 결정하기 : window=3이라고 하면. 3일 치 본 다음. 그 다음 날 거를 예측할지. 아님 3일 뒤를 예측하는 건지.

다중 품목을 표현하는 데이터

  • 오이 상추를 동시에 고려

✅ 전처리 예제 코드

  • 코드 보기

✅ 순환신경망

  • 구조, 학습, 동작

1️⃣ 구조

  • 입력층, 은닉층, 출력층
  • 은닉층 히든레이어 여러개 쌓을 수 있음.
  • 순환 엣지
  • 수식
  • 펼쳐져서 이렇게 온다는 얘기는 t는 현재. 현재 은닉층의 값은 x값들이 들어감. 이전 히든노드의 값과 현재의 x값이 들어가서 다음 히든 노드의 값을 결정하게 됨. t번 일어났다.

✅ 구조와 동작, 학습 알고리즘

  • 순환 신경망 {U, V, W} : W는 이전 히든 노드의 가중치 상황이 다음 히든노드에 전달이 되는 것이다. 이게 순환 신경망의 파워임. 바로 전 히든 노드의 상태를 버리지 않고 저장하는 것. 시계열의 의미임.
  • 가중치를 공유하기 때문임. 다음 단계로 전달된다는 것이 중요.
  • 출력은 디자인하기 나름.
  • 10번 반복할 때마다 출력을 디자인하도록.할수도 있음
  • 해마다 다를 수 있음. 당연히 텍스트 같은 경우도 길게도 들어오고 짧게도 들어옴. 다 받아들일 수 없고 최대한 긴 걸로 잡아놓고 나머지는 패딩을 해.

1️⃣ 동작

  • 그냥 dnn보다는 시간은 더 걸림
  • cnn은 필터마다 적당한 숫자가 채워져야 하니까 시간이 더 듦
  • rnn도 만만치 않아. 이전 것을 받아와서. i 순간에 ???
  • 이전층 것 가중치 받아온 것을 빼면 dnn과 똑같아. 이전 상태를 가져오는 것이 시계열을 나타내는 것임

2️⃣ 학습

  • BPTT는 생략
  • 순환신경망을 이용한 학습방법을 개발했는데 많이 쓰는 것이 BPTT임

✅ 선별 기억력을 갖춘 LSTM

  • RNN과 LSTM을 모두 적용 : 둘다 비슷하기 때문
  • 장기 문맥 의존성 : 저기 멀리 떨어져있는 요소가 나한테 영향을 미쳐야 하는데 rnn동작방식으로는 그럴 수 없잖아. 그래서 나온 것이 long short term memory
  • 장기 기억. 단기 기억.
  • rnn구조를 그대로 살리면서 사람의 인지요소를 적용한 것
  • 장기기억 장소에 따로 저장해놓은 것.
  • 멀리 보내고 싶은 애는 정보를 같이 보내줌.
  • 히든 노드에 게이트를 같이 만듦. 열려있으면 1 -> 100% 다 보내는 것. 이게 여태까지 했던 rnn임. 근데 100% 다 보내지 말고 닫아놔. 쭉 닫고 있다가 필요할 때 보내면 정보가 가장 잘 산다.
  • 기계가 어떻게 하지..
  • 언어같은 경우는 LSTM이 더 효과적
  • 주식은 ? rnn이랑 LSTM이랑 둘 다 시험해봐야해.
  • lstm이 좀 더 구현이 복잡함
  • {U, Ui, Uo, W, Wi, Wo, V} : 열고 닫을 비율이 추가됨
  • 계산량은 늘어남.

✅ LSTM의 유연한 구조

  • 은닉층은 계속 쌓을 수 있음

  • rnn과 LSTM 모두 양방향이 있음

  • model.add -> Bi-RNN : 양방향

  • Bi-LSTM : 양방향

  • 학습을 양방향으로 하는 것

  • 쌓을 때도 텍스트 긁어서 그래서 얘가 긍정이야 부정이야는 a

  • 쭉 읽어서 정보를 저장한 뒤 그거에 해당하는 다른 언어로 뿌리면 c

  • 1차년도 결과 2차년도 결과면 b

  • 우리가 해결하는 문제에 따라 디자인 하는 것

  • 음악도 시계열 -> 반짝반짝 작은 별 학습 -> 새로운 작곡

✅ 단일 채널 비트코인 가격 예측

✅ 성능 평가

  • 수치를 예측하는 것은 mean absolute error : 평균절댓값오차
  • accuracy로 보면 97%면 그렇구나 하는데 그래서 지금 어떻게 해석을 해야하는 거야?
  • 정답값에서 뺀 것을 평균
  • 그래서 오를거야 내릴거야로 찍을 수 있어. -> 등락 정확률

✅ 다중 채널 비트코인 가격 예측

  • model.add(Dense(4)) : 종가 시가 ...
profile
iOS 개발자😺

0개의 댓글