CNN CNN이란 Convolution Neural Network로 동물의 시각 신경망을 본 따 만들었다. CNN을 구성하는 가장 중요한 요소로는 Filter와 Convolution 연산이 있다. Filter(=kernel) Filter는 입력 데이터로부터 우리가 원하는 특징 또는 패턴 들만 통과하도록 설계하는 도구로 예전에는 filter 값을 지정하여 사용하였으나 최근에는 weight로 학습을 통해 얻어낸다. CNN의 경우 동물이 사물을 인식하는 방법과 같이 겹겹이 층으로 쌓여 있으며 Convolution과 Pooling으로 이뤄져 있다. Convolution Convolution이란 합성곱으로 하나의 함수와 또 다른 함수를 반전 이동한 값을 곱한 다음 구간에 대해 적분하여 새로운 함수를 구하는 수학 ..
Background RNN은 순차적 데이터를 처리하기 위해 만들어졌지만 input의 길이가 길어지면 이전에 일어난 사건을 바탕으로 나중에 일어나는 사건을 생각하지 못한다. LSTM(Long Short-Term Memory) 파란선이 기존의 RNN이고 주황선이 Memory cell로 LSTM에서 추가된 부분이다. Memory cell은 gate에 의해서 제어되며 정보를 저장하거나 잊어버리는 용도로 사용된다. 3개의 gate로 이루어져 있음 Ct(Cell State 장기상태), ht(Hidden State) 등이 존재함 Forget gate \( C_{t-1} \)의 정보를 얼마나 잊을지에 관한 관계 sigmoid 값이 0에 가까우면 이전 상태의 정보를 잊고, 1에 가까우면 이전 상태의 정보를 기억함 Inp..
순차 데이터 (Sequential Data) 데이터 집합 내의 객체들이 어떤 순서를 가지고 있는 데이터 데이터들의 순서에 따라 해당 데이터의 의미가 달라짐 가변적인 데이터의 길이를 가짐 순서가 달라질 경우 의미가 손상됨 Temporal Sequence 시간에 민감한 데이터 유효기간이나 트랜잭션 시간 등 시간 표시기와 함께 데이터가 저장됨 Time Series 일정한 시간차를 가진 데이터 시간 경과에 따라 변화하는 데이터로 타임스탬프와 함께 데이터가 저장됨 심층 신경망 & 순차 데이터 Input으로 음성 데이터가 들어왔을 때 입력되는 음성의 길이가 매번 다른 문제가 발생한다. Output의 경우 변역 결과가 될 수 있는 문장이 많기 때문에 one hot vector로 예측하기 힘듦 -> 심층 신경망으로 순..
코퍼스(Corpus) 코퍼스는 말뭉치로 자연언어 연구를 위해 특정한 목적을 가지고 언어의 표본을 추출한 집합이다. 글 또는 말 텍스트를 모아 놓은 것 둘 이상의 코퍼스가 존재하면 코포라(Corpora)라고 부름 구성된 언어를 기준으로 단일 언어 코퍼스, 이중 언어 코퍼스(한글, 영어), 다국어 코퍼스(번역)로 나눌 수 있음 필요 이유 코퍼스를 통해 자연어에 대한 빈도 분포, 단어의 동시 발생 등과 같은 통계적인 분석 가능 다양한 자연어처리 과정에서 자연어 데이터에 대한 언어 규칙을 정의하고 검증할 수 있음 ex) 사투리의 규칙 규칙 기반 시스템의 도움으로 언어에 따라 각 언어에 대한 언어 규칙을 정의할 수 있게 함 수집 오픈소스 코퍼스 다양한 웹사이트에서 크롤링하여 데이터 수집 저작권 문제, 트래픽 문제..
자연어 자연어랑 인공 언어(C, C++, FORTRAN)와는 다르게 어법이 정해진 규칙만을 따르지 않고 일상적으로 사용되는 언어의 구조적인 체계를 말함 일상적으로 듣고 쓰고 말하고 읽는 모든 언어 인간으로서 우리는 언어를 통해 생각이나 감정을 표현함 자연어 처리 NLP NLP(Natural Language Processing)이란 인공지능의 한 분야로, 사람의 언어 현상(자연어)을 컴퓨터와 같은 기계(인공언어)를 사용해 다루는 작업 NLP의 목적은 컴퓨터가 사람의 언어를 이해하고 여러 가지 문제를 해결할 수 있도록 하는 것이다. 자연어 분석 과정 자연어 데이터를 준비한 후 다음 과정을 통해 처리함 자연어 데이터는 음성, 문서, 이미지 등 다양하게 존재함 자연어 처리 자연어 데이터 숫자 형태 변환 자연어 ..
Seq2seq seq2seq 모델은 인코더 디코더 구조를 사용하고 RNN보다 번역 성능에서 우수한 성능을 보여주었다. 그러나 입력 시퀀스를 하나의 고정된 크기의 벡터로 압축하면서 정보손실이 발생한다는 한계점이 존재한다. 더 자세히는 encoder의 마지막 노드에서 나온 시퀀스를 decoder에서 받기 때문에 정보의 손실이 일어날 수밖에 없다. Attention encoder에 매 time step으로부터 하나씩 벡터 표현을 추출하면서, 중요한 단어에 집중할 수 있도록 설계된 것이다. 모든 기억을 동등하게 기억하지 않고 연관성 있는 기억에 집중해서 기억하도록 구조화하는 방법을 사용함 출력 단어를 예측하는 시점에서 예측할 단어와 연관이 큰 단어를 더 집중해서 참고하는 모습을 볼 수 있다. 역할 encoder..