Differences
This shows you the differences between two versions of the page.
data_analysis:statistics_and_machine_learning [2024/07/04 05:52] – [CLIP] prgram | data_analysis:statistics_and_machine_learning [2025/07/07 14:12] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 718: | Line 718: | ||
[[data_analysis: | [[data_analysis: | ||
+ | |||
+ | === self-supervised learning === | ||
+ | 자기지도학습 | ||
+ | |||
+ | **< 데이터의 일부를 보고 나머지를 예측하는 self-prediction> | ||
+ | - GPT를 비롯한 웨이브넷, | ||
+ | - GPT와 양대산맥을 이루고 있는 BERT 및 디노이징 오토인코더, | ||
+ | - 샘플에 변형(회전, | ||
+ | |||
+ | **< 데이터 사이의 관계를 예측하는 contrastive learning > ** | ||
+ | 데이터 하나를 기준으로 해당 데이터를 변형한 것은 positive pair, 그 외의 데이터는 negative pair로 둔다. 그 뒤 기준이 되는 데이터와 positive pair는 가까워지고, | ||
===AutoEncoder=== | ===AutoEncoder=== | ||
https:// | https:// | ||
Line 730: | Line 741: | ||
====Vision==== | ====Vision==== | ||
+ | |||
+ | 생성 모델은 식별 모델과 입출력이 반대. 식별 모델은 이미지를 보고 어떻게 분류를 할 건지 “자연어로 된 출력물”을 생성. | ||
+ | 반면, 생성 모델은 자연어로를 입력값으로 이미지를 생성. 그런데 이미지는 자연어보다 많은 숫자 데이터를 내포(임베딩 벡터). | ||
+ | 많은 숫자에서 적은 숫자를 뽑아내는 함수보다 적은 숫자에서 많은 숫자를 뽑아내는 함수가 더 어렵기에 생성 모델의 난이도가 더 높음. | ||
+ | [20230331_Everything Everywhere All at Once AI가 불러온 신산업 혁명_미래에셋증권] | ||
+ | |||
(GAN) 이미지 생성의 속도가 빠르고, 고품질의 이미지를 생성할 수 있으나 학습 과정이 불안정하고 생성하는 이미지의 다양성이 저조 | (GAN) 이미지 생성의 속도가 빠르고, 고품질의 이미지를 생성할 수 있으나 학습 과정이 불안정하고 생성하는 이미지의 다양성이 저조 | ||
(VAE) 이미지 생성 속도가 빠르고, 다양한 이미지를 생성할 수 있으나 이미지의 품질이 다소 부족 | (VAE) 이미지 생성 속도가 빠르고, 다양한 이미지를 생성할 수 있으나 이미지의 품질이 다소 부족 | ||
Line 735: | Line 752: | ||
===GAN=== | ===GAN=== | ||
+ | Generative Adversarial Networks, 생성적 적대 신경망 | ||
GAN은 이미지를 임의로 생성하는 생성기(Generator)와 생성된 이미지에 대한 진위를 구별하는 판별기(Discriminator)가 서로 경쟁적(적대적)으로 학습하는 이미지 생성 모델 | GAN은 이미지를 임의로 생성하는 생성기(Generator)와 생성된 이미지에 대한 진위를 구별하는 판별기(Discriminator)가 서로 경쟁적(적대적)으로 학습하는 이미지 생성 모델 | ||
- GAN 생성기의 입력은 대체로 무작위 변수가 기반으로써, | - GAN 생성기의 입력은 대체로 무작위 변수가 기반으로써, | ||
- | ※ 예컨대 사용자가 의자 이미지에서 의자의 색상을 의도적으로 바꾸고자 하여도 기존 GAN | ||
+ | 이미지 합성과 스타일 전이는 위에서 언급한 잠재공간에서 표현된 숫자들을 조절해가면서 원하는 결과값을 얻는 과정으로 이해 | ||
+ | 하면 된다. 이를 N차원의 벡터값을 조작하는 잠재공간편집(latent space editing)이라고 부른다. | ||
+ | GAN을 사용하여 특정 인물의 사진에 다른 헤어스타일을 입히려고 할 때, 먼저 모델의 헤어스타일이 포함된 잠재공간의 벡터를 찾아야 한다. 이를 위해 여러 이미지를 통해 머리 스타일 차원을 학습하고, | ||
+ | |||
+ | GAN이 가장 많이 기여한 것이 바로 이미지 합성 분야다. 두 개의 다른 이미지를 합성하여 새로운 이미지를 생성하는 데 GAN이 사용된다. 예를 들어, 풍경 사진에 구름을 추가하려고 한다면, GAN을 사용하여 풍경 이미지와 구름 이미지의 잠재공간의 벡터를 얻은 뒤, 두 벡터 값을 적절하게 결합해 새로운 벡터를 생성한다. 이후 새로운 벡터를 디코딩하면 원래 풍경 이미지에 구름이 있는 새로운 이미지를 얻는다. | ||
+ | [20230331_Everything Everywhere All at Once AI가 불러온 신산업 혁명_미래에셋증권] | ||
+ | |||
+ | [[data_analysis: | ||
===VAE=== | ===VAE=== | ||
AE는 데이터 압축과 특징 추출에 주로 사용되는 반면, VAE는 데이터의 확률적 모델링과 새로운 데이터 생성에 더 적합합니다. | AE는 데이터 압축과 특징 추출에 주로 사용되는 반면, VAE는 데이터의 확률적 모델링과 새로운 데이터 생성에 더 적합합니다. | ||
Line 756: | Line 781: | ||
[이미지생성 AI의 진화(2022), | [이미지생성 AI의 진화(2022), | ||
+ | ===Diffusion_model=== | ||
+ | [[data_analysis: | ||
+ | 레이턴트디퓨전 모델(LDM: latent diffusion model)과 스테이블 디퓨전 모델(SDM: stable diffusion model)이 있다. | ||
+ | LDM과 SDM 모델은 약간의 구현 및 학습 방식의 차이일 뿐, 전반적인 개념은 매우 유사하다. 둘 다 ‘무작위 노이즈 이미지로부터 시작’하여 점진적으로 사실적인 최종 이미지로 변환하는 프로세스를 거친다. | ||
+ | LDM과 SDM은 목적과 사용 사례에 따라 각기 장점이 있는 생성 모델이다. 따라서 LDM과 SDM 중 어느 것이 더 우수하다고 평가할 수는 없고, 사용 사례와 기술적 요구 사항에 따라 달라진다 | ||
+ | [20230331_Everything Everywhere All at Once AI가 불러온 신산업 혁명_미래에셋증권] | ||
- | [[data_analysis:Diffusion_model]] | + | |
+ | |||
+ | ===스타일 전이=== | ||
+ | [[https:// | ||
+ | 스타일 전이를 구현하는 방법은 일반적인 딥러닝 알고리즘의 구현 방법과 크게 다르지 않다. 먼저 우리가 원하는 목표를 가리키는 손실 함수를 정의하고, | ||
+ | |||
+ | 스타일 전이에서의 목표는 원본 이미지의 콘텐츠를 보존하면서 참조 이미지의 화풍을 적용하는 것이다. 나머지는 콘텐츠와 화풍을 수학적으로 표현하고, | ||
+ | |||
+ | 손실 함수를 정의할 때 가장 중요한 점은 한쪽 이미지에는 콘텐츠를 보존하고 다른 이미지에는 화풍을 보존해야 하는 것이다. | ||
+ | |||
+ | - 콘텐츠 손실: 콘텐츠 이미지와 통합 이미지 사이에 계산되는 손실. 이 손실을 최소화하면 원본 이미지의 콘텐츠가 통합 이미지에 더 많이 보존된다. | ||
+ | - 스타일 손실: 스타일 이미지와 통합 이미지 사이에 계산되는 손실. 이 손실을 최소화 하면 통합 이미지의 화풍이 스타일 이미지와 비슷해진다. | ||
+ | - 노이즈 손실: 총 분산 손실이라고도 한다. 통합 이미지에 포함된 노이즈 양을 측정한 값이다. 이 손실을 최소화 하면 이미지가 매끄러워진다. | ||
+ | |||
+ | 총 손실을 다음과 같이 계산된다. | ||
+ | |||
+ | 총_손실 = [스타일(스타일_이미지) - 스타일(통합_이미지)] + [콘텐츠(원본_이미지) - 콘텐츠(통합_이미지)] | ||
+ | |||
+ | 앞서 정의한 총 손실을 최소화하는 신경망 학습 방법을 이해해 보자. | ||
====LLM==== | ====LLM==== | ||
- RNN과 같이 기존 Seq2Seq 처리 기반 언어모델은 병렬이 아닌 순차 처리를 바탕으로 하므로 문장이 길어질수록 앞쪽 정보가 소실되는 장기의존성 문제가 존재 | - RNN과 같이 기존 Seq2Seq 처리 기반 언어모델은 병렬이 아닌 순차 처리를 바탕으로 하므로 문장이 길어질수록 앞쪽 정보가 소실되는 장기의존성 문제가 존재 | ||
- 이를 극복하기 위해 장단기기억, | - 이를 극복하기 위해 장단기기억, | ||
+ | |||
+ | - CNN은 합성곱필터라는 장치를 이용해서 시퀀스의 ‘지역적인 특성’을 짚어내는 모델이다. 다음 단어 맞히기 과정에서, | ||
+ | 다는 단점이 있다 | ||
+ | - 트랜스포머는 ‘문장 전체’ 안에서 단어들간의 ‘관계를 파악’하는 방식이다. 트랜스포머 모델은 기존의 CNN과 RNN을 사용하지 않고, “어텐션”이라는 메커니즘만을 사용한다. | ||
+ | [20230331_Everything Everywhere All at Once AI가 불러온 신산업 혁명_미래에셋증권] | ||
- 트랜스포머의 핵심은 셀프어텐션(Self-attention)으로 문장에 나열된 단어간 연관성을 파악하는 역할을 수행하여 단어 중요도에 따른 ‘집중’여부를 판단 | - 트랜스포머의 핵심은 셀프어텐션(Self-attention)으로 문장에 나열된 단어간 연관성을 파악하는 역할을 수행하여 단어 중요도에 따른 ‘집중’여부를 판단 | ||
Line 774: | Line 828: | ||
[[data_analysis: | [[data_analysis: | ||
- 디코더만 사용 | - 디코더만 사용 | ||
+ | - Large model이면 디코더만 있어도 decoder-only models can internally encode necessary context from prior tokens, reducing the need for an explicit encoder. | ||
+ | - Decoder-only models still leverage self-attention (though in a causal form), allowing them to capture dependencies efficiently. | ||
+ | - Many tasks that traditionally required encoder-decoder architectures can now be handled end-to-end with a sufficiently large decoder-only model. | ||
+ | - With enough training data, a decoder-only model learns latent representations of input text similar to an encoder but in a more flexible, autoregressive way. | ||
+ | |||
+ | === 유사도 Encoder === | ||
+ | **Cross-Encoder: | ||
+ | 1. 구조: 두 문장을 동시에 하나의 인코더에 입력하여 처리합니다[1]. | ||
+ | 2. 성능: 일반적으로 더 높은 정확도를 보입니다. 문맥을 고려하므로 더 나은 검색 성능을 제공할 수 있습니다[2]. | ||
+ | 3. 처리 방식: 질의와 문서 쌍을 함께 입력으로 받아 처리합니다. 입력 형식은 " | ||
+ | 4. 단점: 계산 비용이 높고 처리 시간이 많이 소요됩니다. 특히 큰 데이터셋에서는 사용하기 어렵습니다[2]. | ||
+ | |||
+ | **Bi-Encoder: | ||
+ | 1. 구조: 두 문장을 별도의 인코더로 독립적으로 처리합니다[1]. | ||
+ | 2. 성능: Cross-Encoder보다 정확도가 다소 낮을 수 있지만, 실제 사용에 더 유리합니다[3]. | ||
+ | 3. 처리 방식: 문서와 질의를 각각 별도로 인코딩한 후, 유사도를 측정하여 관련성이 높은 문서들을 찾습니다[2]. | ||
+ | 4. 장점: 문서들을 미리 임베딩하여 저장해놓을 수 있어, 실제 검색 시 질의에 대해서만 임베딩한 후 유사도 측정을 진행하면 되므로 소요 시간이 비교적 적습니다[2]. | ||
+ | 5. 확장성: 대규모 데이터셋에 적합하며, | ||
+ | 결론적으로, | ||
+ | |||
+ | Citations: | ||
+ | [1] https:// | ||
+ | [2] https:// | ||
+ | [3] https:// | ||
+ | [4] https:// | ||
+ | [5] https:// | ||
+ | |||
+ | 실제 응용에서는 두 방식을 결합하여 사용하는 경우도 많습니다. 예를 들어, 대규모 검색에서는 Bi-Encoder를 사용하여 초기 검색을 수행한 후, 상위 결과에 대해 Cross-Encoder를 적용하여 더 정확한 순위를 매기는 방식을 사용할 수 있습니다. 이렇게 함으로써 Bi-Encoder의 효율성과 Cross-Encoder의 정확성을 모두 활용할 수 있습니다. | ||