본문 바로가기

데이터 사이언스 공부/딥러닝

(7)
Text generation with an RNN 이전 글에서 RNN으로 시계열 데이터나 문자열 데이터 등의 sequence data룰 학습한다는 것을 알았다. 또한 기본적인 RNN과 LSTM, GRU에 대해 알아보았다. 2020/07/03 - [공부/딥러닝] - CNN, RNN TensorFlow 2.0의 텍스트 분류 예제에서 텍스트 전처리 과정과 Embedding Layer를 사용하는 법에 대해 공부했다. 2020/06/08 - [공부/딥러닝] - TensorFlow 2.0 basic practice 2 이번 시간에는 위의 RNN과 텍스트 분류 지식을 가지고 TensorFlow RNN 예제 코드를 살펴볼 것이다. 이 코드는 텍스트 데이터를 받아서 자동으로 비슷한 텍스트를 생성해주는 예제이다. https://www.tensorflow.org/tutor..
CNN, RNN CNN: 주로 이미지 분석에 사용한다. filter는 이미지를 일정 크기만큼 분할하며 해당 영역의 데이터를 하나의 숫자로 만든다. 이 숫자는 WX+b 혹은 ReLU(WX+b)가 된다. 예를 들어 (25, 25, 3)의 이미지에 (5, 5, 3) filter를 적용한다면, 한 방향으로 (25 - 5) /stride + 1 만큼의 output이 나온다. stride는 filter가 겹치는 부분의 폭이다. pixel padding을 해서 이미지의 모서리 부분을 구분하기도 한다. CNN은 서로 다른 weight를 갖는 filter를 여러 개 사용하여 하나의 층을 만든다. 예를 들어 첫 번째 층에서 (25, 25, 3)이 input으로 들어가고 다음 층에서 (5, 5, 3) filter를 6개 사용한다면 shap..
ML Tip - Learning Rate, Overfitting, Regularization, Normalization, Standardization, Drop Out, Tensor Board Learning Rate: learning rate는 gradient descent에서 local minimum을 찾을 때 다음 미분 지점으로 가기 위한 step size이다. learning rate가 너무 크면 local minimum을 찾지 못하고 발산하게 된다. 너무 작으면 시간이 오래 걸린다. 적당한 값으로 정하는 게 중요하다. Overfitting: train data에 모델이 너무 잘 맞아서 다른 data set의 prediction에는 적용하기 힘든 경우를 말한다. train data에서 validation data를 따로 두고 사전 테스트를 통해 overfitting이 발생했는지 확인할 수 있다. overfitting을 발견하면 learning rate나 epoch을 조정하여 해결할 수 ..
Multinominal Logistic Regression, Softmax 코드: import tensorflow as tf import numpy as np x_raw = [[1, 2, 1, 1], [2, 1, 3, 2], [3, 1, 3, 4], [4, 1, 5, 5], [1, 7, 5, 5], [1, 2, 5, 6], [1, 6, 6, 6], [1, 7, 7, 7]] y_raw = [[0, 0, 1], [0, 0, 1], [0, 0, 1], [0, 1, 0], [0, 1, 0], [0, 1, 0], [1, 0, 0], [1, 0, 0]] x_data = np.array(x_raw, dtype=np.float32) y_data = np.array(y_raw, dtype=np.float32) nb_classes = 3 tf.model = tf.keras.Sequential()..
Logistic Regression, Binary Classification, Sigmoid https://wooiljeong.github.io/ml/tf2_4/ youtu.be/PIjno6paszY https://github.com/hunkim/DeepLearningZeroToAll/tree/master/tf2 위의 블로그 코드와 sung kim 교수님 강의 참고. 이번 예제는 tf gradient tape method를 사용해 구현. (블로그는 tf gradient tape 사용, sung kim 교수님 강의는 tf 1.0이고 github는 keras model로 구현한 tf 2.0 코드) Hypothesis: 1 / 1+e^-x Loss Function: -log(H): y=1, -log(1-H): y=0 >>> c(H, y) = -ylog(H) - (1-y)log(1-H) Cost Fun..
TensorFlow 2.0 basic practice 2 다음 코드는 텍스트 분류에 대한 예제 코드이다. 데이터 전처리, 모델 구성, 학습, 예측 단계로 진행된다. import tensorflow as tf from tensorflow import keras import numpy as np import matplotlib.pyplot as plt #==================== load data ==================== data = keras.datasets.imdb #이진 분류 데이터, 리뷰의 단어 배열은 정수 형태로 변환 되어 있음 #verify error 해결 코드 in mac import ssl try: _create_unverified_https_context = ssl._create_unverified_context except..
TensorFlow 2.0 basic practice 1 데이터 사이언스는 데이터에서 유용한 정보를 추출하는 것이다. 목적은 다양하지만, 데이터가 어떤 계층에 속할지 '확률'을 추정하는 문제에 주로 관심이 많다. 예측 모델에 사용되는 수학적 알고리즘은 판별식을 사용하여 각 변수에 대한 가중치를 계산하고 목적함수를 통해 이 가중치를 조정하여 최적의 판별식을 구한다. 신경망은 이런 모델을 스택 구조로 쌓아서 복잡한 비선형 함수를 구현한 형태라고 생각할 수 있다. (모델 적합화) 신경망(Neural Network)은 Input Layer, Hidden Layer, Ouput Layer가 스택으로 쌓여있는 구조이다. 각 층은 뉴런으로 구성되며 한 층의 뉴런은 다음 층의 뉴런을 활성화시킨다. 활성화 정도는 data variable과 weight, bias의 선형 조합에..