신경망 훈련하기
-
[cs231n] 7강 신경망 훈련하기 (1/4, 더 멋진 최적화 (fancier optimization))AI 2021. 3. 23. 12:43
지난시간에 했던 것들을 다시 보죠. 지난 시간에 우리는 신경망을 훈련시키는데 핵심적인 세부사항과 관련된 팁 (tip)과 트릭 (trick)에 대해서 얘기했습니다. 오늘은 지난 시간에 배운 것들을 다시 보고 이것들을 학습시키는 것에 대해서, 이런 종류의 핵심적인 세부사항에 대해 더 많이 얘기하겠습니다. 빨리 다시 요약해 보죠. 지난시간 활성 함수에 대해서 얘기했죠. 여러 활성 함수들의 동물원 (zoo)을 보고 그들의 여러 특징에 얘기했죠. 우리는 시그모이드에 대해 봤는데 10년 전에 신경망을 학습할 때는 꽤 자주 썼지만, 활성 함수의 양 끝에서 경사가 사라지는 문제가 있죠. 탠에이치 (tanh)도 이런 종류의 문제가 있죠. 일반적으로 추천하는 것은 대부분의 경우에서는 기본값으로 렐루 (ReLU)를 그냥 쓰..
-
[cs231n] 6강 신경망 훈련하기 (4/4, 하이퍼파라미터 최적화 (hyperparameter optimization))AI 2021. 3. 11. 12:02
어떻게 이 하이퍼파라미터들을 선택할 수 있을까요? 하이퍼파라미터 최적화를 하고 모든 파라미터의 최선값을 고르는 거죠? 우리가 사용할 전략은 어떤 하이퍼파라미터에 대해서든지, 예를 들면 학습률이죠. 교차 검증 (cross-validation)을 하는 겁니다. 교차 검증은 훈련 셋에 대해서 훈련을 하고, 검증 셋에 대해서 평가를 하는거죠. 이 하이퍼파라미터가 얼마나 잘 하는지에 대해서요. 전형적으로 우리는 이것을 여러 단계로 하고 싶습니다. 그래서 우리는 굵은 (coarse) 단계 (stage)를 먼저해서 떨어져서 분포해 있는 값들을 고를 수 있습니다. 그리고 몇 에포크 (epoch)만 학습합니다. 그리고 단지 몇 에포크만으로도 여러분은 어떤 하이퍼파라미터들의 어떤 값들이 좋은지 꽤 잘 알게 됩니다. NaN..
-
[cs231n] 6강 신경망 훈련하기 (3/4, 배치 정규화와 학습 과정 베이비시팅 (batch normalization & learning process babysitting))AI 2021. 3. 11. 10:48
이제 이것과 연관된 아이디어에 대해서 얘기해 보죠. 이 아이디어는 활성을 우리가 원하는 가우시안 범위로 유지하고 싶다는 겁니다. 우리가 배치 정규화라고 부르는 것 뒤에 있는 이 아이디어는, 오케이, 우리는 단위 가우시안 활성을 원한다는 것입니다. 그러게 되도록 만들어보죠. 어떻게 그럴 수 있죠? 어떤 계층의 활성 배치를 생각해 보죠. 이제 모든 활성이 나오죠. 만약 우리가 이걸 단위 가우시안으로 만들고 싶으면, 사실 경험적으로 이것을 할 수 있습니다. 우리는 현재 배치의 평균과 분산을 취해서 이것으로 정규화할 수 있습니다. 가중치 초기화 대신, 우리는 이것을 훈련시작할 때 설정할 수 있죠. 그걸 좋은 위치에 놓기 위해서요. 그럼 우리는 단위 가우시안을 계층마다 가질 수 있죠. 바라건데, 훈련중에도 이것이..
-
[cs231n] 6강 신경망 훈련하기 (1/4, 활성함수 (activation function))AI 2021. 3. 10. 17:48
오늘 우리는 어떻게 신경망을 훈련시키는지에 대해 자세히 알아보겠습니다. 우리가 어디에 와있죠? 우리는 함수를 계산 그래프로 어떻게 표현하는지 얘기했고, 그래서 어떤 함수든 계산 그래프로 표현할 수 있죠. 그리고 신경망에 대해 더 명시적으로 얘기했습니다. 그건 일종의 그래프인데, 여기엔 선형 계층들이 있어서 그걸 쌓고, 중간에 비선형성을 집어넣죠. 지난 강의에서는 합성곱 신경망에 대해 얘기했는데, 그건 특별한 타입의 망으로 합성곱 계층을 사용해서 계층구조(hierarchy)의 망 전체를 통과하면서 공간 구조를 유지합니다. 그래서 우리는 정확히 합성곱 계층이 어떻게 생겼는지 봤고, 합성곱 계층 출력의 각각의 활성 지도는 가중치 필터를 입력의 모든 공간위치에 대해서 슬라이딩하면서 생성됩니다. 우리는 또한 각 ..