목록분류 전체보기 (214)
NIRVANA
언어 모델을 사용한 문장 생성 RNN을 사용한 문장 생성의 순서 "I"라는 단어를 주었을 때, 다음 단어를 생성하는 방법 확률이 가장 높은 단어를 선택 확률이 가장 높은 단어를 선택할 뿐 → 결과가 일정하게 정해지는 '결정적' 방법이 될 것 확률적으로 선택하는 방법 각 후보 단어의 확률에 맞게 선택 → 선택되는 단어가 매번 다를 수 있음 필연적이지 않고, '확률적'으로 결정됨을 주의 = 다른 단어들도 해당 단어의 출현 확률에 따라 정해진 비율만큼 샘플링될 가능성이 있다는 뜻 종결 기호가 나오기 전까지 반복하다 보면, 새로운 문장을 생성할 수 있게 됨 문장 생성 구현 import sys sys.path.append('..') import numpy as np from common.functions impo..
RNN의 문제점 앞 장에서 설명한 RNN은 시계열 데이터의 장기 의존 관계를 학습하기 어려움 BPTT에서 기울기 소실 혹은 기울기 폭발이 발생하기 때문 RNN 복습 기울기 소실 또는 기울기 폭발 Tom was watching TV in his room. Mary came into the room. Mary said hi to [ ? ] RNNLM이 위의 문제에 올바르게 답하기 위해서는 현재 맥락에서 톰이 TV를 보고 있음과 그 방에 마리가 들어옴이란 정보를 기억해둬야 함 정답 레이블이 톰임을 학습 할 때, 중요한 것은 RNN 계층의 존재 → RNN 계층이 과거 방향으로 '의미 있는 기울기'를 전달함으로써 시간 방향의 의존 관계를 학습하게 됨 기울기는 학습해야 할 의미가 있는 정보가 들어 있고, 그것을 과..
@GetMapping 활용 @GetMapping("/member") pubilc String getMember(@RequestParam("empNo") String empNo) { //사번을 받아오기 위함 log.info("empNo: {}", empNo); return "ok"; } @GetMapping("/member") public String getNumber(@RequestParam("empNo") String empNo, @RequestParam("year") int year){ log.info("empNo: {}", empNo); return "ok"; } @GetMapping("/company/{id}") public String getCompany(@PathVariable("id") St..
확률과 언어 모델 언어 모델 단어 나열에 확률을 부여 → 특정한 단어의 시퀀스에 대해, 그 시퀀스가 일어날 가능성이 어느 정도인지를 확률로 평가하는 것 기계 번역, 음성인식, 새로운 문장 생성 등에 사용 가능 CBOW 모델을 언어 모델로? 맥락의 크기가 고정되게 될 경우, 정해진 맥락보다 왼쪽에 있든 단어들의 정보는 무시 되어진다는 문제가 존재한다. → RNN을 사용하여 문제 해결 가능 RNN은 맥락이 아무리 길더라도 그 맥락 정보를 기억하는 메커니즘을 가지고 있음 RNN을 사용하면 아무리 긴 시계열 데이터라도 대응 가능 RNN이란 순환하는 신경망 순환: 어느 한 지점에서 시작한 것이, 시간을 지나 다시 원래 장소로돌아오는 것, 그리고 이 과정을 반복하는 것 순환을 하기 위해서는 '닫힌 경로'가 필요함 ..
word2vec 개선① 어휘가 100만개, 은닉층의 뉴런이 100개인 CBOW 모델의 경우 입력층과 출력층에는 각100만 개의 뉴런이 존재함 → 수 많은 뉴런 때문에 중간 계산에 많은 시간이 소요됨 계산 병목이 발생하는 두 부분 입력층의 원핫 표현과 가중치 행렬 W_in의 곱 계산 은닉층과 가중치 행렬 W_out의 곱 및 softmax 계층의 계산 ① 입력층의 원핫 표현과 관련된 문제 - 단어를 원핫 표현으로 다루기 때문에 어휘 수가 많아지면 원핫 표현의 벡터 크기도 커지게 됨 - 원핫 벡터와 가중치 행렬 W_in을 곱해야 하는데, 이것 만으로도 계산 자원을 상당히 사용하게 됨 → 해당 문제는 4.1절에서 Embedding 계층을 도입하는 것으로 해결 ② 은닉층 이후의 계산 문제 - 은닉층과 가중치 행렬..
추론 기반 기법과 신경망 단어를 벡터로 표현하는 방법 1. 통계 기반 기법 2. 추론 기반 기법 통계 기반 기법의 문제점 통계 기반 기법에서는 주변 단어의 빈도를 기초로 단어를 표현함 단어의 동시 발생 행렬을 만들고, 그 행렬에 SVD를 적용하여 밀집 벡터를 얻음 통계 기반 기법은 학습 데이터를 한꺼번에 처리(배치 학습) 대규모 말뭉치를 다룰 때 문제가 발생함 → 거대한 행렬에 SVD 적용에 어려움이 존재 SVD를 nxn행렬에 적용하는 비용은 O(n^3) 추론 기반 기법 개요 학습 데이터의 일부를 사용하여 순차적으로 학습을 진행함 데이터 양이 적으므로 말뭉치의 어휘 수가 많아 SVD 등 계산량이 큰 작업을 처리하기 어려운 경우에도 신경망을 학습 시킬 수 있음 여러 머신과 여러 GPU를 이용한 병렬 계산도..