DOI QR코드

DOI QR Code

An Implementation of an Intelligent Access Point System Based on a Feed Forward Neural Network for Internet of Things

사물인터넷을 위한 신경망 기반의 지능형 액세스 포인트 시스템의 구현

  • Lee, Youngchan (School of Information Technology Engineering, Daegu Catholic University) ;
  • Lee, SoYeon (School of Information Technology Engineering, Daegu Catholic University) ;
  • Kim, Dae-Young (School of Information Technology Engineering, Daegu Catholic University)
  • Received : 2019.08.30
  • Accepted : 2019.10.06
  • Published : 2019.10.31

Abstract

Various kinds of devices are used for the Internet of Things (IoT) service, and IoT devices mainly use communication technology that uses the frequency of the unlicensed band. There are several types of communication technology in the unlicensed band, but WiFi is most commonly used. Devices used for IoT services vary in computing resources from devices with limited capabilities to smartphones and provide services over wireless networks such as WiFi. Most IoT devices can't perform complex operations for network control, thus they choose a WiFi access point (AP) based on signal strength. This causes a decrease in IoT service efficiency. In this paper, an intelligent AP system that can efficiently control the WiFi connection of the IoT devices is implemented. Based on the network information measured by the IoT device, the access point learns using a feed forward neural network algorithm, and predicts a network connection state to control the WiFi connection. By controlling the WiFi connection at the AP, the service efficiency of the IoT device can be improved.

사물인터넷 서비스를 위해 다양한 종류의 디바이스가 사용되고 있으며, 사물인터넷 디바이스들은 주로 비면허 대역의 주파수를 사용하는 통신기술을 활용하고 있다. 비면허 대역의 통신기술에는 몇 가지가 있지만, 현재 WiFi가 가장 대표적으로 사용된다. 사물인터넷 서비스를 위해 사용되는 디바이스는 제한된 기능을 가진 디바이스부터 스마트폰까지 컴퓨팅 리소스가 다양하고, WiFi 와 같은 무선 네트워크를 통해 서비스를 제공한다. 대부분의 사물인터넷 장치는 네트워크 제어를 위한 복잡한 연산을 할 수 없기 때문에 신호세기에 의존하여 WiFi 액세스 포인트를 선정하고 있다. 이는 사물인터넷 서비스 효율을 떨어뜨리는 원인으로 작용한다. 따라서, 본 논문에서는 액세스 포인트를 통해 사물이터넷 디바이스의 WiFi 연결을 제어할 수 있는 지능형 액세스 포인트 시스템을 구현한다. 사물인터넷 디바이스에서 측정된 네트워크 정보를 통해 액세스 포인트에서 피드 포워드 신경망 (feed forward neural network) 알고리즘을 사용하여 학습을 하고, 네트워크 연결 상태를 예측하여 디바이스의 WiFi연결을 제어한다. 이렇게 함으로써 사물인터넷 디바이스의 서비스 효율을 높일 수 있다.

Keywords

1. 서론

사물인터넷은 다양한 디바이스로부터 수집된 데이터를 기반으로 지능형 서비스를 사용자에게 제공한다. 사물인터넷 디바이스의 기능은 제한적인 것부터 비교적 풍부한 것까지 다양하게 존재하지만, 일반적으로 제한된 컴퓨팅 자원을 가진다. 사물인터넷의 서비스는 초연결(hyper-connectivity)을 기반으로 하며, 무선통신을 이용하여 서비스가 이루어진다 [1-3]. 주로 WiFi, Blue tooth, ZigBee와 같은 비면허대역의 무선통신 기술을 활용하여 서비스를 제공한다. 사물인터넷 서비스는 단순 메시지 전송부터 오디오 및 비디오 전송까지 다양한 서비스 범위를 가지며, 서비스에 따라 적용되는 무선통신 기술도 달라진다. 그중에서 넓은 서비스 범위를 가지는 WiFi가 가장 많이 사용된다고 할 수 있다 [4].

WiFi는 무선접속 장치로 알려진 액세스 포인트(Access point: AP)가 설치된 곳에서 전파를 이용하여 통신 서비스를 제공하는 근거리 통신망 기술이다. AP의 통신반경에 있는 WiFi 단말은 AP에 연결되어 다른 단말기나 인터넷과 데이터를 주고받는다. WiFi의 데이터 전송범위는 AP 및 단말기의 성능에 따라 차이가 있지만 가정용의 경우 최대 30m, 기업용의 경우 최대 200m가 일반적이다. 같은 조건일 경우 AP에서 멀어질수록 통신 속도가 점차 저하되고 특정 지점부터는 급속도로 저하되며 범위를 벗어나면 접속이 끊어지게 된다 [5-6].

일반적으로 사물인터넷 디바이스에서 AP를 선택하는 방법은 신호 세기에 의존하는 것이다. 이 방법은 AP에서 가용 대역폭 및 접속한 디바이스의 수 등을 고려하지 않기 때문에 최상의 데이터 전송 환경을 보장하지 못한다. WiFi 사용의 경우, 디바이스에서의 수신 신호의 세기가 높더라도 데이터 전송률이 매우 낮은 경우가 있다. AP에 연결된 디바이스가 많고, 이들의 데이터 전송이 빈번하여 네트워크 혼잡이 발생하는 경우인데, 이 경우 신호 세기만으로 AP를 결정하는 것은 적절하지 못하다. 또한, 수신신호 세기가 낮더라도 비교적 전송률이 좋은 경우도 있어 신호 세기만으로 AP를 선택하는 것은 효율적이라고 할 수 없다.

또한, 사물인터넷 디바이스나 모바일 단말은 제한된 기능과 자원을 가지기 때문에 AP를 선택하는 것을 위해복잡한 연산을 수행하는데 제약이 있다. 그래서 본 논문에서는 디바이스나 단말이 연산을 통해 AP를 선택하는 것이 아니라 AP에서 연산을 통해 디바이스나 단말의 연결을 관리하는 AP시스템을 구현한다. 사물인터넷 디바이스나 모바일 단말이 데이터 전송을 통해 획득할 수 있는WiFi 정보 (i.e., 신호 세기, 전송률 등)를 AP에 전달하면 AP는 해당 정보를 수집하고, 피드 포워드 신경망 (feed forward neural network) 알고리즘을 통해 학습한 결과를 통해 사물인터넷 다바이스나 단말의 WiFi 상태를 예측한다. 학습결과는 사물인터넷 디바이스 (또는 모바일 단말)로 다시 피드백됨으로써 서비스를 위해 더 나은 AP를 재 선택할 수 있게 된다.

2. 관련 연구

디바이스가 WiFi AP에 접속하기 위해서는 주변에 AP가 존재하는지를 먼저 확인해야 한다. AP는 비콘 메시지를 사용하여 자신이 서비스 하고 있음을 주기적으로 알린다. 디바이스는 비콘 메시지 수신을 통해 AP의 이름인 SSID와 링크의 전송률, 수신 신호 세기 등의 정보를 알수 있다. 디바이스는 여러 AP로부터 수신한 정보를 통해 자신이 사용할 AP를 선택하게 된다. 사물인터넷 디바이스에서는 일반적으로 수신 신호 세기가 가장 강한 AP를 선택하게 되고 선택된 AP에 연결 설정을 시도한다 [7,8].

OTJBCD_2019_v20n5_95_f0001.png 이미지

(그림 1) WiFi 연결 절차

(Figure 1) WiFi connectivity procedure

그림 1은 디바이스에서 WiFi AP로의 연결 절차를 보여준다. AP 접속 과정은 WiFi의 연결 설정 절차에 따라 이루어지며, 디바이스가 요청메시지를 보내고 응답 메시지를 수신하는 것으로 이루어지는 인증 (Authentication)과 연결 설정 (Association) 과정을 포함하고 있다. 인증은 디바이스의 MAC 주소를 통해 신원을 확인하는 과정이며, AP에 등록된 디바이스의 MAC 주소가 있다면 디바이스의 접속을 허용한다. 연결 설정 과정은 디바이스와 AP 사이의 통신에서 사용할 속도, QoS 값 등 WiFi 통신과 관련한 규약을 결정하는 것이다 [8].

현재 WiFi 표준은 구체적인 AP 선택 알고리즘을 제시하고 있지 않으며, 일반적으로 WiFi 시스템은 AP로부터 수신되는 신호세기 중 가장 강한 신호를 가진 AP를 선택한다. 이러한 기법을 RSSI (Received Signal Strength Indication) 기법이라고 한다. RSSI 기법은 신호의 세기만나타내기 때문에 네트워크의 다양한 상태를 반영하였다고 보기 어렵다 [9]. 특히, 사물인터넷 서비스의 확대로 인하여 WiFi 네트워크에 참여하는 디바이스가 급격히 증가하고 있는 상황에서 RSSI 기법에 의한 네트워크 선택은 문제점을 발생시킬 수 있다. 여러 디바이스가 동시에네트워크에 참여하게 되는 경우 네트워크 혼잡이 발생하게 되고 이것으로 인해 서비스 효율이 떨어지게 된다. 따라서 효율적인 사물인터넷 서비스 지원을 위해서는 네트워크 상태를 적절히 반영할 수 있는 측정기준에 대한 제시와 함께 효율적인 네트워크 선정 기법이 제공되어야 한다.

3. 지능형 사물인터넷 AP 시스템 설계

3.1 시스템 구조

OTJBCD_2019_v20n5_95_f0002.png 이미지

(그림 2) 시스템 구조

(Figure 2) System architecture

지능형 사물인터넷 AP 시스템은 그림 2와 같이 3개의 모듈로 구성된다. 액세스 컨트롤 (Access Control) 모듈은 직접 사물인터넷 디바이스와 연결되고 디바이스로부터 네트워크 환경에 대한 데이터를 수집한다. 그리고, 네트워크 환경에 대한 학습의 결과를 적용하여 AP에 접속된 디바이스의 연결 여부를 결정한다. 데이터베이스 (Database) 모듈은 액세스 컨트롤 모듈로부터 획득된 사물인터넷 디바이스의 네트워크 환경정보를 저장하고 관리한다. 학습엔진 (Learning Engine)은 데이터베이스에서 관리되는 네트워크 환경정보를 사용하여 학습을 수행하고, AP에 접속된 디바이스의 연결 상태를 예측한다. 예측된 결과는액세스 컨트롤 모듈에 전달되고, 디바이스의 AP 연결 유지 여부가 결정된다.

3.2 시스템 구성

본 논문에서 제안한 지능형 AP 시스템은 그림 2의 시스템 구조를 기반으로 하여 그림 3과 같이 구성된다. 액세스 컨트롤 모듈, 데이터베이스 모듈, 학습 엔진 모듈을 포함하여 학습 데이터의 수집 및 측정을 위한 클라이언트 시스템으로 이루어진다.

WiFi 네트워크 상태 예측을 위한 학습 데이터의 수집은 사물인터넷 디바이스의 데이터 전송으로부터 획득할 수 있다. 그러나 이 경우 안정적인 학습을 위한 데이터 수집을 위해서는 많은 시간이 필요하고, 정상상태의 학습이 이루어지기까지 부정확한 예측으로 인해 비효율적인 서비스 제공이 발생할 수 있다. 그래서, 본 논문에서는 클라이언트 시스템을 사용하여 측정된 데이터를 기반으로 학습 데이터를 만들어 학습 엔진 모듈에 적용하며, 디바이스가 서비스를 사용할 때 측정되는 데이터로 업데이트를 수행한다.

OTJBCD_2019_v20n5_95_f0003.png 이미지

(그림 3) 시스템 구성

(Figure 3) System organization

지능형 AP 시스템의 3가지 모듈은 네트워크로 서로 연결되며, 액세스 컨트롤 모듈로 입력받은 데이터는 데이터베이스 모듈에 기록되며, 학습 엔진 모듈은 데이터베이스 모듈에 기록된 데이터를 가지고 학습한다. 학습에 대한 결과는 사물인터넷 디바이스에 피드백됨으로써디바이스는 AP와 현재 접속하고자 하는 네트워크의 상태를 알 수 있다. 또한, 데이터베이스 모듈은 관리되고 있는 데이터의 통계를 시각화하여 네트워크 상태에 대한 정보를 사용자에게 제공한다.

3.3 지능형 AP의 기능과 역할

사물인터넷 디바이스는 많은 수의 디바이스가 AP에 연결되어 서비스를 받게 된다. 무선 네트워크에 많은 양의 트래픽이 몰리게 되면 네트워크 혼잡이 발생하고, 이 경우 기존의 WiFi AP에서의 연결 관리 방법인 RSSI 기법으로는 비효율적인 서비스 관리가 이루어지게 된다. 지능형 AP는 연결된 디바이스에 대한 네트워크 통계 정보를 수집하고, 이 정보를 활용하여 네트워크 상태를 예측하여 디바이스들의 연결을 관리한다. 또한, 네트워크 사용에 대한 통계 데이터를 네트워크 사용자들에게 제공할 수 있다. 학습 엔진 모듈을 통해 네트워크 혼잡이 예측되면, 액세스 컨트롤 모듈은 신규 유입되는 연결을 허용하지 않고, 기존 연결된 디바이스에 대하여 우선 순위에 따른 대역폭 조절을 수행한다. 이렇게 함으로써 네트워크의 혼잡을 회피하고, 사물인터넷 디바이스들에게 지속적인 서비스를 제공한다.

3.4 학습 데이터 생성

학습 데이터는 그림 3의 시스템 구성에서 클라이언트 시스템으로부터 측정된 데이터를 이용한다. 사물인터넷노드 (라즈베리파이3)와 안드로이드 단말에서 일정 시간 동안 더미(dummy) 데이터를 다운로드하여, 사물인터넷노드와 안드로이드 단말에서 각각 1,000개의 데이터를 측정한다. 네트워크 학습을 위해 신호 세기와 데이터 전송률이 비례하는 경우와 신호 세기가 강하기만 데이터 전송률이 낮은 경우의 데이터를 수집한다. 신호 세기와 데이터 전송률이 비례하는 경우는 강한 신호에서 높은 전송률을 보이고 약한 신호에서 낮은 전송률을 보이는 일반적인 무선 통신 링크의 상태를 의미한다. 신호 세기가 강하지만 전송률이 낮은 경우는 네트워크 혼잡의 상태를 의미한다. 다양한 상황에 대해 수집한 데이터는 그 자체로 학습을 수행하기에는 다소 부족하다. 따라서, SMOTE 기법 [10]을 통해 기존 데이터를 사용하여 추가적인 데이터를 생성한다. SMOTE 기법은 비율이 낮은 분류의 데이터를 만들어내는 방법으로 소수 클래스 객체들 사이의 공간에 0과 1 사이의 임의의 값을 곱하고 원래 객체에 더하여 새로운 데이터를 생성하는 기법으로 알려져 있다.

3.5 학습 알고리즘 설계

지능형 AP는 사물인터넷 디바이스들의 네트워크 이용 상태를 학습을 통해 파악한다. 학습 데이터 생성을 통해 만들어진 데이터와 사물인터넷 서비스를 통해 획득된 데이터를 이용하여 네트워크 상태 학습을 수행한다. 지능형 AP를 위한 학습 알고리즘은 기본적으로 피드 포워드 뉴럴 네트워크 (Feed Forward Neural Network) [11]를기반으로 이루어진다. 피드 포워드 뉴럴 네트워크는 신경망을 이루는 가장 중요한 기본 단위인 퍼셉트론이 여러 개로 이루어져 있다. 입력 계층 (input layer)과 출력 계층 (output layer)은 한 개의 층으로 이루어져 있고 은닉계층 (hidden layer)은 한 개 이상의 층으로 이루어져 있다. 각각의 퍼셉트론 계층간 연결에는 서로 다른 가중치를 가지고 있고, 이 가중치에 의해 연산된 결과가 출력층에서 확률로 표현된다. 이 확률값을 통해 네트워크 상태를 예측한다. 지능형 AP의 데이터 학습 모델은 입력 계층에서의 입력값으로 수신 신호 세기와 데이터 전송률을 사용하고, 노드가 3개인 하나의 은닉층을 둔다. 출력 계층에서는 네트워크 상태에 대한 확률값을 출력한다. 그림 4는 본 논문에서 제안한 지능형 AP의 학습 모델을 보여준다.

OTJBCD_2019_v20n5_95_f0004.png 이미지

(그림 4) 사물인터넷을 위한 지능형 AP의 학습 모델

(Figure 4) Learning model of the Intelligent AP for IoT

학습 모델에서는 활성화 함수로 시그모이드 함수를 사용한다. 시그모이드 함수는 0과 1사이의 값을 가지는 비선형 함수이다. 오차율을 줄이고 정확도를 높이기 위해 은닉층을 두고, 연산 속도와 정확도를 높이기 위해 고급 경사 하강법 (Gradient Descent) 중 하나인 모멘텀(Momentum)을 적용한다. 모멘텀이란 경사 하강법에 관성을 더해주는 것으로, 매번 계산되어진 기울기에 과거이동했던 방향을 기억하면서 그 방향으로 일정 값을 추가적으로 더해주는 방식이다 [11,12].

4. 시스템 구현 및 실험

4.1 시스템 구현 환경

데이터 수집을 위한 클라이언트 시스템과 액세스 컨트롤 모듈은 라즈베리파이3 [13] 보드를 사용하여 구현되었다. 라즈베리파이3는 1.4GHz 쿼드코어의 ARM Cortex-A53 CPU와 1GB의 RAM으로 구성되며 데비안 리눅스 기반의 라즈비안 (Raspbian) 운영체제를 사용한다. 학습엔진 모듈은 라떼판다 [14] 보드를 사용하여 구현되었다. 라떼판다는 1.8GHz 쿼드코어의 Intel Cherry Trail Z8300CPU와 4GB의 RAM으로 구성되고 운영체제로는 우분투서버 16.04.5 LTS가 사용된다. 학습 엔진 모듈은 피드 포워드 뉴럴 네트워크 알고리즘을 연산하기 위해 고성능의 임베디드 개발보드를 사용하였으며, 라떼판다 보드는 일반적인 임베디드 시스템용 ARM 프로세서보다 고성능의 Intel 프로세서를 탑재하고 있다. 학습 엔진 모듈에서의 학습 알고리즘은 구글의 오픈소스 머신러닝 라이브러리인 텐서플로우 (Tensorflow)를 사용하여 구현되었다. 또한 데이터베이스는 클라우드의 우분투 서버 16.04.5 LTS 운영체제에서 MySQL을 사용하였다.

4.2 시스템 구현

4.2.1 지능형 AP 구현

지능형 AP에서 액세스 컨트롤 모듈은 라즈베리파이3에서 구현되며, 액세스 컨트롤 모듈은 사물인터넷에 접속 네트워크를 제공한다. 라즈베리파이3 보드에서 AP 모드 설정을 위해 DHCP 서버 소프트웨어인 dnsmasq와 AP소프트웨어인 hostapd를 설치한다. dnsmasq는 AP에 접속하는 디바이스에 IP 주소를 할당하는 기능을 하고, hostapd는 디바이스가 AP에 연결될 수 있도록 AP 기능을 제공하는 역할을 한다. dnsmasq와 hostpd가 설치된 후,/etc/dhcpcd. conf 파일을 수정하여 AP 동작을 수행하는 라즈베리파이3 보드의 WiFi 고정 IP 주소를 할당한다. 그리고 /etc/hostapd/hostapd.conf 파일을 생성하고 AP의 기본정보 (SSID, 채널, 보안 설정 등)를 저장한다. d nsmasq에서는 /etc/dnsmasq.conf를 생성하고 dhcp의 IP 주소 풀 등을 저장한다. 그리고 /etc/sysctl.conf 파일에서 net. ip v4.ip_forward=1로 활성화 하면 디바이스들에게 접속 네트워크를 제공할 수 있게 된다.

접속 네트워크에 대한 대역폭을 조절하기 위해서 tc명령어를 사용하고, tc는 iproute2 패키지 내에 포함되어 있어 기본적으로 사용할 수 있다. 또한, 디바이스에서는 네트워크 인터페이스에서 송수신하는 패킷의 양을 표시해주는 소프트웨어인 ifstat을 통해 AP의 데이터 전송량을 확인할 수 있으며, AP에서는 포트 스캐닝 소프트웨어인nmap을 통해 현재 AP에 연결된 디바이스의 정보와 개수를 확인할 수 있다.

데이터 학습 모듈은 라떼판다 보드에서 그림 4의 학습모델을 텐서플로우 라이브러리 [15]를 사용하여 구현한다. 피드 포워드 신경망은 노드의 가중치를 바꾸어가며 최적값을 찾아내며, 입력 데이터에 대한 활성화 함수의 출력 결과가 최대한 실제 값에 가까워지도록 가중치를 변경시키는 과정이 데이터 학습의 과정이라고 할 수 있다. 본 논문에서는 출력 결과를 얻기 위한 활성화 함수로 시그모이드 함수를 사용한다 [11,12]. 시그모이드 함수는 다음의 식(1)과 같이 입력 X와 가중치 W로 정의된다.

\(h(X)=g\left(W^{T} X\right)=\frac{1}{1+e^{-W^{t} X}}\)       (1)

실제 출력값 d와 신경망에 의한 결과 y(X;W) 사이의 거리는 오차함수 (error function)으로 나타내어진다. 본 논문에서는 오차를 나타내기 위해 최대우도법 (maximum likelihood estimation)을 사용한다 [11].

\(\begin{aligned}E(W)=-\sum_{n=1}^{N}\left[d_{n} \log h\left(X_{n} ; W\right)\right.\\\left.+\left(1-d_{n}\right) \log \left(1-h\left(X_{n} ; W\right)\right)\right]\end{aligned}\)       (2) 

식(2)를 통해 N개의 데이터에 대한 오차를 계산하여 이것을 최소화하는 가중치 W를 찾는다. 모멘텀을 사용하여 오차를 최소화하는 W를 획득할 수 있다. 이 때 학습률 (learning rate)은 0.01로 설정한다.

데이터베이스 모듈은 데이터 학습을 위해 사물인터넷 디바이스가 연결된 접속 네트워크의 상태 정보 (SSID, BSSID, RSSI, 전송률, AP에 접속한 디바이스 수 등)를 수집한다. 수집된 데이터를 가지고 피드 포워드 뉴럴 네트워크 알고리즘을 수행하여, 네트워크 상태를 예측한다. 데이터베이스 모듈에서 수집된 데이터는 학습을 위해서도 사용되지만 통계데이터 분석을 위한 시각화를 위해서도 사용된다.

4.2.2 데이터 수집을 위한 클라이언트 시스템 구현

데이터 수집용 클라이언트 시스템은 그림 5의 의사코드 동작을 통해 데이터를 측정하고 수집한다. 디바이스가 AP에 연결하고, 이전 연결 상태를 확인한다 (line 1-2). 만약 이전 연결 상태가 측정 중 연결 해제된 상태이면 저장된 이전 연결 해제 상태 데이터를 서버로 전송하고 데이터를 초기화 한 수 AP와 연결을 해제한다 (line 3-6). 만약 이전 연결 상태의 데이터가 없으면 데이터 측정을 시도한다 (line 7-8). 데이터를 측정하는 동안 AP와 연결 해제되면 그 데이터를 저장한다 (line 9-10). 데이터를 측정하는 동안 AP와 연결이 계속 유지되면, 측정된 값을 데이터베이스 모듈로 전송하고 데이터를 초기화한 후 AP와의 연결을 해제한다 (line 11-14).

OTJBCD_2019_v20n5_95_f0005.png 이미지

(그림 5) 클라이언트 시스템의 의사코드

(Figure 5) Pseudo-code of the client system

4.2.3 데이터 시각화 구현

지능형 AP에서 수집한 네트워크 정보는 데이터베이스 모듈에서 저장되며, 여러 AP에 대한 네트워크 정보는 시각화할 수 있다. 데이터 시각화를 위해서 오픈소스 라이브러리인 Chart.js를 사용한다 [16]. Chart.js는 스크립트를 통해 시각화하고자 하는 데이터를 웹으로 표현할 수 있다. 그림 6과 7에서 보여주는 것처럼 본 논문에서는 건물의 각 층마다 설치된 지능형 AP 들의 평균 전송률을 시각화 하였고, 디바이스에서 스캔되는 주변 AP들의 시간에 따른 전송률의 변화를 시각화 하였다. 그래서, 클라이언트 디바이스는 AP들의 데이터를 실시간으로 볼 수 있다. AP가 설치되어있는 건물의 층마다 평균 데이터 전송률을 확인할 수 있으며 현재 주변 AP들의 요일별과 시간별로 과거의 평균 데이터 전송률을 확인할 수 있다. 또한, 주변 AP 평균 데이터 전송률도 함께 확인함으로써 현재 위치에서 어떤 AP가 가장 높은 평균 전송률을 가지는지 알 수 있다.

OTJBCD_2019_v20n5_95_f0006.png 이미지

(그림 6) 지능형 AP가 설치된 건물의 층별 평균 데이터 전송률 시각화

(Figure 6) Visualization of the average data ratein each floor of the building

OTJBCD_2019_v20n5_95_f0007.png 이미지

(그림 7) 현재 위치 주변 AP들의 시간별 데이터 전송률 시각화

(Figure 7) Visualization of data rate of APs according to time

4.3 실험 결과

4.3.1 학습 정확도 실험

단일 노드로 구성된 로지스틱 회귀 알고리즘은 일반적으로 시그모이드 함수의 파라미터를 경사 하강법을 사용하여 최적화한다. 그림 8의 결과에서처럼 클라이언트 시스템으로부터 수집한 네트워크 데이터를 가지고 10,000번의 학습을 수행하였더니, 단일 노드의 로지스틱 회귀 알고리즘에서는 실제 결과와 예측 결과에 대한 정확도가 78.4%인 것을 확인되었다. 또한, 이때의 오차값은 0.4498로 확인되었다.

학습 정확도를 높이기 위해 본 논문에서는 학습 알고리즘을 피드 포워드 뉴럴 네트워크로 재구성하여 은닉층을 추가하고, 고급 경사 하강법 중 하나인 모멘텀을 사용하여 학습을 수행하였다. 그림 9의 결과에서처럼 10,000번의 학습을 통해서 93.6%의 정확도와 0.1434의 오차값을 획득할 수 있었다.

OTJBCD_2019_v20n5_95_f0008.png 이미지

(그림 8) 단일 노드의 로지스틱 획귀

(Figure 8) Logistic regression in a single node

OTJBCD_2019_v20n5_95_f0009.png 이미지

(그림 9) 제안된 피드 포워드 뉴럴 네트워크

(Figure 9) Proposed feed forward neural network

4.3.2 전송률 실험

실험을 위해 하나의 안드로이드 클라이언트 주변에Smart-AP(1)과 Smart-AP(2)의 이름으로 지능형 AP 2개를 구성하였다. Smart-AP(1)은 비교적 짧은 거리에서 신호세기를 -50 ~ -40으로 유지하였고 Smart-AP(2)는 비교적먼 거리에서 신호 세기를 -80 ~ -70로 유지하였다. 그림 10은 각각의 AP에서 측정된 네트워크 상태 정보를 나타낸다. Smart-AP(1)은 상대적으로 신호 세기가 좋기 때문에 Smart-AP(2)보다 전송률이 좋은 것을 확인할 수 있다.

클라이언트는 처음 AP를 선택할 때 신호 세기에 의존하므로 Smart-AP(1)에 먼저 연결된다. 라떼판다에서 학습된 결과를 바탕으로 안드로이드 클라이언트에서 예측한 연결될 확률이 50% 이상이면 다음 연결 상태를 1(연결)로 판단하고 50% 미만이면 다음 연결 상태를 0(연결 끊김)으로 판단한다. Smart-AP(1)의 대역폭을 줄여 혼잡 상태로 만들 경우, 서버에서는 클라이언트가 수집한 정보로부터 AP가 혼잡 상태라는 것을 알기 위해 데이터베이스를 이용한다. 연결된 클라이언트 중에 신호 세기가 좋으면서(dBm : -60 이상) 예측한 결과가 0(다음 연결 확률: 50% 미만)인 클라이언트가 과반수 이상이면 AP의 MAC 주소를 데이터베이스에 따로 저장한다. 클라이언트에서는 예측한 다음 네트워크 상태로 다른 데이터 전송 방법 중 하나를 선택하게 되며 데이터 전송 방법 선택의 우선순위는 주변의 다른 AP를 선택하는 것을 가장 우선으로 한다. 첫 번째 선택방법은 신호 세기에 의존하는 기존 AP 선택방법이다. 클라이언트는 혼잡 상태를 확인하였지만 주변의 다른 AP인 Smart-AP(2)와 비교하여 신호 세기가 상대적으로 좋기 때문에 연결을 끊지 않고 계속 유지한다. 이때 측정한 혼잡 상태인 Smart-AP(1)의 평균 데이터 전송률은 약 140Kbps이다. 두 번째 선택 방법은 신호 세기에 의존하지 않는 방법이다. 클라이언트는 혼잡 상태를 확인하면 기존의 연결을 끊고 신호 세기와 관계없이 주변의 다른 AP인 Smart-AP(2)를 조회한다. 그리고 서버 데이터베이스를 확인하여 혼잡 상태가 아닌 경우 연결한다. 이때 Smart-AP(2)의 평균 데이터 전송률은 약 400Kbps이다. 두 가지 선택방법의 데이터 전송률을 비교하였을 때 두 번째 선택방법이 데이터 전송률이 더 좋은 것을 확인할 수 있다.

OTJBCD_2019_v20n5_95_f0010.png 이미지

(그림 10) AP들의 신호세기와 전송률 데이터

(Figure 10) Signal strength and transmission rate of APs

OTJBCD_2019_v20n5_95_f0011.png 이미지

(그림 11) 혼잡해진 Smart-AP(1)로 인한 상태변화

(Figure 11) Condition changes due to congested Smart-AP(1)

혼잡해진 Smart-AP(1)는 혼잡 상태가 끝날 때까지 다른 클라이언트들의 접속을 차단한다. 다시 정상적인 상태(예측한 결과가 1이 되는 클라이언트 수가 과반수 이상일 경우)가 될 경우 데이터베이스에 해당 Smart-AP에 대한 정보를 삭제한다. 이를 통해 혼잡 상태일 경우 클라이언트가 재접속하거나 한 번도 연결되지 않은 클라이언트가 접속할 때 접속하지 못하게 차단한다. 혼잡 상태일 경우 AP에서는 수집된 데이터를 바탕으로 지금까지 상대적으로 사용량이 많고 신뢰성이 좋은 순서로 클라이언트들에게 대역폭을 제공할 수 있다.

4.3.3 지능형 AP 수집 데이터 활용

지능형 AP는 사물이터넷 디바이스가 측정한 데이터를 기반으로 동작하며, 이 때 수집한 데이터를 분석함으로써 사용자에게 네트워크에 대한 다양한 정보를 제공할 수 있다. 본 논문에서는 4.2.3절에서 구현한 데이터 시각화를 통해 네트워크 정보를 다양한 모습의 그래프로 서비스 사용자에게 제공한다. 그림 12에서는 관리자 모드에서 가장 최근 데이터와 학습된 결과를 바탕으로 각 클라이언트 디바이스의 다음 연결 상태 확률을 확인할 수 있다. 게다가, 사물인터넷 디바이스로부터 수집된 네트워크 정보를 바탕으로 높은 서비스 퀄리티를 제공할 수 있는 프라임 서비스 지역을 설정할 수 있다. 본 논문에서는 프라임 서비스 지역을 WiFi zone으로 설정하고, 지도 상에 WiFi zone을 표시하고, 사용자에게 서비스 이용에 참고할 수 있도록 웹서비스로 제공한다. 그림 13은 WiFizone을 표시한 지도를 나타낸다. 지도상의 WiFi zone을 선택하면 해당 지역의 전송률 등의 네트워크 정보가 시각화 되어 사용자에게 제공된다.

OTJBCD_2019_v20n5_95_f0012.png 이미지

(그림 12) 지능형 AP에서의 접속 중인 클라이언트 통계

(Figure 12) Client statistic in the intelligent AP

OTJBCD_2019_v20n5_95_f0013.png 이미지

(그림 13) Wi-Fi Zone

(Figure 13) Wi-Fi Zone

5. 결론

많은 종류의 사물인터넷 서비스가 무선 네트워크를 기반으로 이루어지고 있고, WiFi와 같은 비면허 대역의 통신 기술을 주로 사용하고 있다. 사물인터넷 디바이스의 컴퓨팅 자원에 대한 한계로 인해 무선 자원의 효율적인 활용을 위해 AP의 역할이 점점 증가하고 있다. 본 논문에서는 지능형 AP를 구현하여 사물인터넷 서비스를 제공하는 시스템을 구현하였다. 지능형 AP는 액세스 컨트롤 모듈, 데이터베이스 모듈, 학습 엔진 모듈로 구성되며, 클라이언트 디바이스에서 측정된 네트워크 정보를 데이터 베이스 모듈에 저장하고, 이 데이터를 통해 학습함으로써 네트워크 상태를 예측하게 된다. 예측된 정보를 통해 AP는 클라이언트 디바이스에 대한 연결 및 대역폭 제어를 수행함으로써 전체적인 서비스 효율을 향상시킬 수 있다. 또한, 본 논문에서는 수집된 네트워크 데이터를 통해 시각화함으로써 사용자에게 무선 네트워크상태에 대한 정확한 정보를 제공하고, 이를 이용하여 사물인터넷 서비스의 방향을 제시할 수 있다.

References

  1. J. Gubbi, R. Buyya, S. Marusic, and M. Palaniswami, "Internet of Things (IoT): A vision, architectural elements, and future directions," Elsevier Future Generation Computer Systems, Vol. 29, No. 7, pp. 1645-1660, 2013. https://doi.org/10.1016/j.future.2013.01.010
  2. V. Gunes, S. Peter, T. Givargis, and F. Vahid, "A survey on concepts, applications, and challenges in cyber-physical systems," KSII Transactions on Internet Information Systems, Vol. 8, No. 12, pp. 4242-4267, 2014. https://doi.org/10.3837/tiis.2014.12.001
  3. M.W. Hong and Y.H. Kang, "IoT based Data centric sensory data aggregation environment," Journal of Platform Technology, Vol. 7, No. 1, pp. 20-25, 2019. http://jpt.ictps.org/contents/7-1
  4. G. Kim and S. Lee, "Access Point Selection Algorithm for Densely Deployed IEEE 802.11 WLANs", The Journal of Korean Institute of Communications and Information Sciences, Vol. 41, No. 6, pp. 707-713, 2016. https://doi.org/10.7840/kics.2016.41.6.707
  5. Y. Shim and I. Lee, "A Study on Impact on the Throughput of Station According to Separation Distance between WLAN APs", The Journal of Korean Institute of Information Technology, Vol. 10, No. 3, pp. 117-121, 2012. http://www.ki-it.or.kr/sobis/kiit.jsp
  6. H. Choi, H. Kim, and S. Choi, "Impact of Interference between APs on WLAN Throughput", Proceedings of Symposium of the Korean Institute of communications and Information Sciences, pp. 392-393, 2013.
  7. S. Kim, Y. Kim, and C. Lee, "The Way of IoT Management Hub Connection for Convenient IoT Service", Journal of the Korea Institute of Information and Communication Engineering, Vol. 19, No. 11, pp. 2656-2664, 2015. https://doi.org/10.6109/jkiice.2015.19.11.2656
  8. D. Kim, Damian's Wi-Fi On, pp. 53-62, Midasbooks, 2011.
  9. U. Heo, Y. Peng, and K. You, "Energy Efficient Access Point Selection Method for IEEE802.11 Wireless LANs", Journal of the Korea Contents Association, Vol. 11, No. 12, pp. 578-585, 2011. https://doi.org/10.5392/JKCA.2011.11.12.578
  10. N.V. Chawla, K.W. Bowyer, L.O. Hall, and W.P. Kegelmeyer, "SMOTE: Synthetic Minority Over-sampling Technique," Journal of Artificial Intelligence Research, Vol. 16, No. 1, pp. 321-357, 2002. https://jair.org/index.php/jair/article/view/10302 https://doi.org/10.1613/jair.953
  11. I. Goodfellow, Y. Bengio, and A. Courville, Deep Learning, pp. 163-265, The MIT Press, 2016.
  12. P. Harrington, Machine Learning in Action, pp. 83-100, Manning publication, 2012.
  13. Raspberry Pi 3, https://www.raspberrypi.org/ (Accessed 2018)
  14. LattePanda, https://www.lattepanda.com/(Accessed 2018)
  15. TensorFlow, https://www.tensorflow.org/(Accessed 2018)
  16. Chart.js, https://www.chartjs.org/ (Accessed 2019)

Cited by

  1. 청정환기장치 최적제어를 위한 IoT 기반 실시간 공기질 모니터링 플랫폼 구현 vol.21, pp.6, 2019, https://doi.org/10.7472/jksii.2020.21.6.95