cs224n
-
[cs224n] 5강 의존성 파싱 (4/4, 신경 의존성 파싱 (neural dependency parsing))AI 2021. 1. 27. 19:36
이제 설명하고 싶은건 신경 의존성 파서입니다 . 왜 그것들이 동기부여가 되었는지도요. 이전의 모델은 이런 지시자 피쳐 (indicative features)가 있는데, 스택의 탑은 'good'이라는 단어고, 두번째 단어는 동사 'has'였죠. 스택의 탑의 단어는 어떤 다른 단어고 탑의 두번째는 그 문장의 다른 부분이고, 그 부분은 이미 다른 부분의 의존성으로 연결되었구요. 사람들은 이 피쳐들을 핸드 엔지니어 (hand engineer)했죠. 거기서 문제는, 이 피처들이 매우 성기다 (sparse)는 겁니다. 이 피쳐들이 매칭되는 게 매우 적어요. 그들은 몇몇 구성들과 매칭되지만 다른 피처들은 불완전하기 마련이죠. 그들은 흔히 수 백만개의 피쳐들입니다. 스택과 버퍼에 어떤 구성을 갖기 위해서는 이 피쳐들을..
-
[cs224n] 5강 의존성 파싱 (3/4, 전이 기반 파싱 (transition-based parsing))AI 2021. 1. 27. 17:29
이것이 파싱에 대한 개념이었죠. 와킴 니브르 (Nivre), 이 사람에 의해서 인기가 많아 졌는데, 스웨덴의 컴퓨터 언어학자였죠. 여러분이 하는 작업은 쉬프트 리듀스트 (shift-reduced) 파싱에 영감을 받은 겁니다. 컴파일러 수업 같은 곳에서 쉬프트 리듀스트 파싱을 봤을 겁니다. 이건 일종의 쉬프트 리듀스트 파서인데, 우리가 언제 리듀스트 해야 할지와는 별개로, 우리는 컨스티튜언트 대신 의존성을 만듭니다. 이건 매우 기술적인 설명을 많이 가지고 있는데, 봐 봤자 쉬프트 리듀스트 파서가 뭘 하는지 이해하는 데 별 도움이 안되서 넘어가겠습니다. 여기 전이 기반 쉬프트 리듀스트 파서에 대한 형식적인 설명이 있습니다. 이것도 별 도움이 안됩니다. 대신 우린 이 예를 보겠습니다. 이게 도움이 되길 바랍니..
-
[cs224n] 5강 의존성 파싱 (2/4, 의존성 문법과 구조 (dependency grammar and structure))AI 2021. 1. 27. 15:35
그것으로 하고 싶은 전체적인 것은 이 의존성 문법입니다. 의존성 문법을 좀 보여줬는데요. 우리가 의존성 문법에 대해 좀 동기부여되길 바랬습니다. 의존성 문법은 무엇이 구문적 구조인지, 그것이 렉시컬 (lexical) 항목들간의 관계인지를 상정합니다. 여기서 우리가 화살표로 그린 바이너리 대칭적 관계인지에 대해서도요. 그들은 바이너리이고 대칭적이니까요. 우리는 그걸 의존성이라고 부르죠. 여기 2개의 방식이 있습니다. 그것들을 작성하는 흔히 사용되는 방식이죠. 하나의 방식은 여러분이 단어를 한 줄로 나열하고 그걸 만드는 겁니다. 여기 전체 문장을 보죠. 여러분은 그 위에 일종의 루핑 (looping)하는 화살표를 그리는 거죠. 다른 방식은 그걸 트리처럼 표현하는 겁니다. 거기서 여러분은 전체 문장의 헤드 (..
-
[cs224n] 5강 의존성 파싱 (1/4, 구문 구조 (phrase structure))AI 2021. 1. 26. 19:39
오늘은 먼저 사람 언어로 된 문장의 구조에 대해 설명하고 동기부여를 해보겠습니다. 일종의 20분짜리 언어학이죠. 그다음 특히 의존성 (dependency) 문법에 대해 집중해 보겠습니다. 그리고 의존성 구조로 작업하는 방법을 소개하겠습니다. 전이 (transition) 기반 의존성 파싱 (parsing)이라고 불리는 의존성 문법 파싱을 볼 거구요. 그다음 어떻게 신경망 의존성 파서를 만들 수 있는지에 대해 얘기하죠. 문장의 구조에 대해서 얘기해 보죠. 인간의 언어로 된 문장 구조를 얘기할 거고 사람들이 그 구조를 어떻게 생각하는 지에 대해서 얘기합니다. 그리고 자연어처리를 하는 사람들이 어떤 목표를 가지고 있는지에 대해서 얘기해 보죠. 그건, 문장의 구조를 이해할 수 있는 구조를 만드는 건데요. 오늘 제..
-
[cs224n] 2강 워드 벡터와 워드 센스 (5/5, 워드 센스 (Word Senses))AI 2021. 1. 18. 18:07
얘기하고 싶은게 2개 더 있네요 . 우리는 시작할 때 클린턴 문제가 있었죠. 클린턴이 여러 사람이라는 문제 말입니다. 여러분이 이름을 가지고 여러 사람을 언급하는 건 아마도 어떤 면에서는 단어가 애매해 질 수 있는 가장 간단한 예이죠. 사실 그건 이름에만 해당되지 않습니다. 대체로 인간 언어의 단어들은 애매하고 많은 의미를 가지는데, 흔히 쓰이는 단어에 특히 그렇고, 많은 의미가 있기 마련입니다. 오랫동안 존재했던 단어들이 그렇구요. 새로운 기술적 (technical)한 단어는 그렇지 않죠. 카서노마 (carcinoma)라는 단어는 하나의 의미가 있죠. 상대적으로 흔한 단어를 생각해 보면 그건 많은 의미가 있죠. 내가 고른 임의의 단어는 파이크 (pike)인데, 어쩌면 이게 그런 단어가 아닐 수도 있겠네..
-
[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장의 슬라이드가 있습니다. 우리는 최소화하고 싶은 비용함수를 가지고 있고, 우리의 워드 벡터에 대해서 미분을 해서 비용함수의 경사를 계산했죠. 우리의 변수는 쎄타 (θ)였고, 우리가 하고 싶은 건, 우리가 작은 걸음으로 음의 경사 방향으로 걸어가면서, 이 공간의 언덕을 따라 내려가는 것이었습니다. 그걸 계속해서 우리 공간의 최소값으로 나아가고 싶죠. 물론 높은 차원의 공간에서는 이런 부드..