이미지 분류
-
[cs231n] 7강 신경망 훈련하기 (4/4, 정규화와 전이 학습 (regularization & transfer learning))AI 2021. 3. 23. 18:42
우리가 보기에 드랍아웃은 구체적인 예시 (instantiation)죠. 정규화에 대한 더 일반적인 전략이 있는데요. 훈련 동안 우리는 일종의 임의성을 망에 추가해서 훈련 데이타에 너무 잘 맞아 들어가지 않게 하는 거죠. 약간 망쳐서 훈련데이타에 완벽히 맞아 들어가지 못하게 하는 거죠. 테스트시에는 바라건데 우리의 일반화를 개선하기 위해서 저 임의성을 모두 평균내 버리는 거죠. 드랍아웃이 아마도 이런 종류의 가장 흔한 전략이지만, 사실 배치 정규화도 이 아이디어에 잘 맞습니다. 배치 정규화에서 훈련중에, 하나의 데이타 점이 여러 미니 배치에서 여러 다른 데이타 점들과 함께 나타날 수 있습니다. 단일 데이타 점에 대해 얼마나 정확하게 그 점이 훈련중에 정규화될 것인지 확률성이 있습니다.그러나 테스트시에는 우..
-
[cs231n] 7강 신경망 훈련하기 (3/4, 더 멋진 최적화 (fancier optimization 3))AI 2021. 3. 23. 17:11
진짜 빠르고 더럽고 쉬운 것은 이 모델 앙상블 (model ensembles)을 시도하는 겁니다. 이건 때때로 머신러닝의 많은 다양한 영역에서 동작합니다. 아이디어는 꽤 단순합니다. 하나의 모델만 가지기 보다는, 10개의 다른 모델을 임의의 다른 초기 재시작으로 독립적으로 훈련시킬 겁니다. 테스트시에는 데이타를 10개의 모델 모두에서 실행시키고 이 10개의 모델의 예측값을 평균냅니다. 이 여러 개의 모델을 같이 더하는 것은 과적합 (overfitting)을 약간 줄여주고 성능을 약간 개선합니다. 일반적으로 2% 정도죠. 이건 보통 극적인 개선은 아니지만, 일관적인 개선입니다. 이미지넷 (ImageNet)이나 다른 경연에서, 최대 성능을 얻기 위해 모델 앙상블을 사용하는 것은 매우 흔한 일이라는 것을 알게..
-
[cs231n] 7강 신경망 훈련하기 (2/4, 더 멋진 최적화 (fancier optimization))AI 2021. 3. 23. 14:35
모멘텀을 약간 변형한 것이 있는데, 가끔 볼 수 있는 것이고, 네스테로프 (Nesterov) 가속 경사라고 불립니다. 때로는 네스테로프 모멘텀이라고 불리죠. 이건 순서를 조금 바꿉니다. 일반적인 SGD 모멘텀에서는, 현재 위치에서 경사를 추정하고 우리의 속도와 경사를 혼합할 것을 취합니다. 네스테로프 가속 경사에서는 약간 다른 것을 합니다. 여기서 여러분은 빨간 점에서 출발하고 속도가 여러분을 데려가는 방향으로 움직입니다. 그지점에서 경사를 평가하고 원점으로 돌아가서 그 둘을 섞습니다. 이건 좀 재밌는 해석이긴 하지만 여러분은 정보를 약간 더 섞는다고 생각할 수 있습니다. 만약 어러분의 속도의 방향이 약간 잘못되었다면, 그건 목표 지형의 약간 더 큰 부분으로부터 경사 정보를 통합시킬 수 있도록 해주는 거..
-
[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)의 망 전체를 통과하면서 공간 구조를 유지합니다. 그래서 우리는 정확히 합성곱 계층이 어떻게 생겼는지 봤고, 합성곱 계층 출력의 각각의 활성 지도는 가중치 필터를 입력의 모든 공간위치에 대해서 슬라이딩하면서 생성됩니다. 우리는 또한 각 ..
-
[cs231n] 5강 합성곱 신경망 (1/3, CNN 역사와 도입, history & introduction)AI 2021. 2. 17. 19:54
오늘 수업 제목은 합성곱 신경망입니다. 지난 시간 리뷰를 잠깐 해보죠. 신경망 (neural network)에 대해 얘기했고, 처음 몇 강의동안 얘기했던 선형 점수 함수 (score function)의 동작하는 예들을 우리가 어떻게 가질 수 있었는지 얘기했죠. 그리고 우리는 이것을 신경망으로 바꾸었습니다. 이 선형 계층을 서로 서로 쌓고 중간에 비선형성을 추가해서요. 또한 우리는 이것이 모드 (mode) 문제를 해결하는데 도움을 줄 수 가 있다는 것을 알았죠. 그래서 우리는 중간 템플릿을 학습할 수 있어서, 예를 들면, 빨간 차 대 (vs.) 노란 차 등 다른 종류의 차들을 찾을 수 있습니다. 그리고 이것들을 합쳐서 클래스에 대한 최종 점수 함수를 얻을 수 있었습니다. 오늘은 합성곱 신경망 (convol..
-
[cs231n] 4강 역전파와 신경망 (4/4, 신경망, neural network)AI 2021. 2. 5. 19:46
마침내 신경망에 대해 얘기할겁니다. 사람들은 신경망과 뇌 사이의 비유나 그리고 여러 종류의 생물학적 영감을 이끌어 냈습니다. 그걸 잠깐 보겠지만, 그러나 먼저 그걸 그냥 함수로 보죠. 뇌와 관련된 것은 빼구요. 지금까지 우리는 이런 선형 함수로 많이 작업 했습니다. f는 W 곱하기 x죠. 우리는 이것을 우리가 최적화하고자 하는 함수의 예로 사용했구요. 여러분의 변형 (transformation)에서 이 하나를 사용하는 대신, 신경망을 사용하고 싶다면, 간단한 형태로, 우린 이 두 개를 쌓을 수 있죠. 다른 하나 위에 선형 변형을 얹어서 2개의 계층 (layer)으로 된 신경망을 얻는 거죠. 그래서 이건 우선 W1과 x를 행렬 곱셈하는 거고, 그럼 우리는 중간값을 얻고 0과 W의 최대값 (max of 0 ..