반응형

전체 글 164

멀티 모달 입력

문제 일반적으로 모델에 대한 입력은 숫자 또는 카테고리, 이미지 또는 자유 형식 텍스트로 표현할 수 있다. 많은 모델이 보통 특정한 입력 유형에 대해서만 정의되어 있는데 예를 들어 Resnet -50과 같은 표준 이미지 분류 모델은 이미지 이외의 입력을 처리 할 수 없다. 멀티 모달 입력의 필요성을 이해하기 위해, 교통 법규 위반 카메라를 가정해보면 모델은 이미지 데이터와 이미지 포착 시점(시간,요일,날씨) 에 대한 일부 메타 데이터를 모두 처리해야한다. 이런 문제는 입력 중 하나가 자유 형식 텍스트인 구조화 된 데이터 모델을 학습할 떄도 발생, 수치와 달리 이미지와 텍스트는 모델에 직접 input으로 넣을 수 없음 (보통 임베딩 디자인 패턴 사용) ex) - 레스토랑 리뷰 평점 예측 1. 리뷰 텍스트 ..

Embedding layer와 Embedding Vector의 Output 차이 정리

Word Embedding Vector Skip - gram : 주변 단어가 비슷한 단어일수록 비슷한 임베딩 값을 갖도록 학습 Word2vec 하이퍼파라미터의 설정 값에 따라 각자 단어들 사이가 의미하는 벡터 값이 달라 질 여지가 많음 특수한 상황을 제외하고(product2vec 같은 것을 구현할 때 사용), 실제 NLP에서 드물게 활용됨 딥러닝은 END TO END를 지향하므로 중간 산출물을(embedding vector) 단독으로 쓰이는 것이 쉽지 않음 Embedding Layer 무작위로 특정 차원으로 입력 벡터들을 뿌린 후 학습을 통해 가중치들을 조정해 나가는 방식 즉, 단어 사이의 관계를 반영하는 방법이 아님 원핫 인코딩 된 이산 샘플의 벡터를 받아, 연속 벡터로 변환 높은 차원의 벡터를 효율적..

Deep Learning 2023.02.14

ALBERT 개념 정리

ALBERT A Lite BERT for Self - supervised Learning of Language Representations 1) Embedding Matrix Factorization Embedding layer의 차원을 줄이고 이를 hidden_size로 복원하는 linear layer 추가 2) Cross-layer parameter sharing 버트는 보통 12개나 24개 정도의 layer를 쓰는데 각 layer마다 weigth parmaeter 가 따로 있는데 layer 가 늘 수록 wp 가 늘어나는게 일반 적인데 알버트는 해당 layer의 wp를 서로서로 공유함 Attention과 FFN layer 의 파라미터를 공유 , 즉 공유되는 파라미터의 layer는 반복 사용됨 3) S..

From Seq2Seq to Transformer

Encoder - sequence를 하나의 context vector로 압축 Decoder - Context vector를 condition으로 받는 조건부 언어모델 Generator - 디코더의 hidden state를 softmax를 통해 multinoulli 분포로 변환 seq2seq 가 attention이 추가가 안된 시기들이 있음 (굉장히 짧은 시기) attention 직관적인 설명 query를 날려서 key에 매칭을 하고 query와 key 비슷한 정도 대로 정보를 취합 -> 디코더는 인코더에 필요한 정보들을 요청하여 검색해서 필요한 정보를 취해오는 것 서로 다른 길이의 시퀀스들이 배치로 묶일 경우, pad가 빈 칸에 할당 됨 -> 이에 따라 pad에 attention weight가 할당 될 ..

Pytorch 코드 컨셉

파이 토치 기본 스타일 - 모듈 클래스로 신경망 생성 - 데이터셋 클래스로 데이터를 불러와 학습 * 모듈 클래스로 신경망 만들기 __init__() -> 신경망 구성요소 정의 forward() -> 신경망 동작 정의 1. 파이 토치가 제공하는 모듈을 불러와 __init__()함수 안에 정의 Class Net(nn.module): def __init__ (self): # 신경망 구성요소 정의 2. forward() 함수에 신경망의 동작을 정의(__init__()함수에서 정의한 모듈을 연결하거나 필요한 연산등을 정의) def forward(self, input): #신경망의 동작 정의 return output * 데이터셋 클래스로 데이터를 불러와 학습하기 1. __init__함수는 학습에 사용할 데이터를 불..

Embedding Vector 과정 및 정의

1. 텍스트를 숫자로 바꾸는 작업 단어에 번호를 매기고 번호에 해당하는 요소만 1 ,나머지는 0 N개의 단어가 있다면 각 단어는 한 개의 요소만 1인 N차원의 벡터로 표현 ( 벡터 포현에 어떤 단어 끼리 유사하고, 반대인지 단어와 단어 관계가 전혀 드러나지 않음) 이 부분을 좀 더 똑똑하게 바꾸려고 예를 들면 왕↔ 여왕을 남↔녀 관게라는 것을 벡터로 알아낼 수 있기 위해 만든 것이 임베딩 모델 (word embedding) 2. Word2Vec 현대적인 자연어 처리 기법들은 대부분 이 임베딩 모델에 기반을 두고 있다. 그렇다면 어떻게 벡터에 단어의 의미를 담을 수 있을까? 우리는 어떤 대상이든 대상의 속성들을 표현하고, 그것을 바탕으로 모델 생성 예를들어 버섯을 조사해 놓은 데이터가 있다면 이것은 버섯이..

Deep Learning 2022.11.19

추천 시스템 설계 구성안 (Tmall)

1 . 상품 상세 페이지 연관 상품 추천 모델 구성안 (1) recall stage → (2) sort rank stage → (3) filter stage → (4) Re-rank stage (온라인 모델 ) 단계(1) recall stage(2) sort rank stage (3) filter stage (4)Re-rank stage 정의 고객별로 추천 풀 선정 recall stage 내 상품 랭킹 산정 필터 적용하여 최종 추천 상품 산출 실시간 랭킹 재산정 참고 Recall Stage Tmall 프레임워크 Filter Stage - 적용 가능한 방법론 graph embedding ,리타겟팅 , crowd based filtering a-ruels ,DeepFM , DCN Rule based 로직 (..

XGBoost: A Scalable Tree Boosting System

XGBoost: A Scalable Tree Boosting System 1. Introduction Gradient Boosting에 extreme한 요소들을 얹으면 XGBoost가 된다 Scalability를 얻기 위해 두가지 Innovation이 있음 이것은 알고리즘적 그리고 시스템적으로 나눠지는데 알고리즘적으로는 tree boosting , split finding algorithm -> 알고리즘적으로는 regularized gradient boosting 으로 크게 변화한 부분이 없지만 시스템 적으로는 많이 변화함 -> 이 논문에서는 알고리즘 적으로 많이 살펴볼 예정 2. TREE BOOSTING IN A NUTSHELL y햇은 파이에 x를 인풋으로 넣었을 때 나오는 값인데 여기서 파이는(세타)..

Machine Learning 2022.08.16

디자인패턴 29 : 설명 가능한 예측

7.2-디자인패턴 29-설명 가능한 예측 정의 : 모델이 특정 예측을 수행하는 방법과 이유에 대한 이해를 제공하여 ML 시스템에 대한 신뢰를 높이는 기법 -> ex) ML 시스템 : decision tree와 같은 모델- 설계상 해석가능 , but 딥러닝 아키텍처는 본질적으로 설명이 어려움 7.1.1 문제 머신러닝 모델을 평가할 때 보통 정확도 , 정밀도 , 재현율 ,평균 제곱오차와 같은 측정 항목은 한 부분만을 제공 이는 모델의 예측이 실제값에 비해 얼마나 정확한지에 대한 데이터를 제공하지만 모델이 이러한 예측에 도달한 인사이트는 제공해주지 않음 ex) - 망막 이미지에 당뇨망막병증(DR)의 중증도 예측하는 모델 예를 들어 해당 모델이 소프트맥스 출력을 반환하여 개별이미지가 DR의 심각도를 나타내는 5..

디자인 패턴 21 : 트랜스폼

6.1 디자인 패턴 21 : 트랜스폼 입력,특징 변환을 신중하게 분리하여 ML 모델을 프로덕션으로 훨씬 쉽게 이동할 수 있게 하는 기법 6.1.1 문제 머신러닝 모델에 대한 입력은 머신러닝 모델이 계산에 사용하는 특징이 아니며 트랜스폼 디자인 패턴은 이 문제를 해결하고자 함 예를들어 텍스트 분류모델에서 입력은 원시 텍스트 문서이고 특징은 이 텍스트의 숫자 임베딩 표현 머신러닝 모델을 학습시킬때는 원시 입력에서 추출한 특징으로 학습 CREATE OR REPLACE MODEL `emart-dt-dev-ds.sample2.bicycle_model` OPTIONS(input_label_cols=['duration'], model_type='linear_reg') AS SELECT duration , start_..

디자인패턴 17 : 배치서빙

05.2-디자인패턴 17-배치서빙 배치서빙 분산 데이터 처리에 일반적으로 사용되는 소프트웨어 인프라를 사용하여 한번에 많은 인스턴스에 대한 추론을 수행하는 것 5.2.1 문제 보통 ML 서비스 프레임워크에 모델을 배포하면 단일 요청에 포함된 하나의 인스턴스 또는 수천개의 인스턴스를 처리하도록 설정되어 있고 서빙 프레임워크는 5.1절에서 논의 된 것처럼 개별 요청을 가능한 한 빨리 동기적으로 처리하도록 설계되어 있음 서빙 인프라는 일반적으로 많은 연산을 TPU 또는 GPU 같은 고성능 하드웨어에서 처리하고 여러 데이터와 관련된 비효율성을 최소화하는 마이크로서비스로 설계됨 그러나 대량의 데이터에 대해 비동기적으로 예측을 수행해야하는 상황도 있는데 예를들어 SKU의 재주문 여부를 결정하느 것은 이를 구매할 때..

디자인 패턴 15 : 하이퍼 파라미터 튜닝

4.6 디자인 패턴 15 하이퍼 파라미터 튜닝 최적의 모델 하이퍼파라미터셋을 찾기 위해 학습 루프 자체를 최적화하는 방식 -> 트리의 최대 깊이를 5로 정하거나 활성함수를 RELU로 정하고 SVM에서의 커넬셋을 선택 등의 예시가 있습니다 4.6.1 문제 머신러닝 모델의 학습은 최적화 된 수치를 찾는 과정으로 이러한 최적화의 대상을 소위 모델 파라미터라 칭함 (하이퍼파라미터와는 조금 다른 개념) 모델 파라미터는 주로 학습데이터, 모델 아키텍처 및 기타 여러요인의 함수이므로 직접 제어할 수 없음 즉 모델 파라미터는 수동적으로 설정할 수 없고 임의의 값으로 초기화 된 후 반복적인 학습을 통해 모델에 의해 최적화 되는 것들을 의미 반면 하이퍼파라미터는 모델의 개발자가 제어할수 있는 학습률 에폭수 모델의 계층수 ..

디자인 패턴 9 : 중립 클래스

3.5 디자인 패턴 9 : 중립클래스 중립 클래스 머신러닝 예측 대상을 이진 분류기('예' , '아니오' )로 학습하는 대신 '아마도' 라는 총 3가지의 클래스 분류기를 학습 시키기도 하는데 (보통 학습패턴은 하나의 클래스에만 속할 수 있으므로) 이 경우 '아마도'를 중립 클래스라고 이야기함 3.5.1 문제 진통제 사용에 대한 지침을 제공하는 모델을 만든다고 할 때 과거 데이터를 보면 보통 이부프로펜과 아세트 아미노펜이라는 두가지 약품이 중에 아세트 아미노펜 -> 위장문제가 있는 환자에게 처방 이부프로펜 -> 간 손상 위험이 있는 환자에게 우선적으로 처방 그외 -> 무작위 ( 위 둘중 하나) 이런 경우 모델은 '그외'의 케이스를 둘 중 하나의 클래스로 정확히 분류해야하는 이진분류기로 처리하면 정확도가 떨..

Dynamic programming

*Learning -> 환경의 모델을 모르지만 상호작용을 통해서 문제를 푸는 것 * value function이 작은 문제들의 해 1. optimal policy를 구하기위해서 policy를 랜덤하게 설정하고 이것이 수렴할 떄까지 반복할때 value function을 최대화 하는 것이 최적의 policy다 라는 의미 어느정도 수렴 (무한대) 가 되면 value function을 알 수 있음 value iteration은 앞의 두가지 과정을 한꺼번에 하는 것

Deep Learning 2022.05.15
반응형
반응형