ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Fundamentals]파라미터(Parameter)와 하이퍼파라미터(Hyperparameter)
    Engineering/AI 2021. 4. 15. 22:42

    1. 파라미터(Parameter)

    학습이 진행되는 중 끊임없이 바뀌면서 퍼셉트론의 동작 특성을 결정짓는 요소가 바로 파라미터이다. 즉, 가중치(weight)와 편향(bias)이라고 할 수 있다. 깊은 신경망을 만드는 목표 중 하나는 문제를 해결할 수 있는 적절한 파라미터 값의 조합을 찾는 것이라고 할 수 있다.

     

    2. 하이퍼파라미터(Hyperparamter) : 텐서(Tensor)와 미니 배치(Mini Batch)의 활용

    하이퍼 파라미터에는 미니배치와 에폭이 있다. 우선 미니배치를 먼저 살펴보자.

    나무 위키에서는 텐서(Tensor)를 '벡터 계산을 단순화하기 위해 여러 같은 성질의 벡터를 한 행렬 안에 표기하고 그것을 단순화하여 표기한 '이라고 정의한다. 엄밀한 텐서의 정의는 나무 위키를 참고하길 바라고, 기본적인 쓰임새를 알아보기로 하자. 우리가 알고 있는 스칼라는 0차 텐서, 벡터는 1차 텐서, 행렬은 2차 텐서이며, 3차원 이상도 텐서로 정의한다. 텐서가 획기적인 이유는 나중에 살펴볼 순환 신경망(CNN)에서의 획기적인 속도 때문이다. 메모리(GPU)를 많이 잡아먹긴 하지만 한꺼번에 '많이' 계산하는 것은 메모리를 소비할지라도 병렬 연산하기 때문에 속도 측면에서 혁신을 가져다 주었다.

    Figure 1. SLP

    병렬 연산이라는 키워드로 엮이는 개념이 바로 배치(Batch)이다. C처럼 수많은 입력을 한꺼번에 처리하기 위한 덩어리라는 개념이라고 할 수 있다. Figure 1의 A는 퍼셉트론 하나의 동작, B는 입력 데이터 하나에 대한 단층 퍼셉트론의 동작, C는 입력이 여럿인 배치에 대한 단층 퍼셉트론 동작 방식이다. 일반적인 퍼셉트론의 형태는 C이다. 한 눈에 봐도 A, B를 여러번 수행하는 것보다 C처럼 한번에 처리하는 것이 효율적이다. 이 때 스칼라, 벡터, 행렬을 포함해 더 높은 차원에서 한꺼번에 계산하는 방식이 텐서 연산이고, 신경망은 이렇게 배치 단위로 연산을 수행해 시간을 효과적으로 줄일 수 있었다.

    Figure 2. Mini batch

    더 나아가, 왜 배치는 미니배치(Mini Batch)라고 불릴까? 그렇게 불리는 이유는 Figure 2에서 보는 것처럼 모든 데이터를 한꺼번에 처리하는 방식이 배치인 반면, 미니배치는 상대적으로 배치보다 작은 단위에서 일괄 처리한다는 의미로 이름이 붙여지게 되었다. 미니배치는 데이터 처리 효율성을 높여주고 개별 학습 데이터 특징을 무시하지 않게 해줘 효과적인 연산 방식이라고 할 수 있다.

     

    3. 하이퍼파라미터(Hyperparamter) : 에폭(Epoch)

     또 하나 등장하는 요소가 바로 에폭(Epoch)이다. 에폭은 간단하게 데이터를 한 차례 학습시키는 횟수라고 할 수 있다. 일반적으로 미니배치처럼 한 번 정해지면 변경되지 않으면서 학습 결과에 큰 영향을 미치기 때문에 하이퍼파라미터가 되었다.

     

    - Reference

    Figure 1 : Likelion k-digital training 2nd

    Figure 2 : wikidocs.net/55580

    텐서 정의 : namu.wiki/w/%ED%85%90%EC%84%9C#s-1.2.1

    반응형

    댓글

Designed by Titus Choi.