기계 학습 이론 및 응용 소개: 예제가 포함된 시각적 자습서
게시 됨: 2022-03-11머신 러닝(ML)은 데이터 마이닝, 자연어 처리, 이미지 인식 및 전문가 시스템과 같은 광범위한 중요 애플리케이션에서 ML이 핵심적인 역할을 할 수 있다는 인식이 커지면서 자체적으로 등장하고 있습니다. ML은 이러한 모든 영역과 그 이상에서 잠재적인 솔루션을 제공하며 미래 문명의 기둥이 될 것입니다.
유능한 ML 디자이너의 공급은 아직 이 수요를 따라잡지 못했습니다. 그 주된 이유는 ML이 매우 까다롭기 때문입니다. 이 기계 학습 자습서는 ML 이론의 기본을 소개하고 공통 주제와 개념을 제시하여 논리를 따르고 기계 학습 기본에 익숙해지기 쉽습니다.
머신 러닝이란 무엇입니까?
그렇다면 "머신 러닝"이란 정확히 무엇입니까? ML은 실제로 많은 것입니다. 이 분야는 상당히 방대하고 빠르게 확장되고 있으며 지속적으로 분할되고 여러 하위 전문 분야 및 머신 러닝 유형으로 세분화되고 있습니다.
그러나 몇 가지 기본적인 공통점이 있으며, 가장 중요한 주제는 1959년 Arthur Samuel이 자주 인용한 다음과 같은 진술로 가장 잘 요약됩니다 . 명시적으로 프로그래밍되고 있습니다."
그리고 보다 최근인 1997년에 Tom Mitchell은 엔지니어링 유형에 더 유용한 것으로 입증된 "정확한" 정의를 제공했습니다 . P로 측정한 T에서의 성능은 경험 E와 함께 향상됩니다."
따라서 프로그램이 예를 들어 혼잡한 교차로에서 교통 패턴을 예측하도록 하려면(작업 T) 과거 교통 패턴(경험 E)에 대한 데이터가 있는 기계 학습 알고리즘을 통해 실행할 수 있습니다. ”, 그러면 미래의 트래픽 패턴을 더 잘 예측할 수 있습니다(성능 측정 P).
그러나 많은 실제 문제의 매우 복잡한 특성으로 인해 매번 문제를 완벽하게 해결하는 특수 알고리즘을 발명하는 것이 불가능하지는 않더라도 비실용적입니다. 머신러닝 문제의 예로는 "이것이 암인가?", "이 집의 시장 가치는 얼마인가?", "이 사람들 중 누가 좋은 친구일까?", "이 로켓 엔진은 이륙할 때 폭발할까? ", "이 사람이 이 영화를 좋아할까?", "이게 누구지?", "무슨 말을 했어?", "이 물건을 어떻게 날리니?" 이러한 모든 문제는 ML 프로젝트의 훌륭한 대상이며 실제로 ML은 각 문제에 성공적으로 적용되었습니다.
다양한 유형의 ML 작업 중에서 지도 학습과 비지도 학습 간에 중요한 차이가 있습니다.
- 지도 머신 러닝: 프로그램은 미리 정의된 "훈련 예" 세트에 대해 "훈련"되며, 이를 통해 새로운 데이터가 제공될 때 정확한 결론에 도달할 수 있습니다.
- 비지도 머신 러닝: 프로그램에 많은 데이터가 주어지고 그 안에서 패턴과 관계를 찾아야 합니다.
여기서는 주로 지도 학습에 중점을 둘 것이지만 기사의 끝에는 주제를 더 추구하는 데 관심이 있는 사람들을 위한 몇 가지 링크와 함께 비지도 학습에 대한 간략한 토론이 포함됩니다.
지도 머신 러닝
대부분의 지도 학습 응용 프로그램에서 궁극적인 목표는 미세 조정된 예측 함수 h(x)
(때로는 "가설"이라고도 함)를 개발하는 것입니다. "학습"은 정교한 수학적 알고리즘을 사용하여 이 기능을 최적화하는 것으로 구성되어 특정 영역(예: 집의 평방 피트수)에 대한 입력 데이터 x
가 주어지면 흥미로운 값 h(x)
(예: 시장 가격)를 정확하게 예측합니다. 해당 집).
실제로 x
는 거의 항상 여러 데이터 요소를 나타냅니다. 예를 들어 주택 가격 예측자는 평방 피트( x1
)뿐만 아니라 침실 수( x2
), 욕실 수( x3
), 층 수( x4)
, 건축 연도( x5
), 우편 번호를 사용할 수 있습니다. ( x6
) 등. 사용할 입력을 결정하는 것은 ML 설계의 중요한 부분입니다. 다만, 설명의 편의상 하나의 입력값을 사용한다고 가정하는 것이 가장 쉽다.
간단한 예측자가 다음과 같은 형식을 갖는다고 가정해 보겠습니다.
어디 그리고
상수입니다. 우리의 목표는 완벽한 가치를 찾는 것입니다.
그리고
예측기가 가능한 한 잘 작동하도록 합니다.
예측 변수 h(x)
최적화는 훈련 예제 를 사용하여 수행됩니다. 각 훈련 예제에 대해 입력 값 x_train
이 있으며 이에 대해 해당 출력 y
가 미리 알려져 있습니다. 각 예에 대해 알려진 올바른 값 y
와 예측 값 h(x_train)
의 차이를 찾습니다. 충분한 훈련 예제를 통해 이러한 차이는 h(x)
의 "틀림"을 측정하는 유용한 방법을 제공합니다. 그런 다음 다음 값을 조정하여 h(x)
를 조정할 수 있습니다. 그리고
"덜 틀리게" 만들기 위해. 이 프로세스는 시스템이 최적의 값에 수렴할 때까지 계속 반복됩니다.
그리고
. 이러한 방식으로 예측자는 훈련되고 실제 예측을 수행할 준비가 됩니다.
머신 러닝 예제
이 게시물에서는 설명을 위해 간단한 문제를 다루지만 ML이 존재하는 이유는 실제 세계에서 문제가 훨씬 더 복잡하기 때문입니다. 이 평면 화면에서 기껏해야 3차원 데이터 세트의 그림을 그릴 수 있지만 ML 문제는 일반적으로 수백만 차원의 데이터와 매우 복잡한 예측 기능을 처리합니다. ML은 수치적 수단만으로는 해결할 수 없는 문제를 해결합니다.
이를 염두에 두고 간단한 예를 살펴보겠습니다. 회사 직원이 1에서 100까지의 척도로 만족도를 평가한 다음과 같은 교육 데이터가 있다고 가정해 보겠습니다.
먼저 데이터에 약간의 노이즈가 있다는 점에 유의하십시오. 즉, 패턴이 있음을 알 수 있지만(즉, 급여가 올라갈수록 직원 만족도가 높아지는 경향이 있음), 모든 것이 직선에 깔끔하게 들어맞지는 않습니다. 이것은 실제 데이터의 경우 항상 해당됩니다(그리고 우리는 실제 데이터를 사용하여 기계를 훈련시키고 싶습니다!). 그렇다면 직원의 만족도를 완벽하게 예측하도록 기계를 훈련시키는 방법은 무엇일까요? 물론 대답은 우리가 할 수 없다는 것입니다. ML의 목표는 "완벽한" 추측을 하는 것이 아닙니다. ML은 그런 것이 없는 영역을 다루기 때문입니다. 목표는 유용할 만큼 충분히 좋은 추측을 하는 것입니다.
이는 영국의 수학자이자 통계학 교수인 George EP Box가 "모든 모델은 틀리지만 일부는 유용하다"는 유명한 말을 다소 연상시킵니다.
기계 학습은 통계를 기반으로 합니다. 예를 들어 학습을 위해 기계를 훈련할 때 통계적으로 유의미한 무작위 샘플을 훈련 데이터로 제공해야 합니다. 훈련 세트가 무작위가 아니면 실제로 존재하지 않는 기계 학습 패턴의 위험이 있습니다. 그리고 훈련 세트가 너무 작으면(대수의 법칙 참조) 충분히 배우지 못하고 부정확한 결론에 도달할 수도 있습니다. 예를 들어, 고위 경영진의 데이터만 기반으로 회사 전체의 만족도 패턴을 예측하려고 하면 오류가 발생하기 쉽습니다.
이러한 이해를 바탕으로 위에서 제공한 데이터를 기계에 제공하고 학습시키도록 합시다. 먼저 다음과 같은 합리적인 값으로 예측자 h(x)
를 초기화해야 합니다. 그리고
. 이제 예측자는 훈련 세트 위에 배치될 때 다음과 같습니다.
$60,000를 버는 직원의 만족도에 대해 이 예측 변수에 물으면 평점은 27로 예측됩니다.
이것은 끔찍한 추측이었고 이 기계가 잘 알지 못하는 것이 분명합니다.
이제 이 예측 변수에 훈련 세트의 모든 급여를 제공하고 결과 예측 만족도 평점과 해당 직원의 실제 만족도 평점 간의 차이를 계산해 보겠습니다. 약간의 수학적 마법을 수행하면(이에 대해 곧 설명하겠습니다) 13.12의 값을 매우 확실하게 계산할 수 있습니다. 및 0.61에 대한
더 나은 예측 변수를 제공할 것입니다.
이 과정을 1500번 반복하면 예측자는 다음과 같이 됩니다.
이 시점에서 과정을 반복하면 다음을 찾을 수 있습니다. 그리고
더 이상 감지할 수 있는 양만큼 변경되지 않으므로 시스템이 수렴되었음을 알 수 있습니다. 실수가 없다면 최적의 예측 변수를 찾았음을 의미합니다. 따라서 이제 $60,000를 버는 직원의 만족도를 다시 기계에 물으면 대략 60의 평가를 예측할 것입니다.
이제 우리는 어딘가에 가고 있습니다.
기계 학습 회귀: 복잡성에 대한 참고 사항
위의 예는 기술적으로 일변량 선형 회귀의 간단한 문제이며, 실제로는 간단한 정규 방정식을 유도하고 이 "조정" 프로세스를 모두 건너뛰면 해결할 수 있습니다. 그러나 다음과 같은 예측 변수를 고려하십시오.
이 함수는 4차원 입력을 받고 다양한 다항식 항을 갖습니다. 이 함수에 대한 정규 방정식을 유도하는 것은 상당한 도전입니다. 많은 최신 머신 러닝 문제는 수백 개의 계수를 사용하여 예측을 구축하기 위해 수천 또는 수백만 차원의 데이터가 필요합니다. 유기체의 게놈이 어떻게 발현될 것인지, 또는 50년 후의 기후가 어떠할 것인지 예측하는 것은 그러한 복잡한 문제의 예입니다.
다행히도 ML 시스템에서 취하는 반복적인 접근 방식은 이러한 복잡성에 직면하여 훨씬 더 탄력적입니다. 무차별 대입을 사용하는 대신 기계 학습 시스템은 답을 "느끼는" 것입니다. 큰 문제의 경우 훨씬 더 잘 작동합니다. 이것이 ML이 모든 복잡한 문제를 임의로 해결할 수 있다는 것을 의미하지는 않지만(그렇지 못함) 엄청나게 유연하고 강력한 도구가 됩니다.
Gradient Descent - "틀림" 최소화
이 반복 프로세스가 어떻게 작동하는지 자세히 살펴보겠습니다. 위의 예에서 우리는 어떻게 그리고
각 단계에 따라 점점 나아지고 있습니까? 그 해답은 약간의 미적분과 함께 앞서 언급한 우리의 "틀림의 측정"에 있습니다.
잘못된 측정은 비용 함수 (일명 손실 함수 )로 알려져 있습니다. . 입력
예측 변수에서 사용하는 모든 계수를 나타냅니다. 그래서 우리의 경우,
정말 쌍이다
그리고
.
주어진 값을 사용할 때 예측 변수가 얼마나 잘못된 것인지에 대한 수학적 측정값을 제공합니다.
그리고
.

비용 함수의 선택은 ML 프로그램의 또 다른 중요한 부분입니다. 상황에 따라 "틀렸다"는 것은 매우 다른 의미를 가질 수 있습니다. 직원 만족도 예에서 잘 정립된 표준은 선형 최소제곱 함수입니다.
최소 제곱을 사용하면 잘못된 추측에 대한 페널티가 추측과 정답의 차이에 따라 2차적으로 증가하므로 매우 "엄격한" 오답 측정 역할을 합니다. 비용 함수는 모든 훈련 예제에 대한 평균 패널티를 계산합니다.
이제 우리의 목표는 그리고
우리의 비용
h(x)
가 가능한 한 작습니다. 우리는 이것을 성취하기 위해 미적분학의 힘을 요구합니다.
특정 기계 학습 문제에 대한 다음 비용 함수 플롯을 고려하십시오.
여기에서 서로 다른 값과 관련된 비용을 볼 수 있습니다. 그리고
. 그래프의 모양에 약간의 그릇이 있음을 알 수 있습니다. 그릇의 바닥은 주어진 훈련 데이터를 기반으로 예측자가 제공할 수 있는 가장 낮은 비용을 나타냅니다. 목표는 "언덕을 굴러 내려가는 것"이며,
그리고
이 점에 해당합니다.
이 머신 러닝 튜토리얼에서 미적분학이 등장합니다. 이 설명을 관리하기 쉽게 유지하기 위해 여기에 방정식을 쓰지 않겠지만 본질적으로 우리가 하는 일은 다음과 같은 기울기를 취하는 것입니다. , 의 파생어 쌍입니다.
(하나 오버
그리고 하나 이상
). 기울기는 의 모든 다른 값에 대해 다릅니다.
그리고
, 그리고 "언덕의 경사"가 무엇인지, 특히 "어느 쪽이 아래로 내려가는지"가 무엇인지 알려줍니다.
에스. 예를 들어 현재 값을 연결하면
그라디언트에 약간 추가하면
그리고 조금 빼면
비용 함수 밸리 바닥의 방향으로 우리를 데려갈 것입니다. 따라서 우리는 약간의 추가
, 그리고 에서 약간 빼
, 그리고 짜잔! 학습 알고리즘의 한 라운드를 완료했습니다. 업데이트된 예측 변수 h(x) =
+
x는 이전보다 더 나은 예측을 반환합니다. 우리 기계는 이제 조금 더 똑똑해졌습니다.
현재 기울기를 계산하는 것과 업데이트하는 것을 번갈아 하는 이 과정 결과에서 s는 경사하강법으로 알려져 있습니다.
이는 대부분의 지도 머신 러닝 시스템의 기초가 되는 기본 이론을 다룹니다. 그러나 기본 개념은 당면한 문제에 따라 다양한 방식으로 적용될 수 있습니다.
기계 학습의 분류 문제
감독된 ML에서 두 가지 주요 하위 범주는 다음과 같습니다.
- 회귀 기계 학습 시스템: 예측되는 값이 연속 스펙트럼의 어딘가에 속하는 시스템. 이러한 시스템은 "얼마나?"라는 질문에 도움이 됩니다. 또는 "얼마나?".
- 분류 기계 학습 시스템: "이 종양이 암을 유발합니까?", "이 쿠키가 품질 표준을 충족합니까?" 등과 같은 예 또는 아니오 예측을 찾는 시스템입니다.
결과적으로 기본 머신 러닝 이론은 거의 동일합니다. 주요 차이점은 예측 변수 h(x)
의 설계와 비용 함수의 설계입니다. .
지금까지의 예제는 회귀 문제에 중점을 두었으므로 이제 분류 예제도 살펴보겠습니다.
다음은 쿠키 품질 테스트 연구 결과입니다. 여기에서 교육 예제는 모두 파란색으로 "좋은 쿠키"( y = 1
) 또는 빨간색으로 "나쁜 쿠키"( y = 0
)로 레이블이 지정되었습니다.
분류에서 회귀 예측자는 그다지 유용하지 않습니다. 우리가 일반적으로 원하는 것은 0과 1 사이의 어딘가에서 추측을 하는 예측기입니다. 쿠키 품질 분류기에서 1의 예측은 쿠키가 완벽하고 군침이 도는 매우 확신에 찬 추측을 나타냅니다. 예측값이 0이면 쿠키가 쿠키 업계를 난처하게 만든다는 높은 신뢰도를 나타냅니다. 이 범위에 속하는 값은 신뢰도가 낮다는 것을 나타내므로 0.6이라는 예측이 "이봐, 그건 어려운 일이지만 나는 네, 당신은 그 쿠키를 팔 수 있습니다"를 의미하도록 시스템을 설계할 수 있습니다. 중간인 0.5는 완전한 불확실성을 나타낼 수 있습니다. 이것은 분류기에서 신뢰도가 항상 분포되는 방식은 아니지만 매우 일반적인 디자인이며 그림의 목적을 위해 작동합니다.
이 동작을 잘 포착하는 멋진 함수가 있다는 것이 밝혀졌습니다. 시그모이드 함수 g(z)
라고 하며 다음과 같이 보입니다.
z
는 다음과 같은 입력 및 계수의 일부 표현입니다.
예측자가 다음과 같이 됩니다.
시그모이드 함수는 출력을 0과 1 사이의 범위로 변환합니다.
비용 함수 설계의 논리는 분류에서도 다릅니다. 우리는 다시 "추측이 틀렸다는 것은 무엇을 의미합니까?"라고 묻습니다. 그리고 이번에는 아주 좋은 경험 법칙은 만약 정확한 추측이 0이고 우리가 1을 추측했다면, 우리는 완전히 그리고 완전히 틀렸고 그 반대도 마찬가지라는 것입니다. 당신이 절대적으로 틀린 것보다 더 많이 틀릴 수는 없기 때문에 이 경우의 처벌은 엄청납니다. 또는 올바른 추측이 0이고 추측이 0인 경우 비용 함수는 이러한 일이 발생할 때마다 비용을 추가하지 않아야 합니다. 추측이 맞았지만 완전히 확신하지 못한 경우(예: y = 1
, 그러나 h(x) = 0.8
), 이것은 약간의 비용이 들며 추측이 틀렸지만 완전히 확신하지 못한 경우( 예를 들어 y = 1
이지만 h(x) = 0.3
), 이것은 상당한 비용을 수반해야 하지만 우리가 완전히 틀린 것처럼 많지는 않습니다.
이 동작은 다음과 같이 log 함수에 의해 캡처됩니다.
다시, 비용 함수 모든 훈련 예제에 대한 평균 비용을 제공합니다.
여기에서 예측자 h(x)
와 비용 함수가 어떻게 회귀와 분류는 다르지만 경사 하강법은 여전히 잘 작동합니다.
분류 예측자는 경계선을 그려 시각화할 수 있습니다. 즉, 예측이 "예"(0.5보다 큰 예측)에서 "아니오"(0.5보다 작은 예측)로 변경되는 장벽입니다. 잘 설계된 시스템으로 쿠키 데이터는 다음과 같은 분류 경계를 생성할 수 있습니다.
이제 쿠키에 대해 한두 가지를 아는 기계가 되었습니다!
신경망 소개
기계 학습에 대한 논의는 최소한 신경망을 언급하지 않고는 완전하지 않을 것입니다. 신경망은 매우 어려운 문제를 해결할 수 있는 매우 강력한 도구를 제공할 뿐만 아니라 우리 두뇌의 작동에 대한 매혹적인 힌트와 언젠가는 진정한 지능적인 기계를 만들 수 있는 흥미로운 가능성을 제공합니다.
신경망은 입력 수가 엄청난 기계 학습 모델에 적합합니다. 이러한 문제를 처리하는 계산 비용은 위에서 논의한 시스템 유형에 비해 너무 압도적입니다. 그러나 결과적으로 신경망은 원칙적으로 경사 하강법과 매우 유사한 기술을 사용하여 효과적으로 조정할 수 있습니다.
신경망에 대한 철저한 논의는 이 튜토리얼의 범위를 벗어나지만 주제에 대한 이전 게시물을 확인하는 것이 좋습니다.
비지도 머신 러닝
비지도 머신 러닝은 일반적으로 데이터 내에서 관계를 찾는 작업을 수행합니다. 이 프로세스에 사용된 교육 예제가 없습니다. 대신 시스템에 세트 데이터가 주어지고 그 안에서 패턴과 상관 관계를 찾는 임무가 주어집니다. 좋은 예는 소셜 네트워크 데이터에서 친밀한 친구 그룹을 식별하는 것입니다.
이를 수행하는 데 사용되는 기계 학습 알고리즘은 지도 학습에 사용되는 알고리즘과 매우 다르며 주제는 자체 게시물에 가치가 있습니다. 그러나 그 동안 씹어 먹을 수 있는 것은 k-means와 같은 클러스터링 알고리즘을 살펴보고 주성분 분석과 같은 차원 축소 시스템을 살펴보십시오. 빅 데이터에 대한 이전 게시물에서도 이러한 여러 주제에 대해 자세히 설명합니다.
결론
우리는 여기에서 기계 학습 분야의 기초가 되는 기본 이론의 대부분을 다루었지만 물론 표면을 거의 긁지 않았을 뿐입니다.
이 소개에 포함된 이론을 실제 기계 학습 예제에 실제로 적용하려면 여기에서 논의된 주제에 대한 훨씬 더 깊은 이해가 필요합니다. ML에는 많은 미묘함과 함정이 있으며 완벽하게 조정된 사고 기계처럼 보이는 것에 의해 길을 잃는 많은 방법이 있습니다. 기본 이론의 거의 모든 부분은 끝없이 사용하고 변경할 수 있으며 결과는 종종 매혹적입니다. 많은 사람들이 특정 문제에 더 적합한 완전히 새로운 연구 분야로 성장합니다.
분명히 기계 학습은 믿을 수 없을 정도로 강력한 도구입니다. 앞으로 몇 년 동안 가장 시급한 문제를 해결하고 데이터 과학 회사에 완전히 새로운 기회의 세계를 열 것이라고 약속합니다. 머신 러닝 엔지니어에 대한 수요는 계속해서 증가할 것이며 거대한 무언가의 일부가 될 수 있는 놀라운 기회를 제공할 것입니다. 행동에 옮기는 것을 고려해 보시기 바랍니다!
승인
이 기사는 Stanford 교수인 Andrew Ng 박사가 무료 공개 기계 학습 과정에서 가르친 자료를 많이 활용합니다. 이 과정은 이 기사에서 논의된 모든 내용을 심도 있게 다루며 ML 실무자를 위한 수많은 실용적인 조언을 제공합니다. 이 매혹적인 분야를 더 탐구하는 데 관심이 있는 사람들에게 이 코스를 충분히 추천할 수 없습니다.
- 사운드 로직 및 모노토닉 AI 모델
- 스쿨링 플래피 버드: 강화 학습 튜토리얼