본문 바로가기

컴퓨터비전63

[딥러닝] 딥러닝의 모델 Datasets tf.keras의 내장되어있는 datasets인 fashion_mnist로 예를 들겠다. import numpy as np import pandas as pd from tensorflow.keras.datasets import fashion_mnist (train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data() print('train dataset shape:', train_images.shape, train_labels.shape) print('test dataset shape:', test_images.shape, test_labels.shape) import matplotlib.pyplot a.. 2022. 3. 10.
[딥러닝] 딥러닝의 Optimizer 정의 위의 그림을 보면 B지점이 Gradient가 최소가 되는 지점이다. 하지만 B지점을 찾지 못하고 A지점이 최소라고 모델이 결정 지을 수 있다. Loss로 보다 빠르고 안정적으로 수렴할 수 있는 기법이 Optimazer이다. Momentum 위의 식에서 바뀐 점은 앞의 momentum계수를 반영한 식이다. 가중치를 계속 Update 할 때마다 이전의 Gradient들의 값을 일정 수준으로 반영시키면서 신규 가중치로 Update 적용한다. 바로 이전의 가중치는 0.9, 그 이전은 0.81, 그 이전은 0.729로 시간이 오래 지날수록 반영을 적게 한다. 기존 SGD의 경우는 random 한 데이터를 기반으로 Gradient를 계산하므로 최소점을 찾기 위한 최단 스텝으로 가중치가 Update 되지 못하고.. 2022. 3. 8.
[딥러닝] 딥러닝의 손실 함수 손실함수 딥러닝의 회귀에서는 주로 MSE, 분류에서는 주로 Cross Entropy(binary, categorical)를 사용한다. 위의 그림 마지막 output 단계에서 분류나 회귀를 이용한다. MSE MSE는 오류 값의 제곱을 구해서 더한 뒤 이를 데이터의 개수로 나누는 방식이다. 제곱을 하는 이유는 미분의 계산을 편리하기 위해 구한다. Cross Entropy Loss(Softmax) 밑의 그림은 softmax일 경우의 손실함수이다. 실제값을 1 아닌값을 전부 0으로 하여 인코딩 해준것이다. 아래의 그래프를 보면 예측한 값이 1에 가까울수록 loss값은 0에 수렴하는 것을 볼수있다. 반대로 값이 작아질 경우 loss값이 기하급수적으로 증가한다. Cross Entropy Loss(Sigmoid) 위.. 2022. 3. 8.
[딥러닝] 활성화 함수( Activation Function) 종류 sigmoid는 은닉층(Hidden Layer)의 활성화 함수로는 더 이상 사용되지 않는다. 평균이 0이 아니기 때문에 가중치 업데이트가 지그재그 형태로 발생한다. 그리고 값이 양으로 크게 커지면 1에 가까운 값에 계속 수렴하기 때문에 출력값의 변화가 거의 없다. 마찬가지로 음으로 크게 작아져도 0으로 수렴하기 때문에 출력값에 변화가 거의 없다. 이 이유로 값이 커질수록 weight값이 계속 0이 나온다. 그러므로 층이 깊어져도 학습이 되지 않기 때문에 층이 깊어지는데 한계가 있다. 그래서 이제는 이진 분류의 최종 Classfication Layer의 Activation 함수로 사용된다. Tanh는 시그모이드과 달리 -1과 1사이의 값을 출력하여 평균이 0이 될수는 있지만 여전히 양이나 음으로 커질.. 2022. 3. 8.