머신러닝 10

[강화학습] Planning by Dynamic Programming

Planning : MDP를 알고 있을 때(model-based) 최적의(optimal) value, policy를 찾는 것. Dynamic Programming(DP) : 전체 큰 문제를 여러 개의 작은 문제(sub problem)로 분할해서 솔루션을 찾고 합쳐서 큰 문제를 해결하는 것. - MDP는 두 조건을 모두 충족함. 1) Optimal Substructure : sub problem으로 분할 가능해야하며, 각각에 대한 optimal한 솔루션이 있어야 함. => MDP는 bellman equation 통해 recursive하게 분해할 수 있음 2) 각각의 sub problem들이 같은 형태로 되어있어 하나의 sub problem에서 사용했던 ..

머신러닝 2022.07.29

[강화학습] Markov Decision Process (MDP)

강화학습 : Agent는 어떤 Action을 취했을 때, environment로부터 피드백(리워드)을 받는다. 강화학습의 목표는 리워드를 최대로 하는(최적화된) action들의 set을 학습하는 것. 1) Agent가 먼저 environment의 state를 observation 2) Observation 결과를 가지고 적절한 action을 수행 3) Environment는 action에 따라 변화함. (state 이동) 4) 3)에서 발생한 리워드를 agent가 받게됨. Markov Process(property) : 확률 모델 기반 (앞으로 발생할 수 있는 이벤트의 시퀀스를 확률로 모델링)으로 바로 이전 이벤트만을 참조하여 다음 이벤트를 예측함. Markov Property를 이용하는 처리 과정을 M..

머신러닝 2022.07.21

[강화학습] 관련 용어 및 표기

S : state set A : action set P : state transition probability (다른 state로 넘어갈 확률) R : 현재 state에 대한 리워드 기대값 V(s) : (state-)value function. 현재 state에서 받을 수 있는 리턴의 기대값. 현재 state를 리턴의 기대값(리턴 평균)을 통해 좋은지 나쁜지 측정함. Q (function): action-value function. 현재 state에서 action을 수행했을 때 받는 리턴의 기대값 Q*(s,a) : optimal action value function Gt: 리턴. total reward. Discounted 리워드 총합. γ: discounted factor. 현재 받을 수 있는 리워드..

머신러닝 2022.07.21

[논문리뷰/강화학습/보안] Feature Selection for Malware Detection Based on Reinforcement Learning

* 개인 공부용으로 작성하였습니다. 틀린 부분은 피드백 부탁드립니다. Z. Fang, J. Wang, J. Geng and X. Kan, "Feature Selection for Malware Detection Based on Reinforcement Learning," in IEEE Access, vol. 7, pp. 176177-176187, 2019, doi: 10.1109/ACCESS.2019.2957429. 출처 : https://ieeexplore.ieee.org/document/8920059 Feature Selection for Malware Detection Based on Reinforcement Learning Machine learning based malware detection ..

머신러닝 2022.07.19

[군집화] #6. DBSCAN

* "파이썬 머신러닝 완벽 가이드" 서적, 여러 개인 블로그들을 참고한 개인 공부용입니다 DBSCAN 대표적인 밀도 기반 군집화 알고리즘이다. 특정 공간 내에 데이터 밀도 차이를 기반 알고리즘으로 하고 있어 복잡한 기하학적 분포를 가진 데이터에도 군집화를 잘 수행한다. (K-means, 평균이동, GMM으로는 군집화 힘든 데이터) DBSCAN 주요 파라미터 입실론 주변 영역(epsilon): 개별 데이터를 중심으로 입실론 반경을 가지는 원형의 영역 최소 데이터 개수(min points): 개별 데이터의 입실론 주변 영역에 포함되는 타 데이터의 갯수 DBSCAN 데이터 포인트 핵심 포인트(core point): 주변 영역 내에 최소 데이터 갯수 이상의 타 데이터를 가지고 있는 경우 이웃 포인트(neighb..

머신러닝 2022.07.19

[군집화] #5. GMM

* "파이썬 머신러닝 완벽 가이드" 서적, 여러 개인 블로그들을 참고한 개인 공부용입니다 GMM GMM은 데이터가 여러 개의 정규 분포를 가진 데이터 집합들이 섞여서 생성된 것이라는 가정하에 군집화를 수행한다. GMM은 여러 개의 정규 분포 곡선을 추출하고, 개별 데이터가 그 중 어떤 정규 분포에 속하는지 결정한다. 이와 같은 방식은 GMM에서는 모수 추정이라고 하는데, 모수 추정은 대표적으로 2가지를 추정한다. 개별 정규 분포의 평균과 분산 각 데이터가 어떤 정규 분포에 해당되는지의 확률 모수 추정을 위해 GMM은 EM(Expectation and Maximization) 방법을 적용한다. from sklearn.datasets import load_iris iris = load_iris() featu..

머신러닝 2022.07.19

[군집화] #4. 평균이동

* "파이썬 머신러닝 완벽 가이드" 서적, 여러 개인 블로그들을 참고한 개인 공부용입니다 평균 이동 평균 이동(Mean Shift)는 K-Means와 유사하게 중심을 군집의 중심으로 지속적으로 움직이며 군집화한다. 두 방법의 차이점은 중심을 이동하는 방법이다. K-Means: 중심에 소속된 데이터의 평균 거리 중심으로 이동한다. 평균 이동: 중심을 데이터가 모여 있는 밀도가 가장 높은 곳으로 이동한다. 과정 평균 이동은 KDE(Kernerl Density Estimation)를 이용해서 확률 밀도 함수를 구한다. 데이터가 집중적으로 모여있어 확률 밀도 함수가 피크인 점을 군집 중심점으로 선정한다. 이러한 방식을 전체 데이터에 반복적으로 적용하면서 데이터의 군집 중심점을 찾는다. KDE(커널 밀도 추정) ..

머신러닝 2022.07.19

[군집화] #3. 군집평가

* "파이썬 머신러닝 완벽 가이드" 서적, 여러 개인 블로그들을 참고한 개인 공부용입니다 군집평가 비지도학습의 특성상 어떠한 지표라도 정확하게 성능을 평가하기 어렵다 실루엣 분석 다른 군집간은 비슷한 정도의 여유 거리가 있고, 동일 군집 데이터끼리는 가까운지 분석 실루엣 계수를 기반으로 하며 실루엣 계수는 개별 데이터가 가지는 군집화 지표이다. 실루엣 계수는 다음과 같이 표현할 수 있다. s(i) = (b(i)−a(i)) / max(a(i),b(i)) a(i): i번째 데이터에서 자신이 속한 군집내의 다른 데이터까지의 거리들의 평균 b(i): i번째 데이터에서 가장 가까운 타 군집내의 다른 데이터까지의 거리들의 평균 b(i)−a(i) : 두 군집 간 거리가 얼마나 떨어져 있는가 / max(a(i),b(i..

머신러닝 2022.07.15

[군집화] #2. 군집 시각화 (PCA, 군집 가상데이터 생성, K-means)

* "파이썬 머신러닝 완벽 가이드" 서적, 여러 개인 블로그들을 참고한 개인 공부용입니다 군집 시각화 (iris) 2차원 평면상에서 iris 데이터의 속성 4개를 모두 표현하는 것이 적합하지 않아 PCA를 이용해 4개의 속성을 2개로 차원 축소한 후 시각화. from sklearn.decomposition import PCA pca = PCA(n_components = 2) pca_transformed = pca.fit_transform(iris.data) pca_transformed irisdf['pca_x'] = pca_transformed[:, 0] #x좌표 irisdf['pca_y'] = pca_transformed[:, 1] #y좌표 irisdf # 클러스터별 인덱스 추출 marker0 = ir..

머신러닝 2022.07.15

[군집화] #1. K-means 알고리즘

* "파이썬 머신러닝 완벽 가이드" 서적, 여러 개인 블로그들을 참고한 개인 공부용입니다 군집화 비지도학습의 대표적인 기술로 x에대한 레이블이 지정 되어있지 않은 데이터를 그룹핑하는 분석 알고리즘 데이터들의 특성을 고려해 비슷한 특성을 가진 데이터 집단(클러스터)을 정의하고 데이터 집단의 대표할 수 있는 중심점을 찾는 것 이상탐지에 사용됨 K-means k-means 클러스터링은 데이터를 k개의 클러스터(cluster, 무리)로 분류 1) 사용자로부터 입력받은 k의 값에 따라, 임의로 클러스터 중심(centroid) k개를 설정해준다. 2) k개의 클러스터 중심으로부터 모든 데이터가 얼마나 떨어져 있는지 계산한 후에, 가장 가까운 클러스터 중심을 각 데이터의 클러스터로 정해준다. 3) 각 클러스터에 속하..

머신러닝 2022.03.22