본문 바로가기
728x90
반응형
SMALL

Learning-driven Methodology/DL (Deep Learning)37

TabNet TabNet TabNet은 tabular 데이터의 훈련에 맞게 설계됐으며 Tree 기반 모델에서 변수의 선택 특징을 네트워크 구조에 반영한 테이블 형식 데이터 학습 아키텍처 모델이다. TabNet은 순차적인 attention을 사용하여 각 결정 단계에서 추론할 기능을 선택하고, 학습 용량이 가장 두드러진 기능에 사용되므로 해석 가능성과 보다 효율적인 학습을 가능하게 한다. 예제 pip install pytorch_tabnet from sklearn.model_selection import train_test_split from sklearn.preprocessing import LabelEncoder from sklearn.metrics import accuracy_score from pytorch_ta.. 2024. 4. 21.
[Deep Learning] 트랜스포머 구조 트랜스포머 구조 트랜스포머는 RNN을 사용하지 않지만 기존의 seq2seq처럼 인코더에서 입력 시퀀스를 입력받고, 디코더에서 출력 시퀀스를 출력하는 인코더-디코더 구조를 유지하고 있다. seq2seq 구조에서는 인코더와 디코더에서 각각 하나의 RNN이 t개의 시점 (time step)을 가지는 구조였다면 트랜스포머의 인코더와 디코더는 단위가 N개로 구성되는 구조이다. 인코더로부터 정보를 전달받아 디코더가 출력 결과를 만들어내는 트랜스포머 구조를 보여준다. 디코더는 마치 기존의 seq2seq 구조처럼 시작 심볼 를 입력으로 받아 종료 심볼 가 나올 때까지 연산을 진행한다. 이는 RNN은 사용되지 않지만 여전히 인코더-디코더의 구조는 유지되고 있음을 보여준다. 하이퍼파라미터 d_model 트랜스포머의 인코더.. 2023. 12. 28.
[Deep Learning] 트랜스포머 (Transformer) 트랜스포머 (Transformer) 트랜스포머 (Transformer)는 2017년 구글이 발표한 논문인 "Attention is all you need"에서 나온 모델로 기존의 seq2seq의 구조인 인코더-디코더를 따르면서도, 논문의 이름처럼 어텐션 (Attention)만으로 구현한 모델이다. 이 모델은 RNN을 사용하지 않고, 인코더-디코더 구조를 설계하였음에도 번역 성능에서도 RNN보다 우수한 성능을 보여주었다. 트랜스포머의 가장 큰 특징은 Convolution, Recurrence를 사용하지 않는다. seq2seq 모델의 한계 기존의 seq2seq 모델은 인코더-디코더 구조로 구성되어져 있다. 여기서 인코더는 입력 시퀀스를 하나의 벡터 표현으로 압축하고, 디코더는 이 벡터 표현을 통해서 출력 시.. 2023. 12. 28.
[Deep Learning] Attention Mechanism Attention Seq2Seq는 인코더 마지막 히든 스테이트 (hidden state)에 모든 인코더 정보를 우겨넣게 된다. 그리고 LSTM을 통해 Long-term dependency 문제를 해결했지만, 뒤 타임 스텝에서 앞쪽의 정보를 잘 저장하지 못하는 현상이 발생하기도 했다. 이 문제를 보완하기 위해 attention이 등장하게 된다. 동작 원리 어텐션이란, 디코더 (Decoder)가 각 타임 스텝 (time step)에서 결과를 생성할 때에 인코더 (Encoder)의 몇번째 타임 스텝을 더 집중 (Attention)해야하는 지를 스코어 형태로 나타내는 것이다. 각 디코더의 타임 스텝마다 인코더의 히든 스테이트 백터 (hidden state vector)와의 유사도를 계산함으로써, 인코더의 몇번째.. 2023. 12. 28.
[Deep Learning] Seq2Seq (Sequence to Sequence) Seq2Seq (Sequence to Sequence) RNN에서 many-to-many에 해당되는 모델을 'Seq2Seq Model'이라고 하며, 그 중 입력 문장을 읽어오는 부분을 인코더 (encoder), 출력 문장을 생성하는 부분을 디코더 (decoder)라고 한다. 디코더의 첫번째 입력값 (input)은 SoS (Start of Sentence)에 들어가며 결과값을 생성하기 시작하고, EoS (End of Sentece) 토큰이 디코더의 출력값 (output)으로 나오면 생성을 멈추게 된다. Seq2Seq의 문제 입력 시퀀스의 길이에 상관없이 단일 컨텍스트 벡터로 표현하여 정보 병목 (Information Bottleneck) 현상이 발생한다. 2023. 12. 27.
[Deep Learning] 1D CNN 1D CNN 1D CNN은 1차원 데이터를 처리하는 CNN의 한 종류이다. 컴퓨터 비전 작업에서 CNN에 대한 입력은 일반적으로 각 픽셀이 행렬의 값으로 표시되는 2차원 이미지이다. 이와 대조적으로 숫자 데이터는 일반적으로 1차원 값 시퀀스로 표시된다. 일반적으로 CNN은 이미지 처리에서 주로 쓰이며 2D convolution을 사용하지만, 수치나 텍스트 처리에서는 filter가 위아래 한 방향으로만 이동하는 1D Convolution을 사용한다. 1D CNN은 입력 데이터 위에 작은 창을 슬라이딩하고 창과 학습 가능한 필터 세트 사이의 내적을 계산하는 컨볼루션 작업을 입력 데이터에 적용한다. 이 작업의 결과는 피처 맵이며, 이는 비선형 활성화 함수와 풀링 레이어를 통해 전달되어 출력의 차원을 줄인다. .. 2023. 9. 27.
[Deep Learning] 방사형 기저 함수 신경망 (Radial Basis Function Network) 방사형 기저 함수 (Radial Basis Function) RBF (방사형 기저 함수)는 값이 원점 또는 특정 지점으로부터의 거리에 따라 달라지는 실수 값 함수이다. 신경망에서 활성화 함수 역할을 하는 기계 학습을 포함하여 다양한 분야에서 널리 사용된다. RBF 활성화 함수는 데이터를 선형적으로 분리할 수 없는 문제에 특히 유용하다. 입력 공간을 데이터가 선형적으로 분리 가능한 고차원 공간으로 매핑할 수 있으므로 복잡한 분류 문제에 대한 강력한 도구가 된다. 방사형 기저 함수 신경망 (Radial Basis Function Network) 방사 신경망은 왕립신호 및 레이더 연구소의 연구원인 브룸헤드 (Broomhead)와 로우 (Lowe)에 의해 1988년 논문에서 처음 공식화되었다. 방사 신경망은 다.. 2023. 7. 17.
[Deep Learning] 베이지안 하이퍼파라미터 최적화 (Bayesian Hyperparameter Optimization) 베이지안 하이퍼파라미터 최적화 (Bayesian Hyperparameter Optimization) 베이지안 하이퍼파라미터 최적화는 그리드 검색보다 더 효율적으로 하이퍼파라미터를 찾는 방법이다. 하이퍼파라미터의 각 후보 집합은 신경망을 다시 학습시켜야 하므로 후보 집합의 수를 최소한으로 유지하는 것이 가장 좋다. 베이지안 하이퍼파라미터 최적화는 좋은 하이퍼파라미터 후보 집합을 예측하는 모델을 학습시켜 이를 달성한다. bayesian-optimization hyperopt spearmint # Ignore useless W0819 warnings generated by TensorFlow 2.0. # Hopefully can remove this ignore in the future. # See https.. 2023. 5. 26.
[Deep Learning] 활성화 함수 구현 Sigmoid import numpy as np def sigmoid(x): return 1/(1+np.exp(-x)) sigmoid(4) 0.9820137900379085 import matplotlib.pyplot as plt x = np.arange(-10, 10, 0.01) y = sigmoid(x) plt.plot(x, y) ReLU def relu(x): return np.maximum(0, x) x = np.arange(-10, 10, 0.01) y = relu(x) plt.plot(x, y) Softmax def origin_softmax(x): f_x = np.exp(x) / np.sum(np.exp(x)) return f_x x = np.array([1.3, 5.1, 2.2, 0.7, .. 2022. 11. 17.
[Deep Learning] Global Average Pooling (GAP) Global Average Pooling (GAP) GAP (global average pooling)은 Max (Average) Pooling 보다 더 급격하게 feature의 수를 줄인다. 하지만, GAP을 사용하는 이유는 Pooling과 조금 다르다. GAP의 목적은 feature를 1차원 벡터로 만들기 위함이다. 이 방식은 Location 정보를 FC Layer보다 적게 잃고 85%의 가중치를 없앤다. 이것으로 계산량과 모델의 무게와 파라미터가 줄어든다. 따라서, 오버피팅 방지 효과도 따라온다. 그리나 이것은 정보량 손실이 있다. 이미지의 모든 값을 평균을 내는 것인데, 정보를 잃지만 성능은 좋은 것으로 알려져 있다. 분류할 클래스 수만큼 feature map을 마지막에 생성하여 i번째 featu.. 2022. 8. 14.
728x90
반응형
LIST