AI
-
[cs231n] 4강 역전파와 신경망 (4/4, 신경망, neural network)AI 2021. 2. 5. 19:46
마침내 신경망에 대해 얘기할겁니다. 사람들은 신경망과 뇌 사이의 비유나 그리고 여러 종류의 생물학적 영감을 이끌어 냈습니다. 그걸 잠깐 보겠지만, 그러나 먼저 그걸 그냥 함수로 보죠. 뇌와 관련된 것은 빼구요. 지금까지 우리는 이런 선형 함수로 많이 작업 했습니다. f는 W 곱하기 x죠. 우리는 이것을 우리가 최적화하고자 하는 함수의 예로 사용했구요. 여러분의 변형 (transformation)에서 이 하나를 사용하는 대신, 신경망을 사용하고 싶다면, 간단한 형태로, 우린 이 두 개를 쌓을 수 있죠. 다른 하나 위에 선형 변형을 얹어서 2개의 계층 (layer)으로 된 신경망을 얻는 거죠. 그래서 이건 우선 W1과 x를 행렬 곱셈하는 거고, 그럼 우리는 중간값을 얻고 0과 W의 최대값 (max of 0 ..
-
[cs231n] 4강 역전파와 신경망 (3/4, 역전파 패턴, 벡터, 모듈화, backpropagation pattern, vector, modularization)AI 2021. 2. 5. 18:43
무슨 일이 벌어지는 지 보면, 우리는 우리의 계산 그래프를 거꾸로 흐르는 이 경사를 취하고 있는데요. 여기에 눈치챌 수 있는 어떤 패턴이 있습니다. 그것으로 우리는 어떤 직관적인 해석을 할 수 있는데요. 우리는 더하기 게이트가 경사 배분기라는 걸 봤습니다. 우리가 더하기 노드를 통과하면 2개의 가지가 있고, 업스트림 경사를 받아 들여서 연결된 2개의 가지에 똑같은 값을 통과시켜서 배분하죠. 생각해 볼 게 더 있는데요. 맥스 (max) 게이트는 어떤가요? 아래쪽에 맥스 게이트가 있는데요. 입력은 z와 w고 z는 2, w는 -1이죠. 우리는 그 둘 중 최대를 취하니까 2고 그걸 우리의 계산 그래프의 나머지 부분으로 전달 시킵니다. 그래서 이것에 대한 경사를 취하면, 업스트림 경사는, 예를 들어 2가 돌아오고..
-
[cs231n] 4강 역전파와 신경망 (2/4, 역전파 심화, advanced backpropagation)AI 2021. 2. 5. 17:47
이제 다른 예를 해보죠. 이번엔 좀 더 복잡한데요, 왜 역전파가 유용한 지 볼 수 있을 겁니다. 이 경우에는 우리의 W와 x의 함수 f는 1 / ( 1 + e^-(w0x0 + w1x1 + w2)이죠. 우리의 첫번째 단계는 항상 이걸 계산 그래프로 그리는 거죠. 이 경우에는 이 그래프에서 먼저 w와 x항을 곱합니다. w0과 x0을 w1과 x1을 곱하고 그리고 w2를 다 함께 더하죠. 그다음 -1배를 하고 그다음 지수화하고 1을 더하고 이 전체 항을 1로 나눕니다. 그다음 우린 모든 값들을 채워 넣었습니다. 여기 x들과 w들에 주어진 값에 대해서 우리는 순방향 패스 (forward pass)를 할 수 있습니다. 그리고 사실상 계산의 각 단계에서 값이 무엇인지 계산할 수 있습니다. 여기 아래쪽에 앞으로 도움이..
-
[cs231n] 4강 역전파와 신경망 (1/4, 역전파, backpropagation)AI 2021. 2. 5. 15:31
오늘은 역전파와 신경망에 대해 얘기해 보겠습니다. 이제 이 강의의 핵심 내용에 접근합니다. 지금까지 우리는 어떻게 분류기를 정의하는지 얘기했죠. 가중치 W로 파라미터 된 함수 f를 사용해서요. 이 함수 f는 데이타 x를 입력으로 받아서 여러분이 분류하고 싶은 각각의 클래스에 대한 점수의 벡터를 출력합니다. 여기서부터 우리는 손실함수를 정의할 수 있는데, 예를 들면, 얘기했던 SVM (support vector machine) 손실 함수죠. 기본적으로 우리가 생성해 낸 점수에 얼마나 행복한 지 안행복한 지를 정량화합니다. 우린 그것을 사용해서 전체 손실 항을 정의합니다. 여기 L인데, 정규화항과 합쳐진 데이타 항과의 조합이죠. 정규화항은 우리의 모델이 얼마나 간단한지를 표현하는거죠. 우리는 일반화를 더 잘..
-
[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)이라고 불리는 의존성 문법 파싱을 볼 거구요. 그다음 어떻게 신경망 의존성 파서를 만들 수 있는지에 대해 얘기하죠. 문장의 구조에 대해서 얘기해 보죠. 인간의 언어로 된 문장 구조를 얘기할 거고 사람들이 그 구조를 어떻게 생각하는 지에 대해서 얘기합니다. 그리고 자연어처리를 하는 사람들이 어떤 목표를 가지고 있는지에 대해서 얘기해 보죠. 그건, 문장의 구조를 이해할 수 있는 구조를 만드는 건데요. 오늘 제..