본문 바로가기

AI44

순환 신경망(Recurrent Neural Network)이란? 더보기 순환 신경망(Recurrent Neural Network)의 구조와 작동 방식에 대해 알아보자 순환 신경망(Recurrent Neural Network, RNN)이란? 입력과 출력을 시퀀스 단위(연속형 데이터)로 처리하기 위해 고안된 신경망 시퀀스 모델이다. 연속형 데이터(Sequentail Data)의 의미는 어떠한 순서로 오는지에 따라 단위 의미가 달라지는 데이터를 의미한다. 시퀀스 단위로 처리되는 것의 예로 연속적인 주가 흐름, 구글 번역기 긴 문장 등의 예가 있다. 그렇다면 RNN은 어떤 구조를 가졌기에 연속형 데이터를 처리할 수 있는 것일까? 왼쪽에 위치한 이미지의 3가지 화살표를 보면 다음의 의미와 같다 입력 벡터(Xt)가 은닉층에 들어가는 것을 나타내는 화살표 (Whx) 은닉층(ht).. 2022. 5. 13.
언어 모델(Language Model),통계적 언어 모델(Statistical Language Model, SLM)이란? 언어 모델에 대해 이해하고, 통계 기반 언어모델의 한계점을 알아보자. 언어 모델(Language Model)이란? 문장과 같은 단어 *시퀀스에서 각 단어에 확률을 할당하여 컴퓨터가 처리를 할 수 있도록 하는 모델이다. 단어 시퀀스에 확률을 할당한다는 말의 의미를 이해하기 위해 예시를 들어보겠다. 어머니가 차려주신 저녁을 P(맛있게 먹었다.) | P(맛있게 하였다.) 위 예시에서 문맥에 맞는 문장은 왼쪽 문장이며 이에 왼쪽 문장에 높은 확률을 할당할 것이다 쉽게 말해 언어 모델은 기존의 데이터셋을 바탕으로 주어진 작업의 단어나 문장을 예측하는 작업을 의미한다. *시퀀스(sequence): 연속적인 사건이나 순서 통계적 언어 모델(Statistical Language Model, SLM)이란? 통계적 언어.. 2022. 5. 13.
Word2Vec(Word to Vector)란 무엇일까? Word2Vec이란? 말 그대로 Word(단어)를 to(2) Vector(벡터)로 나타내는 것 가장 널리 사용되고있는 *임베딩 방법중의 하나이다. 특정 단어 양 옆에 있는 두 단어의 관계를 활용하기 때문에 *분포가설을 잘 반영하고 있다. CBoW(Continuous Bag-of-Words) 방식과 Skip-gram 방식이 있으며 아래 그림으로 쉽게 차이를 볼 수 있다. 두 방식에 대해 알아보기 전, 두 모델에서 등장하는 개념인 윈도우(window)를 이해해야 하는데 단어를 중심으로 앞, 뒤에서 몇 개 의 단어를 살펴볼 것인지(어떤 문맥 단어로 둘 것인지)를 정해주는 것, 그 범위를 윈도우라고 한다. *임베딩 : 사람이 쓰는 자연어를 기계가 이해할 수 있는 숫자인 벡터로 나타내는 결과나 과정을 의미한다. .. 2022. 5. 11.
원-핫 인코딩(One-Hot Encoding) 이란? 원-핫 인코딩(One-Hot Encoding)이란? 컴퓨터가 이해하기 쉽도록 자연어 처리를 위한 하나의 기법인 원핫 인코딩은 단어들의 크기를 벡터의 차원으로하고 표현하고 싶은 단어의 인덱스에 1을 부여하고, 다른 인데스에 0을 부여하여 단어를 벡터로 표현하는 방식(원-핫 벡터)이다. 원핫인코딩은 간단한 방법이지만 단어들 간 유사도도 구하기 어렵다(무조건 0이나온다) 라는 단점이 있다. 때문에 단어간 유사도를 구할 때에는 코사인 유사도를 사용한다. 또한 표현해야할 단어의 개수가 늘어날 수록, 벡터를 저장하기 위해 필요한 공간이 늘어난다(차원이 증가한다)라는 단점이 있기에 저장 공간 측면에서는 굉장이 비효율적이다. 때문에 word2vec을 이용한다. 아래의 예시를 보고 이해하자 2022. 5. 6.
자연어 처리(Natural Language Processing)와 토큰화(tokenization)란? 자연어(NLP: Natural Language Processing)란? 자연어는 사람들이 일상적으로 사용하는 언어(자연어)와 인공적으로 만들어진 인공어와 구분하여 부르기 위한 개념이다. 자연어를 통해선 다양한 일을 할 수 있는데 분류, 추론, 독해, 질의 응답, 품사 태깅, 개체명 인식..등이 있다 이러한 용어들을 자연어 이해(Natural Language Understanding)라고 하며 자연어 이해를 통해 만들어진 결과물을 자연어 생성(Natural Language Generation)이라 한다. 자연어 처리에서 크롤링 등으로 얻어낸 데이터가 필요에 맞지않게 전처리가 안된 상태라면 데이터를 사용하고자 하는 용도에 맞춰 토큰화, 정제화, 정규화 작업이 필요하다. 간단한 용어 몇 가지들을 정리해보자 말.. 2022. 5. 4.
경사하강법(Gradient Descent)이란? 경사하강법(Gradient Descent)이란 무엇일까? 신경망의 학습을 위해선 손실을 줄여나가야 하는데 이때 손실함수 J가 함수의 미분값을 계산하고 있을때 기울기가 완만해질수 있도록 (즉 경사가 낮아지는) 가중치를 변경하는 방법이다. 간단하게 말해 함수의 기울기를 이용하여 함수 값이 낮아지는 방향으로 독립 변수의 값을 변형시켜가면서 최종적으로 최소 함수 값을 갖도록 하는 독립 변수의 값을 찾는 방법이다. 좋은 예시로 시야가 안보일때 산에서 내려오기 위하여 산의 기울기를 더듬으며 가장 아래로 갈 수 있는 방향을 찾는 방법이 예시이다. 산에서 내려가기 위해 오르막길을 선택하지는 않을 것이기 때문이다. *gradient를 한글로 번역하면 기울기이다. 왜, 언제 경사하강법을 사용할까? 함수의 최솟값을 찾기 위.. 2022. 4. 29.
신경망이 학습되어지는 메커니즘(순전파,역전파,경사하강법)이란? 신경망의 학습은 어떻게 이루어지는 걸까? 데이터가 입력이 되어지면 신경망의 각 층에서 가중치와 활성화 함수 연산을 반복적으로 수행한다.(*순전파) 위에 계산된 과정들을 반복한 후 출력 층에서 계산되어진 값을 출력한다. 손실 함수를 사용하여 예측값과 실제값의 차이를 계산한다. *경사하강법과 *역전파를 통해서 각 가중치를 갱신한다 위 과정을 원하는 값이 나올 때 까지 반복한다. *순전파(Forward Propagation)란? 뉴럴 모델에서 입력층부터 은닉층, 출력층까지 순서대로 변수들을 계산하고 값을 내보내는 과정을 의미한다. *손실 함수란(Loss function)? 신경망은 손실 함수를 최소화 하는 방향으로 가중치를 갱신하는데 입력 데이터를 신경망에 넣어 순전파를 거쳐 출력층을 통과 한 값이 도출이 되.. 2022. 4. 29.
인공 신경망(Artificial Neural Networks)이란? 인공 신경망(ANN: Artificial Neural Networks)이란 입력층(input layer) 데이터 셋이 입력되는 층이며 입력되는 데이터셋의 특성에 때라 입력층의 노드의 개수가 결정된다. 은닉층(hidden layer) 입력층으로부터 입력된 신호가 가중치, 편향과 연산이 되어지는 층을 의미한다. 계산의 결과를 사용자가 볼 수 없기에 이름이 은닉층으로 불리우며 데이터 셋의 특성 수와 상관없이 노드 수를 구성할 수 있다. 출력층(output layer) 은닉층의 연산을 마친 값이 출력되어지는 층이다. 이진분류,다중분류,회귀 분류 등으로 구성되어진다. 2022. 4. 27.