예쁜기억저장소 2023. 3. 28. 15:02

-퍼셉트론

다수의 입력 신호를 받아 그 신호들의 총합이 임계값을 넘었을 때 1을 출력하고, 넘지 못했을 때 0 혹은 –1을 반환하는 알고리즘을 갖는 신경망.

 

-가중치

입력 신호가 결과에 주는 영향력을 조절해주는 변수

 

-활성화 함수

노드로 들어오는 입력 값에 대해 입력 값을 다음으로 전달할 만큼의 의미가 있는지 없는지 판단하여 넘길지 말지 결정해주는 함수. (sigmoid, ReLU)

 

-손실 함수

모델의 추론 결과와 실제 정답 간의 차이를 계산하는 함수, MSE(Mean Squared Error), 크로스엔트로피(Cross Entropy)

 

-기울기

딥러닝에서 기울기는 보통 가중치 값과 손실함수 값 간의 관계를 표현한 함수에서 손실함수 값의 최소 위치를 찾을 때 기울기가 0이 되는 부분이 최소이기 때문에 기울기를 사용한다

 

-옵티마이저

손실함수 값이 최소가 되는 부분을 찾기 위해 학습율과 기울기를 다양하게 수정하여 가중치를 변경시키는 것을 최적화라고 하고 최적화의 다양한 방식들을 옵티마이저라고 한다.(SGD, adam)

 

-경사하강법 (Gradient Descent)

추론 값과 정답 값의 차이를 나타내는 손실함수 값을 줄이기 위해 기울기 값이 낮은 쪽으로 움직이는 방식.

 

-오차 역전파(error Backpropagation)

추론 값과 정답 값의 차이를 나타내는 오차 정보를 다시 역으로 전달하여 가중치를 업데이트 하는 방식

 

-배치(Batch)

모델에 입력할 데이터의 단위 전체 트레이닝 데이터 셋을 여러 작은 그룹을 나누었을 때 batch size는 하나의 소그룹에 속하는 데이터 수 (전체 1000데이터에서 배치 사이즈를 50으로 하면 1epoch에 20 iteration)

 

-에폭(epoch)

모델에 전체 모든 데이터를 입력했을 때 1epoch

 

-iteration

1epoch을 마치는데 필요한 배치의 개수

 

-오버피팅(과적합, overfitting)

훈련 데이터에 과도하게 최적화되어 일반화 되지 못해 성능이 낮아지는 상태

 

-오버피팅을 막기 위한 방법

더 많은 훈련데이터를 모은다.

파라미터 개수가 적은 간단한 모델을 만든다

데이터 차원을 줄인다. 연산의 몇몇 뉴런을 누락시킨다

가중치를 규제해 모델 복잡도를 줄인다

 

 

 

-cnn(Convolutional Neural Network)

이미지의 공간 정보를 유지하면서 인접 이미지와의 특징을 효과적으로 인식하는 모델

 

- 합성곱(Convolution)

입력 데이터에 대해 일정 크기의 필터를 조금씩 움직이며 합성곱 연산을 하여 특징을 찾는다.

 

-필터, 커널(Filter, kernel)

이미지 특징을 찾기 위한 공용 파라미터 (대각선 추출 필터, 가로서 추출 필터)

 

-Stride

필터가 입력 데이터를 순회하는 간격 

 

-피처맵(Feature Map)

입력데이터에 필터를 통한 합성곱을 통해 나온 특징이 담긴 결과 값

 

-패딩(Padding)

Feature Map 크기는 입력데이터 보다 작습니다. Convolution 레이어의 출력 데이터가 줄어드는 것을 방지하는 방법이 패딩입니다. 패딩은 입력 데이터의 외각에 지정된 픽셀만큼 특정 값으로 채워 넣는 것을 의미합니다. 보통 패딩 값으로 0으로 채워 넣습니다.

 

-풀링(Pooling)

컨볼류션 레이어의 출력 데이터를 입력으로 받아서 출력 데이터(Activation Map)의 크기를 줄이거나 특정 데이터를 강조하는 용도로 사용됩니다. 플링 레이어를 처리하는 방법으로는 Max Pooling과 Average Pooning, Min Pooling이 있습니다. 정사각 행렬의 특정 영역 안에 값의 최댓값을 모으거나 특정 영역의 평균을 구하는 방식으로 동작합니다. 

 

 

 

 

 

-토큰화(Tokenization)

주어진 코퍼스(corpus)에서 토큰(token)이라 불리는 단위로 나누는 작업, 보통 의미있는 단위로 토큰을 정의(단어 토큰화, 문장 토큰화)

 

-표제어 추출(Lemmatization)

기본 사전형 단어를 찾아가는 과정 am, are, is의 표제어 be/ dies의 표제어 die

 

-어간 추출(Stemming)

어간 추출은 형태학적 분석을 단순화한 버전이라고 볼 수도 있고, 정해진 규칙만 보고 단어의 어미를 자르는 어림짐작의 작업이라고 볼 수도 있습니다. 다시 말해, 이 작업은 섬세한 작업이 아니기 때문에 어간 추출 후에 나오는 결과 단어는 사전에 존재하지 않는 단어일 수도 있습니다.

 

-불용어(Stopword)

데이터에서 유의미한 단어 토큰만을 선별하기 위해서는 큰 의미가 없는 단어 토큰을 제거하는 작업. I, my, me, over, 조사, 접미사 같은 단어들은 문장에서는 자주 등장하지만 실제 의미 분석을 하는데는 거의 기여하는 바가 없는 경우 

 

-원-핫 인코딩(One-Hot Encoding)

원-핫 인코딩은 단어 집합의 크기를 벡터의 차원으로 하고, 표현하고 싶은 단어의 인덱스에 1의 값을 부여하고, 다른 인덱스에는 0을 부여하는 단어의 벡터 표현 방식

 

-밀집 벡터(dense vector)

공간적 낭비를 불러일으키는 원핫 인코딩에 비해 밀집 시켜 공간 낭비를 줄이는 벡터, 단어를 밀집 벡터로 표현하면 워드 임베딩(word embedding)

 

-글로브(GloVe)

스탠포드에서 나온 모델로 같은 문장에 한 단어가 어떤 근처 단어들과 몇 번 같이 나오는지 세보는 모델

 

- 워드투벡터(Word2Vec)

단어간의 유사도를 계산한 모델 중 하나. 구글에서 나온 모델

 

-CBOW(Continuous Bag of Words)

워드투 벡터에서 주변에 있는 단어들을 가지고, 중간에 있는 단어들을 예측하는 방법

 

-Skip-gram

워드투 벡터에서 중심 단어에서 주변 단어를 예측합니다.

 

- 순환 신경망 RNN (Recurrent Neural Network)

RNN은 은닉층의 노드에서 활성화 함수를 통해 나온 결과값을 출력층 방향으로도 보내면서, 다시 은닉층 노드의 다음 계산의 입력으로 보내는 특징을 갖고 있습니다.

 

-장단기 메모리(Long Short-Term Memory, LSTM)

RNN의 시점(time step)이 길어질 수록 앞의 정보가 뒤로 충분히 전달되지 못하는 단점을 보완하기 위해 은닉층의 메모리 셀에 입력 게이트, 망각 게이트, 출력 게이트를 추가하여 불필요한 기억을 지우고, 기억해야할 것들을 정하는 특징, 셀 상태(cell state)라는 값에서 장기상태와 단기상태로 나뉨

 

-게이트 순환 유닛(Gated Recurrent Unit, GRU)

GRU는 LSTM의 장기 의존성 문제에 대한 해결책을 유지하면서, 은닉 상태를 업데이트하는 계산을 줄였습니다. 다시 말해서, GRU는 성능은 LSTM과 유사하면서 복잡했던 LSTM의 구조를 간단화 시켰습니다.

 

-시퀀스-투-시퀀스(Sequence-to-Sequence, seq2seq)

인코더와 디코더로 구성된 모델. 인코더는 입력 문장의 모든 단어들을 순차적으로 입력받은 뒤에 마지막에 이 모든 단어 정보들을 압축해서 하나의 벡터로 만드는데, 이를 컨텍스트 벡터(context vector)라고 합니다. 입력 문장의 정보가 하나의 컨텍스트 벡터로 모두 압축되면 인코더는 컨텍스트 벡터를 디코더로 전송합니다. 디코더는 컨텍스트 벡터를 받아서 번역된 단어를 한 개씩 순차적으로 출력합니다. 인코더 아키텍처와 디코더 아키텍처의 내부는 두 개의 RNN 아키텍처로 구성됨 이 때 바닐라 RNN이 아니라 LSTM 셀 또는 GRU 셀

 

-어텐션 메커니즘 (Attention Mechanism)

seq2seq의 문제점 첫째, 하나의 고정된 크기의 벡터에 모든 정보를 압축하려고 하니까 정보 손실이 발생합니다. 둘째, RNN의 고질적인 문제인 기울기 소실(Vanishing Gradient) 문제가 존재합니다. 이를 해결하기 위해 Attention은 디코더에서 출력 단어를 예측하는 매 시점(time step)마다, 인코더에서의 전체 입력 문장을 다시 한 번 참고한다는 점입니다. 단, 전체 입력 문장을 전부 다 동일한 비율로 참고하는 것이 아니라, 해당 시점에서 예측해야할 단어와 연관이 있는 입력 단어 부분을 좀 더 집중(attention)해서 보게 됩니다.

 

-트랜스포머(Transformer)

트랜스포머는 RNN을 사용하지 않지만 기존의 seq2seq처럼 인코더에서 입력 시퀀스를 입력받고, 디코더에서 출력 시퀀스를 출력하는 인코더-디코더 구조를 유지하고 있습니다. 다만 다른 점은 인코더와 디코더라는 단위가 N개가 존재할 수 있다는 점입니다. 논문에서는 인코더와 디코더의 개수를 각 6개로 설정

 

-버트(Bidirectional Encoder Representations from Transformers, BERT)

BERT의 기본 구조는 트랜스포머의 인코더를 쌓아올린 구조입니다. Base 버전에서는 총 12개를 쌓았으며, Large 버전에서는 총 24개를 쌓았습니다. 레이블이 없는 방대한 데이터로 사전 훈련된 모델을 가지고, 레이블이 있는 다른 작업(Task)에서 추가 훈련과 함께 하이퍼파라미터를 재조정하여 이 모델을 사용하면 성능이 높게 나오는 기존의 사례들을 참고하였기 때문입니다. 다른 작업에 대해서 파라미터 재조정을 위한 추가 훈련 과정을 파인 튜닝(Fine-tuning)이라고 합니다.