AI 모델(딥러닝 기초)/5. 신경망 학습 관련 기술
-
5. 신경망 학습 관련 기술(6)AI 모델(딥러닝 기초)/5. 신경망 학습 관련 기술 2023. 2. 13. 16:13
※ 하이퍼파라미터 최적화 1. 훈련 데이터 : 매개변수의 학습에 이용 2. 검증 데이터 : 하이퍼파라미터 성능 평가에 이용 3. 훈련 데이터 : 신경망의 범용 성능 평가에 이용 ■ 검증 데이터를 사용하는 이유? - 시험 데이터를 사용하여 하이퍼파라미터를 조정하게 되면 시험 데이터에 하이퍼파라미터 값이 오버피팅 된다. 시험 데이터에만 적합성을 띄게 되어 범용 성능을 평가하는데 부정확하다. 이로써, 하이퍼파라미터의 성능을 평가하는 검증 데이터가 필요하다. ■ 검증 데이터는 무엇인가? - 일반적으로 데이터셋의 20% 정도를 분리시켜 사용한다. - 데이터를 분리하기 전에 np.random.shuffle을 사용하여 정답과 입력 데이터를 섞어주고 validation_rate = 0.2로 설정하여 x 형상과 같은 모..
-
5. 신경망 학습 관련 기술(5)AI 모델(딥러닝 기초)/5. 신경망 학습 관련 기술 2023. 2. 13. 15:05
※ Dropout 기법 overfitting 개선을 위한 방법으로 신경망 모델이 복잡해져 가중치 감소만으로 대응이 어려울 때 사용한다. - 뉴런을 임의로 삭제하면서 학습하는 방법(자연스러운 가중치 감소 방식) - 훈련 시에 데이터를 흘릴 때마다 삭제할 뉴런을 무작위로 선택하고, test 때 모든 뉴런에 신호를 전달한다. test 때는 각 뉴런의 출력에 훈련 때 삭제 안 한 비율을 곱하여 출력한다. class Dropout: def __init__(self, dropout_ratio=0.5): self.dropout_ratio = dropout_ratio self.mask = None def forward(self, x, train_flg=True): if train_flg: self.mask = np.r..
-
5. 신경망 학습 관련 기술(4)AI 모델(딥러닝 기초)/5. 신경망 학습 관련 기술 2023. 2. 6. 16:55
※ 오버피팅 개선 오버피팅 : 신경망이 훈련 데이터에만 지나치게 적응되어 새로운 데이터에 제대로 대응하지 못하는 상태 -> 머신러닝, 딥러닝은 훈련 데이터에서 보지 못한 새로운 데이터에서도 범용적으로 바르게 식별해내는 모델이 필요함. 1) 매개변수가 많고 표현력이 높은 모델 2) 훈련 데이터가 데이터셋의 데이터에 비해 현저히 적은 경우 # coding: utf-8 import os import sys sys.path.append(os.pardir) # 부모 디렉터리의 파일을 가져올 수 있도록 설정 import numpy as np import matplotlib.pyplot as plt from dataset.mnist import load_mnist from common.multi_layer_net i..
-
5. 신경망 학습 관련 기술(3)AI 모델(딥러닝 기초)/5. 신경망 학습 관련 기술 2023. 2. 4. 17:30
※ 배치 정규화 - 각 층에서의 활성화값이 적당히 분포되도록 퍼뜨리는 역할로 데이터 분포를 평균 : 0, 분산 : 1로 정규화한다. 1) 학습 속도 개선 2) 초깃값에 크게 의존 X 3) 오버피팅을 억제 비니 배치 B 집합 속 m개의 입력 데이터의 집합에 대해 평균과 분산을 위 식으로 구한다. 평균이 0, 분산이 1이 되도록 입력 데이터를 정규화하고, 엡실론은 10e-7과 같은 작은 값으로 0으로 나누는 오류를 방지하기 위해 넣어준다. 미니배치 입력 데이터를 평균과 분산이 새로운 표본 데이터로 변환시켜 데이터 분포가 덜 치우칠 수 있도록 만들어 준다. 또한, 위 식을 통해서 배치 정규화 계층마다 정규화된 데이터에 고유한 감마 : 확대, 베타 : 이동 변환을 수행할 수 있다. import sys, os s..
-
5. 신경망 학습 관련 기술(2)AI 모델(딥러닝 기초)/5. 신경망 학습 관련 기술 2023. 2. 3. 16:36
※ 가중치의 초깃값 - 초깃값의 중요성을 간과하는 경우가 매우 많은데 가중치의 초깃값을 무엇으로 설정하느냐에 따라 신경망 학습의 성패가 달라지는 아주 중요한 단계이다. ■ 초깃값을 0으로 하면 안 된다!!! - 가중치 감소 기법을 통해 오버피팅을 방지하기 위해 초깃값을 최대한 작게 하는 것이 바람직한 방법이나 0으로 설정할 경우 오차역전파법에서 모든 가중치의 값이 똑같이 갱신되어 버리기 때문에 신경망 학습이 올바로 이루어 질 수 없다. 신경망 학습은 은닉층의 깊이를 깊게 만들고 가중치를 여러 개 가짐으로써 더 깊은 학습을 해 나간다. 그런데 초깃값이 0이 된다면 가중치 자체가 모두 고르게 되기 때문에 가중치를 여러개 가지는 의미가 사라진다. 이것을 방지하기 위해 초깃값을 무작위로 설정하는 것이 바람직하다..
-
5. 신경망 학습 관련 기술(1)AI 모델(딥러닝 기초)/5. 신경망 학습 관련 기술 2023. 2. 1. 15:50
※ SGD의 단점 우리는 지금까지 확률적 경사 하강법(SGD)를 통해서 최적화를 시도했다. SGD는 기울어진 방향으로 일정 거리만 가도록 만들고 이를 반복적으로 시도하여 최적값을 찾고 accuracy를 개선하는 방식이다. 하지만, 이 SGD의 비효율적인 면이 있어 소개해본다. ■ SGD의 단점 : 비등방성 함수(방향에 따라 성질(기울기)가 달라지는 함수)에 대해서는 탐색 경로가 비효율적이다. SGD의 원리 자체가 무작정 기울어진 방향으로 일정 거리만 가도록 했기 때문에 기울어진 방향이 본래의 최솟값과 다른 방향을 가리키게 되는 비등방성 함수와 같은 경우에서는 탐색 경로가 지그재그 형태로 상당히 비효율적이다. 밑바닥 부터 시작하는 딥러닝 교재에서 제공하는 비등방성 함수의 예시이다. 이 함수를 SGD로 최적..