딥러닝54 [딥러닝] 배치 정규화(Batch Normalization) 정규화 일반적인 2가지 정규화 표현 방법이다. 기본적으로 정규화를 하는 이유는 학습을 더 빨리하고, Local optimum 문제에 빠지는 가능성을 줄이기 위해서이다. 아래의 그림을 보면 최저점을 찾을 때 정규화를 하지 않으면 global optimum지점을 찾지 못하고, local에 머물러 있게 되는 문제가 발생한다. 이러한 문제점은 정규화로 local optimum에 빠질 수 있는 가능성을 낮춰주게 된다. Internal Convariate Shift Convariate Shift: 이전 레이어의 파라미터 변화가 현재 레이어의 입력 분포에 영향을 끼치는 현상 Internal Convariate Shift: 레이어를 통과할 때 마다 Convariate Shift 가 일어나면서 입력의 분포가 약간씩 변하.. 2022. 3. 13. [딥러닝] CNN(Convolutional Neural Network)의 이해 CNN(Convolutional Neural Network)의 필요성 기존 DNN의 경우에는 기본적으로 2차원이나 3차원 데이터를 Flatten으로 1차원 형태로 변형시켜 사용한다. 28 x 28의 흑백 이미지는 768개의 1차원 형태로 입력을 받는다. 하지만 요즘 이미지는 500 x 500 이 그냥 넘는다. 이것을 1차원으로 나열했을 시에 250000개의 입력 데이터가 주어지고, 여기에 따른 가중치를 계산하면 시간이 매우 많이 소요된다. 그리고 이미지가 중앙이나 왼쪽 오른쪽에 고정돼서 나오는 것이 아니라 여러방향으로 주어진다. 만약 강아지를 분류하는 모델에서 사람과 강아지가 같이 나온 사진이 있으면 강아지를 찾지 못하고 사람을 강아지로 인식할 수도 있다는 이야기이다. 그래서 나온 것이 CNN이다. CN.. 2022. 3. 11. [딥러닝] 딥러닝의 모델 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. [딥러닝] 활성화 함수( Activation Function) 종류 sigmoid는 은닉층(Hidden Layer)의 활성화 함수로는 더 이상 사용되지 않는다. 평균이 0이 아니기 때문에 가중치 업데이트가 지그재그 형태로 발생한다. 그리고 값이 양으로 크게 커지면 1에 가까운 값에 계속 수렴하기 때문에 출력값의 변화가 거의 없다. 마찬가지로 음으로 크게 작아져도 0으로 수렴하기 때문에 출력값에 변화가 거의 없다. 이 이유로 값이 커질수록 weight값이 계속 0이 나온다. 그러므로 층이 깊어져도 학습이 되지 않기 때문에 층이 깊어지는데 한계가 있다. 그래서 이제는 이진 분류의 최종 Classfication Layer의 Activation 함수로 사용된다. Tanh는 시그모이드과 달리 -1과 1사이의 값을 출력하여 평균이 0이 될수는 있지만 여전히 양이나 음으로 커질.. 2022. 3. 8. 이전 1 ··· 10 11 12 13 14 다음