티스토리 뷰
2. Neural Networks / L1. Introduction to Neural Networks - Error Functions
chrisysl 2018. 6. 26. 19:33Non-Linear Regions
- 만약 한 학생이 있는데, 기존에 설정해 둔 경계선에 의하면 Test : 9/10, Grades : 1/10으로 입학이 가능한데
- Grade가 너무 낮아 입학을 시키고싶지 않다면????
- 그럼 기존의 일차방정식형 경계선이 역할을 하지 못한다.
- 이번엔 비선형 지역에 대한 Positive-area, Negative-area를 판단해보도록 하자.
Error Functions
- 이러한 비선형 영역의 판단을 위해 우리는 error function의 도움을 받아 처리할 것인데,
- error function은 우리가 solution까지 얼마만큼 멀리 떨어져있는지를 말해준다.
- 예를들어, 1미터 전방에 차량이 있고, 나는 거기까지 도달해야한다고 한다면
- 1미터라는 거리가 error에 해당하며 error function은 나와 차량까지의 거리를 반복적으로 error로 알려준다.
- 따라서 나는 내 주변 여러 방향으로 움직이며 타겟과의 거리가 멀어지는지 좁아지는지를 바탕으로,
- 해당 타겟(차량)까지 도달하는것이 solution이다.
Log-loss Error Functions
- 만약 산 꼭대기에서 내려와야하는 상황을 Error Function에 빗대어 얘기해보자.
- 산 꼭대기에서 바닥까지의 거리는 높이(Height)에 해당되고 이것이 error이다.
- 에러는 해당 순간에 얼마나 잘못된 방향으로 진행되고있는지,
- 이상적인 solution까지 얼만큼 떨어져있는지를 알려준다.
- 그 이후 지속적으로 에러를 줄여간다면 우리는 해당 문제를 풀 수 있고 즉, 산으로부터 내려올 수 있다.
- 그러면 컴퓨터에게 해당 경계를 기준으로 나눈 영역이 얼만큼 잘못되었는지 어떻게 알려줄래?
- 현재 상황에서 잘못 표기된 점은 2개이다. 이것을 실수(mistake)라 지칭하기로 한다면,
- 현재 실수는 2개이므로 이게 에러가 된다. 앞서 산에서 내려올때 전 방향으로 내려가며 에러를 줄였던 것 처럼
- 전 방향으로 경계선을 움직이며 에러를 감소시켜 나간다.
- 근데 이러한 방법에는 문제점이 존재하는데,
- 해당 알고리즘에서 매우 조금씩(small steps) 이동하게되고 그 이유는 미분으로 계산되기 때문이다.
- 해당 방향에서 매우 조금씩 기울기가 양으로 증가한다면, 그래도 우리의 에러는 여전히 2개이고
- 그랬기때문에 다시 음으로 매우 조금 감소하더라도 여전히 에러는 2개이다.
- 위의 두 산을 예시로 이걸 설명해보면, 좌측의 산은 평지 이후에 계단식으로 하강하기때문에
- 매우조금씩 전진하게되어도 여전히 같은 에러값을 갖는다.
- 그러나 우측의 뾰족산의 예시에서는 아주 조금만 이동하여도 그 에러값이 변하기때문에 수월하게 에러를 줄여나갈 수 있다.
- 이것을 수학적 용어로 설명해보면, 우리가 gradient descent를 진행하려면(이러한 산에 빗대어 하강하는 알고리즘을 gradient descent라 함)
- 우리의 error function은 이산적(discrete)이어서는 안되고, 연속적(continuous)이어야 한다.
- 즉, 연속적 분포에서는 에러가 매우 작은값으로 변동하는반면, 이산적 분포에서는 에러가 2, 1, 0과 같이 일정 단위를 두고 변동한다.
- 따라서 위의 예시로 다시 돌아가면, 우리는 우리의 error function을 연속적(continuous)하게 변경시켜야 할 필요가 있다.
- 그 방법으로는, 우리는 4개의 올바르게 지정된 점(빨2, 파2)이 있고, 2개의 잘못 지정된 점(빨1, 파1)이 존재한다.
- 에러 함수는 잘못 지정된 점에 대해 큰 값의 페널티를 주고, 옳게 지정된 점에 대해선 매우 작은 값의 페널티를 준다.
- 페널티를 적용하여 점을 표시해본 결과임.
- 페널티는 점이 잘못 분류되었을 때, 경계로부터의 거리이며
- 점이 정확하게 분류되었을 땐 거의 0에 가깝다.
- 따라서 각기 다른 페널티가 적용된 에러값에 의해 총에러값(total error)을 얻을 수 있고,
- 만약 경계가 이동하여 모두 올바르게 분류가 되었다면 그 때의 총에러값은 가장 작을것이다.
- 이런 방법으로 에러를 최소화하여 경계를 올바르게 설정 할 수 있다.
- 그럼 이제 이 error function을 어떻게 정의할것인지??? 이게 또 문제다.