본문 바로가기
728x90
반응형
SMALL

RNN7

[ANN] SimpleRNN (2) 데이터 전처리 import tensorflow as tf import numpy as np import matplotlib.pyplot as plt from tensorflow.keras.layers import SimpleRNN, LSTM, Dense from tensorflow.keras import Sequential # data 생성 x = np.arange(0, 100, 0.1) y = 0.5*np.sin(2*x) - np.cos(x/2.0) seq_data = y.reshape(-1,1) print(seq_data.shape) print(seq_data[:5]) (1000, 1) [[-1. ] [-0.89941559] [-0.80029499] [-0.70644984] [-0.62138853]].. 2022. 10. 21.
[ANN] RNN many to many many to many many-to-one 모델에서 출력을 생성하려면 최종 입력이 모델에 입력되어야 한다. 이와 달리 many-to-many 모델은 각 입력을 읽을 때마다 출력을 생성한다. 즉, many-to-many 모델은 입력 시퀀스에서 각 토큰의 기능을 이해할 수 있다. many-to-many는 개체명 인식 (Named Entity Recognition)이나 형태소 분석 (Morphological Analysis)과 같은 task에 사용된다. 이 모델에서 가능한 예는 품사 태깅, 줄여서 POS이다. POS는 유사한 문법적 특성을 가진 단어 (또는 어휘 항목)의 범주이다. 일반적인 POS 유형은 명사, 동사, 형용사, 부사, 대명사이다. 따라서 POS 태깅은 각 토큰의 POS에 자동으로 태깅된다. .. 2022. 1. 5.
[ANN] RNN many to one Sequence classification many to one 유형은 sequence of words를 sentiment로 분류하는 sentiment classification에 가장 많이 활용되고 있다. "이 영화는 좋다"라는 문장이 있다고 가정하고 이 문장의 감정을 분류하고자 한다. 이를 위해서는 단어 수준에서 토큰화를 적용해야 한다. 이 문장이 좋은 감정을 의도한다면, 단어 토큰은 "좋은"과 같은 좋은 단어를 포함할 수 있다. 그래서 우리는 이 문장을 좋은 감정으로 분류할 수 있다. 따라서 RNN 모델에 적용하려면 문장을 단어 시퀀스 (many)로 간주하고 label (work)을 분류해야 합니다. many-to-one 모델의 프로세스이다. 계산 모델은 단어 자체를 입력으로 받아들일 수 없으므로 .. 2022. 1. 5.
[ANN] RNN basics (Vanilla) ANN에서 sequence data는 어떻게 다룰 것인가? • We don’t understand one word only • We understand based on the previous words + this word. (time series) • NN/CNN cannot do this RNN 위를 cell이라고 표현하는데, cell의 아웃풋이 다시 cell에 영향을 주게 된다. 이것은 기존의 Neural Network과 다른점이다. 바닐라 (Vanilla) RNN은 가장 기본적인 RNN이다. 이전에 사용하던 NN와는 다르게 tanh를 사용한다. new state 값은, old state 값과 입력값을 처리하는 함수를 통해 출력된다. Ht는 state 값을 나타낸다. 현재 state 값에 대한 함수.. 2022. 1. 5.
[ANN] 순환 신경망 (Recurrent Neural Network, RNN) (2) 매개변수 순환 신경망의 매개변수 (가중치 집합)는 Θ = 𝐔𝐔,𝐖𝐖, 𝐕𝐕, 𝐛𝐛, 𝐜𝐜 이다. 𝐔𝐔 : 입력층과 은닉층을 연결하는 p*d 행렬 𝐖𝐖 : 은닉층과 은닉층을 연결하는 p*p 행렬 𝐕𝐕 : 은닉층과 출력층을 연결하는 q*p 행렬 𝐛𝐛, 𝐜𝐜 : 바이어스로서 각각 p*1과 q*1 행렬 RNN 학습이란 훈련 집합을 최적의 성능으로 예측하는 Θ 값을 찾는 일을 말한다. 가중치 𝐮𝐮𝑗𝑗 = 𝑢𝑢𝑗𝑗1, 𝑢𝑢𝑗𝑗2, ⋯ , 𝑢𝑢𝑗𝑗𝑑𝑑 는 𝐔𝐔 행렬의 j번째 행 (ℎ𝑗𝑗에 연결된 에지의 가중치들) Vanishing Gradient Problem RNN 역시 경사하강법과 오류 역전파 (backpropagation)를 이용해 학습한다. 학습 데이터의 길이가 길어질수록 먼 과거의 정보를 현재에 전달하기 힘.. 2021. 12. 14.
[ANN] 순환 신경망 (Recurrent Neural Network, RNN) (1) 순환 신경망 (Recurrent Neural Network, RNN) RNN은 hidden node가 방향을 가진 edge로 연결돼 순환구조 (directed cycle)를 이루는 인공신경망의 한 종류이다. 입력과 출력을 시퀀스 단위로 처리하는 모델이다. 순환 신경망은 시계열 데이터 처리에 알맞게 변형된 딥러닝 구조이다. Sequence Data를 학습하여 Classification 또는 Prediction을 수행한다. 은닉 계층 안에 하나 이상의 순환 계층을 갖는다. 하나의 파라미터 쌍 (가중치와 편향)을 각 시간대 데이터 처리에 반복 사용한다. 시간대와 시간대 사이에 순환 벡터를 이용해 정보를 전달한다. 일정 시간 동안 모든 값이 계산되면, 모델을 학습하기 위해 결과값과 목표값의 차이를 loss fu.. 2021. 12. 14.
[인공지능] ANN / DNN / CNN /RNN 인공지능, 머신러닝, 딥러닝 인공지능(Artificial Intelligence)는 인간의 지능이 갖고 있는 기능을 갖춘 컴퓨터 시스템을 뜻하며, 인간의 지능을 기계 등에 인공적으로 구현한 것을 말한다. 머신러닝(Machine Learning) 혹은 기계학습은 인공지능의 한 분야로, 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야를 뜻한다. 딥러닝(Deep Learning)은 여러 비선형 변환기법의 조합을 통해 높은 수준의 추상화 (다량의 복잡한 자료들에서 핵심적인 내용만 추려내는 작업)을 시도하는 기계학습 알고리즘의 집합으로 뜻한다. 따라서, 위의 그림처럼 가장 포괄적인 인공지능 분야 안에 머신러닝이 속하고 있고, 머신러닝 분야 속에는 딥러닝 분야가 속해있다고 볼 수 있겠다. ANN (.. 2021. 12. 8.
728x90
반응형
LIST