목록2024/03 (5)
말랑말랑제리스타일
딥러닝 강의를 듣고 있는데 케라스의 패션 MNIST 데이터셋을 사용하기에 다른 케라스 데이터셋은 어떤 게 있는지 한번 알아봤습니다. 총 7가지 데이터셋으로 되어있으며 설명은 간단히 진행합니다. MNIST 데이터셋(손글씨 데이터) 가장 대표적인 MNIST 데이터셋으로 손글씨로 0~9까지 써둔 28*28 이미지를 훈련용 데이터셋 60,000개, 테스트용 데이터셋 10,000개로 제공합니다. from tensorflow.keras import datasets data = datasets.mnist (train_x, train_y), (test_x, test_y) = data.load_data() 이런 소스를 이용해 데이터를 끌어올 수 있습니다. 패션 MNIST 데이터셋(의류 분류용 데이터) 마찬가지로 MNIS..
딥러닝에서 모델 생성을 완료했다면 어느 정도 정확도를 내는지 성능을 평가해야 되겠죠. 총 4가지 단계를 통해서 딥러닝 ANN 모델의 성능을 평가해 봤습니다. 여기서 과적합을 판단하는 방법도 알 수 있었는데 두 번째 단락에서 과적합의 의미를 설명드리겠습니다. ANN 모델의 학습 결과 출력 이미 model.fit을 통해 결과를 확인했겠지만 이 결과를 epoch(반복 횟수) 별로 히스토리에 저장해 둘 수 있습니다. history = model.fit(train_x, train_y, epochs=50, batch_size=50, validation_data=(valid_x,valid_y)) 이렇게 model.fit의 결과를 변수에 받아볼 수 있는데요. 저는 50회 epoch를 주고 history라는 변수에 저장..
TensorFlow에서는 약 15가지 정도의 손실함수를 지원한다고 하는데요. 그 중 용도에 따라 다르게 사용할 수 있는 세가지를 알아봤습니다. 딥러닝에서 손실함수(Loss Function)란 딥러닝에서 손실 함수란 loss율을 최소화시켜주는 함수입니다. 예측 값과 실제 값을 비교해 모델을 훈련할 때 손실을 최소화시켜주는 방식이죠. Categorical Crossentropy 손실함수 먼저 TensorFlow로 케라스 Mnist 데이터셋 분류에 주로 사용되는 Categorical Crossentropy 손실함수입니다. Mnist 데이터셋은 범주를 1~9까지 사이로 분류를 하는 데이터죠. 이런 범주형 데이터의 분류에는 Categorical Crossentropy 손실함수를 사용합니다. 이 외에도 원핫 인코딩..
딥러닝 활성화 함수에는 크게 Sigmoid(시그모이드),Tanh(하이퍼블릭 탄젠트), ReLU(렐루) 세가지 함수가 있습니다. 이 중 대세는 ReLU라고 하고 자료를 찾아봐도 ReLU를 많이 사용하기에 이유를 알아봤습니다. 세가지 활성화 함수(Sigmoid, Tanh, ReLU)의 특징 일단 세가지 활성화 함수의 특징을 알아봤습니다. Sigmoid의 경우 1/(1 + e^(-z))로 값을 만들어냅니다. 그래프는 이렇게 되는데요. 0보다 작은 값이 들어가면 0에서 0.5 사이의 값이, 0보타 큰 값이 들어가면 0.5~1 사이의 값으로 대치되겠네요. 세부적으로 설명하면 무지하게 복잡하니까 이쯤 하고 넘어갑니다. 다음으로 tanh 함수의 경우 tanh(x)로 계산이 됩니다. Sigmoid 함수에 입력값을 두배..
딥러닝 실습을 위해 아나콘다 가상환경을 생성하고 생성 여부를 테스트하는 방법입니다. 먼저 이 글을 읽기에 앞서 진행되어야될 부분은 아나콘다 또는 미니콘다가 설치되어있어야 합니다. 아나콘다 가상환경 생성 먼저 아나콘다 가상환경을 생성할 폴더를 만들어줍니다. 저는 D 드라이브에 tf_test라는 폴더를 생성했습니다. 그리고 anaconda powershell promport를 실행해 줍니다. 정상적으로 아나콘다나 미니콘다가 설치되었다면 윈도우 실행 메뉴에서 anaconda라고 검색하면 나올 겁니다. 실행되었다면 해당 폴더로 이동해 줍니다. 참고로 드라이브 변경은 드라이브 명칭 뒤에 콜론을 붙여서 명령어로 입력하면 이동 가능합니다. 예를 들어 D 드라이브로 이동한다면 아래와 같이 이동해줄 수 있죠. D: 그리..