Image Classification
-
[cs231n] 4강 역전파와 신경망 (3/4, 역전파 패턴, 벡터, 모듈화, backpropagation pattern, vector, modularization)AI 2021. 2. 5. 18:43
무슨 일이 벌어지는 지 보면, 우리는 우리의 계산 그래프를 거꾸로 흐르는 이 경사를 취하고 있는데요. 여기에 눈치챌 수 있는 어떤 패턴이 있습니다. 그것으로 우리는 어떤 직관적인 해석을 할 수 있는데요. 우리는 더하기 게이트가 경사 배분기라는 걸 봤습니다. 우리가 더하기 노드를 통과하면 2개의 가지가 있고, 업스트림 경사를 받아 들여서 연결된 2개의 가지에 똑같은 값을 통과시켜서 배분하죠. 생각해 볼 게 더 있는데요. 맥스 (max) 게이트는 어떤가요? 아래쪽에 맥스 게이트가 있는데요. 입력은 z와 w고 z는 2, w는 -1이죠. 우리는 그 둘 중 최대를 취하니까 2고 그걸 우리의 계산 그래프의 나머지 부분으로 전달 시킵니다. 그래서 이것에 대한 경사를 취하면, 업스트림 경사는, 예를 들어 2가 돌아오고..
-
[cs231n] 4강 역전파와 신경망 (2/4, 역전파 심화, advanced backpropagation)AI 2021. 2. 5. 17:47
이제 다른 예를 해보죠. 이번엔 좀 더 복잡한데요, 왜 역전파가 유용한 지 볼 수 있을 겁니다. 이 경우에는 우리의 W와 x의 함수 f는 1 / ( 1 + e^-(w0x0 + w1x1 + w2)이죠. 우리의 첫번째 단계는 항상 이걸 계산 그래프로 그리는 거죠. 이 경우에는 이 그래프에서 먼저 w와 x항을 곱합니다. w0과 x0을 w1과 x1을 곱하고 그리고 w2를 다 함께 더하죠. 그다음 -1배를 하고 그다음 지수화하고 1을 더하고 이 전체 항을 1로 나눕니다. 그다음 우린 모든 값들을 채워 넣었습니다. 여기 x들과 w들에 주어진 값에 대해서 우리는 순방향 패스 (forward pass)를 할 수 있습니다. 그리고 사실상 계산의 각 단계에서 값이 무엇인지 계산할 수 있습니다. 여기 아래쪽에 앞으로 도움이..
-
[cs231n] 4강 역전파와 신경망 (1/4, 역전파, backpropagation)AI 2021. 2. 5. 15:31
오늘은 역전파와 신경망에 대해 얘기해 보겠습니다. 이제 이 강의의 핵심 내용에 접근합니다. 지금까지 우리는 어떻게 분류기를 정의하는지 얘기했죠. 가중치 W로 파라미터 된 함수 f를 사용해서요. 이 함수 f는 데이타 x를 입력으로 받아서 여러분이 분류하고 싶은 각각의 클래스에 대한 점수의 벡터를 출력합니다. 여기서부터 우리는 손실함수를 정의할 수 있는데, 예를 들면, 얘기했던 SVM (support vector machine) 손실 함수죠. 기본적으로 우리가 생성해 낸 점수에 얼마나 행복한 지 안행복한 지를 정량화합니다. 우린 그것을 사용해서 전체 손실 항을 정의합니다. 여기 L인데, 정규화항과 합쳐진 데이타 항과의 조합이죠. 정규화항은 우리의 모델이 얼마나 간단한지를 표현하는거죠. 우리는 일반화를 더 잘..
-
[cs231n] 3강 손실 함수와 최적화 (4/4, 경사하강 / Gradient Descent)AI 2021. 1. 12. 15:40
일단 우리가 경사를 어떻게 계산하는지 알게 되면, 우리는 수퍼 간단한 알고리즘에 도달하게 됩니다. 3줄 정도죠. 그러나 우리가 어떻게 이 최고로 큰 가장 복잡한 딥러닝 알고리즘을 훈련시키는지에 대한 심장에 해당하죠. 그게 경사 하강 (gradient descent)입니다. 경사 하강은 먼저 우리의 W를 임의 (random)로 초기화하고, 참 (true)일 동안 우리의 손실과 경사를 계산합니다. 그리고 우리의 가중치를 경사방향의 반대로 업데이트하죠. 왜냐면 경사는 함수의 가장 크게 증가하는 방향을 가리키니까요. 그러므로 음의 (minus) 경사는 가장 크게 감소하는 방향을 가리키죠. 그래서 우리가 마이너스 경사의 방향으로 작은 걸음을 취할 겁니다. 그리고 이걸 영원히 반복하면, 결국 여러분의 망은 수렴할 ..
-
[cs231n] 3강 손실 함수와 최적화 (3/4, 최적화 / optimization)AI 2021. 1. 11. 18:39
최적화를 얘기할 때 저는 종종 걷는 것을 생각합니다. 거대한 계곡 주변을요. 어떤 얘기냐면, 여러분이 이 큰 계곡을, 다른 산과 계곡과 시내를 등등 걸어다니는 거죠. 이 풍경의 모든 지점은 W 파라미터의 어떤 세팅들에 해당합니다. 여러분이 여기의 작은 사람이고, 이 계곡을 돌아다니는 겁니다. 이 점들의 높이는 손실과 같고, W에 의해 발생하죠. 이 작은 사람으로서 해야 할 일은 이 풍경을 돌아다니면서, 어떻게든 이 계곡의 바닥을 찾는 것입니다. 이건 일반적으로 어려운 문제이죠. 만약 내가 정말 똑똑하다면, 내 손실 함수와 정규화 등등의 분석적 특징에 대해 열심히 생각해 보고, 어쩌면 최소화하는 것을 만들 수 있을 지도 모르겠지만요. 그건 일종의 마법처럼 이 계곡의 밑바닥으로 계속 순간이동하는 거죠. 그러..
-
[cs231n] 3강 손실 함수와 최적화 (2/4, 정규화 (regularization)와 소프트맥스 (softmax))AI 2021. 1. 11. 18:25
그건 여기 써 있는 것 때문인데요. 데이타에 관해 손실만 썼는데, 우리의 학습 데이터에 맞는 분류기에 대한 W를 찾아야 한다고 얘기했죠. 하지만 실제로, 학습 데이타에 맞추는 것에는 그렇게 관심이 없습니다. 머신러닝의 전체적인 요점은 학습 데이타를 사용해서 어떤 분류기를 찾는 건데, 그리고 그걸 테스트 데이타에 적용하는 거죠. 그래서 우리는 훈련 데이타 성능에 관심이 없고 테스트 데이타에 대한 분류기 성능이 중요합니다. 결과적으로, 우리가 분류기에게 얘기하는 것은, 훈련 데이타에 핏 (fit)하라는 건데, 어떤 경우 가끔 이상한 상황으로 우리를 몰고 갑니다. 분류기가 비직관적인 행동하는 거죠. 그래서 구체적이고 표준적인 예는 선형 분류기가 아닌, 약간 더 일반적인 머신러닝 개념에 대해 얘기할 겁니다. 이..
-
[cs231n] 3강 손실 함수와 최적화 (1/4, 멀티클래스 (multiclass) SVM)AI 2021. 1. 10. 21:42
3강에 오신 것을 환영합니다. 오늘은 손실 함수와 최적화에 대해서 이야기 할 겁니다. 2강을 돌아보면, 인식할 때의 챌린지들에 대해 얘기했고, 이 데이타 추진 아이디어들에 대해 연마했습니다. 이미지 분류에 대한 아이디어에 대해 얘기했는데, 왜 어려운지를 얘기했고, 컴퓨터가 보는 거대한 그리드 숫자와 우리가 보는 이미지 사이의 의미적 갭에 대해서도 얘기했습니다. 다양한 챌린지에 대해서도 얘기했죠. 조명, 형태 변화, 등등이 있었고, 비록 사람의 눈과 시각으론 너무나도 쉬운 거지만, 왜 이게 정말 정말 어려운 문제인지에 대해서 얘기했습니다. 또한 데이타 추진 마인드셋 전체에 대한 간단한 도입으로, kNN 분류기에 대해 얘기했죠. CIFAR 10 데이타셋에 대해 얘기했는데, 위 그림 왼쪽 위에 보이는 예를 볼..
-
[cs231n] 2강 이미지 분류 (4/4, 선형 분류기)AI 2021. 1. 6. 13:49
우리는 KNN이 머신러닝 알고리즘의 좋은 특징을 많이 가지고 있는 걸 봤죠. 그러나 실제로 그렇게 좋지는 않습니다. 이미지에 대해선 많이 안 쓰이죠. 다음으로 얘기하고 싶은 것은 선형 분류입니다. 선형 분류는 간단한 학습 알고리즘인데, 이건 엄청 중요합니다. 우리가 신경망 전체, 전체 합성곱 신경망을 만들도록 해 줍니다. 신경망으로 작업을 비유로 표현해 보면 우리는 이걸 레고 블록에 비유합니다. 여러분은 신경망의 여러 컴포넌트를 가지고 있을 거고 이 컴포넌트들을 서로 붙이죠. 이런 합성곱 신경망의 큰 탑을 쌓기 위해서요. 여러 형태의 딥러닝 어플리케이션에서 가장 기초적인 빌딩 블록 (building block)이 이 선형 분류기입니다. 선형 분류기가 어떻게 동작하는지 아는 게 중요한데, 전체 신경망에 꽤..