전체 글
-
[cs231n] 6강 신경망 훈련하기 (3/4, 배치 정규화와 학습 과정 베이비시팅 (batch normalization & learning process babysitting))AI 2021. 3. 11. 10:48
이제 이것과 연관된 아이디어에 대해서 얘기해 보죠. 이 아이디어는 활성을 우리가 원하는 가우시안 범위로 유지하고 싶다는 겁니다. 우리가 배치 정규화라고 부르는 것 뒤에 있는 이 아이디어는, 오케이, 우리는 단위 가우시안 활성을 원한다는 것입니다. 그러게 되도록 만들어보죠. 어떻게 그럴 수 있죠? 어떤 계층의 활성 배치를 생각해 보죠. 이제 모든 활성이 나오죠. 만약 우리가 이걸 단위 가우시안으로 만들고 싶으면, 사실 경험적으로 이것을 할 수 있습니다. 우리는 현재 배치의 평균과 분산을 취해서 이것으로 정규화할 수 있습니다. 가중치 초기화 대신, 우리는 이것을 훈련시작할 때 설정할 수 있죠. 그걸 좋은 위치에 놓기 위해서요. 그럼 우리는 단위 가우시안을 계층마다 가질 수 있죠. 바라건데, 훈련중에도 이것이..
-
[cs231n] 6강 신경망 훈련하기 (2/4, 데이타 전처리와 가중치 초기화 (data preprocessing & weight initialization))AI 2021. 3. 10. 19:47
데이타 전처리에 대해서 얘기를 좀 해보죠. 활성함수를 디자인하는 것은 우리 망의 일부죠. 이제 우리는 망을 훈련시키고 싶고 입력 데이타를 가지고 거기서 부터 훈련을 시작하고 싶습니다. 일반적으로 우리는 항상 데이타를 전처리합니다. 머신러닝 수업을 들었다면 봤을 법한 건데요. 전처리의 표준적인 형태는 원래 데이타를 취해서 0으로 평균을 맞추고 아마도 정규화를 하는 거겠죠. 표준편차로 정규화하는 거죠. 왜 우린 이렇게 하고 싶을까요? 0으로 중심을 맞추는 건, 앞서서 모든 입력이 양수인 경우를 얘기했을 때를 기억해 보면, 우리의 가중치 경사가 모두 양수가 되고 우리는 최선이 아닌 차선의 최적화를 얻게 됩니다. 그리고 일반적으로 그게 모두 0이 아니거나 모두 음인 경우에도 어떤 종류의 바이어스 (bias)가 ..
-
[cs231n] 6강 신경망 훈련하기 (1/4, 활성함수 (activation function))AI 2021. 3. 10. 17:48
오늘 우리는 어떻게 신경망을 훈련시키는지에 대해 자세히 알아보겠습니다. 우리가 어디에 와있죠? 우리는 함수를 계산 그래프로 어떻게 표현하는지 얘기했고, 그래서 어떤 함수든 계산 그래프로 표현할 수 있죠. 그리고 신경망에 대해 더 명시적으로 얘기했습니다. 그건 일종의 그래프인데, 여기엔 선형 계층들이 있어서 그걸 쌓고, 중간에 비선형성을 집어넣죠. 지난 강의에서는 합성곱 신경망에 대해 얘기했는데, 그건 특별한 타입의 망으로 합성곱 계층을 사용해서 계층구조(hierarchy)의 망 전체를 통과하면서 공간 구조를 유지합니다. 그래서 우리는 정확히 합성곱 계층이 어떻게 생겼는지 봤고, 합성곱 계층 출력의 각각의 활성 지도는 가중치 필터를 입력의 모든 공간위치에 대해서 슬라이딩하면서 생성됩니다. 우리는 또한 각 ..
-
[cs231n] 5강 합성곱 신경망 (3/3, 콘브넷 그 외, ConvNet Etc.)AI 2021. 2. 27. 13:13
여기 합성곱 계층 예가 있는데, 딥 러닝 프레임워크인 토치 (Torch)에서의 예입니다. 지난 수업에서 이런 딥러닝 프레임워크로 들어가서 각 레이어의 정의를 볼 수 있다고 했죠. 거기엔 포워드 패스와 백워드 패스가 각각의 계층에 대해 구현되어 있습니다. 여러분은 공간의 (spartial) 합성곱이 이것들 중의 하나가 된다는 것을 볼 수 있고, 이것이 받아 들이는 argument가 디자인 선택이 된다는 것을 알 수 있습니다. 여러분의 입력과 출력 크기 뿐만 아니라 커널 (kernel) 넓이, 커널 크기, 패딩, 이런 것들이 다 해당됩니다. 다른 프레임워크인 카페 (Caffe)를 보면, 매우 비슷한 것을 볼 수 있죠. 여기서는 여러분의 망을 정의하고 있고, 프로토 텍스트 파일에서 계층의 디자인 선택을 정의합..
-
[cs231n] 5강 합성곱 신경망 (2/3, 콘브넷, ConvNet)AI 2021. 2. 17. 20:00
여기까지 콘브넷이 오늘날 사용되는 작은 예들이었습니다. 하지만 이것으로 가능한 것이 엄청나게 많이 있습니다. 여러분들이 프로젝트를 할 때, 여러분의 상상력이 제멋대로 펼쳐져도, 우리는 여러분이 어떤 응용을 생각해 낼 수 있는지 보고 싶습니다. 오늘 우리는 어떻게 합성곱 신경망이 동작하는지 얘기할 겁니다. 신경망과 마찬가지로 그것들이 어떻게 동작하는지 기능적인 관점에서 뇌에 대한 비유는 빼고 먼저 얘기할 거구요. 그 다음 우린 간단히 둘 사이 연결에 대해서 얘기할 겁니다. 지난 강의에서 우리는 완전 연결 계층 (fully connected layer)에 대한 아이디어를 얘기했죠. 완전연결 계층에서 우리가 하는 것은 이 벡터들에 대해 연산을 하는 겁니다. 예를 들어 우리가 32 x 32 x 3, 3차원 이미..
-
[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 ..
-
[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가 돌아오고..