티스토리 뷰
[Softmax Regression]
Softmax Regression은 A,B,C..., 여러개의 결과값으로 분류되는 데이터를 학습하기 위한 방법론입니다.
Multi-Class Classification이죠.
[그림1] 세가지의 Class를 가진 데이터가 있다.
[그림2] 세번 Linear한 직선으로 두가지로 분류하는 건 세번의 Binary Classification을 한다는 것과 같다.
직선은 다음으로 생각할 수 있습니다. 'A or Not A' 선일 때, A이면 1, Not A이면 0입니다. 'B or Not B' 선일 때, 'C or Not C'도 같은 개념으로 생각할 수 있습니다.
그렇다면 세번의 Binary Classification을 하면 세가지 분류를 할 수 있습니다.
[그림3] 학습된 세개의 Hypothesis에 따른 데이터들의 분류
[그림3]과 같이 세개의 Hypothesis를 통해서 Class를 3개로 나눌 수 있습니다. 그렇다면 Weight와 Bias도 3개씩 나오겠군요.
'A or Not A' Hypothesis에서 가장 높은 값이 나온다면 A,
'B or Not B' Hypothesis에서 가장 높은 값이 나온다면 B,
'C or Not C' Hypothesis에서 가장 높은 값이 나온다면 C,
라고 정리할 수 있겠군요.
예를 들어보겠습니다.
하나의 x_data가 있습니다.
'A or Not A' Hypothesis에서 5.0,
'B or Not B' Hypothesis에서 3.2,
'C or Not C' Hypothesis에서 1.8
이 나왔습니다. 그럼 우리는 x_data가 A Class라는 걸 알 수 있죠.
그리고 이걸 확률(p)로 표현할 수 있습니다.
(확률로 변환하는 과정은 해당값 / 전체값 의 과정을 거칩니다. 모든 확률의 합은 무조건 1.)
이렇게 확률로 구별하기 편하게 분리하는게 Softmax Regression입니다.
(참고) Softmax는 통계에서 어떤 값을 특별한 조건으로 바꾸어 가장 큰 값을 찾는걸 말합니다. 특별한 조건으로 바꾸는 것은 hypothesis의 값을 확률로 바꾸고, 가장 큰 확률을 찾는걸 말합니다.
( i = Class 개수)
이제 수많은 데이터에 대한 Cost Function이 필요하겠죠.
( N = 총 데이터 개수, S() = 예측값(y bar, Softmax와 One-Hot Encoding의 과정을 거친 값), D() = Cross Entropy, L = Label)
다른 Regression과 마찬가지로 전체 Cost값에 대한 평균을 구하면 됩니다.
'Data Science > Machine Learning' 카테고리의 다른 글
Learning Rate (0) | 2018.11.16 |
---|---|
Softmax Regression을 이용해서 동물 맞추기 (0) | 2018.11.15 |
Logistic Regression으로 당뇨병환자 예측 (0) | 2018.11.14 |
Logistic Regression (0) | 2018.11.09 |
Multi-Variable Linear Regression (0) | 2018.11.07 |
- DFS
- BFS
- Express
- Linear Regression
- 백준
- Machine Learning
- 딥러닝
- 머신러닝
- 재귀
- 크롤러
- 크롤링
- Crawler
- softmax
- 알고리즘
- query string
- Queue
- logistic regression
- Crawling
- LR
- neural network
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |