본문 바로가기

딥러닝60

배치 정규화를 하는 이유 딥러닝에서 배치 사이즈만큼 딥러닝 학습을 하다 보면 배치 정규화(Batch Normalization)라는 개념이 나옵니다. 그런데 왜 배치 정규화를 하는지 모른 체 습관적으로 하고 있죠. 배치 정규.. 2024. 2. 5.
딥러닝에서 왜 시드(seed) 고정할까? 딥러닝에서 열심히 학습을 시키다 보면 "시드 고정하라"라는 말을 들을 때가 있습니다. 가중치의 초기값을 어떻게 주는지에 따라 학습의 성능이 달라진다는 글을 작성했는데요. 그 말은 초기값이 다르면 학습 결과도 다르다는 이야기가 됩니다. 벌써 힌트가 다 나왔는데요. 딥러닝에서 시드를 고정하는 이유는 무엇일까요? 시드 고정이란? 시드(seed) 고정은 가중치 초기값 설정의 랜덤성을 고정(하나의 값으로 설정)한다는 개념입니다. 이는 모델의 재현성, 안정성 및 신뢰성을 보장하는 데 중요한 역할을 합니다. Xavier, He와 같은 알고리즘은 난수 생성으로 초기값을 결정합니다. 이런 가중치의 초기값을 고정하는 기법을 말합니다. 시드를 고정하는 이유는? 1. 재현성 딥러닝 모델 훈련 과정에서 시드(seed) 고정을 .. 2024. 2. 4.
딥러닝 가중치 초기화: Xavier, He 왜 하는걸까? 딥러닝에서는 모델 코드에서 초기에 가중치 초기화를 해 줍니다. 이 가중치 초기화의 어떤 의미가 있을까요? 이 글에서는 가중치 초기화의 의미와 가중치 초가화 기법들에 대해 살펴보겠습니다. 가중치 초기화 기법은 '밑바닥부터 시작하는 딥러닝' 저서를 참고하였습니다. 왜 가중치 초기화를 할까? 딥러닝에서 각 뉴런(neuron)의 가중치를 기반으로 손실(error)를 결정하게 됩니다. 결국 가중치는 손실(error)을 계산하는데 영향을 준다는 이야기가 됩니다. 예를 들어, 가중치를 어떻게 설정에 따라 기울기 소실 문제(Gradient 폭발 및 소멸 문제)를 해결할 수 있습니다. 가중치 초기화는 Overfitting-Underfitting 문제가 발생해 제대로 학습이 되지 않는 경우에도 도움이 되고요. 또 지역 최.. 2024. 2. 3.
신경망 모델 최적화는 어떻게? 기울기, 학습률, 로컬 미니멈 우리가 신경망(딥러닝) 모델을 최적화를 말하자면 매개변수 갱신에 대해 이야기하게 됩니다. 매개변수 갱신을 위해서는 기울기와 학습률이라는 개념을 알아야 되죠. 매개변수 갱신을 하다 보면 로컬 미니멈과 글로벌 미니멈이 있다는 것을 알게 되죠. 그리고 로컬 미니멈에 안 빠지게 하는 기법들로 옵티마이저라는 개념을 배우게 됩니다. 그럼 하나하나 이야기해보도록 하겠습니다. 매개변수 갱신이란? 신경망 매개변수 업데이트는 훈련 단계에서 신경망의 매개변수(가중치 및 편향)를 조정하는 프로세스를 말합니다. 이 매개변수를 효과적으로 갱신하기 위해서 옵티마이저를 사용합니다. 옵티마이저는 손실 함수 값을 최저로 하는 매개변수를 찾기 위한 문제를 푸는 역할을 합니다. 딥러닝의 특성상 매개변수 수가 엄청나게 많아 쉽게 찾기는 어려.. 2024. 1. 30.
신경망 매개변수 갱신: 옵티마이저 이번 포스팅은 신경망의 매개변수 갱신하는 최적화 방법인 옵티마이저에 대해 알아보도록 하겠습니다. 이 부분에 대해 가장 잘 정리된 '밑바닥부터 시작하는 딥러닝' 저서를 기반으로 작성했습니다. 확률적 경사 하강법(SGD, Stochastic Gradient Descent) 최적의 매개변수 값을 찾는 단서로 매개변수의 기울기(미분)을 이용하는 방법입니다. 매개변수의 기울기를 통해 매개변수 값을 경신하면서 최적의 값에 다가갑니다. 수식 : $ 𝑊⟵𝑊 −𝜂 \dfrac{𝜕𝐿}{𝜕𝑊} $ , 𝜂(에타)는 학습률을 의미(0.01, 0.001로 미리 정의) 이 방법은 기울어진 방향으로 일정 거리(학습률)만큼 갱신한는 단순한 방법입니다. 장점 : 단순하고 구현이 쉬움 단점 비등방형 함수에서는 탐색 경로가 비효율적 비등방.. 2024. 1. 29.
오차역전파 알고리즘: ReLU, Sigmoid, Affine, Softmax 계산 이전 오차역전파를 이용한 계산에 이어 ReLU, Sigmoid, Affine, Softmax 는 역전파에서 어떻게 동작하는지에 대해 알아보겠습니다. 연쇄법칙을 이용한는 것을 기본공식으로 해서 각각의 특징적인 노드별로 계산법을 알아두면 딥러닝의 계산은 간단하게 정리됩니다. ReLU 계층 계산 그래프 ReLU의 수식인 $ 𝑦= \begin{cases} 𝑥, 𝑥>0 \\ 0, 𝑥≤0 \end{cases} $ 을 미분하면 $ dfrac{𝜕𝑦}{𝜕𝑥}= \begin{cases} 1, 𝑥>0 \\ 0, 𝑥≤0 \end{cases} $ 이 됩니다. 순전파에서 입력이 x > 0이면 역전파에서 upstream 값을 그대로 downstrem으로 보냄(1을 곱하는 효과) 반면, 입력이 x 2024. 1. 26.
오차역전파 알고리즘: 핵심은 연쇄법칙(chain rule) 오차역전파가 딥러닝에 발전에 많은 영향을 미쳤다는 것을 "퍼셉트론과 오차역전파" 라는 글에서 이야기한 적이 있습니다. 이번 글은 오차역전파의 원리와 계산하는 방법을 자세히 알아 보겠습니다. 오차역적파와 계산 그래프 오차역전파를 이해할려면 계산 그래프를 알아야 합니다. 오차역전파는 가중치 매개변수의 기울기를 효율적으로 계산하는 방법인데요. 오차역전파를 이해하는 방법은 계산 그래프를 이용한 수식 계산입니다. 그래서 개산 그래프는 말 그래도 계산 과정을 그래프로 나타내는 방법입니다. '밑바닥부터 시작하는 딥러닝' 이라는 책에서 계산 그래프를 통해 설명하고 있죠. 계산 그래프는 노드(node)와 에지(edge, 노드사이 직선)로 표현할 수 있습니다. 계산 그래프 구성하는 방법은 데이터와 연산자를 모두 노드로 연.. 2024. 1. 25.
딥러닝 모델 일반화(regularization) 총정리 이번 포스팅에서 딥러닝 모델의 일반화 방법들에 대해 알아보겠습니다. 성능 좋은 딥러닝 모델을 만들려고 하면 일반화 방법을 사용해야 하는데요. 여러 가지 일반화 기법들이 있습니다. 이 글에서 각 기법별로 특징과 어떤 경우에 사용하는지를 살펴보도록 하겠습니다. 왜 모델을 일반화할까? 모델을 학습하다보면 Training 데이터만 잘 맞추고 새로운 데이터에 대해 정확하게 예측하지 못하는 경우가 생깁니다. 이 현상을 과대적합(Overfitting)이 발생했다고 하죠. 모델이 다양한 실제 상황에서 잘 수행되게 만드는 과정이 일반화 과정이라고 합니다. 아래에서 소개하는 기법들을 통해 학습을 개선하게 됩니다. 데이터셋 큐레이션(의미부여 재창출) '쓰레기가 들어오면 쓰레기가 나온다'는 말처럼 우선 데이터에 집중해서 생각.. 2024. 1. 24.
딥러닝 하이퍼파라미터 튜닝 및 설정 이번 포스팅에서는 딥러닝에서 하이퍼파라미터 튜닝과 설정에 대해 알아보도록 하겠습니다. 딥러닝 모델링은 Layer 설계 단계, 컴파일 단계, 모델 fit 단계로 나눌 수 있습니다. 각 단계별로 하이퍼파라미터와 어떤 설정들을 고려해야 하는지 살펴보겠습니다. Layer 설계 단계 입력 층 : tensor 정의, 미니 배치 크기(Mini-batch Size) 정의 출력 층 : 출력이 몇개인지, 활성화 함수(ReLU 등) 설정 은닉 층 : 은닉층의 뉴런 개수, 활성화 함수 설정 네트워크 : Layer 몇층할지, 노드 몇 개 할지, 연결방식 결정 컴파일 단계 1.손실함수 설정 입력에 따른 예측 값이 실제 값과 차이를 계산하는 함수 훈련 과정에서 최소화할 값 현재 작업이 성공적인지에 대한 척도 MSE, Crossen.. 2024. 1. 23.