5 분 소요

image



Optimization Algorithms

Multi-class Classification

Softmax Regression

현재까지 분류 예제를 다뤘던 내용에서는 0 또는 1의 두 가지 가능한 레이블이 있는 이진 분류를 사용했습니다. 고양이인지 아닌지 말이죠.하지만 클래스가 여러개라고 하면 어떻게 할까요? Softmax 회귀라는 로지스틱 회귀의 일반화가 있습니다.

단지 두 개의 클래스를 인식하는 것보다 A, B, C 중 하나 또는 여러 클래스 중 하나를 인식하려고 할 때 예측을 덜 하게 됩니다. 한번 자세히 살펴볼까요.


image

고양이만 인식하는 것이 아니라 고양이, 강아지, 그리고 병아리를 인식 하고 싶다고 해보겠습니다. 그래서 고양이 1클래스, 강아지 2클래스, 병아리 3클래스이라고 부르겠습니다. 그리고 위의 클래스가 하나도 없다면 위의 클래스 중 다른 클래스가 있거나 없는 클래스가 있으며 이를 클래스 0이라고 부를 것입니다.

여기는 이미지의 예시가 있고 그들이 속하는 클래스도 있습니다. 왼쪽부터 보면 병아리 사진이고 3클래스입니다. 고양이는 1클래스, 개는 2클래스, 저건 코알라인 것 같아서 위의 어느 것도 아닌 것 같아서 0클래스, 3클래스 등 이렇게 이어나갑니다.

그러면 사용할 표기법은 입력을 범주화하려는 클래스의 수를 나타내는 데 대문자 C를 사용할 것입니다. 그리고 이 경우 위의 클래스 중 다른 하나 또는 없음을 포함하여 4개의 가능한 클래스이 있습니다. 이렇게 4개의 클래스이 있는 경우 클래스을 인덱싱하는 숫자는 대문자 C에서 1을 뺀 0입니다.

이 경우에, 우리는 새로운 XY를 만들 것입니다. 상위 레이어에는 4개가 있고 이 경우에는 분수 대문자 C 위쪽 단위가 있습니다. 그래서 N은 결과값 층의 단위 수인데요. 이것은 레이어 L이 4와 같거나 일반적으로 C와 같을 것입니다. 그리고 우리가 원하는 것은 상위 계층의 단위 수가 이 네 가지 클래스 각각의 확률을 알려주는 것입니다.

따라서 여기에서 첫 번째 노드는 출력해야 하거나 또는 우리는 입력 x가 주어지면 다른 클래스인 확률을 출력하기를 원하고 이것은 고양이가 있을 확률을 출력할 것입니다. x값에 대해서 말이죠.그리고 이것은 강아지일 확률을 결과값으로 나타내구요. x를 주어 확률을 출력합니다. 병아리는 여기서 bc로 줄여서 쓰겠습니다.

입력 x가 주어졌을 때 말이죠. 여기서는 결과값 레이블 ŷ는 $4 \times 1$ 차원의 벡터입니다. 그 이유는 4개의 결과값을 표츌 해야하기 때문입니다. 여기 4개의 확률을 주면서 말이죠. 그리고 확률은 합해서 1이여야 하기 때문에, 여기 ŷ에 있는 숫자들도 합하면 1이 되어야 합니다.


image

네트워크가 이렇게 할 수 있도록 쓰는 일반적인 모델은 Softmax 층이라고 하는 것이며 결과값 층에서 이러한 결과값을 생성하기 위해서 말이죠. 마지막 층의 신경망에서는 여기 층의 선형 부분을 산출할 것입니다. 그래서 $z$, 대문자 $L$은, 마지막 층의 $z$ 분산입니다. 기억하시겠지만, 이 층은 대문자 L입니다. 따라서 평소와 같이 w[L] 곱하기 이전 레이어의 활성화에 해당 최종 레이어에 대한 바이어스를 더한 값으로 계산합니다.

이제 $z$값을 구했으니 이제 Softmax 활성화 함수라고 하는 것을 적용해야 합니다. 이 활성화 함수는 조금 Softmax 층 에서는 조금 일반적이진 않아요. 하지만 이렇게 됩니다.

첫번째로 임시적인 분산을 산출할 것입니다. 이 값을 t라고 부르 겠으며 이 값은 $e^{z[l]}$인데요. 따라서 이것은 요소별 부분입니다. 여기 $z^{[L]}$은 예제에서 $z^{[L]}이 $4 \times 1$ 이 될 것입니다. 이것은 4차원 벡터입니다 $t$는 $e^{z^{[l]}}$승인데요. 이것은 요소별 지수입니다 $t$는 또한 $4 \times 1$ 차원 벡터입니다. 그리고 결과값 $a^{[L]}$은 기본적으로 벡터 $t$이고 정규화 되어 합이 1이 될 것입니다.

그러면 $a^{[L]}$은 e 의 z[L]승 나누기 J가 1에서 4까지인 합이며 그 이유는 4개의 클래스이 있는데 이 클래스은 각각 t 첨자 i로 나타냅니다. 다시 말해, a[L]은 또한 $4 \times 1$ 벡터이고 그리고 여기 i 번째 4차원 벡터는입니다. 여기 적은대로 a[L] 아래첨자 i로 나타냅니다.

이것을 더 명확하게 할 구체적인 예를 살펴보겠습니다. z[L]을 산출한다고 해보겠습니다. 그리고 z[L]은 4차원 벡터이며 5, 2, -1, -3이라고 해보겠습니다. 우리가 할 일은 이 요소별 지수를 사용하여 이 벡터 t를 계산하는 것입니다. 그러면 t는 e의 5승일 것이고, e의 2승, e의 -1승, e의 3승 이런식으로 될 것입니다.

그리고 이것을 계산기로 구하면 이러한 값을 얻게 됩니다 e의 5승은 1484, e제곱은 약 7.4, e의 -1승은 0.4, 그리고 e 세제곱은 20.1 입니다. 그러므로 벡터t에서 벡터 a[L]로 가는 것은 여기 입력값을 정규화하여 합이 1이 되게 하는 것입니다.

그러면 t의 요소들을 합하면 여기 4개의 수의를 모두 더하면 176.3이 됩니다. 마지막으로 a[L]은 여기 벡터 t 나누기 176.3입니다. 예를 들어, 여기 첫번째 노드는 이것은 e의 5승 나누기 176.3을 줄 것입니다. 그 값은 0.842입니다. 그래서 이 이미지에서 만약 이것이 z의 값이면 0이라 불릴 확률은 84.2퍼센트 입니다. 그리고 다음 노드는 e 제곱 나누기 176.3을 출력하는데요.이것은 그럼 0.042이고 4.2퍼센트의 확률입니다. 다음 것은 e의 -1승인데요. 그 값은 0.042입니다. 그리고 마지막 한개는 e의 세제곱 나누기 그것이고 그 값은 0.114입니다. 그래서 이것은 11.4 퍼센트로 3클래스일 확률을 갖으며. 이것은 베이비 c클래스이죠.

그래서 0클래스, 1클래스, 2클래스, 3클래스일 가능성이 있습니다. 그러면 신경망의 결과값은 a[L] 이것은 또한 ŷ입니다. 이것은 $4 \times 1$ 벡터이며 그리고 여기 $4 \times 1$ 벡터의 요소는 여기 4개의 숫자입니다. 그럼 이제 그냥 산출합니다.

여기 알고리즘은 z[L] 벡터 값을 갖고 합이 1이 되는 4개의 확률입니다. 그리고 저희가 z[L] 에서 a[L]로 매핑한 것을 요약하자면 여기 전체 산출에서 지수를 산출해서 일시적 변수 t를 가졌는데요. 그 다음에 정규화를 통해 이것을 Softmax 활성화 함수로 요약할 수 있고 그리고 그리고 a[L] = gl로 표현할 수 있겠습니다.

이 활성화 함수의 조금 특이한 부분은 바로 여기 g 활성화 함수가 $4 \times 1$ 벡터를 입력값으로 갖고 $4 \times 1$ 벡터를 결과 값으로 출력한다는 것입니다. 따라서 이전에는 활성화 함수가 단일 행 값 입력을 받는 데 사용되었습니다.

예를 들어 시그모이드와 값 활성화 함수는 실수를 입력하고 실수를 출력합니다 Softmax 활성화 함수의 특이한 부분은 다른 결과값들에 거쳐 정규화가 되야한다는 점인데요. 그렇기 때문에 벡터의 값을 갖고 결과값도 벡터로 가져야 한다는 것입니다.


image

그래서 Softmax 크로스 층이 나타낼 수 있는 것 중 하나는 x1, x2 입력이 있는 몇 가지 예를 보여드리겠습니다. 이것은 바로 3개 또는 4개 또는 더 많은 노드를 가지고 있는 Softmax 층으로 삽입되며 그리고 ŷ값을 결과값으로 가질텐데요.

이제 은닉 층이 없는 신경망을 보여드리겠는데요. 이것이 하는 것은 z[1] = w[1] 더하기 입력값 x 더하기 b입니다. 그리고 결과값 a는 a[1] 또는 ŷ 은 z1에 적용된 Softmax 활성화 함수입니다. 이렇게 은닉 층이 없는 신경망에서는 Softmax 함수가 대표할 수 있는 것들에 대한 내용을 알려줄텐데요. 이것은 raw 입력값 x1과 x2를 가진 예제인데요. C=3 인 상위 클래스을 가진 Softmax 층이 이러한 결정 경계를 나타낼 수 있습니다.

이러한 몇개의 선형 결정 경계를 보실텐데요. 이런 것들은 데이터를 세가지 클래스으로 나눌 수 있게 해줍니다. 이 그림에서 우리가 한것은 훈련 세트를 가지고 여기 그림에서 보이듯이 그런 것이고 데이터의 상위 레이블로 Softmax classifier 훈련합니다. 그리고 이 플롯의 색상은 Softmax classifier의 위쪽을 신선하게 유지하고 3개의 출력 중 하나가 가장 높은 확률을 갖는 입력 기반의 색상을 보여줍니다.

이것은 보시다시피 선형 결정 경계가 있는 로지스틱 회귀분석과 비슷한데요. 하지만 2개 이상의 클래스이 있는 것과 같이 0클래스, 1, 그 클래스이 0, 1, 또는 2 다음은 3개의 클래스가 있는 3개의 일반 데이터 세트가 있을 때 Softmax classifier가 나타내는 결정 경계의 또 다른 예입니다.

여기 또 다른 것이 있구요. 하지만 또 다른 직관적인 부분은 여기 2개의 클래스간의 결정 경계가 선형일 것입니다. 그래서 예를 들어 노란색과 다양한 클래스 사이의 결정 경계 보라색과 노란색과 다른 선형 결정 경계 사이의 경계에서 보라색과 빨간색이 선형인 선형 경계를 볼 수 있습니다.

하지만 이런 선형 함수를 이용해서 공간을 3개의 다른 클래스으로 나눌 수 있습니다. 그럼 더 많은 클래스이 있는 예시를 보겠습니다. 이것은 c=4인 예시입니다. 그래서 이것은 녹색 클래스이고 Softmax가 지속적으로 이런 종류의 결정 경계를 복수의 클래스이 있는 경우 나타내줄 수 있습니다.

여기 c=5인 예제도 있습니다. 그리고 여기에 c=6인 마지막 예제도 있습니다. 이것이 Softmax classifier가 할 수 잇는 것을 보여주는데요. 거기에 은닉 층이 없는 경우 말이죠. x가 있는 훨씬 더 깊은 신경망과 일부 은닉 유닛, 그리고 더 많은 은닉 유닛 등이 있습니다. 그러면 훨씬 더 복잡한 비선형 결정 경계를 학습하여 다른 클래스를 구분할 수 있습니다.

댓글남기기