AI
-
[cs231n] 10강 순환 신경망 (Recurrent Neural Network) (1/4, 계산 그래프 (computational graph))AI 2021. 4. 12. 19:10
기억을 되살려보면, 지난시간에 우리는 CNN 아키텍처에 대해 이야기 했죠. 우리는 이미지넷 (ImageNet) 분류 대회의 여러 우승자들 중 몇개를 시간 순서로 봤습니다. 돌파구가 발견된 결과였던 것 같죠. 봤듯이 2012년에는 알렉스넷 (AlexNet) 아키텍처였죠, 9개 계층의 합성곱 신경망이었습니다. 그건 놀랍게 잘 했고, 그것이 컴퓨터 비전에 있어서 이 전체 딥러닝 혁명을 시작한 거죠. 그리고 이 많은 모델들을 주류 (mainstream)로 끌어올렸죠. 그리고 나서 우리는 2년 정도 건너 뛰어서 2014년 이미지넷 대회에서 2개의 매우 재미있는 모델인 VGG와 구글넷 (GoogLeNet)을 봤습니다. 그것들은 훨씬 더 깊었죠. VGG는 16과 19 계층 모델이 있었고 구글넷은 22 계층 모델이었던..
-
[cs231n] 9강 CNN 아키텍처 (architecture) (4/4, 다른 아키텍처들)AI 2021. 4. 1. 15:50
빠르게 관련된 복잡도에 대해 좀 더 감을 잡아 보도록 이걸 보죠. 여기에 플롯 (plot)들이 있는데, 성능으로 정렬된 건데, 상위 1개 (top 1) 정확도로 정렬된거죠. 그래서 더 높은게 더 좋은 거죠. 우리가 얘기했던 이 모델 중 많은 것들을 보게 될거고 뿐만 아니라 그것들의 다른 버전도 보게 될 겁니다. 이 구글넷 인셉션은, v2, v3도 있었던 것 같은데요. 가장 좋은 것은 v4인데, 이건 사실 레즈넷 더하기 인셉션의 조합이죠. 그래서 이것들은 그것들 위에 만든 일종의 점진적이고, 좀 더 작은 변화들입니다. 그래서 그게 여기서 가장 잘 동작하는 모델이죠. 오른쪽을 보면, 이 계산 복잡도에 대한 플롯들은 정렬이 되어 있는데요. Y축은 상위 1개 정확도라서 더 높은 것이 더 좋은 거죠. X축은 연산..
-
[cs231n] 9강 CNN 아키텍처 (architecture) (3/4, ResNet)AI 2021. 4. 1. 11:40
이제 2015년 우승자를 보죠. 레즈넷 망 (ResNet network)입니다. 여기 이 아이디어는 실제로 혁명적인 깊이입니다. 우리는 2014년에 깊이를 늘리기 시작했고, 이 152 계층의 엄청나게 더 깊은 모델을 얻었습니다. 그게 레즈넷 아키텍처죠. 이제 좀 더 세부사항을 보죠. 레즈넷 아키텍처는, 극도로 깊은 망이고 이전의 어떤 망보다 훨씬 깊죠. 그건 이 중복 커넥션 (residual connection)이라는 아이디어를 사용하는데, 이따가 얘기할 겁니다. 그래서 그들은 이미지넷에 대해 152계층 모델을 얻었죠. 그들은 이걸로 3.57%의 상위 5개 (top 5) 오류율을 얻었고 정말 특별한 점은 이미지넷 벤치마크 (ImageNet benchmark)에서 모든 분류와 탐지 대회를 다 쓸었다는 겁니..
-
[cs231n] 9강 CNN 아키텍처 (architecture) (2/4, VGG, GoogLeNet)AI 2021. 3. 31. 19:33
그래서 2014년에 몇 개의 아키텍처가 나왔는데 이제 좀 더 상당히 다른 것들이었고 성능에서 또 한번 도약했습니다. 이 망들 (networks)의 주요한 차이점은 먼저 훨씬 더 깊은 망이었다는 겁니다. 2012, 2013년에 8 계층 망에서 2014년에는 매우 비슷한 우승자 둘이 있었는데, 19계층과 22계층이었죠. 상당히 더 깊어졌죠. 우승자는 구글에서 나온 구글넷 (GoogLeNet)이었죠. 그러나 뒤에 바짝 붙어 있는 것이 VGGNet이라고 불리는 옥스포드에서 나온 것이 었는데, 사실 위치 인식 (localization) 대회에서는 VGG가 다른 트랙들 몇 개에서 1등을 했습니다. 이 둘은 매우 강력한 망이죠. 먼저 VGG를 약간 자세히 보죠. VGG 망은 훨씬 더 깊은 망이고 훨씬 더 작은 필터를..
-
[cs231n] 9강 CNN 아키텍처 (architecture) (1/4, 알레스넷 (AlexNet))AI 2021. 3. 31. 17:54
9강에 오신 것을 환영합니다. 오늘 우리는 CNN 아키텍처에 대해 얘기할 겁니다. 지난 시간 리뷰를 빠르게 해보죠. 지난시간에 우리는 여러 종류의 딥러닝 프레임워크에 대해서 얘기했죠. 파이토치, 텐서플로우, 카페2에 대해서 얘기했습니다. 그리고 우리는 이런 종류의 프레임워크를 사용해서 커다란 계산 그래프 (computational graph)를 만들 수 있다는 것을 봤죠. 예를 들면, 매우 큰 신경망과 콘브넷 (convnet)이죠. 그 결과 이 그래프들에서 매우 쉽게 경사를 계산할 수 있었습니다. 또 모든 중간 변수, 가중치, 입력에 대해 경사를 계산할 수 있었고 그걸 사용해서 모델을 훈련시키고 이 모두를 GPU에서 효율적으로 실행할 수 있었습니다. 그리고 이 많은 프레임워크 (framework)들에 대..
-
[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 모멘텀에서는, 현재 위치에서 경사를 추정하고 우리의 속도와 경사를 혼합할 것을 취합니다. 네스테로프 가속 경사에서는 약간 다른 것을 합니다. 여기서 여러분은 빨간 점에서 출발하고 속도가 여러분을 데려가는 방향으로 움직입니다. 그지점에서 경사를 평가하고 원점으로 돌아가서 그 둘을 섞습니다. 이건 좀 재밌는 해석이긴 하지만 여러분은 정보를 약간 더 섞는다고 생각할 수 있습니다. 만약 어러분의 속도의 방향이 약간 잘못되었다면, 그건 목표 지형의 약간 더 큰 부분으로부터 경사 정보를 통합시킬 수 있도록 해주는 거..