티스토리 뷰
2. Neural Networks / L1. Introduction to Neural Networks - Linear Boundaries
chrisysl 2018. 6. 25. 19:31Introduction
- 스팸메일 분류, 주가 예측, 이미지나 사진인식, 질병 진단, 자율주행 등 딥러닝의 사용처는 무한함
- 딥러닝의 심장은 Neural Networks 이다.
- Neural Network는 뇌의 작용원리를 흉내내는 프로세스이고 이를 알고리즘으로 구현해내야한다.
Classification Problems
- 대학교의 입학처 직원이라 가정하고, 대학에 지원한 학생의 입학을 허가할 것인지, 불허할것인지를 판단할 경우를 가정하자.
- 학생들을 평가하기위한 지표로 시험성적과, 학점이 있다.
- 시험성적 : 9/10, 학점 8/10인 학생은 우수하니 통과
- 시험성적 : 3/10, 학점 4/10인 학생은 탈락
- 그렇다면 시험성적 : 7/10, 학점 6/10인 학생은?
- 이런것을 판단하기위해 시험성적을 x축으로, 학점을 y축으로 하는 그래프상에 학생들을 분포시켜본다.
# 합격인 학생과 탈락인 학생이 표시되어 있음.
- 이제 우리는 앞으로 하게 될 대부분의 알고리즘에서와 마찬가지로, 이전 데이터를 확인해야한다.
# 이전 데이터(previous data)를 그래프상 반영한 모습
- 파랑 : 입학 / 빨강 : 탈락 을 의미하는 지표인데,
- 그렇다면 시험성적 : 7/10, 학점 : 6/10인 학생은 입학을 할까? 탈락할까?
- 그래프상에 점을 찍어보면 알 수 있다.
# 합격과 불합격(탈락)을 기준으로 가운데 선을 긋고, 이를 판단의 기준점으로 잡은 그림
- 이 선을 기준으로 합격과 불합격을 나누는것은 몇몇 실수를 범할 수 있다.
- 그 이유로는 선 아래에 위치한 학생중 일부는 합격을 하기도, 선 위에 위치한 몇몇 학생은 불합격 하기도 했기때문
- 이러한 예외케이스는 고려하지 않고, 기준선을 기준으로 아래는 불합, 위로는 합격을 의미하는 모델을 만들기로 하자.
- 자 그럼 이제 기준이되는 저 선을 어떻게 만들것인가????
- 이제 앞으로 배워야할 내용들의 대부분이 이러한 선을 긋기위한 알고리즘이다.
Linear Boundaries
- 시험성적을 x1축(수평축)으로, 학점을 x2축(수직축)으로 잡고 선을 그어보면 일차방정식을 이룬다.
- 해당 선이 위와같은 방정식을 따른다고 가정할 때,
- 해당 일차방정식 상에 있는 점은 0이되고, 그 값을 기준으로 합격 불합격이 정해짐
- 따라서 Score = 2*Test + Grades -18이라는 변수를 두고
- Score값이 양수라면 합격, 음수라면 불합격처리를 할 수 있다.
- 이를 우리는 Prediction이라 부른다.
- 우리는 관례상 Score값이 0인경우도 합격처리를 하지만 나중에가면 이런부분은 큰 문제가 되지 않음.
- w1x1 + w2x2 + b = 0 이라는 방정식을 축약형으로 Wx + B = 0과 같이 표시하고
- W는 벡터 w1과 w2를 지칭하고, x는 벡터 x1과 x2를 지칭한다.
- 이렇게 되면 우리는 간단하게 두 벡터들의 곱(product)를 취하면 된다.
- 우리는 x를 input으로, w를 weights로, b를 bias로 둔다.
- 좌표 x1과 x2에 y라는 0 또는 1을 나타내는 label을 지정하고, 그 label값은 우리가 predict하고자 하는 값을 의미한다.
- 그러므로 합격한 학생(파란점)의 label은 y=1을, 불합격한 학생의 label은 y=0을 갖는다.
- 마지막으로 알고리즘을 거쳐 얻어 낼 Prediction 값은 y^(yHat)으로 표기하고 위의 두가지 경우가 될 수 있다.
- 요약하자면, 기준선 위의 값(점)들은 yHat = 1의 값을 갖고, 그 아래값은 yHat = 0의 값을 갖는다.
- 그리고 파란점은 y=1의 값을, 빨간점은 y=0의 값을 갖는다.
- 우리가 구현할 알고리즘의 최종 목표는 yHat의 값이 y의값에 가능한 한 근접하게 만드는것이다.
- 그리고 이렇게 만든다는것은 기준선을 기준으로 윗부분에 가능한 한 많은수의 파란점이, 아래부분에 빨간점이 찍히는것과 동일하다.