머신 러닝이란?

머신 러닝은 명확한 지침 없이도 작업을 수행하는 방법을 학습할 수 있는 컴퓨터 프로그램의 일종입니다.

학습 목표

이 글을 읽은 후에 다음을 할 수 있습니다:

  • 머신 러닝의 정의
  • 머신 러닝의 작동 방식 설명
  • 머신 러닝 모델과 알고리즘의 구분

글 링크 복사

머신 러닝이란?

머신 러닝은 명확한 지침 없이도 학습할 수 있는 일종의 통계 알고리즘을 말합니다. 이를 통해 예제에서 일반화하여 패턴 식별과 같은 특정 작업을 스스로 수행할 수 있습니다. 머신 러닝은 인공 지능(AI)의 일부로, 인간의 인지 활동을 복제하는 컴퓨터의 능력을 말합니다.

머신 러닝은 다음과 같은 다양한 용도로 사용됩니다.

  • 이메일 스팸 식별
  • 봇 활동 감지
  • 스트리밍 플랫폼과 소셜 미디어 앱에서 사용자에게 콘텐츠 추천
  • 검색 엔진 결과 제공
  • 음성 및 이미지 인식
  • 챗봇 및 언어 번역
  • 의학 연구

머신 러닝과 AI의 비교

머신 러닝과 AI는 정확히 같은 개념이 아니며, 하나의 학문으로서의 머신 러닝은 AI의 범주에 속합니다. 하지만 AI에는 다양한 다른 능력도 포함될 수 있으므로 모든 AI에 머신 러닝이 포함되는 것은 아닙니다.

머신 러닝은 어떻게 작동할까요?

머신 러닝은 입력과 출력을 기반으로 합니다. 머신 러닝 알고리즘은 결과(출력)를 생성하는 데 사용하는 데이터(입력)를 공급받습니다. 머신 러닝 모델은 어떤 종류의 결과물을 생성할지 "학습"하며, 다음과 같은 세 가지 주요 방법을 통해 학습할 수 있습니다.

1. 지도 학습

가장 기본적인 종류의 머신 러닝 프로그램의 경우 프로그래머는 일련의 예제 입력과 올바른 출력을 큐레이팅합니다. 머신 러닝 알고리즘은 이러한 예시를 통해 일반화를 시도하여 스스로 입력이 주어졌을 때 원하는 출력을 생성할 수 있습니다.

요리사에게 재료로 가득 찬 주방(입력)과 메뉴로부터 수많은 완성된 요리 예시가 담긴 메뉴판(출력)이 주어졌다고 가정해 보겠습니다. 셰프는 다양한 방식으로 재료를 조합하고 완성된 제품을 예시 요리와 비교하여 메뉴 항목에 필요한 레시피를 개발할 수 있습니다. 마찬가지로 알고리즘은 지도 학습을 통해 프로그래밍된 지침(또는 레시피) 없이도 올바른 결과를 생성하는 방법을 학습할 수 있습니다.

2. 비지도 학습

비지도 학습은 고급 머신 러닝 알고리즘에 원시 데이터를 제공하는 것입니다. 그런 다음 알고리즘은 스스로 패턴을 식별합니다. 메뉴를 살펴보고 해당 메뉴를 만들 수 있는 레시피를 생각해낼 수 있을 만큼 숙련된 요리사를 생각해 보세요.

3. 강화 학습

이 학습 방식에서는 피드백을 통해 머신 러닝 알고리즘을 학습시킵니다. "좋은" 출력과 "나쁜" 출력이 있으며, 시간이 지남에 따라 머신 러닝 알고리즘은 나쁜 출력을 피하는 방법을 학습합니다.

강화 학습은 시행착오를 거치는 과정입니다. 셰프가 시작할 메뉴가 없는 대신 요리하는 모든 음식이 음식 평론가의 평가를 받는다고 가정해 보겠습니다. 결국 셰프는 음식 평론가가 싫어하는 메뉴를 모두 배제한 후 평론가가 좋아하는 요리 목록을 큐레이션할 수 있습니다.

머신 러닝 모델이란?

알고리즘은 미리 프로그래밍된 일련의 단계이며, 머신 러닝 모델은 알고리즘이 데이터 모음에 적용되었을 때의 결과입니다. 이러한 차이에도 불구하고 "머신 러닝 모델" 및 "머신 러닝 알고리즘" 이라는 용어가 혼용되기도 합니다. 하지만 그 차이는 중요합니다. 두 머신 러닝 모델이 동일한 알고리즘을 사용하더라도 각 모델에 다른 데이터를 시작점으로 제공했다면 서로 다른 결과가 도출될 수 있습니다.

딥러닝이란?

딥러닝은 머신 러닝의 일종입니다. 신경망을 사용하여 원시 비정형 데이터에서 패턴을 인식하고 연관성을 만드는 방법을 학습합니다. 딥러닝은 비지도 방식으로 매우 복잡한 작업을 수행할 수 있습니다. 음성 인식, 자율 주행, 기타 첨단 응용 분야에 자주 사용됩니다.

신경망이란?

신경망은 인간 두뇌의 구조를 모방한 머신 러닝의 한 방법입니다. 신경망은 서로 연결되는 노드로 구성됩니다. 이러한 노드는 입력층, 출력층, 하나 이상의 은닉층 등 최소 세 개의 층에 분산되어 있습니다.

각 층에는 서로 연결되는 여러 노드가 포함되어 있습니다. 노드가 데이터를 중요하다고 인식하면 해당 데이터를 다음 노드로 전달합니다.

주방에서 요리를 만드는 요리사의 모습을 떠올려 보세요.

  • 셰프가 케이크를 만들어야 한다면 식료품 저장실에 있는 재료를 살펴보는 것부터 시작할 수 있는데, 이는 신경망의 입력층과 같습니다.
  • 셰프가 밀가루, 달걀, 설탕, 코코아 파우더 등의 재료를 선택합니다. 반면 닭고기 육수나 쌀과 같은 재료는 선택되지 않습니다. 이는 통계적으로 유의미한 데이터를 다음 노드로 전달하는 것과 같습니다.
  • 셰프는 케이크 반죽을 섞고 프로스팅을 만드는 등 다양한 방법으로 재료를 조합합니다. 노드가 서로 데이터를 전달하는 신경망의 은닉층이라고 생각하면 됩니다.
  • 마지막으로 셰프가 케이크를 굽고, 프로스팅을 하고, 서빙하는 단계가 출력층에 해당합니다. 그 과정에서 불필요하거나 잘못된 데이터(예: 불필요한 성분, 잘못 혼합된 조합 등)가 제거되었습니다.

벡터 데이터베이스란?

벡터 데이터베이스는 머신 러닝을 향상하는 데이터 저장 방식입니다. 벡터 데이터베이스를 사용하면 정확히 일치하는 쿼리가 아닌 유사도 검색과 관련 항목을 식별할 수 있습니다. 이러한 방식으로 데이터를 저장하면 머신 러닝 모델이 수신한 입력의 컨텍스트를 이해하는 데 도움이 됩니다.

벡터 데이터베이스는 다양한 차원을 가진 행렬에 항목을 저장하고, 각 데이터 항목의 위치를 해당 차원에 따라 지정하는 벡터를 사용합니다. 이를 통해 머신 러닝 모델은 다른 데이터와 연관된 데이터를 찾을 수 있습니다. 예를 들어, 스트리밍 플랫폼은 머신 러닝과 벡터 데이터베이스를 결합하여 시청자의 과거 시청 기록을 기반으로 시청자에게 추천할 영화를 파악할 수 있습니다.

머신 러닝 모델을 구축할 때 어떤 어려움이 있을까요?

데이터 송신: 가장 진보된 딥러닝 모델이라 해도 정확한 결과를 얻으려면 방대한 데이터 세트에 액세스할 수 있어야 합니다. 클라우드 컴퓨팅은 거의 무한대로 확장할 수 있으므로 클라우드 스토리지는 이러한 빅데이터 세트를 저장하는 데 이상적입니다. 그러나 이러한 데이터에 액세스하면 클라우드 공급자가 스토리지에서 데이터를 전송하는 데 드는 비용인 송신 수수료가 발생하는 경우가 많습니다.

컴퓨팅 성능 및 인프라: 머신 러닝, 특히 딥러닝은 모델 학습 시 엄청난 컴퓨팅 성능이 필요합니다. 머신 러닝 모델을 사용하려면 고가의 특수 하드웨어 또는 클라우드 서비스(예: 여러 대의 빠른 GPU 기반 서버)를 사용해야 합니다. (GPU 또는 그래픽 처리 장치는 기존 CPU보다 강력합니다.) 머신 러닝 모델을 새로운 사용 사례에 맞게 조정하는 데도 상당한 컴퓨팅 성능이 필요하지만, Low-Rank Adaptation(LoRA)과 같은 기술을 사용하면 컴퓨팅 부하를 줄일 수 있습니다.

Cloudflare에서는 개발자가 머신 러닝을 구축하는 데 어떻게 지원할까요?

Cloudflare에서는 누구나 머신 러닝을 쉽게 사용할 수 있는 서비스 컬렉션을 제공합니다. Cloudflare Workers AI는 개발자가 생성형 AI 작업을 실행하는 데 사용할 수 있는 글로벌 GPU 네트워크입니다. Cloudflare Vectorize를 사용하면 개발자는 전 세계에 분산된 벡터 데이터베이스를 이용할 수 있습니다. 또한 Cloudflare R2는 송신 수수료가 없는 개체 스토리지로, 개발자가 클라우드에 대규모 데이터 세트를 저장하고 해당 데이터를 무료로 전송할 수 있습니다. Cloudflare for AI에 대해 자세히 알아보세요.