SAS 솔루션으로 다양한 종류의 심층 신경망(DNN;Deep Neural Network) 모델을 구축할 수 있습니다. 구체적으로 컨볼루션 신경망(convolutional neural networks), 순환 신경망(recurrent neural networks), 순방향 신경망(feedforward neural networks), 오토인코더 신경망(autoencoder neural networks) 등을 생성할 수 있는데요. 오늘은 ‘SAS VDMML(Visual Data Mining and Machine Learning)'을 이용해 딥러닝 모델을 구축하는 방법을 자세히 설명해 드리고자 합니다.
‘SAS 클라우드 분석 서비스’를 활용한 딥러닝 모델
SAS VDMML은 ‘SAS Cloud Analytic Services’ 를 활용해 다양한 ‘CAS 액션’을 수행합니다. CAS 액션을 이용해 데이터의 로드 및 변환, 통계값 계산, 분석, 출력값 생성 등의 작업을 할 수 있는데요. 각 액션은 입력 매개변수 세트를 지정함으로써 구성됩니다. CAS 액션을 실행하면 액션의 매개변수와 데이터가 처리되고 액션 결과가 생성됩니다. 이때 CAS 액션은 CAS 액션 세트로 그룹화됩니다.
‘deepLearn’ CAS 액션 세트의 다양한 액션을 사용해 심층 신경망 모델을 학습시키고 점수를 매길 수 있습니다. 이 액션 세트는 심층 신경망 모델을 개발하고 배포하는 엔드-투-엔드 프로세스를 지원하는 여러 액션들로 구성되는데요. 또 초기 심층 네트워크의 구조를 정의하기 위해 모델의 방향성 비순환 그래프(DAG; Directed Acyclic Graph)를 묘사할 수 있는 유연성을 제공합니다. 네트워크 구조에 레이어를 추가하거나 제거할 수 있는 액션도 있습니다.
딥러닝 모델을 구축하려면 모델에 대한 적절한 설명과 매개변수가 필요한데요. 먼저네트워크 토폴로지를 DAG으로 정의하고, 모델 description을 이용해 심층 신경망 모델의 매개변수를 학습시켜야 합니다.
deepLearn SAS CAS 액션 세트 이해하기
deepLearn CAS 액션 세트를 사용해 심층 신경망 모델을 학습시키는 단계는 다음과 같습니다.
1. 빈 딥러닝 모델 생성하기
- deepLearn 액션 세트의 ‘BuildModel()’ CAS 액션은 CASTable 오브젝트의 형태로 빈 딥러닝 모델을 생성합니다.
- 사용자는 개별 초기 네트워크를 구축하기 위해 DNN, RNN, CNN 네트워크 타입 중 선택할 수 있습니다.
2. 모델에 레이어 추가하기
- ‘addLayer()’ CAS 액션을 이용해 모델에 레이어를 추가할 수 있습니다.
- 이 CAS 액션은 입력, convolutional, 풀링(pooling), 완전 연결(fully connected), 잔차(residual) 또는 출력과 같은 다양한 유형의 레이어를 원하는 대로 추가할 수 있는 유연성을 제공합니다.
- 그러면 특정 레이어가 모델 테이블에 추가됩니다.
- 각각의 새로운 레이어는 고유한 식별자(identifier) 이름을 갖게 됩니다.
- 또 이 액션은 이미지가 입력으로 주어질 때 입력 레이어를 무작위로 자르거나 뒤집을 수도 있습니다.
3. 모델에서 레이어 제거하기
- ‘removeLayer()’ CAS 액션을 이용해 제거합니다.
- 필요한 레이어 이름을 지정하면 모델 테이블에서 레이어를 제거할 수 있습니다.
4. 하이퍼 매개변수(hyperparameter) 오토튜닝(autotuning) 실행하기
- ‘dlTune()’ CAS 액션은 모델 학습에 필요한 최적화 매개변수의 튜닝을 도와줍니다.
- 튜닝 가능한 매개변수 중 일부는 학습률(learning rate), 드롭아웃(dropout), 미니 배치 크기(mini batch size), gradient noise 등을 포함합니다.
- 튜닝을 위해서는 최적화된 값이 포함된다고 생각되는 범위 안에서 매개변수의 하한과 상한을 지정해야 합니다.
- 초기 모델 가중치 테이블은 CASTable 형식으로 지정되어야 하며, 이는 모델을 초기화합니다.
- 지정된 가중치 테이블을 통해 동일한 데이터에 대해 여러 번 철저한 검색이 이루어집니다. 이를 통해 최적화된 매개변수 값을 결정합니다.
- 그 결과 최고의 유효성 검사 오류(validation fit error)를 갖는 모델 가중치는 CAS 테이블 오브젝트에 저장됩니다.
5. 신경망 모델 학습시키기
- ‘dlTrain()’ 액션은 분류나 회귀 작업을 위해 지정된 딥러닝 모델을 학습시킵니다.
- 사용자가 구축된 초기 모델 테이블, 즉 하이퍼 매개변수 튜닝과 예측 및 응답 변수(predictor and response variables)를 통해 저장된 최고의 모델 가중치 테이블을 입력할 수 있도록 해 필요한 신경망 모델을 학습시킵니다.
- DNN처럼 학습된 모델은 실시간 온라인 데이터 스코어링을 위해 ASTORE 바이너리(binary) 오브젝트로 저장되고 ‘SAS 이벤트 스트림 프로세싱(SAS Event Stream Processing)’ 엔진으로 배포될 수 있습니다.
6. 모델 스코어링
- 'dlScore()’ 액션은 학습된 모델을 사용해 새로운 데이터 세트의 점수를 매깁니다.
- ASTORE 바이너리 오브젝트의 학습된 모델 정보를 사용하고 새로운 데이터 세트를 예측함으로써 모델의 점수를 매깁니다.
7. 모델 내보내기
- ‘dlExportModel()’ 액션을 이용해 학습된 신경망 모델을 다른 포맷으로 내보낼 수 있습니다.
- ASTORE은 CAS가 지원하는 바이너리 포맷입니다.
8. 모델 가중치 테이블 가져오기
- ‘dlImportModelWeights()’ 액션은 외부 소스로부터 초기에 CAS 테이블 오브젝트로 지정됐던 모델 가중치 정보를 가져옵니다.
- 현재 지원되는 포맷은 HDR5입니다.
SAS의 ‘deepLearn’ CAS 액션 세트는 딥러닝 기술의 발전과 함께 계속해서 향상되고 있습니다. 이 블로그는 SAS 백서 ‘How to Do Deep Learning With SAS: An introduction to deep learning neural networks and a guide to building deep learning models using SAS’를 기반으로 작성됐습니다. SAS 웹사이트에서 보고서 전문을 확인해보세요.
딥러닝의 전 과정을 시각화하는 ‘SAS VDMML’
한층 향상된 SAS VDMML은 데이터 접근 및 랭글링(wrangling)부터 정교한 모델 구축 및 배치까지 머신러닝과 딥러닝의 전 과정을 시각화하는 엔드-투-엔드 비주얼 환경을 제공합니다. 기업은 인메모리와 분산 처리를 기반으로 복잡한 비즈니스 문제를 신속하게 해결함으로써 핵심 인력 및 데이터 자원을 보다 효율적으로 활용할 수 있습니다. 또 이 솔루션은 Python, R 등 인기 있는 오픈 소스 언어의 프로그래밍을 지원합니다.
특히 최신 제품의 차별화된 특징인 웹 인터페이스는 전체 분석 라이프사이클을 통합해 모든 부서의 협업을 지원합니다. 사용자는 데이터 준비부터 시각적 데이터 탐색, 모델 생성 및 모델의 비즈니스 적용에 이르는 모든 작업을 단일 비주얼 인터페이스에서 처리할 수 있습니다. 또 통합 환경에서 최신 머신러닝 알고리즘을 신속하게 개발해 수익성 높은 고객 관계를 구축하고, 더욱 효과적으로 사기를 방지하고 리스크를 관리할 수 있습니다.
NH농협은행, SAS VDMML 기반으로 빅데이터 분석 플랫폼 구축
최근 NH농협은행은 SAS 바이야 기반의 SAS VDMML을 활용해 빅데이터 분석 플랫폼을 구축하고, 디지털 트랜스포메이션의 기반을 마련했습니다. NH농협은행은 SAS의 고급 분석 기술을 도입해 2,200만 개인, 소호(SOHO), 기업 고객의 빅데이터를 효과적으로 탐색하고, 데이터 과학자를 위한 모델링을 구현했는데요. 이를 통해 마케팅, 고객관계관리(CRM), 온라인 분석 처리(OLAP; On-Line Analytical Processing) 시스템을 한층 더 향상시키고 고객 개인별 맞춤형 서비스를 강화했습니다.
SAS 웹사이트에서 SAS VDMML에 대해 자세히 확인해보세요!