SGD는 손실 함수(loss function)의 최솟값에 도달하는 동안 Gradient가 진동하여 최적값에 도달하기까지의 시간이 오래 걸리는 단점을 가지고 있다. 이를 보완하기 위해 사용되는 모멘텀(momentum) 기법은 관성의 개념을 이용해 최적값에 좀 더 빠르게 도달할 수 있도록 도와준다. SGD에서 momentum을 사용하기 위한 함수/라이브러리 tf.keras.optimizers.SGD(lr, momentum): lr : 학습률 (learning rate) (lr >= 0), 기본값 0.1 momentum : 진동을 막아주고 SGD를 가속하는 파라미터 (momentum >= 0), 기본값 0.9 모델을 테스트하기 위한 함수/라이브러리 score = model.evaluate(test_data, ..
GD(Gradient Descent)**는 시작 지점에서 기울기의 반대 방향으로 하강하면서 **손실 함수(loss function)를 최소화하는 지점을 찾기 위한 가장 직관적인 방법입니다. 이처럼 전체 데이터 셋을 가지고 학습하게 되면 안정적이긴 하지만, 계산량과 학습 비용이 많아지게 됩니다. 이때 전체 데이터 셋이 아닌, 무작위로 뽑은 데이터들에 대한 Gradient Descent를 진행하고, 이를 반복하며 정확도를 찾아 나가는 것을 SGD(Stochastic Gradient Descent)라고 합니다. 이번 실습에서는 동일한 모델 생성 및 학습을 통하여 두 최적화 기법을 비교해보도록 하겠습니다. 데이터셋은 IMDB 영화 리뷰 데이터 셋을 사용합니다. 해당 데이터셋은 훈련용 데이터 25,000개와 테스..
이번 실습에서는 텐서플로우와 케라스(Keras)를 활용하여 다층 퍼셉트론 모델을 직접 만들어 보고, 이를 활용해 비선형 데이터를 회귀 예측 해보자. 케라스는 텐서플로우 내의 딥러닝 모델 설계와 훈련을 위한 API 이다. 케라스는 연속적으로(Sequential) 레이어(Layer)들을 쌓아가며 모델을 생성하고, 사이킷런과 같이 한 줄의 코드로 간단하게 학습 방법 설정, 학습, 평가를 진행할 수 있다. 텐서플로우와 케라스를 이용해 다층 퍼셉트론 모델을 만들기 위한 함수/메서드 tf.keras.models.Sequential() : 연속적으로 층을 쌓아 만드는 Sequential 모델을 위한 함수 model.complie() : 학습 방법 설정 model.fit() : 모델 학습 model.predict() ..
이번 실습에서는 텐서플로우에서 제공하는 이항 연산자들을 활용하여 텐서들의 연산을 수행해보겠습니다. 이항 연산자 tf.add(x, y) : x 텐서와 y 텐서를 더합니다. tf.subtract(x, y) : x 텐서에서 y 텐서를 뺍니다. tf.multiply(x, y) : x 텐서와 y 텐서를 곱합니다. tf.truediv(x, y) : x 텐서를 y 텐서로 나눕니다. import tensorflow as tf import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' ''' 1. 이항 연산자를 사용해 사칙 연산을 수행하여 각 변수에 저장하세요. Step01. 텐서 'a'와 'b'를 더해 'add'에 저장하세요. Step02. 텐서 'a'에서 'b'를 빼 'sub'에 저장..
텐서플로우는 상수, 시퀀스, 난수, 변수 등을 텐서(Tensor)형으로 생성하는 연산을 제공합니다. 이러한 연산은 기존 Numpy와 유사하게 사용할 수 있습니다. 또한, 텐서플로우에는 다양한 자료형을 사용할 수 있습니다. 이를 이용하면 어떤 데이터든지 구조화된 형식으로 저장할 수 있습니다. 텐서플로우 자료형 tf.float32 : 32-bit float tf.float64 : 64-bit float tf.int8 : 8-bit integer tf.int16 : 16-bit integer tf.int32 : 32-bit integer tf.uint8 : 8-bit unsigned integer tf.string : String tf.bool : Boolean 이번 실습에서는 텐서플로우의 다양한 함수와 자료..
텐서플로우 텐서플로우는 데이터 플로우 그래프를 사용하여 수치 연산을 하는 오픈소스 소프트웨어 라이브러리입니다. CPU나 GPU를 사용하여 연산을 구동시킬수 있으며, 머신러닝과 딥러닝 연구를 목적으로 구글 브레인 팀이 2015년에 개발했습니다. 2019년, 텐서플로우 2.0 버전이 공개되었습니다. 따라서 최근 코드들은 텐서플로우 2.0으로 작성되어 있습니다. 하지만 당연하게도 텐서플로우 2.0이 나오기 이전 코드들은 모두 텐서플로우 1.x 버전입니다. 따라서 머신러닝 및 딥러닝에 대한 넓고 깊은 이해를 위해선 텐서플로우 2.0뿐만 아니라 텐서플로우 1.x에 대한 지식을 갖고 있어야 합니다. 이번 실습에서는 텐서플로우 1.x와 텐서플로우 2.0으로 간단한 연산을 해보고, 이를 통해 각 버전을 비교해보도록 하..