프로그래밍/AI

머신러닝의 개요 및 작동방식

에이티에스 2024. 7. 14. 18:16
728x90

머신러닝은 항상 존재하며 종종 오해되는 기술 개념입니다. 복잡한 처리 및 수학적 기술을 사용하여 컴퓨터가 방대한 양의 입력과 출력 데이터 간의 상관 관계를 찾을 수 있도록 하는 과학인데 최근 몇 년 동안 과다음과 같은 개선으로 발전했습니다.

  • 컴퓨팅 파워
  • GPU(그래픽 처리 장치) 아키텍처로 지원되는 병렬 처리
  • 대규모 워크로드를 위한 클라우드 컴퓨팅

머신러닝에 대한 개요, 작동 방식에 대해 알아보겠습니다. 

 

머신러닝이란?

인공 지능(AI) 분야의 하위 집합인 머신러닝은 수학적 기술과 대규모 데이터 처리를 사용하여 입력 데이터와 출력 데이터 간의 관계를 찾을 수 있는 프로그램을 구축하는 데 중점을 둔 분야입니다. 포괄적인 용어인 AI는 인간의 개입 없이 기계가 "생각"하고 행동할 수 있도록 하는 데 중점을 둔 컴퓨터 과학의 광범위한 영역을 포괄합니다. 기계가 인간과 같은 방식으로 생각하고 행동할 수 있는 능력인 "일반 지능"부터 머신러닝이 스펙트럼에 속하는 전문화된 작업 지향 지능에 이르기까지 모든 것을 다룹니다.

 

과거에 머신러닝을 정의한 가장 강력한 방법 중 하나는 고전적인 컴퓨터 프로그래밍에서 사용되는 전통적인 알고리즘 접근 방식과 비교하는 것입니다. 클래식 컴퓨팅에서 엔지니어는 입력 데이터(예: 숫자 2와 4)와 이를 필요한 출력으로 변환하는 알고리즘(예: x와 y를 곱하여 z를 만드는 알고리즘)을 컴퓨터에 제공합니다. 프로그램이 실행되면 입력이 제공되고 알고리즘이 적용되어 출력을 생성합니다. 이는 그림 1에서 볼 수 있습니다.

 

 

 

반응형

 

그림 1.   고전적인 접근 방식에서는 컴퓨터에 입력 데이터와 알고리즘을 제공하고 답변을 요청합니다.

 

 

 

반면에 머신러닝은 컴퓨터에 일련의 입력과 출력을 제공하고 컴퓨터에 매번 이러한 입력을 출력으로 전환하는 "알고리즘" 또는 머신러닝 용어를 사용하는 모델을 식별하도록 요청하는 프로세스입니다. 모델이 매번 올바른 출력을 올바르게 식별할 수 있도록 많은 입력이 필요한 경우가 많습니다.

 

예를 들어, 그림 2에서 머신러닝 시스템에 숫자 2와 2를 제공하고 예상 출력 4를 제공하면 알고리즘이 항상 두 숫자를 더하도록 결정할 수 있습니다. 그러나 숫자 2와 4와 예상 출력 8을 제공하면 모델은 제공된 두 숫자를 곱하는 것이 올바른 접근 방식이라는 것을 두 가지 예에서 학습합니다.

 

 

 

반응형

 

그림 2.  머신러닝을 사용하면 데이터(입력)와 답변(출력)이 있으며 입력과 출력이 전체 데이터 세트에 대해 참인 방식으로 어떻게 관련되는지 결정하여 일종의 알고리즘을 도출하기 위해 컴퓨터가 필요합니다.

 

 

복잡한 필드를 정의하기 위해 간단한 예제를 사용하고 있다는 점을 감안할 때,이 시점에서 왜 복잡하지 않은 것을 복잡하게 만드는지 물어볼 수 있습니다. 이에 대한 답은 머신러닝으로 향하는 경향이 있는 문제 클래스는 순수한 알고리즘 접근 방식으로는 표현할 수 없는 경우가 많다는 것입니다.

 

컴퓨터에 사진을 제공하고 고양이 또는 사람 얼굴이 포함되어 있는지 확인하도록 요청하는 간단한 알고리즘은 없습니다. 대신 머신러닝을 활용하여 고양이와 사람 얼굴이 있는 수천 장의 사진(픽셀 모음)을 제공하고 이러한 픽셀 및 픽셀 그룹을 예상 출력과 상호 연결하는 방법을 학습하여 모델을 개발합니다.

 

그런 다음 기계가 새 데이터를 볼 때 이전에 본 모든 예를 기반으로 출력을 추론합니다. 예측 또는 추론이라고도 하는 프로세스의 이 부분은 머신러닝의 마법입니다. 임베디드 및 사물 인터넷(IoT) 시스템의 세계에서 머신러닝은 머신 비전, 이상 탐지 및 예측 유지 관리와 같은 영역을 지원하기 위해 점점 더 많이 활용되고 있습니다.

 

이러한 각 영역에서 우리는 시설, 환경 또는 기계를 모니터링하기 위해 이미지 및 비디오, 가속도계 판독값, 소리, 열 및 온도와 같은 방대한 데이터를 수집합니다. 그러나 우리는 종종 그 데이터를 우리가 행동할 수 있는 통찰력으로 전환하는 데 어려움을 겪습니다. 막대 차트는 좋지만 우리가 정말로 원하는 것이 기계가 고장 나서 오프라인 상태가 되기 전에 서비스가 필요하다는 것을 예측할 수 있는 능력이라면 단순한 알고리즘 접근 방식으로는 소용이 없습니다.

 

 

반응형

 

머신러닝 개발 루프

유능한 데이터 사이언티스트와 머신러닝 엔지니어의 지도 하에 프로세스는 데이터에서 시작됩니다. 즉, 임베디드 시스템에서 생성된 방대한 양의 데이터입니다. 머신러닝 개발 프로세스의 첫 번째 단계는 모델에 공급되기 전에 데이터를 수집하고 레이블을 지정하는 것입니다. 레이블 지정은 중요한 분류 단계이며 입력 집합을 예상 출력에 연결하는 방법입니다.

 

머신러닝의 레이블 지정 및 데이터 수집

예를 들어, 가속도계 x, y 및 z 값의 한 집합은 컴퓨터가 유휴 상태임을 의미할 수 있고, 다른 집합은 컴퓨터가 정상적으로 실행 중임을 의미할 수 있으며, 세 번째 집합은 문제에 해당할 수 있습니다. 그림 3에서 높은 수준의 묘사를 볼 수 있습니다.

 

 

그림 3.   머신러닝 엔지니어는 데이터 수집 프로세스 중에 레이블을 사용하여 데이터 세트를 분류

 

데이터 수집 및 레이블 지정은 시간이 많이 걸리는 프로세스이지만 올바르게 수행하는 데 매우 중요합니다. 머신러닝 공간에는 사전 훈련된 모델을 활용하여 일부 작업을 상쇄하고 실제 시스템에서 데이터 수집을 간소화하는 새로운 도구를 활용하는 몇 가지 혁신이 있지만 이는 건너뛸 수 없는 단계입니다. 전 세계의 어떤 머신러닝 모델도 해당 기계 또는 이와 유사한 다른 기계의 실제 데이터를 않고는 기계 또는 장치가 잘 작동하는지 또는 고장이 나려고 하는지 안정적으로 알려줄 수 없습니다.

 

반응형

 

머신러닝 모델 개발, 학습, 테스트, 개선

데이터 수집 후 다음 단계는 모델 개발, 학습, 테스트 및 구체화입니다. 이 단계에서는 데이터 과학자 또는 엔지니어가 수집된 입력 데이터의 대량을 수집하고 하나 이상의 접근 방식을 사용하여 예상 출력으로 변환하는 프로그램을 만듭니다. 이러한 접근 방식을 설명하면 많은 양을 채울 수 있지만 대부분의 모델은 입력에 대해 일련의 변환(예: 벡터 및 행렬 곱셈)을 수행한다는 것만으로도 충분합니다. 또한 예상 출력과 신뢰할 수 있는 상관 관계가 있는 가중치 및 함수 집합을 찾기 위해 서로에 대한 각 입력의 가중치를 조정합니다.

 

프로세스의 이 단계는 반복적인 경우가 많습니다. 엔지니어는 모델, 사용된 도구 및 방법뿐만 아니라 모델 학습 중에 실행할 반복 횟수 및 기타 매개변수를 조정하여 입력 데이터를 올바른 출력(즉, 레이블)과 안정적으로 상호 연관시킬 수 있는 것을 구축합니다. 엔지니어가 이 상관 관계에 만족하면 학습에 사용되지 않은 입력을 사용하여 모델을 테스트하여 알 수 없는 데이터에 대해 모델이 어떻게 수행되는지 확인합니다. 이 새 데이터에서 모델의 성능이 저조하면 엔지니어는 그림 4와 같이 루프를 반복하고 모델을 더 구체화합니다.

 

 

그림 4.   모델 개발은 여러 단계를 거쳐야 하는 반복적인 프로세스이지만 데이터 수집으로 시작됩니다.

 

 

모델이 준비되면 배포되고 새 데이터에 대한 실시간 예측에 사용할 수 있습니다. 기존 머신러닝에서 모델은 필요한 입력을 제공하고 모델에서 출력을 받는 실행 중인 응용 프로그램에서 호출할 수 있도록 클라우드 서비스에 배포됩니다. 애플리케이션은 사진을 제공하고, 사람이 있는지 또는 가속도계 판독값 집합을 묻고, 이 판독값 집합이 유휴 상태, 실행 중 또는 고장난 기계에 해당하는지 모델에 물어볼 수 있습니다.

728x90
반응형
그리드형