일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 빅데이터
- 물걸레로봇청소기추천
- hopfield network
- 패턴인식
- 동아리
- Neural Network
- Bidirectional Associative Memory
- 삼성소프트웨어멤버십
- 신경망
- 인공지능
- Python
- 구글 앱 엔진
- SSM
- 물걸레자동세척로봇청소기
- 가상화
- Google App Engine
- 파이썬
- NarwalFreo
- 갤럭시탭S8울트라
- 나르왈프레오
- BAM
- 삼성
- 증강현실
- 신경회로망
- 패턴 인식
- 삼성전자 소프트웨어멤버십 SSM
- 하이퍼바이저
- 멤버십
- Friendship
- 고려대학교
- Today
- Total
정보공간_1
[4기 강남 안태형] 쉽게 사용할 수 있는 예측 알고리즘 1 본문
예측 알고리즘 – EWMA, FUSD
안녕하세요? ^^
강남 멤버십 21-2기 안태형입니다.
오늘 제가 다루려는 주제는 예측 알고리즘 입니다. 현재 무수히 많은 예측 알고리즘들이 존재하지만 저는 그들 중에서 정말 간편하게 사용할 수 있는 알고리즘들을 소개하려고 합니다. 첫 번째 소개해 드리는 알고리즘은 EWMA, FUSD입니다.
1. EWMA(Exponentially Weighted Moving Average)
EWMA[1]는 각각의 데이터에 가중치 α를 주도록 한다. EWMA는 전 분야에서 사용되는 알고리즘으로서 다음과 같이 나타낸다.
E(t) = α ∗ E(t − 1) + (1 − α) ∗ O(t), 0 ≤ α ≤ 1
2. FUSD(Fast Up Slow Down)
FUSD[2]의 경우에는 클라우드 컴퓨팅 환경에서 CPU Load를 예측하기 위하여 고안된 알고리즘이다. [3]에서는 클라우드 컴퓨팅 환경에서 사용자의 서비스 요구를 처리할 시 Overprovisioning하여 자원 낭비가 발생하는 것 보다 Underprovisioning하게 되어 사용자의 요구를 처리하지 못하는 상황이 사용자 만족도을 떨어트릴 뿐만 아니라 해당 서비스를 다시는 사용하지 않는 다고 나타낸다.
따라서 FUSD는 EWMA가 실제 값과 예측 값 사이를 지나는 한계와 급격하게 증가하는 서비스 요구량을 반영하고 하향시에는 천천히 감소하도록 EWMA를 개선하였다. FUSD는 실제 값이 상승 구간에 있을 때는 급격한 상승을 반영하기 위하여 α에 음수를 택하도록 한다. 즉, α가 -1 ≤ α ≤ 0의 범위일 때는 다음과 같이 표현된다.
E(t) = −|α| ∗ E(t − 1) + (1 + |α|) ∗ O(t)
= O(t) + |α| ∗ (O(t) − E(t − 1))
값이 하향구간에 있을 때는 기존의 EWMA식을 사용하도록 한다. 그림 1는 [2]에서 저자의 대학교에서 DNS Server를 기반으로 CPU load 예측을 한 것이고 그림 2은 구글 클러스터 데이터(Google Cluster Data)[5]를 기반으로 서비스 요구량을 예측한 것이다.
Figure 1. CPU load 예측(↑ α = −0.2, ↓ α = 0.7)[2]
Figure 2. 구글 클러스터 데이터 기반의 FUSD를 이용한 서비스 요구량 예측
그림 2, 3을 보면 FUSD는 일반적으로 실제 값보다 위에 나타날 뿐만 아니라 급격하게 증가하는 요구량도 만족하는 것을 볼 수 있다.
다음 시간에는 FUSD에서 비교 알고리즘을 택하고 마이크로소프트의 MSN에서 Login Rate를 예측하기 위하여 사용된 SPAR[4]에 대해서 소개하도록 하겠습니다.
[1] http://en.wikipedia.org/wiki/EWMA_chart
[2] Z. Xiao, W. Song, Q. Chen, "Dynamic resource allocation using virtual machines for cloud computing environment," IEEE Transactions on Parallel and Distributed Systems, vol.24, no.6, pp.1107-1117, June. 2013.
[3] M. Armbrust, A. Fox, R. Griffith, A.D. Joseph, R. Katz, A. Konwinski, G. Lee, D. Patterson, A. Rabkin, I. Stoica and M. Zaharia, "A view of cloud computing", Communications of the ACM, vol.53, no.4, pp.50-58, 2010.
[4] G. Chen, H. Wenbo, J. Liu, S. Nath, L. Rigas, L. Xiao, and F. Zhao, “Energy-aware server provisioning and load dispatching for connection-intensive internet services,” in Proc. USENIX Symposium on NSDI, pp.337-350, Berkeley, USA, April, 2008.
[5] Google Cluster Data, http://googleresearch.blogspot.kr/2010/01/google-cluster-data.html.
'IT 놀이터 > Elite Member Tech & Talk' 카테고리의 다른 글
[4기 강남 안태형] OpenFlow 소개 (0) | 2013.10.27 |
---|---|
[4기 강남 안태형] 쉽게 사용할 수 있는 예측 알고리즘 2 (0) | 2013.10.27 |
[4기 부산 오세빈] Chrome App을 만들어보자! (0) | 2013.10.26 |
[4기 부산 오세빈] 서버 프레임워크 VERT.X 소개와 활용 (0) | 2013.10.26 |
[4기 강남 이상훈] Mobile Accessibility[모바일 애플리케이션 접근성 지침]-Part 3 (0) | 2013.10.25 |