Linuxias
Developer's Delight
Linuxias
  • Category
    • AI
      • Deep Learning
      • Machine Learning
      • Data Science
      • Framework
      • MLOps
      • Paper-Review
      • Tips
    • Android
      • Kotlin
      • Component
      • Compose
      • Compose UI
      • Material
      • Testing
    • Software Architecture
      • Architecture Pattern
      • Design Pattern
      • Requirement Engineering
    • Linux
      • Compile & Link
      • Command & Tool
      • Container
      • Debugging & Testing
      • Profiling
      • Kernel Analysis
      • Server
      • Shell Script
      • System Programming
    • Language
      • Carbon
      • C,C++
      • C#
      • Java
      • Python
    • ETC
      • Data Struct | Algorithm
      • git
      • Security
    • Book
    • 경제공부
      • 세금
      • 부동산
hELLO · Designed By 정상우.
Linuxias

Developer's Delight

Logistic Regression - Multi class classification
AI/Machine Learning

Logistic Regression - Multi class classification

2018. 1. 23. 00:53
반응형

Logistic Regression

 -  Multi class classification -


아래 내용은 Andrew Ng 교수님의 강의와 자료를 기반으로 학습한 내용을 정리하여 작성하였습니다.

개인의 학습 내용이기에 잘못 해석 및 이해하고 있는 부분도 있을 수 있으니, 다양한 자료를 기반으로 참고하시는 걸 추천드립니다.



지금까지 2개의 class를 분류하는 과정을 살펴보았습니다. 그럼 이번 글에서는 2개 이상의 Multi class classification하는 방법에 대해서 알아보도록 하겠습니다. 아래 예시를 보죠, Email을 그 전에는 Spam이냐 아니냐 2가지로 분류를 했다면 이번엔 Work, Fiends, Family 등 여러가지 class로 분류합니다. 또 다른 예시로 날씨가 있겟죠, 맑음, 흐림, 비, 눈( 맑으면서 비가 올수도 있으나 여기서는 각각 독립적인 class로 보도록 하죠) 등으로 나뉠 수 있죠.



class가 2개가 아닌 3, 4개.. 그 이상의 class로 분류한다고 하더라도 앞에서 다룬 2개의 class로 나뉜 큰 맥락이 바뀌진 않습니다. 그러한 이유는 각 class를 나눌 때 해당 class를 제외한 나머지를 그 외 class로 하나로 묶음으로서 2개의 class로 분류하는 과정과 동일하기 때문입니다.

즉, one vs all, one vs rest 로 표현이 가능하지요. 


좌측의 graph는 2개의 class로 나뉘는 과정입니다. 우측의 graph는 3개 이상의 class로 표현한 graph이구요.


 Binary classification은 이 전에서 자주 봐왔듯이 Linear boundary로 표현할 수 있었죠. 그렇다면 Multi-class classification은 어떻게 Boundary를 표현할까요? 위에서 말씀드린 one vs all, one vs rest 을 잘 생각하고 아래 그림을 보시죠. 



이제 좀 이해가 되시나요? class1에 대해서 분류할 때는 class2,3 을 하나의 class, 즉 rest class로 묶어 분류합니다. class1이 아니라면 신경쓰지 않는다는 의미지요, 다시 말해서 class1이거나 아닌(class2 or 3) 확률이 되는거죠.


위 과정을 생각하면 Logistic regression 분류는 각 class i에 대해 y = i일 확률을 예측하도록 학습을 시키는 것입니다. 새로운 input x에 대해서 예측하기 위해서 각 i에 대한 h(x)가 최대가 되는 것을 선택하여 분류합니다.


중간에 학습에 필요한 Cost function과 Gradient Descent는 동일하구요. 이해 되시나요?


그럼 이상으로 Logistic regression에서 multi class classification에 대해서 글을 마무리 하겠습니다.

감사합니다.




반응형
저작자표시 (새창열림)

'AI > Machine Learning' 카테고리의 다른 글

Non-linear hypotheses  (0) 2018.01.30
Solving the problem of overfitting  (2) 2018.01.25
Logistic Regression - Cost function / Gradient descent  (0) 2018.01.22
Logistic Regression - Model representation / Decision boundary  (0) 2018.01.22
Linear Regression - Gradient Descent  (0) 2018.01.17
    'AI/Machine Learning' 카테고리의 다른 글
    • Non-linear hypotheses
    • Solving the problem of overfitting
    • Logistic Regression - Cost function / Gradient descent
    • Logistic Regression - Model representation / Decision boundary
    Linuxias
    Linuxias
    I want to be a S/W developer who benefits people.

    티스토리툴바