MATLAB을 사용한 AI

 

MATLAB을 사용하여 AI 준비하기

AI는 어디에나 있습니다. AI는 단순히 스마트 비서, 기계 번역, 자율주행과 같은 응용 분야를 구동하는 것을 넘어 엔지니어와 과학자들에게 일반적인 작업을 새로운 방법으로 해결할 기법을 제공합니다. 그러나 최근 추정에 따르면 많은 기업이 AI의 가치와 잠재력을 인식하고 있지만, 여전히 이를 사용하는 기업은 거의 없는 것으로 나타났습니다. Gartner가 최근 3,000개 기업을 대상으로 실시한 설문 조사에 따르면 AI 계획을 세우기 시작한 기업은 50%였고 실제로 AI를 구현한 기업은 단 4%에 불과했습니다.1

많은 조직이 AI 구현에 대해 다음과 같은 부담감을 갖고 있는 것이 걸림돌로 작용하고 있습니다.

  • AI를 구현하려면 데이터 과학의 전문가가 되어야 한다는 생각
  • AI 시스템 개발에 많은 시간과 비용이 소요된다는 우려
  • 양질의 레이블 지정 데이터에 대한 접근성 부족
  • AI를 기존 알고리즘 및 시스템에 통합하는 데 드는 비용과 복잡성

아래의 3가지 실례를 통해 MATLAB®으로 AI를 손쉽게 시작하는 방법을 알아볼 수 있습니다. MATLAB은 Caffe 및 TensorFlow와 같은 전용 AI 툴과 유사한 AI 기능을 제공합니다. 더욱 중요한 것은 MATLAB만이 AI를 완전한 엔지니어링 시스템 개발에 필요한 워크플로에 통합할 수 있다는 점입니다.

AI 모델은 완전한 엔지니어링 시스템 개발에 있어 필요한 전체 워크플로 중 일부에 불과합니다.

AI란 무엇이며 어떻게 구현하나요?

AI란 용어는 1950년대에 만들어졌고, 현재도 사용되는 AI의 정의는 '인간의 지능적인 행동을 모방하는 기계의 능력'입니다. 기계가 단순히 모방하는 데 그치지 않고, 인간의 성과에 준하거나, 심지어는 초과할 때 AI는 더욱 흥미로워집니다. 인간의 반복적인 작업을 덜어주거나, 컴퓨터를 통해 인간보다 더 안전하고 효율적으로 작업을 실행할 기회를 제공합니다.

실용적인 관점에서 보면, 오늘날 사람들이 AI를 생각할 때는 항상 머신러닝을 떠올립니다. 즉, 원하는 행동을 기계가 할 수 있도록 기계를 훈련시키는 것으로 생각합니다.

전통적인 프로그래밍에서는 원하는 출력값을 얻기 위해 데이터를 처리하는 프로그램을 만들었습니다.
머신러닝을 사용하면 단계가 뒤바뀝니다. 데이터와 원하는 출력값을 입력하면 컴퓨터가 프로그램을 만듭니다. 머신러닝 프로그램(더 정확하게 표현하자면 모델)은 대체로 일종의 블랙박스입니다. 원하는 출력값을 생성할 수는 있지만, 전통적인 프로그램이나 알고리즘과 같은 연산 순서로 구성되어 있지 않습니다.

현재는 딥러닝이라는 특수한 유형의 머신러닝이 큰 관심을 불러 일으키고 있습니다. 딥러닝은 신경망을 사용합니다. (딥러닝의 '딥'이란 용어는 네트워크의 계층 수를 나타냅니다. 계층이 많을수록 네트워크는 더 깊어집니다.) 딥러닝의 주요 장점 중 하나는 다른 기법에서 요구되는 수작업 데이터 처리 단계와 광범위한 도메인 지식이 필요 없다는 점입니다.

넓게 보자면 머신러닝과 딥러닝은 AI를 달성하는 수단으로 생각하시면 됩니다. 머신러닝과 딥러닝은 오늘날 가장 일반적으로 적용되는 기법입니다.

첫 번째 예는 한 과학자가 MATLAB을 사용하여 머신러닝을 배우고 적용하여 다른 방법으로는 절대 해결할 수 없었던 문제를 해결하는 방법을 보여줍니다.

머신러닝으로 과자의 바삭함 정도 감지하기

식품 과학자인 Solange Sanahuja는 과자의 바삭함 정도를 판단할 수 있는 반복 가능한 절차를 개발해야 했습니다. Sanahuja 박사는 과자의 물리적 모델을 개발해보려 시도했지만, 성과를 거두지는 못했습니다. 어떤 과학자들은 신호 처리를 사용하여 과자가 바스러지는 소리를 분석해보려 했지만, 그 누구도 신선한 과자와 신선하지 않은 과자 간의 차이점을 감지할 수 있는 절차를 개발하지는 못했습니다.

Sanahuja 박사는 MATLAB이 머신러닝을 지원한다는 사실을 확인하고 이를 시험해보기로 결정했습니다. Sanahuja 박사는 수백 번의 실험을 통해 다양한 신선도 수준에서 과자가 바스러지는 소리와 힘을 기록했으며, 전문 맛 감식가들로 하여금 신선도 등급을 기록하도록 했습니다.

식품 과학자로서의 본인이 지닌 전문 지식을 토대로, 힘 측정 결과값에서 특징을 식별하고 경도 및 깨짐성과 같은 값을 계산했습니다. 이어 녹음된 소리에서 추가적인 특징을 추출하기 위해 다양한 접근법을 시도했으며, 그 결과 옥타브 분석이 가장 적합하다는 결론을 내렸습니다.

다음 단계는 Sanahuja 박사에게는 완전히 새로운 영역이었습니다. 선택된 특성을 토대로 모델을 개발하는 작업이었습니다. 선택지가 너무 많기 때문에 올바른 모델을 찾기가 어려울 수 있습니다. 각각의 모델을 직접 시험해보는 대신, Sanahuja 박사는 Statistics and Machine Learning Toolbox™의 분류 학습기 앱을 사용하여 가능한 모든 모델을 자동으로 시험했습니다.

먼저 모델 훈련에 사용할 데이터를 선택했습니다. 그런 다음 MATLAB을 사용하여 가능한 모든 모델을 훈련시켰습니다. MATLAB은 모델 목록을 생성하고, 각 모델을 훈련시켜 모델의 전체적인 정확도를 보여주는 시각화를 생성했습니다.

이러한 결과를 토대로 Sanahuja 박사는 해당 프로젝트에 가장 적합한 모델로 2차 서포트 벡터 머신을 선택했습니다. 이 모델의 정확도는 약 90~95%에 이르며, 우리가 바삭함을 인식할 때 느끼는 작은 차이까지도 감지할 수 있습니다.


다음 예에서는 엔지니어들이 복잡한 영상 인식 문제를 해결하기 위해 딥러닝을 사용합니다. 딥러닝 신경망을 처음부터 훈련시키려면 많은 데이터가 필요합니다. 하지만 이 사례의 엔지니어들은 전이 학습을 사용함으로써 적은 양의 데이터로도 딥러닝을 적용할 수 있었습니다.

딥러닝을 통한 효율적인 터널 굴착 공법

일본의 건설 회사 Obayashi Corporation은 NATM(신오스트리아 터널 공법)이라는 굴착 공법을 사용합니다. 이 공법에서 지질학자들은 굴착 공사가 진행되는 과정에서 터널 면의 강도를 모니터링하여 균열부 간의 간격과 같은 다양한 메트릭을 평가합니다. 이 공법은 건설 비용을 절감하는 효과가 있지만, 몇 가지 제약이 있습니다. 하나의 현장을 분석하는 데 많은 시간이 소요될 수 있고, 따라서 간헐적으로만 분석 작업을 수행할 수 있습니다. 또한, 이 공법에 익숙한 지질학자가 부족합니다.

Obayashi는 딥러닝으로 이러한 제약을 해결하기로 결정했습니다. 터널 굴착면의 영상을 토대로 다양한 메트릭을 자동 인식하도록 딥러닝 신경망을 훈련시키는 것이었습니다. 가장 큰 과제는 충분한 데이터를 확보하는 것이었습니다. 최고 수준의 딥러닝 신경망은 수백만 개의 영상으로 훈련을 하지만, Obayashi가 보유한 영상은 단 70개에 불과했습니다.

Obayashi 지질학자들은 우선 이 70개 영상 각각의 세 영역에 레이블을 지정하여, 각 이미지에 풍화 변화 및 균열 상태와 같은 메트릭 값을 부여했습니다. 이어 레이블이 지정된 영역을 더 작은 영상으로 분할하여, 궁극적으로 약 3,000개의 레이블이 지정된 영상을 생성했습니다. 처음부터 딥러닝 신경망을 훈련하려면 많은 시간이 소요되는 것은 물론, 전문지식과 훨씬 더 많은 영상이 필요하므로 전이 학습을 사용하여 사전 훈련을 거친 딥러닝 신경망 AlexNet을 기반으로 사용자 지정 신경망을 구축했습니다.

AlexNet은 음식, 가정용품 및 동물과 같은 일반적인 물체를 인식하도록 문자 그대로 수백만 개의 영상을 통해 훈련되었지만, 터널 굴착면 사진에서 지질학적 여건을 해석하는 방법에 대해서는 전혀 알지 못했습니다. 전이 학습을 통해 Obayashi의 엔지니어들은 터널 굴착면 영상을 토대로 지질학적 측정값을 추정하기 위해 AlexNet의 작은 일부분만 재훈련했습니다.

전이 학습 워크플로.

지금까지 Obayashi가 재훈련시킨 신경망은 풍화 변화 및 균열 상태 예측 정확도가 90% 가까운 수준에 이르고 있습니다.


AI를 완전한 엔지니어링 시스템에 통합하기

지금까지 MATLAB을 사용하면 경험이 없고 데이터가 적은 상황에서도 머신러닝 모델이나 딥러닝 신경망을 생성하고 훈련시킬 수 있다는 것을 확인했습니다. 물론 이것으로 작업이 끝나는 것은 아닙니다. 대부분의 경우 이 모델을 더 큰 시스템에 통합하기를 원할 것입니다.

마지막 예는 AI 시스템을 구축하여 이를 프로덕션 시스템에 통합하는 데 필요한 모든 요소를 종합적으로 설명합니다.

농업 수확기 적재 작업 자동화하기

Case New Holland의 거대한 FR9000 시리즈 목초 수확기는 옥수수, 풀 및 기타 작물을 시간당 300톤 이상 수확할 수 있으며, 그 과정에서 작물을 최소 4mm까지 절단하는 기능을 갖추고 있습니다. 수확기 운전자는 운전하면서 최적의 속도를 유지하는 것 외에도 수확된 작물이 트레일러에 제대로 적재되도록 살핌과 동시에 적재 높이를 지속적으로 관찰해야 합니다. 운전과 적재 높이에 동시에 집중해야 하다 보니 가뜩이나 복잡한 작업이 더 어려워집니다.

이 회사는 이러한 복잡한 수확기의 작동 상태를 실험실에서 재현할 수 없었고 현장에서 광범위한 프로토타이핑 작업을 진행하기에 수확 철은 너무 짧았습니다. 대신 AI 알고리즘을 Simulink 시스템 모델로 가져와 3차원 장면 시뮬레이터를 사용하여 현장 여건을 연출하여 데스크탑에서 폐루프 시뮬레이션 작업을 수행했습니다.

Case New Holland 시뮬레이션 프레임워크 간략히 보기.

시뮬레이션 결과. 왼쪽: 수확기 붐과 트레일러. 오른쪽 상단: 카메라 출력.
오른쪽 하단: 거리 및 적재 높이.

데스크탑 시뮬레이션을 사용하여 기능을 테스트한 후, 운전자의 의견을 토대로 컴퓨터 비전 및 제어 기능을 갖춘 랩탑을 작동 중인 수확기에 투입해 실시간으로 AI 알고리즘을 미세 조정했습니다.

컨트롤러 모델에서 프로덕션 C 코드를 생성하여 수확기의 디스플레이 패널 소프트웨어를 실행하는 ARM®9 프로세서에 배포했습니다.

수확기 운전자들은 이 시스템이 랩탑에서 실행할 때와 똑같이 작동한다고 보고했습니다. New Holland IntelliFill™ 시스템은 현재 FR9000 시리즈 목초 수확기에서 사용되고 있습니다.


요약

MATLAB을 사용하면 머신러닝 경험이 없더라도 AI를 사용할 수 있습니다. 앱을 사용하여 다양한 접근법을 빠르게 테스트해보고 분야별 전문 지식을 적용하여 데이터를 준비할 수 있습니다.

데이터에서 특징을 식별하는 것이 불가능한 경우, 훈련 절차의 일환으로 특징을 식별하는 딥러닝을 사용할 수 있습니다. 딥러닝에는 많은 데이터가 필요하지만, 보유한 데이터를 토대로 전이 학습을 사용하여 기존 신경망을 확장할 수 있습니다.

마지막으로 임베디드 기기에서 모델을 전체 AI 시스템의 일부로 배포할 수 있습니다.

1 'The Real Truth of Artificial Intelligence.' Gartner Data & Analytics Summit에서 발표, 2018년 3월.