인공지능/공부

모두를 위한 머신러닝 9주차 5차시 - 학습 알고리즘의 성능 향상

이게될까 2024. 5. 2. 00:50
728x90
728x90

음.... optimizer는 아닐거 같은디

파라미터 최적화인가...?

epoch를 늘리거나, 복잡도 감소시키거나...

오버피팅 해결

언더 피팅 해결

특징값을 증가시키는 효과가 있다.

오버피팅 유의하기!

히든 레이어 수 ? 노드 수?

노드 수가 많다 - 일반적으로 사용할 수 있다. -> 충분하지 않으면 레이어 수를 늘린다.

why?

신경망에서 히든 레이어의 노드 수를 늘리는 것은 모델의 용량을 증가시켜 더 복잡한 패턴을 학습할 수 있게 하는 한 방법입니다. 노드 수를 늘릴 때의 주된 이유는 다음과 같습니다:

  1. 계산 효율성: 레이어의 노드 수를 늘리는 것은 비교적 간단하며, 추가적인 레이어를 도입하는 것보다 계산상의 부담이 덜 합니다. 각 레이어가 추가될 때마다, 네트워크의 깊이가 깊어지고, 이로 인해 학습이 더 어려워질 수 있으며, 그래디언트 소실이나 폭발 문제가 발생할 수 있습니다.
  2. 학습의 복잡성: 추가 레이어를 도입하면, 학습해야 할 파라미터의 수가 증가하고, 모델이 더 복잡해집니다. 이는 학습 시간을 증가시키고, 더 많은 데이터와 더 세밀한 하이퍼파라미터 튜닝이 필요할 수 있습니다.
  3. 단계적 접근: 일반적으로 노드 수를 늘리는 것은 모델의 용량을 점진적으로 증가시키는 방법으로 사용됩니다. 이는 레이어를 추가하는 것보다 변화를 더 세밀하게 조절할 수 있게 해 줍니다. 먼저 노드 수를 조절하여 언더피팅 문제를 해결할 수 있는지 시도해보고, 그래도 해결되지 않는 경우 레이어의 수를 늘려 복잡성을 추가적으로 증가시키는 것이 일반적입니다.
  4. 이론적 근거: 일부 연구에 따르면, 충분한 수의 노드가 있으면 단일 레이어 네트워크도 복잡한 함수를 근사할 수 있는 능력을 가집니다. 그러나 실제 응용에서는 깊이가 모델의 성능을 향상시킬 수 있기 때문에, 노드 수 증가 후에 여전히 문제가 해결되지 않을 때 추가 레이어를 고려하는 것입니다.

노드 수를 늘리는 것은 모델의 복잡성을 적절히 증가시키는 첫 단계로 간주될 수 있으며, 이를 통해 더 복잡한 패턴을 학습할 기회를 제공합니다. 그럼에도 불구하고 언더피팅 문제가 지속된다면, 모델의 깊이를 늘리는 것이 필요할 수 있습니다.

728x90