PART 2 · TRACK 3 · LESSON 2
최근접 이웃 방법
선형 회귀는 통계에서 차용한 수많은 기계 학습 방법 중 확실한 고전입니다. 컴퓨터 과학자가 발명한 가장 최근의 방법 중(적어도 1800년대 초반에 비해 더 최근) 소위 최근접 이웃 방법은 똑같이 고전적인 기술입니다.
LESSON FOCUS
이 소단원의 핵심 내용
선형 회귀는 통계에서 차용한 수많은 기계 학습 방법 중 확실한 고전입니다. 컴퓨터 과학자가 발명한 가장 최근의 방법 중(적어도 1800년대 초반에 비해 더 최근) 소위 최근접 이웃 방법은 똑같이 고전적인 기술입니다.
- 가장 가까운 이웃 방법
- 아마도 다음 Python 표현식을 사용하면 이 내용을 더 쉽게 읽을 수 있을 것입니다.
- ≈42.72
II. 가장 가까운 이웃 방법
선형 회귀는 통계에서 차용한 수많은 기계 학습 방법 중 확실한 고전입니다. 컴퓨터 과학자가 발명한 가장 최근의 방법 중(적어도 1800년대 초반에 비해 더 최근) 소위 최근접 이웃 방법은 똑같이 고전적인 기술입니다.
가장 가까운 이웃 방법은 상상할 수 있는 가장 간단한 방법입니다. 그러나 이를 무시해서는 안 됩니다. 야심찬 기계 학습 연구자는 때때로 자신의 최신 발명품이 좋은 오래된 최근접 방법에 의해 패배함으로써 겸손해지는 경향이 있습니다.
최근접이웃 방법은 회귀 및 분류 작업 모두에 사용할 수 있습니다. 회귀에서 작업은 객실 가격과 같은 연속 값을 예측하는 것이지만, 분류에서는 유한한 대안 집합(예: 아프거나 건강함)에서 선택한 레이블이 출력입니다.
항목이 다른 항목과 얼마나 가까운지를 수량화하려면 거리 측정법을 정의해야 합니다. 이 단어가 내포하는 비유는 꽤 분명합니다. 일상 생활에서 헬싱키는 뉴욕보다 스톡홀름에 더 가깝다고 말할 수 있습니다. 몇 미터 떨어져 있는지 계산하면 됩니다. 거리는 2차원 지형(지구 표면)에 대해 계산됩니다. 문제를 단순화하기 위해 표면이 평평한 것처럼 가정할 수 있습니다. 마치 평평한 지구 사회처럼요! – 그리고 각 도시의 위치는 소위 데카르트 좌표계로 표현됩니다. 이런 방식으로 x 및 y 좌표의 차이의 제곱을 더하고 그 합계의 제곱근을 취하여 거리를 계산할 수 있습니다. 예를 들어 헬싱키와 뉴욕 사이의 거리는 다음과 같습니다.
𝐷𝐻𝐸𝐿,𝑁𝑌=(𝑥𝐻𝐸𝐿-𝑥𝑁𝑌)2+(𝑦𝐻𝐸𝐿-𝑦𝑁𝑌)2디 헬, 뉴욕
=
(x
헬
-x
뉴욕
)2+(y헬
-y
뉴욕
)
2
어디서 x_HEL
헬싱키의 좌표는 다음과 같습니다. x_NY
뉴욕의 좌표입니다. 이를 유클리드 거리라고 합니다. 특히 장거리의 경우 지구 표면의 곡률로 인해 실제로 실제 거리를 제공하지 않습니다(죄송합니다, 평평한 지구인 여러분!). 그러나 이는 추상적이고 비지리적 좌표에서 사용할 것이기 때문에 우리에게는 아무런 의미가 없습니다.
아마도 다음 Python 표현식을 사용하면 이 내용을 더 쉽게 읽을 수 있을 것입니다.
D = math.sqrt((x_hel - x_ny)**2 + (y_hel - y_ny)**2)
그것들은 정확히 같은 것을 의미합니다.
유사하게, 우리는 선실 1 사이의 차이 또는 "거리"를 다음과 같이 계산할 수 있습니다.
34
34제곱미터, 호수에서 10미터, 캐빈 2개
49
49제곱미터 호수에서 50미터, 제곱미터 단위의 크기, 호수까지의 거리 등을 고려하여 입력되는 모든 특성이 좌표로 사용됩니다. 위의 두 가지 기능을 사용하면 캐빈 1과 2 사이의 거리는 다음과 같습니다.
𝐷1,2=(34-49)2+(10-50)2=152+402= 1825년 ≒ 42.72 디1,2
= (34−49) 2 +(10−50) 2
=152+402
=
1825
≈42.72
Python 코드에서는 위의 내용을 다음과 같이 작성할 수 있습니다.
x1 = [34.0, 10.0]
x2 = [49.0, 50.0]
D = math.sqrt((x1[0] - x2[0])**2 + (x1[1] - x2[1])**2)
욕실 수의 제곱 차이를 제곱근 안의 합에 포함시키면 욕실 수 등을 거리 계산에 포함시킬 수도 있습니다.
수학적으로 입력 특징 목록을 벡터라고 부릅니다. 코딩 용어로 말하면 목록 또는 1차원 배열입니다. 다음에서는 두 용어를 모두 사용하겠습니다.
이 두 벡터 사이의 정확한 유클리드 거리는 얼마입니까? a = [14, 3, 0.8], b = [2, 6, 0.8]
다음은 이전 섹션과 동일한 객실 가격 데이터를 사용하는 짧은 코드입니다. 4개 객실의 훈련 데이터를 사용하여 테스트 데이터에서 추가 객실 2개의 가격을 예측합니다.
코드를 조금 분석해 보겠습니다. 외부 for 루프는 두 개의 테스트 데이터 항목을 통과합니다. 각 테스트 데이터 항목에 대해 내부 루프의 각 훈련 데이터 항목까지의 거리를 계산합니다. 거리를 계산하기 위해 dist 함수를 정의했습니다. 그런 다음 np.argmin 함수를 사용하여 가장 짧은 거리를 가진 항목의 인덱스를 찾습니다. 이것은 가장 가까운 이웃입니다.
위 프로그램의 출력을 보면 두 테스트 데이터 항목에 대해 예측된 가격이 다음과 같은 것을 알 수 있습니다. €460,700 €460,700 및 €222,100 €222,100. 객실을 비교할 때 첫 번째 테스트 항목의 가격은 합리적으로 보입니다. 이는 비슷한 대형 객실인 마지막 훈련 데이터 세트 객실의 가격입니다. 그러나 두 번째 테스트 캐빈의 가격은 두 번째 훈련 세트 캐빈의 가격입니다. 비록 비슷한 크기이기 때문에 훈련 세트의 첫 번째 캐빈이 가장 가까운 것이 직관적으로 더 합리적일지라도 말입니다. 그러면 두 번째 객실이 가장 가까운 이웃으로 선택된 이유는 무엇입니까?
앞에서 언급했듯이 거리는 기하학의 일반적인 직선 거리인 유클리드 거리를 사용하여 계산됩니다. 이 경우, 거리를 평가하는 벡터는 5개 특징의 수치로 정의됩니다. 캐빈의 경우 크기는 다음과 같습니다. 13 13 및 130 130 평방 미터, 가장 가까운 이웃 선실까지의 거리는 다음과 같습니다. 120 120 및 1000 1000미터이므로 수치로만 비교하면 크기의 차이보다 거리의 차이가 훨씬 더 크다는 것은 분명합니다. 실제로 위의 경우 가장 가까운 이웃은 13 13평방미터의 객실은 같았을 것입니다 39 인접한 캐빈의 근접성을 기준으로만 비교를 수행했다면 39제곱미터 캐빈입니다.
참고!
어느 거리?
캐빈을 비교하기 위해 유클리드 거리를 사용할 때 약간 이상한 점은 각 차원(또는 기능)이 동일한 척도를 사용하여 비교된다는 것입니다. 즉, 크기가 2만큼 다른 동일한 두 객실 사이의 거리입니다. 100 100제곱미터는 이웃이 있는 두 개의 동일한 선실 사이의 거리와 같습니다. 900 900m 거리에 있고 다른 하나는 1000 1000미터 거리. 조금 이상하게 느껴질 수도 있어요. 100 이 경우 100미터의 차이는 다른 것과 비교하면 상대적으로 미미한 것으로 간주될 수 있습니다. 100 100제곱미터 크기 차이. 더욱이 면적을 평방피트 단위로 측정하기로 결정할 수도 있었는데, 이 경우의 차이는 다음과 같습니다. 100 100 단위는 훨씬 덜 중요하거나 실제로 평방 인치(1 평방 미터는 1550 1550평방인치).
이는 실로 실천적으로 매우 중요한 문제이다. '거리'의 정의는 최근접 이웃 방법의 정확도에 큰 차이를 만들 수 있습니다. 종종 특성은 모두 동일한 분산을 가지므로 거리 계산에서 대략 동일한 가중치 또는 중요성을 갖도록 크기가 조정됩니다.
유클리드 거리는 물론 다양한 거리 측정법 중 하나일 뿐입니다. 간단하고 쉽게 이해할 수 있는(가장 자주 사용되는 것은 아니지만) 측정법 중 하나를 맨해튼(또는 택시) 측정법이라고 합니다. 여기서 거리는 좌표의 절대 차이만 고려하여 계산됩니다. 동일한 크기의 블록이 있는 격자형 도시를 생각해 보십시오. 어떤 경로를 선택하든 항상 어느 방향에서든 목표에 더 가까이 이동하고 있다는 점은 중요하지 않습니다.
위 다이어그램에서는 훈련 데이터 항목 모음을 보여 주며, 그 중 일부는 한 클래스(보라색/별)에 속하고 일부는 다른 클래스(파란색/원)에 속합니다. 또한, 두 개의 테스트 데이터 항목(A와 B)이 있는데, 이를 최근접 이웃 방법을 사용하여 분류할 것입니다. 두 글자는 어느 부류에 속합니까?
케이스
Yle Areena 콘텐츠 추천자
우리 모두는 콘텐츠 추천 시스템에 익숙합니다. Netflix나 YouTube를 생각해 보세요. 그러나 일반적으로 사용되는 추천 알고리즘은 예를 들어 인기 프로그램(드라마 등)을 추천하고 교육 또는 과학 콘텐츠와 같은 다른 영역은 경시하는 데 유용합니다.
이는 대부분의 영리 엔터테인먼트 회사에 적합합니다. 하지만 공영 방송사로서 핀란드 공영 방송사 Yle의 사명은 공익에 봉사하는 것입니다. 이를 위해서는 더 광범위한 콘텐츠가 필요합니다. 이를 염두에 두고 Yle은 온라인 콘텐츠 플랫폼인 Yle Areena를 사용하는 시청자에게 다양하면서도 관련성이 높은 프로그램을 추천하는 시스템을 구축하기로 결정했습니다.
목적에 맞는 개인화
관련성이 있으면서도 다양한 콘텐츠 추천을 만들기 위해서는 최적화와 머신러닝을 기반으로 한 AI 방식이 핵심이었습니다. 출발점은 협업 필터링을 기반으로 하는 기존 알고리즘을 사용하여 콘텐츠 추천을 처리하는 것이었습니다. 그런 다음 알고리즘은 드라마와 같은 일반적인 카테고리에서 가장 인기 있는 콘텐츠만 추천하는 것이 아니라 더 넓은 범위의 프로그램을 제안하도록 조정되었습니다.
사용된 AI 기법:
협업 필터링 알고리즘
딥러닝
강화 학습
데이터 과학자의 통찰력
"수년에 걸쳐 진행되는 프로젝트를 진행하면 일회성 프로젝트와는 다른 종류의 어려움에 직면하게 됩니다. 우리의 경우 콘텐츠 추천자는 시청자에게는 잘 작동했지만 알고리즘이 추천한 이유를 회사 내부 사람들에게 설명해야 했습니다. 결국 우리는 내부용 대시보드를 구축하여 Yle의 편집진이 특정 유형의 콘텐츠가 추천되는 이유를 실시간으로 확인할 수 있었습니다. 기억해야 할 좋은 교훈입니다. 좋은 알고리즘과 명확한 UI를 만들려면 알고리즘이 어떻게 작동하고 왜 신뢰할 수 있는지 설명할 수 있어야 합니다.
이 프로젝트는 또한 흥미로운 윤리적 질문을 제기합니다. 우리의 목표 중 하나는 보다 다양한 콘텐츠를 추천하는 것이었습니다. 처음 시작할 때는 가장 인기 있는 플랫폼 등에서 일반적으로 사용되는 알고리즘을 사용했지만, A/B 테스트를 통해 드라마 및 예능 콘텐츠에서만 가장 잘 작동한다는 사실을 발견했습니다. 그렇기 때문에 우리는 교육 및 문화 콘텐츠를 무시하지 않는 Yle 특유의 추천 시스템을 개발하고 구현해야 했습니다. 그리고 그것은 효과가 있었습니다. 작년에 우리는 사용자에게 관련 콘텐츠를 계속 제공하면서 다양성 지수(보고 있는 다양한 유형의 콘텐츠 수를 측정하는 척도)를 높이는 데 성공했습니다."
– Jaakko Lempinen, Yle AI 책임자
LESSON COMPLETE
