Machine Learning/Tensorflow 5

[순환 신경망] 긍정, 부정 감정 분석

극성 감정 분석: 긍정/부정이나 긍정/중립/부정을 분류한다. ex)영화리뷰나 음식점 리뷰에 적용되기 쉽다 네이버 영화리뷰 데이터를 이용하여 긍정/부정 감정 분석을 해보자 데이터 불러오기 훈련데이터로 15만개, 테스트 데이터로 5만개 https://raw.githubusercontent.com/e9t/nsmc/master/ratings_train.txt https://raw.githubusercontent.com/e9t/nsmc/master/ratings_test.txt 위 사이트에서 데이터들을 다운로드하여 불러온다. path_to_train_file = "ratings_train.txt" path_to_test_file = "ratings_test.txt" #데이터 불러오기 train_text = ope..

[순환신경망]GRU 레이어

GRU 레이어 :Gated Recurrent Unit LSTM레이어와 비슷한 역활을 하지만 구조가 더 간단 = 계산성의 이점이 있다 LSTM레이어보다 시그모이드 함수가 하나 적게 쓰였다 = 게이트의 수가 하나 줄어들었다는 것 r: reset 게이트를 통과한 출력 z: update 게이트를 통과한 출력 LSTM에서 풀었던 곱셈 예제를 GRU로 -학습 모델 model=tf.keras.Sequential([ tf.keras.layers.GRU(units=30, return_sequences=True, input_shape=[100,2]), tf.keras.layers.GRU(units=30), tf.keras.layers.Dense(1) ]) model.compile(optimizer='adam', loss=..

[순환 신경망] LSTM 레이어

SimpleRNN의 문제점 입력 데이터가 길어질수록 (타임스텝이 커질수록) 학습능력이 떨어진다. = 장기의존성 (Long-Term Dependency)문제 입력과 출력사이의 길이가 멀어질수록 연관 관계가 적어진다. LSTM simpleRNN과 다르게 복잡하다. c: 셀 상태를 나타내는 기호 ht와 함께 셀 상태가 전달된다. [recap] sigmoid함수: 0~1범위의 출력을 낸다 시그모이드 함수 => 정보 통과 게이트 역할 (0이면 입력된 정보 통과 X, 1이면 100% 통과) 예제 (SimpleRNN & LSTM 비교) 곱셈 문제: 100개의 실수중 마킹된 두 개의 숫자만 곱한다. -학습 데이터 X=[] Y=[] for i in range(3000): #0~1 랜덤한 숫자 100개 생성 lst = n..

[순환 신경망] SimpleRNN

SimpleRNN 가장 간단한 형태의 RNN 레이어 x: 입력값, h: 출력값, U와 W는 입출력에 곱해지는 가중치 활성화 함수로는 tanh가 쓰인다. (ReLU 같은 다른 활성화 함수를 사용할 수도 있음) 레이어 생성 코드 rnn1 = tf.keras.layers.SimpleRNN(units=1, activation='tanh', return_sequences=True) units: 뉴런의 수, return_sequences: 시퀀스 전체를 출력할지 여부 (여러 개 RNN레이어 쌓을 때 쓰임) 예제 [0.0, 0.1, 0.2, 0.3]이라는 연속된 숫자가 주어졌을 때 [0.4]를 예측하는 네트워크를 만들자 -학습 데이터 생성 X=[] Y=[] for i in range(6): #정수 시퀀스 만들기 ls..

728x90