PART 2 · TRACK 3 · LESSON 1
선형 회귀
모금할 때: AI다 채용 시: 머신러닝입니다 구현할 때: 선형 회귀입니다.
LESSON FOCUS
이 소단원의 핵심 내용
모금할 때: AI다 채용 시: 머신러닝입니다 구현할 때: 선형 회귀입니다.
- 선형 회귀
- 트위터에 유포되는 인기 있는 농담에 따르면:
- 머신러닝의 종류
I. 선형 회귀
트위터에 유포되는 인기 있는 농담에 따르면:
모금할 때: AI다
채용 시: 머신러닝입니다
구현할 때: 선형 회귀입니다.
사실, 이렇게 웃으면서 죽이는 농담이 이렇게 인기를 끌게 된 이유는 그 속에 진실성이 담겨 있기 때문이라고 생각합니다. 잠재적 투자자에게 엘리베이터 피치를 제공할 때 AI와 같은 보다 일반적인 용어를 사용하는 것이 합리적입니다. 적합한 분야의 전문가를 확보하려면 채용 시 좀 더 구체적인 용어를 사용하는 것이 현명하며, 오늘날 대부분의 AI 비즈니스에서 가장 관련성이 높은 AI 하위 영역은 머신러닝입니다. 그리고 놀랍게도 많은 실제 기계 학습 응용 분야에서 올바른 데이터를 사용한 선형 회귀는 매우 강력한 기술입니다.
머신러닝의 종류
기계 학습 및 선형 회귀 주제로 넘어가기 전에 기계 학습 유형을 빠르게 검토해야 합니다.
지도 학습
지도 학습에서는 답이 무엇인지 알고 정답을 생성하기 위한 모델을 구축하려고 합니다. 예를 들어 아파트가 판매된 가격과 아파트의 일부 속성(제곱미터 단위, 층수 등)을 알 수 있는 아파트 가격 데이터가 있습니다. 모델은 이러한 속성을 사용하여 아파트 가격을 예측합니다.
지도 학습 문제는 예를 들어 분류 문제(개, 고양이, 앵무새 사진이 있고 주어진 사진에 있는 동물이 개, 고양이, 앵무새인지 감지하는 모델을 구축하고 싶습니다) 또는 회귀 문제(각 학생이 시험을 위해 공부한 시간과 성적을 보여주는 수업 기록 데이터가 있고 이 관계를 모델링하고 싶습니다)가 될 수 있습니다.
비지도 학습
비지도 학습 환경에서는 답이 없습니다. 적어도 여러분이 아는 답은 없습니다. 모델은 데이터에서 구조를 찾거나 데이터 표현을 생성하려고 시도합니다. 예를 들어 비디오 스트리밍 서비스가 있고 사용자가 시청한 비디오를 보여주는 사용자 데이터가 있습니다. 그런 다음 이 데이터를 사용하여 프로필을 기반으로 동영상이나 사용자를 그룹화할 수 있습니다. 여기서 중요한 점은 여러분이 제공한 이러한 그룹에 대한 근거가 없다는 것입니다. 실제로 시스템에는 세 가지 유형의 뷰어만 있는 것이 사실일 수 있지만 문제가 감독되지 않은 문제인 경우 이는 이를 사전에 알지 못한다는 의미입니다.
또 다른 예는 비디오 서비스 스트리밍 사용자를 행동에 따라 다른 클러스터로 그룹화하여 사용자 기반에 대한 통찰력을 얻는 것입니다. 다양한 종류의 서비스에서 이점을 얻을 수 있는 다양한 유형의 프로필을 찾으려고 노력할 수 있습니다.
강화 학습
강화 학습은 아마도 인공 지능과 관련하여 대부분의 사람들이 (넓은 의미에서) 생각하는 것과 가장 가깝습니다. 강화 학습에는 일종의 보상을 극대화하는 방식으로 환경에서 작동하는 "에이전트"가 있습니다. 에이전트의 예로는 유명한 2D 횡스크롤 플랫폼 게임에서 플레이어 캐릭터를 제어하는 소프트웨어가 있습니다. 보상은 레벨 통과 시 최종 점수로 정의됩니다. 그런 다음 에이전트는 점수를 최대화하는 행동에 대한 규칙을 공식화하려고 시도합니다. 여기에는 파워 업을 늘리고 적 타격을 피하는 등 점수를 획득하려는 행동이 포함될 수 있습니다.
강화 학습 설정의 최신 예는 DeepMind의 AlphaGo와 그 변형입니다. 이는 보드 게임 바둑을 플레이할 수 있고 기술 면에서 최고의 인간 플레이어를 능가하는 강화 학습 시스템입니다.
이제 검토를 마치고 선형 회귀로 돌아가겠습니다.
참고!
선형 회귀
선형 회귀 개념은 AI 소개에 설명되어 있습니다. 다시 한 번 여러분이 기본 아이디어를 이미 알고 있다고 가정하겠습니다. 그렇지 않은 경우 AI 소개의 자료를 살펴보세요. 여기서는 요약된 재교육만 제공하겠습니다.
선형 회귀가 많은 솔루션 중 하나인 일반적인 문제는 회귀입니다. 작업은 일련의 입력 값이 주어졌을 때 숫자 값을 예측하는 것입니다. 예를 들어, 평방 미터 단위의 크기, 가장 가까운 이웃까지의 거리, 상태(일부 수치 척도로 측정) 등과 같은 다양한 특성을 기반으로 mökki(핀란드 오두막)의 가격을 예측합니다.
주요 용어
예측을 얻는 데 사용되는 데이터에 대해 입력 또는 기능이라는 용어를 사용하고 예측할 항목에 대해 출력 또는 응답이라는 용어를 사용합니다. 예를 들어 객실의 크기는 특성(또는 입력)이고 가격은 출력(또는 응답)입니다. 일반적으로 우리는 입력 값과 응답을 모두 포함하는 일부 데이터를 가지고 있으며, 우리의 목표는 출력이 실제 응답 값과 최대한 일치하도록 모델을 조정하는 것입니다.
선형 회귀에서 예측은 고정된 양만큼 가변적인 특성의 각 증분이 동일한 양만큼 예측 출력을 늘리거나 줄이는 선형 모델을 사용하여 계산됩니다. 이 금액은 기능마다 다를 수 있습니다. 예를 들어, 객실의 예상 가격이 다음과 같다면 €400,000 €400,000이고 다른 모든 조건이 동일할 때 크기가 1제곱미터 증가할 때마다 예상 가격이 같은 양만큼 증가합니다. € 4000 €4000; 따라서 2제곱미터씩 증가하면 가격이 다음과 같이 증가합니다. € 8000 €8000, 3제곱미터 증가 €12,000 €12,000 등.
실내 화장실의 개수도 마찬가지입니다. 즉, 일정한 양이 있다는 뜻입니다.
€
2000
€2000, 각 화장실의 예상 가격이 증가합니다. 음수인 계수의 경우에는 그 반대도 마찬가지입니다. 예를 들어 캐빈의 경우 캐빈에서 수역(예: 호수)까지의 거리가 짧을수록 캐빈 가격이 높아집니다. 해당 변수에 대한 음수 계수를 사용하면 객실에서 수역까지의 거리가 1미터씩 추가될 때마다 가격이 고정된 금액만큼 낮아집니다.
참고!
객실 가격 책정 모델은 선형 회귀 모델이 반드시 좋은 모델은 아니라는 사실을 보여주는 좋은 예입니다. 물에 더 가까워짐에 따라 발생하는 가격 변화는 크기가 다른 선실마다 다를 수 있다는 것은 분명합니다. 선형 회귀 모델은 특별한 트릭 없이는 이를 포착할 수 없습니다. 그러한 트릭 중 하나는 예측 변수를 평방 미터당 가격으로 변경하는 것입니다. 물에 가까워질수록 평방미터당 가격이 높아지면 소형 캐빈보다 대형 캐빈의 총 가격이 더 높아집니다.
세 가지 입력에 해당하는 x₁
. 입력 중 하나를 1단위(예: 1제곱미터)씩 증가시킴으로써 발생하는 예측의 증가는 해당 계수로 제공됩니다. 물론 입력 개수가 3개일 필요는 없지만 계수 개수는 항상 입력 개수와 동일합니다. 종종 모델에 소위 절편 용어도 포함하는데, 이 경우 다음과 같습니다.
여기서 "a"는 절편 항입니다.
절편 항의 목적은 입력과 관계없이 일정한 양만큼 예측 값을 증가(또는 절편 값이 음수인 경우 감소)할 수 있도록 하는 것입니다.
아래에는 객실 가격에 대한 예측을 생성하는 간단한 프로그램이 있습니다. (면책 조항: 이 프로그램은 데모 목적으로만 제작되었습니다. 예측을 신뢰하여 돈을 잃었다고 해서 우리를 비난하지 마십시오!) 입력 값을 수정하여 다양한 객실에 대한 예측을 얻을 수 있습니다.
객실 세부정보, 즉 크기( 66𝑚266m2 ), 사우나 규모( 5𝑚25m2 ), 물까지의 거리 ( 15𝑚 15m), 실내 화장실 개수( 2 2) 그리고 가장 가까운 이웃의 근접성( 500𝑚 500m)이 목록의 요소로 지정됩니다. 𝑥 x. 해당 계수는 목록에 지정됩니다. 𝑐 c. 목록의 요소 𝑥 x는 입력입니다. x₁
. 이 예에서는 절편 용어를 사용하지 않습니다.
지금까지 우리는 간단한 계산을 사용하여 가격 추정치를 얻었지만 이는 실제로 선형 회귀로 수행할 수 있는 가장 인상적인 작업은 아닙니다. 상황을 뒤집으면 상황이 흥미로워집니다. 입력(객실 기능)과 출력(최종 가격)을 알고 있고 각 기능이 가격에 어떤 영향을 미치는지 알고 싶다고 가정해 보겠습니다. 즉, 우리는 여러 객실에 대한 입력과 출력을 포함하는 데이터로부터 계수를 추정하고자 합니다.
모델이 데이터의 출력을 완벽하게 예측하게 만드는 계수를 거의 찾을 수 없습니다. 실제 가격은 모델에 기능(크기, 사우나 크기 등)으로 포함된 것 이외의 수많은 다른 요소에도 의존하기 때문입니다. 따라서 정확히 동일한 기능을 갖춘 두 개의 캐빈이 결국 다른 가격에 판매될 수 있습니다. 또는 객실의 크기가 일반적으로 양의 의존성을 갖고 있음에도 불구하고(더 큰 것은 더 높은 가격을 의미함) 때로는 다른 기능이 고정되어 있어도 더 큰 mökki가 더 작은 것보다 더 저렴할 수도 있습니다.
참고!
모델이 일반적으로 근본적인 현상을 완벽하게 포착하지 못하는 데에는 여러 가지 이유가 있습니다. 여기에는 노이즈(무작위, 비체계적 교란), 교란 변수(입력 및 출력 모두와 관련된 기능), 선택 편향(일부 데이터 포인트는 다른 데이터 포인트보다 모델을 구축하는 데 사용되는 데이터에 포함될 가능성이 더 높음) 등이 포함됩니다. 이는 모델과 해당 예측에 대해 항상 비판적이어야 함을 의미합니다. 이를 위해서는 모델이 사용되는 맥락과 데이터의 가능한 편향을 이해해야 합니다.
선형 회귀에서 매개변수를 추정하는 것은 통계 및 기계 학습의 고전적인 문제 중 하나이며, 이 고전적인 문제에 대한 가장 고전적인 해결책은 1800년대 초 Legendre와 Gauss가 제안한 소위 최소 제곱 방법입니다. 분명히 그 당시에는 기계 학습이라는 용어가 사용되지 않았지만 새로운 분야(예: 기계 학습 및 AI)가 기존 분야(예: 통계)의 방법론을 채택하는 것은 드문 일이 아닙니다.
이 방법을 최소 제곱법이라고 부르는 이유는 모델의 출력과 관찰된 응답 값 간의 제곱 차이를 최소화하기 위해 계수를 최적화하는 것이기 때문입니다. 우리는 데이터의 각 항목에 대해 예측된 출력 값과 관찰된 출력 값 간의 차이를 계산하고 제곱을 합니다. 𝑥×𝑥=𝑥2 x×x=x 2 의 제곱이라고 불린다 𝑥 x – 사각형을 더합니다. 계수는 이 제곱합이 최소가 되도록 선택됩니다. 따라서 최소 제곱법이 사용됩니다. 최소제곱법은 이 문제를 정확하고 효율적으로 해결합니다. 기술적으로 이는 일부 행렬 대수학을 포함하므로 자세히 설명하지 않겠습니다. 다행히도 이미 구현되어 있는 Python 패키지가 많이 있습니다.
다음은 최소 제곱의 작동 방식을 시각화하는 예시입니다. 무작위 데이터 세트를 생성하고 최소 제곱선이 무엇인지 예측해 보십시오(예측 오류를 최소화하여 안내). 최소 제곱 적합에 얼마나 가까워질 수 있나요?
팁: 아래 데이터 세트를 생성할 때 일부 포인트가 매우 분산되어 있음을 알 수 있습니다. 그러나 최소제곱법은 여전히 이를 선으로 모델링하려고 합니다. 이는 최소 제곱과 같은 선형 모델을 적용할 데이터 세트와 적합하지 않은 데이터 세트를 파악하는 데 좋은 지표입니다!
(x, y) 형식((0, 5), (2, 9.6) 및 (3.2, 13.6))의 세 점으로 구성된 데이터 세트가 있다고 가정합니다. 동료들은 데이터에 적합하도록 세 가지 다른 모델(모두 y = a + b*x 형식)을 구축했습니다. 그들은 모델의 계수를 제공했으며 다음과 같습니다.
가) a=0.5, b=3.2
b) a=0, b=1.9
다) a=7.6, b=1.9
다음 중 가장 작은 제곱 오차를 제공하는 계수는 무엇입니까? 위 예시의 "연습용 데이터 세트"를 활용하면 오류 계산에 도움이 됩니다!
다음은 최소제곱법의 예입니다. 5개의 객실을 데이터로 사용합니다. 데이터는 다음과 같습니다:
크기 사우나 크기 물까지의 거리 실내 욕실 수 이웃과의 근접성 가격(€)(출력)
캐빈 1 25 2 50 1 500 127,900
캐빈 2 39 3 10 1 1000 222,100
캐빈 3 13 2 13 1 1000 143,750
캐빈 4 82 5 20 2 120 268,000
캐빈 5 130 6 10 2 600 460,700
먼저 계수 추정값을 살펴보겠습니다. 가치 3000 첫 번째 계수의 3000은 크기가 평방 미터 증가할 때마다 더해짐을 의미합니다. € 3000 가격은 €3000입니다. 가치 -50 세 번째 계수의 -50은 호수에서 미터당 멀어질수록 객실 가격이 하락함을 의미합니다. €50 €50, 또는 반대로 수역에 더 가까워지는 미터당 지불해야 하는 금액 €50 €50 더요.
두 번째 출력은 데이터의 5개 객실에 대한 예측 가격 세트입니다. 127,900 127,900, 222,100 222,100, 143,750 143,750, 268,000 268,000, 및 460,700 460,700. 아마도 눈치채셨겠지만, 이는 배열 y로 데이터에 제공된 것과 정확히 동일한 숫자입니다. 그렇다면 앞서 선형 회귀 모델이 완벽하게 예측할 수 없다고 말한 이유는 무엇입니까?
이 다섯 가지 경우의 예상치 못한 완벽한 예측에 대한 설명은 사례 수가 모델의 계수 수보다 작거나 같으면 모델이 데이터로 사용된 출력 값과 항상 완벽하게 일치할 수 있다는 것입니다. 위의 예에서는 둘 다 5이므로 완벽한 일치는 실제로 놀라운 일이 아닙니다.
다음은 더 많은 데이터를 추가하고 선형 회귀 모델을 자동으로 맞추는 데 사용할 수 있는 간단한 예시입니다.
예시을 이용하여 여섯 번째 캐빈의 세부정보를 추가하면 다음과 같은 데이터가 생성됩니다. 회귀 모델이 새로 입력된 데이터에 어떻게 적응하고 객실의 예상 가격을 변경하는지 관찰하세요.
보시다시피 계수 추정치가 다소 변경되었습니다. 예를 들어 크기의 효과가 다음과 같이 변경되었습니다. € 3000 /𝑚2 €3000/월 2에€ 2989.6 /𝑚2 €2989.6/월 2 . 더욱 흥미로운 점은 이전에 데이터에 포함되었던 5개 객실에 대한 예상 가격도 변경되었다는 점입니다. 이 가격은 데이터에서 제공된 수치와 그리 멀지는 않지만 더 이상 정확히 동일하지 않습니다.
위에서 일어난 일은 데이터에 6번째 캐빈을 추가하면 모델이 변경되고 가격 예측이 조정되었다는 것입니다.
참고!
더 많은 데이터가 더 나쁜 예측이 아니라 더 나은 예측으로 이어져야 하지 않나요?
글쎄요, 그렇습니다. 이 질문이 여러분의 머리 속에 떠올랐을 수도 있고, 당연히 그렇습니다. 사람들이 기계 학습에 관해 이야기하는 것을 들어본 적이 있다면, 엄청난 양의 데이터를 보유한 대기업이 더 나은 모델을 구축하고 예를 들어 사용자 행동을 더 정확하게 예측할 수 있기 때문에 얼마나 우위에 있는지 들어보셨을 것입니다. 위의 예에서 데이터 세트에 객실이 5개만 있을 때는 완벽한 예측을 했지만, 6번째 객실이 있을 때는 정확도가 떨어졌습니다.
이에 대한 설명은 훈련 데이터와 테스트 데이터의 구별과 관련이 있습니다. 위의 예에서는 모델을 훈련한 것과 동일한 데이터에 대한 예측 정확도를 평가했습니다. 이미 가지고 있는 숫자를 실제로 "예측"할 필요가 없기 때문에 이것은 실제 사용 사례가 아닙니다. 실제 테스트는 훈련된 모델을 사용하여 훈련 데이터에 없는 새 객실의 가격을 예측할 때 이루어집니다. 우리는 이 매우 중요한 문제와 그것이 기계 학습에 미치는 영향에 대해 나중에 다시 다루겠습니다.
훈련 데이터에 없는 객실 가격을 예측하기 위해 모델을 어떻게 사용할 수 있는지 살펴보겠습니다. 아래 예시을 사용하여 다음 객실 가격을 예측해 보세요. 이번에는 새로운 데이터를 입력하더라도 모델에 영향을 주지 않도록 계수가 고정되었습니다.
LESSON COMPLETE
