심층 학습

8.4 매개변수 초기화 전략

명징직조지훈 2023. 6. 10. 20:33

반복적이지 않은 최적화 알고리즘은 그냥 해에 해당하는 점을 풀어서 구한다. 

반복적인 알고리즘 중에서도, 적절한 종류의 최적화 문제에 적용했을 때는 초기화와는 무관하게 쓸만한 해로 수렴하는 것들이 있다.

일반적으로 심층 학습을 위한 훈련 알고리즘은 반복적이며, 따라서 사용자는 반복을 시작할 어떤 시작점을 지정해야 한다 .

 

게다가 심층 학습의 모형은 충분히 어려운 과제이기 때문에 대부분의 알고리즘은 시작점을 어떻게 초기화하느냐에 강하게 영향을 받는다.

시작점에 따라서는 알고리즘이 수렴할 수도 있고 실패할 수도 있다. 그 속도가 빠르거나 느릴 수도 있고, 비용이 큰 점으로 수렴할 수도, 작은 점으로 수렴할 수도 있다.

또한, 비용이 비슷한 점들이라도 일반화 오차는 아주 다를 수 있는데 시작점은 일반화 오차에도 영향을 미친다.

 

현대적인 초기화 전략들은 간단하고 발견법적이다. 신경망의 초기화 자체가 아직 잘 파악되지 않았기에 초기화 전략을 고안하는 것은 쉽지 않다.

대부분의 초기화 전략은 학습을 시작하기 전에 신경망이 어떤 좋은 속성들을 갖추게 하는 것에 기초한다. 그러나 학습이 시작된 후에 그런 속성 중 어떤 것들이 어떤 상황애서 유지된느지는 아질 잘 파악되지 않은 상태이다.

 

게다가, 최적화의 관점에서는 바람직한 시작점이 일반화의 관점에서는 그리 좋지 않은 선택으로 판명 되기도 한다. 

 

아마도, 확실하게 파악된 좋은 속성은 초기 매개변수들이 서로 다른 단위들 사이의 대칭성을 깨야 한다는 것 뿐이다. 

활성화 함수가 같은 두 은닉 단위가 같은 입력들에 연결되어 있다고 할 때, 그 단위들의 초기 매개변수들은 반드시 서로 달라야 한다. 

두 단위의 초기 매개변수들이 같으면 결정론적 비용함수와 모형에 적용된 결정론적 학습 알고리즘은 그 두 단위를 계속해서 같은 방식으로 갱신한다. 

확률성을 이용해서 서로 다른 단위를 서로 다른 방식으로 갱신할 수 있는 모형이나 훈련 알고리즘이라고 해도, 각 단위가 다른 모든 단위와는 다른 함수를 계산하게 초기화하는 것이 최선일 때가 많다. 그렇게 하면 입력의 패턴들이 순전파의 영공간에서 사라지는 일이 없으며, 기울기 패턴들이 역전파의 영공간에서 사라지는 일도 발생하지 않는다. 

각 단위가 서로 다른 함수를 계산하게 한다는 목표를 달성하는 한 방법은 매개변수들을 무작위로 초기화하는 것이다.

이를 위해 서로 다른 수많은 기저함수들로 이뤄진 커다란 함수 집합을 명시적으로 검색할 수도 있지만, 그러면 계산 비용이 현저히 증가할 때가 많다. 

예를 들어 출력 단위의 개수가 입력 단위의 개수를 넘지 않는 신경망이라면, 초기 가중치 행렬에 대해 그람-슈미트 직교화를 적용하는 방법이 있다. 그러면 반드시 단위들이 각자 아주 다른 함수를 계산하게 된다. 고차원 공간에 관한 고엔트로피 분포에 따른 무작위 초기화는 계산 비용이 작고, 서로 다른 단위들이 같은 함수를 계산하게 될 가능성이 별로 없다.

 

일반적으로, 각 단위의 치우침 매개변수는 그냥 발견법적으로 선택한 상수 하나를 사용한다.

즉, 모든 단위는 동일한 치우침 매개변수를 받으며, 무작위로 초기화하는 것은 가중치들 뿐이다. 예측의 조건부 분산을 부호화하는 매개변수 같은 추가적인 매개변수들도 치우침 매개변수처럼 그냥 발견법적으로 선택한 상수를 사용할 때가 많다. 

 

거의 대부분의 경우 ,모형의 모든 가중치는 가우스 분포나 고른 분포에서 무작위로 추출한 값들로 초기화한다. 

분포의 종류는 중요하지 않지만 초기 분포의 규모는 최저고하 절차의 결과와 신경망의 일반화 능력 모두에 큰 영향을 미친다.

 

초기 가중치들이 클수록 대칭성 깨짐 효과가 강해져서, 단위들이 같은 함수를 사용하는 문제가 줄어든다. 또한, 큰 초기 가중치들은 각 층의 선형 구성요소를 통해 순전파 또는 역전파되는 과정에서 신호가 사라지는 문제를 피하는 데도 도움이 된다.  행렬이 크면 행렬의 연산 결과의 성분들도 크기 때문,

그러나 초기 가중치들이 너무 크면 가중치 폭발의 위험, 순환 ㅅ니경망에서는 chaos 현상을 일으킬 여지도 있다. (신경망이 입력의 작은 섭동에 너무 민감해져서 결정론적인 순전파 절차가 무직위하게 행동하는 것처럼 보이는 것)

가중치 폭발 문제는 가중치 절단 기법 으로 어느 정도까지는 완화할 수 있다. 또한, 가중치들이 크면 활성화 함수가 포화할 수 있다. 

가중치들의 이상적인 규모를 결정할 때는 이상의 서로 대립되는 요인들을 고려할 필요가 있다.

 

정칙화의 관점에서 본 신경망의 바람직한 초기화 방식은 최적화의 관점에서 본 것 과는 아주 다르다 .최적화의 관점에선느 정보가 제대로 전파 되도록 가중치를 충분히 크게 잡는 것이 바람직하지만, 일부 정칙화 방법의 관점에서는 가중치가 너무 크면 곤란할 때가 있다. 

확률적 경사 하강법처럼 가중치들을 조금씩 변경하는, 그리고 초기 매개변수들에 가까운 영역에서 멈추는 경향이 있는 최적화 알고리즘을 사용한다는 것은, 최종 매개변수들이 초기 매개변수드로가 가까워야 한다는 우리의 사전 믿음을 표현하는 것에 해당한다.

 

일부 모형의 경우 조기 종료가 적용된 경사 학아법은 가중치 감쇄와 동등하다. 일반적인 경우에서는 조기 종료가 적용된 경사 학아법이 가중치 감쇄와 같지 않지만, 그래도 초기화의 효과에 관해 생각해 볼 여지가 있는 느슨한 비유를 제공하기는 한다.

 

가중치들의 초기 규모를 선택하는 발견법적 방법이 몇 가지 있다. 그중 하나는 입력 단위 m 개와 출력 단위 n 개가 완전히 연결된 층의 가중치들을 

로부터 추출한 값들로 초기화하는 것이다. 
Glorot, Bengio 은 다음과 같은 정규화된 초기화를 사용하 것을 제안했다.

이 발견법적 방법은 모든 층의 활성화 분산이 같아지도록 초기화한다는 목표와 모든 층의 기울기 분산이 같아지도록 초기화한다는 목표를 절충하도록 고안되 ㄴ것이다.

위 식은 신경망이 일련의 행렬 곱셈들로만 구성될 뿐 비선형성은 전혀 관여하지 않는다는 가정하에서 유도된 공식인데, 실제 신경망들에선느 그러한 가정이 성립하지 않음이 명백하다. 

그러나 선형 모형에 맞게 설계된 전략 중에는 비선형 모형에도 잘 작동하는 것들이 많다.

 

Saxe 는 매개변수들을 무작위 직교 행렬로 초기화하되, 각 층에 적용되는 비선형성을 고려한 비례 계수 또는 이득 인자 g 를 세심하게 선택할 것을 추천했다. 

그 논문은 여러 종류의 비선형 활성화 함수에 맞게 유도한 구체적인 비례 계수 값들도 제시한다. 이러한 초기화 방안은 비선형성이 없는 일련의 행렬 곱셈들로 이루어진 모형으로서의 심층 신경망에도 잘 맞는다. 

그런 모형에 이 초기화 방안을 적용하면, 술며에 도달하는 데 필요한 총 훈련 반복 횟수가 신경망의 깊이와는 무관함이 보장된다.

 

미례 계수 g 를 증가하면 신경망은 활성화 값들이 순방향으로 전파됨에 따라 활성화 노름이 증가하고 기울기들이 역방향으로 전파됨에 따라 기울기 노름이 증가하는 영역으로 이동하게 된다.

 

Sussillo 는 이득 인자를 제대로 설명하기만 하면 직교 초기화 없이도 1000층 정도으 싶은 신경망을 충분히 훈련할 수 있음을 보였다.

이 접근 방식의 핵심적인 통찰은, 순방향 신경망에서 활성화 값들과 기울기들이 순전파 또는 역전파의 각 단계에서 일종의 무작위 걷기 행동에 따라 증가하거나 감소할 수 있다는 것이다.

이는 순방향 신경망이 각 층에서 서로 다른 가중치 행렬을 사용하기 때문이다. 

 

하지만 초기 가중치들에 대한 이러한 최적 판정기준들이 최적의 성과로 이어지지는 않을 때가 많다. 

첫째로, 판정 기준 자체가 잘못되었을 수 있다. 즉, 신경망 전체에서 신호의 노름을 유지하는 것이 그리 이득이 되지 않을 수 있다는 것이다.

둘째로, 초기화를 통해 부과한 바람직한 속성들이 일단 학습을 시작하고 나면 더 이상 유지되지 않을 수 있다.

셋째로 판정기준 덕분에 쵲거화가 빨라지진 했지만, 일반화 오차는 의도치 않게 증가했을 수 있다. 

 

모든 초기 가중치의 표준 편차가 같은 값이 되게 하는 비례 규칙의 한 가지 단점은 층들이 크면 개별 가중치가 극도로 작아진다는 것이다. 

 

희소 초기화라고 부르는 또 다른 초기화 방안, 희소 초기화는 가중치들을 초기화할 때 각 단위에서 0이 아닌 가중치가 정확히 k 개이어야 한다는 제약을 가한다. 

 

계산 자원이 허락하는 한, 각 층의 가중치들의 초기 규모를 각각의 초매개변수로 두고 초매개변수 검색 알고리즘들을 적용하는 것이 좋을 때가 많다. 

 

 

가중치가 아닌 다른 매개변수들의 초기화는 가중치들의 초기화보다 쉽다.

bias 매개변수들을 초기화하는 방식은 가중치들을 초기화하는 방식과 맞아야 한다. bias 를 0으로 설정하는 것은 대부분의 가중치 초기화 방안들과 잘 맞는다. 

그러나 다음과 같은 상황들에서는 bias 를 0이 아닌 값으로 설정해야 할 수도 있다.

  • 출력 단위를 위한 bias 의 경우 출력의 오른쪽 주변 통계량 marginal atatistics 이 나오도록 bias 를 초기화하는 것이 이득이 될 때가 많다. 이를 위해서는 단위의 출력이 오직 bias 로만 결정될 정도로 초기 가중치들이 충분히 작다고 가정한다. 그러면 bias 를 훈련 집합의 출력의 주변 통계량에 적용된 활성화 함수의 역으로 설정하는 것이 정당화된다. 예를 들어 분류를 위한 신경망의 출력이 부류들에 관한 하나의 분포이고 그 분포가 어떤 벡터 c 의 성분, c_i 가 주어졌을 때의 부류 i 의 주변 확류에 의해 크게 치우쳐 있다면, 방정식 softmax(b) = c 를 풀어서 bias b 를 설정하면 된다. 이러한 방법은 분류기뿐만 아니라 다른 여러 모형에도 적용된다. 그런 모형들엔느 출력이 반드시 입력 자료 x 와 비슷해야 하는 층들이 있는데, 그런 층들의 bias 들을 x 에 관한 주변 분포에 맞게 초기화하는 것이 도움이 된다.
  • 초기화에서 포화가 너무 많이 일어나지 않게 하는 것을 목표로 bias 들을 선택해야 할 때도 있다. 예를 들어 은닉 ReLU 의 bias 를 0 이 아니라 0.1 로 설정하면 초기화 시 ReLU 가 포화하지 않는다. 그러나 이 접근 방식은 bias 들로부터 강한 입력을 기대하지 않는 가중치 초기화 방안들과는 맞지 안흔ㄴ다. 
  • 다른 단위들이 어떤 함수에 관여하는지의 여부를 하나의 단위가 제어하는 경우가 종종 있다. 그런 상황에서, 출력이 u 인 단위 하나와 출력이 h ∈ [0,1] 인 또 다른 단위 하나가 있다고 하자. 두 단위가 곱해지면 출력 uh 가 산출된다. 이때, 출력이 h 인 단위는 uh = u 가 되어야 할지 아니면 uh = 0 이 되어야 할지를 결정하는 하나의 게이트 소자로 생각할 수 있다. 이러한 상황에서는 h 단위에 대한 bias 를 초기화 시점에 대부분의 경우 h=1 이 되게 하는 값으로 설정하는 것이 바람직하다. 

흔히 쓰이는 또 다른 종류의 매개변수로 분산 또는 정밀도 매개변수가 있다.

 

간단한 상수나 확률분포를 이용해서 모형 매개변수를 초기화하는 방법들 외에, 기계 학습을 이용해서 모형 매개변수들을 초기화하는 것도 가능하다. 

흔한 전략은, 지도 학습 모형의 매개변수들을 그 모형과 같은 입력들로 훈련한 비지도 학습 모형이 배운 매개변수들로 초기화하는 것, 또한 관련되 과제에 대해 지도 훈련을 수행해서 매개변수 초기치들을 구할 수도 있다.

심지어는 관련 없는 과제의 매개변수 사용 시 수렴이 더 빨리 일어날 수 있다.

이는 이런 전략들이 분포에 관한 정보를 모형의 초기 매개변수들 안에 부호화하기 때문이다. 한편, 다른 전략들이 좋은 성과를 내는 주된 이유는 매개변수들이 적절한 규모의 값들로 설정되거나 서로 다른 단위들이 서로 오나전히 다름 함수를 계산하기 때