stanford
-
[cs224n] 2강 워드 벡터와 워드 센스 (4/5, 글로브와 평가 (GloVe, evaluation))AI 2021. 1. 17. 21:01
여기 우리의 목표함수가 있는데, 약간 더 복잡하게 됐죠. 본질적으로, 우리가 얘기하고 싶은 것은, 여기 제곱된 손실이 있고, 내적은 동시발생 확률의 로그와 가능한 비슷해야 한다는 겁니다. 그것들이 같지 않은 것 만큼의 손실이 있을 겁니다. 그러나 우리는 두 단어 모두에 대해서 바이어스 항을 넣어서, 약간 더 복잡하게 했는데요. 왜냐면 단어는 전체적으로 흔하고 다른 것과 같이 나타날 수 있기 때문이고 혹은 흔하지 않고 나타나지 않을 수도 있죠. 우리는 하나의 트릭을 더 할 건데, 왜냐면 모두 트릭을 써서 성능을 개선하니까요. 앞쪽에 f 함수를 사용해서 우리는 매우 자주 나타나는 단어 쌍이 시스템에 미치는 영향을 제한 (capping)하죠. 이것이 단어 벡터의 글로브 (GloVe) 모델을 제공합니다. 이론적..
-
[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장의 슬라이드가 있습니다. 우리는 최소화하고 싶은 비용함수를 가지고 있고, 우리의 워드 벡터에 대해서 미분을 해서 비용함수의 경사를 계산했죠. 우리의 변수는 쎄타 (θ)였고, 우리가 하고 싶은 건, 우리가 작은 걸음으로 음의 경사 방향으로 걸어가면서, 이 공간의 언덕을 따라 내려가는 것이었습니다. 그걸 계속해서 우리 공간의 최소값으로 나아가고 싶죠. 물론 높은 차원의 공간에서는 이런 부드..
-
[cs224n] 2강 워드 벡터와 워드 센스 (1/5, 워드 벡터와 워드2벡 (word vector, word2vec))AI 2021. 1. 16. 15:31
지난 시간 끝날때, 파이썬 노트북으로 워드 벡터를 할 수 있는 걸 보여줬죠. 시간이 모자랐는데요. 마지막 부분을 먼저 몇 분 더 보겠습니다. GloVe 워드 벡터를 더 얘기해 보죠. 벡터 공간에서 기본적인 유사성을 보여주는 결과들이 있어서 비슷한 단어 찾기에 유용하죠. 더 깊고 심오한 방법으로 의미를 잡아내기도 합니다. 공간속에 어떤 의미를 갖는 지점으로 가리키는 방향이 있고, 그래서, 어떤 방향을 가리키면, 이게 그 경우고, 다른 방향을 가리키면, 이건 그 나라의 수도라는 등 여러 다른 의미들이 이 공간에서 인코딩 될 수 있다는 거죠. 이 비유 (analogy)를 테스트 방법으로사용하는 건데요. 아이디어는 쌍으로 된 단어들을 사용해서요. 왕과 남자 같은거죠. 왕의 벡터가 있고, 남자 벡터가 있다면, 우..
-
[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 데이타셋에 대해 얘기했는데, 위 그림 왼쪽 위에 보이는 예를 볼..