반응형

여러가지공부/머신러닝(Machine Learning) 34

[LSH]Min Hashing이란? (Locality Sensitive Hashing#2)

Min Hashing이란? Min-Hashing은 대규모 집합을 짧은 서명(signature)으로 변환하는 기법이며, 이 과정에서 원래 집합 간의 유사성을 보존하는 것을 목표로 합니다. 이 방법은 특히 대용량 데이터에서 유사한 항목을 효율적으로 비교하기 위해 사용됩니다. 1. 0/1 벡터 인코딩 전체 집합(universal set)의 각 원소에 대해, 해당 원소가 주어진 집합에 포함되면 1로, 그렇지 않으면 0으로 표시하는 벡터로 집합을 표현합니다. >> 예를 들어, 전체 집합이 {A, B, C, D}이고, 주어진 집합이 {A, C}라면, 이 집합은 [1, 0, 1, 0]으로 표현됩니다. 2. 집합 연산의 비트 연산으로의 해석 집합 교집합: 두 집합의 교집합은 두 집합에 공통으로 포함된 원소들의 집합입니..

자카드 거리/유사도란? 예제로 이해하기 (Jaccard, distance, similarity)

목차 자카드 거리/유사도란? (Jaccard, distance, similarity) 고차원 공간에서 "가까운 이웃"을 찾는 것은, 예를 들어 인터넷 상의 다양한 상품, 영화, 또는 문서들 중에서 비슷한 것들을 찾아내는 과정을 말합니다. 여기서 "가까운"이라는 개념을 정확히 정의하기 위해 우리는 "거리"라는 개념을 사용합니다. 이 거리는 물리적인 거리가 아니라, 상품, 영화, 문서 등의 속성이 얼마나 유사한지를 수치화한 것입니다. 이번에 우리가 살펴볼 거리의 종류는 "자카드 거리"입니다. 자카드 거리는 두 집합 사이의 유사성을 측정하는 방법 중 하나로, 자카드 유사도를 통해 계산됩니다. 자카드 유사도 자카드 유사도는 두 집합 간의 유사성을 측정하기 위한 지표입니다. 이는 두 집합이 공유하는 원소의 수를 ..

[LSH]K Shingling(K gram)이란?(Locality Sensitive Hashing#1)

목차 Shingling이란? "Shingling"이라는 용어는 문서(Document) 를 집합(Set)으로 변환하는 과정을 말합니다. 이 과정은 문서의 내용을 분석하고, 비교하고, 유사성(Similarity)을 측정하는 데 유용한 방법입니다. 여기서 '집합'이라는 것은 문서 내의 모든 유니크한 요소(예: 단어, 문자열, 토큰 등)의 모임을 의미합니다. Shingling 과정 문서 정의: 우리가 비교하고 싶은 텍스트 또는 문서가 무엇인지 정의합니다. 토큰화(Tokenization): 문서를 더 작은 단위(토큰)로 나눕니다. 이 토큰들은 문자, 단어, 문장 등이 될 수 있습니다. Shingling: 이제 토큰화된 문서에서 연속적인 토큰의 시퀀스(쉬잉글)를 생성합니다. 각 쉬잉글은 k개의 연속적인 토큰으로 구..

시간 복잡도 O(n^2)이란?(Time Complexity)

목차 시간 복잡도 O(n^2)이란?(Time Complexity) O(n^2)이란? O(n²)는 입력 크기에 따라 알고리즘 실행 시간이 제곱으로 증가한다는 것을 의미합니다. 예를 들어, 입력 크기가 두 배가 되면 실행 시간은 네 배로 증가합니다. 이런 알고리즘은 큰 입력에 대해 느려질 수 있으며, 더 효율적인 알고리즘에 비해 성능이 떨어질 수 있습니다. O(n^2) 계산 방법 O(n²) 시간 복잡도를 nC2와 관련하여 설명하자면, nC2는 n개의 항목 중에서 2개를 고르는 조합의 수를 나타냅니다. 이는 (n*(n-1))/2로 계산되며, 이 식에서 가장 큰 영향을 미치는 항은 n²입니다. 따라서, nC2의 성장률이 n²에 비례한다고 볼 수 있습니다. 배열에서 모든 쌍의 요소를 비교하여 중복을 확인하는 알고..

[Neural Networks] NN의 Backpropagation이란? 예제와 함께 설명#1

목차 [Neural Networks] NN의 Backpropagation이란? 앞서 포스트에서 신경망의 구성과 Forward Propagation이 어떻게 동작하는지에 대해 알아보았습니다. 백프로파게이션(backpropagation)은 인공신경망(artificial neural network)에서 가중치(weight)와 편향(bias)을 조정하기 위한 알고리즘입니다. 이 알고리즘은 입력 데이터를 통해 예측을 수행한 후, 실제 출력과의 오차를 역전파하여 각 가중치와 편향의 영향력을 계산합니다. 그런 다음 이 오차에 따라 가중치와 편향을 조정하여 모델의 예측을 개선합니다. 그림1과 같은 형태가 NN입니다. 여러층이 모여있으면 Multi layer NN이라고 합니다. 앞서 Backpropagation이란 가중..

[Neural Networks] NN이란? 구성 및 forward propagation 동작 방식

목차 NN(Neural Networks)이란? 신경망은 "뉴런"이라고 불리는 작은 단위로 구성되어 있습니다. 각 뉴런은 입력을 받아들이고 이를 처리한 후 출력을 생성합니다. 이 출력은 다른 뉴런에게 전달됩니다. 이러한 뉴런들은 여러 층(layer)으로 구성되어 있으며, 입력층(input layer), 은닉층(hidden layer), 출력층(output layer)으로 구분됩니다. 신경망의 핵심은 가중치(weights)라고 불리는 매개변수입니다. 각 뉴런은 입력과 가중치를 곱한 값을 합산한 후, 비선형 함수인 활성화 함수(activation function)를 통과시켜 결과를 출력합니다. 이렇게 입력과 가중치의 조합을 조정하면서 신경망은 데이터의 복잡한 패턴을 학습할 수 있습니다. 학습 과정에서, 신경망..

정보이득이란? 지니불순도, 엔트로피, 분류오차 예제 풀이, 파이썬 코드 풀이(Information Gain, Gini Impurity, Entrophy, Classification Error)#2

목차 엔트로피를 사용해서 정보이득 풀이 및 파이썬 검증 앞서 포스트에서 정보이득(Information Gain)과 지니 불순도(Gini Impurity)를 사용해서 정보 이득을 구하는 방법에 대해 알아보았습니다(https://scribblinganything.tistory.com/719). 이번 포스트는 엔트로피(Entrophy)와 분류오차(Classification Error)를 사용해서 정보이득을 구하는 방법에 대해 알아보겠습니다. 우선 엔트로피 입니다. 정보 이론에서는 엔트로피를 확률 분포의 함수로 정의합니다. 엔트로피는 주어진 확률 분포에서 발생할 수 있는 모든 사건의 가능성을 고려하여 평균적으로 필요한 정보의 양을 측정합니다. 불확실성이 높을수록 엔트로피는 큰 값을 가지며, 불확실성이 낮을수록 ..

정보이득이란? 지니불순도, 엔트로피, 분류오차 예제 풀이, 파이썬 코드 풀이(Information Gain, Gini Impurity, Entrophy, Classification Error)#1

정보이득이란(Information Gain)? 정보 이득(Information Gain)은 정보 이론과 머신 러닝에서 사용되는 개념으로, 주어진 속성이나 특성을 기준으로 데이터를 분할할 때 얻을 수 있는 정보의 양을 측정하는 지표입니다. 정보 이득은 데이터 분할 전후의 불확실성 감소량을 측정하여 해당 속성이나 특성이 분류 작업에 얼마나 유용한지를 평가하는 데 사용됩니다. 정보 이득은 지니불순도, 엔트로피, 분류오차(Gini Impurity, Entrophy, Classification Error)라고 불리는 개념을 기반으로 계산됩니다. 엔트로피는 주어진 데이터 집합의 혼잡도나 불확실성을 나타내는 지표로, 값이 작을수록 데이터가 분류되어 정돈되어 있다는 의미를 가지고 있습니다. 따라서 정보 이득은 주어진 ..

공분산 행렬이란? 예제로 값 구해보기(Covariance Matrix), 파이썬 코드

목차 공분산 행렬(Covariance Matrix)이란? 공분산 행렬이란 아래와 같이 수식(Equation)을 정의합니다. 행렬로 표기를 하고 시그마(Σ)로 표기합니다. 시그마(Σ)는 이산 적분식과 다르니 확실히 구분해서 생각해야 합니다. 하나의 문자로 사용됩니다. 공분산 행렬은 저의 경우 기계학습의 PCA(Principal Component Analysis) 계산에서 사용되어 공부를 하게 되었습니다. 그 외에도 다양한 분야에서 공분산 수식으로 처리하는 경우들이 있습니다. 그림1과 같이 데이터셋(Dataset)을 통해 공분산을 만드는 방법에 대해 생각해보겠습니다. 데이터셋의 n행은 샘플들의 개수로 볼수 있고 d는 차원 값 또는 Feature라고 부르는 개수 입니다. 예를 들면 학생 4명에 대한 키와 몸무..

[머신러닝] K mean clustering이란? 예제로 이해하기(클러스터링)

목차 K mean clustering이란? 위 그림1과 같이 무게 별로 측정한 샘플이 12개가 있다고 생각해 보겠습니다. 이를 3개의 Cluster로 나눈다고 생각하면 우리는 인직하는 그대로 쉽게 3개로 나눌수 있을 것입니다. 하지만 컴퓨터 프로그램이 위 분류를 진행하려면 어떻게 해야할 까요? Clustering 분류 방법 중 하나가 K mean Clustering입니다. 이번 포스터에서는 K mean Clustering에 대해 알아보겠습니다. K는 Cluster의 수를 의미합니다. 간단하게 각 클러스터의 평균으로 분류하겠다는 의미입니다. K mean clustering 예제로 알고리즘 만들기 1. 그림1을 분류할 덩어리인 Cluster의 수 k 값을 결정합니다. k 값 결정은 포스트 뒤쪽에서 설명 드리..

반응형