2025/02 12

[Deep learning] Multi-Modal learning Part2

part 1에서는 image-text 관련 모델을 중점적으로 보았다면 이번 part에서는 video-text와 관련된 모델을 살펴보겠습니다.이번 글도 이준석 교수님 강의를 요약해 보았습니다.Video BERTVL-BERT와 비슷한 구조로 영상의 ASR(text) 데이터와 1.5초 간격으로 샘플링된 프레임을 입력으로 넣어줍니다.text가 아닌 뒷부분 데이터(영상)에 대해서 어떻게 학습할지 고민해야 됩니다.VL-Bert는 image를 object detection을 하여 하나하나 넣어줬습니다. 동영상의 경우 모든 프레임에 대해 object detection을 하기는 힘든데요. 그것을 해결하기 위해 Video tokenization을 합니다. 이는 프레임을 정확히 labeling 하는 것이 아닌 frame별로..

[Deep learning] Multi-Modal learning Part1

본 글은 이준석 교수님의 강의를 듣고 정리한 내용입니다.Multimodality원래 통계학에서 나오는 단어로 예를 들어 분포가 있을 때 분포 하나하나 mode가 있는데 여러 분포가 있으면 multimodal이라고 합니다.인공지능에서는 음성, 이미지, 비디오, 텍스트와 같은 다양한 형태의 데이터들이 multimodal이라고 할 수 있습니다.Examples of visual-text multimodal tasks- Text-based image/video retrieval(search)- Image/video Captioning- Visual Question and Answering- Spatial localization- Temporal localization Image CaptioningNCENce는 기..

[Machine learning]Energy-based Models(part1)

이번 글은 Energy based model에 대해 yann lecun의 강의를 듣고 정리한 내용입니다.https://www.youtube.com/watch?v=xIn-Czj1g2Q&list=PLLHTzKZzVU9e6xUfG10TkTWApKSZCzuBI&index=10기존 Machine Learning과 Multiple Output기존 machine learning은 입력값에 대해 단일 출력값만을 가졌습니다.저해상도에서 고해상도로 이미지를 변경할 때 다양한 출력값(multiple output)을 원할 수도 있고, NLP에서 blank 안에 문맥상 의미가 맞는 여러 단어가 오길 원하는 작업을 할 때 기존 machine learning은 문제가 있습니다.Energy Based Model (EBM) 개요Ene..

[Deep learning] Metric learning 개념 정리

이번 metric learning에 대한 내용 정리는 서울대학교 이준석 교수님 강의를 바탕으로 제작되었습니다.Metric learning기존 supervised learning과는 다르게 data 간의 distance(=similarity)를 배우는 방법입니다.데이터 간 서로 얼마나 비슷한 정도를 배우는 상대적인 개념으로 주관적인 개념입니다.따라서 전통적인 Supervised learning으로는 이러한 관계를 파악하기 어렵습니다. 얼핏 보면 상대적인 관계를 학습하기 힘들겠다고 생각이 들 겁니다.그러나 학습 시 label이 필요 없기 때문에 대규모의 데이터에 대해 쉽게 학습을 할 수 있다는 장점이 있습니다. Metric learning 중 information retrieval에서 쓰이는 Learning..

[Deep learning] BERT 개념과 Minimalist Version of BERT 구현해보기

BERT는 Bidirection Encoder Representations from Transformers의 약자로 word embedding을 하기 위해 트랜스포머의 Encoder만 사용하는 것입니다. 자연어 처리에서 Word2Vec, Glove를 이용하여 단어를 표현하는데 Bert는 문장 level에서 잘 표현해 보자는 아이디어입니다. BooksCorpus와 Wikipedia를 활용하여 사전훈련을 진행한 후, 특정 작업에 맞춰 미세 조정을 진행합니다. BERT는 Large scale 모델로 정말 많은 Text로 학습을 시켰는데요. 그게 가능했던 이유는 데이터에 직접 라벨링을 할 필요가 없었기 때문입니다. 모델 구조에 대해 자세히 알아보면 Token EmeddingsInput은 두 가지 문장으로 구성되..

[Deep learning] Transformer 자세히 공부한 것..

저번 글은 Tranformer의 원리에 대해 간단하게 알아봤다면 이번 글은 학습이 어떻게 이뤄지고 어떻게 응용될 수 있는지에 대해 자세하게 공부해 보겠습니다. Self-Attention 또는 Attention에 대해 잘 모르신다면 제 전 글을 읽어보시고 이 글을 읽는 것을 추천드려요!!ㅎㅎ https://ysk1m.tistory.com/6 [Deep learning] Transformer에 대한 기본 아이디어요즘 Transformer에 대해 공부하고 있어 여러 강의와 책을 듣고 기록해 놓은 내용입니다. 기본 아이디어부터 실제로 어떻게 학습하는지 수식적으로 이해해 보는 시간을 가지겠습니다. 저는 'Easy!ysk1m.tistory.comhttps://ysk1m.tistory.com/5 [Deep learn..

[Deep learning] Transformer에 대한 기본 아이디어

요즘 Transformer에 대해 공부하고 있어 여러 강의와 책을 듣고 기록해 놓은 내용입니다. 기본 아이디어부터 실제로 어떻게 학습하는지 수식적으로 이해해 보는 시간을 가지겠습니다. 저는 'Easy! 딥러닝' 책을 참고했고, 이준석 교수님 강의를 참고했습니다. https://product.kyobobook.co.kr/detail/S000214848175 Easy! 딥러닝 | 혁펜하임 - 교보문고Easy! 딥러닝 | 『Easy! 딥러닝』은 딥러닝을 처음 접하는 독자들을 위한 필수 가이드로, 인공지능의 기초 개념부터 CNN, RNN 등 딥러닝의 주요 주제를 폭넓게 다루고 있다. KAIST 박사이자 유튜버로 활product.kyobobook.co.krhttps://arxiv.org/abs/1706.03762..

[Deep learning] Attention Mechanism에 대하여

Attention Mechanism에 대해 알아보도록 하겠습니다. Attention Mechanism은 Context Vector를 어떻게 표현하고 그렇게 했을 때 개선된 점이 어떤 것인가?라는 의문을 가지고 접근하면 쉽게 이해할 수 있습니다. 기존 Seq2Seq 모델 구조는 인코더에서 하나의 동일한 Context Vector를 제공했고, 이는 정보가 뭉개지는(=마지막 토큰의 정보만 과도하게 담은) 문제를 불러왔습니다. 예를 들어, '나는' '인공지능을' '공부하는' '학생' '입니다.'라는 입력 토큰이 있을 때 Context Vector는 '입니다.'의 정보를 가장 크게 담고 나머지 토큰은 뭉개집니다. 이럴 경우 모델의 성능의 한계가 있을 수밖에 없습니다. 이러한 한계점을 Attention Mechan..

[Deep learning] LSTM과 GRU를 Vector combination 관점에서 살펴보기

LSTM과 GRU를 Vector combination 관점에서 어떤 차이가 있는지 알아보겠습니다. 바로 비교하기 앞서 Vector combination에 대해 먼저 알아보고 LSTM과 GRU의 차이를 비교해 보겠습니다.선형대수나 기하학에서 자주 등장하는 Combination은 보통 여러 벡터를 특정 규칙에 따라 합치는 방식을 의미합니다. 먼저 가장 익숙한 Linear Combination에 대해 알아볼게요.  Linear Combination정의: 벡터 공간에서 벡터 x1, x2, …, xn과 스칼라(실수) 계수 α1, α2, …, αn가 주어졌을 때, α1x1 + α2x2 + ⋯ + αnxn 의 형태를 선형 결합 이라고 부릅니다. 계수의 제약: 없음. 모든 αi는 어떤 실수든 가능하며, 합이 특정 값이..

[Machine learning] Dropout 내가 궁금했던 모든 것 정리

머신러닝을 처음 공부할 때 dropout이라는 개념을 봤을 때, 중퇴?라는 뜻으로 외웠던 게 기억났고 그냥 도중 나가는 건가? 이렇게 생각했었습니다.  그때만 해도 제가 공부하기에는 그냥 과적합을 방지하기 위해 몇 개의 node를 kill 하는 거는구나라고 생각했었습니다. 얼마나 얕게 공부했었는지... Dropout에 대해 다시 자세히 공부하면서 가졌던 궁금증을 정리하고 기억하고자 포스팅을 하게 됐습니다. 편히 읽어보시면서 놓친 개념이 없는지 확인해 보세요~~  Dropout ImplementationDropout의 정확한 개념은 신경망에서 특정 비율만큼의 뉴런을 무작위로 비활성화하여 과적합을 방지하는 정규화 기법입니다.def train_step(data, p): # p = dropout rate ..