본문 바로가기
반응형

개발 Tools/파이썬_Deep learning & ML24

딥러닝을 위한 기초 개념 Perceptron ( 활성함수, DNN ) Perceptron 가장 기본이 되는 단위라고 생각할 수 있다. 어떤 모델에 대해 내가 원하는 결과를 나타내는 h라고 본다. 심플하게 어떤 입력과 h에 대한 가중치를 곱한 값을 sign함수에 넣었을 때, 양수면 +1로 판단하고 음수면 -1로 판단한다. 일종의 예측값이라고 보면 된다. 이렇게 예측값과 실제 값이 있을 텐데 이 값을 비교해서 틀렸다면 가중치 w를 변경해가며 내가 원하는 결과가 나올 때까지 h를 변경해 간다. 가중치란 어떤 입력이 더 중요한지 아닌지에 대한 조절 값이다. 다음과 같은 식이 있는데 조금 더 예쁘게 하기 위해 b를 w0라고 하고 1을 x1이라고 하면 예쁜 식이 나온다. 이렇게 시그마를 행렬로 바꾸면 똑같은 결과를 나타내니 더 이쁘게 정리하기 해서 최종적으로 위와 같은 식이 나왔다... 2022. 5. 4.
딥러닝을 위한 기초 개념 Entropy ( Cross entropy, KL divergence, 엔트로피 ) Entropy 먼저 entropy에 대해 알아보자 entropy는 정보를 표현하는데 있어 필요한 평균 최소 자원량이라고 한다. 그렇다면 정보를 어떻게 표현할까? 공통적으로 bits로 표현하기로 했다. 그렇다면 비트가 길면 길수록 더 많은 자원을 썼다고 볼 수 있다. 그러니 우린 최소한으로 만들기 위해 비트의 길이를 줄여야 한다. 예를 들어보자, 대화를 하는데 100마디 중에 1마디만 욕이라고 하고, 나머진 칭찬이라고 하자. 이럴 때 욕과 칭찬을 bit로 표현할 때, 욕을 1bit, 칭찬을 3bit라고 하면 (3 bit * 99 + 1 bit * 1) = 298 bit으로 표현된다. 하지만 우린 최소 길이로 만들어야 한다. 그러니 확률이 적은 애한테 큰 bit를 할당해야 한다. 욕을 3bit, 칭찬을 1b.. 2022. 5. 2.
머신러닝 KMeans Find Optimal k ( Elbow Method, Silhouette Method ) KMeans KMeans는 중앙점 seed와 개체들 간의 평균 거리를 기준으로 군집을 형성하는 알고리즘을 KMeans 클러스트링이다. 동작 순서는 아래와 같다 1. 지정 클러스터의 수에 맞게 임의로 중심을 지정한다 2. 거리를 기준으로 클러스트링을 한다. 3. 이전 클러스트링 내에서 중심을 새로 지정한다. 4. 바꿔도 군집이 바뀌지 않으면 종료한다. 자세한 설명은 아래 글을 참고하면 좋다. https://eunsukimme.github.io/ml/2019/12/16/K-Means/ 기본적인 KMeans의 동작은 알고 있다고 생각하고, 어떻게 최적의 클러스터 개수를 지정할 수 있을지 알아보자. 두 가지 방법이 있다. 하나씩 알아보자 1. Elbow Method 2. Silhouette Method Elbo.. 2022. 3. 24.
머신러닝 Spectral Clustering Clustering(클러스트링)이란, 번역하면 군집, 집단, 무리라는 뜻을 가진다. 데이터의 관점에선 주어진 데이터들의 특성을 고려해 집단을 정의하고 집단의 대표할 수 있는 대표점을 찾는 것으로 데이터 마이닝의 한 방법이다. 클러스트링에는 여러 방법이 존재한다. 1. 평균 기반 2. 계층 기반 3. 밀도 기반 4. 연결 기반 이중에 이번에는 Spectral Clustering을 알아볼까한다. 많은 경우에서 기존의 클러스트링 알고리즘보다 더 나은 성능을 보인다. Spectral Clustering는 거리가 가까이 있더라도 연결이 없다면 군집화하지 않는다. 크게 3가지 절차를 거쳐 클러스트링을 진행한다. 첫 번째로, 각각의 데이터 포인트를 유사도에 따라 행렬(그래프)로 변환시킨다. - 좀 더 쉽게 생각하면,.. 2022. 2. 11.
머신러닝 fit_transform() 과 transform()의 차이점 바로 들어가겠다. fit() fit이란 정규화를 하는 것이다. MinMax에서는 최소와 최대를 인지하는 작업이다. Standardscler에서는 평균과 편차를 계산하는 작업이다 transform() & fit_transform() 예를 들어 MinMax를 하는 train 데이터에 (2, 3, 4, 5)가 들어있다. 이걸 fit_transform() 하면 최솟값인 2는 0으로 최댓값인 5는 1로 매핑된다. 근데 test 데이터에 (2, 3, 4, 6)이 들어있다. train 데이터에서는 5가 최대라고 했는데 6이 있다면 어떻게 해야 할까?? 5를 그대로 1로 매핑하고 6을 1.2.로 매핑한다. train데이터와 test데이터가 같은 조건으로 맞춰줘야 하기 때문에 test데이터에서는 fit()을 하지 않고 .. 2021. 12. 12.