CS/ML DL

딥 러닝: 딥러닝이란

연수구 주정뱅이 2021. 7. 13. 09:53

딥러닝은 머신 러닝으로 기계를 학습하는 방법 중 하나이다.

 

 

 

출처: https://neocarus.tistory.com/entry/%EB%94%A5%EB%9F%AC%EB%8B%9D%EC%9D%98-%ED%95%84%EC%9A%94%EC%84%B1

 

 

 

Linear Regression과 Logistic Regression 모두 1차 함수를 이용하여 문제를 풀었지만, 현실에서는 직선으로 설명할 수 없는 문제들이 많다. XOR 문제와 같이. 그러나 이 말을 바꿔 말하자면 비선형으로 풀 수 있는 문제들이 있다는 소리이다.

 

 

 

딥러닝 초기에는 비선형 모델을 만들기 위해 선형 회귀를 여러번 반복하였다.

 

 

 

 

하지만 선형 회귀를 여러번 반복한다 해도 비선형이 되는 것이 아니어서, 선형 회귀 사이의 비선형을 추가하게 되었다.

 

 

 

 

이런 방식으로 층(Layer)를 여러 겹으로 쌓게 되었고, 층을 깊게(Deep) 쌓는다고 하여 딥러닝이라고 불리게 되었다.

 

딥러닝은 주로 Deep nueral networks, Multilayer Perceptron(MLP), ANN 등으로 불린다.

 

 

 

딥러닝의 주요 개념 및 기법에는

  • 배치 사이즈(batch size)와 에폭(epoch)
  • 활성화 함수(activation function): sigmoid, softmax 등
  • 과적합(overfitting)과 과소적합(underfitting)
  • 데이터 증강(Data augmentation)
  • 드랍아웃(Dropout)
  • 앙상블(ensemble)
  • 학습률 조정

이 있다.

 

 

 

 

딥러닝이 등장하게된 계기는 XOR 문제인데, 그 전에 머신러닝에서의 OR와 AND 문제를 보자.

 

출처: https://donghwa96.tistory.com/11

 

위와 같은 문제는 직선 하나로 쉽게 해결할 수 있고, 그 직선은 논리회귀로 쉽게 만들 수 있었다.

 

 

 

이 수식은 아래와 같이 퍼셉트론(Perceptron)의 형태로 나타낼 수 있다.

 

 

 

하지만 선형 회귀로는 XOR 문제를 풀 수 없었다. 직선 하나로만으로는 구분할 수 없었던 것이다.

 

출처: https://extsdd.tistory.com/217

 

 

 

이를 해결하기 위해서 Perceptron을 여러 층으로 만든 Multilayer Perceptrons(MLP)라는 개념을 도입해서 문제를 해결하려고 하였다.

 

출처: https://towardsdatascience.com/convolutional-neural-networks-an-introduction-tensorflow-eager-api-7e99614a2879

 

MLP에서의 Input은 데이터들의 특성(feature)를 말한다. Output은 클래스(class)를 말한다.

 

Hidden layer는 말 그대로 안 보이는 층을 의미한다.

 

 

 

이 XOR 문제를 해결하지 못하여 딥러닝은 잠시 정체되어 있었지만, 다음에 설명할 Backpropagation(역전파)를 통하여 발전하게 된다.

 

 

출처: https://developer.nvidia.com/blog/inference-next-step-gpu-accelerated-deep-learning/

 

 

학습을 시키고(forward), 결과값과 예측값이 다를 경우 다시 되돌아가(backward) 피드백을 주는 방식으로 오차(Error)를 줄이는 방식으로 W(weight)와 b(bias)를 조절한다.

 

 

출처: https://www.youtube.com/watch?v=kNPGXgzxoHw

 

출처: 모두를 위한 딥러닝

 

 

 

출처: 스파르타코딩클럽 가장 쉽게 배우는 머신러닝