새로운 개선된 버전의 머신러닝 단기집중과정이 2024년 8월에 제공될 예정입니다. 감사합니다
첫 번째 신경망
이 실습에서는 첫 번째 작은 신경망을 학습시켜 보겠습니다. 신경망은 명시적 특성 교차를 사용하지 않고도 비선형 모델을 학습할 방법을 제공합니다.
작업 1: 주어진 모델은 두 입력 특성을 단일 뉴런으로 결합합니다. 이 모델이 비선형성을 학습하나요? 이를 실행하여 추측을 확인하세요.
작업 2: 히든 레이어의 뉴런 수를 1개에서 2개로 늘려보고
선형 활성화에서 ReLU와 같은 비선형 활성화로
변경해 보세요. 비선형성을 학습할 수 있는 모델을 만들 수 있나요? 데이터를 효과적으로 모델링할 수 있나요?
작업 3: ReLU와 같은 비선형 활성화를 사용하여 히든 레이어의 뉴런 수를 2개에서 3개로 늘려봅니다. 데이터를 효과적으로 모델링할 수 있나요? 실행마다 모델 품질이 어떻게 다른가요?
과제 4: 히든 레이어와 레이어당 뉴런을 추가하거나 삭제하여 실험을 계속 진행합니다. 또한 학습률, 정규화, 기타 학습 설정을 자유롭게 변경합니다. 사용할 수 있는 뉴런과 레이어의 최소 수는 0.177 이하입니다.
모델 크기를 늘리면 적합성이 개선되나요, 아니면 수렴 속도인가요?
이렇게 하면 좋은 모델에 수렴하는 빈도가 달라지나요? 예를 들어 다음 아키텍처를 살펴보겠습니다.
- 뉴런 3개가 있는 첫 번째 히든 레이어입니다.
- 뉴런 3개가 있는 두 번째 히든 레이어입니다.
- 뉴런 2개가 있는 세 번째 히든 레이어입니다.
연습 바로 아래에 답변이 표시됩니다.
작업 1의 답변을 보려면 더하기 아이콘을 클릭합니다.
활성화가 선형으로 설정되어 있으므로 이 모델은 비선형성을
학습할 수 없습니다. 손실이 매우 높으며, 모델이 데이터에 과적합하다고 말합니다.
작업 2의 답을 보려면 더하기 아이콘을 클릭합니다.
비선형 활성화 함수는 비선형 모델을 학습할 수 있습니다. 그러나 뉴런이 2개인 단일 히든 레이어는 이 데이터 세트의 모든 비선형성을 반영할 수 없으며 노이즈가 없어도 손실이 많습니다. 즉, 여전히 데이터에 과소적합합니다. 이러한 연습은 비결정적이므로 일부 실행은 효과적인 모델을 학습하지 못하는 반면 다른 실행은 꽤 잘 작동합니다.
최적의 모델은 예상했던 형태와 다를 수 있습니다.
작업 3의 답변을 보려면 더하기 아이콘을 클릭하세요.
플레이그라운드의 비결정적인 특성이 이 연습을 통해 빛을 발합니다. 뉴런이 3개인 단일 히든 레이어로 데이터 세트를 모델링하기에 충분하지만 (노이즈 없음), 모든 실행이 좋은 모델에 수렴하지는 않습니다.
XOR 함수가 3개의 반면 (ReLU 활성화)의 조합으로 표현될 수 있으므로 뉴런 3개로 충분합니다. 개별 뉴런의 출력을 보여주는
뉴런 이미지를 보면 알 수 있습니다. 뉴런이 3개 있고 ReLU가 활성화되는 좋은 모델에는 거의 수직선이 있는 이미지 1개가 있으며, X1이 양수이거나 (부호가 있거나, 스위치가 전환될 수 있음) 거의 가로선이 있는 이미지 1개, X2의 징후가 감지되는 이미지, 대각선으로 표시된 이미지 1개가 있어 상호작용을 감지합니다.
하지만 모든 실행이 적합한 모델에 수렴하는 것은 아닙니다. 일부 실행은 뉴런이 2개인 모델보다 낫지 않으며 이러한 경우 뉴런이 중복될 수 있습니다.
작업 4의 답변을 보려면 더하기 아이콘을 클릭합니다.
뉴런 3개가 있는 히든 레이어는 데이터를 모델링할 수 있지만 중복이 없으므로 많은 실행에서는 뉴런을 효과적으로 잃어버리고 좋은 모델을 학습하지 못합니다. 뉴런이 3개 이상인 단일 레이어는 중복성을 높기 때문에 좋은 모델에 수렴할 가능성이 높습니다.
살펴봤듯이 뉴런이 2개뿐인 히든 레이어는 데이터를 제대로 모델링할 수 없습니다. 그러면 출력 레이어의 모든 항목이 이 두 노드의 선으로 구성된 도형일 수 있음을 확인할 수 있습니다. 이 경우 심층망은 첫 번째 히든 레이어만 사용하여 데이터 세트를 더 잘 모델링할 수 있습니다. 두 번째 레이어의 개별 뉴런은 오른쪽 상단 사분면과 같이 더 복잡한 모양을 모델링할 수 있습니다. 두 번째 히든 레이어를 추가해도 첫 번째 히든 레이어만 사용하는 것보다 데이터 세트를 더 잘 모델링할 수 있지만, 첫 번째 레이어에 노드를 더 추가하여 두 번째 레이어가 모양을 만드는 키트의 일부가 되도록 하는 것이 좋습니다.
하지만 첫 번째 히든 레이어에 뉴런이 1개 있는 모델은 깊이에 관계없이 좋은 모델을 학습할 수 없습니다. 첫 번째 레이어의 출력은 한 차원 (일반적으로 대각선 선)에 따라서만 달라지기 때문에 이 데이터 세트를 잘 모델링할 수 없습니다. 이후 레이어는 이를 보완할 수 없으며, 입력 데이터의 정보가 복구 불가능한 정도와 관계없이 중요합니다.
작은 네트워크를 보유하는 대신 이와 같은 간단한 문제로 수많은 뉴런이 있는
레이어가 많다면 어떨까요? 앞서 살펴봤듯이 첫 번째 레이어에서는
여러 가지 기울기를 사용할 수 있습니다. 두 번째 레이어에서는
여러 셰이프로 축적할 수 있으며, 이어지는 레이어에
여러 도형이 쌓이게 됩니다.
모델이 수많은 히든 뉴런을 통해 여러 다양한 형상을 고려하도록 함으로써 모델이 학습 세트의 노이즈에 쉽게 과적합을 유발할 수 있는 충분한 공간을 만들었고, 이러한 복잡한 모양이 일반화된 정답이 아닌 학습 데이터의 타입과 일치할 수 있습니다. 이 예시에서 큰 모델은 정확한 데이터 포인트에 맞춰 복잡한 경계를 가질 수 있습니다. 극단적인 경우에 큰 모델은 개별 노이즈 포인트를 중심으로 하는 섬을 학습할 수 있는데, 이를 데이터 기억이라고 합니다. 모델이 훨씬 더 커질 수 있게 해주면 문제를 해결하기에 충분한 뉴런만 있는 간단한 모델보다 실제로 더 낮은 성능을 보이는 경우가 많습니다.
신경망 초기화
이 연습에서는 XOR 데이터를 다시 사용하지만 학습 신경망의 반복성과 초기화의 중요성을 살펴봅니다.
과제 1: 주어진 모델을 4~5회 실행합니다. 각 무료 체험을 시작하기 전에 네트워크 초기화 버튼을 눌러 새로운 무작위 초기화를 생성합니다.
네트워크 재설정 버튼은 재생 버튼 바로 왼쪽에 있는 원형 재설정 화살표입니다. 수렴을 보장하기 위해 각 시도를 최소 500단계 동안 실행합니다. 각 모델 출력은 어떤 형태로 수렴하나요?
이는 비볼록 최적화에서의 초기화 역할에 관해 어떤 의미인가요?
작업 2: 레이어와 몇몇 노드를 추가하여 모델을 약간 더 복잡하게 만들어 보세요. 작업 1의 시도를 반복합니다. 결과에 안정성이 더해지나요?
연습 바로 아래에 답변이 표시됩니다.
작업 1의 답변을 보려면 더하기 아이콘을 클릭합니다.
학습 모델은 실행마다 형태가 달랐습니다. 테스트 수렴 결과는
최저에서 최고까지 거의 2배 정도 다양했습니다.
작업 2의 답을 보려면 더하기 아이콘을 클릭합니다.
레이어와 추가 노드를 추가하여 더 많은 반복 가능한 결과를 얻었습니다.
실행할 때마다 결과 모델은 거의 동일합니다. 또한 테스트 손실 수렴을 통해 실행 간 편차가 적습니다.
신경망 나선형
이 데이터 세트는 노이즈가 많은 나선형입니다. 분명히 선형 모델은 실패하지만 수동으로 정의된 특성 교차도 구성하기 어려울 수 있습니다.
작업 1: X1과 X2만 사용하여 가능한 최고의 모델을 학습시킵니다. 자유롭게 레이어와 뉴런을 추가하거나 삭제하고, 학습률, 정규화율, 배치 크기와 같은 학습 설정을 변경할 수 있습니다. 얻을 수 있는 최선의 테스트 손실은 얼마인가요? 모델 출력 표면이
얼마나 매끄럽나요?
작업 2: 신경망이 있더라도 최상의 성능을 달성하기 위해서는 어느 정도의 특성 추출이 필요합니다. 크로스 프로덕트 특성이나 sin(X1) 및 sin(X2)과 같은 기타 변환을 추가해 보세요. 더 나은 모델을 얻나요? 모델 출력이 더 매끄러워졌나요?
연습 바로 아래에 답변이 표시됩니다.
더하기 아이콘을 클릭하여 답변을 확인하세요.
다음 동영상에서는 Playground에서 초매개변수를 선택하여 테스트 손실을 최소화하는 나선형 데이터의 모델을 학습시키는 방법을 설명합니다.