본문 바로가기

AI/cs231n

(6)
[강의정리] Lecture 7: Training Neural Networks, Part 2 -강의 영상 - Problem with optimizer SGD 지난 강의에서 설명한 optimizer 중 SGD는 실제 학습을 하는 과정에서 많은 문제에 직면한다. 첫번째 문제로, 위와 같이 파라미터에 대한 공간이 비균등할 경우 어느 한 차원에 대한 가중치 변화에 더 민감하게 반응하여 다음과 같이 지그재그로 update되는 양상을 보이며, 가장 낮은 loss값의 optima에 접근하는 속도가 매우 느려질 수 있다. 두번째 문제는 local minima와 saddle point 문제이다. local minima는 위의 첫번째 그림처럼 gradient가 0이지만 최적의 optima가 아닌 지점을 말한다. saddle point는 양 쪽 뱡향에 대한 gradient의 부호는 같지만, 중간에 0이 되는 지점이..
[강의정리] Lecture 6: Training Neural Networks, Part 1 -강의 영상 -Activation Fuctnion 강의에서 첫번째로 설명하는 Sigmoid는 가장 기본적인 activation function이다. 해당 비선형 함수는 간단하지만 몇가지 문제점을 가지고 있는데, 첫번째는 x값이 오른쪽과 왼쪽으로 조금만 가도 gradient값이 0이 되어서 gradient가 흐르지 않는 Saturated 문제가 발생한다. 두번째는 non-zero centered 문제인데, 해당 문제는 2번째 그림과 같이 gradient가 한쪽 방향만 가질 수 있어서 update가 느리게 된다. 해당 문제가 발생하는 원인은 local gradient X에 upstream gradient를 곱할경우, non-zero centered 이면, 이전 layer에서 넘어온 x값은 항상 양수 만을 가..
[강의정리] Lecture 5: Convolutional Neural Networks -강의 영상 - Introduction 강의 도입부에서는 CNN의 발전과정과 역사를 소개하고 간단한 application을 예로 들어준다. 해당 부분은 생략하며, 자세한 내용이 궁금할 경우 강의자료와 영상을 참고하면 된다. - Convolutional Neural Networks 앞선 강의들에서는 image를 처리할 때 32*32*3 크기의 input 이미지를 stretch 하여 3072*1로 변환하고 내적 연산을 수행했다. 이러한 연산을 Fully connected 연산이라 하는데, 이번 강의에서는 Convolution 연산을 수행하는 Convolution Layer에 대해서 소개한다. 해당 연산이 가지는 FC와의 차이점은 입력 차원의 구조를 그대로 보존시킨다는 것이다. 위를 보면 5*5*3 크기의 f..
[강의정리] Lecture 3: Loss Functions and Optimization - 강의 영상 -Linear classifier 강의에서는 Linear classifier를 통하여 현재 W가 좋은지, 구린지를 Loss function을 통해 정량적으로 수치화 시켜주는 방법을 소개하고, 이 때의 Loss function을 최소화 하는 W를 찾는 과정을 optimzation 과정이라 정의한다. 강의에서 정의한 Linear classifier는 들어온 입력 이미지 32*32*3 픽셀 크기의 이미지 벡터를 하나의 긴 벡터로 펼치고. 가중치 W벡터를 곱하여 최종 10개의 class score에 대한 값을 출력한다. 예시에서는 좀 더 simple한 상황을 고려하여 다음과 같이 3개의 class로 줄여서 예시를 든다. 위의 예시에서는 Loss function으로 "Hinge loss"를 사용하였..
[강의정리] Lecture 4: Backpropagation and Neural Networks -강의 영상 - Introduction 이전 강의인 Lecture 3에서는 Loss function에서의 Loss값의 gradient를 이용해서 가중치를 업데이트하는 optimization 과정을 살펴봤다. Lecture 4에서는 Optimization 과정에서 가중치를 업데이트 하는 방법 중 하나인 Backpropagation과 Neural Network의 간략한 내용을 살펴보는 내용을 소개한다. - Computational graphs 먼저, 해당 강의에서는 Computational graph라는 개념을 소개한다. Computational graph는 Backpropagation 연산을 위해서 복잡한 다변수 입력에 대한 함수 수식을 simple하게 표현해주는 프레임워크이다. 해당 Graph는 연산을 ..
[강의정리] Lecture 2: Image Classification pipeline - 강의 영상 - Image Classfication Image classfication은 Computer Vision 분야의 가장 기초적인 Core task 중 하나이다. 입력(input)으로 image가 주어지면, 위의 Slide6과 같이 카테고리 집합에서 하나의 값을 출력으로 출력한다. Image는 컴퓨터 입장에서 실제로 어떤 숫자 값들의 matrix로 표현이 되며, Slide7은 이를 잘 나타내고있다. 따라서 실제로 이미지를 분류하는 task는 이미지가 아닌 이러한 숫자 값들을 이용해서 classfication 문제를 해결해야 하므로, 매우 어려운 problem 이라고 할 수 있다. 위의 그림은 고양이라는 입력이미지에 대한 예시를 나타내고있다. -Challenges Image classficati..