Computer Science
-
Prerequisite 삽입이든, 삭제든 반드시 BST의 삽입, 삭제를 우선적으로 처리하고 그 다음에 Red-black의 property가 깨지면 그것을 보정하는 방향으로 이해해야 한다. 즉, 만약에 BST의 삽입, 삭제 규칙을 지키면서 처리했는데, Red-black의 property가 깨지는 것이 없다면 그대로 끝내주면 된다. Insert 1. 해당 트리에 아무것도 없는 경우에는 삽입하는 노드를 검은색으로 칠하고, 그렇지 않은 경우에는 빨간색으로 칠한다. 2.1. 삽입된 노드의 부모가 검은색인 경우 : 이 경우에는 Red-black property가 깨지는 것이 전혀 없으므로 바로 종료한다. 2.2 삽입된 노드의 부모가 빨간색인 경우 : 이 경우에는 Red-black property 중 red-prop..
Red black TreePrerequisite 삽입이든, 삭제든 반드시 BST의 삽입, 삭제를 우선적으로 처리하고 그 다음에 Red-black의 property가 깨지면 그것을 보정하는 방향으로 이해해야 한다. 즉, 만약에 BST의 삽입, 삭제 규칙을 지키면서 처리했는데, Red-black의 property가 깨지는 것이 없다면 그대로 끝내주면 된다. Insert 1. 해당 트리에 아무것도 없는 경우에는 삽입하는 노드를 검은색으로 칠하고, 그렇지 않은 경우에는 빨간색으로 칠한다. 2.1. 삽입된 노드의 부모가 검은색인 경우 : 이 경우에는 Red-black property가 깨지는 것이 전혀 없으므로 바로 종료한다. 2.2 삽입된 노드의 부모가 빨간색인 경우 : 이 경우에는 Red-black property 중 red-prop..
2022.06.15 -
Bert에서 모델 경량화를 시킨 모델이라고 생각해주면 된다. 모델 경량화 방법에는 다음과 같은 3가지 방법이 존재한다. 1. Quantization 2. Weight Pruning 3. Knowledge Distilation 위 3가지 중 본 논문은 3번째 방법인 Knowledge Distilation을 활용하여 모델을 경량화 하는 방법을 제안한다. 해당 방식을 사전 학습과 fine-tuning 단계 모두 진쟁하게 된다. 따라서 위 모델은 사전학습을 통해 얻을 수 있는 general domain에 대한 지식과 fine-tuning 단계에서 얻을 수 있는 task-specific한 지식까지 얻을 수 있게 되는 것이다. 위 모델의 핵심적인 내용은 3가지의 loss를 사용했다는 점과, 2단계의 distilla..
TinybertBert에서 모델 경량화를 시킨 모델이라고 생각해주면 된다. 모델 경량화 방법에는 다음과 같은 3가지 방법이 존재한다. 1. Quantization 2. Weight Pruning 3. Knowledge Distilation 위 3가지 중 본 논문은 3번째 방법인 Knowledge Distilation을 활용하여 모델을 경량화 하는 방법을 제안한다. 해당 방식을 사전 학습과 fine-tuning 단계 모두 진쟁하게 된다. 따라서 위 모델은 사전학습을 통해 얻을 수 있는 general domain에 대한 지식과 fine-tuning 단계에서 얻을 수 있는 task-specific한 지식까지 얻을 수 있게 되는 것이다. 위 모델의 핵심적인 내용은 3가지의 loss를 사용했다는 점과, 2단계의 distilla..
2022.03.01 -
Intro ELECTRA를 살펴보기에 앞서, 기존 BERT 모델이 어떤식으로 작동하는지를 recap해보도록 하자. BERT는 기본적으로 트랜스포머의 인코더 부분만 사용한 모델이다. 또한 추가적으로, MLM과 NSP라는 2가지의 사전학습 과정을 거쳐서 해당 모델이 언어를 이해할 수 있게끔 훈련시킨다. 이 중 MLM task의 경우, 다음과 같은 과정을 통해 진행된다. 주어진 corpus를 Tokenizing한다. (Wordpiece tokenizer) 전체 단어의 15% 정도를 무작위로 고르고, 이 중 80%는 MASK 토큰으로 바꾸고, 10%는 임의의 토큰으로 바꾸고, 10%는 아무런 처리를 하지 않는다.(80-10-10 규칙) 3가지의 임베딩 처리를 하고, concat한다.(Token embedding..
ELECTRAIntro ELECTRA를 살펴보기에 앞서, 기존 BERT 모델이 어떤식으로 작동하는지를 recap해보도록 하자. BERT는 기본적으로 트랜스포머의 인코더 부분만 사용한 모델이다. 또한 추가적으로, MLM과 NSP라는 2가지의 사전학습 과정을 거쳐서 해당 모델이 언어를 이해할 수 있게끔 훈련시킨다. 이 중 MLM task의 경우, 다음과 같은 과정을 통해 진행된다. 주어진 corpus를 Tokenizing한다. (Wordpiece tokenizer) 전체 단어의 15% 정도를 무작위로 고르고, 이 중 80%는 MASK 토큰으로 바꾸고, 10%는 임의의 토큰으로 바꾸고, 10%는 아무런 처리를 하지 않는다.(80-10-10 규칙) 3가지의 임베딩 처리를 하고, concat한다.(Token embedding..
2022.02.18 -
BERT는 다양한 자연어 처리 태스크 분야에서 가장 성능이 뛰어나고, 자연어 처리 분야에서 한 걸음 나아가는데 이바지한 모델이다. 2.1 Basic idea of BERT 기존의 word2vec와 같은 다른 인기있는 모델과 달리, BERT는 단어의 의미를 파악하는 과정에서 문맥을 고려하였다. 그 결과 질문에 대한 대답, 텍스트 생성, 문장 분류 등과 같은 태스크에서 가장 좋은 성능을 도출하여, 자연어 처리 분야에 크게 기여하였다. 단어의 의미를 파악하는 과정에서 문맥을 고려하는지 여부로 모델을 분류하면 다음과 같다. 문맥 독립 모델 (Context-free-model) : word2vec 문맥 기반 모델 (Context-based-model) : BERT 두 개념의 차이를 명확히 이해하기 위해, 다음과 ..
[구글 BERT의 정석] 2. BERT 이해하기BERT는 다양한 자연어 처리 태스크 분야에서 가장 성능이 뛰어나고, 자연어 처리 분야에서 한 걸음 나아가는데 이바지한 모델이다. 2.1 Basic idea of BERT 기존의 word2vec와 같은 다른 인기있는 모델과 달리, BERT는 단어의 의미를 파악하는 과정에서 문맥을 고려하였다. 그 결과 질문에 대한 대답, 텍스트 생성, 문장 분류 등과 같은 태스크에서 가장 좋은 성능을 도출하여, 자연어 처리 분야에 크게 기여하였다. 단어의 의미를 파악하는 과정에서 문맥을 고려하는지 여부로 모델을 분류하면 다음과 같다. 문맥 독립 모델 (Context-free-model) : word2vec 문맥 기반 모델 (Context-based-model) : BERT 두 개념의 차이를 명확히 이해하기 위해, 다음과 ..
2022.02.01 -
1. 1 트랜스포머 소개 기존의 RNN과 LSTM 네트워크의 경우 순차적 테스크에서 널리 사용되는 편이다. CS231n에서 학습한 것처럼 순차적으로 데이터들이 들어오고 이를 활용한다는 측면에서, 시간에 따른 데이터들의 동향을 예측하기에 유리한 측면이 존재한다. 하지만, 해당 2개의 네트워크는 장기 의존성 문제를 가지고 있다. 장기 의존성 문제란 hidden state를 통해 과거의 정보를 저장할 때 문장의 길이가 길어지면 앞의 과거 정보가 마지막까지 잘 전달되지 못하는 현상을 말한다. 즉, 문장의 길이가 길어지면 길어질수록 앞쪽 부분에 대한 정보를 거의 잊고, 최근에 들어온 정보를 중점적으로 판단하기에 발생하는 문제라고 이해해주면 된다. 또한 이는 Vanishing gradient problem과도 관련..
[구글 BERT의 정석] 1. 트랜스포머 입문1. 1 트랜스포머 소개 기존의 RNN과 LSTM 네트워크의 경우 순차적 테스크에서 널리 사용되는 편이다. CS231n에서 학습한 것처럼 순차적으로 데이터들이 들어오고 이를 활용한다는 측면에서, 시간에 따른 데이터들의 동향을 예측하기에 유리한 측면이 존재한다. 하지만, 해당 2개의 네트워크는 장기 의존성 문제를 가지고 있다. 장기 의존성 문제란 hidden state를 통해 과거의 정보를 저장할 때 문장의 길이가 길어지면 앞의 과거 정보가 마지막까지 잘 전달되지 못하는 현상을 말한다. 즉, 문장의 길이가 길어지면 길어질수록 앞쪽 부분에 대한 정보를 거의 잊고, 최근에 들어온 정보를 중점적으로 판단하기에 발생하는 문제라고 이해해주면 된다. 또한 이는 Vanishing gradient problem과도 관련..
2022.01.18 -
Supervised / Unsupervised Learning Supervised Learning 1. Label이 존재 2. Label을 통해 loss function을 정의 가능하다.(x -> y로 대응되는 신경망 구축이 가능하다.) 3. Classification, Regression, Object detection, Semantaic segmentation, image captioning이 이에 속함 Unsupervised Learning 1. Lbael이 존재하지 않음 (대신, Label이 존재하지 않아서 훈련 비용이 싸다.) 2, Label을 통해 직접적으로 loss function을 정의할 수 없으므로 hidden structure를 이용하게 된다. 3. Clustering, Dimensio..
[CS231n] Lecture 13Supervised / Unsupervised Learning Supervised Learning 1. Label이 존재 2. Label을 통해 loss function을 정의 가능하다.(x -> y로 대응되는 신경망 구축이 가능하다.) 3. Classification, Regression, Object detection, Semantaic segmentation, image captioning이 이에 속함 Unsupervised Learning 1. Lbael이 존재하지 않음 (대신, Label이 존재하지 않아서 훈련 비용이 싸다.) 2, Label을 통해 직접적으로 loss function을 정의할 수 없으므로 hidden structure를 이용하게 된다. 3. Clustering, Dimensio..
2021.08.24 -
이번 단원에서는 CNN 내부에서 어떠한 일이 벌어지는 것인지 이해하기 위한 내용을 포함하고 있다. 현재 딥러닝이 가지고 있는 큰 문제점 중 하나는 내부에서 어떠한 일이 벌어지는지 명확하게 설명하기 힘들다는 점이다. 따라서 이러한 측면에서 중간에서 어떠한 일이 벌어지는지 규명하기 위한 노력 정도로 이 단원을 이해해주면 된다. First Layer Weight vector와 나란할 때 input값과의 inner product의 값이 최대가 된다. 즉, activation이 maximize하기 위해서는 input과 weight는 동일하다. 이를 통해 해당 filter가 어느 부분을 보고 있는지를 추정할 수 있다. 그림에서 볼 수 있는 것처럼 architecture의 종류와 data의 종류와 무관하게 first..
[CS231n] Lecture 12이번 단원에서는 CNN 내부에서 어떠한 일이 벌어지는 것인지 이해하기 위한 내용을 포함하고 있다. 현재 딥러닝이 가지고 있는 큰 문제점 중 하나는 내부에서 어떠한 일이 벌어지는지 명확하게 설명하기 힘들다는 점이다. 따라서 이러한 측면에서 중간에서 어떠한 일이 벌어지는지 규명하기 위한 노력 정도로 이 단원을 이해해주면 된다. First Layer Weight vector와 나란할 때 input값과의 inner product의 값이 최대가 된다. 즉, activation이 maximize하기 위해서는 input과 weight는 동일하다. 이를 통해 해당 filter가 어느 부분을 보고 있는지를 추정할 수 있다. 그림에서 볼 수 있는 것처럼 architecture의 종류와 data의 종류와 무관하게 first..
2021.08.17 -
이전까지는 Image Classification을 하기 위한 방법을 살펴보았었다. Input image가 주어졌을 때, CNN이나 RNN 등의 방법을 활용하여 주어진 이미지가 어떠한 클래스에 속하는지를 판단하는 작업을 수행하였다. Computer Vision에게 주어진 과제는 그외에도 여러가지가 존재하는데 크게 보면, 4가지 task가 존재한다. Semantic Segmentation 첫번째로는 Semantic Segmentation이다. 해당 작업은 이미지를 받아 모든 pixel를 Category label에 대응시키는 작업이라고 할 수 있다. 각 pixel을 단순히 category에 대응시키는 것이므로, 동일한 category에 존재하면서 다른 object의 경우는 구분하지 못한다. 이를 수행하는 방..
[CS231n] Lecture 11이전까지는 Image Classification을 하기 위한 방법을 살펴보았었다. Input image가 주어졌을 때, CNN이나 RNN 등의 방법을 활용하여 주어진 이미지가 어떠한 클래스에 속하는지를 판단하는 작업을 수행하였다. Computer Vision에게 주어진 과제는 그외에도 여러가지가 존재하는데 크게 보면, 4가지 task가 존재한다. Semantic Segmentation 첫번째로는 Semantic Segmentation이다. 해당 작업은 이미지를 받아 모든 pixel를 Category label에 대응시키는 작업이라고 할 수 있다. 각 pixel을 단순히 category에 대응시키는 것이므로, 동일한 category에 존재하면서 다른 object의 경우는 구분하지 못한다. 이를 수행하는 방..
2021.08.15