분류 전체보기 1095

seq2seq RNN

기계 번역 분야에서 매우 인기가 있었던 Sequence to Sequence 모델은 두 개의 RNN 즉 인코더와 디코더를 짝으로 구성된다. 인코더는 입력을 순차적으로 처리하고 모든 입력 데이터를 감안한 은닉층 벡터를 생성한다. 그 생성된 은닉층 데이터는 해당 컨텍스트를 사용하여 적절한 대상 시퀀스(번역, 챗봇의 응답)를 예측 학습하는 디코더로 전달된다. 중요 응용 분야는 다음과 같다. 기계 번역: 한 언어의 문장을 다른 언어로 번역 자동 용약: 긴 문장을 짧게 요약된 문장으로 변환 질의 응답: 질문을 응답으로 변환 메일 자동 응답: 수신한 이메일 문장을 답변 글로 변환 sequence는 RNN 이나 LSTM에서 일정한 길이를 가지는 데이터를 의미한다. 인코더의 역할은 특정 언어의 입력 데이터를 받아들여 ..

텍스트 생성(text generation) 알고리듬

LSTM을 사용하는 텍스트 즉 문장 생성의 원리에 대해서 살펴보자. “You say goodbye and I say hello.” 라는 단어장으로부터 학습하는 모델을 생각해보자. 이 절의 내용은 2022년 12월 베타버전이 오픈된 오늘날의 chatGPT3.5 버전의 기원이 될 수도 있는 중요한 알고리듬의 영역에 해당함에 유의하자. 그림과 같이 ‘I’가 입력 데이터일 때 출력을 ‘say’라는 단어 자체로 결정론적으로 학습시키는 것이 아니라 ‘say’라는 단어의 출현 확률로도 학습이 가능하다. 6.7절에서 사용했던 특정한 단어를 직접 지정하는 경우는 결정론적(deterministic) 방법에 해당한다, 이는 출현 단어의 확률 분포 측면에서 보면 해당 단어의 출현 확률이 1.0 이고 나머지는 모두 0.0 이 ..

Rnnlm 클라스를 사용 PTB 데이터세트 전체를 대상으로 학습시켜보자.

Time RNN 계층을 Time LSTM 계층으로 대체한 Rnnlm 클라스를 사용하여 PTB 데이터세트 전체에 대해 학습시켜보자. LSTM계층으로 변경함에 따라 하이퍼 파라메터 설정에 변동이 큼에 유의하자. Rnnlm 클라스는 SimpleRnnlm 클라스와 거의 동일하지만 몇가지 메서드들이 추가되었다. save_params, load_params 메서드들은 가중치와 기울기 데이터를 피클링하여 저장하거나 부를 때 사용된다. 아우러 predict 메서드는 다음 절의 text generation에서 사용된다. 참조: 밑바닥부터 시작하는 딥러닝 2, 6장 perplexity 계산 결과 첨부된 Colab 파일을 다운받아 반드시 GPU 사용 설정 후에 실행해보자. (실행시간 27분)

Simple Rnnlm 클라스를 사용한 학습에 관해서 살펴보자

그림에서처럼 상류방향으로 4개의 Time 계층으로 이루어지는 SimpleRnnlm 클라스를 사용하여 PTB 데이터를 학습시키자. PTB 데이터 전체를 학습시키기에는 코드 효율이 너무 떨어지므로 앞부분 1000개만 사용해서 학습을 시켜보도록 한다. 정답 레이블에 입력 데이터를 한자리씩 민 데이터를 준 상태에서 Corpus 수를 제한하여 softmax를 적용한다. 원리적인 측면에서 알고리듬 이해에 도움을 줄 수 있는 예제이지 실전에서 사용하기에는 컴퓨팅 부담이 큰 알고리듬이다. Time 계층의 입혁을 위해 batch_size = 2 를 사용하면 500개씩 배치를 형성하여 입력하도록 한다. batch =2 일 때 마지막 1000번째는 제외시키고 다시 첫 번쩨 데이터를 입력 처리하자. Time 계층을 구성하는 ..

word2vec 알고리듬 CBOW 모델의 PTB(Pen Treebank) 데이터 세트 적용

제법 방대한 규모의 PTB 데이터 세트를 사용해서 참조의 179페이지 4.3.2 CBOW 모델 학습 코드를 적용해 보자. GPU가 없는 PC에서 실행해 보면 무려 160분 연산 시간이 소요되며 연산 결과는 binary 파일 형태로 cbow_params.pkl 즉 피클 형태 파일로 저장된다. 대략 7배 정도 가속이 가능한 GPU 지원이 있어도 반나절 가량의 컴퓨팅이 필요하다. 따라서 컴퓨팅이 완료된 즉 사전학습된 binary 형태의 결과물을 피클링 파일로 저장했다가 불러 쓰는 것이 편리하다. 피클링 파일에 저장되어있는 내용물은 word_vecs, word_to_id, id_to_word 이다. 181페이지 4.3.3 CBOW 모델평가 코드를 불러서 활용해보자. query(탐색) 할 단어들을 지정해 입력하여..

negative sampling 알고리듬

은닉층과 크기가 (100, 1000000)인 Wout과의 매트릭스 곱셈 연산을 통해 softmax 처리가 가능하도록 하기 위해서는 엄청난 규모의 컴퓨팅이 요구된다. 따라서 그런 과중한 연산을 줄일 수 있도록 학습 과정에서 softmax를 사용하는 다중분류에서 Sigmoid 우도(likelyhood) 함수를 사용하는 이진 분류방식으로 처리하도록 알고리듬을 수정하자. 즉 입력이 {you, goodbye}이면 학습은 {say}인가? 아닌가? 로 처리하도록 한다. 즉 긍정적 정답 레이블인 {say} 하나가 있을 수 있지만 동시에 {say}가 아닌 부정적인 정답 레이블들에 대해서도 다할 수는 없지만 일정 수만큼 학습 처리해야 한다. 예를 들자면 {hello}, {.}, {and}, {I}들로서 이들은 라벨 값 ”..

PMI (pointwise mutual information) 척도를 사용한 통계적 기법 개선

동시발생 행렬에서의 동시발생은 하나의 단어를 두고 인접한 위치에서 특정 단어가 출현한 횟수를 나타낸다. 하지만 빈도수가 높다고 해서 그 단어의 중요성이 높아지는 것은 아니다. 예를 들어 보자. ‘the’와 ‘car’ 는 자주 동시 발생 한다. 한편 ‘car’와 ‘drive’는 관련성이 확실히 높다. 그렇지만 단순히 출현횟수만 따진다면 ‘car’와 ‘drive’ 보다는 ‘the’와 ‘car’가 더 높을 것이다. 이 문제 해결을 위해서 PMI(pointwise mutual information) 척도를 새로이 도입하자. P(x)는 x가 일어날 확률, P(y)는 y가 일어날 확률, P(x, y)는 x와 y가 동시에 일어날 확률을 의미한다. 이 PMI 값이 높을수록 관련성이 높다는 의미이다. 동시발생 행렬을 사..

분포가설(distributional hypothesis)기반 통계적 자연어 처리 기법

자연어 처리는 컴퓨터 사이언스 및 언어학 또는 통계학 과의 학문간 제휴 영역에 해당한다. 언어학에서 모든 단어를 포함하는 사전(dictionary)이 있고, 한편 학습 대상 단어 위주로만 편집한 단어장(corpus) 가 있을 수 있다. 한편 인공지능을 만들기 위한 학습해야 할 텍스트가 너무 많아서 단어장 규모가 방대해지는 문제가 있어, 그 해결책을 찾아 보도록 하자. John Firth 교수가 언급했던 “the company a word keeps!“에 주목하자. 특정 단어의 사전적 의미보다는 인접한 단어들의 배치에 의해 ‘context’ 즉 문장의 ‘맥락’을 형성한다는 것이다. 이 맥락을 해석해 보기 위해서 간단한 문장을 대상으로 단어장(corpus)과 단어별 색인, 색인별 단어를 얻어낼 수 있도록 p..

⦁ 제 1차 아두이노 무선 RC카 제작 경진대회 11월 개최 완료

날짜 : 2022.11.14 ~ 25 장소 : 공학관 1층 컴퓨터실 등록인원 : 21명 수료 : 18명 제 : 지식재산기반 인공지능 교육 워크숍 ⓵ 특허 개론 : 오환섭 교수 ⓶아두이노 무선조종 RC카 제작 및 경진대회 지도: 참여교수 이응재 개최사: 공학 전공자를 대상으로 특허 전반에 대한 인식을 고취하고자 하는 본 워크숍의 목적과 아울러 참여자의 과학적 흥미를 바탕으로 블루투스 무선조종이 가능한 아두이노 RC 제작을 통해 C 코드와 앱인벤터 코딩을 짧은 학습시간 내에 속성마스터함으로서 빠르게 인공지능화 되어가는 사회 추세에 진입 적응할 수 있는 계기를 마련하고자 한다. 경희대학교 기계공학과 명예교수 오 환섭 교육일정 기간 내용 11월 14 ~15일 오후 6:30 ~ 8:30 ⦁지식재산기반 인공지능 교..

외부초청강연 2023.01.30