딥러닝의 기본 개념

2020. 8. 12. 01:34딥러닝

지도 학습(Supervised Learning)은 특징(features)이 이미 정해진 데이터를 사용하여 학습하는 방법입니다. 이 때 각 데이터에 정해진 특징은 레이블(label)이라고도 표현할 수 있으며, 레이블이 있는 데이터들의 집합은 트레이닝 세트(Training Set)이라고 부릅니다.

다음은 특정 사물에 해당하는 사진을 짝지어둔 데이터입니다. 사진이라는 데이터에 해당하는 특징(사물)을 짝지어 둔 데이터들의 집합이므로 이는 트레이닝 세트의 한 예로 들 수 있습니다.

 

 

오른쪽의 표에서 X는 자료의 특징을 표현할 때 사용하고, Y는 레이블을 의미합니다.

 

이렇게 주어진 트레이닝 세트를 학습하게 되면 이 데이터들을 기반으로 한 모델이 생성되고, 이 모델을 사용하면 어떠한 특징을 갖는 데이터가 어떤 레이블에 속할지 추측할 수 있게 됩니다.

리그레션은 연속된 실수의 값을 갖는 레이블을 갖는 모델이라고 생각

분류는 정수의 값을 갖게되는 레이블을 가지는 모델이라고 생각

- 회귀분석은 어떠한 변수에 영향을 받는 결과가 연속적인 경우에 사용합니다.

- 트레이닝 셋으로부터 x와 y의 관계를 유추하고 예상되는 입력데이터에 대한 출력을 예측하는 것입니다.

- x와 y의 관계를 유추하기 위해서 수학적으로 식을 세워보게 되는데 머신 러닝에서는 이러한 식을 가설(Hypothesis)이라고 합니다.

 

위의 그림은 W와 b의 값에 따라서 천차만별로 그려지는 직선의 모습을 보여줍니다.

바로 w b를 찾는것이 선형회귀에서 해야하는 일입니다.

 

이때 내가 찾은 예측값과 실제값의 오차를 최소화 하는 것이 비용함수입니다.

 

 

회귀 문제의 경우에는 주로 평균 제곱 오차(Mean Squared Error, MSE)가 사용됩니다.

 

 

'오차 = 실제값 - 예측값' 으로 하지 않은 이유 ->음수의 오차, 양수의 오차 문제 발생!!!

절대적은 크기를 구할 수 없다.. 따라서 오차를 제곱하고 더하는 방법을 채택하게 된다.

앞에서 내가 세운 가설과 실제값의 차이의 절대값의 최소화를 찾는 코스트함수에대해 배웠는데

 

규칙을 가장 잘 표현하는 wb를 찾아야만 한다.

선형 회귀를 포함한 수많은 머신 러닝, 딥 러닝의 학습은 결국 비용 함수를 최소화하는 매개 변수인 W와 b을 찾기 위한 작업을 수행합니다. 이때 사용되는 알고리즘을 옵티마이저(Optimizer)라고 한다.

 

그리고 옵티마이저를 통해서 wb을 찾아내는 과정이 학습이자 training이다.

 

선형회귀에서는 옵티마이저로 경사하강법을 사용한다.

 

경사 하강법의 아이디어는 비용 함수(Cost function)를 미분하여 현재 W에서의 접선의 기울기를 구하고, 접선의 기울기가 낮은 방향으로 W의 값을 변경하고 다시 미분하고 이 과정을 접선의 기울기가 0인 곳을 향해 W의 값을 변경하는 작업을 반복하는 것에 있습니다

 

여기서 알파는 학습속도를 의미한다. w를 변경할때 얼마나 크게 변경할지를 결정합니다.

만약 w가 너무 크거나 작을떄 문제 발생

.값을 알려주는 선형회귀와는 달리 clasiification은 분류(0, 1)을 보여준다.

 

예를들어서, 스팸 매일 , 유튜브의 알고리즘 같은 예가 있다.

 

선형회귀분석(독립변수의 갯수가 1개)은 앞에서 언급한 것처럼 목표가 실수값 예측이기 때문에 선형함수을 사용햇지만 이진 분류는 목표가 0 또는 1이기 때문에 이것을 더 잘 표현하는 함수인 시그모이드 함수를 사용한다.

코스트함수의 모형이 밥그릇 모형이 아니므로 평균제곱 오차 방법 사용시에

최솟값의 코스트에 따른 w를 찾을수 없다.

 

따라서 새로운 비용함수를 찾자~~

새로운 가설인 시그모이드 함수는 0 또는 1의 값을 나타낸다.

y1인 경우에 h(x)가 제일 큰경우인 1을 보면 둘은 같으므로 코스트가 작은것을 볼수 있다.

 

마찬가지로 웨이트에 따른 코스트가 밥그릇 모양이므로 학습은 경사하강법을 사용한다.

 

이진 분류가 두 개의 선택지 중 하나를 고르는 문제였다면, 세 개 이상의 선택지 중 하나를 고르는 문제를 다중 클래스 분류라고 합니다.

다중 분류에서 시그모이드 함수를 사용하게 되면 첫번째가 될 확률은 0.7

두번째는 0.4 세번째는 0.2 처럼 출력을 얻게 된다

 

여기서 총 확률의 합이 1이 되게 하는 함수를 사용하고 싶어서 나온 것이 소프트 맥수 함수이다.

하나의 샘플 데이터네는 4개의 엘리먼트가 있습니다.

하지만 우리가 원하는 소프트맥스의 클래스는 3개입니다. 따라서 가중치 연산을 통해 4차원을 3차원으로 바꿔줘야 합니다.

 

소프트맥스 함수의 출력은 분류하고자하는 클래스의 개수만큼 차원을 가지는 벡터로 각각은  0과 1사이의 값을 가집니다.

이때 예측값과 비교를 할 수 있는 실제값의 표현 방법이 있어야 합니다. 소프트맥스 회귀에서는 실제값을 원-핫 벡터로 표현합니다.

 

학습을 통해서 모델을 만들었을때 학습데이터에만(집중적으로) 효율적인 모델을 만들어서 실제로 우리가 테스트를 해야할 문제에서는 정확도가 떨어지는 경우를 말한다.

 

모델2는 주어진 학습데이터에만 맞춰서 학습을 하여서 이상적인 모델과 뒤떨어진 것을 말한다.

 

모델1이 이상적이고 일반적인 모델의 모습을 보여주고 있다.

 

그렇다면 해결책은 무엇일까????

 

Solution of Overfitting

1. 훈련 데이터를 많이 수집하는 것이다.

 

2. 피처의 갯수를 줄인는 것이다.

 

3. Regularizatinon

 

Regularization

너무 큰 웨이트를 가지지 말자.

'딥러닝' 카테고리의 다른 글

웨이트초기화를 잘하자.  (0) 2020.08.15
딥 뉴럴 넷의 첫번쨰 문제(학습이 안된다.)_Relu의 탄생  (0) 2020.08.15
퍼모먼스의 측정  (0) 2020.08.11
Logistic Classificaiton  (0) 2020.08.11
Classification  (0) 2020.08.10