Computer >> 컴퓨터 >  >> 프로그램 작성 >> Ruby

모든 웹 개발자가 기계 학습을 탐색해야 하는 이유

저는 아직 아이가 없지만 아이가 생기면 두 가지를 배우기를 바랍니다.

  • 개인 재정
  • 머신 러닝

특이점이 가까웠다고 믿든 안 믿든 세상이 데이터를 기반으로 운영된다는 점은 부인할 수 없습니다. 데이터가 지식으로 변환되는 방식을 이해하는 것은 오늘날 성인이 된 모든 사람에게 중요하며, 개발자에게는 더욱 그렇습니다.

이것은 전체 스택 Ruby 개발자가 기계 학습(ML)에 액세스할 수 있도록 시도하는 시리즈의 첫 번째 기사입니다. 마음대로 사용할 수 있는 ML 도구를 이해함으로써 이해 관계자가 더 나은 결정을 내릴 수 있도록 도울 수 있습니다. 향후 기사에서는 개별 기술과 실용적인 예에 ​​중점을 둘 것이지만 이 기사에서는 지도를 보여주고 "여기에 있습니다."라고 적힌 핀을 배치하는 단계를 설정합니다.

겸손한 시작

모든 웹 개발자가 기계 학습을 탐색해야 하는 이유

인공 지능(AI)과 머신 러닝은 새로운 것이 아닙니다. 1950년대로 돌아가서 Arthur Samuel은 체커를 할 수 있는 컴퓨터 프로그램을 만들었습니다. 그는 일반적인 검색 알고리즘인 "알파-베타 가지치기"를 사용했습니다.

1960년대에는 창고에서 최적의 경로를 찾는 데 사용되는 다층 신경망과 최근접 이웃 알고리즘이 등장했습니다.

그렇다면 AI가 그렇게 오래된 것이라면 AI 스타트업이 왜 그렇게 유행하는 것일까요? 제 생각에는 이에 대한 두 가지 이유가 있습니다.

  • 컴퓨팅 능력(무어의 법칙 참조)
  • 매일 인터넷에 추가되는 데이터의 양

매일 생성되는 데이터의 양과 관련하여 생각할 때마다 마음을 사로잡는 두 가지 통계가 있습니다.

  • 2018년 기준으로 우리는 매일 2500조 바이트의 데이터를 생성하고 있습니다. 의심할 여지 없이 이 숫자는 Forbes 기사가 게시된 이후로 증가했습니다.
  • 지난 2년 동안만 해도 전 세계 데이터의 90%가 생성되었습니다.

함께 이것이 의미하는 바는 (1) 데이터를 저장하고 알고리즘을 실행하는 데 필요한 하드웨어가 계속 더 저렴해지고 (2) ML 모델을 훈련하는 데 사용할 수 있는 데이터 양이 엄청나게 빠른 속도로 증가하고 있다는 것입니다.

매일 우리는 인공 지능 및 기계 학습의 세계와 상호 작용하고 영향을 받고 기여하고 있습니다. 예를 들어 다음에 대해 알고리즘에 감사(또는 비난)할 수 있습니다.

  • 신용 한도
  • 질병 진단 지원
  • 취업 여부와 상관없이
  • 현재 교통 상황에서 가장 효율적인 경로를 찾는 데 도움이 됩니다.
  • Alexa는 당신이 그녀에게 방금 재채기를 했다는 말의 의미를 정확히 이해했습니다.
  • 가장 좋아하는 새로운 노래를 소개하는 Spotify

내가 가상의 미래 아이들을 키운 이유는 다음과 같습니다. 디지털 생활이 "실제" 삶에 미치는 영향, 데이터 개인 정보 보호 결정의 의미, 기계를 신뢰해야 하는 시점에 대한 자신의 의견을 형성하는 방법을 아이들이 이해하기를 바랍니다. vs. 하지 말아야 할 때.

이 게시물의 나머지 부분에서는 제가 공부한 세 가지 종류의 기계 학습(지도 학습, 비지도 학습 및 강화 학습)에 대한 개요를 제공하고자 합니다. 우리는 각각의 접근 방식을 독특하게 만드는 요인과 각각이 특히 잘 해결하는 문제에 대해 이야기할 것입니다.

지도 학습

모든 웹 개발자가 기계 학습을 탐색해야 하는 이유

지도 학습은... 글쎄요, 인간이 감독합니다. :) 누가 모기지 승인을 받을지 결정하기 위해 지도 학습 시스템을 구축하고 있다고 상상해보십시오. 작동 방식은 다음과 같습니다.

  1. 은행은 고객 속성(나이, 급여 등)을 결과(상환, 채무 불이행 등)에 매핑하는 데이터 세트를 컴파일합니다.
  2. 데이터를 사용하여 시스템을 교육합니다.
  3. 시스템은 학습한 내용을 사용하여 신청자의 속성을 기반으로 미래 결과를 추측합니다.
  4. 알고리즘이 올바르게 추측하면 "잘했습니다! 맞습니다."라고 말합니다. 그러나 틀리면 "아니요, 틀렸습니다. 개선하고 다시 시도하십시오."라고 말합니다.

알고리즘의 출력이 범주(이 경우 승인 또는 승인되지 않음)이기 때문에 이 예제는 "분류" 문제로 간주됩니다. 분류 문제의 다른 예에는 다음 여부를 결정하는 것이 포함됩니다.

  • 병이 있는 사람
  • 엑스레이에 골절된 뼈가 있음
  • 이메일은 스팸입니다.

ML 분류 알고리즘의 이면에 있는 수학에 대해 자세히 알아보려면 Google에서 나이브 베이즈 분류기, 지원 벡터 머신, 로지스틱 회귀, 신경망, 랜덤 포레스트를 검색하세요.

"예/아니오" 결과를 제공하는 분류 문제 외에도 지도 학습을 사용하여 회귀 문제를 해결할 수도 있습니다. 여기에서는 다음과 같이 연속 척도로 예측합니다.

  • 주식의 미래 가치
  • 뉴잉글랜드 패트리어츠가 슈퍼볼에서 우승할 확률
  • 기업이 후보자에게 제공해야 하는 평균 급여

지도 회귀 문제에 사용되는 알고리즘의 예로는 선형 회귀, 비선형 회귀 및 베이지안 선형 회귀가 있습니다.

비지도 학습

모든 웹 개발자가 기계 학습을 탐색해야 하는 이유

지도 학습 예제를 사용하여 분류 범주를 미리 정의했습니다. 모기지 신청자는 승인되거나 거부되었습니다.

비지도 학습에서는 카테고리를 제공하지 않습니다. 그들은 우리에게 사용할 수 없습니다. 알고리즘은 자체 결론을 도출해야 합니다.

감독되지 않은 접근 방식을 사용하려는 이유는 무엇입니까?

1) 때때로 우리는 카테고리를 미리 알지 못합니다. 인터넷에 떠도는 대부분의 데이터는 레이블이 없는 비정형 데이터입니다.

2) 다른 경우에는 우리가 무엇을 찾고 있는지 모르기 때문에 분류에 유용할 수 있는 패턴/기능을 찾기 위해 알고리즘에 요청할 수 있습니다.

<블록 인용>

기계 학습으로 비정형 데이터를 처리하는 또 다른 방법은 단순히 사람이 보고 수동으로 레이블을 지정하는 것입니다. 데이터를 수동으로 분류하기 위해 직원을 고용하는 회사가 많이 있습니다. 레이블링 데이터입니다.

비지도 학습에 대한 접근 방식

비지도 학습에서 일반적으로 사용되는 두 가지 기술은 연관 및 클러스터링입니다. .

협회: 당신이 아마존이라고 상상해보십시오. 많은 고객 데이터, 구매 내역 등이 있습니다. 비지도 학습을 사용하여 고객을 "쇼핑객 유형"으로 나눌 수 있습니다. 아마도 분홍색 우산을 사는 사람들이 말차도 구매할 가능성이 더 높다는 것을 알 수 있을 것입니다.

클러스터링: 클러스터링은 데이터를 살펴보고 지정된 수의 그룹 또는 클러스터로 분할합니다. 예를 들어, 주택 데이터가 많고 주택이 어느 동네에 있는지 예측할 수 있는 기능(범죄 데이터 가능성)이 있는지 확인하려고 할 수 있습니다. 또는 코사인 유사도와 같은 기술을 텍스트 분류에 사용할 수 있습니다( 예:이 기사는 테니스, 요리 또는 우주에 관한 것입니까?).

특정 비지도 학습 기술, Google 검색 k-평균 클러스터링, 코사인 유사성, 계층적 클러스터링 및 k-최근접 이웃 클러스터링에 대해 자세히 알아보려면.

강화 학습

모든 웹 개발자가 기계 학습을 탐색해야 하는 이유

이 기계 학습의 하위 집합은 목표 지향 알고리즘을 사용하기 때문에 게임에서 일반적으로 사용됩니다. 지도 학습과 달리 각 결정은 독립적이지 않습니다. 현재 입력이 주어지면 알고리즘이 결정을 내리고 다음 입력은 이 결정에 따라 달라집니다. .

내가 초인종이 울릴 때 끊임없이 짖는 것을 멈추었을 때 강아지의 머리를 쓰다듬거나, 그가 닥치지 않을 때 개를 사육장에 가두는 것처럼, 강화 알고리즘은 목표를 최적화하는 결정을 내릴 때 보상을 받습니다(예:득점 최대 포인트 수) 및 불량시 벌점.

강화 학습 알고리즘의 명백한 응용 프로그램은 다음과 같습니다.

  • 체스 및 바둑과 같은 게임(Netflix에서 AlphaGo 다큐멘터리를 아직 보지 않았다면 강력히 추천합니다.)
  • 로봇(봇이 원하는 작업을 완료하도록 교육)
  • 자율주행 차량
  • 주식 시장을 이기기 위해 훈련된 로보어드바이저

강화 학습 이면의 알고리즘에 대해 자세히 알아보려면 Google에서 Q-learning, SARSA(state-action-reward-state-action), DQN 및 비동기적 이점 행위자 비평가를 검색하세요.

결론

이 예제가 기계 학습 기술과 각 기술이 오늘날 우리가 살고 있는 미친 세상에 영향을 미치는 데 어떻게 사용되는지 이해하는 데 도움이 되었기를 바랍니다. 가끔 배울 것이 너무 많다는 사실에 압도당하기도 하지만 아무 곳에서 시작하는 것이 아무것도 하지 않는 것보다 낫습니다. 그리고 이 중 많은 부분이 실제로 전혀 새로운 것이 아님을 기억하십시오. 더 저렴한 전력.