Deep Learning
-
스탠포드 cs231n을 정리하며...AI 2021. 4. 28. 12:23
1. 이 강의를 정리한 이유 이전 포스트에도 적었지만, 아이펠 강남 수업을 들으면서 가장 버겁게 느껴졌던 부분 중 하나가, 스탠포드 cs231n강의를 듣는 것이었습니다. 인공지능에 대한 이해도 별로 없던 제가, 영어로 된 강의를 듣는다는 것이 어려웠고, 이 강의가 어떤 목적으로 어떻게 흘러가고 있는 것인지 전체적인 큰 그림을 초기에 이해하지 못하는 상황에서 무작정 듣는 것도 어려웠습니다. (1강도 정리한 이유) 그래서 아이펠 강남이 끝난 다음 직접 강의 내용을 다시 들어보면서 정리해 보기로 했습니다. 사실 비디오를 한번 본다고 해서, 모든 것을 이해할 수 있는 것도 아니었고, 지금도 그렇지만, 스스로의 학습을 위한 목적이 가장 크다고 할 수 있다. 2. 도움이 될 것이라고 생각되는 사람들 강의를 다 듣고..
-
[cs224n] 2강 워드 벡터와 워드 센스 (3/5, 동시발생 (co-occurrence count))AI 2021. 1. 17. 18:05
이건 알고리즘이죠. 여러분이 이 말뭉치를 거치면서 자리마다 움직이며 단어 예측을 하는 거고, 여러분은 파라미터를 업데이트하고 뭔가를 학습하는 거죠. 우리가 본 예제를 보면 동작하는 것 같은데요. 이건 약간 이상하지 않나요? 우리는 큰 덩어리의 데이타가 있고, 저는 통계를 생각하고 있는데요. 그 데이타를 모아서, 여기서 여러분들이 뭔가 할 수 잇는 것이 있을 것 같네요. 여기 단어가 있고, 예를 들어 바나나요. 바나나 문맥에서 어떤 단어가 나타나는지 보죠. 그걸 모두 세어서 그걸 예측에 이용하는 거죠. 분산 표현 테크닉을 포함해서 그런 종류 방법들이 전통적으로 쓰였는데, 잠깐 얘기하자면, 여러분은 잘 교육받아서 망 (net)이 시작하기전인 2013년 전에 일어난 일을 전혀 모르지는 않겠죠. 자, 우리가 할..
-
[cs224n] 2강 워드 벡터와 워드 센스 (2/5, 최적화 (optimization))AI 2021. 1. 17. 15:08
우리는 어떻게 이 단어 벡터들을 학습했는지에 대해 얘기하기 시작했습니다. 이 수업은 사실 최적화 시간은 아닌데, 최적화에 대해 알고 싶다면, 229에서 더 잘 배울 수 있죠. 스테판 보이드의 최적화 수업을 듣거나요. 이건 베이비 (baby) 최적화이고 우리 모두가 같은 이해를 하고 있다는 걸 확인하기 위한 거죠. 여기 3장의 슬라이드가 있습니다. 우리는 최소화하고 싶은 비용함수를 가지고 있고, 우리의 워드 벡터에 대해서 미분을 해서 비용함수의 경사를 계산했죠. 우리의 변수는 쎄타 (θ)였고, 우리가 하고 싶은 건, 우리가 작은 걸음으로 음의 경사 방향으로 걸어가면서, 이 공간의 언덕을 따라 내려가는 것이었습니다. 그걸 계속해서 우리 공간의 최소값으로 나아가고 싶죠. 물론 높은 차원의 공간에서는 이런 부드..
-
[cs231n] 3강 손실 함수와 최적화 (3/4, 최적화 / optimization)AI 2021. 1. 11. 18:39
최적화를 얘기할 때 저는 종종 걷는 것을 생각합니다. 거대한 계곡 주변을요. 어떤 얘기냐면, 여러분이 이 큰 계곡을, 다른 산과 계곡과 시내를 등등 걸어다니는 거죠. 이 풍경의 모든 지점은 W 파라미터의 어떤 세팅들에 해당합니다. 여러분이 여기의 작은 사람이고, 이 계곡을 돌아다니는 겁니다. 이 점들의 높이는 손실과 같고, W에 의해 발생하죠. 이 작은 사람으로서 해야 할 일은 이 풍경을 돌아다니면서, 어떻게든 이 계곡의 바닥을 찾는 것입니다. 이건 일반적으로 어려운 문제이죠. 만약 내가 정말 똑똑하다면, 내 손실 함수와 정규화 등등의 분석적 특징에 대해 열심히 생각해 보고, 어쩌면 최소화하는 것을 만들 수 있을 지도 모르겠지만요. 그건 일종의 마법처럼 이 계곡의 밑바닥으로 계속 순간이동하는 거죠. 그러..
-
[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)이 이 선형 분류기입니다. 선형 분류기가 어떻게 동작하는지 아는 게 중요한데, 전체 신경망에 꽤..
-
[cs231n] 2강 이미지 분류 (3/4, K-최근접 이웃/ K-Nearest Neighbors)AI 2021. 1. 5. 19:59
손가락처럼 튀어 나온 이런 것들이 이 알고리즘을 일반화하고 싶은 동기를 유발합니다. 그래서 나온 것이 K-최근접 이웃 알고리즘이죠. 하나의 최근접 이웃을 찾기 보다는, 약간 더 멋진 걸 하는데, 거리 메트릭에 따라 K개의 최근접 이웃을 찾아서 투표를 합니다. 이웃중에서요. 그 다음에 가장 많은 표를 가진 이웃이 예측값이 됩니다. 이걸 좀 더 복잡하게 하는 방법도 생각할 수 있죠. 거리에 웨이트를 주는 것 등을 생각할 수 있는데, 가장 간단한게 꽤 잘 됩니다. 그냥 최다 득표를 선택하면 됩니다. 여기 앞에서 본 것과 같은 점들의 집합이 있는데 K가 1인 분류기와, K가 3일때, K가 5일때가 있습니다. 3일때를 보면, 녹색 안에 있는 이상한 노란 점이 그 주변 영역을 노란색으로 만들지 않습니다. 가운데 녹..
-
[cs231n] 2강 이미지 분류 (2/4, 최근접 이웃 / nearest neighbors)AI 2021. 1. 4. 19:55
이미지 분류를 위한 API가 뭔지 생각해 보면, 파이썬으로 이런 메소드를 아마 작성할 겁니다. 이미지를 받아서 어떤 미친 마법을 부려서 고양이인지 개인지 아무것도 아닌지 레이블을 뱉어내는 거죠. 어떤 명확한 방법은 없습니다. 알고리즘 수업을 듣고 있는 거라면, 정렬하고, 컨벡스 헐 (Convex Hull) 계산하거나 RSA 암호화하거나 하는, 어떤 알고리즘을 작성할 수 있을 겁니다. 이걸 하기 위해서, 일어나야 하는 여러 단계를 나열하죠. 물체를 인식하기 위해서, 혹은 고양이나 이미지를 인식하기 위해서는 명확한 명시적 알고리즘이 없습니다. 이런 직관적인 감각을 만드는 혹은 어떻게 이런 객체를 인식할지에 대한 알고리즘은 없죠. 이게 챌린징한데, 만약 처음 프로그램밍하는 날, 이런 펑션을 써야 한다면 대부분..