본문 바로가기

Deep Learning

(6)
[3-2강] Optimization 최적화 (Optimization) 최적화란 마치 넓고 커다란 협곡에서 돌아다니는 것이라고 비유했다.협곡의 높이가 손실 값을 나타내고 협곡의 각 점들을 가중치의 값이라고 했을 때 해당 협곡의 가장 낮은 지점 (손실 값이 가장 작을 때)를 찾는 것이 최적화의 목표이다. 물론 간단한 모델 같은 경우 손실 함수 자체를 미분하여 기울기가 0인 부분을 찾아 최솟값을 찾을 수 있지만 대부분의 모델들은 직접 기울기를 계산할 수 있을 정도의 복잡도를 가지고 있지 않기에 다른 방법이 필요하다. #1 임의 검색해당 방법은 임의로 여러가지의 W 값을 시도해보고 손실 값이 가장 적은 W를 찾는 방법이다.이 방법은 너무나 비효율적이므로 절대 사용되지 않는 방법이다. #2 경사 따라가기다시 협곡에 비유하자면 시야가 가려진 상태에서..
[3-1강] Loss Function & Regularization 본래 cs231n 3강은 Loss function (손실 함수)와 Optimization (최적화)에 대한 내용을 다루지만내용이 너무 방대한 관계로 3강은 두 포스팅으로 나누어서 작성할려고 한다. 손실 함수 (Loss function) 지난 강의에선 f(x, W) = Wx + b 라는 형태의 선형 분류기를 보여주고 마무리가 되었는데이번 강의에선 W 즉, 가중치를 판단하는 방법과 고르는 방법을 알려준다. 가중치의 값이 데이터를 올바르게 분류하고 있는지를 판단할려면 손실 함수를 사용하여 판단하여야 한다.  위의 사진은 선형 분류기를 통해 얻어낸 각 카테고리 별의 점수를 포함하고 있고 우측에는 손실 함수의 기본적인 형태를 알려주고 있다. 손실 함수는 선형 분류기의 점수 값과 맞는 라벨의 값을 입력을 받고 특정..
[과제 1] K-Nearest Neighbor (KNN) cs231n 강의는 단순히 영상 강의만 제공하는 것이 아니라 과제도 함께 풀어볼 수 있다는 장점이 있다.단점을 꼽자면 풀이나 과제에 대한 피드백을 받을 수 없다는 것인데 cs231n 강의가 워낙 유명하여 인터넷에 풀이가 많이 풀려있다. 덕분에 이해가 안가는 부분이나 정답 체크를 간편히 할 수 있다. 일단 과제는 코랩에서 사용 할 수 있도록 .ipynb 확장자로 주어지기 때문에 필자도 코랩을 통해 과제를 풀었다.하지만 코랩 무료 버전과 싸지방의 구린 사양이 합쳐진 덕분에 불편함이 배로 늘었지만 아직 쓰는 모델이 매우 단순한 K근접 모델이라 코랩 무료 버전으로도 어렵지 않게 돌아갔다. 나중에 제대로 된 신경망 모델을 만들 때는 코랩 프로를 결제 해볼 까 고민 중이다. 구글 드라이브 연동# This mount..
[2강] Image Classification 이미지 분류가 어려운 이유 이미지 분류는 컴퓨터 비전에서의 가장 중점이 되는 분야이다. 단순히 생각하면 그렇게 어려운 과제인가? 싶지만 컴퓨터의 특성을 생각하면 매우 어렵다. 컴퓨터는 이미지를 입력받을 때 픽셀의 값을 입력을 받는다. 이미지는 0에서 255의 숫자를 가지는 n x n x 3의 행렬로 이루어져 있으며 이 숫자들을 보며 해당 이미지가 어떠한 이미지인지 알아내는 것은 상당히 어렵다. 또한, 조금의 변화(예를 들어 카메라 각도, 빛, 부분가림, 뭉개짐 등)가 있어도 시각적으로는 변화가 적을지라도 픽셀 값은 매우 달라진다. 해당 변화가 있어도 그 이미지가 그대로 (예를 들어) 고양이라는 것을 인지하도록 모델을 만드는 것은 생각만해도 상당히 복잡해진다. 이미지 분류 API 이미지 분류를 위한 API..
[1강] Introduction to Convolutional Neural Networks for Visual Recognition 소개 시각 데이터란? 시각 데이터는 마치 물리학에서의 암흑 물질이다. 암흑 물질이란 우주 공간 상에서의 85%를 차지하고 있는 가설상의 물질이라고 일컫는데 이러한 것이 시각 데이터라는 것이다. 마치 암흑 물질처럼 존재하는 것은 알고 있지만 완전히 이해하는 것이 불가할 만큼 방대한 양의 데이터를 가지고 있다는 비유다. 컴퓨터 비전(Computer Vision or CV)란? 시각 데이터에 대한 연구이며 해당 연구는 무수히 많은 과학 분야들과 관련이 되어있다. 심리학, 물리학, 수학, 컴퓨터공학 등 연결이 안된 분야를 찾기가 어렵다. 그렇기 때문에 CV는 많은 분야의 학자들과 다같이 협업하여 공략해야하는 분야이다. 컴퓨터 비전에 대한 역사 생물학적 비전 약 5억 4천3백만년 전 지구의 대부분은 물로 구성되어..
딥러닝 공부를 시작하며... 필자는 이번이 딥러닝 공부가 처음은 아니다. 군 입대전 딥러닝에 관심을 보여 많은 부분에서 공부를 하려 노력을 했다. 그때 사용했던 강의는 Coursera에서 제공하는 Andrew Ng. 교수의 Deep Learning Specilization이라는 강의이다. 해당 강의는 딥러닝 분야에서 꽤나 유명하니 다들 알거라고 믿는다. 하지만 필자는 강의를 반 이상 듣고나니 무언가 흥미를 잃어갔다. 그저 개발을 좋아하던 필자는 딥러닝의 수학적 지식을 배워가는 것이 지루해졌다. 물론 중간 중간 PyTorch를 사용하여 기본적인 모델을 구현하는 것을 배웠지만 언제쯤 내가 독자적으로 모델을 구현 할 수 있을 까라는 의문이 들었고 (사실 두려워서 내가 도전을 안한 것도 크다...) 결국은 포기라는 결론에 도달했다. 이후 ..