IT/AI
-
[순환신경망] LSTM의 개념IT/AI 2022. 10. 20. 23:29
본 포스팅은 "밑바닥부터 시작하는 딥러닝2" 도서로 공부한 내용을 요약하기 위한 포스팅입니다. 이전 포스팅에서 기초적인 순환신경망 RNN이 가지는 문제점인 장기 의존 관계를 학습하기 어렵다는 점과 그 원인인 기울기 소실과 폭주(Gradient Vanishing & Exploding)에 대해 알아봤습니다. 2022.10.19 - [IT/AI] - [순환신경망] RNN의 문제점 (기울기 소실, 기울기 폭주 = Gradient Vanishing & Exploding) [순환신경망] RNN의 문제점 (기울기 소실, 기울기 폭주 = Gradient Vanishing & Exploding) 본 포스팅은 "밑바닥부터 시작하는 딥러닝2" 도서로 공부한 내용을 요약하기 위한 포스팅입니다. RNN이란 ? RNN(Recur..
-
[Tensorflow, Keras] LSTM 실습 _ 아마존 리뷰 감성 분석(NLP)IT/AI 2022. 10. 20. 01:55
LSTM을 사용하여 텍스트의 긍정/부정 감성 분석을 하는 간단한 예제를 학습해봅니다. 데이터셋은 Tensorflow에서 제공하는 Amazon 고객 리뷰(amazon_us_reviews) 데이터셋 중 디지털 소프트웨어 제품 부문의 고객 리뷰에 대한 텍스트 감성 분석을 해보겠습니다. Tensorflow에서 제공하는 다양한 데이터셋은 "https://www.tensorflow.org/datasets/catalog/overview"에서 확인 가능하며, 음성, 이미지, 텍스트 등 다양한 소스 데이터를 제공합니다. 데이터셋에 관한 정보를 미리 확인하고 싶으시면 아래의 그림을 참고바랍니다. 이번 예제에서 사용할 데이터 셋은 "amazon_us_reviews/Digital_Software_v1_00" 입니다. Step..
-
[Tensorflow, Keras] SimpleRNN 실습IT/AI 2022. 10. 19. 20:51
본 포스팅은 "시작하세요. 텐서플로 2.0 프로그래밍" 도서의 내용을 포함하고 있습니다. RNN 모델을 사용하는 간단한 예제를 학습해봅니다. 앞쪽 4개의 숫자가 주어졌을 때 그 다음에 올 숫자를 예측하는 간단한 예측 모델을 만드는 예제로 Tensorflow에서 제공하는 SimpleRNN 레이어를 사용합니다. 예를 들어, [0.0, 0.1, 0.2, 0.3]와 같은 연속된 숫자가 주어졌을 때 다음에 올 숫자를 예측하는 모델을 생성하고 학습해보는 예제입니다. Step 1. Library import import tensorflow as tf import numpy as np Step 2. Create the dataset In : X = [] Y = [] for i in range(6): # [0,1,2,3..
-
[순환신경망] RNN의 문제점 (기울기 소실, 기울기 폭주 = Gradient Vanishing & Exploding)IT/AI 2022. 10. 19. 01:25
본 포스팅은 "밑바닥부터 시작하는 딥러닝2" 도서로 공부한 내용을 요약하기 위한 포스팅입니다. RNN이란 ? RNN(Recurrent Neural Network)은 시계열 데이터를 처리하기 위해 고안된 모델로 아래 그림에서와 같이 이전 시각(계층)의 출력 값(은닉 값)이 다음 시각(계층)으로 전파되어 즉, 과거 정보를 계승하여 시계열 데이터에 대응하는 신경망입니다. RNN의 문제점 RNN은 이전 맥락의 정보를 기억하는 일명 순환 메커니즘을 통해 데이터가 한 방향으로만 흐르는 "Feed forward" 방식의 신경망보다 시계열 데이터 학습에 대한 성능이 향상 되었습니다. 하지만, RNN은 시계열 데이터의 장기 의존 관계를 학습하기에는 어려운 문제가 있습니다. 즉, 장기 기억에는 취약하다는 단점이 존재합니다..
-
행렬 곱셈 vs 아다마르 곱셈 (Hadamard product vs Matrix multiplication)IT/AI 2022. 10. 18. 01:45
행렬 곱셈 (Matrix multiplication) 일반적인 행렬 곱셉을 의미한다. 첫째 행렬의 열 갯수와 둘째 행렬의 행 갯수가 동일해야하며, 곱셈의 결과 새롭게 만들어진 행렬은 첫째 행렬의 행 갯수와 둘째 행렬의 열 갯수를 가진다. 아다마르 곱셈 (Hadamard product) 각 행렬의 원소끼리만 곱하는 행렬 곱셈을 의미한다. 일반 행렬곱과는 다르게 동일한 크기의 행렬을 곱한다. Numpy 계산 Input [0] : a = np.array([[1,2],[3,4]]) b = np.array([[5,6],[7,8]]) print(f"Matrix multiplication = {np.dot(a,b)}") print(f"Hadamard product = {np.multiply(a,b)}")
-
[순환신경망] RNN의 개념IT/AI 2022. 10. 18. 00:27
RNN이란 RNN(Recurrent Neural Network)을 직역하면 '순환하는 신경망'으로 이전 데이터의 정보 혹은 이전 계층의 출력 값을 순환시킴으로 전체 맥락의 정보를 기억할 수 있도록 설계된 신경망입니다. 기존의 데이터가 한 방향으로만 흐르는 "Feed forward" 방식의 신경망이 시계열 데이터 분석에 취약했던 한계점을 보완하기 위해 고안된 신경망으로, 이전 맥락의 정보를 기억하는 메커니즘을 통해 시계열 데이터에 대응이 가능합니다. RNN의 구조 RNN 계층의 순환 구조를 알아보기 위해 보다 명확한 구조로 펼쳐보면 아래와 같습니다. 위의 그림에서 각 시점의 RNN 계층을 시각 x의 RNN 계층이라 표현하고, 각 시각의 RNN 계층은 그 계층으로의 입력(Input)과 그 이전 시각 RNN ..