잇연

[sesac LLM] day41-240229 DL 히든레이어,ReLu, Softmax 본문

SESAC LLM 개발자 강의

[sesac LLM] day41-240229 DL 히든레이어,ReLu, Softmax

잇연 2024. 2. 29. 17:30

- Hidden Layer를 지날 때마다 무슨 함수를 써야하나?

  activation function을 써야한다. 이전에는 주로 sigmoid 함수가 사용되었지만, 현재는 ReLU(Rectified Linear Unit) 함수가 더 널리 사용된다.

 

- 왜 sigmoid를 쓰다가 현재는 ReLU를 많이 쓰는가?

  sigmoid 함수는 기울기가 소실(Vanishing gradient)되는 문제가 있다. 입력이 크거나 작을 때 sigmoid 함수의 미분값이 매우 작아지기 때문에 발생한다. 따라서 역전파 과정에서 기울기가 계속해서 작아져서 최상위 층에 도달할 때까지 거의 소멸될 수 있다. 이러한 현상은 네트워크의 학습을 어렵게 만들고, 학습 속도를 느리게 하며, 영향력이 감소하게 된다. 또한, 입력이 0에 가까워지면 sigmoid 함수의 미분값이 매우 작아져서 업데이트가 거의 이루어지지 않아서 학습이 불가능해질 수 있다.

  현재 relu(Rectified Linear Unit) 함수가 많이 사용된다. relu 함수는 입력이 0보다 큰 경우에는 그 값을 그대로 반환하고, 0 이하인 경우에는 0으로 반환하여 기울기 소실 문제를 해결한다. 또한, relu 함수는 미분값이 입력에 관계없이 항상 1 또는 0이기 때문에 역전파 과정에서 기울기를 효과적으로 완화한다. 

  하지만 relu 함수도 입력이 음수인 경우에는 출력이 0이 되는 단점이 있다. 이를 해결하기 위해 leaky reluELU(Exponential Linear Unit)와 같은 함수들이 개발되었다. 이러한 함수들은 relu의 단점을 보완하여 더 나은 성능을 제공하고 있다.

 

- 히든레이어를 지날떄마다 활성화함수를 쓰는 이유는?

  히든 레이어를 지날 때마다 활성화 함수를 사용하는 이유는 네트워크가 비선형 관계를 모델링할 수 있게 하기 위함이다. 히든 레이어를 거치면서 선형 변환만 적용되면, 여러 층을 쌓아도 결국 하나의 선형 변환을 수행하므로 모델의 표현력이 제한된다. 이를 해결하기 위해 각 히든 레이어에서 활성화 함수를 사용해 비선형성을 추가한다.

 

- 각 레이어마다 어떤 활성화함수를 사용하는가?

Hidden layers :  비선형 문제를 선형으로 변환해 일반화하는 역할을 한다. 주로 ReLU 함수를 사용해 기울기 손실 문제를 해결한다.

Output layer : 클래스 분류를 위해 존재하며, 주로 이진 분류에는 시그모이드 함수를, 다중 클래스 분류에는 소프트맥스 함수를 사용해 확률 값을 출력한다.

 
멀티 클래스 분류

멀티 클래스 분류는 주어진 데이터셋을 여러 개의 클래스로 분류하는 작업이다. 각 클래스는 이진 분류로 처리되며, 해당 클래스에 해당하면 1, 아니면 0으로 표시된다. 이를 통해 주어진 입력 데이터가 특정 클래스에 속하는지를 판별할 수 있다. 이를 위해 원-핫 인코딩을 사용한다. 원-핫 인코딩은 각 클래스를 벡터의 인덱스로 표현하고 해당 인덱스에 1을 부여하고 나머지에는 0을 할당하여 각 데이터가 여러 클래스 중 어디에 속하는지를 명확하게 표현한다.

 

소프트맥스 함수

소프트맥스 함수는 멀티 클래스 분류에서 중요한 역할을 한다. 소프트맥스 함수는 모델의 출력값을 각 클래스에 대한 확률로 변환해준다.. 모델이 예측한 각 클래스에 대한 점수를 받아 확률 분포로 변환하며, 이를 통해 출력된 각 클래스에 대한 확률은 0과 1 사이의 값이 되고, 모든 클래스에 대한 확률의 합은 1이 된다. 따라서 소프트맥스 함수를 통해 모델의 출력값을 해석하기 쉽게 되며, 예측한 클래스의 확률 분포를 통해 어떤 클래스에 속할 가능성이 높은지를 확인할 수 있다. 

 

 

데이터 어그멘테이션(Data Augmentation):

  • 데이터 어그멘테이션은 기존의 학습 데이터를 변형하여 새로운 학습 샘플을 생성하는 기법이다. 이미지 데이터의 경우 회전, 이동, 반전 등의 변환을 적용하고, 텍스트 데이터의 경우 문장 순서 변경, 단어 삭제, 대체 등의 방법을 사용하여 데이터를 다양하게 확장한다. 이를 통해 학습 데이터의 다양성을 증가시켜 모델이 일반화 성능을 향상시킬 수 있다.

얼리스탑핑(Early Stopping):

  • 얼리스탑핑은 학습 과정 중에 벨리데이션 데이터에 대한 손실(loss)이 증가하기 시작하는 시점에 학습을 조기 종료하는 기법이다. 이를 통해 오버피팅을 방지하고 모델의 일반화 성능을 개선할 수 있다.

모델 간소화(Model Simplification):

  • 모델 간소화는 모델의 복잡성을 줄이는 것을 의미한다. 이는 불필요한 파라미터를 제거하거나, 모델의 구조를 단순화하여 모델의 복잡성을 줄이는 것을 포함한다. 모델의 복잡성이 줄어들면 오버피팅을 방지하고 학습 데이터에 더 잘 일반화할 수 있다. 이를 위해 노드 수를 줄이거나, 드롭아웃(dropout)과 같은 정규화 기법을 적용할 수 있다.