PART 2 · TRACK 4 · LESSON 1
로지스틱 회귀
다음 주제인 신경망은 이 과정의 다른 주제를 합친 것보다 더 많은 관심을 끄는 경향이 있습니다. 아마도 이것은 우리 뇌의 신경 처리에서 나타나는 우리 자신의 마음을 이해하려는 희망으로 설명될 수 있습니다.
LESSON FOCUS
이 소단원의 핵심 내용
다음 주제인 신경망은 이 과정의 다른 주제를 합친 것보다 더 많은 관심을 끄는 경향이 있습니다. 아마도 이것은 우리 뇌의 신경 처리에서 나타나는 우리 자신의 마음을 이해하려는 희망으로 설명될 수 있습니다.
- 로지스틱 회귀
- 선형 모델의 기본식
- 선형 회귀
I. 로지스틱 회귀
다음 주제인 신경망은 이 과정의 다른 주제를 합친 것보다 더 많은 관심을 끄는 경향이 있습니다. 아마도 이것은 우리 뇌의 신경 처리에서 나타나는 우리 자신의 마음을 이해하려는 희망으로 설명될 수 있습니다.
그러나 우리는 전통적인 회귀 모델링을 신경망, 즉 로지스틱 회귀에 연결하는 아이디어부터 시작하겠습니다. 이는 우리가 방향을 잃지 않고 소수의 고립된 주제로 끝나지 않고 기계 학습 정글을 탐험하는 데 도움이 될 것입니다. 게다가 로지스틱 회귀는 실제로 매우 유용하고 실용적인 기술입니다.
+...+c
피
그러나 선형 회귀와 로지스틱 회귀의 차이점은 위의 선형 함수가 계산된 후에 발생하는 결과에 있습니다. 선형 회귀에서는 작업이 완료되었으며 선형 함수가 출력입니다. 로지스틱 회귀에서는 선형 함수의 결과를 가져와서 여기에 시그모이드 함수라는 특수 비선형 함수를 적용합니다.
선형 회귀
로지스틱 회귀
위 차트는 선형 회귀와 로지스틱 회귀의 차이점을 요약합니다. 둘 다 그리스 문자로 표시되는 입력의 선형 함수를 계산하는 것으로 시작합니다.
∑
∑(대문자 시그마)는 덧셈을 나타내는 데 자주 사용됩니다. 로지스틱 회귀에서는 결과가 시그모이드 함수를 통해 전달됩니다.
시그모이드 함수(아래 참조)에 대한 수학 공식은 다소 어려워 보일 수 있지만 간단한 목적을 제공합니다. 즉, 모든 숫자를 사이의 값으로 변환합니다. 00과1 1. 시그모이드 함수에 대한 입력이 클수록 출력은 1.0 1.0, 입력이 작을수록 출력은 에 가까워집니다. 0.0 0.0. 예를 들어, 값 0.0 0.0은 다음으로 변환됩니다. 0.5 0.5 반면 값은 10.0 10.0은 다음으로 변환됩니다. 0.9999546 0.9999546, 이는 약간 부족한 수치입니다. 1.0 1.0. 마찬가지로 값도 -10 -10은 다음과 같이 변환됩니다. 0.0000454 0.0000454는 다음보다 조금 더 큽니다. 0.0 0.0.
출력 값은 사이의 숫자이므로 00과1 1. 확률로 해석할 수 있다. 이는 숫자 값(예: 유로 단위의 가격 또는 킬로그램 단위의 탄소 배출량)을 사용하는 대신 로지스틱 회귀를 사용하여 어떤 일이 발생할 확률을 예측하기 때문에 유용합니다. 의료 진단에 로지스틱 회귀를 사용하는 경우 모델의 출력은 예를 들어 특정 질병의 확률이 될 수 있습니다. 또는 웃는 얼굴이 행복한지 여부를 알려고 하는 경우 모델의 출력은 그 얼굴이 행복할 확률이 될 수 있습니다. 정확히 두 가지 대안(행복 여부, 질병 또는 질병 없음)이 있는 경우 두 번째 결과의 확률은 물론 1에서 첫 번째 결과의 확률을 뺀 값입니다.
그런 다음 모델을 사용하여 서로 다른 항목을 두 가지 클래스로 분류하여 모델의 출력을 읽고 이를 클래스 중 하나의 확률로 해석할 수 있습니다. 우리는 종종 클래스에 다음과 같은 라벨을 붙입니다. 00과1 1, 그리고 모델의 출력을 클래스의 확률로 둡니다. 11.
시그모이드 함수를 정의하는 수학 공식은 다음과 같습니다.
exp는 지수 함수를 뜻합니다. 예를 들어 exp(x)는 eˣ과 같으며, e는 약 2.718인 오일러 수입니다. 여기서는 계산 방법을 외우기보다 입력값이 커질수록 함수값이 빠르게 증가한다는 의미만 이해하면 충분합니다.
수업이 두 개 이상 있으면 어떻게 되나요?
로지스틱 회귀 모델이 출력이 0이나 1로 표시될 수 있는 2클래스 문제에만 적용 가능한지 궁금할 수 있습니다. 좋은 소식은 그렇지 않다는 것입니다. 소프트맥스(softmax)라고 불리는 여러 클래스 레이블에 대한 시그모이드 함수의 간단한 일반화가 있습니다. 여기서는 이에 대해 논의하지 않겠지만 신경망에서 많이 사용되므로 기억해야 할 용어가 하나 더 있습니다.
이제 우리는 말미에 시그모이드 함수가 추가된 선형 회귀 모델인 로지스틱 회귀 모델을 이해했으므로 이러한 모델이 데이터에서 어떻게 학습되는지 논의할 차례입니다.
선형 회귀와 마찬가지로 학습 프로세스에는 모델이 훈련 데이터에 최대한 적합하도록 가중치 또는 계수를 조정하는 작업이 포함됩니다. 표준 선형 회귀의 경우 최적화 기준은 오차 제곱이며 최소 제곱 방법을 사용하면 즉시 솔루션을 얻을 수 있습니다. 그러나 로지스틱 회귀 분석에서 출력은 확률이고 관찰된 응답은 이진 "예/아니요" 레이블이며 최적화 기준은 제곱 오류가 아닙니다.
로지스틱 회귀의 실제 최적화 기준을 로그 손실이라고 합니다. 관찰된 라벨의 확률을 평가하기 위해 로지스틱 회귀 모델을 사용하여 계산됩니다. 관찰된 라벨이 클래스인 경우
1
1, 확률은 시그모이드 출력에서 직접 얻습니다. 관찰된 라벨이 클래스인 경우
0
0이면 1에서 시그모이드 출력을 뺀 값에서 확률이 구해집니다. 주어진 데이터 세트에 대한 로그 손실은 이러한 확률의 음의 로그의 합입니다. 우리는 로그 손실 계산에 대해 자세히 설명하지 않으며 이를 최소화하기 위한 알고리즘에 대해서도 논의하지 않을 것입니다. 이 부분을 건너뛰고 바로 재미있는 부분, 즉 몇 가지 Python 명령만 필요로 하는 기성 도구를 사용하면 작업이 완료됩니다!
여기에 Python을 배우는 데 소요된 시간과 1년 이내에 급여 인상 가능성에 대한 (가상) 데이터 그래프가 있습니다. 여러분의 친구가 Python을 배우는 데 70시간을 투자했다면 1년 안에 급여가 인상될 가능성은 얼마나 됩니까?
선형 회귀와 마찬가지로 로지스틱 회귀도 간단하지만 널리 사용되는 기술입니다. 이는 의학(심장병, 암 또는 코로나19와 같은 다양한 건강상 좋지 않은 상태의 위험 평가), 사회 과학(투표 결정이나 범죄에 영향을 미치는 모델링 요인), 마케팅(누가 온라인 광고를 클릭할지) 및 수많은 기타 영역의 응용 프로그램에 성공적으로 사용되었습니다.
애플리케이션의 성공 여부를 결정하는 가장 중요한 요소는 어떤 기계 학습 방법을 사용하기로 선택하느냐가 아니라 이를 어떻게 사용하느냐(훈련 데이터의 양과 품질, 데이터가 전처리되고 표현되는 방식, 결과가 해석되고 적용되는 방식 등)라는 점을 인식하는 것이 중요합니다.
그러나 어느 시점에서는 방법 자체가 제한 요소가 될 수 있습니다. 그러한 한계 중 하나는 모델의 선형성입니다. 선형 및 로지스틱 회귀는 모두 Naive Bayes와 마찬가지로 소위 선형 모델입니다.
선형 방법이 부적절한 문제의 예로는 사용자의 나이를 기준으로 사용자가 기저귀나 기타 육아 제품에 대한 광고를 클릭할 가능성을 예측하는 것입니다. 어린 아기를 둔 부모는 20대에서 30대 후반 사이인 경우가 가장 많습니다. 연령에 따라 광고 클릭 확률이 일관되게 증가하거나 감소하는 로지스틱 회귀 모델은 젊은 사용자에 대한 낮은 확률, 20~40세 사용자에 대한 높은 확률, 노년층 사용자에 대한 낮은 확률을 출력할 수 없습니다.
예를 들어 연령을 "범주형" 변수로 인코딩하는 등 적절한 방식으로 데이터를 전처리하면 선형성 제한을 실제로 피할 수 있습니다. 이는 각 연령 그룹(예: 0~9세, 10~19세, 20~29세 등)에 대한 표시 변수를 포함한다는 의미입니다. 그러나 이로 인해 모델에 더 많은 매개변수가 발생하고 충분한 데이터가 없으면 과적합 위험이 높아집니다.
데이터를 인코딩하는 올바른 방법을 찾는 것은 매우 지루한 "수동" 작업이 될 수 있습니다. 다행히도 또 다른 해결책이 있습니다. 위의 기저귀 예와 같이 데이터에 일부 비선형 패턴이 있을 수 있다고 의심되는 경우 최근접 이웃 방법과 같은 비선형 방법을 적용할 수도 있습니다. 또 다른 일반적인 예는 이 장의 주제인 신경망입니다.
어떤 머신러닝 방법, 어떤 방식으로 데이터를 표현하면 최상의 결과를 얻을 수 있는지 미리 알 수 있는 명확한 방법은 없습니다. 실제로 머신러닝은 많은 실험을 수반하는 실용적인 기술이며 가장 좋은 방법은 시행착오를 통해서만 찾을 수 있는 경우가 많습니다.
케이스
K-Ruoka 웹 스토어
AI 기법으로 누군가에게 하루에 30~60분의 추가 시간을 줄 수 있습니까? 식료품과 함께 K-Ruoka 웹 스토어가 제공하려는 목표입니다. 실제로 식료품점에 갈 필요 없이 사용자의 휴대폰, 태블릿 또는 컴퓨터에서 20,000개의 품목을 당일 배송으로 구매할 수 있습니다.
하지만 특히 휴대폰에서 그렇게 많은 항목을 편리하게 검색하려면 어떻게 해야 할까요? 이 서비스는 머신러닝 기법을 활용해 개인 사용자는 물론 유사한 상품을 구매한 다른 고객의 구매 행동을 기반으로 상품을 추천하는 서비스다. 자주 구매하는 상품이 검색결과 상단에 노출됩니다. 식사 계획과 목록 작성을 덜 지루하게 만들기 위해 사용자는 레시피 제안을 받고 AI가 생성한 쇼핑 목록을 사용할 수도 있습니다.
문제
사람들은 바쁘고, 식사 계획과 목록 작성은 물론 식료품 쇼핑에도 많은 시간이 걸립니다. 하지만 휴대폰으로 수만 개의 항목을 탐색하는 것도 쉽지 않습니다.
해결책
이 서비스는 온라인뿐만 아니라 오프라인 매장에서도 사용자(및 유사 사용자)의 구매 내역을 학습하여 제품을 추천합니다. 이 서비스는 쇼핑 목록을 자동으로 생성할 수 있으며 요리법 제안이나 검색 결과에서 특정 유형의 음식을 선호하는 기능(예: 지역 농산물 또는 건강에 좋은 옵션)을 포함합니다.
어떤 AI 기법이 사용되는지
머신러닝은 주로 다음과 같습니다.
- 회귀 모델
- 음이 아닌 행렬 분해
Python은 scikit-learn 패키지를 사용하는 주요 프로그래밍 언어입니다.
데이터 과학자의 통찰력
Olli-Pekka Huovilainen, Reaktor의 수석 데이터 과학자
"이것은 Reaktor와 Kesko 간의 공동 구현 프로젝트였으며 우리는 분석 및 고객 데이터 팀은 물론 AI 기법에 대한 배경 지식이 없는 사람들과 함께 작업했습니다. 우리가 직면한 주요 과제 중 하나는 비데이터 과학자에게 AI 기법으로 가능한 작업을 설명하는 것이었습니다. 그러나 고객 조직에서 해결해야 할 문제가 무엇인지 알고 최상의 제안을 제시하는 것은 비데이터 과학자이기 때문에 이는 중요한 기술입니다. K-Ruoka에서 Kesko와 함께 작업한 것처럼 웹스토어에서 우리는 새로운 기능으로 이어지는 정말 좋은 아이디어를 얻었습니다.
AI 기법을 만들 때 또 다른 주요 과제는 비즈니스 요구(해결해야 할 문제)를 기계가 이해할 수 있는 것으로 바꾸는 프로세스입니다. 문제를 정의하고 회귀와 같은 AI 기법으로 문제를 해결하는 방법을 찾는 것이 항상 쉬운 것은 아닙니다. 이것이 우리가 빠른 개발과 다중 반복을 선호하는 주된 이유 중 하나입니다. 먼저 문제를 정의하고 해결하는 방법을 브레인스토밍한 다음 (조정을 통해) 사용할 수 있는 기존 알고리즘을 찾습니다. 이를 통해 시간과 노력이 절약되고 모든 프로젝트에서 처음부터 다시 시작하지 않아도 됩니다.
문제를 정의하고 이를 해결하기 위한 접근 방식을 생각해낸 후에는 일반적으로 한 사람이 작업에 착수하여 첫 번째 버전을 만듭니다. 그런 다음 테스트하고 서비스와 통합할 차례입니다. 궁극적인 테스트는 서비스가 활성화될 때입니다. 예를 들어, 어떤 접근 방식이 서류상으로는 좋아 보이고, 내부 테스트에서는 작동하는 것처럼 보이지만 실제 세계에서는 의도한 대로 작동하지 않을 수 있습니다. 이는 학습 및 최적화 프로세스의 일부입니다. 이는 다른 접근 방식을 시도하고, 테스트하고, 출시하고, 필요한 경우 다시 조정해야 할 때라는 것을 의미합니다.”
이 사건에 대해 자세히 알아보기
LESSON COMPLETE
