기술(Tech, IT)/머신 러닝(Machine Learning) 43

[Machine Learning] Federated Learning (연합 학습)

Federated Learning은 로컬 데이터 샘플을 보유한 여러 분산형 edge device 또는 server에서 모델을 교환하지 않고도 학습할 수 있는 머신 러닝 접근 방식이다. 중앙 서버와 같은 한 곳에서 모든 데이터를 수집하는 대신 데이터가 저장된 곳으로 모델을 보내 로컬에서 학습한 다음 학습한 내용(예: model updates 또는 gradients)만 중앙 서버나 aggregator로 다시 보낸다. 이 프로세스는 원시 데이터가 디바이스를 벗어나지 않고 집계된 insight만 공유되므로 사용자 개인정보를 보호하는 데 도움이 된다. 특히 의료(환자 데이터), 금용(거래 기록) 또는 IoT(사물 인터넷) 디바이스와 같이 데이터 개인 정보 보호가 중요한 시나리오에서 유용하다. 또한 네트워크를 통해..

[ML] Hidden Markov Model (HMM, 은닉 마르코프 모델) - 2

Hidden Markov Model의 몇 가지 용어에 대해 알아보자. Emission Probability (Observation Probability, 방출 확률, 관측 확률) : Hidden state (variables, 변수)를 관측 변수(observation variables)와 연관시키는 것으로, 특정 hidden state가 주어졌을 때 특정 visible state (obsevation, 관측)를 관찰할 확률을 의미 Prior Probability (사전 확률) : observation (관측)을 보기 전에 특정 상태에 있을 화률 (HMM의 맥락에서 초기 상태 분포(initial state distribution)라고도 함) Transition Probability (전환 확률) : 한 h..

[ML] N-Gram Language Models - 1 (Backoff, Interpolation)

N-Gram Language Model에서 발견되지 않은 n-gram에 대한 확률 0을 다루는 두 가지 기술에 대해 알아보자. 두 전략 모두 가능한 모든 n-gram이 0이 아닌 확률을 갖도록 하여 Language Model의 견고성(robustness)와 정확성(accuracy)를 향상시키도록 설계되었으며, 이는 학습 데이터가 희소하거나 불완전한 경우에 유용하다. backoff는 데이터가 누락된 경우 더 간단한 모델로 단계적으로 축소하는 방법을 제공하며, interpolation은 다양한 모델 복잡성의 정보를 혼합해 더 많은 정보를 바탕으로 예측할 수 있도록 한다. Backoff : 이 전략은 모델이 학습 데이터에서 볼 수 없었던 n-gram을 발견할 때 사용된다. 확률을 0으로 할당하는 대신, 모델은..

[ML] Word Embeddings - 2

Word Embeddings의 구체적인 예시와 어떻게 사용되는지를 알아보자. 구체적 예시 Word2Vec : "king", "queen", "man", "woman" 라는 단어가 있다고 가정해보자. 학습된 Word2Vec 모델에서 Embedding은 다음와 같이 나타낼 수 있다. "king": [0.2, -0.1, 0.4] "queen": [0.21, -0.09, 0.41] "man": [-0.4, 0.3, -0.1] "woman": [-0.39, 0.31, -0.09] "king"과 "queen"이 "man"과 "woman"과 마찬가지로 유사한 벡털르 가지고 있음을 알 수 있다. GloVe :"computer", "keyboard", "flower", "rose" 라는 단어가 있다고 가정해보자. 이는 ..

[ML] Word Embeddings - 1

Word Embeddings은 비슷한 의미를 가진 단어들이 비슷한 표현을 갖도록 하는 단어 표현의 한 유형이다. 이는 ML 알고리즘이 처리할 수 있도록 텍스트 데이터를 숫자 형식으로 변환하는 NLP의 기본 테크닉이다. 설명 Numerical Represenatation (숫자 표현) : Word Embeddings은 단어를 실수 벡터로 변환한다. 어휘의 각 단어는 고차원 공간(일반적으로 수백 차원)의 벡터에 매핑된다. Capturing Semantic Meaning (의미론적 포착) : 이러한 벡터는 단어의 의미를 포착하도록 설계돼있다. 비슷한 문맥에서 사용되는 단어는 비슷한 Embedding을 갖는 경향이 있다. 예를 들어, "king"과 "queen"은 Embedding 공간에서 가깝다. Contex..

[ML] RNN과 POS tagging

RNN(Recurrent Neural Network)과 POS (Part-of-speech) tagging의 관계에 대해 알아보자. 순차적 데이터 모델링 : RNN은 특히 NLP의 문장과 같이 순차적 데이터를 포함하는 작업에 적합하다. POS tagging은 본질적으로 시쿼스(또는 문장)의 각 단어에 tag가 할당되는 sequence labeling 작업이다. 컨텍스트 인식 : POS tagging에 RNN을 사용할 때의 주요 이점 중 하나는 숨겨진 상태(hidden state)를 통해 컨텍스트를 유지할 수 있다는 점이다. 이를 통해 POS tag를 할당할 때 문장 내 단어의 문맥을 고려할 수 있으며, 이는 문맥에 따라 여러 단어가 서로 다른 tag를 가질 수 있기 때문에 매우 중요하다. End-to-e..

[ML] RNN (Recurrent Neural Network)

RNN 또는 순환 신경망은 시계열(time series, 일정 시간 간격으로 배치된 데이터들의 수열), 주식 가격 및 NLP 텍스트와 같은 데이터 시퀀스에서 패턴을 인식하기 위해 설계된 인공 신경망 (Artificial Neural Network)의 한 유형이다. 이러한 네트워크의 "순환, 반복적(recurrent)" 특성은 RNN의 아키텍처에서 비롯되는데, 정보가 지속될 수 있는 루프(loop)를 가지고 있어 입력 데이터 포인트의 순서와 컨텍스트가 중요한 작업에 매우 적합하다. RNN과 관련된 몇 가지 주요 특징 및 개념에 대해 알아보자. Memory Cells (메모리 셀) : Feed-Forward 네트워크와 같은 전통적인 신경망은 이전 입력에 대한 메모리가 없다. 반면, RNN은 메모리 셀을 가지..

[ML] POS tagging (Part-of-speech, 품사)

NLP에서 POS는 단어가 문법적 기능(syntactic functions)에 따라 할당되는 카테고리를 의미한다. 예를 들어, 영어 문법에서 단어들은 Noun(명사), Verb(동사), Adjective(형용사), Adverb(부사), Pronoun(대명사), Preposition(전치사), Conjunction(접속사), Interjection(감탄사)와 같은 클래스로 분류된다. POS tagging은 텍스트의 각 단어에 해당하는 품사로 표시(labeling)하는 작업이다. 이는 named entity recognition (명명된 엔티티 인식), parsing, sentiment analysys 같은 하위 작업에 유용하다. POS tagging을 위한 다양한 알고리즘과 도구가 있으며, rul-base..

[ML] Multinomial Naive Bayes (다항 분포 나이브 베이즈) - 2

Multinomial Naive Bayes에 대해 다시 한 번 간단히 짚어보고, 예시를 살펴보자. Multinomial Naive Bayes는 불연속 데이터에 적합한 Naive Bayes classifier의 변형으로, 텍스트 분류의 맥락에서 단어 수 또는 TF-IDF score 같은 기능과 함께 자주 사용된다. 문제 : 영화 리뷰를 "Positive"와 "Negative"로 분류 Training Data : "I love this movie. It's amazing!" - Positive "A wonderful film with great characters" - Positive "I really disliked this move." - Nagative "Such a waste of time." - N..

[ML] Vecotrizer (벡터화 기법)

NLP에서 단어, 구문 또는 전체 문서를 벡터로 변화하는 대표적인 기술로 Count Vectorizer, TF-IDF, Word2Vec, GloVe가 있다. 각각에 대해 알아보자. Count Vectorizer (카운트 벡터라이저) 설명 : 텍스트 데이터를 표현하는 방법으로, 각 문서 (또는 텍스트 세그먼트)에 대해 각 단어의 발생 횟수를 계산해 각 요소가 어휘의 단어에 해당하는 벡터로 문서를 표현한다. 벡터의 길이는 어휘의 크기이며, 각 요소의 값은 문서에서 해당 단어의 개수다. 사용 사례 : 텍스트 분류, 클러스터링 등을 위한 고전적인 머신 러닝 모델에서 주로 사용된다. 특징 : 단어 간의 의미론적 의미나 관계를 포착하지 않고, 의미는 비슷하지만 형태가 다른 단어(예: run과 running)는 별개..