https://www.clien.net/service/board/kin/10588915
(딥러닝, 머신러닝) 은닉 레이어나 노드 수는 어떻게 정하는 건가요? : 클리앙
** 이 게시판은 댓글이 달리면 게시물을 삭제할 수 없습니다. ** ** 내용의 장기노출이 곤란한 경우 [수정]을 통해 내용을 변경하시기 바랍니다. ** 안녕하세요. 이제 막 머신 러닝을 공부하고 있는
www.clien.net
딥러닝 모델을 설계하게 되면서 노드의 수 은닉층의 수에 자연스럽게 관심이 가지게되었다.
안녕하세요. 이제 막 머신 러닝을 공부하고 있는데, 은닉 레이어나 노드 수는 어떻게 정하는 지 궁금합니다.
입력이나 출력 노드는 말 그대로 입출력 타입에 따라 결정되는데, 핵심이 되는 은닉 레이어나 노드 수는 무엇에 따라 정하나요?
알파고 같은 경우는 은닉 레이어가 40개 정도 된다는 걸 예전에 읽은 기억이 있는데, 기능이나 활용도에 따라 바람직한 수가 다른가요?
저도 공부 중이긴 한데 이런저런 프로젝트 하면서 피드백 받은 결론은 "공식은 없다" 였고요
그러면 당최 어떻게 정하냐 인데 나름 몇 가지 기준이 있더라고요.
우선 1. 문제의 복잡성 2. 데이터의 양 3. 하드웨어 및 시간 이 3가지를 고려해야 하고요.
1번이 말씀하신 기능이나 활용도에 따라 다른 거고, 자기가 하려는 작업과 비슷한 다른 네트워크의 구조를 참고하면 시작점이 될 거에요.
데이터의 양은, 만약 데이터가 충분히 많으면 상관이 없지만, 데이터의 양이 그다지 많지 않으면 깊은 네트워크 즉 레이어 수가 너무 많으면 문제가 될 거에요. 깊을 수록 학습에 더 많은 데이터가 필요하고, 결국 학습이 제대로 안 되거나 오버피팅이 날 경우가 많겠죠. 절대적인건 아니지만 데이터의 양이 문제될 경우는 노드 수를 좀 늘리고 레이어 수를 줄이는 게 개인적으론 조금 더 낫더라고요.
3번 하드웨어는 우선 본격적으로 딥러닝 하시면 결국 GPU를 쓰셔야 할 텐데, 사용하시는 GPU의 VRAM이 중요합니다. Batch에 들어가는 데이터와 네트워크 파라메터 및 구조들이 VRAM에 다 올라갈 수 있어야 하고, 만약 그렇지 않으면 아예 구동이 안 되거나 심각한 성능 저하가 일어나고요. 그리고 일단 올라가더라도 몇 시간 내지 며칠 동안 세월아내월아 돌릴 수 있는 상황과 빨리빨리 결과를 봐야하는 상황은 다르겠죠.
How to choose the number of hidden layers and nodes in a feedforward neural network?
Is there a standard and accepted method for selecting the number of layers, and the number of nodes in each layer, in a feed-forward neural network? I'm interested in automated ways of building neu...
stats.stackexchange.com
이 링크가 조금 도움이 될 거에요.
그리고 파라메터 수를 비슷하게 놓았을 때, 많은 노드 + 얕은 레이어 vs 적은 노드 + 깊은 레이어 이것도 선택을 해야 하는데요. 이거야 계속 해보면서 시행착오를 해야겠지만, 저는 보통 주어진 작업을 할 때 고려해야 할 특징이나 방식이 고차원적인 경우는 노드 수를 줄여서라도 레이어 수를 늘리려고 하는 편이고요. 다양한 입력 데이터를 동시에 분석해야 할 일이 많다면 노드가 많은 게 훨씬 좋았어요.
[How to choose the number of hidden layers and nodes in a feedforward neural network?
Is there a standard and accepted method for selecting the number of layers, and the number of nodes in each layer, in a feed-forward neural network? I'm interested in automated ways of building neu...
stats.stackexchange.com](https://stats.stackexchange.com/questions/181/how-to-choose-the-number-of-hidden-layers-and-nodes-in-a-feedforward-neural-netw)
How to choose the number of hidden layers and nodes in a feedforward neural network?
Is there a standard and accepted method for selecting the number of layers, and the number of nodes in each layer, in a feed-forward neural network? I'm interested in automated ways of building neu...
stats.stackexchange.com
엄청나게 오래된 답변 같지만 그래도 참고하는 것에는 문제가 없다고 생각한다.? 맞는지는 모르겠지만
딥러닝 모델을 설계하게 되면서 노드의 수 은닉층의 수에 자연스럽게 관심이 가지게되었다.
스택 오버 플로우만 있는 줄 알았는데 스택 익스체인지도 있다.
위의 글이 사라질수 있다 생각하여 옮겨둠
Q.(딥러닝, 머신러닝) 은닉 레이어나 노드 수는 어떻게 정하는 건가요?
안녕하세요. 이제 막 머신 러닝을 공부하고 있는데, 은닉 레이어나 노드 수는 어떻게 정하는 지 궁금합니다.
입력이나 출력 노드는 말 그대로 입출력 타입에 따라 결정되는데, 핵심이 되는 은닉 레이어나 노드 수는 무엇에 따라 정하나요?
알파고 같은 경우는 은닉 레이어가 40개 정도 된다는 걸 예전에 읽은 기억이 있는데, 기능이나 활용도에 따라 바람직한 수가 다른가요?
답 : 저도 공부 중이긴 한데 이런저런 프로젝트 하면서 피드백 받은 결론은 "공식은 없다" 였고요
그러면 당최 어떻게 정하냐 인데 나름 몇 가지 기준이 있더라고요.
우선 1. 문제의 복잡성 2. 데이터의 양 3. 하드웨어 및 시간 이 3가지를 고려해야 하고요.
1번이 말씀하신 기능이나 활용도에 따라 다른 거고, 자기가 하려는 작업과 비슷한 다른 네트워크의 구조를 참고하면 시작점이 될 거에요.
데이터의 양은, 만약 데이터가 충분히 많으면 상관이 없지만, 데이터의 양이 그다지 많지 않으면 깊은 네트워크 즉 레이어 수가 너무 많으면 문제가 될 거에요. 깊을 수록 학습에 더 많은 데이터가 필요하고, 결국 학습이 제대로 안 되거나 오버피팅이 날 경우가 많겠죠. 절대적인건 아니지만 데이터의 양이 문제될 경우는 노드 수를 좀 늘리고 레이어 수를 줄이는 게 개인적으론 조금 더 낫더라고요.
3번 하드웨어는 우선 본격적으로 딥러닝 하시면 결국 GPU를 쓰셔야 할 텐데, 사용하시는 GPU의 VRAM이 중요합니다. Batch에 들어가는 데이터와 네트워크 파라메터 및 구조들이 VRAM에 다 올라갈 수 있어야 하고, 만약 그렇지 않으면 아예 구동이 안 되거나 심각한 성능 저하가 일어나고요. 그리고 일단 올라가더라도 몇 시간 내지 며칠 동안 세월아내월아 돌릴 수 있는 상황과 빨리빨리 결과를 봐야하는 상황은 다르겠죠.
How to choose the number of hidden layers and nodes in a feedforward neural network?
Is there a standard and accepted method for selecting the number of layers, and the number of nodes in each layer, in a feed-forward neural network? I'm interested in automated ways of building neu...
stats.stackexchange.com
이 링크가 조금 도움이 될 거에요.
그리고 파라메터 수를 비슷하게 놓았을 때, 많은 노드 + 얕은 레이어 vs 적은 노드 + 깊은 레이어 이것도 선택을 해야 하는데요. 이거야 계속 해보면서 시행착오를 해야겠지만, 저는 보통 주어진 작업을 할 때 고려해야 할 특징이나 방식이 고차원적인 경우는 노드 수를 줄여서라도 레이어 수를 늘리려고 하는 편이고요. 다양한 입력 데이터를 동시에 분석해야 할 일이 많다면 노드가 많은 게 훨씬 좋았어요.
요약
우선 이것에 대한 의견은 아주 많다. 사람들 마다 의견이 아주 다양한 논쟁거리..?인거 같다.
어떤 사람은 경험적으로 해봐야한다.
하지만 우리가 해결하고 싶은 딥러닝 문제는 대부분 어떤식으로 해도 상당 수준의 정확성이 나온다는 의견도 있다.
직접 모델을 설계하고 만들게 되면서 1~2%의 성능을 늘리기 위한 문제라는 의견이 있다.
개인적인 생각으로는 규칙이 있지 않을까 라는 생각을해본다.

@doug's answer has worked for me. There's one additional rule of thumb that helps for supervised learning problems. You can usually prevent over-fitting if you keep your number of neurons below:
이말에 의하면 위의 공식이 오버 피팅을 막아준다는거 같다
자세한 내용을 천천히 읽어보자
'AI > 딥러닝' 카테고리의 다른 글
| RNN과 LSTM (0) | 2022.05.09 |
|---|---|
| 딥러닝 전이학습 - keras (0) | 2021.11.13 |
| object detection 성능 지표 (0) | 2021.11.05 |
| 딥러닝 학습의 이해 (0) | 2021.10.31 |
| from tensorflow.keras.preprocessing.image import load_img (0) | 2021.10.31 |